* mail/rmail.el (rmail-show-message-1): When displaying a mime message,
indicate start and finish in the echo area. * mail/rmail.el (rmail-epa-decrypt): Disregard <pre> before armor. Ignore more kinds of whitespace in mime headers. Modify the decrypted mime part's mime type so it will be displayed by default when visiting this message again. * net/browse-url.el (browse-url-firefox-program): Prefer IceCat, doc. (browse-url-firefox-arguments) (browse-url-firefox-startup-arguments): Doc fix.
This commit is contained in:
commit
4e23cd0ccd
467 changed files with 23465 additions and 14794 deletions
3
.gitattributes
vendored
3
.gitattributes
vendored
|
@ -27,6 +27,9 @@ leim/MISC-DIC/pinyin.map -whitespace
|
|||
lib-src/update-game-score.exe.manifest -whitespace
|
||||
nt/nmake.defs -whitespace
|
||||
|
||||
# The upstream maintainer does not want to remove trailing whitespace.
|
||||
doc/misc/texinfo.tex -whitespace=blank-at-eol
|
||||
|
||||
# Some files should not be treated as text when diffing or merging.
|
||||
*.gpg binary
|
||||
*.gz binary
|
||||
|
|
36
CONTRIBUTE
36
CONTRIBUTE
|
@ -37,16 +37,17 @@ specify the actual author; the committer defaults to you.
|
|||
When using git, commit messages should use ChangeLog format, with the
|
||||
following modifications:
|
||||
|
||||
- Add a single short line explaining the change, then an empty line,
|
||||
then unindented ChangeLog entries.
|
||||
- Start with a single unindented summary line explaining the change,
|
||||
then an empty line, then unindented ChangeLog entries.
|
||||
|
||||
You can use various Emacs functions to ease this process; see (info
|
||||
"(emacs)Change Log Commands") or
|
||||
http://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html.
|
||||
|
||||
- The summary line is limited to 72 characters (enforced by a commit
|
||||
hook). If you have trouble making that a good summary, add a
|
||||
paragraph below it, before the individual file descriptions.
|
||||
- Limit lines in commit messages to 78 characters, unless they consist
|
||||
of a single word of at most 140 characters. If you have trouble
|
||||
fitting the summary into 78 characters, add a summarizing paragraph
|
||||
below the empty line and before the individual file descriptions.
|
||||
|
||||
- If only a single file is changed, the summary line can be the normal
|
||||
file first line (starting with the asterisk). Then there is no
|
||||
|
@ -57,6 +58,11 @@ following modifications:
|
|||
the rationale for a change; that can be done in the commit message
|
||||
between the summary line and the file entries.
|
||||
|
||||
- Commit messages should contain only printable UTF-8 characters.
|
||||
|
||||
- Commit messages should not contain the "Signed-off-by:" lines that
|
||||
are used in some other projects.
|
||||
|
||||
** ChangeLog notes
|
||||
|
||||
- Emacs generally follows the GNU coding standards when it comes to
|
||||
|
@ -187,6 +193,26 @@ know it does not, mark the NEWS entry with "---". If you know
|
|||
that *all* the necessary documentation updates have been made, mark
|
||||
the entry with "+++". Otherwise do not mark it.
|
||||
|
||||
Please see (info "(elisp)Documentation Tips") or
|
||||
https://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-Tips.html
|
||||
for more specific tips on Emacs's doc style. Use `checkdoc' to check
|
||||
for documentation errors before submitting a patch.
|
||||
|
||||
** Test your changes.
|
||||
|
||||
Please test your changes before committing them or sending them to the
|
||||
list.
|
||||
|
||||
Emacs uses ERT, Emacs Lisp Regression Testing, for testing. See (info
|
||||
"(ert)") or https://www.gnu.org/software/emacs/manual/html_node/ert/
|
||||
for more information on writing and running tests.
|
||||
|
||||
To run tests on the entire Emacs tree, run "make check" from the
|
||||
top-level directory. Most tests are in the directory
|
||||
"test/automated". From the "test/automated" directory, run "make
|
||||
<filename>" to run the tests for <filename>.el(c). See
|
||||
"test/automated/Makefile" for more information.
|
||||
|
||||
** Understanding Emacs Internals.
|
||||
|
||||
The best way to understand Emacs Internals is to read the code,
|
||||
|
|
127
ChangeLog
127
ChangeLog
|
@ -1,6 +1,125 @@
|
|||
2015-02-01 Joakim Verona <joakim@verona.se>
|
||||
Support for the new Xwidget feature.
|
||||
* configure.ac:
|
||||
2015-04-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port 'configure' to clang 3.5
|
||||
* configure.ac: Add -Wno-unknown-attributes if clang; otherwise
|
||||
clang 3.5.0 (Fedora 21 x86-64) complains
|
||||
"/usr/include/glib-2.0/glib/gmem.h: ... warning: unknown attribute
|
||||
'__alloc_size__' ignored". Use -Werror when checking for -nopie;
|
||||
otherwise clang warns about -nopie instead of failing, and then
|
||||
later it warns everytime the build uses -nopie.
|
||||
|
||||
2015-04-03 Ulrich Müller <ulm@gentoo.org>
|
||||
|
||||
* configure.ac (LD_SWITCH_SYSTEM_TEMACS): Add -nopie option if it
|
||||
is supported, in order to avoid segfaults in temacs. (Bug#18784)
|
||||
|
||||
2015-03-27 Pete Williamson <petewil@chromium.org> (tiny change)
|
||||
|
||||
Add NaCl target
|
||||
* configure.ac: Add a target for Chromium Native Client (NaCl).
|
||||
|
||||
2015-03-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* build-aux/dir_top (File): Fix the description of selecting a
|
||||
menu item by its number. (Bug#20213)
|
||||
|
||||
2015-03-29 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix 'commit-msg' to cite 'CONTRIBUTE'
|
||||
As suggested in:
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2015-03/msg00947.html
|
||||
Also, have the two files match better.
|
||||
* CONTRIBUTE: Match what's in build-aux/git-hooks/commit-msg.
|
||||
* build-aux/git-hooks/commit-msg: Mention 'CONTRIBUTE'.
|
||||
|
||||
2015-03-23 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* configure.ac: Fix jpeg version check to work with gcc >= 5.
|
||||
|
||||
2015-03-21 Samer Masterson <samer@samertm.com>
|
||||
|
||||
* CONTRIBUTE (Test your changes.): New section.
|
||||
(Document your changes.): Add doc tips.
|
||||
|
||||
2015-03-19 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Better port of pthread usage to FreeBSD
|
||||
* configure.ac (ac_func_list): Omit pthread_sigmask, since
|
||||
we check for that ourselves rather than relying on gnulib.
|
||||
(HAVE_PTHREAD, LIB_PTHREAD): Port better to FreeBSD,
|
||||
by also checking for pthread_create, pthread_self, pthread_sigmask.
|
||||
Tighten the test for pthread_atfork while we're at it.
|
||||
Fixes: bug#20136
|
||||
|
||||
Merge from gnulib
|
||||
This incorporates:
|
||||
2015-03-19 fdopendir: port better to MinGW
|
||||
2015-03-18 fdopendir: fix typo in comment
|
||||
2015-02-24 glob, etc.: port to MSVC v18 on MS-Windows 8.1
|
||||
* lib/dirent.in.h, lib/fdopendir.c: Update from gnulib.
|
||||
* lib/dirfd.c, m4/dirfd.m4: New files from gnulib.
|
||||
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
|
||||
|
||||
2015-03-02 Robert Pluim <rpluim@gmail.com> (tiny change)
|
||||
|
||||
* configure.ac: Error out if with-file-notification=w32 is
|
||||
specified on Cygwin. (Bug#19909)
|
||||
|
||||
2015-02-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't require GNU putenv
|
||||
* configure.ac: Use system putenv even if it lacks GNU features, as
|
||||
we don't need them. This works around a bug in FreeBSD 10.1 getenv.
|
||||
Fixes: bug#19874
|
||||
|
||||
2015-02-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib
|
||||
* lib/getdtablesize.c, m4/dup2.m4, m4/fcntl.m4:
|
||||
Update from gnulib, incorporating:
|
||||
2015-02-23 dup2: doc and test for Android bug
|
||||
2015-02-23 Replace dup2() on Android
|
||||
2015-02-22 Android doesn't define RLIM_SAVED_*
|
||||
|
||||
2015-02-21 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib
|
||||
* lib/getdtablesize.c, lib/getopt.c, lib/signal.in.h, lib/tempname.c:
|
||||
* lib/tempname.h, m4/dup2.m4, m4/fcntl.m4, m4/getdtablesize.m4:
|
||||
Update from gnulib, incorporating:
|
||||
2015-02-20 getdtablesize: port better for Android
|
||||
2015-02-19 fcntl: Fix cross compiling
|
||||
2015-02-18 dup2, fcntl: cross-compile better for Android
|
||||
2015-02-18 getopt: don't crash on memory exhaustion
|
||||
2015-02-17 tempname: allow compilation with C++ (trivial)
|
||||
2015-02-17 dup2, fcntl: port to AIX
|
||||
2015-02-16 getdtablesize, dup2, fcntl: port to Android
|
||||
2015-02-11 getdtablesize, signal_h: Fix Android build
|
||||
2015-02-11 maint: various whitespace cleanups in tempname
|
||||
|
||||
2015-02-13 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.ac: Set locallisppath to empty for NS self contained,
|
||||
unless --enable-loadllisppath was given (Bug#19850).
|
||||
|
||||
2015-02-09 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* configure.ac (HAVE_LIBXML2): Add missing comma.
|
||||
|
||||
2015-02-08 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port to platforms lacking test -a and -o
|
||||
* configure.ac (HAVE_LIBXML2):
|
||||
Prefer '&&' and '||' to 'test -a' and 'test -o'.
|
||||
|
||||
2015-02-08 Ulrich Müller <ulm@gentoo.org>
|
||||
|
||||
* configure.ac (--with-gameuser): Default to 'games' group instead
|
||||
of 'games' user.
|
||||
|
||||
2015-02-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* .gitattributes: Ignore blanks at EOL in texinfo.tex.
|
||||
|
||||
2015-01-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
|
@ -337,7 +456,7 @@
|
|||
|
||||
2014-11-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac: Fix yesterday's use of uninitialised $version.
|
||||
* configure.ac: Fix yesterday's use of uninitialized $version.
|
||||
|
||||
2014-11-25 Oscar Fuentes <ofv@wanadoo.es>
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
-*-org-*-
|
||||
Please see https://github.com/jave/xwidget-aux for documentation.
|
|
@ -85,7 +85,6 @@ AMPERSAND_FULL_NAME
|
|||
BROKEN_DATAGRAM_SOCKETS
|
||||
BROKEN_FIONREAD
|
||||
BROKEN_GET_CURRENT_DIR_NAME
|
||||
BROKEN_NON_BLOCKING_CONNECT
|
||||
BROKEN_PTY_READ_AFTER_EAGAIN
|
||||
DEFAULT_SOUND_DEVICE
|
||||
DEVICE_SEP
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
2015-03-31 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen (commit): Switch prefix from "# " to "; ".
|
||||
|
||||
2015-03-03 Kelvin White <kwhite@gnu.org>
|
||||
|
||||
* MAINTAINERS: Add myself to section 2.
|
||||
|
||||
2015-03-03 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-meta-string): Use bug-gnu-emacs@gnu email address
|
||||
rather than webmasters@gnu.
|
||||
|
||||
2015-01-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen (commit): Prepend "# " to commit message.
|
||||
|
|
|
@ -78,6 +78,11 @@ Bastien Guerry
|
|||
2.
|
||||
==============================================================================
|
||||
|
||||
Kelvin White
|
||||
ERC
|
||||
lisp/erc/*
|
||||
doc/misc/erc.texi
|
||||
|
||||
Eli Zaretskii
|
||||
doc/*
|
||||
lispref/*
|
||||
|
|
|
@ -248,7 +248,7 @@ Optional argument TYPE is type of output (nil means all)."
|
|||
|
||||
(defconst manual-meta-string
|
||||
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
|
||||
<link rev=\"made\" href=\"mailto:webmasters@gnu.org\">
|
||||
<link rev=\"made\" href=\"mailto:bug-gnu-emacs@gnu.org\">
|
||||
<link rel=\"icon\" type=\"image/png\" href=\"/graphics/gnu-head-mini.png\">
|
||||
<meta name=\"ICBM\" content=\"42.256233,-71.006581\">
|
||||
<meta name=\"DC.title\" content=\"gnu.org\">\n\n")
|
||||
|
|
|
@ -86,6 +86,7 @@ files.")
|
|||
("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
|
||||
("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
|
||||
("Johan Bockgård" "Johan Bockgard")
|
||||
("John F. Carr" "John F Carr")
|
||||
("John J Foerch" "John Foerch")
|
||||
("John W. Eaton" "John Eaton")
|
||||
("Jonathan I. Kamens" "Jonathan Kamens")
|
||||
|
@ -243,6 +244,7 @@ If REALNAME is nil, ignore that author.")
|
|||
'(".*loaddefs.el$" ; not obsolete, but auto-generated
|
||||
"\\.\\(bzr\\|cvs\\|git\\)ignore$" ; obsolete or uninteresting
|
||||
"\\.arch-inventory$"
|
||||
"ChangeLog\\(\\.[0-9]+\\)?\\'"
|
||||
"automated/data/" ; not interesting
|
||||
;; TODO lib/? Matches other things?
|
||||
"build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'"
|
||||
|
@ -357,6 +359,7 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"All" "Version" "Everywhere" "Many" "Various" "files"
|
||||
;; Directories.
|
||||
"vms" "mac" "url" "tree-widget"
|
||||
"info/dir"
|
||||
)
|
||||
"List of files and directories to ignore.
|
||||
Changes to files in this list are not listed.")
|
||||
|
@ -796,6 +799,7 @@ in the repository.")
|
|||
("play/bruce.el" . "bruce.el")
|
||||
("play/yow.el" . "yow.el")
|
||||
("patcomp.el" . "patcomp.el")
|
||||
("emulation/ws-mode.el" . "ws-mode.el")
|
||||
;; From lisp to etc/forms.
|
||||
("forms-d2.el" . "forms-d2.el")
|
||||
("forms-pass.el" . "forms-pass.el")
|
||||
|
|
|
@ -52,9 +52,11 @@ General steps (for each step, check for possible errors):
|
|||
number to that of the actual release. Pick a date about a week
|
||||
from now when you intend to make the release. Use M-x add-release-logs
|
||||
to add the ChangeLog entries for that date to the tar file (but
|
||||
not yet to the repository). Name the tar file as
|
||||
emacs-XX.Y-rc1.tar. If all goes well in the following week, you
|
||||
can simply rename the file and use it for the actual release.
|
||||
do not commit the entries to the repository until the actual release).
|
||||
Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
|
||||
following week, you can simply rename the file and use it for the
|
||||
actual release. If you need another release candidate, remember
|
||||
to adjust the ChangeLog entries.
|
||||
|
||||
4. autoreconf -i -I m4 --force
|
||||
make bootstrap
|
||||
|
|
|
@ -7,6 +7,27 @@ package archive (elpa.gnu.org). See admin/notes/elpa for further
|
|||
explanation, and the README file in the branch for usage
|
||||
instructions.
|
||||
|
||||
* Install changes only on one branch, let them get merged elsewhere if needed.
|
||||
|
||||
In particular, install bug-fixes only on the release branch (if there
|
||||
is one) and let them get synced to the trunk; do not install them by
|
||||
hand on the trunk as well. E.g. if there is an active "emacs-24" branch
|
||||
and you have a bug-fix appropriate for the next emacs-24.x release,
|
||||
install it only on the emacs-24 branch, not on the trunk as well.
|
||||
|
||||
Installing things manually into more than one branch makes merges more
|
||||
difficult.
|
||||
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html
|
||||
|
||||
The exception is, if you know that the change will be difficult to
|
||||
merge to the trunk (eg because the trunk code has changed a lot).
|
||||
In that case, it's helpful if you can apply the change to both trunk
|
||||
and branch yourself (when committing the branch change, indicate
|
||||
in the commit log that it should not be merged to the trunk, by
|
||||
including the phrase "Not to be merged to master", or any other phrase
|
||||
that matches "merge").
|
||||
|
||||
* Installing changes from your personal branches.
|
||||
|
||||
If your branch has only a single commit, or many different real
|
||||
|
|
|
@ -228,7 +228,7 @@ commit ()
|
|||
|
||||
echo "Committing..."
|
||||
|
||||
$vcs commit -m "# Auto-commit of $type files." "$@" || return $?
|
||||
$vcs commit -m "; Auto-commit of $type files." "$@" || return $?
|
||||
|
||||
[ "$vcs" = "git" ] && {
|
||||
$vcs push || return $?
|
||||
|
|
|
@ -15,6 +15,7 @@ The Info Directory
|
|||
In Emacs Info, you can click mouse button 2 on a menu item
|
||||
or cross reference to follow it to its target.
|
||||
Each menu line that starts with a * is a topic you can select with "m".
|
||||
You can also select a topic by typing its ordinal number.
|
||||
Every third topic has a red * to help pick the right number to type.
|
||||
|
||||
* Menu:
|
||||
|
|
|
@ -63,7 +63,7 @@ exec $awk '
|
|||
/^#/ { next }
|
||||
|
||||
!/^.*$/ {
|
||||
print "Invalid character (not UTF-8) in commit message"
|
||||
print "Invalid character (not UTF-8) in commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
|
||||
|
@ -77,13 +77,13 @@ exec $awk '
|
|||
sub(/^squash! /, "")
|
||||
|
||||
if ($0 ~ "^" space) {
|
||||
print "White space at start of commit message'\''s first line"
|
||||
print "White space at start of commit message'\''s first line; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
|
||||
nlines == 2 && $0 ~ non_space {
|
||||
print "Nonempty second line in commit message"
|
||||
print "Nonempty second line in commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
|
||||
|
@ -97,28 +97,28 @@ exec $awk '
|
|||
}
|
||||
|
||||
78 < length && $0 ~ space {
|
||||
print "Line longer than 78 characters in commit message"
|
||||
print "Line longer than 78 characters in commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
|
||||
140 < length {
|
||||
print "Word longer than 140 characters in commit message"
|
||||
print "Word longer than 140 characters in commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
|
||||
/^Signed-off-by: / {
|
||||
print "'\''Signed-off-by:'\'' in commit message"
|
||||
print "'\''Signed-off-by:'\'' in commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
|
||||
$0 ~ non_print {
|
||||
print "Unprintable character in commit message"
|
||||
print "Unprintable character in commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
|
||||
END {
|
||||
if (nlines == 0) {
|
||||
print "Empty commit message"
|
||||
print "Empty commit message; see 'CONTRIBUTE'"
|
||||
status = 1
|
||||
}
|
||||
exit status
|
||||
|
|
225
configure.ac
225
configure.ac
|
@ -374,8 +374,6 @@ otherwise for the first of `gfile' or `inotify' that is usable.])
|
|||
],
|
||||
[with_file_notification=$with_features])
|
||||
|
||||
OPTION_DEFAULT_OFF([xwidgets],[enable use of some gtk widgets in Emacs buffers])
|
||||
|
||||
## For the times when you want to build Emacs but don't have
|
||||
## a suitable makeinfo, and can live without the manuals.
|
||||
dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
|
||||
|
@ -399,17 +397,12 @@ AC_ARG_WITH(gameuser,dnl
|
|||
An argument prefixed by ':' specifies a group instead.])])
|
||||
gameuser=
|
||||
gamegroup=
|
||||
# We don't test if we can actually chown/chgrp here, because configure
|
||||
# may run without root privileges. lib-src/Makefile.in will handle
|
||||
# any errors due to missing user/group gracefully.
|
||||
case ${with_gameuser} in
|
||||
no) ;;
|
||||
"" | yes)
|
||||
AC_MSG_CHECKING([whether a 'games' user exists])
|
||||
if id -u games >/dev/null 2>&1; then
|
||||
AC_MSG_RESULT([yes])
|
||||
gameuser=games
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
;;
|
||||
"" | yes) gamegroup=games ;;
|
||||
:*) gamegroup=`echo "${with_gameuser}" | sed -e "s/://"` ;;
|
||||
*) gameuser=${with_gameuser} ;;
|
||||
esac
|
||||
|
@ -430,6 +423,7 @@ AC_ARG_ENABLE(ns-self-contained,
|
|||
EN_NS_SELF_CONTAINED=$enableval,
|
||||
EN_NS_SELF_CONTAINED=yes)
|
||||
|
||||
locallisppathset=no
|
||||
AC_ARG_ENABLE(locallisppath,
|
||||
[AS_HELP_STRING([--enable-locallisppath=PATH],
|
||||
[directories Emacs should search for lisp files specific
|
||||
|
@ -437,7 +431,7 @@ AC_ARG_ENABLE(locallisppath,
|
|||
if test "${enableval}" = "no"; then
|
||||
locallisppath=
|
||||
elif test "${enableval}" != "yes"; then
|
||||
locallisppath=${enableval}
|
||||
locallisppath=${enableval} locallisppathset=yes
|
||||
fi)
|
||||
|
||||
AC_ARG_ENABLE(checking,
|
||||
|
@ -618,6 +612,11 @@ case "${canonical}" in
|
|||
## fi
|
||||
;;
|
||||
|
||||
## Chromium Native Client
|
||||
*-nacl )
|
||||
opsys=nacl
|
||||
;;
|
||||
|
||||
## Cygwin ports
|
||||
*-*-cygwin )
|
||||
opsys=cygwin
|
||||
|
@ -786,6 +785,17 @@ AC_DEFUN([gl_CRYPTO_CHECK])
|
|||
# Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW,
|
||||
# as we don't use them.
|
||||
AC_DEFUN([gl_FCNTL_O_FLAGS])
|
||||
# Avoid gnulib's test for pthread_sigmask.
|
||||
funcs=
|
||||
for func in $ac_func_list; do
|
||||
test $func = pthread_sigmask || AS_VAR_APPEND([funcs], [" $func"])
|
||||
done
|
||||
ac_func_list=$funcs
|
||||
# Use the system putenv even if it lacks GNU features, as we don't need them,
|
||||
# and the gnulib replacement runs afoul of a FreeBSD 10.1 bug; see Bug#19874.
|
||||
AC_CHECK_FUNCS_ONCE([putenv])
|
||||
AC_DEFUN([gl_FUNC_PUTENV],
|
||||
[test "$ac_cv_func_putenv" = yes || REPLACE_PUTENV=1])
|
||||
|
||||
# Initialize gnulib right after choosing the compiler.
|
||||
dnl Amongst other things, this sets AR and ARFLAGS.
|
||||
|
@ -873,6 +883,7 @@ if test "$gl_gcc_warnings" != yes; then
|
|||
gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
|
||||
gl_WARN_ADD([-Wno-pointer-sign])
|
||||
gl_WARN_ADD([-Wno-string-plus-int])
|
||||
gl_WARN_ADD([-Wno-unknown-attributes])
|
||||
fi
|
||||
else
|
||||
isystem='-isystem '
|
||||
|
@ -1258,7 +1269,7 @@ dnl The function dump-emacs will not be defined and temacs will do
|
|||
dnl (load "loadup") automatically unless told otherwise.
|
||||
test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no
|
||||
case "$opsys" in
|
||||
your-opsys-here) CANNOT_DUMP=yes ;;
|
||||
nacl) CANNOT_DUMP=yes ;;
|
||||
esac
|
||||
|
||||
if test "$CANNOT_DUMP" = "yes"; then
|
||||
|
@ -1878,6 +1889,7 @@ if test "${HAVE_NS}" = yes; then
|
|||
infodir="\${ns_appresdir}/info"
|
||||
mandir="\${ns_appresdir}/man"
|
||||
lispdir="\${ns_appresdir}/lisp"
|
||||
test "$locallisppathset" = no && locallisppath=""
|
||||
INSTALL_ARCH_INDEP_EXTRA=
|
||||
fi
|
||||
|
||||
|
@ -2098,7 +2110,7 @@ hybrid_malloc=
|
|||
|
||||
case "$opsys" in
|
||||
## darwin ld insists on the use of malloc routines in the System framework.
|
||||
darwin|mingw32|sol2-10) system_malloc=yes ;;
|
||||
darwin | mingw32 | nacl | sol2-10) system_malloc=yes ;;
|
||||
cygwin) hybrid_malloc=yes;;
|
||||
esac
|
||||
|
||||
|
@ -2179,39 +2191,62 @@ AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
|
|||
|
||||
dnl Check for the POSIX thread library.
|
||||
LIB_PTHREAD=
|
||||
if test "$opsys" != "mingw32"; then
|
||||
AC_CHECK_HEADERS_ONCE(pthread.h)
|
||||
if test "$ac_cv_header_pthread_h"; then
|
||||
dnl gmalloc.c uses pthread_atfork, which is not available on older-style
|
||||
dnl hosts such as MirBSD 10, so test for pthread_atfork instead of merely
|
||||
dnl testing for pthread_kill if Emacs uses gmalloc.c.
|
||||
if test "$GMALLOC_OBJ" = gmalloc.o; then
|
||||
emacs_pthread_function=pthread_atfork
|
||||
else
|
||||
emacs_pthread_function=pthread_kill
|
||||
if test "$ac_cv_header_pthread_h" && test "$opsys" != "mingw32"; then
|
||||
AC_CACHE_CHECK([for pthread library],
|
||||
[emacs_cv_pthread_lib],
|
||||
[emacs_cv_pthread_lib=no
|
||||
OLD_CPPFLAGS=$CPPFLAGS
|
||||
OLD_LIBS=$LIBS
|
||||
for emacs_pthread_lib in 'none needed' -lpthread; do
|
||||
case $emacs_pthread_lib in
|
||||
-*) LIBS="$OLD_LIBS $emacs_pthread_lib";;
|
||||
esac
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <pthread.h>
|
||||
#include <signal.h>
|
||||
sigset_t old_mask, new_mask;
|
||||
void noop (void) {}]],
|
||||
[[pthread_t th = pthread_self ();
|
||||
int status = 0;
|
||||
status += pthread_create (&th, 0, 0, 0);
|
||||
status += pthread_sigmask (SIG_BLOCK, &new_mask, &old_mask);
|
||||
status += pthread_kill (th, 0);
|
||||
#if ! (defined SYSTEM_MALLOC || defined HYBRID_MALLOC \
|
||||
|| defined DOUG_LEA_MALLOC)
|
||||
/* Test for pthread_atfork only if gmalloc uses it,
|
||||
as older-style hosts like MirBSD 10 lack it. */
|
||||
status += pthread_atfork (noop, noop, noop);
|
||||
#endif
|
||||
return status;]])],
|
||||
[emacs_cv_pthread_lib=$emacs_pthread_lib])
|
||||
LIBS=$OLD_LIBS
|
||||
if test "$emacs_cv_pthread_lib" != no; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
CPPFLAGS=$OLD_CPPFLAGS])
|
||||
if test "$emacs_cv_pthread_lib" != no; then
|
||||
AC_DEFINE([HAVE_PTHREAD], 1, [Define to 1 if you have POSIX threads.])
|
||||
case $emacs_cv_pthread_lib in
|
||||
-*) LIB_PTHREAD=$emacs_cv_pthread_lib;;
|
||||
esac
|
||||
ac_cv_func_pthread_sigmask=yes
|
||||
# Some systems optimize for single-threaded programs by default, and
|
||||
# need special flags to disable these optimizations. For example, the
|
||||
# definition of 'errno' in <errno.h>.
|
||||
case $opsys in
|
||||
hpux* | sol*)
|
||||
AC_DEFINE([_REENTRANT], 1,
|
||||
[Define to 1 if your system requires this in multithreaded code.]);;
|
||||
aix4-2)
|
||||
AC_DEFINE([_THREAD_SAFE], 1,
|
||||
[Define to 1 if your system requires this in multithreaded code.]);;
|
||||
esac
|
||||
fi
|
||||
OLD_LIBS=$LIBS
|
||||
AC_SEARCH_LIBS([$emacs_pthread_function], [pthread],
|
||||
[AC_DEFINE([HAVE_PTHREAD], [1],
|
||||
[Define to 1 if you have pthread (-lpthread).])
|
||||
# Some systems optimize for single-threaded programs by default, and
|
||||
# need special flags to disable these optimizations. For example, the
|
||||
# definition of 'errno' in <errno.h>.
|
||||
case $opsys in
|
||||
sol*)
|
||||
AC_DEFINE([_REENTRANT], 1,
|
||||
[Define to 1 if your system requires this in multithreaded code.]);;
|
||||
aix4-2)
|
||||
AC_DEFINE([_THREAD_SAFE], 1,
|
||||
[Define to 1 if your system requires this in multithreaded code.]);;
|
||||
esac])
|
||||
if test "X$LIBS" != "X$OLD_LIBS"; then
|
||||
eval LIB_PTHREAD=\$ac_cv_search_$emacs_pthread_function
|
||||
fi
|
||||
LIBS=$OLD_LIBS
|
||||
fi
|
||||
AC_SUBST([LIB_PTHREAD])
|
||||
fi
|
||||
|
||||
dnl Check for need for bigtoc support on IBM AIX
|
||||
|
||||
|
@ -2529,41 +2564,6 @@ if test "${HAVE_GTK}" = "yes"; then
|
|||
term_header=gtkutil.h
|
||||
fi
|
||||
|
||||
|
||||
HAVE_XWIDGETS=no
|
||||
HAVE_WEBKIT=no
|
||||
HAVE_GIR=no
|
||||
|
||||
if test "${with_xwidgets}" != "no" && test "${USE_GTK_TOOLKIT}" = "GTK3" && test "$window_system" != "none" ; then
|
||||
echo "xwidgets enabled, checking webkit, and others"
|
||||
HAVE_XWIDGETS=yes
|
||||
AC_DEFINE(HAVE_XWIDGETS, 1, [Define to 1 if you have xwidgets support.])
|
||||
dnl xwidgets
|
||||
dnl - enable only if GTK3 is enabled, and we have a window system
|
||||
dnl - check for webkit and gobject introspection
|
||||
|
||||
|
||||
#webkit version for gtk3.
|
||||
WEBKIT_REQUIRED=1.4.0
|
||||
WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED"
|
||||
|
||||
if test "${with_gtk3}" = "yes"; then
|
||||
PKG_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no)
|
||||
if test $HAVE_WEBKIT = yes; then
|
||||
AC_DEFINE(HAVE_WEBKIT_OSR, 1, [Define to 1 if you have webkit_osr support.])
|
||||
fi
|
||||
fi
|
||||
|
||||
GIR_REQUIRED=1.32.1
|
||||
GIR_MODULES="gobject-introspection-1.0 >= $GIR_REQUIRED"
|
||||
PKG_CHECK_MODULES(GIR, $GIR_MODULES, HAVE_GIR=yes, HAVE_GIR=no)
|
||||
if test $HAVE_GIR = yes; then
|
||||
AC_DEFINE(HAVE_GIR, 1, [Define to 1 if you have GIR support.])
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
CFLAGS=$OLD_CFLAGS
|
||||
LIBS=$OLD_LIBS
|
||||
|
||||
|
@ -2699,6 +2699,11 @@ fi
|
|||
|
||||
dnl MS Windows native file monitor is available for mingw32 only.
|
||||
case $with_file_notification,$opsys in
|
||||
w32,cygwin)
|
||||
AC_MSG_ERROR([`--with-file-notification=w32' was specified, but
|
||||
this is only supported on MS-Windows native and MinGW32 builds.
|
||||
Consider using gfile instead.])
|
||||
;;
|
||||
w32,* | yes,mingw32)
|
||||
AC_CHECK_HEADER(windows.h)
|
||||
if test "$ac_cv_header_windows_h" = yes ; then
|
||||
|
@ -3198,10 +3203,12 @@ if test "${opsys}" = "mingw32"; then
|
|||
AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
|
||||
if test "${HAVE_JPEG}" = "yes"; then
|
||||
AC_DEFINE(HAVE_JPEG)
|
||||
AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
|
||||
[#include <jpeglib.h>
|
||||
version=JPEG_LIB_VERSION
|
||||
],
|
||||
AC_EGREP_CPP([version 6b or later],
|
||||
[#include <jpeglib.h>
|
||||
#if JPEG_LIB_VERSION >= 62
|
||||
version 6b or later
|
||||
#endif
|
||||
],
|
||||
[AC_DEFINE(HAVE_JPEG)],
|
||||
[AC_MSG_WARN([libjpeg found, but not version 6b or later])
|
||||
HAVE_JPEG=no])
|
||||
|
@ -3217,10 +3224,12 @@ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
|
|||
AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
|
||||
if test "${HAVE_JPEG}" = "yes"; then
|
||||
AC_DEFINE(HAVE_JPEG)
|
||||
AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
|
||||
AC_EGREP_CPP([version 6b or later],
|
||||
[#include <jpeglib.h>
|
||||
version=JPEG_LIB_VERSION
|
||||
],
|
||||
#if JPEG_LIB_VERSION >= 62
|
||||
version 6b or later
|
||||
#endif
|
||||
],
|
||||
[AC_DEFINE(HAVE_JPEG)],
|
||||
[AC_MSG_WARN([libjpeg found, but not version 6b or later])
|
||||
HAVE_JPEG=no])
|
||||
|
@ -3533,7 +3542,7 @@ if test "${with_xml2}" != "no"; then
|
|||
### I'm not sure what the version number should be, so I just guessed.
|
||||
EMACS_CHECK_MODULES([LIBXML2], [libxml-2.0 > 2.6.17])
|
||||
# Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc.
|
||||
if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then
|
||||
if test "${HAVE_LIBXML2}" != "yes" && test "$opsys" = "darwin"; then
|
||||
SAVE_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2"
|
||||
AC_CHECK_HEADER(libxml/HTMLparser.h,
|
||||
|
@ -3547,7 +3556,7 @@ if test "${with_xml2}" != "no"; then
|
|||
fi
|
||||
if test "${HAVE_LIBXML2}" = "yes"; then
|
||||
if test "${opsys}" != "mingw32"; then
|
||||
AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no
|
||||
AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no,
|
||||
[$LIBXML2_LIBS])
|
||||
else
|
||||
LIBXML2_LIBS=""
|
||||
|
@ -4183,7 +4192,7 @@ emacs_broken_SIGIO=no
|
|||
case $opsys in
|
||||
dnl SIGIO exists, but the feature doesn't work in the way Emacs needs.
|
||||
dnl See eg <http://article.gmane.org/gmane.os.openbsd.ports/46831>.
|
||||
hpux* | irix6-5 | openbsd | sol2* | unixware )
|
||||
hpux* | irix6-5 | nacl | openbsd | sol2* | unixware )
|
||||
emacs_broken_SIGIO=yes
|
||||
;;
|
||||
|
||||
|
@ -4345,7 +4354,7 @@ case $opsys in
|
|||
AC_DEFINE(FIRST_PTY_LETTER, ['p'])
|
||||
;;
|
||||
|
||||
gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd )
|
||||
gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd | nacl )
|
||||
dnl if HAVE_GRANTPT
|
||||
if test "x$ac_cv_func_grantpt" = xyes; then
|
||||
AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.])
|
||||
|
@ -4550,10 +4559,10 @@ if test $emacs_cv_func_sigsetjmp = yes; then
|
|||
fi
|
||||
|
||||
# We need all of these features to handle C stack overflows.
|
||||
if test "$ac_cv_header_sys_resource_h" = "yes" -a \
|
||||
"$ac_cv_func_getrlimit" = "yes" -a \
|
||||
"$emacs_cv_func_sigsetjmp" = "yes" -a \
|
||||
"$emacs_cv_alternate_stack" = yes; then
|
||||
if test "$ac_cv_header_sys_resource_h" = "yes" &&
|
||||
test "$ac_cv_func_getrlimit" = "yes" &&
|
||||
test "$emacs_cv_func_sigsetjmp" = "yes" &&
|
||||
test "$emacs_cv_alternate_stack" = yes; then
|
||||
AC_DEFINE([HAVE_STACK_OVERFLOW_HANDLING], 1,
|
||||
[Define to 1 if C stack overflow can be handled in some cases.])
|
||||
fi
|
||||
|
@ -4644,7 +4653,7 @@ esac
|
|||
|
||||
AC_CACHE_CHECK([for usable FIONREAD], [emacs_cv_usable_FIONREAD],
|
||||
[case $opsys in
|
||||
aix4-2)
|
||||
aix4-2 | nacl)
|
||||
dnl BUILD 9008 - FIONREAD problem still exists in X-Windows.
|
||||
emacs_cv_usable_FIONREAD=no
|
||||
;;
|
||||
|
@ -4843,7 +4852,7 @@ TOOLKIT_LIBW=
|
|||
case "$USE_X_TOOLKIT" in
|
||||
MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
|
||||
LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
|
||||
none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS -lXcomposite" ;;
|
||||
none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
|
||||
esac
|
||||
AC_SUBST(TOOLKIT_LIBW)
|
||||
|
||||
|
@ -5019,11 +5028,29 @@ case "$opsys" in
|
|||
esac
|
||||
;;
|
||||
|
||||
openbsd) LD_SWITCH_SYSTEM_TEMACS='-nopie' ;;
|
||||
|
||||
*) LD_SWITCH_SYSTEM_TEMACS= ;;
|
||||
esac
|
||||
|
||||
# -nopie fixes a temacs segfault on Gentoo, OpenBSD, and other systems
|
||||
# with "hardened" GCC configurations for some reason (Bug#18784).
|
||||
# We don't know why -nopie works, but not segfaulting is better than
|
||||
# segfaulting. Use -Werror when trying -nopie, otherwise clang keeps
|
||||
# warning that it does not understand -nopie.
|
||||
AC_CACHE_CHECK([whether $CC accepts -nopie],
|
||||
[emacs_cv_prog_cc_nopie],
|
||||
[emacs_save_CFLAGS=$CFLAGS
|
||||
emacs_save_LDFLAGS=$LDFLAGS
|
||||
CFLAGS="$CFLAGS -Werror"
|
||||
LDFLAGS="$LDFLAGS -nopie"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||||
[emacs_cv_prog_cc_nopie=yes],
|
||||
[emacs_cv_prog_cc_nopie=no])
|
||||
CFLAGS=$emacs_save_CFLAGS
|
||||
LDFLAGS=$emacs_save_LDFLAGS])
|
||||
if test "$emacs_cv_prog_cc_nopie" = yes; then
|
||||
LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -nopie"
|
||||
fi
|
||||
|
||||
if test x$ac_enable_profiling != x ; then
|
||||
case $opsys in
|
||||
*freebsd | gnu-linux) ;;
|
||||
|
@ -5164,10 +5191,6 @@ echo " Does Emacs use -lxft? ${HAVE_XFT}"
|
|||
echo " Does Emacs directly use zlib? ${HAVE_ZLIB}"
|
||||
|
||||
echo " Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
|
||||
|
||||
echo " Does Emacs support Xwidgets? ${HAVE_XWIDGETS}"
|
||||
echo " Does xwidgets support webkit(requires gtk3)? ${HAVE_WEBKIT}"
|
||||
echo " Does xwidgets support gobject introspection? ${HAVE_GIR}"
|
||||
echo
|
||||
|
||||
if test -n "${EMACSDATA}"; then
|
||||
|
|
|
@ -1,3 +1,43 @@
|
|||
2015-03-29 Dani Moncayo <dmoncayo@gmail.com>
|
||||
|
||||
* files.texi (Diff Mode): Doc fix.
|
||||
|
||||
2015-03-18 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* misc.texi (Term Mode):
|
||||
* programs.texi (Basic Indent, Custom C Indent):
|
||||
* mini.texi (Minibuffer History):
|
||||
* text.texi (Org Mode):
|
||||
* display.texi (View Mode): Use @kbd where @key was mistakenly
|
||||
used. (Bug#20135)
|
||||
|
||||
2015-03-18 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* basic.texi (Moving Point): Improve indexing for HOME and END.
|
||||
|
||||
* cmdargs.texi (General Variables): Improve indexing for
|
||||
environment variables.
|
||||
|
||||
* msdog.texi (Windows HOME):
|
||||
* msdog-xtra.texi (MS-DOS File Names): Remove markup from HOME in
|
||||
the index entries. (Bug#20105)
|
||||
|
||||
2015-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* msdog.texi (Windows Files): Document characters invalid in
|
||||
Windows file names. (Bug#19463)
|
||||
|
||||
* custom.texi (Customization Groups): Update the looks of the
|
||||
Customize Group buffer.
|
||||
|
||||
* programs.texi (Hungry Delete): Fix a typo: "C-d" instead of
|
||||
"C-c C-d" in hungry-delete mode.
|
||||
|
||||
2015-02-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mule.texi (Language Environments): Work around refill bug in
|
||||
makeinfo 4.x. (Bug#19697)
|
||||
|
||||
2015-01-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* cmdargs.texi (Action Arguments): Clarify into which buffer
|
||||
|
|
|
@ -204,7 +204,7 @@ for Korean Hanja.
|
|||
|
||||
@item
|
||||
Andrew Choi and Yamamoto Mitsuharu wrote the Carbon support, used
|
||||
prior to Emacs 23 for Mac OS. Yamamoto Mitsuharu continued to
|
||||
prior to Emacs 23 for Mac OS@. Yamamoto Mitsuharu continued to
|
||||
contribute to Mac OS support in the newer Nextstep port; and also
|
||||
improved support for multi-monitor displays.
|
||||
|
||||
|
|
|
@ -206,14 +206,14 @@ preserves position within the line, like @kbd{C-n}.
|
|||
@item C-a
|
||||
@itemx @key{Home}
|
||||
@kindex C-a
|
||||
@kindex HOME
|
||||
@kindex HOME key
|
||||
@findex move-beginning-of-line
|
||||
Move to the beginning of the line (@code{move-beginning-of-line}).
|
||||
|
||||
@item C-e
|
||||
@itemx @key{End}
|
||||
@kindex C-e
|
||||
@kindex END
|
||||
@kindex END key
|
||||
@findex move-end-of-line
|
||||
Move to the end of the line (@code{move-end-of-line}).
|
||||
|
||||
|
|
|
@ -642,7 +642,7 @@ the directory names in reverse order, so that @file{/top/middle/file}
|
|||
becomes @samp{file\middle\top}, while @code{post-forward} puts them in
|
||||
forward order after the file name, as in @samp{file|top/middle}. If
|
||||
@code{uniquify-buffer-name-style} is set to @code{nil}, the buffer
|
||||
names simply get @samp{<2>}, @samp{<3>}, etc. appended.
|
||||
names simply get @samp{<2>}, @samp{<3>}, etc.@: appended.
|
||||
|
||||
Which rule to follow for putting the directory names in the buffer
|
||||
name is not very important if you are going to @emph{look} at the
|
||||
|
|
|
@ -442,22 +442,31 @@ special meanings in Emacs. Most of these variables are also used by
|
|||
some other programs. Emacs does not require any of these environment
|
||||
variables to be set, but it uses their values if they are set.
|
||||
|
||||
@vtable @env
|
||||
@c This used to be @vtable, but that enters the variables alone into
|
||||
@c the Variable Index, which in some cases, like ``HOME'', might be
|
||||
@c confused with keys by that name, and other cases, like ``NAME'',
|
||||
@c might be confused with general-purpose phrases.
|
||||
@table @env
|
||||
@item CDPATH
|
||||
@vindex CDPATH, environment variable
|
||||
Used by the @code{cd} command to search for the directory you specify,
|
||||
when you specify a relative directory name.
|
||||
@item DBUS_SESSION_BUS_ADDRESS
|
||||
@vindex DBUS_SESSION_BUS_ADDRESS, environment variable
|
||||
Used by D-Bus when Emacs is compiled with it. Usually, there is no
|
||||
need to change it. Setting it to a dummy address, like
|
||||
@samp{unix:path=/dev/null}, suppresses connections to the D-Bus session
|
||||
bus as well as autolaunching the D-Bus session bus if not running yet.
|
||||
@item EMACSDATA
|
||||
@vindex EMACSDATA, environment variable
|
||||
Directory for the architecture-independent files that come with Emacs.
|
||||
This is used to initialize the variable @code{data-directory}.
|
||||
@item EMACSDOC
|
||||
#vindex EMACSDOC, environment variable
|
||||
Directory for the documentation string file, which is used to
|
||||
initialize the Lisp variable @code{doc-directory}.
|
||||
@item EMACSLOADPATH
|
||||
#vindex EMACSLOADPATH, environment variable
|
||||
A colon-separated list of directories@footnote{Here and below,
|
||||
whenever we say ``colon-separated list of directories'', it pertains
|
||||
to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the
|
||||
|
@ -471,23 +480,28 @@ the default @code{load-path}. To specify an empty element in the
|
|||
middle of the list, use 2 colons in a row, as in
|
||||
@samp{EMACSLOADPATH="/tmp::/foo"}.
|
||||
@item EMACSPATH
|
||||
@vindex EMACSPATH, environment variable
|
||||
A colon-separated list of directories to search for executable files.
|
||||
If set, Emacs uses this in addition to @env{PATH} (see below) when
|
||||
initializing the variable @code{exec-path} (@pxref{Shell}).
|
||||
@item EMAIL
|
||||
@vindex EMAIL, environment variable
|
||||
@vindex user-mail-address@r{, initialization}
|
||||
Your email address; used to initialize the Lisp variable
|
||||
@code{user-mail-address}, which the Emacs mail interface puts into the
|
||||
@samp{From} header of outgoing messages (@pxref{Mail Headers}).
|
||||
@item ESHELL
|
||||
@vindex ESHELL, environment variable
|
||||
Used for shell-mode to override the @env{SHELL} environment variable
|
||||
(@pxref{Interactive Shell}).
|
||||
@item HISTFILE
|
||||
@vindex HISTFILE, environment variable
|
||||
The name of the file that shell commands are saved in between logins.
|
||||
This variable defaults to @file{~/.bash_history} if you use Bash, to
|
||||
@file{~/.sh_history} if you use ksh, and to @file{~/.history}
|
||||
otherwise.
|
||||
@item HOME
|
||||
@vindex HOME, environment variable
|
||||
The location of your files in the directory tree; used for
|
||||
expansion of file names starting with a tilde (@file{~}). On MS-DOS,
|
||||
it defaults to the directory from which Emacs was started, with
|
||||
|
@ -499,6 +513,7 @@ where @var{username} is your user name), though for backwards
|
|||
compatibility @file{C:/} will be used instead if a @file{.emacs} file
|
||||
is found there.
|
||||
@item HOSTNAME
|
||||
@vindex HOSTNAME, environment variable
|
||||
The name of the machine that Emacs is running on.
|
||||
@c complete.el is obsolete since 24.1.
|
||||
@ignore
|
||||
|
@ -507,15 +522,24 @@ A colon-separated list of directories. Used by the @code{complete} package
|
|||
to search for files.
|
||||
@end ignore
|
||||
@item INFOPATH
|
||||
@vindex INFOPATH, environment variable
|
||||
A colon-separated list of directories in which to search for Info files.
|
||||
@item LC_ALL
|
||||
@vindex LC_ALL, environment variable
|
||||
@itemx LC_COLLATE
|
||||
@vindex LC_COLLATE, environment variable
|
||||
@itemx LC_CTYPE
|
||||
@vindex LC_CTYPE, environment variable
|
||||
@itemx LC_MESSAGES
|
||||
@vindex LC_MESSAGES, environment variable
|
||||
@itemx LC_MONETARY
|
||||
@vindex LC_MONETARY, environment variable
|
||||
@itemx LC_NUMERIC
|
||||
@vindex LC_NUMERIC, environment variable
|
||||
@itemx LC_TIME
|
||||
@vindex LC_TIME, environment variable
|
||||
@itemx LANG
|
||||
@vindex LANG, environment variable
|
||||
The user's preferred locale. The locale has six categories, specified
|
||||
by the environment variables @env{LC_COLLATE} for sorting,
|
||||
@env{LC_CTYPE} for character encoding, @env{LC_MESSAGES} for system
|
||||
|
@ -537,73 +561,92 @@ matched against entries in @code{locale-language-names},
|
|||
@code{locale-preferred-coding-systems}, to select a default language
|
||||
environment and coding system. @xref{Language Environments}.
|
||||
@item LOGNAME
|
||||
@vindex LOGNAME, environment variable
|
||||
The user's login name. See also @env{USER}.
|
||||
@item MAIL
|
||||
@vindex MAIL, environment variable
|
||||
The name of your system mail inbox.
|
||||
@ifnottex
|
||||
@item MH
|
||||
@vindex MH, environment variable
|
||||
Name of setup file for the mh system. @xref{Top,,MH-E,mh-e, The Emacs
|
||||
Interface to MH}.
|
||||
@end ifnottex
|
||||
@item NAME
|
||||
@vindex NAME, environment variable
|
||||
Your real-world name. This is used to initialize the variable
|
||||
@code{user-full-name} (@pxref{Mail Headers}).
|
||||
@item NNTPSERVER
|
||||
@vindex NNTPSERVER, environment variable
|
||||
The name of the news server. Used by the mh and Gnus packages.
|
||||
@item ORGANIZATION
|
||||
@vindex ORGANIZATION, environment variable
|
||||
The name of the organization to which you belong. Used for setting the
|
||||
`Organization:' header in your posts from the Gnus package.
|
||||
@item PATH
|
||||
@vindex PATH, environment variable
|
||||
A colon-separated list of directories containing executable files.
|
||||
This is used to initialize the variable @code{exec-path}
|
||||
(@pxref{Shell}).
|
||||
@item PWD
|
||||
@vindex PWD, environment variable
|
||||
If set, this should be the default directory when Emacs was started.
|
||||
@item REPLYTO
|
||||
@vindex REPLYTO, environment variable
|
||||
If set, this specifies an initial value for the variable
|
||||
@code{mail-default-reply-to} (@pxref{Mail Headers}).
|
||||
@item SAVEDIR
|
||||
@vindex SAVEDIR, environment variable
|
||||
The name of a directory in which news articles are saved by default.
|
||||
Used by the Gnus package.
|
||||
@item SHELL
|
||||
@vindex SHELL, environment variable
|
||||
The name of an interpreter used to parse and execute programs run from
|
||||
inside Emacs.
|
||||
@item SMTPSERVER
|
||||
@vindex SMTPSERVER, environment variable
|
||||
The name of the outgoing mail server. This is used to initialize the
|
||||
variable @code{smtpmail-smtp-server} (@pxref{Mail Sending}).
|
||||
@cindex background mode, on @command{xterm}
|
||||
@item TERM
|
||||
@vindex TERM, environment variable
|
||||
The type of the terminal that Emacs is using. This variable must be
|
||||
set unless Emacs is run in batch mode. On MS-DOS, it defaults to
|
||||
@samp{internal}, which specifies a built-in terminal emulation that
|
||||
handles the machine's own display.
|
||||
@item TERMCAP
|
||||
@vindex TERMCAP, environment variable
|
||||
The name of the termcap library file describing how to program the
|
||||
terminal specified by @env{TERM}. This defaults to
|
||||
@file{/etc/termcap}.
|
||||
@item TMPDIR
|
||||
@vindex TMPDIR, environment variable
|
||||
@itemx TMP
|
||||
@vindex TMP, environment variable
|
||||
@itemx TEMP
|
||||
@vindex TEMP, environment variable
|
||||
These environment variables are used to initialize the variable
|
||||
@code{temporary-file-directory}, which specifies a directory in which
|
||||
to put temporary files (@pxref{Backup}). Emacs tries to use
|
||||
@env{TMPDIR} first. If that is unset, Emacs normally falls back on
|
||||
@file{/tmp}, but on MS-Windows and MS-DOS it instead falls back on
|
||||
@env{TMP}, then @env{TEMP}, and finally @file{c:/temp}.
|
||||
|
||||
@item TZ
|
||||
@vindex TZ, environment variable
|
||||
This specifies the current time zone and possibly also daylight
|
||||
saving time information. On MS-DOS, if @env{TZ} is not set in the
|
||||
environment when Emacs starts, Emacs defines a default value as
|
||||
appropriate for the country code returned by DOS@. On MS-Windows, Emacs
|
||||
does not use @env{TZ} at all.
|
||||
@item USER
|
||||
@vindex USER, environment variable
|
||||
The user's login name. See also @env{LOGNAME}. On MS-DOS, this
|
||||
defaults to @samp{root}.
|
||||
@item VERSION_CONTROL
|
||||
@vindex VERSION_CONTROL, environment variable
|
||||
Used to initialize the @code{version-control} variable (@pxref{Backup
|
||||
Names}).
|
||||
@end vtable
|
||||
@end table
|
||||
|
||||
@node Misc Variables
|
||||
@appendixsubsec Miscellaneous Variables
|
||||
|
|
|
@ -82,14 +82,12 @@ top-level @code{Emacs} group. It looks like this, in part:
|
|||
@c @page
|
||||
@smallexample
|
||||
@group
|
||||
To apply changes, use the Save or Set buttons.
|
||||
For details, see [Saving Customizations] in the [Emacs manual].
|
||||
For help, see [Easy Customization] in the [Emacs manual].
|
||||
|
||||
________________________________________ [ Search ]
|
||||
|
||||
Operate on all settings in this buffer:
|
||||
[ Set for current session ] [ Save for future sessions ]
|
||||
[ Undo edits ] [ Reset to saved ] [ Erase customizations ] [ Exit ]
|
||||
[ Revert... ] [ Apply ] [ Apply and Save ]
|
||||
|
||||
|
||||
Emacs group: Customization of the One True Editor.
|
||||
|
@ -97,7 +95,6 @@ Emacs group: Customization of the One True Editor.
|
|||
See also [Manual].
|
||||
|
||||
[Editing] : Basic text editing facilities.
|
||||
|
||||
[Convenience] : Convenience features for faster editing.
|
||||
|
||||
@var{more second-level groups}
|
||||
|
|
|
@ -138,7 +138,7 @@ instructs the scrolling commands not to fontify (@pxref{Font Lock})
|
|||
any unfontified text they scroll over, instead to assume it has the
|
||||
default face. This can cause Emacs to scroll to somewhat wrong buffer
|
||||
positions when the faces in use are not all the same size, even with
|
||||
single (i.e. without auto-repeat) scrolling operations.
|
||||
single (i.e., without auto-repeat) scrolling operations.
|
||||
|
||||
@vindex scroll-up
|
||||
@vindex scroll-down
|
||||
|
@ -441,7 +441,7 @@ it. @xref{Disabling}.
|
|||
screenfuls. It provides commands for scrolling through the buffer
|
||||
conveniently but not for changing it. Apart from the usual Emacs
|
||||
cursor motion commands, you can type @key{SPC} to scroll forward one
|
||||
windowful, @key{S-@key{SPC}} or @key{DEL} to scroll backward, and @kbd{s} to
|
||||
windowful, @kbd{S-@key{SPC}} or @key{DEL} to scroll backward, and @kbd{s} to
|
||||
start an incremental search.
|
||||
|
||||
@kindex q @r{(View mode)}
|
||||
|
@ -1201,7 +1201,7 @@ Highlight space and non-breaking space characters.
|
|||
|
||||
@item lines
|
||||
@vindex whitespace-line-column
|
||||
Highlight lines longer than 80 lines. To change the column limit,
|
||||
Highlight lines longer than 80 columns. To change the column limit,
|
||||
customize the variable @code{whitespace-line-column}.
|
||||
|
||||
@item newline
|
||||
|
|
|
@ -1368,7 +1368,7 @@ remains ``correct''. To disable automatic line number correction,
|
|||
change the variable @code{diff-update-on-the-fly} to @code{nil}.
|
||||
|
||||
Diff mode treats each hunk as an ``error message'', similar to
|
||||
Compilation mode. Thus, you can use commands such as @kbd{C-x '} to
|
||||
Compilation mode. Thus, you can use commands such as @kbd{C-x `} to
|
||||
visit the corresponding source locations. @xref{Compilation Mode}.
|
||||
|
||||
In addition, Diff mode provides the following commands to navigate,
|
||||
|
|
|
@ -955,7 +955,7 @@ bar width, change the @code{scroll-bar-width} frame parameter
|
|||
@cindex overscrolling
|
||||
If you're using Emacs on X (with GTK+ or Motif), you can customize the
|
||||
variable @code{scroll-bar-adjust-thumb-portion} to control
|
||||
@dfn{overscrolling} of the scroll bar, i.e. dragging the thumb down even
|
||||
@dfn{overscrolling} of the scroll bar, i.e., dragging the thumb down even
|
||||
when the end of the buffer is visible. If its value is
|
||||
non-@code{nil}, the scroll bar can be dragged downwards even if the
|
||||
end of the buffer is shown; if @code{nil}, the thumb will be at the
|
||||
|
|
|
@ -848,7 +848,7 @@ shifting the original text to the right.
|
|||
The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) toggles
|
||||
whether the region-rectangle or the standard region is highlighted
|
||||
(first activating the region if necessary). When this mode is enabled,
|
||||
commands that resize the region (@kbd{C-f}, @kbd{C-n} etc.) do
|
||||
commands that resize the region (@kbd{C-f}, @kbd{C-n} etc.)@: do
|
||||
so in a rectangular fashion, and killing and yanking operate on the
|
||||
rectangle. @xref{Killing}. The mode persists only as long as the
|
||||
region is active.
|
||||
|
|
|
@ -622,7 +622,7 @@ typed @kbd{M-p}), Emacs tries fetching from a list of default
|
|||
arguments: values that you are likely to enter. You can think of this
|
||||
as moving through the ``future history'' list.
|
||||
|
||||
If you edit the text inserted by the @kbd{M-p} or @key{M-n}
|
||||
If you edit the text inserted by the @kbd{M-p} or @kbd{M-n}
|
||||
minibuffer history commands, this does not change its entry in the
|
||||
history list. However, the edited argument does go at the end of the
|
||||
history list when you submit it.
|
||||
|
|
|
@ -1426,7 +1426,7 @@ char mode.
|
|||
|
||||
@table @kbd
|
||||
@item C-c C-c
|
||||
Send a literal @key{C-c} to the sub-shell.
|
||||
Send a literal @kbd{C-c} to the sub-shell.
|
||||
|
||||
@item C-c @var{char}
|
||||
This is equivalent to @kbd{C-x @var{char}} in normal Emacs. For
|
||||
|
|
|
@ -351,7 +351,7 @@ long file name support, set the environment variable @env{LFN} to
|
|||
DOS programs to access long file names, so Emacs built for MS-DOS will
|
||||
only see their short 8+3 aliases.
|
||||
|
||||
@cindex @env{HOME} directory under MS-DOS
|
||||
@cindex HOME directory under MS-DOS
|
||||
MS-DOS has no notion of home directory, so Emacs on MS-DOS pretends
|
||||
that the directory where it is installed is the value of the @env{HOME}
|
||||
environment variable. That is, if your Emacs binary,
|
||||
|
|
|
@ -249,7 +249,42 @@ removable and remote volumes, where this could potentially slow down
|
|||
Dired and other related features. The value of @code{nil} means never
|
||||
issue those system calls. Non-@code{nil} values are more useful on
|
||||
NTFS volumes, which support hard links and file security, than on FAT,
|
||||
FAT32, and XFAT volumes.
|
||||
FAT32, and exFAT volumes.
|
||||
|
||||
@cindex file names, invalid characters on MS-Windows
|
||||
Unlike Unix, MS-Windows file systems restrict the set of characters
|
||||
that can be used in a file name. The following characters are not
|
||||
allowed:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Shell redirection symbols @samp{<}, @samp{>}, and @samp{|}.
|
||||
|
||||
@item
|
||||
Colon @samp{:} (except after the drive letter).
|
||||
|
||||
@item
|
||||
Forward slash @samp{/} and backslash @samp{\} (except as directory
|
||||
separators).
|
||||
|
||||
@item
|
||||
Wildcard characters @samp{*} and @samp{?}.
|
||||
|
||||
@item
|
||||
Control characters whose codepoints are 1 through 31 decimal. In
|
||||
particular, newlines in file names are not allowed.
|
||||
|
||||
@item
|
||||
The null character, whose codepoint is zero (this limitation exists on
|
||||
Unix filesystems as well).
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
In addition, referencing any file whose name matches a DOS character
|
||||
device, such as @file{NUL} or @file{LPT1} or @file{PRN} or @file{CON},
|
||||
with or without any file-name extension, will always resolve to those
|
||||
character devices, in any directory. Therefore, only use such file
|
||||
names when you want to use the corresponding character device.
|
||||
|
||||
@node ls in Lisp
|
||||
@section Emulation of @code{ls} on MS-Windows
|
||||
|
@ -390,7 +425,7 @@ names, which might cause misalignment of columns in Dired display.
|
|||
|
||||
@node Windows HOME
|
||||
@section HOME and Startup Directories on MS-Windows
|
||||
@cindex @code{HOME} directory on MS-Windows
|
||||
@cindex HOME directory on MS-Windows
|
||||
|
||||
The Windows equivalent of @code{HOME} is the @dfn{user-specific
|
||||
application data directory}. The actual location depends on the
|
||||
|
|
|
@ -265,123 +265,101 @@ the list of supported language environments, and use the command
|
|||
for more information about the language environment @var{lang-env}.
|
||||
Supported language environments include:
|
||||
|
||||
@c @cindex entries below are split between portions of the list to
|
||||
@c make them more accurate, i.e., land on the line that mentions the
|
||||
@c language. However, makeinfo 4.x doesn't fill inside @quotation
|
||||
@c lines that follow a @cindex entry and whose text has no whitespace.
|
||||
@c To work around, we group the language environments together, so
|
||||
@c that the blank that separates them triggers refill.
|
||||
@quotation
|
||||
@cindex ASCII
|
||||
ASCII,
|
||||
@cindex Arabic
|
||||
Arabic,
|
||||
ASCII, Arabic,
|
||||
@cindex Belarusian
|
||||
Belarusian,
|
||||
@cindex Bengali
|
||||
Bengali,
|
||||
Belarusian, Bengali,
|
||||
@cindex Brazilian Portuguese
|
||||
Brazilian Portuguese,
|
||||
@cindex Bulgarian
|
||||
Bulgarian,
|
||||
Brazilian Portuguese, Bulgarian,
|
||||
@cindex Burmese
|
||||
Burmese,
|
||||
@cindex Cham
|
||||
Cham,
|
||||
Burmese, Cham,
|
||||
@cindex Chinese
|
||||
Chinese-BIG5, Chinese-CNS, Chinese-EUC-TW, Chinese-GB,
|
||||
Chinese-GB18030, Chinese-GBK,
|
||||
@cindex Croatian
|
||||
Croatian,
|
||||
@cindex Cyrillic
|
||||
Cyrillic-ALT, Cyrillic-ISO, Cyrillic-KOI8,
|
||||
Croatian, Cyrillic-ALT, Cyrillic-ISO, Cyrillic-KOI8,
|
||||
@cindex Czech
|
||||
Czech,
|
||||
@cindex Devanagari
|
||||
Devanagari,
|
||||
Czech, Devanagari,
|
||||
@cindex Dutch
|
||||
Dutch,
|
||||
@cindex English
|
||||
English,
|
||||
Dutch, English,
|
||||
@cindex Esperanto
|
||||
Esperanto,
|
||||
@cindex Ethiopic
|
||||
Ethiopic,
|
||||
Esperanto, Ethiopic,
|
||||
@cindex French
|
||||
French,
|
||||
@cindex Georgian
|
||||
Georgian,
|
||||
French, Georgian,
|
||||
@cindex German
|
||||
German,
|
||||
@cindex Greek
|
||||
Greek,
|
||||
@cindex Gujarati
|
||||
Gujarati,
|
||||
German, Greek, Gujarati,
|
||||
@cindex Hebrew
|
||||
Hebrew,
|
||||
@cindex IPA
|
||||
IPA,
|
||||
Hebrew, IPA,
|
||||
@cindex Italian
|
||||
Italian,
|
||||
@cindex Japanese
|
||||
Japanese,
|
||||
@cindex Kannada
|
||||
Kannada,
|
||||
Japanese, Kannada,
|
||||
@cindex Khmer
|
||||
Khmer,
|
||||
@cindex Korean
|
||||
Korean,
|
||||
@cindex Lao
|
||||
Lao,
|
||||
Khmer, Korean, Lao,
|
||||
@cindex Latin
|
||||
Latin-1, Latin-2, Latin-3, Latin-4, Latin-5, Latin-6, Latin-7,
|
||||
Latin-8, Latin-9,
|
||||
@cindex Latvian
|
||||
Latvian,
|
||||
@cindex Lithuanian
|
||||
Lithuanian,
|
||||
Latvian, Lithuanian,
|
||||
@cindex Malayalam
|
||||
Malayalam,
|
||||
@cindex Oriya
|
||||
Oriya,
|
||||
Malayalam, Oriya,
|
||||
@cindex Persian
|
||||
Persian,
|
||||
@cindex Polish
|
||||
Polish,
|
||||
Persian, Polish,
|
||||
@cindex Punjabi
|
||||
Punjabi,
|
||||
@cindex Romanian
|
||||
Romanian,
|
||||
Punjabi, Romanian,
|
||||
@cindex Russian
|
||||
Russian,
|
||||
@cindex Sinhala
|
||||
Sinhala,
|
||||
Russian, Sinhala,
|
||||
@cindex Slovak
|
||||
Slovak,
|
||||
@cindex Slovenian
|
||||
Slovenian,
|
||||
@cindex Spanish
|
||||
Spanish,
|
||||
Slovak, Slovenian, Spanish,
|
||||
@cindex Swedish
|
||||
Swedish,
|
||||
@cindex TaiViet
|
||||
TaiViet,
|
||||
Swedish, TaiViet,
|
||||
@cindex Tajik
|
||||
Tajik,
|
||||
@cindex Tamil
|
||||
Tamil,
|
||||
Tajik, Tamil,
|
||||
@cindex Telugu
|
||||
Telugu,
|
||||
@cindex Thai
|
||||
Thai,
|
||||
Telugu, Thai,
|
||||
@cindex Tibetan
|
||||
Tibetan,
|
||||
@cindex Turkish
|
||||
Turkish,
|
||||
Tibetan, Turkish,
|
||||
@cindex UTF-8
|
||||
UTF-8,
|
||||
@cindex Ukrainian
|
||||
Ukrainian,
|
||||
UTF-8, Ukrainian,
|
||||
@cindex Vietnamese
|
||||
Vietnamese,
|
||||
@cindex Welsh
|
||||
Welsh, and
|
||||
Vietnamese, Welsh,
|
||||
@cindex Windows-1255
|
||||
Windows-1255.
|
||||
and Windows-1255.
|
||||
@end quotation
|
||||
|
||||
To display the script(s) used by your language environment on a
|
||||
|
|
|
@ -383,7 +383,7 @@ the preceding lines; if the region is active, @key{TAB} indents each
|
|||
line within the region, not just the current line.
|
||||
|
||||
The command @key{RET} (@code{newline}), which was documented in
|
||||
@ref{Inserting Text}, does the same as @key{C-j} followed by
|
||||
@ref{Inserting Text}, does the same as @kbd{C-j} followed by
|
||||
@key{TAB}: it inserts a new line, then adjusts the line's indentation.
|
||||
|
||||
When indenting a line that starts within a parenthetical grouping,
|
||||
|
@ -559,7 +559,7 @@ predefined styles, including @code{gnu}, @code{k&r}, @code{bsd},
|
|||
styles are primarily intended for one language, but any of them can be
|
||||
used with any of the languages supported by these modes. To find out
|
||||
what a style looks like, select it and reindent some code, e.g., by
|
||||
typing @key{C-M-q} at the start of a function definition.
|
||||
typing @kbd{C-M-q} at the start of a function definition.
|
||||
|
||||
@kindex C-c . @r{(C mode)}
|
||||
@findex c-set-style
|
||||
|
@ -870,7 +870,9 @@ mode to skip whitespace forward before deciding whether to skip over
|
|||
the closing delimiter.
|
||||
@end itemize
|
||||
|
||||
To toggle Electric Pair mode, type @kbd{M-x electric-pair-mode}.
|
||||
To toggle Electric Pair mode, type @kbd{M-x electric-pair-mode}. To
|
||||
toggle the mode in a single buffer, use @kbd{M-x
|
||||
electric-pair-local-mode}.
|
||||
|
||||
@node Comments
|
||||
@section Manipulating Comments
|
||||
|
@ -1666,7 +1668,7 @@ Delete the entire block of whitespace after point (@code{c-hungry-delete-forward
|
|||
As an alternative to the above commands, you can enable @dfn{hungry
|
||||
delete mode}. When this feature is enabled (indicated by @samp{/h} in
|
||||
the mode line after the mode name), a single @key{DEL} deletes all
|
||||
preceding whitespace, not just one space, and a single @kbd{C-c C-d}
|
||||
preceding whitespace, not just one space, and a single @kbd{C-d}
|
||||
(but @emph{not} plain @key{Delete}) deletes all following whitespace.
|
||||
|
||||
@table @kbd
|
||||
|
|
|
@ -1293,7 +1293,7 @@ executed.
|
|||
|
||||
@kindex S-TAB @r{(Org Mode)}
|
||||
@findex org-shifttab
|
||||
Typing @key{S-TAB} (@code{org-shifttab}) anywhere in an Org mode
|
||||
Typing @kbd{S-@key{TAB}} (@code{org-shifttab}) anywhere in an Org mode
|
||||
buffer cycles the visibility of the entire outline structure, between
|
||||
(i) showing only top-level heading lines, (ii) showing all heading
|
||||
lines but no body lines, and (iii) showing everything.
|
||||
|
|
|
@ -342,7 +342,7 @@ Here, @var{backtrace} is the name of a text file containing a copy of
|
|||
the backtrace, @var{bindir} is the name of the directory that
|
||||
contains the Emacs executable, and @var{emacs-binary} is the name of
|
||||
the Emacs executable file, normally @file{emacs} on GNU and Unix
|
||||
systems and @file{emacs.exe} on MS-Windows and MS-DOS. Omit the
|
||||
systems and @file{emacs.exe} on MS-Windows and MS-DOS@. Omit the
|
||||
@option{-p} option if your version of @command{addr2line} is too old
|
||||
to have it.
|
||||
|
||||
|
@ -1142,7 +1142,7 @@ making diffs of C code. This shows the name of the function that each
|
|||
change occurs in.
|
||||
|
||||
If you are using the Emacs repository, make sure your copy is
|
||||
up-to-date (e.g. with @code{git pull}). You can commit your changes
|
||||
up-to-date (e.g., with @code{git pull}). You can commit your changes
|
||||
to a private branch and generate a patch from the master version by
|
||||
using @code{git format-patch master}. Or you can leave your changes
|
||||
uncommitted and use @code{git diff}.
|
||||
|
@ -1173,7 +1173,7 @@ explanation in comments in the code. It will be more useful there.
|
|||
Please look at the change log entries of recent commits to see what
|
||||
sorts of information to put in, and to learn the style that we use. Note that,
|
||||
unlike some other projects, we do require change logs for
|
||||
documentation, i.e. Texinfo files.
|
||||
documentation, i.e., Texinfo files.
|
||||
@xref{Change Log},
|
||||
@ifset WWW_GNU_ORG
|
||||
see
|
||||
|
@ -1389,7 +1389,7 @@ user freedom and to defend the rights of all free software users.
|
|||
For general information, see the website @url{http://www.fsf.org/}.
|
||||
|
||||
Generally speaking, for non-trivial contributions to GNU Emacs we
|
||||
require that the copyright be assigned to the FSF. For the reasons
|
||||
require that the copyright be assigned to the FSF@. For the reasons
|
||||
behind this, see @url{http://www.gnu.org/licenses/why-assign.html}.
|
||||
|
||||
Copyright assignment is a simple process. Residents of some countries
|
||||
|
@ -1408,7 +1408,7 @@ is not enough). Also, a disclaimer cannot be applied to future work, it
|
|||
has to be repeated each time you want to send something new.
|
||||
|
||||
We can accept small changes (roughly, fewer than 15 lines) without
|
||||
an assignment. This is a cumulative limit (e.g. three separate 5 line
|
||||
an assignment. This is a cumulative limit (e.g., three separate 5 line
|
||||
patches) over all your contributions.
|
||||
|
||||
@node Service
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2015-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp-intro.texi: `save-excursion' doesn't save&restore the mark.
|
||||
|
||||
2014-12-31 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Less 'make' chatter for Emacs doc
|
||||
|
|
|
@ -352,7 +352,7 @@ How To Write Function Definitions
|
|||
* if:: What if?
|
||||
* else:: If--then--else expressions.
|
||||
* Truth & Falsehood:: What Lisp considers false and true.
|
||||
* save-excursion:: Keeping track of point, mark, and buffer.
|
||||
* save-excursion:: Keeping track of point and buffer.
|
||||
* Review::
|
||||
* defun Exercises::
|
||||
|
||||
|
@ -387,7 +387,7 @@ Truth and Falsehood in Emacs Lisp
|
|||
* Point and mark:: A review of various locations.
|
||||
* Template for save-excursion::
|
||||
|
||||
A Few Buffer--Related Functions
|
||||
A Few Buffer-Related Functions
|
||||
|
||||
* Finding More:: How to find more information.
|
||||
* simplified-beginning-of-buffer:: Shows @code{goto-char},
|
||||
|
@ -2966,7 +2966,7 @@ symbol refers to it.)
|
|||
* if:: What if?
|
||||
* else:: If--then--else expressions.
|
||||
* Truth & Falsehood:: What Lisp considers false and true.
|
||||
* save-excursion:: Keeping track of point, mark, and buffer.
|
||||
* save-excursion:: Keeping track of point and buffer.
|
||||
* Review::
|
||||
* defun Exercises::
|
||||
@end menu
|
||||
|
@ -4159,11 +4159,11 @@ The @code{save-excursion} function is the third and final special form
|
|||
that we will discuss in this chapter.
|
||||
|
||||
In Emacs Lisp programs used for editing, the @code{save-excursion}
|
||||
function is very common. It saves the location of point and mark,
|
||||
executes the body of the function, and then restores point and mark to
|
||||
their previous positions if their locations were changed. Its primary
|
||||
function is very common. It saves the location of point,
|
||||
executes the body of the function, and then restores point to
|
||||
its previous position if its location was changed. Its primary
|
||||
purpose is to keep the user from being surprised and disturbed by
|
||||
unexpected movement of point or mark.
|
||||
unexpected movement of point.
|
||||
|
||||
@menu
|
||||
* Point and mark:: A review of various locations.
|
||||
|
@ -4201,7 +4201,7 @@ region}. Numerous commands work on the region, including
|
|||
@code{print-region}.
|
||||
|
||||
The @code{save-excursion} special form saves the locations of point and
|
||||
mark and restores those positions after the code within the body of the
|
||||
restores this position after the code within the body of the
|
||||
special form is evaluated by the Lisp interpreter. Thus, if point were
|
||||
in the beginning of a piece of text and some code moved point to the end
|
||||
of the buffer, the @code{save-excursion} would put point back to where
|
||||
|
@ -4212,16 +4212,16 @@ In Emacs, a function frequently moves point as part of its internal
|
|||
workings even though a user would not expect this. For example,
|
||||
@code{count-lines-region} moves point. To prevent the user from being
|
||||
bothered by jumps that are both unexpected and (from the user's point of
|
||||
view) unnecessary, @code{save-excursion} is often used to keep point and
|
||||
mark in the location expected by the user. The use of
|
||||
view) unnecessary, @code{save-excursion} is often used to keep point in
|
||||
the location expected by the user. The use of
|
||||
@code{save-excursion} is good housekeeping.
|
||||
|
||||
To make sure the house stays clean, @code{save-excursion} restores the
|
||||
values of point and mark even if something goes wrong in the code inside
|
||||
value of point even if something goes wrong in the code inside
|
||||
of it (or, to be more precise and to use the proper jargon, ``in case of
|
||||
abnormal exit''). This feature is very helpful.
|
||||
|
||||
In addition to recording the values of point and mark,
|
||||
In addition to recording the value of point,
|
||||
@code{save-excursion} keeps track of the current buffer, and restores
|
||||
it, too. This means you can write code that will change the buffer and
|
||||
have @code{save-excursion} switch you back to the original buffer.
|
||||
|
@ -4386,9 +4386,9 @@ For example,
|
|||
@end smallexample
|
||||
|
||||
@item save-excursion
|
||||
Record the values of point and mark and the current buffer before
|
||||
evaluating the body of this special form. Restore the values of point
|
||||
and mark and buffer afterward.
|
||||
Record the values of point and the current buffer before
|
||||
evaluating the body of this special form. Restore the value of point and
|
||||
buffer afterward.
|
||||
|
||||
@need 1250
|
||||
For example,
|
||||
|
@ -4547,7 +4547,7 @@ and if so, prints an appropriate message.
|
|||
@end itemize
|
||||
|
||||
@node Buffer Walk Through
|
||||
@chapter A Few Buffer--Related Functions
|
||||
@chapter A Few Buffer-Related Functions
|
||||
|
||||
In this chapter we study in detail several of the functions used in GNU
|
||||
Emacs. This is called a ``walk-through''. These functions are used as
|
||||
|
@ -5201,8 +5201,8 @@ of the two-element list, @code{(oldbuf (current-buffer))}.
|
|||
The body of the @code{let} expression in @code{append-to-buffer}
|
||||
consists of a @code{save-excursion} expression.
|
||||
|
||||
The @code{save-excursion} function saves the locations of point and
|
||||
mark, and restores them to those positions after the expressions in the
|
||||
The @code{save-excursion} function saves the location of point, and restores it
|
||||
to that position after the expressions in the
|
||||
body of the @code{save-excursion} complete execution. In addition,
|
||||
@code{save-excursion} keeps track of the original buffer, and
|
||||
restores it. This is how @code{save-excursion} is used in
|
||||
|
@ -5390,7 +5390,7 @@ Conventionally bound to @kbd{M-.} (that's a period following the
|
|||
@key{META} key).
|
||||
|
||||
@item save-excursion
|
||||
Save the location of point and mark and restore their values after the
|
||||
Save the location of point and restore its value after the
|
||||
arguments to @code{save-excursion} have been evaluated. Also, remember
|
||||
the current buffer and return to it.
|
||||
|
||||
|
@ -5896,7 +5896,7 @@ the value of point, which will be at the end of the inserted text, is
|
|||
recorded in the variable @code{newmark}.
|
||||
|
||||
After the body of the outer @code{save-excursion} is evaluated, point
|
||||
and mark are relocated to their original places.
|
||||
is relocated to its original place.
|
||||
|
||||
However, it is convenient to locate a mark at the end of the newly
|
||||
inserted text and locate point at its beginning. The @code{newmark}
|
||||
|
@ -6685,8 +6685,8 @@ restored just before the completion of the function by the
|
|||
@code{save-restriction} special form.
|
||||
|
||||
The call to @code{widen} is followed by @code{save-excursion}, which
|
||||
saves the location of the cursor (i.e., of point) and of the mark, and
|
||||
restores them after the code in the body of the @code{save-excursion}
|
||||
saves the location of the cursor (i.e., of point), and
|
||||
restores it after the code in the body of the @code{save-excursion}
|
||||
uses the @code{beginning-of-line} function to move point.
|
||||
|
||||
(Note that the @code{(widen)} expression comes between the
|
||||
|
@ -6757,8 +6757,8 @@ it, and @code{count-lines} counts only the lines @emph{before} the
|
|||
current line.
|
||||
|
||||
After @code{count-lines} has done its job, and the message has been
|
||||
printed in the echo area, the @code{save-excursion} restores point and
|
||||
mark to their original positions; and @code{save-restriction} restores
|
||||
printed in the echo area, the @code{save-excursion} restores point to
|
||||
its original position; and @code{save-restriction} restores
|
||||
the original narrowing, if any.
|
||||
|
||||
@node narrow Exercise
|
||||
|
@ -12114,7 +12114,7 @@ Internet, see
|
|||
@uref{http://www.gnu.org/software/texinfo/manual/texinfo/}
|
||||
@end ifhtml
|
||||
@iftex
|
||||
``Indicating Definitions, Commands, etc.'' in @cite{Texinfo, The GNU
|
||||
``Indicating Definitions, Commands, etc.''@: in @cite{Texinfo, The GNU
|
||||
Documentation Format}.
|
||||
@end iftex
|
||||
@end itemize
|
||||
|
|
|
@ -1,3 +1,99 @@
|
|||
2015-03-29 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* objects.texi (Equality Predicates): Fix typo in example.
|
||||
|
||||
2015-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* positions.texi (Excursions, Narrowing): `save-excursion' does not
|
||||
save&restore the mark any more.
|
||||
|
||||
2015-03-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* numbers.texi (Float Basics): Improve ldexp documentation.
|
||||
|
||||
2015-03-23 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* commands.texi (Event Input Misc): Fix incorrect usage of @code.
|
||||
(Bug#20174)
|
||||
(Accessing Mouse): Expand documentation of 'posn-actual-col-row'.
|
||||
(Bug#20169)
|
||||
More accurate description of 'posn-object-x-y'. (Bug#20168)
|
||||
|
||||
2015-03-23 Daiki Ueno <ueno@gnu.org>
|
||||
|
||||
* processes.texi (Asynchronous Processes): Mention `make-process'.
|
||||
|
||||
2015-03-18 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* minibuf.texi (Basic Completion): Fix a typo. (Bug#20108)
|
||||
|
||||
2015-03-09 Nicolas Petton <nicolas@petton.fr>
|
||||
|
||||
* sequences.texi (seq-into): Add documentation for the new
|
||||
seq-into function.
|
||||
|
||||
2015-03-03 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* processes.texi (Synchronous Processes): Update documentation of
|
||||
call-process-shell-command and process-file-shell-command.
|
||||
|
||||
2015-03-03 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* control.texi (Generators): Correct missing word. Clarify which
|
||||
forms are legal in which parts of `unwind-protect'. Fix orphaned
|
||||
close parenthesis.
|
||||
|
||||
* objects.texi (Finalizer Type): New section for finalizer objects.
|
||||
(Type Predicates): Mention finalizers in `type-of' documentation.
|
||||
* elisp.texi (Top): Link to finalizer type.
|
||||
|
||||
2015-03-02 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* control.texi (Generators): New section
|
||||
* elisp.text: Reference new section.
|
||||
|
||||
2015-02-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* searching.texi (Char Classes): Update the documentation of
|
||||
[:alpha:] and [:alnum:]. (Bug#19878)
|
||||
|
||||
2015-02-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* os.texi (Startup Summary):
|
||||
* display.texi (Window Systems): Mention peculiarities of daemon
|
||||
mode on MS-Windows.
|
||||
|
||||
2015-02-11 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* frames.texi (Size Parameters): Update description of
|
||||
fullscreen frame parameter. Describe `fullscreen-restore'
|
||||
parameter.
|
||||
|
||||
2015-02-09 Nicolas Petton <nicolas@petton.fr>
|
||||
|
||||
* sequences.texi (Sequence Functions): Update documentation
|
||||
examples for seq-group-by.
|
||||
|
||||
2015-02-09 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* positions.texi (Screen Lines): Update the documentation of
|
||||
vertical-motion to document the new additional argument.
|
||||
|
||||
2015-02-06 Nicolas Petton <nicolas@petton.fr>
|
||||
|
||||
* sequences.texi (Sequence Functions): Add documentation for
|
||||
seq-mapcat, seq-partition and seq-group-by.
|
||||
|
||||
2015-02-05 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* display.texi (Size of Displayed Text): Remove description of
|
||||
optional argument BUFFER of `window-text-pixel-size'.
|
||||
|
||||
2015-02-01 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* display.texi (Size of Displayed Text): Describe optional
|
||||
argument BUFFER of `window-text-pixel-size'.
|
||||
|
||||
2015-01-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* searching.texi (Regexp Search): Add a cross-reference to "Syntax
|
||||
|
|
|
@ -132,7 +132,7 @@ byte compiler to warn if the command is called from Lisp. The output
|
|||
of @code{describe-function} will include similar information.
|
||||
The value of the property can be: a string, which the byte-compiler
|
||||
will use directly in its warning (it should end with a period, and not
|
||||
start with a capital, e.g. ``use @dots{} instead.''); @code{t}; any
|
||||
start with a capital, e.g., ``use @dots{} instead.''); @code{t}; any
|
||||
other symbol, which should be an alternative function to use in Lisp
|
||||
code.
|
||||
|
||||
|
@ -1043,8 +1043,8 @@ the current Emacs session. If a symbol has not yet been so used,
|
|||
@end defun
|
||||
|
||||
@menu
|
||||
* Keyboard Events:: Ordinary characters--keys with symbols on them.
|
||||
* Function Keys:: Function keys--keys with names, not symbols.
|
||||
* Keyboard Events:: Ordinary characters -- keys with symbols on them.
|
||||
* Function Keys:: Function keys -- keys with names, not symbols.
|
||||
* Mouse Events:: Overview of mouse events.
|
||||
* Click Events:: Pushing and releasing a mouse button.
|
||||
* Drag Events:: Moving the mouse before releasing the button.
|
||||
|
@ -2085,7 +2085,13 @@ Return the actual row and column in @var{position}, as a cons cell
|
|||
@code{(@var{col} . @var{row})}. The values are the actual row and
|
||||
column numbers in the window given by @var{position}. @xref{Click
|
||||
Events}, for details. The function returns @code{nil} if
|
||||
@var{position} does not include actual position values.
|
||||
@var{position} does not include actual position values; in that case
|
||||
@code{posn-col-row} can be used to get approximate values.
|
||||
|
||||
Note that this function doesn't account for the visual width of
|
||||
characters on display, like the number of visual columns taken by a
|
||||
tab character or an image. If you need the coordinates in canonical
|
||||
character units, use @code{posn-col-row} instead.
|
||||
@end defun
|
||||
|
||||
@defun posn-string position
|
||||
|
@ -2107,8 +2113,9 @@ Return the image or string object in @var{position}, either
|
|||
@defun posn-object-x-y position
|
||||
Return the pixel-based x and y coordinates relative to the upper left
|
||||
corner of the object in @var{position} as a cons cell @code{(@var{dx}
|
||||
. @var{dy})}. If the @var{position} is a buffer position, return the
|
||||
relative position in the character at that position.
|
||||
. @var{dy})}. If the @var{position} is on buffer text, return the
|
||||
relative position of the buffer-text character closest to that
|
||||
position.
|
||||
@end defun
|
||||
|
||||
@defun posn-object-width-height position
|
||||
|
@ -2811,7 +2818,7 @@ most recently unread will be reread first.
|
|||
Events read from this list are not normally added to the current
|
||||
command's key sequence (as returned by, e.g., @code{this-command-keys}),
|
||||
as the events will already have been added once as they were read for
|
||||
the first time. An element of the form @code{(@code{t} . @var{event})}
|
||||
the first time. An element of the form @w{@code{(t . @var{event})}}
|
||||
forces @var{event} to be added to the current command's key sequence.
|
||||
@end defvar
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ structure constructs (@pxref{Macros}).
|
|||
* Conditionals:: @code{if}, @code{cond}, @code{when}, @code{unless}.
|
||||
* Combining Conditions:: @code{and}, @code{or}, @code{not}.
|
||||
* Iteration:: @code{while} loops.
|
||||
* Generators:: Generic sequences and coroutines.
|
||||
* Nonlocal Exits:: Jumping out of a sequence.
|
||||
@end menu
|
||||
|
||||
|
@ -620,6 +621,123 @@ Here is an example of using @code{dotimes} to do something 100 times:
|
|||
@end example
|
||||
@end defmac
|
||||
|
||||
@node Generators
|
||||
@section Generators
|
||||
@cindex generators
|
||||
|
||||
A @dfn{generator} is a function that produces a potentially-infinite
|
||||
stream of values. Each time the function produces a value, it
|
||||
suspends itself and waits for a caller to request the next value.
|
||||
|
||||
@defmac iter-defun name args [doc] [declare] [interactive] body@dots{}
|
||||
@code{iter-defun} defines a generator function. A generator function
|
||||
has the same signature as a normal function, but works differently.
|
||||
Instead of executing @var{body} when called, a generator function
|
||||
returns an iterator object. That iterator runs @var{body} to generate
|
||||
values, emitting a value and pausing where @code{iter-yield} or
|
||||
@code{iter-yield-from} appears. When @var{body} returns normally,
|
||||
@code{iter-next} signals @code{iter-end-of-sequence} with @var{body}'s
|
||||
result as its condition data.
|
||||
|
||||
Any kind of Lisp code is valid inside @var{body}, but
|
||||
@code{iter-yield} and @code{iter-yield-from} cannot appear inside
|
||||
@code{unwind-protect} forms.
|
||||
|
||||
@end defmac
|
||||
|
||||
@defmac iter-lambda args [doc] [interactive] body@dots{}
|
||||
@code{iter-lambda} produces an unnamed generator function that works
|
||||
just like a generator function produced with @code{iter-defun}.
|
||||
@end defmac
|
||||
|
||||
@defmac iter-yield value
|
||||
When it appears inside a generator function, @code{iter-yield}
|
||||
indicates that the current iterator should pause and return
|
||||
@var{value} from @code{iter-next}. @code{iter-yield} evaluates to the
|
||||
@code{value} parameter of next call to @code{iter-next}.
|
||||
@end defmac
|
||||
|
||||
@defmac iter-yield-from iterator
|
||||
@code{iter-yield-from} yields all the values that @var{iterator}
|
||||
produces and evaluates to the value that @var{iterator}'s generator
|
||||
function returns normally. While it has control, @var{iterator}
|
||||
receives values sent to the iterator using @code{iter-next}.
|
||||
@end defmac
|
||||
|
||||
To use a generator function, first call it normally, producing a
|
||||
@dfn{iterator} object. An iterator is a specific instance of a
|
||||
generator. Then use @code{iter-next} to retrieve values from this
|
||||
iterator. When there are no more values to pull from an iterator,
|
||||
@code{iter-next} raises an @code{iter-end-of-sequence} condition with
|
||||
the iterator's final value.
|
||||
|
||||
It's important to note that generator function bodies only execute
|
||||
inside calls to @code{iter-next}. A call to a function defined with
|
||||
@code{iter-defun} produces an iterator; you must ``drive'' this
|
||||
iterator with @code{iter-next} for anything interesting to happen.
|
||||
Each call to a generator function produces a @emph{different}
|
||||
iterator, each with its own state.
|
||||
|
||||
@defun iter-next iterator value
|
||||
Retrieve the next value from @var{iterator}. If there are no more
|
||||
values to be generated (because @var{iterator}'s generator function
|
||||
returned), @code{iter-next} signals the @code{iter-end-of-sequence}
|
||||
condition; the data value associated with this condition is the value
|
||||
with which @var{iterator}'s generator function returned.
|
||||
|
||||
@var{value} is sent into the iterator and becomes the value to which
|
||||
@code{iter-yield} evaluates. @var{value} is ignored for the first
|
||||
@code{iter-next} call to a given iterator, since at the start of
|
||||
@var{iterator}'s generator function, the generator function is not
|
||||
evaluating any @code{iter-yield} form.
|
||||
@end defun
|
||||
|
||||
@defun iter-close iterator
|
||||
If @var{iterator} is suspended inside an @code{unwind-protect}'s
|
||||
@code{bodyform} and becomes unreachable, Emacs will eventually run
|
||||
unwind handlers after a garbage collection pass. (Note that
|
||||
@code{iter-yield} is illegal inside an @code{unwind-protect}'s
|
||||
@code{unwindforms}.) To ensure that these handlers are run before
|
||||
then, use @code{iter-close}.
|
||||
@end defun
|
||||
|
||||
Some convenience functions are provided to make working with
|
||||
iterators easier:
|
||||
|
||||
@defmac iter-do (var iterator) body @dots{}
|
||||
Run @var{body} with @var{var} bound to each value that
|
||||
@var{iterator} produces.
|
||||
@end defmac
|
||||
|
||||
The Common Lisp loop facility also contains features for working with
|
||||
iterators. See @xref{Loop Facility,,,cl,Common Lisp Extensions}.
|
||||
|
||||
The following piece of code demonstrates some important principles of
|
||||
working with iterators.
|
||||
|
||||
@example
|
||||
(iter-defun my-iter (x)
|
||||
(iter-yield (1+ (iter-yield (1+ x))))
|
||||
;; Return normally
|
||||
-1)
|
||||
|
||||
(let* ((iter (my-iter 5))
|
||||
(iter2 (my-iter 0)))
|
||||
;; Prints 6
|
||||
(print (iter-next iter))
|
||||
;; Prints 9
|
||||
(print (iter-next iter 8))
|
||||
;; Prints 1; iter and iter2 have distinct states
|
||||
(print (iter-next iter2 nil))
|
||||
|
||||
;; We expect the iter sequence to end now
|
||||
(condition-case x
|
||||
(iter-next iter)
|
||||
(iter-end-of-sequence
|
||||
;; Prints -1, which my-iter returned normally
|
||||
(print (cdr x)))))
|
||||
@end example
|
||||
|
||||
@node Nonlocal Exits
|
||||
@section Nonlocal Exits
|
||||
@cindex nonlocal exits
|
||||
|
|
|
@ -2154,7 +2154,7 @@ stipple patterns.
|
|||
Alternative foreground color, a string. This is like @code{:foreground}
|
||||
but the color is only used as a foreground when the background color is
|
||||
near to the foreground that would have been used. This is useful for
|
||||
example when marking text (i.e. the region face). If the text has a foreground
|
||||
example when marking text (i.e., the region face). If the text has a foreground
|
||||
that is visible with the region face, that foreground is used.
|
||||
If the foreground is near the region face background,
|
||||
@code{:distant-foreground} is used instead so the text is readable.
|
||||
|
@ -6728,8 +6728,9 @@ Emacs is displaying the frame on a character-based terminal.
|
|||
This variable holds the value of @code{window-system} used for the
|
||||
first frame created by Emacs during startup. (When Emacs is invoked
|
||||
with the @option{--daemon} option, it does not create any initial
|
||||
frames, so @code{initial-window-system} is @code{nil}. @xref{Initial
|
||||
Options, daemon,, emacs, The GNU Emacs Manual}.)
|
||||
frames, so @code{initial-window-system} is @code{nil}, except on
|
||||
MS-Windows, where it is still @code{w32}. @xref{Initial Options,
|
||||
daemon,, emacs, The GNU Emacs Manual}.)
|
||||
@end defvar
|
||||
|
||||
@defun window-system &optional frame
|
||||
|
|
|
@ -316,6 +316,7 @@ Programming Types
|
|||
* Byte-Code Type:: A function written in Lisp, then compiled.
|
||||
* Autoload Type:: A type used for automatically loading seldom-used
|
||||
functions.
|
||||
* Finalizer Type:: Runs code when no longer reachable.
|
||||
|
||||
Character Type
|
||||
|
||||
|
@ -464,6 +465,7 @@ Control Structures
|
|||
* Conditionals:: @code{if}, @code{cond}, @code{when}, @code{unless}.
|
||||
* Combining Conditions:: @code{and}, @code{or}, @code{not}.
|
||||
* Iteration:: @code{while} loops.
|
||||
* Generators:: Generic sequences and coroutines.
|
||||
* Nonlocal Exits:: Jumping out of a sequence.
|
||||
|
||||
Nonlocal Exits
|
||||
|
@ -751,8 +753,8 @@ Defining Commands
|
|||
|
||||
Input Events
|
||||
|
||||
* Keyboard Events:: Ordinary characters--keys with symbols on them.
|
||||
* Function Keys:: Function keys--keys with names, not symbols.
|
||||
* Keyboard Events:: Ordinary characters -- keys with symbols on them.
|
||||
* Function Keys:: Function keys -- keys with names, not symbols.
|
||||
* Mouse Events:: Overview of mouse events.
|
||||
* Click Events:: Pushing and releasing a mouse button.
|
||||
* Drag Events:: Moving the mouse before releasing the button.
|
||||
|
|
|
@ -360,7 +360,7 @@ coordinates might be negative.
|
|||
Position of the top-left corner and size of the work area (``usable''
|
||||
space) in pixels as @samp{(@var{x} @var{y} @var{width} @var{height})}.
|
||||
This may be different from @samp{geometry} in that space occupied by
|
||||
various window manager features (docks, taskbars, etc.) may be
|
||||
various window manager features (docks, taskbars, etc.)@: may be
|
||||
excluded from the work area. Whether or not such features actually
|
||||
subtract from the work area depends on the platform and environment.
|
||||
Again, if the monitor is not the primary monitor, some of the
|
||||
|
@ -701,6 +701,7 @@ parameters represent the user's stated preference; otherwise, use
|
|||
@code{nil}.
|
||||
@end table
|
||||
|
||||
|
||||
@node Size Parameters
|
||||
@subsubsection Size Parameters
|
||||
@cindex window size on display
|
||||
|
@ -731,22 +732,52 @@ user-position}) does for the position parameters @code{top} and
|
|||
@vindex fullscreen, a frame parameter
|
||||
@item fullscreen
|
||||
Specify that width, height or both shall be maximized. The value
|
||||
@code{fullwidth} specifies that width shall be as wide as possible.
|
||||
The value @code{fullheight} specifies that height shall be as tall as
|
||||
@code{fullwidth} specifies that width shall be as wide as possible. The
|
||||
value @code{fullheight} specifies that height shall be as tall as
|
||||
possible. The value @code{fullboth} specifies that both the width and
|
||||
the height shall be set to the size of the screen. The value
|
||||
@code{maximized} specifies that the frame shall be maximized. The
|
||||
difference between @code{maximized} and @code{fullboth} is that the
|
||||
former can still be resized by dragging window manager decorations
|
||||
with the mouse, while the latter really covers the whole screen and
|
||||
does not allow resizing by mouse dragging.
|
||||
@code{maximized} specifies that the frame shall be maximized.
|
||||
|
||||
The difference between @code{maximized} and @code{fullboth} is that a
|
||||
maximized frame usually keeps its title bar and the buttons for resizing
|
||||
and closing the frame. Also, maximized frames typically avoid hiding
|
||||
any task bar or panels displayed on the desktop. ``Fullboth'' frames,
|
||||
on the other hand, usually omit the title bar and occupy the entire
|
||||
available screen space.
|
||||
|
||||
``Fullheight'' and ``fullwidth'' frames are more similar to maximized
|
||||
frames in this regard. However, these typically display an external
|
||||
border which might be absent with maximized frames. Hence the heights
|
||||
of maximized and fullheight frames and the widths of maximized and
|
||||
fullwidth frames often differ by a few pixels.
|
||||
|
||||
With some window managers you may have to customize the variable
|
||||
@code{frame-resize-pixelwise} (@pxref{Size and Position}) to a
|
||||
non-@code{nil} value in order to make a frame appear ``maximized'' or
|
||||
``fullscreen''.
|
||||
@code{frame-resize-pixelwise} (@pxref{Size and Position}) in order to
|
||||
make a frame truly appear ``maximized'' or ``fullscreen''. Moreover,
|
||||
some window managers might not support smooth transition between the
|
||||
various fullscreen or maximization states. Customizing the variable
|
||||
@code{x-frame-normalize-before-maximize} can help to overcome that.
|
||||
|
||||
@vindex fullscreen-restore, a frame parameter
|
||||
@item fullscreen-restore
|
||||
This parameter specifies the desired ``fullscreen'' state of the frame
|
||||
after invoking the @code{toggle-frame-fullscreen} command (@pxref{Frame
|
||||
Commands,,, emacs, The GNU Emacs Manual}) in the ``fullboth'' state.
|
||||
Normally this parameter is installed automatically by that command when
|
||||
toggling the state to fullboth. If, however, you start Emacs in the
|
||||
fullboth state, you have to specify the desired behavior in your initial
|
||||
file as, for example
|
||||
|
||||
@example
|
||||
(setq default-frame-alist
|
||||
'((fullscreen . fullboth) (fullscreen-restore . fullheight)))
|
||||
@end example
|
||||
|
||||
This will give a new frame full height after typing in it @key{F11} for
|
||||
the first time.
|
||||
@end table
|
||||
|
||||
|
||||
@node Layout Parameters
|
||||
@subsubsection Layout Parameters
|
||||
@cindex layout parameters of frames
|
||||
|
@ -1187,7 +1218,7 @@ These functions return the canonical height and width of a character in
|
|||
@var{frame}, measured in pixels. Together, these values establish the
|
||||
size of the default font on @var{frame}. The values depend on the
|
||||
choice of font for @var{frame}, see @ref{Font and Color Parameters}.
|
||||
@end defun
|
||||
@end defun
|
||||
|
||||
The default font can be also set directly with the following function:
|
||||
|
||||
|
|
|
@ -1222,7 +1222,7 @@ This macro is the handy way to add the advice @var{function} to the function
|
|||
stored in @var{place} (@pxref{Generalized Variables}).
|
||||
|
||||
@var{where} determines how @var{function} is composed with the
|
||||
existing function, e.g. whether @var{function} should be called before, or
|
||||
existing function, e.g., whether @var{function} should be called before, or
|
||||
after the original function. @xref{Advice combinators}, for the list of
|
||||
available ways to compose the two functions.
|
||||
|
||||
|
@ -1310,7 +1310,7 @@ and its properties.
|
|||
@defun advice-eval-interactive-spec spec
|
||||
Evaluate the interactive @var{spec} just like an interactive call to a function
|
||||
with such a spec would, and then return the corresponding list of arguments
|
||||
that was built. E.g. @code{(advice-eval-interactive-spec "r\nP")} will
|
||||
that was built. E.g., @code{(advice-eval-interactive-spec "r\nP")} will
|
||||
return a list of three elements, containing the boundaries of the region and
|
||||
the current prefix argument.
|
||||
@end defun
|
||||
|
|
|
@ -1624,7 +1624,7 @@ similar advice may apply to the unsigned counterparts (e.g.,
|
|||
of @code{intptr_t}).
|
||||
|
||||
@item
|
||||
Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF.
|
||||
Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF@.
|
||||
More generally, prefer @code{int} for integers known to be in
|
||||
@code{int} range, e.g., screen column counts.
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ suffix), unless it contains an explicit directory name.
|
|||
|
||||
If the option @code{load-prefer-newer} is non-@code{nil}, then when
|
||||
searching suffixes, @code{load} selects whichever version of a file
|
||||
(@samp{.elc}, @samp{.el}, etc.) has been modified most recently.
|
||||
(@samp{.elc}, @samp{.el}, etc.)@: has been modified most recently.
|
||||
|
||||
If @var{filename} is a relative file name, such as @file{foo} or
|
||||
@file{baz/foo.bar}, @code{load} searches for the file using the variable
|
||||
|
|
|
@ -102,7 +102,7 @@ the minibuffer is in a separate frame. @xref{Minibuffers and Frames}.
|
|||
When Emacs is running in batch mode, any request to read from the
|
||||
minibuffer actually reads a line from the standard input descriptor that
|
||||
was supplied when Emacs was started. This supports only basic input:
|
||||
none of the special minibuffer features (history, completion, etc.)
|
||||
none of the special minibuffer features (history, completion, etc.)@:
|
||||
are available in batch mode.
|
||||
|
||||
@node Text from Minibuffer
|
||||
|
@ -723,7 +723,7 @@ just one matching completion, and the match is exact, it returns
|
|||
@code{t}. Otherwise, it returns the longest initial sequence common
|
||||
to all possible matching completions.
|
||||
|
||||
If @var{collection} is an list, the permissible completions are
|
||||
If @var{collection} is a list, the permissible completions are
|
||||
specified by the elements of the list, each of which should be either
|
||||
a string, or a cons cell whose @sc{car} is either a string or a symbol
|
||||
(a symbol is converted to a string using @code{symbol-name}). If the
|
||||
|
|
|
@ -261,13 +261,19 @@ If @var{x} is finite, then @var{s} is a floating-point number between 0.5
|
|||
@math{x = s 2^e}.
|
||||
@end tex
|
||||
If @var{x} is zero or infinity, then @var{s} is the same as @var{x}.
|
||||
If @var{x} is a NaN, then @var{s} is also a NaN.
|
||||
If @var{x} is a NaN, then @var{s} is also a NaN@.
|
||||
If @var{x} is zero, then @var{e} is 0.
|
||||
@end defun
|
||||
|
||||
@defun ldexp sig &optional exp
|
||||
This function returns a floating-point number corresponding to the
|
||||
significand @var{sig} and exponent @var{exp}.
|
||||
@defun ldexp s e
|
||||
Given a numeric significand @var{s} and an integer exponent @var{e},
|
||||
this function returns the floating point number
|
||||
@ifnottex
|
||||
@var{s} * 2**@var{e}.
|
||||
@end ifnottex
|
||||
@tex
|
||||
@math{s 2^e}.
|
||||
@end tex
|
||||
@end defun
|
||||
|
||||
@defun copysign x1 x2
|
||||
|
|
|
@ -156,6 +156,8 @@ latter are unique to Emacs Lisp.
|
|||
* Byte-Code Type:: A function written in Lisp, then compiled.
|
||||
* Autoload Type:: A type used for automatically loading seldom-used
|
||||
functions.
|
||||
* Finalizer Type:: Runs code when no longer reachable.
|
||||
|
||||
@end menu
|
||||
|
||||
@node Integer Type
|
||||
|
@ -1361,6 +1363,31 @@ in the loaded file.
|
|||
@code{autoload}, which stores the object in the function cell of a
|
||||
symbol. @xref{Autoload}, for more details.
|
||||
|
||||
@node Finalizer Type
|
||||
@subsection Finalizer Type
|
||||
|
||||
A @dfn{finalizer object} helps Lisp code clean up after objects that
|
||||
are no longer needed. A finalizer holds a Lisp function object.
|
||||
When a finalizer object becomes unreachable after a garbage collection
|
||||
pass, Emacs calls the finalizer's associated function object.
|
||||
When deciding whether a finalizer is reachable, Emacs does not count
|
||||
references from finalizer objects themselves, allowing you to use
|
||||
finalizers without having to worry about accidentally capturing
|
||||
references to finalized objects themselves.
|
||||
|
||||
Errors in finalizers are printed to @code{*Messages*}. Emacs runs
|
||||
a given finalizer object's associated function exactly once, even
|
||||
if that function fails.
|
||||
|
||||
@defun make-finalizer function
|
||||
Make a finalizer that will run @var{function}. @var{function} will be
|
||||
called after garbage collection when the returned finalizer object
|
||||
becomes unreachable. If the finalizer object is reachable only
|
||||
through references from finalizer objects, it does not count as
|
||||
reachable for the purpose of deciding whether to run @var{function}.
|
||||
@var{function} will be run once per finalizer object.
|
||||
@end defun
|
||||
|
||||
@node Editing Types
|
||||
@section Editing Types
|
||||
@cindex editing types
|
||||
|
@ -1907,11 +1934,11 @@ types. In most cases, it is more convenient to use type predicates than
|
|||
This function returns a symbol naming the primitive type of
|
||||
@var{object}. The value is one of the symbols @code{bool-vector},
|
||||
@code{buffer}, @code{char-table}, @code{compiled-function},
|
||||
@code{cons}, @code{float}, @code{font-entity}, @code{font-object},
|
||||
@code{font-spec}, @code{frame}, @code{hash-table}, @code{integer},
|
||||
@code{marker}, @code{overlay}, @code{process}, @code{string},
|
||||
@code{subr}, @code{symbol}, @code{vector}, @code{window}, or
|
||||
@code{window-configuration}.
|
||||
@code{cons}, @code{finalizer}, @code{float}, @code{font-entity},
|
||||
@code{font-object}, @code{font-spec}, @code{frame}, @code{hash-table},
|
||||
@code{integer}, @code{marker}, @code{overlay}, @code{process},
|
||||
@code{string}, @code{subr}, @code{symbol}, @code{vector},
|
||||
@code{window}, or @code{window-configuration}.
|
||||
|
||||
@example
|
||||
(type-of 1)
|
||||
|
@ -2108,12 +2135,12 @@ that for two strings to be equal, they have the same text properties.
|
|||
|
||||
@example
|
||||
@group
|
||||
(equal "asdf" (propertize "asdf" '(asdf t)))
|
||||
(equal "asdf" (propertize "asdf" 'asdf t))
|
||||
@result{} t
|
||||
@end group
|
||||
@group
|
||||
(equal-including-properties "asdf"
|
||||
(propertize "asdf" '(asdf t)))
|
||||
(propertize "asdf" 'asdf t))
|
||||
@result{} nil
|
||||
@end group
|
||||
@end example
|
||||
|
|
|
@ -244,8 +244,9 @@ options were specified.
|
|||
|
||||
@item
|
||||
If the option @code{--daemon} was specified, it calls
|
||||
@code{server-start} and detaches from the controlling terminal.
|
||||
@xref{Emacs Server,,, emacs, The GNU Emacs Manual}.
|
||||
@code{server-start}, and on Posix systems also detaches from the
|
||||
controlling terminal. @xref{Emacs Server,,, emacs, The GNU Emacs
|
||||
Manual}.
|
||||
|
||||
@item
|
||||
If started by the X session manager, it calls
|
||||
|
|
|
@ -493,7 +493,7 @@ If you intend to use them heavily, Emacs provides caches which may
|
|||
improve the performance of your code. @xref{Truncation, cache-long-scans}.
|
||||
@end ignore
|
||||
|
||||
@defun vertical-motion count &optional window
|
||||
@defun vertical-motion count &optional window cur-col
|
||||
This function moves point to the start of the screen line @var{count}
|
||||
screen lines down from the screen line containing point. If @var{count}
|
||||
is negative, it moves up instead.
|
||||
|
@ -515,6 +515,14 @@ The window @var{window} is used for obtaining parameters such as the
|
|||
width, the horizontal scrolling, and the display table. But
|
||||
@code{vertical-motion} always operates on the current buffer, even if
|
||||
@var{window} currently displays some other buffer.
|
||||
|
||||
The optional argument @var{cur-col} specifies the current column when
|
||||
the function is called. This is the window-relative horizontal
|
||||
coordinate of point, measured in units of font width of the frame's
|
||||
default face. Providing it speeds up the function, especially in very
|
||||
long lines, because it doesn't have to go back in the buffer in order
|
||||
to determine the current column. Note that @var{cur-col} is also
|
||||
counted from the visual start of the line.
|
||||
@end defun
|
||||
|
||||
@defun count-screen-lines &optional beg end count-final-newline window
|
||||
|
@ -817,8 +825,8 @@ is zero or less.
|
|||
It is often useful to move point ``temporarily'' within a localized
|
||||
portion of the program. This is called an @dfn{excursion}, and it is
|
||||
done with the @code{save-excursion} special form. This construct
|
||||
remembers the initial identity of the current buffer, and its values
|
||||
of point and the mark, and restores them after the excursion
|
||||
remembers the initial identity of the current buffer, and its value
|
||||
of point, and restores them after the excursion
|
||||
completes. It is the standard way to move point within one part of a
|
||||
program and avoid affecting the rest of the program, and is used
|
||||
thousands of times in the Lisp sources of Emacs.
|
||||
|
@ -833,18 +841,18 @@ Configurations} and in @ref{Frame Configurations}. @c frameset?
|
|||
@cindex mark excursion
|
||||
@cindex point excursion
|
||||
This special form saves the identity of the current buffer and the
|
||||
values of point and the mark in it, evaluates @var{body}, and finally
|
||||
restores the buffer and its saved values of point and the mark. All
|
||||
three saved values are restored even in case of an abnormal exit via
|
||||
value of point in it, evaluates @var{body}, and finally
|
||||
restores the buffer and its saved value of point. both saved values are
|
||||
restored even in case of an abnormal exit via
|
||||
@code{throw} or error (@pxref{Nonlocal Exits}).
|
||||
|
||||
The value returned by @code{save-excursion} is the result of the last
|
||||
form in @var{body}, or @code{nil} if no body forms were given.
|
||||
@end defspec
|
||||
|
||||
Because @code{save-excursion} only saves point and mark for the
|
||||
Because @code{save-excursion} only saves point for the
|
||||
buffer that was current at the start of the excursion, any changes
|
||||
made to point and/or mark in other buffers, during the excursion, will
|
||||
made to point in other buffers, during the excursion, will
|
||||
remain in effect afterward. This frequently leads to unintended
|
||||
consequences, so the byte compiler warns if you call @code{set-buffer}
|
||||
during an excursion:
|
||||
|
@ -880,11 +888,6 @@ type @code{nil}. @xref{Marker Insertion Types}. Therefore, when the
|
|||
saved point value is restored, it normally comes before the inserted
|
||||
text.
|
||||
|
||||
Although @code{save-excursion} saves the location of the mark, it does
|
||||
not prevent functions which modify the buffer from setting
|
||||
@code{deactivate-mark}, and thus causing the deactivation of the mark
|
||||
after the command finishes. @xref{The Mark}.
|
||||
|
||||
@node Narrowing
|
||||
@section Narrowing
|
||||
@cindex narrowing
|
||||
|
@ -972,7 +975,7 @@ restores the restrictions on the original buffer (the buffer whose
|
|||
restrictions it saved from), but it does not restore the identity of the
|
||||
current buffer.
|
||||
|
||||
@code{save-restriction} does @emph{not} restore point and the mark; use
|
||||
@code{save-restriction} does @emph{not} restore point; use
|
||||
@code{save-excursion} for that. If you use both @code{save-restriction}
|
||||
and @code{save-excursion} together, @code{save-excursion} should come
|
||||
first (on the outside). Otherwise, the old point value would be
|
||||
|
|
|
@ -503,17 +503,21 @@ inputinput@point{}
|
|||
@c It actually uses shell-command-switch, but no need to mention that here.
|
||||
@end defun
|
||||
|
||||
@defun call-process-shell-command command &optional infile destination display &rest args
|
||||
@defun call-process-shell-command command &optional infile destination display
|
||||
This function executes the shell command @var{command} synchronously.
|
||||
The final arguments @var{args} are additional arguments to add at the
|
||||
end of @var{command}. The other arguments are handled as in
|
||||
@code{call-process}.
|
||||
The arguments are handled as in @code{call-process}. An old calling
|
||||
convention allowed to pass any number of additional arguments after
|
||||
@var{display}, which were concatenated to @var{command}; this is still
|
||||
supported, but strongly discouraged.
|
||||
@end defun
|
||||
|
||||
@defun process-file-shell-command command &optional infile destination display &rest args
|
||||
@defun process-file-shell-command command &optional infile destination display
|
||||
This function is like @code{call-process-shell-command}, but uses
|
||||
@code{process-file} internally. Depending on @code{default-directory},
|
||||
@var{command} can be executed also on remote hosts.
|
||||
@var{command} can be executed also on remote hosts. An old calling
|
||||
convention allowed to pass any number of additional arguments after
|
||||
@var{display}, which were concatenated to @var{command}; this is still
|
||||
supported, but strongly discouraged.
|
||||
@end defun
|
||||
|
||||
@defun shell-command-to-string command
|
||||
|
@ -688,6 +692,61 @@ use the function @code{process-tty-name} (@pxref{Process
|
|||
Information}).
|
||||
@end defvar
|
||||
|
||||
@defun make-process &rest args
|
||||
This function is like @code{start-process}, but takes keyword arguments.
|
||||
|
||||
The arguments @var{args} are a list of keyword/argument pairs.
|
||||
Omitting a keyword is always equivalent to specifying it with value
|
||||
@code{nil}. Here are the meaningful keywords:
|
||||
|
||||
@table @asis
|
||||
@item :name @var{name}
|
||||
Use the string @var{name} as the process name. It is modified if
|
||||
necessary to make it unique.
|
||||
|
||||
@item :buffer @var{buffer}
|
||||
Use @var{buffer} as the process buffer.
|
||||
|
||||
@item :command @var{command}
|
||||
Use @var{command} as the command line of the process. @var{command}
|
||||
is a list starting with the program's executable file name, followed
|
||||
by strings to give to program as arguments.
|
||||
|
||||
@item :coding @var{coding}
|
||||
If @var{coding} is a symbol, it specifies the coding system to be
|
||||
used for both reading and writing of data from and to the
|
||||
connection. If @var{coding} is a cons cell
|
||||
@w{@code{(@var{decoding} . @var{encoding})}}, then @var{decoding}
|
||||
will be used for reading and @var{encoding} for writing.
|
||||
|
||||
If @var{coding} is @code{nil}, the default rules for finding the
|
||||
coding system will apply. @xref{Default Coding Systems}.
|
||||
|
||||
@item :connection-type @var{TYPE}
|
||||
Initialize the type of device used to communicate with the subprocess.
|
||||
Possible values are @code{pty} to use a pty, @code{pipe} to use a
|
||||
pipe, or @code{nil} to use the default derived from the value of
|
||||
the @code{process-connection-type} variable.
|
||||
|
||||
@item :noquery @var{query-flag}
|
||||
Initialize the process query flag to @var{query-flag}.
|
||||
@xref{Query Before Exit}.
|
||||
|
||||
@item :stop @var{stopped}
|
||||
If @var{stopped} is non-@code{nil}, start the process in the
|
||||
``stopped'' state.
|
||||
|
||||
@item :filter @var{filter}
|
||||
Initialize the process filter to @var{filter}.
|
||||
|
||||
@item :sentinel @var{sentinel}
|
||||
Initialize the process sentinel to @var{sentinel}.
|
||||
@end table
|
||||
|
||||
The original argument list, modified with the actual connection
|
||||
information, is available via the @code{process-contact} function.
|
||||
@end defun
|
||||
|
||||
@node Deleting Processes
|
||||
@section Deleting Processes
|
||||
@cindex deleting processes
|
||||
|
|
|
@ -541,11 +541,15 @@ and what they mean:
|
|||
@item [:ascii:]
|
||||
This matches any @acronym{ASCII} character (codes 0--127).
|
||||
@item [:alnum:]
|
||||
This matches any letter or digit. (At present, for multibyte
|
||||
characters, it matches anything that has word syntax.)
|
||||
This matches any letter or digit. For multibyte characters, it
|
||||
matches characters whose Unicode @samp{general-category} property
|
||||
(@pxref{Character Properties}) indicates they are alphabetic or
|
||||
decimal number characters.
|
||||
@item [:alpha:]
|
||||
This matches any letter. (At present, for multibyte characters, it
|
||||
matches anything that has word syntax.)
|
||||
This matches any letter. For multibyte characters, it matches
|
||||
characters whose Unicode @samp{general-category} property
|
||||
(@pxref{Character Properties}) indicates they are alphabetic
|
||||
characters.
|
||||
@item [:blank:]
|
||||
This matches space and tab only.
|
||||
@item [:cntrl:]
|
||||
|
|
|
@ -695,9 +695,76 @@ concatenation of @var{sequences}. @var{type} may be: @code{vector},
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
@defun seq-mapcat function sequence &optional type
|
||||
This function returns the result of applying @code{seq-concatenate}
|
||||
to the result of applying @var{function} to each element of
|
||||
@var{sequence}. The result is a sequence of type @var{type}, or a
|
||||
list if @var{type} is @code{nil}.
|
||||
|
||||
@example
|
||||
@group
|
||||
(seq-mapcat #'seq-reverse '((3 2 1) (6 5 4)))
|
||||
@result{} (1 2 3 4 5 6)
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun seq-partition sequence n
|
||||
This function returns a list of the elements of @var{sequence}
|
||||
grouped into sub-sequences of length @var{n}. The last sequence may
|
||||
contain less elements than @var{n}. @var{n} must be an integer. If
|
||||
@var{n} is a negative integer or 0, nil is returned.
|
||||
|
||||
@example
|
||||
@group
|
||||
(seq-partition '(0 1 2 3 4 5 6 7) 3)
|
||||
@result{} ((0 1 2) (3 4 5) (6 7))
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun seq-group-by function sequence
|
||||
This function separates the elements of @var{sequence} into an alist
|
||||
whose keys are the result of applying @var{function} to each element
|
||||
of @var{sequence}. Keys are compared using @code{equal}.
|
||||
|
||||
@example
|
||||
@group
|
||||
(seq-group-by #'integerp '(1 2.1 3 2 3.2))
|
||||
@result{} ((t 1 3 2) (nil 2.1 3.2))
|
||||
@end group
|
||||
@group
|
||||
(seq-group-by #'car '((a 1) (b 2) (a 3) (c 4)))
|
||||
@result{} ((b (b 2)) (a (a 1) (a 3)) (c (c 4)))
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun seq-into sequence type
|
||||
This function converts the sequence @var{sequence} into a sequence
|
||||
of type @var{type}. @var{type} can be one of the following symbols:
|
||||
@code{vector}, @code{string} or @code{list}.
|
||||
|
||||
@example
|
||||
@group
|
||||
(seq-into [1 2 3] 'list)
|
||||
@result{} (1 2 3)
|
||||
@end group
|
||||
@group
|
||||
(seq-into nil 'vector)
|
||||
@result{} []
|
||||
@end group
|
||||
@group
|
||||
(seq-into "hello" 'vector)
|
||||
@result{} [104 101 108 108 111]
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
|
||||
@defmac seq-doseq (var sequence [result]) body@dots{}
|
||||
@cindex sequence iteration
|
||||
This macro is like @code{dolist}, except that @var{sequence} can be a list,
|
||||
This macro is like @code{dolist}, except that @var{sequence} can be a list,
|
||||
vector or string (@pxref{Iteration} for more information about the
|
||||
@code{dolist} macro). This is primarily useful for side-effects.
|
||||
@end defmac
|
||||
|
|
|
@ -344,7 +344,7 @@ When reading or writing from the standard input/output streams of the
|
|||
Emacs process in batch mode, it is sometimes required to make sure any
|
||||
arbitrary binary data will be read/written verbatim, and/or that no
|
||||
translation of newlines to or from CR-LF pairs are performed. This
|
||||
issue does not exist on Posix hosts, only on MS-Windows and MS-DOS.
|
||||
issue does not exist on Posix hosts, only on MS-Windows and MS-DOS@.
|
||||
The following function allows to control the I/O mode of any standard
|
||||
stream of the Emacs process.
|
||||
|
||||
|
|
|
@ -811,7 +811,7 @@ Delete trailing whitespace in the region defined by @var{start} and
|
|||
This command deletes whitespace characters after the last
|
||||
non-whitespace character in each line in the region.
|
||||
|
||||
If this command acts on the entire buffer (i.e. if called
|
||||
If this command acts on the entire buffer (i.e., if called
|
||||
interactively with the mark inactive, or called from Lisp with
|
||||
@var{end} @code{nil}), it also deletes all trailing lines at the end of the
|
||||
buffer if the variable @code{delete-trailing-lines} is non-@code{nil}.
|
||||
|
@ -2720,7 +2720,7 @@ text properties are considered, since strings never have overlays.
|
|||
@defun get-pos-property position prop &optional object
|
||||
This function is like @code{get-char-property}, except that it pays
|
||||
attention to properties' stickiness and overlays' advancement settings
|
||||
instead of the property of the character at (i.e. right after)
|
||||
instead of the property of the character at (i.e., right after)
|
||||
@var{position}.
|
||||
@end defun
|
||||
|
||||
|
|
|
@ -1,3 +1,76 @@
|
|||
2015-03-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* newsticker.texi (Supported Formats): Remove dead url.
|
||||
|
||||
* remember.texi (Function Reference): Copyedit.
|
||||
|
||||
* idlwave.texi (HTML Help Browser Tips): Remove obsolete info.
|
||||
|
||||
2015-03-18 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* efaq-w32.texi: Remove outdated information and update.
|
||||
|
||||
2015-03-18 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* efaq.texi (Fullscreen mode on MS-Windows):
|
||||
Fix description (Bug#20110).
|
||||
|
||||
2015-03-04 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (External methods) <adb>: Explain, when Tramp
|
||||
connects to devices. Mention port numbers.
|
||||
(GVFS based methods, File name completion): Add index.
|
||||
(Multi-hops, Remote Programs, File name completion, Ad-hoc multi-hops):
|
||||
Improve wording.
|
||||
|
||||
* trampver.texi: Update release number.
|
||||
|
||||
2015-03-03 Kelvin White <kwhite@gnu.org>
|
||||
|
||||
* erc.texi (Advanced Usage, Options): Add descriptions and examples
|
||||
for erc-format-nick-function and erc-rename-buffers options.
|
||||
(Connecting): Fix typo
|
||||
|
||||
2015-03-02 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* cl.texi (Iteration Clauses): Mention iterator support.
|
||||
|
||||
2015-02-25 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* reftex.texi (Multifile Documents): Document
|
||||
reftex-include-file-commands.
|
||||
(Options): Mention that non-customize changes might require
|
||||
calling reftex-compile-variables.
|
||||
|
||||
2015-02-21 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* texinfo.tex: Update from gnulib.
|
||||
|
||||
2015-02-10 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* eww.texi (Basics): Mention eww-toggle-fonts.
|
||||
|
||||
2015-02-05 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* auth.texi (Multiple GMail accounts with Gnus): Markup fix.
|
||||
|
||||
2015-02-05 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* auth.texi (Multiple GMail accounts with Gnus): Add FAQ.
|
||||
|
||||
2015-02-05 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* gnus.texi (Using IMAP): Fix menu node name.
|
||||
|
||||
2015-02-05 Trevor Murphy <trevor.m.murphy@gmail.com>
|
||||
|
||||
* gnus.texi (Support for IMAP Extensions): Document the Gmail label
|
||||
extension.
|
||||
|
||||
2015-02-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* texinfo.tex: Update from gnulib.
|
||||
|
||||
2015-01-23 Thomas Fitzsimmons <fitzsim@fitzsim.org>
|
||||
|
||||
* eudc.texi (LDAP Configuration): Rename from LDAP Requirements
|
||||
|
|
|
@ -59,6 +59,7 @@ It is a way for multiple applications to share a single configuration
|
|||
@menu
|
||||
* Overview:: Overview of the auth-source library.
|
||||
* Help for users::
|
||||
* Multiple GMail accounts with Gnus::
|
||||
* Secret Service API::
|
||||
* Help for developers::
|
||||
* GnuPG and EasyPG Assistant Configuration::
|
||||
|
@ -110,9 +111,9 @@ You can use spaces inside a password or other token by surrounding the
|
|||
token with either single or double quotes.
|
||||
|
||||
You can use single quotes inside a password or other token by
|
||||
surrounding it with double quotes, e.g. @code{"he'llo"}. Similarly you
|
||||
surrounding it with double quotes, e.g., @code{"he'llo"}. Similarly you
|
||||
can use double quotes inside a password or other token by surrounding
|
||||
it with single quotes, e.g. @code{'he"llo'}. You can't mix both (so a
|
||||
it with single quotes, e.g., @code{'he"llo'}. You can't mix both (so a
|
||||
password or other token can't have both single and double quotes).
|
||||
|
||||
All this is optional. You could just say (but we don't recommend it,
|
||||
|
@ -229,6 +230,27 @@ don't use a port entry, you match any Tramp method, as explained
|
|||
earlier. Since Tramp has about 88 connection methods, this may be
|
||||
necessary if you have an unusual (see earlier comment on those) setup.
|
||||
|
||||
@node Multiple GMail accounts with Gnus
|
||||
@chapter Multiple GMail accounts with Gnus
|
||||
|
||||
For multiple GMail accounts with Gnus, you have to make two nnimap
|
||||
entries in your @code{gnus-secondary-select-methods} with distinct
|
||||
names:
|
||||
|
||||
@example
|
||||
(setq gnus-secondary-select-methods '((nnimap "gmail"
|
||||
(nnimap-address "imap.gmail.com"))
|
||||
(nnimap "gmail2"
|
||||
(nnimap-address "imap.gmail.com"))))
|
||||
@end example
|
||||
|
||||
Your netrc entries will then be:
|
||||
|
||||
@example
|
||||
machine gmail login account@@gmail.com password "account password" port imap
|
||||
machine gmail2 login account2@@gmail.com password "account2 password" port imap
|
||||
@end example
|
||||
|
||||
@node Secret Service API
|
||||
@chapter Secret Service API
|
||||
|
||||
|
|
|
@ -36800,7 +36800,7 @@ desired function, or with @kbd{x} or @kbd{z} followed by a function name,
|
|||
or with @kbd{$} to take a formula from the top of the stack, or with
|
||||
@kbd{'} and a typed formula. In the last two cases, the formula may
|
||||
be a nameless function like @samp{<#1+#2>} or @samp{<x, y : x+y>}, or it
|
||||
may include @kbd{$}, @kbd{$$}, etc. (where @kbd{$} will correspond to the
|
||||
may include @kbd{$}, @kbd{$$}, etc.@: (where @kbd{$} will correspond to the
|
||||
last argument of the created function), or otherwise you will be
|
||||
prompted for an argument list. The number of vectors popped from the
|
||||
stack by @kbd{V M} depends on the number of arguments of the function.
|
||||
|
|
|
@ -1038,7 +1038,7 @@ Movement}. They might be removed from a future release of @ccmode{}.
|
|||
Since there's a lot of normal text in comments and string literals,
|
||||
@ccmode{} provides features to edit these like in text mode. The goal
|
||||
is to do it seamlessly, i.e., you can use auto fill mode, sentence and
|
||||
paragraph movement, paragraph filling, adaptive filling etc. wherever
|
||||
paragraph movement, paragraph filling, adaptive filling etc.@: wherever
|
||||
there's a piece of normal text without having to think much about it.
|
||||
@ccmode{} keeps the indentation, fixes suitable comment line prefixes,
|
||||
and so on.
|
||||
|
@ -7140,7 +7140,7 @@ of XEmacs since 19.16.
|
|||
Due to release schedule skew, it is likely that all of these Emacsen
|
||||
have old versions of @ccmode{} and so should be upgraded. Access to the
|
||||
@ccmode{} source code, as well as more detailed information on Emacsen
|
||||
compatibility, etc. are all available on the web site:
|
||||
compatibility, etc.@: are all available on the web site:
|
||||
|
||||
@quotation
|
||||
@uref{http://cc-mode.sourceforge.net/}
|
||||
|
|
|
@ -296,6 +296,13 @@ list. Also, the function body is enclosed in an implicit block
|
|||
called @var{name}; @pxref{Blocks and Exits}.
|
||||
@end defmac
|
||||
|
||||
@defmac cl-iter-defun name arglist body@dots{}
|
||||
This form is identical to the regular @code{iter-defun} form, except
|
||||
that @var{arglist} is allowed to be a full Common Lisp argument
|
||||
list. Also, the function body is enclosed in an implicit block
|
||||
called @var{name}; @pxref{Blocks and Exits}.
|
||||
@end defmac
|
||||
|
||||
@defmac cl-defsubst name arglist body@dots{}
|
||||
This is just like @code{cl-defun}, except that the function that
|
||||
is defined is automatically proclaimed @code{inline}, i.e.,
|
||||
|
@ -2237,6 +2244,11 @@ This clause is like @code{always}, except that the loop returns
|
|||
This clause stops the loop when the specified form is non-@code{nil};
|
||||
in this case, it returns that non-@code{nil} value. If all the
|
||||
values were @code{nil}, the loop returns @code{nil}.
|
||||
|
||||
@item iter-by @var{iterator}
|
||||
This clause iterates over the values from the specified form, an
|
||||
iterator object. See (@pxref{Generators,,,elisp,GNU Emacs Lisp
|
||||
Reference Manual}).
|
||||
@end table
|
||||
|
||||
@node Accumulation Clauses
|
||||
|
|
|
@ -128,10 +128,12 @@ systems.
|
|||
@cindex supported versions of Windows
|
||||
|
||||
Emacs @value{EMACSVER} is known to run on all versions of Windows from
|
||||
@c FIXME does it really still support Windows 98? Does it matter?
|
||||
Windows 98 and Windows NT 4.0 through to Windows 7. The Windows port is
|
||||
built using the Win32 API and supports most features of the X version,
|
||||
including variable width fonts, images and tooltips.
|
||||
Windows 98 and Windows NT 4.0 through to Windows 8.1. The Windows
|
||||
port is built using the Win32 API and supports most features of the X
|
||||
version, including variable width fonts, images and tooltips.
|
||||
|
||||
Emacs on Windows can be compiled as either a 32-bit or a 64-bit
|
||||
executable, using the MinGW GCC compiler and development tools.
|
||||
|
||||
@node Other versions of Emacs
|
||||
@section What other versions of Emacs run on Windows?
|
||||
|
@ -163,10 +165,12 @@ instructions (requires DJGPP).
|
|||
@cindex where to get Emacs binaries
|
||||
Pre-compiled versions are distributed from
|
||||
@uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}.
|
||||
Emacs binaries are distributed as zip files, digitally
|
||||
signed by the developer who built them. Generally most users will
|
||||
want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which
|
||||
contains everything you need to get started.
|
||||
Emacs binaries are distributed as zip files, digitally signed by the
|
||||
developer who built them. Generally most users will want the file
|
||||
@file{emacs-@value{EMACSVER}-bin-i686-pc-mingw.zip} for the 32-bit
|
||||
build, and @file{emacs-@value{EMACSVER}-bin-x86_64-w64-mingw32.zip}
|
||||
for the 64-bit build. The zip archive contains everything you need to
|
||||
get started.
|
||||
|
||||
@cindex where to get sources
|
||||
@cindex Emacs source code
|
||||
|
@ -187,17 +191,18 @@ development site.
|
|||
@section How can I compile Emacs myself?
|
||||
@cindex compiling Emacs
|
||||
|
||||
To compile Emacs on Windows, you will need the MingW or Cygwin port of
|
||||
GCC with MingW make, or a Microsoft C compiler with nmake and the
|
||||
single threaded C runtime library. Recent versions of Microsoft
|
||||
Visual Studio no longer come with the single threaded C runtime
|
||||
library, which is required for certain POSIX compatibility, so MingW
|
||||
is usually the best choice. Image support requires external
|
||||
libraries, the headers and import libraries for which will need to be
|
||||
installed where your compiler can find them. You will also need ports
|
||||
of GNU @command{rm} and @command{cp}, as the Windows native
|
||||
equivalents are not consistent between versions. GNU texinfo will be
|
||||
required to build the manuals. @xref{Other useful ports}.
|
||||
To compile Emacs on Windows, you will need the MinGW port of GCC and
|
||||
Binutils, the MinGW runtime and development environment, and the MSYS
|
||||
suite of tools. For the details, see the file @file{nt/INSTALL} in
|
||||
the Emacs source distribution.
|
||||
|
||||
Support for displaying images, as well as XML/HTML rendering and TLS
|
||||
networking requires external libraries, the headers and import
|
||||
libraries for which will need to be installed where your compiler can
|
||||
find them. Again, the details, including URLs of sites where you can
|
||||
download these libraries are in @file{nt/INSTALL}. @xref{Other useful
|
||||
ports}, for auxiliary tools you may wish to install and use in
|
||||
conjunction with Emacs.
|
||||
|
||||
After unpacking the source, or checking out of the repository, be sure
|
||||
to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
|
||||
|
@ -211,39 +216,25 @@ to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
|
|||
By default, Emacs is compiled with debugging on, and optimizations enabled.
|
||||
The optimizations may interfere with some types of debugging; the debugger
|
||||
may not show clearly where it is, or may not be able to inspect certain
|
||||
variables. If this is the case, reconfigure with @option{--no-opt}.
|
||||
variables. If this is the case, reconfigure with @kbd{CFLAGS='-O0 -g3'}
|
||||
|
||||
The file @file{etc/DEBUG} contains general debugging hints, as well as
|
||||
specific notes about debugging Emacs with both gdb and Microsoft debuggers.
|
||||
specific notes about debugging Emacs.
|
||||
|
||||
@menu
|
||||
* GDB::
|
||||
* Microsoft Developer Studio::
|
||||
@end menu
|
||||
|
||||
@node GDB
|
||||
@subsection GDB
|
||||
@cindex GDB, debugging Emacs with
|
||||
@cindex debugging Emacs with GDB
|
||||
|
||||
GDB is the GNU debugger, which can be used to debug Emacs when it has
|
||||
been compiled with GCC. The best results will be obtained if you
|
||||
start gdb from the @file{src} directory as @samp{gdb oo/i386/emacs.exe}.
|
||||
This will load the init file @file{.gdbinit} in that directory, to
|
||||
define some extra commands for working with lisp while debugging, and
|
||||
set up breakpoints to catch abnormal aborts.
|
||||
been compiled with MinGW GCC. The best results will be obtained if
|
||||
you start gdb from the @file{src} directory as @kbd{gdb ./emacs.exe}.
|
||||
This will load the init file @file{.gdbinit}@footnote{
|
||||
Latest versions of GDB might refuse to load the init file for security
|
||||
reasons, unless you customize GDB; alternatively, use an explicit
|
||||
@kbd{source ./gdbinit} command after entering GDB.
|
||||
} in that directory, to define some extra commands for working with
|
||||
lisp while debugging, and set up breakpoints to catch abnormal
|
||||
aborts.
|
||||
|
||||
@node Microsoft Developer Studio
|
||||
@subsection Microsoft Developer Studio
|
||||
@cindex MSVC++, debugging Emacs with
|
||||
@cindex DevStudio, debugging Emacs with
|
||||
@cindex debugging Emacs with MS DevStudio
|
||||
|
||||
MS DevStudio can be used to debug Emacs when it has been compiled with
|
||||
a Microsoft compiler. To view lisp variables, you can call the
|
||||
function @code{debug_print} from the Quickwatch window. Some
|
||||
@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/debug.txt,
|
||||
old tips} are probably still valid.
|
||||
A Windows port of GDB can be found on MinGW download sites and on some
|
||||
others.
|
||||
|
||||
@c ------------------------------------------------------------
|
||||
@node Installing Emacs
|
||||
|
@ -251,7 +242,7 @@ old tips} are probably still valid.
|
|||
|
||||
@menu
|
||||
* Unpacking::
|
||||
* Installing::
|
||||
* Installing binaries::
|
||||
* Image support::
|
||||
* Init file::
|
||||
* Location of init file::
|
||||
|
@ -279,24 +270,27 @@ old tips} are probably still valid.
|
|||
The binary distributions are distributed as zip files, which are handled
|
||||
natively by Windows XP and later. For earlier versions, there are many
|
||||
tools that can handle the zip format, from InfoZip's command line unzip
|
||||
tool, to 7zip's multi-format graphical archive explorer. Although
|
||||
tool, to 7zip's multi-format graphical archive explorer. (Although
|
||||
popular, WinZip has caused problems with line-ends in the past, and is not
|
||||
Free software, so we do not recommend it.
|
||||
Free software, so we do not recommend it.)
|
||||
|
||||
Source distributions are distributed as gzipped tar files. 7zip and
|
||||
similar multi-format graphical tools can handle these, or you can get
|
||||
Windows ports of the command line gzip and tar tools from multiple sources.
|
||||
Source distributions are distributed as @file{.tar.gz} or
|
||||
@file{.tar.xz} files. 7zip and similar multi-format graphical tools
|
||||
can handle these, or you can get Windows ports of the command line
|
||||
gzip and tar tools from multiple sources, or use @command{bsdtar}.
|
||||
@xref{Other useful ports}.
|
||||
|
||||
The command to unpack a source distribution from the command line is:
|
||||
|
||||
@example
|
||||
tar xzf emacs-@value{EMACSVER}.tar.gz
|
||||
@end example
|
||||
|
||||
If this does not work with the versions of tar and gzip that you have,
|
||||
you may need to try a two step process:
|
||||
|
||||
@example
|
||||
gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xvf -
|
||||
gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xf -
|
||||
@end example
|
||||
|
||||
You may see many messages from tar complaining about being unable to change
|
||||
|
@ -304,8 +298,21 @@ the modification time on directories, and from gzip complaining about a
|
|||
broken pipe. These messages are usually harmless, caused by incomplete ports
|
||||
that are not fully aware of the limitations of Windows.
|
||||
|
||||
@node Installing
|
||||
@section How do I install Emacs after unpacking?
|
||||
And here's an example of using @command{bsdtar} (from the
|
||||
@samp{libarchive} package) to unpack a @file{.tar.xz} archive:
|
||||
|
||||
@example
|
||||
bsdtar -xf emacs-@value{EMACSVER}.tar.xz
|
||||
@end example
|
||||
|
||||
Expect @command{bsdtar} to unpack the whole distribution without any
|
||||
complaints.
|
||||
|
||||
Once you unpack the source distribution, look in @file{nt/INSTALL}
|
||||
file for build instructions.
|
||||
|
||||
@node Installing binaries
|
||||
@section How do I install Emacs after unpacking the binary zip?
|
||||
@cindex installing Emacs
|
||||
@pindex addpm
|
||||
@cindex Start Menu, creating icons for Emacs
|
||||
|
@ -313,7 +320,8 @@ that are not fully aware of the limitations of Windows.
|
|||
You can run Emacs without any extra steps, but if you want icons in your
|
||||
Start Menu, or for Emacs to detect the image libraries that are already
|
||||
installed on your system as part of GTK, then you should run the program
|
||||
@file{emacs-@value{EMACSVER}\bin\addpm.exe}.
|
||||
@file{addpm.exe}, which is usually installed into the same @file{bin}
|
||||
directory with @file{emacs.exe}.
|
||||
|
||||
@node Image support
|
||||
@section How do I get image support?
|
||||
|
@ -323,6 +331,7 @@ installed on your system as part of GTK, then you should run the program
|
|||
@cindex gif, installing image support in Emacs
|
||||
@cindex tiff, installing image support in Emacs
|
||||
@cindex xpm, installing image support in Emacs
|
||||
@cindex rsvg, installing image support in Emacs
|
||||
@cindex toolbar, installing color icons in
|
||||
@cindex color images, installing support for images in Emacs
|
||||
@cindex monochrome images, getting color images in Emacs
|
||||
|
@ -330,12 +339,12 @@ installed on your system as part of GTK, then you should run the program
|
|||
|
||||
Emacs has built in support for XBM and PBM/PGM/PPM images. This is
|
||||
sufficient to see the monochrome splash screen and tool-bar icons.
|
||||
Since 22.2, the official precompiled binaries for Windows have bundled
|
||||
Since v22.2, the official precompiled binaries for Windows have bundled
|
||||
libXpm, which is required to display the color versions of those images.
|
||||
|
||||
Emacs is compiled to recognize JPEG, PNG, GIF and TIFF images also,
|
||||
but displaying these image types require external DLLs which are not
|
||||
bundled with Emacs. @xref{Other useful ports}.
|
||||
Emacs is compiled to recognize JPEG, PNG, GIF, TIFF, and RSVG images
|
||||
also, but displaying these image types require external DLLs which are
|
||||
not bundled with Emacs. @xref{Other useful ports}.
|
||||
|
||||
@node Init file
|
||||
@section What is my init file?
|
||||
|
@ -344,11 +353,11 @@ bundled with Emacs. @xref{Other useful ports}.
|
|||
|
||||
When Emacs starts up, it attempts to load and execute the contents of
|
||||
a file commonly called @file{.emacs} (though it may have other names,
|
||||
@pxref{Installing Emacs,,Where do I put my init file?}) which contains any
|
||||
customizations you have made. You can manually add lisp code to your
|
||||
.emacs, or you can use the Customization interface accessible from the
|
||||
@emph{Options} menu. If the file does not exist, Emacs will start
|
||||
with the default settings.
|
||||
@pxref{Location of init file,,Where do I put my init file?}) which
|
||||
contains any customizations you have made. You can manually add lisp
|
||||
code to your .emacs, or you can use the Customization interface
|
||||
accessible from the @emph{Options} menu. If the file does not exist,
|
||||
Emacs will start with the default settings.
|
||||
|
||||
@node Location of init file
|
||||
@section Where do I put my init file?
|
||||
|
@ -358,15 +367,15 @@ with the default settings.
|
|||
@cindex init.el
|
||||
@cindex registry, setting the HOME directory in
|
||||
|
||||
On Windows, the .emacs file may be called _emacs for backward
|
||||
compatibility with DOS and FAT filesystems where filenames could not
|
||||
start with a dot. Some users prefer to continue using such a name,
|
||||
because Explorer cannot create a file with a name starting with a dot,
|
||||
even though the filesystem and most other programs can handle it.
|
||||
In Emacs 22 and later, the init file may also be called
|
||||
@file{.emacs.d/init.el}. Many of the other files that are created
|
||||
by lisp packages are now stored in the @file{.emacs.d} directory too,
|
||||
so this keeps all your Emacs related files in one place.
|
||||
On Windows, the @file{.emacs} file may be called @file{_emacs} for
|
||||
backward compatibility with DOS and FAT filesystems where filenames
|
||||
could not start with a dot. Some users prefer to continue using such
|
||||
a name due to historical problems various Windows tools had in the
|
||||
past with file names that begin with a dot. In Emacs 22 and later,
|
||||
the init file may also be called @file{.emacs.d/init.el}. Many of the
|
||||
other files that are created by lisp packages are now stored in the
|
||||
@file{.emacs.d} directory too, so this keeps all your Emacs related
|
||||
files in one place.
|
||||
|
||||
All the files mentioned above should go in your @env{HOME} directory.
|
||||
The @env{HOME} directory is determined by following the steps below:
|
||||
|
@ -387,14 +396,14 @@ backward compatibility, as previous versions defaulted to @file{C:/}
|
|||
if @env{HOME} was not set.
|
||||
@item
|
||||
Use the user's AppData directory, usually a directory called
|
||||
@file{Application Data} under the user's profile directory, the location
|
||||
@file{AppData} under the user's profile directory, the location
|
||||
of which varies according to Windows version and whether the computer is
|
||||
part of a domain.
|
||||
@end enumerate
|
||||
|
||||
Within Emacs, @key{~} at the beginning of a file name is expanded to your
|
||||
@env{HOME} directory, so you can always find your .emacs file with
|
||||
@kbd{C-x C-f ~/.emacs}.
|
||||
@env{HOME} directory, so you can always find your @file{.emacs} file
|
||||
by typing the command @kbd{C-x C-f ~/.emacs}.
|
||||
|
||||
@node Troubleshooting init file
|
||||
@section Troubleshooting init file problems
|
||||
|
@ -409,15 +418,16 @@ to. You can do this by evaluating the following expression in the
|
|||
@file{*scratch*} buffer using @kbd{C-x C-e}:
|
||||
|
||||
@example
|
||||
(insert (getenv "HOME"))
|
||||
(getenv "HOME")
|
||||
@end example
|
||||
|
||||
Look carefully at what is printed and make sure the value is
|
||||
valid. For example, if the value has trailing whitespace, Emacs won't
|
||||
be able to find the directory. Also, be sure that the value isn't a
|
||||
relative drive letter (e.g., @file{d:} without a backslash); if it is,
|
||||
then @env{HOME} is going to be whatever the current directory on that
|
||||
drive is, which is likely not what you want to happen.
|
||||
Look carefully at what is printed in the echo area, and make sure the
|
||||
value is valid. For example, if the value has trailing whitespace,
|
||||
Emacs won't be able to find the directory. Also, be sure that the
|
||||
value isn't a relative drive letter (e.g., @file{d:} without a
|
||||
backslash or a forward slash after the colon); if it is, then
|
||||
@env{HOME} is going to be whatever the current directory on that drive
|
||||
is, which is likely not what you want to happen.
|
||||
|
||||
@node Associate files with Emacs
|
||||
@section How do I associate files with Emacs?
|
||||
|
@ -488,9 +498,9 @@ Thanks to Jason Rumney and Sigbjorn Finne for these tips.
|
|||
|
||||
The location of the Desktop varies between different versions of
|
||||
Windows, and in a corporate environment can be moved around by the
|
||||
network administrator. On NT derivatives, you can use the value of
|
||||
the @env{USERPROFILE} environment variable to find where the desktop
|
||||
might be:
|
||||
network administrator. On latest Windows versions, you can use the
|
||||
value of the @env{USERPROFILE} environment variable to find where the
|
||||
desktop might be:
|
||||
|
||||
@example
|
||||
@kbd{C-x C-f $USERPROFILE/Desktop}
|
||||
|
@ -512,7 +522,7 @@ menu by default). Once you have a file from the Desktop inside Emacs,
|
|||
@end menu
|
||||
|
||||
@node Focus follows mouse
|
||||
@subsection How do it make the active window follow the mouse?
|
||||
@subsection How do I make the active window follow the mouse?
|
||||
@vindex focus-follows-mouse
|
||||
@cindex point to focus
|
||||
@cindex mouse over to focus
|
||||
|
@ -524,6 +534,11 @@ even though Windows has a click to focus policy by default (there is
|
|||
software available to change that though). The latter can be used to
|
||||
make Emacs use a focus-follow-mouse policy within its own frames.
|
||||
|
||||
You can also change the Windows click-to-focus policy by changing
|
||||
settings in the Registry. The details vary according to your Windows
|
||||
version; look on the Internet for instructions to enable ``active
|
||||
window tracking'' for your version of Windows.
|
||||
|
||||
@node Swap CapsLock and Control
|
||||
@subsection How do I swap CapsLock and Control?
|
||||
@cindex scan codes, modifying
|
||||
|
@ -576,7 +591,7 @@ Date: 04 Dec 1996 14:36:21 -0600
|
|||
Message-ID: <fawg21mm4hm.fsf@@mordor.rsn.hp.com>
|
||||
Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0
|
||||
@end ignore
|
||||
@example
|
||||
@smallexample
|
||||
It's a binary value that lets you map keystrokes in the low-level keyboard
|
||||
drivers in NT. As a result you don't have to worry about applications
|
||||
bypassing mappings that you've done at a higher level (i.e. it just works).
|
||||
|
@ -600,7 +615,7 @@ lock key will behave as caps-lock. To swap, you also need to map 0x3a to
|
|||
|
||||
This registry value is system wide, and can't be made user-specific. It
|
||||
also only takes affect on reboot.
|
||||
@end example
|
||||
@end smallexample
|
||||
@item
|
||||
Ulfar Erlingsson has provided a registry file that sets the CapsLock key
|
||||
to be a Control key and the Windows key to be an Alt key:
|
||||
|
@ -663,7 +678,8 @@ buffers etc. will instead act on the region. An inactive mark needs
|
|||
to be reactivated to operate on it, unless @code{mark-even-if-inactive}
|
||||
is set. Secondly, @code{transient-mark-mode} also highlights the
|
||||
region when it is active, providing the same visual clue that you get
|
||||
in other programs.
|
||||
in other programs. This mode is turned on by default in latest
|
||||
versions of Emacs.
|
||||
|
||||
In addition to seeing the highlighting, new Emacs users often expect
|
||||
editing commands to replace the region when it is active. This behavior
|
||||
|
@ -717,14 +733,16 @@ message as documented in Microsoft's API documentation.
|
|||
@cindex delete Emacs directory
|
||||
|
||||
Emacs does not come with an uninstall program. No files are installed
|
||||
outside of the Emacs base directory, so deleting that directory is
|
||||
sufficient to clean away the files. If you ran @command{addpm},
|
||||
you'll need to delete the Start Menu group too. The registry entries
|
||||
inserted by @command{addpm} will not cause any problems if you leave
|
||||
them there, but for the sake of completeness, you can use @command{regedit}
|
||||
to remove the keys under @code{HKEY_LOCAL_MACHINE} orx
|
||||
@code{HKEY_CURRENT_USER}: @code{SOFTWARE\GNU\Emacs}, and the key
|
||||
@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\emacs.exe} if it exists.
|
||||
outside of the directories you find in the binary zip archive, so
|
||||
deleting those directories is sufficient to clean away the files. If
|
||||
you ran @command{addpm}, you'll need to delete the Start Menu group
|
||||
too. The registry entries inserted by @command{addpm} will not cause
|
||||
any problems if you leave them there, but for the sake of
|
||||
completeness, you can use @command{regedit} to remove the keys under
|
||||
@code{HKEY_LOCAL_MACHINE} or @code{HKEY_CURRENT_USER}:
|
||||
@code{SOFTWARE\GNU\Emacs}, and the key
|
||||
@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
|
||||
Paths\emacs.exe} if it exists.
|
||||
|
||||
@node Does not run
|
||||
@section When I run Emacs nothing happens
|
||||
|
@ -751,9 +769,10 @@ been truncated to CONTRIBU or CONTRI~1, your distribution has been
|
|||
corrupted while unpacking and Emacs will not start.
|
||||
@end enumerate
|
||||
|
||||
If it is still not working, send mail to the list, describing what
|
||||
you've done, and what you are seeing. (The more information you send
|
||||
the more likely it is that you'll receive a helpful response..
|
||||
If it is still not working, send mail to the
|
||||
@email{help-gnu-emacs@@gnu.org} mailing list, describing what you've
|
||||
done, and what you are seeing. (The more information you send the more
|
||||
likely it is that you'll receive a helpful response.)
|
||||
|
||||
@node Virus
|
||||
@section Does Emacs contain a virus?
|
||||
|
@ -880,7 +899,6 @@ The doc string contains a list of the system sounds you can use.
|
|||
* Font names::
|
||||
* Bold and italic::
|
||||
* Multilingual fonts::
|
||||
* BDF fonts::
|
||||
* Font menu::
|
||||
* Line ends::
|
||||
@end menu
|
||||
|
@ -910,9 +928,9 @@ an indication of whether the font is outline (.TTF, .ATM) or raster (.FON)
|
|||
based when fonts are listed, which may let you differentiate between two
|
||||
fonts with the same name and different technologies.
|
||||
|
||||
From Emacs 23, the preferred font name format will be moving to the simpler
|
||||
and more flexible fontconfig format. XLFD names will continue to be
|
||||
supported for backward compatibility.
|
||||
Starting with Emacs 23, the preferred font name format will be moving
|
||||
to the simpler and more flexible fontconfig format. XLFD names will
|
||||
continue to be supported for backward compatibility.
|
||||
|
||||
@example
|
||||
XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1
|
||||
|
@ -959,6 +977,9 @@ and manually set the font for italic, bold and bold-italic as follows:
|
|||
(set-face-font 'bold-italic "-*-Courier New-bold-i-*-*-11-*-*-*-c-*-iso8859-1")
|
||||
@end example
|
||||
|
||||
The @code{w32-enable-synthesized-fonts} variable is obsolete starting
|
||||
from Emacs 24.4, as Emacs no longer has this limitation.
|
||||
|
||||
@node Multilingual fonts
|
||||
@section Multilingual font support
|
||||
@cindex multilingual display, fonts
|
||||
|
@ -985,11 +1006,8 @@ require the BDF fonts from the GNU intlfonts package.
|
|||
|
||||
For many languages, native truetype fonts are sufficient, and in Emacs
|
||||
23 the need for BDF fonts will disappear for almost all languages. At
|
||||
the time of writing, some Arabic characters in the HELLO file still do
|
||||
not display with native fonts, because they are pre-composed characters
|
||||
from MULE character sets rather than standard Unicode Arabic, but all
|
||||
other characters are able to be displayed with appropriate truetype or
|
||||
opentype fonts.
|
||||
the time of writing, all supported characters are able to be displayed
|
||||
with appropriate truetype or opentype fonts.
|
||||
|
||||
@node Non-latin display
|
||||
@subsection How do I get Emacs to display non-latin characters?
|
||||
|
@ -1025,6 +1043,12 @@ new fontset with @code{create-fontset-from-ascii-font} or
|
|||
chinese-big5-2:-*-MingLiU-normal-r-*-*-12-*-*-*-c-*-big5-*" t)
|
||||
@end example
|
||||
|
||||
Alternatively, you can augment the default fontset with information of
|
||||
which fonts to use for certain ranges of characters or for specific
|
||||
scripts/character sets. @xref{Modifying Fontsets,, Modifying
|
||||
Fontsets, emacs, The GNU Emacs Manual}, for details and some useful
|
||||
examples.
|
||||
|
||||
@node International fonts
|
||||
@subsection Where can I find fonts for other languages?
|
||||
@cindex language support, finding fonts
|
||||
|
@ -1037,10 +1061,10 @@ new fontset with @code{create-fontset-from-ascii-font} or
|
|||
In addition to the wide range of fonts that come with the language
|
||||
support packages of various components of Windows itself, GNU/Linux
|
||||
distributions these days come with a number of Free truetype fonts
|
||||
that cover a wide range of languages. The GNU intlfonts source
|
||||
distribution contains BDF fonts covering all of the languages that can
|
||||
be displayed by Emacs 22, and can be downloaded from
|
||||
@uref{http://ftpmirror.gnu.org/intlfonts, ftp.gnu.org mirrors}.
|
||||
that cover a wide range of languages. The GNU Unifont project
|
||||
contains glyphs for most of the Unicode codespace, and can be
|
||||
downloaded from @uref{http://ftpmirror.gnu.org/unifont, ftp.gnu.org
|
||||
mirrors}.
|
||||
|
||||
@node Third-party multibyte
|
||||
@subsection How do I use third party programs to display multibyte characters?
|
||||
|
@ -1058,12 +1082,6 @@ for that language, but the third party software is intercepting it
|
|||
and using a different font behind the scenes).
|
||||
@xref{Non-latin display}.
|
||||
|
||||
In addition to defining a fontset with the expected font, you may also need
|
||||
to disable unicode output with:
|
||||
@example
|
||||
(setq w32-enable-unicode-output nil)
|
||||
@end example
|
||||
|
||||
@node Localized fonts
|
||||
@subsection Can I use a font with a name in my language?
|
||||
@cindex fonts, localized font names
|
||||
|
@ -1073,87 +1091,7 @@ Normally Emacs should initialize @code{locale-coding-system} appropriately
|
|||
based on your locale, which will let Emacs use font names in your local
|
||||
language successfully.
|
||||
|
||||
@node BDF fonts
|
||||
@section How do I use bdf fonts with Emacs?
|
||||
@cindex BDF fonts, using
|
||||
@cindex GNU intlfonts, using
|
||||
@cindex intlfonts, using
|
||||
@vindex w32-bdf-filename-alist
|
||||
@vindex bdf-directory-alist
|
||||
@vindex font-encoding-alist
|
||||
@findex w32-find-bdf-fonts
|
||||
@findex set-frame-font
|
||||
|
||||
To use bdf fonts with Emacs, you need to tell Emacs where the fonts
|
||||
are located, create fontsets for them, and then use them. We'll use
|
||||
the 16 dot international fonts from @uref{http://ftpmirror.gnu.org/intlfonts,
|
||||
ftp.gnu.org/gnu/intlfonts} as an
|
||||
example put together by Jason Rumney.
|
||||
|
||||
Download @file{16dots.tar.gz} and unpack it; I'll assume that they are in
|
||||
@file{c:\intlfonts}. Then set @code{w32-bdf-filename-alist} to the list of
|
||||
fonts returned by using @code{w32-find-bdf-fonts} to enumerate all of
|
||||
the font files. It is a good idea to set the variable
|
||||
@code{bdf-directory-list} at the same time so @code{ps-print} knows where
|
||||
to find the fonts:
|
||||
@example
|
||||
(setq bdf-directory-list
|
||||
'("c:/intlfonts/Asian" "c:/intlfonts/Chinese"
|
||||
"c:/intlfonts/Chinese-X" "c:/intlfonts/Ethiopic"
|
||||
"c:/intlfonts/European" "c:/intlfonts/Japanese"
|
||||
"c:/intlfonts/Japanese-X" "c:/intlfonts/Korean-X"
|
||||
"c:/intlfonts/Misc/"))
|
||||
|
||||
(setq w32-bdf-filename-alist (w32-find-bdf-fonts bdf-directory-list))
|
||||
@end example
|
||||
|
||||
Then create fontsets for the BDF fonts:
|
||||
|
||||
@example
|
||||
(create-fontset-from-fontset-spec
|
||||
"-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
|
||||
japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
|
||||
katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
|
||||
latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
|
||||
japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
|
||||
thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
|
||||
lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
|
||||
tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
|
||||
ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
|
||||
tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
|
||||
@end example
|
||||
|
||||
Many of the international bdf fonts from gnu.org are type 0, and therefore
|
||||
need to be added to font-encoding-alist:
|
||||
|
||||
@example
|
||||
;; Need to add some fonts to font-encoding-alist since the bdf fonts
|
||||
;; are type 0 not the default type 1.
|
||||
(setq font-encoding-alist
|
||||
(append '(("MuleTibetan-0" (tibetan . 0))
|
||||
("GB2312" (chinese-gb2312 . 0))
|
||||
("JISX0208" (japanese-jisx0208 . 0))
|
||||
("JISX0212" (japanese-jisx0212 . 0))
|
||||
("VISCII" (vietnamese-viscii-lower . 0))
|
||||
("KSC5601" (korean-ksc5601 . 0))
|
||||
("MuleArabic-0" (arabic-digit . 0))
|
||||
("MuleArabic-1" (arabic-1-column . 0))
|
||||
("MuleArabic-2" (arabic-2-column . 0))) font-encoding-alist))
|
||||
@end example
|
||||
|
||||
You can now use the Emacs font menu (@pxref{Fonts and text
|
||||
translation,,How can I have Emacs use a font menu like on X?}) to
|
||||
select the @emph{bdf: 16-dot medium} fontset, or you can select it by
|
||||
setting the default font:
|
||||
|
||||
@example
|
||||
(set-frame-font "fontset-bdf")
|
||||
@end example
|
||||
|
||||
Try loading the file @file{etc/HELLO}, and you should be able to see the
|
||||
various international fonts displayed (except for Hindi, which is not
|
||||
included in the 16-dot font distribution).
|
||||
|
||||
@c This feature disappeared in Emacs 23, and was resurrected in 25.1.
|
||||
@node Font menu
|
||||
@section How can I have Emacs use a font menu like on X?
|
||||
@cindex fonts, displaying a menu
|
||||
|
@ -1171,6 +1109,8 @@ Place the following in your init file:
|
|||
* Add fonts to menu::
|
||||
@end menu
|
||||
|
||||
@c This variable had no effect between v23 and v25.1, where
|
||||
@c w32-use-w32-font-dialog support was resurrected, see above.
|
||||
@node Add fonts to menu
|
||||
@subsection How can I add my font to the font menu?
|
||||
@cindex font menu, adding fonts
|
||||
|
@ -1204,7 +1144,6 @@ this collection of email messages} on the topic.
|
|||
|
||||
@menu
|
||||
* Automatic line ends::
|
||||
* Line ends by filename::
|
||||
* Line ends by file system::
|
||||
@end menu
|
||||
|
||||
|
@ -1220,19 +1159,6 @@ file in Unix (LF) mode with the Ctrl-M characters displayed as @samp{^M}.
|
|||
It does this to be safe, as no data loss will occur if the file is really
|
||||
binary and the Ctrl-M characters are significant.
|
||||
|
||||
@node Line ends by filename
|
||||
@subsection CR/LF translation by file extension
|
||||
@cindex line ends, determining by filename
|
||||
@cindex binary files, determining by file name
|
||||
@vindex file-name-buffer-file-type-alist
|
||||
|
||||
The variable @code{file-name-buffer-file-type-alist} holds a list of
|
||||
filename patterns and their associated type; binary or text. Files marked
|
||||
as binary will not have line-end detection performed on them, and instead
|
||||
will always be displayed as is. With auto-detection in recent versions of
|
||||
Emacs, this is seldom useful for existing files, but can still be used
|
||||
to influence the choice of line ends for newly created files.
|
||||
|
||||
@node Line ends by file system
|
||||
@subsection CR/LF translation by file system
|
||||
@cindex line ends, determining by filesystem
|
||||
|
@ -1260,8 +1186,9 @@ MS Windows, but this has still been insufficient to keep up with
|
|||
changes in printing technology from text and postscript based printers
|
||||
connected via ports that can be accessed directly, to graphical
|
||||
printers that are only accessible via USB. For details, see
|
||||
@uref{http://www.emacswiki.org/cgi-bin/wiki/PrintingFromEmacs, Emacs
|
||||
Wiki}.
|
||||
@uref{http://www.emacswiki.org/emacs/PrintingFromEmacs, Emacs
|
||||
Wiki}, @uref{http://www.emacswiki.org/emacs/PrintWithWebBrowser}, and
|
||||
@uref{http://www.emacswiki.org/emacs/PrintFromWindowsExplorer}.
|
||||
|
||||
@c ------------------------------------------------------------
|
||||
@node Sub-processes
|
||||
|
@ -1293,9 +1220,7 @@ Wiki}.
|
|||
The quoting rules for native Windows shells and Cygwin shells have
|
||||
some subtle differences. When Emacs spawns subprocesses, it tries to
|
||||
determine whether the process is a Cygwin program and changes its
|
||||
quoting mechanism appropriately. See this
|
||||
@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting,
|
||||
previous discussion} for details.
|
||||
quoting mechanism appropriately.
|
||||
|
||||
@node Subprocess hang
|
||||
@section Programs reading input hang
|
||||
|
@ -1357,9 +1282,11 @@ you can use @code{setbuf} and @code{setvbuf} to manipulate
|
|||
the buffering semantics.
|
||||
|
||||
Some programs handle this by having an explicit flag to control their
|
||||
buffering behavior, typically @option{-i} for interactive. Other
|
||||
programs manage to detect that they are running under Emacs, by
|
||||
using @samp{getenv("emacs")} internally.
|
||||
buffering behavior, typically @option{-i} for interactive, or by a
|
||||
special environment variable. Other programs manage to detect that
|
||||
they are running under Emacs, by using @samp{getenv("emacs")}
|
||||
internally. Look in the program's documentation for the way around
|
||||
this issue.
|
||||
|
||||
@menu
|
||||
* Perl script buffering::
|
||||
|
@ -1428,6 +1355,7 @@ this discussion} for more details.
|
|||
@vindex explicit-shell-file-name
|
||||
|
||||
You can start an interactive shell in Emacs by typing @kbd{M-x shell}.
|
||||
By default, this will start the standard Windows shell @file{cmd.exe}.
|
||||
Emacs uses the @env{SHELL} environment variable to determine which
|
||||
program to use as the shell. To instruct Emacs to use a non-default
|
||||
shell, you can either set this environment variable, or customize
|
||||
|
@ -1467,11 +1395,6 @@ default shell in Emacs, you can place the following in your init file:
|
|||
(add-hook 'shell-mode-hook 'my-shell-setup)
|
||||
@end example
|
||||
|
||||
If you find that you are having trouble with Emacs tracking drive
|
||||
changes with bash, see Mike Fabian's
|
||||
@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/drive-tracking,
|
||||
note}.
|
||||
|
||||
WARNING: Some versions of bash set and use the environment variable
|
||||
PID. For some as yet unknown reason, if @env{PID} is set and Emacs
|
||||
passes it on to bash subshells, bash dies (Emacs can inherit the
|
||||
|
@ -1489,7 +1412,7 @@ continue to use bash as your subshell:
|
|||
@cindex cygwin mount points, using within Emacs
|
||||
|
||||
The package
|
||||
@uref{http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el,
|
||||
@uref{http://www.emacswiki.org/emacs/cygwin-mount.el,
|
||||
cygwin-mount.el} teaches Emacs about Cygwin mount points.
|
||||
|
||||
@node Dired ls
|
||||
|
@ -1849,11 +1772,15 @@ your type (@code{flyspell}). Both packages depend on a copy of
|
|||
@command{ispell} 3.2 or a compatible spell-checking program.
|
||||
GNU Aspell is a popular choice these days, Windows installers are
|
||||
available from the @uref{http://aspell.net/win32/, official site}.
|
||||
Another possibility is Hunspell, which is available from
|
||||
@uref{https://sourceforge.net/projects/ezwinports/files/?source=navbar,
|
||||
the ezwinports site}.
|
||||
|
||||
Once installed, you will need to configure @code{ispell-program-name}
|
||||
to tell ispell and flyspell to use @command{aspell} as a replacement for
|
||||
ispell. You can include the full path to the @file{aspell} binary, which
|
||||
means you do not need to add its installation directory to the @env{PATH}.
|
||||
to tell ispell and flyspell to use @command{aspell} or
|
||||
@command{hunspell} as a replacement for ispell. You can include the
|
||||
full path to the @file{aspell}/@file{hunspell} binary, which means you
|
||||
do not need to add its installation directory to the @env{PATH}.
|
||||
|
||||
@node Encryption
|
||||
@section Emacs and encryption
|
||||
|
@ -1942,6 +1869,13 @@ of grep is to use @samp{findstr /n /r}.
|
|||
@node Developing with Emacs
|
||||
@chapter Developing with Emacs
|
||||
|
||||
We recommend using the GNU Compiler Collection for developing C/C++
|
||||
code from Emacs. The MinGW development toolchain provides Windows
|
||||
ports of GCC and other compilers.
|
||||
|
||||
The rest of this chapter describes other alternatives which you may
|
||||
need to use.
|
||||
|
||||
@menu
|
||||
* MSVC::
|
||||
* Borland C++ Builder::
|
||||
|
@ -1971,7 +1905,7 @@ tools to build your project.
|
|||
|
||||
Christopher Payne wrote a Visual Studio add-in that makes Emacs the
|
||||
default text editor, this has now been taken over by Jeff Paquette.
|
||||
See the following two URLS for details:
|
||||
See the following two URLs for details:
|
||||
@itemize
|
||||
@item @uref{http://sourceforge.net/projects/visemacs/} for the latest version.
|
||||
@item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
|
||||
|
@ -2178,6 +2112,7 @@ suggestions} for improving the interaction of perldb and Emacs.
|
|||
@menu
|
||||
* Cygwin::
|
||||
* MinGW::
|
||||
* EZWinPorts::
|
||||
* UWIN::
|
||||
* GnuWin32::
|
||||
* GTK::
|
||||
|
@ -2230,6 +2165,17 @@ filesystem mapping to appear more POSIX like to the scripts that it
|
|||
runs. This is intended to complement the MinGW tools to make it easier
|
||||
to port software to Windows.
|
||||
|
||||
@node EZWinPorts
|
||||
@section EZWinPorts
|
||||
@cindex ezwinports
|
||||
|
||||
The @uref{https://sourceforge.net/projects/ezwinports/, EZWinPorts
|
||||
project} provides many useful ports of recent versions of GNU and Unix
|
||||
software. This includes all the optional libraries used by Emacs
|
||||
(image libraries, libxml2, GnuTLS), RCS, Texinfo, a clone of
|
||||
@command{man} command, Grep, xz, bzip2, bsdtar, ID Utils, Findutils,
|
||||
Hunspell, Gawk, GNU Make, Groff, GDB.
|
||||
|
||||
@node UWIN
|
||||
@section UWIN
|
||||
@cindex uwin environment
|
||||
|
@ -2251,8 +2197,8 @@ is @command{ksh}, the Korn shell.
|
|||
@uref{http://gnuwin32.sourceforge.net/}
|
||||
|
||||
GnuWin32 provides precompiled native Windows ports of a wide selection
|
||||
of Free software and libraries. Tools available here that are useful
|
||||
for Emacs include:
|
||||
of Free software and libraries. Unfortunately, the ports are
|
||||
outdated. Tools available here that are useful for Emacs include:
|
||||
|
||||
@itemize
|
||||
@item Arc - used by @code{archive-mode} to edit .arc files.
|
||||
|
@ -2302,7 +2248,8 @@ Man pages for Emacs and other ported programs that you have can be
|
|||
read using Emacs' built-in manual reader @code{woman}. This
|
||||
requires no external programs, but if you do have a port of
|
||||
@command{man}, there is also an Emacs wrapper @code{man} that
|
||||
which may be slightly faster.
|
||||
which may be slightly faster. A Windows version of @command{man} is
|
||||
available from the EZWinPorts site (@pxref{EZWinPorts}).
|
||||
|
||||
@c ------------------------------------------------------------
|
||||
@node Further information
|
||||
|
|
|
@ -2674,8 +2674,16 @@ variable in the environment.
|
|||
@cindex Maximize frame
|
||||
@cindex Fullscreen mode
|
||||
|
||||
Use the function @code{w32-send-sys-command}. For example, you can
|
||||
put the following in your @file{.emacs} file:
|
||||
Beginning with Emacs 24.4 either run Emacs with the @samp{--maximized}
|
||||
command-line option or put the following form in your @file{.emacs}
|
||||
file:
|
||||
|
||||
@lisp
|
||||
(add-hook 'emacs-startup-hook 'toggle-frame-maximized)
|
||||
@end lisp
|
||||
|
||||
With older versions use the function @code{w32-send-sys-command}. For
|
||||
example, you can put the following in your @file{.emacs} file:
|
||||
|
||||
@lisp
|
||||
(add-hook 'emacs-startup-hook
|
||||
|
|
|
@ -178,7 +178,7 @@ error. @ref{Signals}.
|
|||
|
||||
First off, please note that this manual cannot serve as a complete
|
||||
introduction to object oriented programming and generic functions in
|
||||
LISP. Although EIEIO is not a complete implementation of the Common
|
||||
LISP@. Although EIEIO is not a complete implementation of the Common
|
||||
Lisp Object System (CLOS) and also differs from it in several aspects,
|
||||
it follows the same basic concepts. Therefore, it is highly
|
||||
recommended to learn those from a textbook or tutorial first,
|
||||
|
|
|
@ -667,14 +667,6 @@ your Emacs configuration file. Everything after the @code{(require
|
|||
@lisp
|
||||
;;; Sample ERC configuration
|
||||
|
||||
;; Add the ERC directory to load path -- you don't need this if you are
|
||||
;; using the version of ERC that comes with Emacs
|
||||
(add-to-list 'load-path "~/elisp/erc")
|
||||
|
||||
;; Load ERC -- again, you don't need this if you are using the version
|
||||
;; of ERC that comes with Emacs
|
||||
(require 'erc)
|
||||
|
||||
;; Load authentication info from an external source. Put sensitive
|
||||
;; passwords and the like in here.
|
||||
(load "~/.emacs.d/.erc-auth")
|
||||
|
@ -724,8 +716,8 @@ stuff, to the current ERC buffer."
|
|||
(setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
|
||||
|
||||
;; Rename server buffers to reflect the current network name instead
|
||||
;; of IP:PORT. (e.g. "freenode" instead of "84.240.3.129:6667"). This
|
||||
;; is useful when using a bouncer like ZNC where you have multiple
|
||||
;; of SERVER:PORT (e.g., "freenode" instead of "irc.freenode.net:6667").
|
||||
;; This is useful when using a bouncer like ZNC where you have multiple
|
||||
;; connections to the same server.
|
||||
(setq erc-rename-buffers t)
|
||||
|
||||
|
@ -788,7 +780,7 @@ or if you have bugs to report, there are several places you can go.
|
|||
|
||||
@item
|
||||
@uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the
|
||||
emacswiki.org page for ERC@. Anyone may add tips, hints, etc. to it.
|
||||
emacswiki.org page for ERC@. Anyone may add tips, hints, etc.@: to it.
|
||||
|
||||
@item
|
||||
You can ask questions about using ERC on the Emacs mailing list,
|
||||
|
|
|
@ -649,7 +649,7 @@ Programs that need a terminal to display output properly are referred
|
|||
to in this manual as ``visual commands,'' because they are not simply
|
||||
line-oriented. You must tell Eshell which commands are visual, by
|
||||
adding them to @code{eshell-visual-commands}; for commands that are
|
||||
visual for only certain @emph{sub}-commands -- e.g. @samp{git log} but
|
||||
visual for only certain @emph{sub}-commands -- e.g., @samp{git log} but
|
||||
not @samp{git status} -- use @code{eshell-visual-subcommands}; and for
|
||||
commands that are visual only when passed certain options, use
|
||||
@code{eshell-visual-options}.
|
||||
|
|
|
@ -103,6 +103,12 @@ web page hit @kbd{g} (@code{eww-reload}). Pressing @kbd{w}
|
|||
which part of the document contains the ``readable'' text, and will
|
||||
only display this part. This usually gets rid of menus and the like.
|
||||
|
||||
@findex eww-toggle-fonts
|
||||
@findex shr-use-fonts
|
||||
@kindex F
|
||||
The @kbd{F} command (@code{eww-toggle-fonts}) toggles whether to use
|
||||
variable-pitch fonts or not. This sets the @code{shr-use-fonts} variable.
|
||||
|
||||
@findex eww-download
|
||||
@vindex eww-download-directory
|
||||
@kindex d
|
||||
|
@ -120,7 +126,7 @@ specified in @code{eww-download-directory} (Default: @file{~/Downloads/}).
|
|||
@cindex History
|
||||
EWW remembers the URLs you have visited to allow you to go back and
|
||||
forth between them. By pressing @kbd{l} (@code{eww-back-url}) you go
|
||||
to the previous URL. You can go forward again with @kbd{r}
|
||||
to the previous URL@. You can go forward again with @kbd{r}
|
||||
(@code{eww-forward-url}). If you want an overview of your browsing
|
||||
history press @kbd{H} (@code{eww-list-histories}) to open the history
|
||||
buffer @file{*eww history*}. The history is lost when EWW is quit.
|
||||
|
@ -241,7 +247,7 @@ Sessions, , emacs, The GNU Emacs Manual}.
|
|||
|
||||
@vindex eww-desktop-remove-duplicates
|
||||
EWW history may sensibly contain multiple entries for the same page
|
||||
URI. At run-time, these entries may still have different associated
|
||||
URI@. At run-time, these entries may still have different associated
|
||||
point positions or the actual Web page contents.
|
||||
The latter, however, tend to be overly large to preserve in the
|
||||
desktop file, so they get omitted, thus rendering the respective
|
||||
|
|
|
@ -11482,7 +11482,7 @@ who wrote the article, the date it was written and the subject of the
|
|||
article. That's well and nice, but there's also lots of information
|
||||
most people do not want to see---what systems the article has passed
|
||||
through before reaching you, the @code{Message-ID}, the
|
||||
@code{References}, etc. ad nauseam---and you'll probably want to get rid
|
||||
@code{References}, etc.@: ad nauseam---and you'll probably want to get rid
|
||||
of some of those lines. If you want to keep all those lines in the
|
||||
article buffer, you can set @code{gnus-show-all-headers} to @code{t}.
|
||||
|
||||
|
@ -14182,6 +14182,7 @@ from different locations, or with different user agents.
|
|||
* Connecting to an IMAP Server:: Getting started with @acronym{IMAP}.
|
||||
* Customizing the IMAP Connection:: Variables for @acronym{IMAP} connection.
|
||||
* Client-Side IMAP Splitting:: Put mail in the correct mail box.
|
||||
* Support for IMAP Extensions:: Getting extensions and labels from servers.
|
||||
@end menu
|
||||
|
||||
|
||||
|
@ -14328,6 +14329,29 @@ Here's a complete example @code{nnimap} backend with a client-side
|
|||
@end example
|
||||
|
||||
|
||||
@node Support for IMAP Extensions
|
||||
@subsection Support for IMAP Extensions
|
||||
|
||||
@cindex Gmail
|
||||
@cindex X-GM-LABELS
|
||||
@cindex IMAP labels
|
||||
|
||||
If you're using Google's Gmail, you may want to see your Gmail labels
|
||||
when reading your mail. Gnus can give you this information if you ask
|
||||
for @samp{X-GM-LABELS} in the variable @code{gnus-extra-headers}. For
|
||||
example:
|
||||
|
||||
@example
|
||||
(setq gnus-extra-headers
|
||||
'(To Newsgroups X-GM-LABELS))
|
||||
@end example
|
||||
|
||||
This will result in Gnus storing your labels in message header
|
||||
structures for later use. The content is always a parenthesized
|
||||
(possible empty) list.
|
||||
|
||||
|
||||
|
||||
@node Getting Mail
|
||||
@section Getting Mail
|
||||
@cindex reading mail
|
||||
|
@ -25881,7 +25905,7 @@ Store custom flags and keywords
|
|||
The registry can store custom flags and keywords for a message. For
|
||||
instance, you can mark a message ``To-Do'' this way and the flag will
|
||||
persist whether the message is in the nnimap, nnml, nnmaildir,
|
||||
etc. backends.
|
||||
etc.@: backends.
|
||||
|
||||
@item
|
||||
Store arbitrary data
|
||||
|
@ -25964,7 +25988,7 @@ registry will be pruned back to less than
|
|||
@code{gnus-registry-max-entries}. This option controls exactly how
|
||||
much less: the target is calculated as the maximum number of entries
|
||||
minus the maximum number times this factor. The default is 0.1:
|
||||
i.e. if your registry is limited to 50000 entries, pruning will try to
|
||||
i.e., if your registry is limited to 50000 entries, pruning will try to
|
||||
cut back to 45000 entries. Entries with keys marked as precious will
|
||||
not be pruned.
|
||||
@end defvar
|
||||
|
|
|
@ -839,7 +839,7 @@ See @ref{hfy-display-class} for details of valid values for @var{class}.
|
|||
(hfy-face-at P)
|
||||
@end lisp
|
||||
|
||||
Find face in effect at point P. If overlays are to be considered
|
||||
Find face in effect at point P@. If overlays are to be considered
|
||||
(see @ref{hfy-optimisations}) then this may return a @code{defface} style
|
||||
list of face properties instead of a face symbol.
|
||||
|
||||
|
@ -1418,7 +1418,7 @@ Add @samp{<div class="default"> </div>} tags around the fontified body.
|
|||
a page with different colors than the fontified code.)
|
||||
|
||||
@item keep-overlays
|
||||
Preserve overlay highlighting (c.f. @code{ediff} or @code{goo-font-lock})
|
||||
Preserve overlay highlighting (cf.@: @code{ediff} or @code{goo-font-lock})
|
||||
as well as basic faces. Can result in extremely verbose highlighting
|
||||
if there are many overlays (as is the case with @code{goo-font-lock}).
|
||||
|
||||
|
|
|
@ -1010,7 +1010,7 @@ Non-@code{nil} means use last match on line for
|
|||
@cindex Highlighting of syntax
|
||||
@cindex Font lock
|
||||
|
||||
Highlighting of keywords, comments, strings etc. can be accomplished
|
||||
Highlighting of keywords, comments, strings etc.@: can be accomplished
|
||||
with @code{font-lock}. If you are using @code{global-font-lock-mode}
|
||||
(in Emacs), or have @code{font-lock} turned on in any other buffer in
|
||||
XEmacs, it should also automatically work in IDLWAVE buffers. If you'd
|
||||
|
@ -3111,7 +3111,7 @@ window, but is useful for immediate stepping, etc.
|
|||
@kindex C-c C-d C-p
|
||||
Do you find yourself repeatedly typing, e.g., @code{print,n_elements(x)},
|
||||
and similar statements to remind yourself of the
|
||||
type/size/structure/value/etc. of variables and expressions in your code
|
||||
type/size/structure/value/etc.@: of variables and expressions in your code
|
||||
or at the command line? IDLWAVE has a suite of special commands to
|
||||
automate these types of variable or expression examinations. They work
|
||||
by sending statements to the shell formatted to include the indicated
|
||||
|
@ -3800,31 +3800,25 @@ available, it is the preferred choice, and the default. The variable
|
|||
whether this help browser is used. If you use the IDL Assistant, the
|
||||
tips here are not relevant.
|
||||
|
||||
Since IDLWAVE runs on a many different system types, a single browser
|
||||
configuration is not possible, but choices abound. On many systems,
|
||||
the default browser configured in @code{browse-url-browser-function},
|
||||
and hence inherited by default by
|
||||
@code{idlwave-help-browser-function}, is Netscape. Unfortunately, the
|
||||
HTML manuals decompiled from the original source contain formatting
|
||||
structures which Netscape 4.x does not handle well, though they are
|
||||
still readable. A much better choice is Mozilla, or one of the
|
||||
Mozilla-derived browsers such as
|
||||
@uref{http://galeon.sourceforge.net/,Galeon} (GNU/Linux),
|
||||
@uref{http://www.mozilla.org/projects/camino/,Camino} (MacOSX), or
|
||||
@uref{http://www.mozilla.org/projects/firebird/,Firebird} (all
|
||||
platforms). Newer versions of Emacs provide a browser-function choice
|
||||
@code{browse-url-gnome-moz} which uses the Gnome-configured browser.
|
||||
Since IDLWAVE runs on many different system types, a single browser
|
||||
configuration is not possible, but choices abound. The default
|
||||
@code{idlwave-help-browser-function} inherits the browser configured
|
||||
in @code{browse-url-browser-function}.
|
||||
|
||||
Note that the HTML files decompiled from the help sources contain
|
||||
specific references to the @samp{Symbol} font, which by default is not
|
||||
permitted in normal encodings (it's invalid, technically). Though it
|
||||
only impacts a few symbols, you can trick Mozilla-based browsers into
|
||||
recognizing @samp{Symbol} by following the directions
|
||||
@c This page is 11 years old. Is it still relevant?
|
||||
@uref{http://hutchinson.belmont.ma.us/tth/Xfonts.html, here}. With
|
||||
this fix in place, HTML help pages look almost identical to their PDF
|
||||
equivalents (yet can be bookmarked, browsed as history, searched,
|
||||
etc.).
|
||||
|
||||
@c Not updated in over a decade.
|
||||
@c Maybe you want to recommend eww these days.
|
||||
@ignore
|
||||
@noindent Individual platform recommendations:
|
||||
|
||||
@itemize @bullet
|
||||
|
@ -3861,6 +3855,7 @@ following, to get consistent behavior with the @kbd{q} key:
|
|||
Note that you can open the file in an external browser from within
|
||||
@code{w3m} using @kbd{M}.
|
||||
@end itemize
|
||||
@end ignore
|
||||
|
||||
@node Configuration Examples
|
||||
@appendix Configuration Examples
|
||||
|
|
|
@ -305,7 +305,7 @@ the files in that directory, simply move the directory to the head
|
|||
of the list and hit @key{RET}.
|
||||
|
||||
To go up to the parent directory, delete any partial file name already
|
||||
specified (e.g. using @key{DEL}) and hit @key{DEL}.
|
||||
specified (e.g., using @key{DEL}) and hit @key{DEL}.
|
||||
|
||||
@c @deffn Command ido-delete-backward-updir
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ You may select any number of feeds from this list of (sample) news feeds.
|
|||
@vindex newsticker-url-list
|
||||
@item newsticker-url-list
|
||||
All your personal news feeds are defined here. Each feed is
|
||||
identified by its name and an URL. You may set the start-time and the
|
||||
identified by its name and an URL@. You may set the start-time and the
|
||||
retrieval interval for each feed as well as the retrieval command
|
||||
arguments in case that the default values do not fit a certain feed.
|
||||
|
||||
|
@ -590,8 +590,7 @@ Newsticker works with the standard RSS and Atom formats listed below
|
|||
@subheading RSS formats
|
||||
|
||||
@itemize
|
||||
@item RSS 0.91 (see @uref{http://backend.userland.com/rss091} or
|
||||
@uref{http://my.netscape.com/publish/formats/rss-spec-0.91.html})
|
||||
@item RSS 0.91 (see @uref{http://backend.userland.com/rss091})
|
||||
@item RSS 0.92 (see @uref{http://backend.userland.com/rss092})
|
||||
@item RSS 1.0 (see @uref{http://purl.org/rss/1.0/spec})
|
||||
@item RSS 2.0 (see @uref{http://blogs.law.harvard.edu/tech/rss})
|
||||
|
|
|
@ -891,7 +891,7 @@ Recent Emacs distributions include a packaging system which lets you install
|
|||
Elisp libraries. You can install Org with @kbd{M-x package-install RET org}.
|
||||
|
||||
@noindent @b{Important}: you need to do this in a session where no @code{.org} file has
|
||||
been visited, i.e. where no Org built-in function have been loaded.
|
||||
been visited, i.e., where no Org built-in function have been loaded.
|
||||
Otherwise autoload Org functions will mess up the installation.
|
||||
|
||||
Then, to make sure your Org configuration is taken into account, initialize
|
||||
|
@ -10444,7 +10444,7 @@ You can change the default state of this option by setting
|
|||
|
||||
@item C-v
|
||||
Toggle visible-only export. Only export the text that is currently
|
||||
visible, i.e. not hidden by outline visibility in the buffer.
|
||||
visible, i.e., not hidden by outline visibility in the buffer.
|
||||
|
||||
@end table
|
||||
|
||||
|
@ -12103,7 +12103,7 @@ Internet-style links for all other links.
|
|||
A link with no description and destined to a regular (un-itemized) outline
|
||||
heading is replaced with a cross-reference and section number of the heading.
|
||||
|
||||
A @samp{\ref@{label@}}-style reference to an image, table etc. is replaced
|
||||
A @samp{\ref@{label@}}-style reference to an image, table etc.@: is replaced
|
||||
with a cross-reference and sequence number of the labeled entity.
|
||||
@xref{Labels and captions in ODT export}.
|
||||
|
||||
|
@ -13410,7 +13410,7 @@ from it (e.g., @code{beamer}).
|
|||
|
||||
This is obviously the most powerful customization, since the changes happen
|
||||
at the parser level. Indeed, some export back-ends are built as extensions
|
||||
of other ones (e.g. Markdown back-end an extension of HTML back-end).
|
||||
of other ones (e.g., Markdown back-end an extension of HTML back-end).
|
||||
|
||||
Extending a back-end means that if an element type is not transcoded by the
|
||||
new back-end, it will be handled by the original one. Hence you can extend
|
||||
|
|
|
@ -82,7 +82,7 @@ communication. Even though Mailcrypt has similar feature, it does not
|
|||
deal with detached PGP messages, normally used in PGP/MIME
|
||||
infrastructure. This was the main reason why I wrote the new library.
|
||||
|
||||
Note that the PGG library is now obsolete, replaced by EasyPG.
|
||||
Note that the PGG library is now obsolete, replaced by EasyPG@.
|
||||
@xref{Top,, EasyPG, epa, EasyPG Assistant User's Manual}.
|
||||
|
||||
PGP/MIME is an application of MIME Object Security Services (RFC1848).
|
||||
|
|
|
@ -608,7 +608,7 @@ Show calling point in another window. This is the point from where
|
|||
|
||||
@item <
|
||||
Promote the current section. This will convert @code{\section} to
|
||||
@code{\chapter}, @code{\subsection} to @code{\section} etc. If there is
|
||||
@code{\chapter}, @code{\subsection} to @code{\section} etc. If there is
|
||||
an active region, all sections in the region will be promoted, including
|
||||
the one at point. To avoid mistakes, @RefTeX{} requires a fresh
|
||||
document scan before executing this command; if necessary, it will
|
||||
|
@ -1567,7 +1567,7 @@ Here is the setup:
|
|||
@cindex @code{linguex}, LaTeX package
|
||||
@cindex LaTeX packages, @code{linguex}
|
||||
A more complex example is the @file{linguex.sty} package which defines
|
||||
list macros @samp{\ex.}, @samp{\a.}, @samp{\b.} etc. for lists which are
|
||||
list macros @samp{\ex.}, @samp{\a.}, @samp{\b.} etc.@: for lists which are
|
||||
terminated by @samp{\z.} or by an empty line.
|
||||
|
||||
@example
|
||||
|
@ -2961,6 +2961,12 @@ label itself in order to be processed correctly by @RefTeX{}. The only
|
|||
exception is that section labels referring to a section statement
|
||||
outside the current file can still use that section title as
|
||||
context.
|
||||
|
||||
@item
|
||||
@vindex reftex-include-file-commands
|
||||
@RefTeX{} knows about the @code{\include} and @code{\input} macros.
|
||||
In case you use different commands to include files in a multifile
|
||||
document, customize the variable @code{reftex-include-file-commands}.
|
||||
@end itemize
|
||||
|
||||
@node Language Support
|
||||
|
@ -3893,6 +3899,10 @@ Lisp (and even if you are) you might find it more comfortable to use
|
|||
@code{customize} to look at and change these variables. @kbd{M-x
|
||||
reftex-customize} will get you there.
|
||||
|
||||
In case you don't use the @code{customize} interface, here's a caveat:
|
||||
Changing (mostly parsing-related) options might require a call to
|
||||
@code{reftex-compile-variables} in order to become effective.
|
||||
|
||||
@menu
|
||||
* Options - Table of Contents::
|
||||
* Options - Defining Label Environments::
|
||||
|
@ -5896,7 +5906,7 @@ When no BibTeX database files are specified, citations can also use
|
|||
@noindent @b{Version 3.11}
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fixed bug which led to naked label in (e.g.@:) footnotes.
|
||||
Fixed bug which led to naked label in (e.g.)@: footnotes.
|
||||
@item
|
||||
Added scroll-other-window functions to RefTeX-Select.
|
||||
@end itemize
|
||||
|
|
|
@ -270,7 +270,7 @@ that region, will be remembered.
|
|||
|
||||
@defun remember-clipboard
|
||||
Remember the contents of the current clipboard. This is most useful
|
||||
for remembering things from Netscape or other X Windows applications.
|
||||
for remembering things from a web browser or other X Windows applications.
|
||||
@end defun
|
||||
|
||||
@defun remember-finalize
|
||||
|
|
|
@ -3,11 +3,12 @@
|
|||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2014-12-03.16}
|
||||
\def\texinfoversion{2015-02-05.16}
|
||||
%
|
||||
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
|
||||
% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This texinfo.tex file is free software: you can redistribute it and/or
|
||||
% modify it under the terms of the GNU General Public License as
|
||||
|
@ -4488,7 +4489,6 @@
|
|||
% Called from \indexdummies and \atdummies.
|
||||
%
|
||||
\def\commondummies{%
|
||||
%
|
||||
% \definedummyword defines \#1 as \string\#1\space, thus effectively
|
||||
% preventing its expansion. This is used only for control words,
|
||||
% not control letters, because the \space would be incorrect for
|
||||
|
@ -4565,6 +4565,7 @@
|
|||
\definedummyword\guilsinglright
|
||||
\definedummyword\lbracechar
|
||||
\definedummyword\leq
|
||||
\definedummyword\mathopsup
|
||||
\definedummyword\minus
|
||||
\definedummyword\ogonek
|
||||
\definedummyword\pounds
|
||||
|
@ -4578,6 +4579,8 @@
|
|||
\definedummyword\quotesinglbase
|
||||
\definedummyword\rbracechar
|
||||
\definedummyword\result
|
||||
\definedummyword\sub
|
||||
\definedummyword\sup
|
||||
\definedummyword\textdegree
|
||||
%
|
||||
% We want to disable all macros so that they are not expanded by \write.
|
||||
|
@ -4652,6 +4655,7 @@
|
|||
\definedummyword\samp
|
||||
\definedummyword\strong
|
||||
\definedummyword\tie
|
||||
\definedummyword\U
|
||||
\definedummyword\uref
|
||||
\definedummyword\url
|
||||
\definedummyword\var
|
||||
|
@ -8334,14 +8338,7 @@
|
|||
\catcode`\\=\other
|
||||
%
|
||||
% Make the characters 128-255 be printing characters.
|
||||
{%
|
||||
\count1=128
|
||||
\def\loop{%
|
||||
\catcode\count1=\other
|
||||
\advance\count1 by 1
|
||||
\ifnum \count1<256 \loop \fi
|
||||
}%
|
||||
}%
|
||||
{\setnonasciicharscatcodenonglobal\other}%
|
||||
%
|
||||
% @ is our escape character in .aux files, and we need braces.
|
||||
\catcode`\{=1
|
||||
|
@ -8952,6 +8949,7 @@
|
|||
\catcode\count255=#1\relax
|
||||
\advance\count255 by 1
|
||||
\repeat
|
||||
|
||||
}
|
||||
|
||||
% @documentencoding sets the definition of non-ASCII characters
|
||||
|
@ -8986,10 +8984,12 @@
|
|||
%
|
||||
\else \ifx \declaredencoding \utfeight
|
||||
\setnonasciicharscatcode\active
|
||||
\utfeightchardefs
|
||||
% since we already invoked \utfeightchardefs at the top level
|
||||
% (below), do not re-invoke it, then our check for duplicated
|
||||
% definitions triggers. Making non-ascii chars active is enough.
|
||||
%
|
||||
\else
|
||||
\message{Unknown document encoding #1, ignoring.}%
|
||||
\message{Ignoring unknown document encoding: #1.}%
|
||||
%
|
||||
\fi % utfeight
|
||||
\fi % latnine
|
||||
|
@ -8998,10 +8998,11 @@
|
|||
\fi % ascii
|
||||
}
|
||||
|
||||
% emacs-page
|
||||
% A message to be logged when using a character that isn't available
|
||||
% the default font encoding (OT1).
|
||||
%
|
||||
\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
|
||||
\def\missingcharmsg#1{\message{Character missing, sorry: #1.}}
|
||||
|
||||
% Take account of \c (plain) vs. \, (Texinfo) difference.
|
||||
\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
|
||||
|
@ -9037,12 +9038,10 @@
|
|||
\gdef^^b4{\'{}}
|
||||
\gdef^^b5{$\mu$}
|
||||
\gdef^^b6{\P}
|
||||
%
|
||||
\gdef^^b7{$^.$}
|
||||
\gdef^^b7{\ifmmode\cdot\else $\cdot$\fi}
|
||||
\gdef^^b8{\cedilla\ }
|
||||
\gdef^^b9{$^1$}
|
||||
\gdef^^ba{\ordm}
|
||||
%
|
||||
\gdef^^bb{\guillemetright}
|
||||
\gdef^^bc{$1\over4$}
|
||||
\gdef^^bd{$1\over2$}
|
||||
|
@ -9331,6 +9330,11 @@
|
|||
\expandafter\expandafter\expandafter\expandafter
|
||||
\expandafter\expandafter\expandafter
|
||||
\gdef\UTFviiiTmp{#2}%
|
||||
%
|
||||
\expandafter\ifx\csname uni:#1\endcsname \relax \else
|
||||
\errmessage{Internal error, already defined: #1}%
|
||||
\fi
|
||||
%
|
||||
% define an additional control sequence for this code point.
|
||||
\expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
|
||||
\endgroup}
|
||||
|
@ -9370,23 +9374,49 @@
|
|||
\uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
|
||||
\endgroup
|
||||
|
||||
% https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M
|
||||
% U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)
|
||||
% U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
|
||||
% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
|
||||
% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
|
||||
%
|
||||
% Many of our renditions are less than wonderful, and all the missing
|
||||
% characters are available somewhere. Loading the necessary fonts
|
||||
% awaits user request. We can't truly support Unicode without
|
||||
% reimplementing everything that's been done in LaTeX for many years,
|
||||
% plus probably using luatex or xetex, and who knows what else.
|
||||
% We won't be doing that here in this simple file. But we can try to at
|
||||
% least make most of the characters not bomb out.
|
||||
%
|
||||
\def\utfeightchardefs{%
|
||||
\DeclareUnicodeCharacter{00A0}{\tie}
|
||||
\DeclareUnicodeCharacter{00A1}{\exclamdown}
|
||||
\DeclareUnicodeCharacter{00A3}{\pounds}
|
||||
\DeclareUnicodeCharacter{00A7}{\S}
|
||||
\DeclareUnicodeCharacter{00A8}{\"{ }}
|
||||
\DeclareUnicodeCharacter{00A9}{\copyright}
|
||||
\DeclareUnicodeCharacter{00AA}{\ordf}
|
||||
\DeclareUnicodeCharacter{00AB}{\guillemetleft}
|
||||
\DeclareUnicodeCharacter{00AC}{\ifmmode\lnot\else $\lnot$\fi}
|
||||
\DeclareUnicodeCharacter{00AD}{\-}
|
||||
\DeclareUnicodeCharacter{00AE}{\registeredsymbol}
|
||||
\DeclareUnicodeCharacter{00AF}{\={ }}
|
||||
|
||||
\DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
|
||||
\DeclareUnicodeCharacter{00B1}{\ifmmode\pm\else $\pm$\fi}
|
||||
\DeclareUnicodeCharacter{00B2}{$^2$}
|
||||
\DeclareUnicodeCharacter{00B3}{$^3$}
|
||||
\DeclareUnicodeCharacter{00B4}{\'{ }}
|
||||
\DeclareUnicodeCharacter{00B5}{$\mu$}
|
||||
\DeclareUnicodeCharacter{00B6}{\P}
|
||||
\DeclareUnicodeCharacter{00B7}{\ifmmode\cdot\else $\cdot$\fi}
|
||||
\DeclareUnicodeCharacter{00B8}{\cedilla{ }}
|
||||
\DeclareUnicodeCharacter{00B9}{$^1$}
|
||||
\DeclareUnicodeCharacter{00BA}{\ordm}
|
||||
\DeclareUnicodeCharacter{00BB}{\guillemetright}
|
||||
\DeclareUnicodeCharacter{00BC}{$1\over4$}
|
||||
\DeclareUnicodeCharacter{00BD}{$1\over2$}
|
||||
\DeclareUnicodeCharacter{00BE}{$3\over4$}
|
||||
\DeclareUnicodeCharacter{00BF}{\questiondown}
|
||||
|
||||
\DeclareUnicodeCharacter{00C0}{\`A}
|
||||
|
@ -9413,6 +9443,7 @@
|
|||
\DeclareUnicodeCharacter{00D4}{\^O}
|
||||
\DeclareUnicodeCharacter{00D5}{\~O}
|
||||
\DeclareUnicodeCharacter{00D6}{\"O}
|
||||
\DeclareUnicodeCharacter{00D7}{\ifmmode\times\else $\times$\fi}
|
||||
\DeclareUnicodeCharacter{00D8}{\O}
|
||||
\DeclareUnicodeCharacter{00D9}{\`U}
|
||||
\DeclareUnicodeCharacter{00DA}{\'U}
|
||||
|
@ -9446,6 +9477,7 @@
|
|||
\DeclareUnicodeCharacter{00F4}{\^o}
|
||||
\DeclareUnicodeCharacter{00F5}{\~o}
|
||||
\DeclareUnicodeCharacter{00F6}{\"o}
|
||||
\DeclareUnicodeCharacter{00F7}{\ifmmode\div\else $\div$\fi}
|
||||
\DeclareUnicodeCharacter{00F8}{\o}
|
||||
\DeclareUnicodeCharacter{00F9}{\`u}
|
||||
\DeclareUnicodeCharacter{00FA}{\'u}
|
||||
|
@ -9465,20 +9497,23 @@
|
|||
\DeclareUnicodeCharacter{0107}{\'c}
|
||||
\DeclareUnicodeCharacter{0108}{\^C}
|
||||
\DeclareUnicodeCharacter{0109}{\^c}
|
||||
\DeclareUnicodeCharacter{0118}{\ogonek{E}}
|
||||
\DeclareUnicodeCharacter{0119}{\ogonek{e}}
|
||||
\DeclareUnicodeCharacter{010A}{\dotaccent{C}}
|
||||
\DeclareUnicodeCharacter{010B}{\dotaccent{c}}
|
||||
\DeclareUnicodeCharacter{010C}{\v{C}}
|
||||
\DeclareUnicodeCharacter{010D}{\v{c}}
|
||||
\DeclareUnicodeCharacter{010E}{\v{D}}
|
||||
\DeclareUnicodeCharacter{010F}{d'}
|
||||
|
||||
\DeclareUnicodeCharacter{0110}{\DH}
|
||||
\DeclareUnicodeCharacter{0111}{\dh}
|
||||
\DeclareUnicodeCharacter{0112}{\=E}
|
||||
\DeclareUnicodeCharacter{0113}{\=e}
|
||||
\DeclareUnicodeCharacter{0114}{\u{E}}
|
||||
\DeclareUnicodeCharacter{0115}{\u{e}}
|
||||
\DeclareUnicodeCharacter{0116}{\dotaccent{E}}
|
||||
\DeclareUnicodeCharacter{0117}{\dotaccent{e}}
|
||||
\DeclareUnicodeCharacter{0118}{\ogonek{E}}
|
||||
\DeclareUnicodeCharacter{0119}{\ogonek{e}}
|
||||
\DeclareUnicodeCharacter{011A}{\v{E}}
|
||||
\DeclareUnicodeCharacter{011B}{\v{e}}
|
||||
\DeclareUnicodeCharacter{011C}{\^G}
|
||||
|
@ -9488,14 +9523,20 @@
|
|||
|
||||
\DeclareUnicodeCharacter{0120}{\dotaccent{G}}
|
||||
\DeclareUnicodeCharacter{0121}{\dotaccent{g}}
|
||||
\DeclareUnicodeCharacter{0122}{\cedilla{G}}
|
||||
\DeclareUnicodeCharacter{0123}{\cedilla{g}}
|
||||
\DeclareUnicodeCharacter{0124}{\^H}
|
||||
\DeclareUnicodeCharacter{0125}{\^h}
|
||||
\DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}
|
||||
\DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}
|
||||
\DeclareUnicodeCharacter{0128}{\~I}
|
||||
\DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
|
||||
\DeclareUnicodeCharacter{012A}{\=I}
|
||||
\DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
|
||||
\DeclareUnicodeCharacter{012C}{\u{I}}
|
||||
\DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
|
||||
\DeclareUnicodeCharacter{012E}{\ogonek{I}}
|
||||
\DeclareUnicodeCharacter{012F}{\ogonek{i}}
|
||||
|
||||
\DeclareUnicodeCharacter{0130}{\dotaccent{I}}
|
||||
\DeclareUnicodeCharacter{0131}{\dotless{i}}
|
||||
|
@ -9503,15 +9544,29 @@
|
|||
\DeclareUnicodeCharacter{0133}{ij}
|
||||
\DeclareUnicodeCharacter{0134}{\^J}
|
||||
\DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
|
||||
\DeclareUnicodeCharacter{0136}{\cedilla{K}}
|
||||
\DeclareUnicodeCharacter{0137}{\cedilla{k}}
|
||||
\DeclareUnicodeCharacter{0138}{\ifmmode\kappa\else $\kappa$\fi}
|
||||
\DeclareUnicodeCharacter{0139}{\'L}
|
||||
\DeclareUnicodeCharacter{013A}{\'l}
|
||||
\DeclareUnicodeCharacter{013B}{\cedilla{L}}
|
||||
\DeclareUnicodeCharacter{013C}{\cedilla{l}}
|
||||
\DeclareUnicodeCharacter{013D}{L'}% should kern
|
||||
\DeclareUnicodeCharacter{013E}{l'}% should kern
|
||||
\DeclareUnicodeCharacter{013F}{L\U{00B7}}
|
||||
|
||||
\DeclareUnicodeCharacter{0140}{l\U{00B7}}
|
||||
\DeclareUnicodeCharacter{0141}{\L}
|
||||
\DeclareUnicodeCharacter{0142}{\l}
|
||||
\DeclareUnicodeCharacter{0143}{\'N}
|
||||
\DeclareUnicodeCharacter{0144}{\'n}
|
||||
\DeclareUnicodeCharacter{0145}{\cedilla{N}}
|
||||
\DeclareUnicodeCharacter{0146}{\cedilla{n}}
|
||||
\DeclareUnicodeCharacter{0147}{\v{N}}
|
||||
\DeclareUnicodeCharacter{0148}{\v{n}}
|
||||
\DeclareUnicodeCharacter{0149}{'n}
|
||||
\DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}
|
||||
\DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}
|
||||
\DeclareUnicodeCharacter{014C}{\=O}
|
||||
\DeclareUnicodeCharacter{014D}{\=o}
|
||||
\DeclareUnicodeCharacter{014E}{\u{O}}
|
||||
|
@ -9523,6 +9578,8 @@
|
|||
\DeclareUnicodeCharacter{0153}{\oe}
|
||||
\DeclareUnicodeCharacter{0154}{\'R}
|
||||
\DeclareUnicodeCharacter{0155}{\'r}
|
||||
\DeclareUnicodeCharacter{0156}{\cedilla{R}}
|
||||
\DeclareUnicodeCharacter{0157}{\cedilla{r}}
|
||||
\DeclareUnicodeCharacter{0158}{\v{R}}
|
||||
\DeclareUnicodeCharacter{0159}{\v{r}}
|
||||
\DeclareUnicodeCharacter{015A}{\'S}
|
||||
|
@ -9534,10 +9591,12 @@
|
|||
|
||||
\DeclareUnicodeCharacter{0160}{\v{S}}
|
||||
\DeclareUnicodeCharacter{0161}{\v{s}}
|
||||
\DeclareUnicodeCharacter{0162}{\cedilla{t}}
|
||||
\DeclareUnicodeCharacter{0163}{\cedilla{T}}
|
||||
\DeclareUnicodeCharacter{0162}{\cedilla{T}}
|
||||
\DeclareUnicodeCharacter{0163}{\cedilla{t}}
|
||||
\DeclareUnicodeCharacter{0164}{\v{T}}
|
||||
|
||||
\DeclareUnicodeCharacter{0165}{\v{t}}
|
||||
\DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}
|
||||
\DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}
|
||||
\DeclareUnicodeCharacter{0168}{\~U}
|
||||
\DeclareUnicodeCharacter{0169}{\~u}
|
||||
\DeclareUnicodeCharacter{016A}{\=U}
|
||||
|
@ -9549,6 +9608,8 @@
|
|||
|
||||
\DeclareUnicodeCharacter{0170}{\H{U}}
|
||||
\DeclareUnicodeCharacter{0171}{\H{u}}
|
||||
\DeclareUnicodeCharacter{0172}{\ogonek{U}}
|
||||
\DeclareUnicodeCharacter{0173}{\ogonek{u}}
|
||||
\DeclareUnicodeCharacter{0174}{\^W}
|
||||
\DeclareUnicodeCharacter{0175}{\^w}
|
||||
\DeclareUnicodeCharacter{0176}{\^Y}
|
||||
|
@ -9560,6 +9621,7 @@
|
|||
\DeclareUnicodeCharacter{017C}{\dotaccent{z}}
|
||||
\DeclareUnicodeCharacter{017D}{\v{Z}}
|
||||
\DeclareUnicodeCharacter{017E}{\v{z}}
|
||||
\DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}
|
||||
|
||||
\DeclareUnicodeCharacter{01C4}{D\v{Z}}
|
||||
\DeclareUnicodeCharacter{01C5}{D\v{z}}
|
||||
|
@ -9765,12 +9827,51 @@
|
|||
\DeclareUnicodeCharacter{2261}{\equiv}
|
||||
}% end of \utfeightchardefs
|
||||
|
||||
|
||||
% US-ASCII character definitions.
|
||||
\def\asciichardefs{% nothing need be done
|
||||
\relax
|
||||
}
|
||||
|
||||
% Latin1 (ISO-8859-1) character definitions.
|
||||
\def\nonasciistringdefs{%
|
||||
\setnonasciicharscatcode\active
|
||||
\def\defstringchar##1{\def##1{\string##1}}%
|
||||
\defstringchar^^a0\defstringchar^^a1\defstringchar^^a2\defstringchar^^a3%
|
||||
\defstringchar^^a4\defstringchar^^a5\defstringchar^^a6\defstringchar^^a7%
|
||||
\defstringchar^^a8\defstringchar^^a9\defstringchar^^aa\defstringchar^^ab%
|
||||
\defstringchar^^ac\defstringchar^^ad\defstringchar^^ae\defstringchar^^af%
|
||||
%
|
||||
\defstringchar^^b0\defstringchar^^b1\defstringchar^^b2\defstringchar^^b3%
|
||||
\defstringchar^^b4\defstringchar^^b5\defstringchar^^b6\defstringchar^^b7%
|
||||
\defstringchar^^b8\defstringchar^^b9\defstringchar^^ba\defstringchar^^bb%
|
||||
\defstringchar^^bc\defstringchar^^bd\defstringchar^^be\defstringchar^^bf%
|
||||
%
|
||||
\defstringchar^^c0\defstringchar^^c1\defstringchar^^c2\defstringchar^^c3%
|
||||
\defstringchar^^c4\defstringchar^^c5\defstringchar^^c6\defstringchar^^c7%
|
||||
\defstringchar^^c8\defstringchar^^c9\defstringchar^^ca\defstringchar^^cb%
|
||||
\defstringchar^^cc\defstringchar^^cd\defstringchar^^ce\defstringchar^^cf%
|
||||
%
|
||||
\defstringchar^^d0\defstringchar^^d1\defstringchar^^d2\defstringchar^^d3%
|
||||
\defstringchar^^d4\defstringchar^^d5\defstringchar^^d6\defstringchar^^d7%
|
||||
\defstringchar^^d8\defstringchar^^d9\defstringchar^^da\defstringchar^^db%
|
||||
\defstringchar^^dc\defstringchar^^dd\defstringchar^^de\defstringchar^^df%
|
||||
%
|
||||
\defstringchar^^e0\defstringchar^^e1\defstringchar^^e2\defstringchar^^e3%
|
||||
\defstringchar^^e4\defstringchar^^e5\defstringchar^^e6\defstringchar^^e7%
|
||||
\defstringchar^^e8\defstringchar^^e9\defstringchar^^ea\defstringchar^^eb%
|
||||
\defstringchar^^ec\defstringchar^^ed\defstringchar^^ee\defstringchar^^ef%
|
||||
%
|
||||
\defstringchar^^f0\defstringchar^^f1\defstringchar^^f2\defstringchar^^f3%
|
||||
\defstringchar^^f4\defstringchar^^f5\defstringchar^^f6\defstringchar^^f7%
|
||||
\defstringchar^^f8\defstringchar^^f9\defstringchar^^fa\defstringchar^^fb%
|
||||
\defstringchar^^fc\defstringchar^^fd\defstringchar^^fe\defstringchar^^ff%
|
||||
}
|
||||
|
||||
|
||||
% define all the unicode characters we know about, for the sake of @U.
|
||||
\utfeightchardefs
|
||||
|
||||
|
||||
% Make non-ASCII characters printable again for compatibility with
|
||||
% existing Texinfo documents that may use them, even without declaring a
|
||||
% document encoding.
|
||||
|
@ -10124,6 +10225,7 @@
|
|||
%
|
||||
{@catcode`- = @active
|
||||
@gdef@normalturnoffactive{%
|
||||
@nonasciistringdefs
|
||||
@let-=@normaldash
|
||||
@let"=@normaldoublequote
|
||||
@let$=@normaldollar %$ font-lock fix
|
||||
|
@ -10192,7 +10294,7 @@
|
|||
|
||||
@c Local variables:
|
||||
@c eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
@c page-delimiter: "^\\\\message"
|
||||
@c page-delimiter: "^\\\\message\\|emacs-page"
|
||||
@c time-stamp-start: "def\\\\texinfoversion{"
|
||||
@c time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
@c time-stamp-end: "}"
|
||||
|
|
|
@ -1421,7 +1421,7 @@ Advance point to the next button.
|
|||
Put point on the previous button.
|
||||
@end table
|
||||
|
||||
These commands are cyclic, e.g. when point is on the last button,
|
||||
These commands are cyclic, e.g., when point is on the last button,
|
||||
pressing @kbd{n} moves it to the first button.
|
||||
|
||||
Typing @kbd{q} exits Todo Categories mode, killing the buffer and returning
|
||||
|
@ -1787,7 +1787,7 @@ current file:
|
|||
@item F h
|
||||
@itemx h
|
||||
Hide the item headers if visible, or show them if they are hidden.
|
||||
With done items, only the done header (i.e. the done tag and date-time
|
||||
With done items, only the done header (i.e., the done tag and date-time
|
||||
string inserted when the item was marked done) is hidden, the original
|
||||
date-time string is not. With filtered items, the category (or
|
||||
category-file) tag is not hidden.
|
||||
|
|
|
@ -1001,16 +1001,17 @@ name.
|
|||
This special method uses the Android Debug Bridge for accessing
|
||||
Android devices. The Android Debug Bridge must be installed locally.
|
||||
Some GNU/Linux distributions offer it for installation, otherwise it
|
||||
can be installed as part of the Android SDK. If the @command{adb}
|
||||
can be installed as part of the Android SDK@. If the @command{adb}
|
||||
program is not found via the @env{PATH} environment variable, the
|
||||
variable @var{tramp-adb-program} must point to its absolute path.
|
||||
|
||||
Tramp does not connect Android devices to @command{adb}. This must be
|
||||
performed outside @value{emacsname}. If there is exactly one Android
|
||||
device connected to @command{adb}, a host name is not needed in the
|
||||
remote file name. The default @value{tramp} name to be used is
|
||||
@file{@trampfn{adb, , ,}} therefore. Otherwise, one could find
|
||||
potential host names with the command @command{adb devices}.
|
||||
@value{tramp} does not connect Android devices to @command{adb},
|
||||
unless the customer option @option{tramp-adb-connect-if-not-connected}
|
||||
is non-@code{nil}. If there is exactly one Android device connected
|
||||
to @command{adb}, a host name is not needed in the remote file name.
|
||||
The default @value{tramp} name to be used is @file{@trampfn{adb, , ,}},
|
||||
therefore. Otherwise, one could find potential host names with the
|
||||
command @command{adb devices}.
|
||||
|
||||
Usually, the @command{adb} method does not need any user name. It
|
||||
runs under the permissions of the @command{adbd} process on the
|
||||
|
@ -1019,6 +1020,11 @@ Android device. If a user name is specified, @value{tramp} applies an
|
|||
devices, especially with unrooted ones. In that case, an error
|
||||
message is displayed.
|
||||
|
||||
If a device shall be connected via TCP/IP, it is possible to declare
|
||||
the port number to be used like @file{device#42}. Without a port
|
||||
number, the default value as declared in @command{adb} will be used.
|
||||
Port numbers are not applicable to Android devices connected via USB.
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -1081,6 +1087,7 @@ FUSE, it also needs the SYNCE-GVFS plugin.
|
|||
|
||||
@end table
|
||||
|
||||
@vindex tramp-gvfs-methods
|
||||
@defopt tramp-gvfs-methods
|
||||
This customer option, a list, defines the external methods which shall
|
||||
be used with GVFS@. Per default, these are @option{dav},
|
||||
|
@ -1355,8 +1362,8 @@ bastion host.
|
|||
@vindex tramp-default-proxies-alist
|
||||
@defopt tramp-default-proxies-alist
|
||||
In order to specify multiple hops, it is possible to define a proxy
|
||||
host to pass through, via the variable
|
||||
@code{tramp-default-proxies-alist}. This variable keeps a list of
|
||||
host to pass through, via the customer option
|
||||
@option{tramp-default-proxies-alist}. This variable keeps a list of
|
||||
triples (@var{host} @var{user} @var{proxy}).
|
||||
|
||||
The first matching item specifies the proxy host to be passed for a
|
||||
|
@ -1470,9 +1477,9 @@ Sometimes they offer limited features only, like running @command{rbash}
|
|||
|
||||
@vindex tramp-restricted-shell-hosts-alist
|
||||
@defopt tramp-restricted-shell-hosts-alist
|
||||
This variable keeps a list of regular expressions, which denote hosts
|
||||
running a registered shell like "rbash". Those hosts can be used as
|
||||
proxies only.
|
||||
This customer option keeps a list of regular expressions, which denote
|
||||
hosts running a registered shell like @command{rbash}. Those hosts
|
||||
can be used as proxies only.
|
||||
|
||||
If the bastion host from the example above runs a restricted shell,
|
||||
you shall apply
|
||||
|
@ -1788,8 +1795,9 @@ remote file access.
|
|||
@vindex tramp-own-remote-path
|
||||
@defopt tramp-remote-path
|
||||
When @value{tramp} connects to the remote host, it searches for the
|
||||
programs that it can use. The variable @code{tramp-remote-path}
|
||||
controls the directories searched on the remote host.
|
||||
programs that it can use. The customer option
|
||||
@option{tramp-remote-path} controls the directories searched on the
|
||||
remote host.
|
||||
|
||||
By default, this is set to a reasonable set of defaults for most
|
||||
hosts. The symbol @code{tramp-default-remote-path} is a place
|
||||
|
@ -1798,7 +1806,7 @@ command @command{getconf PATH} on your remote host. For example,
|
|||
on Debian GNU/Linux this is @file{/bin:/usr/bin}, whereas on Solaris
|
||||
this is @file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin}.
|
||||
It is recommended to apply this symbol on top of
|
||||
@code{tramp-remote-path}.
|
||||
@option{tramp-remote-path}.
|
||||
|
||||
It is possible, however, that your local (or remote ;) system
|
||||
administrator has put the tools you want in some obscure local
|
||||
|
@ -2088,6 +2096,7 @@ parameter, you could overwrite the syntax with the following form:
|
|||
@noindent
|
||||
with @samp{192.168.0.1} being the IP address of your remote host
|
||||
(@pxref{Predefined connection information}).
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2591,11 +2600,12 @@ files by other processes. Therefore, during file name completion, the
|
|||
remote directory contents are reread regularly in order to detect such
|
||||
changes, which would be invisible otherwise (@pxref{Connection caching}).
|
||||
|
||||
@vindex tramp-completion-reread-directory-timeout
|
||||
@defopt tramp-completion-reread-directory-timeout
|
||||
This variable defines the number of seconds since last remote command
|
||||
before rereading a directory contents. A value of 0 would require an
|
||||
immediate reread during file name completion, @code{nil} means to use
|
||||
always cached values for the directory contents.
|
||||
This customer option defines the number of seconds since last remote
|
||||
command before rereading a directory contents. A value of 0 would
|
||||
require an immediate reread during file name completion, @code{nil}
|
||||
means to use always cached values for the directory contents.
|
||||
@end defopt
|
||||
|
||||
|
||||
|
@ -2634,8 +2644,9 @@ remotehost, /path}} would be sufficient from now on.
|
|||
@vindex tramp-save-ad-hoc-proxies
|
||||
@defopt tramp-save-ad-hoc-proxies
|
||||
This customer option controls whether ad-hoc definitions are kept
|
||||
persistently in @code{tramp-default-proxies-alist}. That means, those
|
||||
definitions are available also for future @value{emacsname} sessions.
|
||||
persistently in @option{tramp-default-proxies-alist}. That means,
|
||||
those definitions are available also for future @value{emacsname}
|
||||
sessions.
|
||||
@end defopt
|
||||
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
@c In the Tramp GIT, the version number is auto-frobbed from
|
||||
@c configure.ac, so you should edit that file and run
|
||||
@c "autoconf && ./configure" to change the version number.
|
||||
@set trampver 2.2.11
|
||||
@set trampver 2.2.12-pre
|
||||
|
||||
@c Other flags from configuration
|
||||
@set instprefix /usr/local
|
||||
|
|
|
@ -159,7 +159,7 @@ the construct on that line. A @dfn{syntactic component} consists of a
|
|||
pair of information (in lisp parlance, a @emph{cons cell}), where the
|
||||
first part is a @dfn{syntactic symbol}, and the second part is a
|
||||
@dfn{relative buffer position}. Syntactic symbols describe elements of
|
||||
VHDL code, e.g. @code{statement}, @code{comment}, @code{block-open},
|
||||
VHDL code, e.g., @code{statement}, @code{comment}, @code{block-open},
|
||||
@code{block-close}, etc. @xref{Syntactic Symbols}, for a complete list
|
||||
of currently recognized syntactic symbols and their semantics. Also,
|
||||
the variable @code{vhdl-offsets-alist} contains the list of currently
|
||||
|
@ -633,8 +633,8 @@ similar to what is allowed in @code{vhdl-offsets-alist}. When the file is
|
|||
visited, VHDL Mode will automatically institute these offsets using
|
||||
@code{vhdl-set-offset}. @xref{Customizing Indentation}.
|
||||
|
||||
Note that file style settings (i.e. @code{vhdl-file-style}) are applied
|
||||
before file offset settings (i.e. @code{vhdl-file-offsets}).
|
||||
Note that file style settings (i.e., @code{vhdl-file-style}) are applied
|
||||
before file offset settings (i.e., @code{vhdl-file-offsets}).
|
||||
|
||||
|
||||
@node Advanced Customizations
|
||||
|
|
|
@ -436,7 +436,7 @@ Jump to mark (and pop mark off the mark ring).
|
|||
|
||||
@cindex region
|
||||
|
||||
Vi operators like @kbd{d}, @kbd{c} etc. are usually used in combination
|
||||
Vi operators like @kbd{d}, @kbd{c} etc.@: are usually used in combination
|
||||
with motion commands. It is now possible to use current region as the
|
||||
argument to these operators. (A @dfn{region} is a part of buffer
|
||||
delimited by point and mark.) The key @kbd{r} is used for this purpose.
|
||||
|
|
|
@ -1224,7 +1224,7 @@ Facilities like this make Vi's @kbd{:ab} command obsolete.
|
|||
@cindex Ex style motion
|
||||
@cindex line editor motion
|
||||
|
||||
Viper can be set free from the line--limited movements in Vi, such as @kbd{l}
|
||||
Viper can be set free from the line-limited movements in Vi, such as @kbd{l}
|
||||
refusing to move beyond the line, @key{ESC} moving one character back,
|
||||
etc. These derive from Ex, which is a line editor. If your
|
||||
Viper customization file contains
|
||||
|
|
|
@ -1141,7 +1141,7 @@ headings. Default is @code{t}. [Heading emboldening is @emph{not} standard
|
|||
@code{man} behavior.]
|
||||
|
||||
@item woman-ignore
|
||||
A boolean value. If non-@code{nil} then unrecognized requests etc. are
|
||||
A boolean value. If non-@code{nil} then unrecognized requests etc.@: are
|
||||
ignored. Default is @code{t}. This gives the standard @code{roff} behavior.
|
||||
If @code{nil} then they are left in the buffer, which may aid debugging.
|
||||
|
||||
|
|
2987
etc/AUTHORS
2987
etc/AUTHORS
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,40 @@
|
|||
2015-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* TODO: Remove obsolete entries.
|
||||
|
||||
2015-03-24 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* NEWS: Mention change to `process-running-child-p`.
|
||||
|
||||
2015-03-23 Daiki Ueno <ueno@gnu.org>
|
||||
|
||||
* NEWS: Mention `make-process'.
|
||||
|
||||
2015-03-21 Titus von der Malsburg <malsburg@posteo.de>
|
||||
|
||||
* NEWS: Mention `default-font-width', `window-font-height',
|
||||
`window-font-width', and `window-max-chars-per-line'.
|
||||
|
||||
2015-03-03 Kelvin White <kwhite@gnu.org>
|
||||
|
||||
* NEWS.24: Add section to include ERC changes.
|
||||
|
||||
2015-03-02 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* NEWS: Mention finalizers.
|
||||
|
||||
2015-02-09 Gareth Rees <gdr@garethrees.org> (tiny change)
|
||||
|
||||
* NEWS.24: Fix typo (bug#19820)
|
||||
|
||||
2015-02-08 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* NEWS: Document `comment-line'.
|
||||
|
||||
2015-02-03 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* NEWS: Document package.el's improved dependency-handling.
|
||||
|
||||
2015-01-29 Francesc Rocher <francesc.rocher@gmail.com>
|
||||
|
||||
* images/splash.svg, images/splash.png:
|
||||
|
|
|
@ -9,6 +9,8 @@ For older news, see Gnus info node "New Features".
|
|||
|
||||
* New features
|
||||
|
||||
** nnimap can request and use the Gmail "X-GM-LABELS".
|
||||
|
||||
** New package `gnus-notifications.el' can send notifications when you
|
||||
receive new messages.
|
||||
|
||||
|
|
112
etc/NEWS
112
etc/NEWS
|
@ -53,7 +53,7 @@ build with 'make V=1'.
|
|||
group instead of a user if its argument is prefixed by ':' (a colon).
|
||||
This will cause the game score files in ${localstatedir}/games/emacs
|
||||
to be owned by that group, and the helper program for updating them to
|
||||
be installed setgid.
|
||||
be installed setgid. The option now defaults to the 'games' group.
|
||||
|
||||
---
|
||||
** The `grep-changelog' script (and its manual page) are no longer included.
|
||||
|
@ -65,12 +65,8 @@ so if you want to use it, you can always take a copy from an older Emacs.
|
|||
|
||||
|
||||
* Changes in Emacs 25.1
|
||||
** Xwidgets : A new feature for embedding native widgets
|
||||
inside Emacs buffers. If you have gtk3 and webkit-devel installed,
|
||||
you can try the embedded webkit browser with m-x xwidget-webkit-browse-url.
|
||||
** `package-install-from-buffer' and `package-install-file' work on directories.
|
||||
This follows the same rules as installing from a .tar file, except the
|
||||
-pkg file is optional.
|
||||
|
||||
** New command `comment-line' bound to `C-x C-;'.
|
||||
|
||||
** New function `custom-prompt-customize-unsaved-options' checks for
|
||||
unsaved customizations and prompts user to customize (if found).
|
||||
|
@ -177,6 +173,24 @@ possible inaccuracies in the end position.
|
|||
In particular, it now returns the average width of the font's
|
||||
characters, which can be used for geometry-related calculations.
|
||||
|
||||
** A new function `default-font-width' returns the average width of a
|
||||
character in the current buffer's default font. If the default face
|
||||
is remapped (see `face-remapping-alist'), the value for the remapped
|
||||
face is returned. This function complements the existing function
|
||||
`default-font-height'.
|
||||
|
||||
** New functions `window-font-height' and `window-font-width' return
|
||||
the height and average width of characters in a specified face and
|
||||
window. If FACE is remapped (see `face-remapping-alist'), the
|
||||
function returns the information for the remapped face.
|
||||
|
||||
** A new function `window-max-chars-per-line' returns the maximal
|
||||
number of characters that can be displayed on one line. If a face
|
||||
and/or window are provided, these values are used for the
|
||||
calculation. This function is different from `window-body-width' in
|
||||
that it accounts for (i) continuation glyphs, (ii) the size of the
|
||||
font, and (iii) the specified window.
|
||||
|
||||
|
||||
* Editing Changes in Emacs 25.1
|
||||
|
||||
|
@ -201,8 +215,31 @@ Unicode standards.
|
|||
|
||||
** You can access `mouse-buffer-menu' (C-down-mouse-1) using C-f10.
|
||||
|
||||
+++
|
||||
** New buffer-local `electric-pair-local-mode'.
|
||||
|
||||
|
||||
* Changes in Specialized Modes and Packages in Emacs 25.1
|
||||
** xterm-mouse-mode now supports mouse-tracking (if your xterm supports it).
|
||||
|
||||
** package.el
|
||||
*** `package-install-from-buffer' and `package-install-file' work on directories.
|
||||
This follows the same rules as installing from a .tar file, except the
|
||||
-pkg file is optional.
|
||||
|
||||
*** Packages which are dependencies of other packages cannot be deleted.
|
||||
The FORCE argument to `package-delete' overrides this.
|
||||
|
||||
*** New custom variable `package-selected-packages' tracks packages
|
||||
which were installed by the user (as opposed to installed as
|
||||
dependencies). This variable can also be manually customized.
|
||||
|
||||
*** New command `package-install-user-selected-packages' installs all
|
||||
packages from `package-selected-packages' which are currently missing.
|
||||
|
||||
*** New command `package-autoremove' removes all packages which were
|
||||
installed strictly as dependencies but are no longer needed.
|
||||
|
||||
** Shell
|
||||
|
||||
When you invoke `shell' interactively, the *shell* buffer will now
|
||||
|
@ -221,6 +258,7 @@ If you need your objects to be named, do it by inheriting from `eieio-named'.
|
|||
*** The <class> variables are declared obsolete.
|
||||
*** The <initarg> variables are declared obsolete.
|
||||
*** defgeneric and defmethod are declared obsolete.
|
||||
*** `constructor' is now an obsolete alias for `make-instance'.
|
||||
|
||||
** ido
|
||||
*** New command `ido-bury-buffer-at-head' bound to C-S-b
|
||||
|
@ -261,6 +299,14 @@ useful when, for example, one needs to distinguish various spaces (e.g. ] [,
|
|||
|
||||
** eww
|
||||
|
||||
---
|
||||
*** HTML can now be rendered using variable-width fonts.
|
||||
|
||||
+++
|
||||
*** A new command `F' (`eww-toggle-fonts') can be used to toggle
|
||||
whether to use variable-pitch fonts or not. The user can also
|
||||
customize the `shr-use-fonts' variable.
|
||||
|
||||
+++
|
||||
*** A new command `R' (`eww-readable') will try do identify the main
|
||||
textual parts of a web page and display only that, leaving menus and
|
||||
|
@ -305,7 +351,7 @@ invalid certificates are marked in red.
|
|||
transformed into multipart/related messages before sending.
|
||||
|
||||
** pcase
|
||||
*** New UPatterns `quote' and `app'.
|
||||
*** New UPatterns `quote', `app', `cl-struct', and `eieio'.
|
||||
*** New UPatterns can be defined with `pcase-defmacro'.
|
||||
+++
|
||||
*** New vector QPattern.
|
||||
|
@ -366,6 +412,8 @@ The remainder were:
|
|||
|
||||
** New ERT function `ert-summarize-tests-batch-and-exit'.
|
||||
|
||||
** New js.el option `js-indent-first-init'.
|
||||
|
||||
---
|
||||
** `Info-fontify-maximum-menu-size' can be t for no limit.
|
||||
|
||||
|
@ -444,6 +492,8 @@ allows to customize this.
|
|||
*** Two new faces `compare-windows-removed' and `compare-windows-added'
|
||||
replace the obsolete face `compare-windows'.
|
||||
|
||||
** VHDL mode supports VHDL'08.
|
||||
|
||||
** Calculator: decimal display mode uses "," groups, so it's more
|
||||
fitting for use in money calculations; factorial works with
|
||||
non-integer inputs.
|
||||
|
@ -529,10 +579,24 @@ to avoid interfering with the kill ring.
|
|||
allow overriding the regular expression that recognizes the ldapsearch
|
||||
command line's password prompt.
|
||||
|
||||
** Eshell
|
||||
|
||||
*** The new built-in command `clear' can scroll window contents out of sight.
|
||||
|
||||
** Browse-url
|
||||
|
||||
*** Support for the Conkeror web browser.
|
||||
|
||||
---
|
||||
*** Support for several ancient browsers is now officially obsolete.
|
||||
|
||||
+++
|
||||
** tar-mode: new `tar-new-entry' command, allowing for new members to
|
||||
be added to the archive.
|
||||
|
||||
** Autorevert: dired buffers are also auto-reverted via file
|
||||
notifications, if Emacs is compiled with file notification support.
|
||||
|
||||
** Obsolete packages
|
||||
|
||||
---
|
||||
|
@ -556,6 +620,10 @@ a typographically-correct documents.
|
|||
|
||||
* Incompatible Lisp Changes in Emacs 25.1
|
||||
|
||||
** `save-excursion' does not save&restore the mark any more.
|
||||
|
||||
** read-buffer-function can now be called with a 4th argument (`predicate').
|
||||
|
||||
** completion-table-dynamic stays in the minibuffer.
|
||||
If you want the old behavior of calling the function in the buffer
|
||||
from which the minibuffer was entered, call it with the new argument
|
||||
|
@ -570,6 +638,9 @@ active region handling.
|
|||
|
||||
** `cl-the' now asserts that its argument is of the given type.
|
||||
|
||||
** `process-running-child-p` may now return a numeric process
|
||||
group ID instead of `t'.
|
||||
|
||||
+++
|
||||
** Mouse click events on mode line or header line no longer include
|
||||
any reference to a buffer position. The 6th member of the mouse
|
||||
|
@ -584,9 +655,31 @@ when signaling a file error. For example, it now reports "Permission
|
|||
denied" instead of "permission denied". The old behavior was problematic
|
||||
in languages like German where downcasing rules depend on grammar.
|
||||
|
||||
+++
|
||||
** The character classes [:alpha:] and [:alnum:] in regular expressions
|
||||
now match multibyte characters using Unicode character properties.
|
||||
If you want the old behavior where they matched any character with
|
||||
word syntax, use `\sw' instead.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 25.1
|
||||
|
||||
** New function `make-process' provides an alternative interface to
|
||||
`start-process'. It allows programs to set process parameters such as
|
||||
process filter, sentinel, etc., through keyword arguments (similar to
|
||||
`make-network-process').
|
||||
|
||||
** `read-buffer' takes a new `predicate' argument.
|
||||
|
||||
** Emacs Lisp now supports generators.
|
||||
|
||||
** New finalizer facility for running code when objects
|
||||
become unreachable.
|
||||
|
||||
** lexical closures can use (:documentation <form>) to build their docstring.
|
||||
It should be placed right where the docstring would be, and <form> is then
|
||||
evaluated (and should return a string) when the closure is built.
|
||||
|
||||
** define-inline provides a new way to define inlinable functions.
|
||||
|
||||
** New function macroexpand-1 to perform a single step of macroexpansion.
|
||||
|
@ -724,6 +817,9 @@ Those features have been deprecated in Gtk+ for a long time.
|
|||
or Windows Server 2003. The built binaries still run on all versions
|
||||
of Windows starting with Windows 9X.
|
||||
|
||||
+++
|
||||
** Emacs running on MS-Windows now supports the daemon mode.
|
||||
|
||||
** OS X 10.5 or older is no longer supported.
|
||||
|
||||
** OS X on PowerPC is no longer supported.
|
||||
|
|
38
etc/NEWS.24
38
etc/NEWS.24
|
@ -14,41 +14,45 @@ and NEWS.1-17 for changes in older Emacs versions.
|
|||
You can narrow news to a specific version by calling `view-emacs-news'
|
||||
with a prefix argument or by typing C-u C-h C-n.
|
||||
|
||||
Temporary note:
|
||||
+++ indicates that all necessary documentation updates are complete.
|
||||
(This means all relevant manuals in doc/ AND lisp doc-strings.)
|
||||
--- means no change in the manuals is needed.
|
||||
When you add a new item, use the appropriate mark if you are sure it applies,
|
||||
otherwise leave it unmarked.
|
||||
|
||||
|
||||
* Changes in Emacs 24.5
|
||||
|
||||
---
|
||||
** This is mainly a bug-fix release, but there are some other changes.
|
||||
|
||||
** The default value of `history-length' has increased to 100.
|
||||
|
||||
+++
|
||||
** `redisplay-dont-pause' is declared as obsolete.
|
||||
** The variable `redisplay-dont-pause' is obsolete.
|
||||
|
||||
|
||||
* Changes in Specialized Modes and Packages in Emacs 24.5
|
||||
|
||||
** `call-process-shell-command' and `process-file-shell-command'
|
||||
don't take "&rest args" any more.
|
||||
** `call-process-shell-command' and `process-file-shell-command' no longer
|
||||
take "&rest args".
|
||||
|
||||
** The option `browse-url-firefox-startup-arguments' no longer has an effect.
|
||||
|
||||
** ERC
|
||||
|
||||
*** New option `erc-rename-buffers'.
|
||||
|
||||
*** New faces `erc-my-nick-prefix-face' and `erc-nick-prefix-face'.
|
||||
|
||||
*** `erc-format-@nick' displays all user modes instead of only op and voice.
|
||||
|
||||
*** The display of irc commands in the current buffer has been disabled.
|
||||
|
||||
*** `erc-version' now follows the Emacs version.
|
||||
|
||||
** Obsolete packages
|
||||
|
||||
*** cc-compat.el
|
||||
|
||||
---
|
||||
*** crisp.el - moved to elpa.gnu.org.
|
||||
*** crisp.el (moved to elpa.gnu.org)
|
||||
|
||||
---
|
||||
*** tpu-edt.el, ws-mode.el
|
||||
These emulations of old editors are believed to be no longer relevant
|
||||
- contact emacs-devel@gnu.org if you disagree.
|
||||
|
||||
---
|
||||
*** vi.el, vip.el (try M-x viper instead)
|
||||
|
||||
|
||||
|
@ -3555,7 +3559,7 @@ frame or window as an Elisp object.
|
|||
|
||||
*** New variable `completion-extra-properties' used to specify extra
|
||||
properties of the current completion:
|
||||
- :annotate-function, same as the old completion-annotate-function.
|
||||
- :annotation-function, same as the old completion-annotate-function.
|
||||
- :exit-function, function to call after completion took place.
|
||||
|
||||
*** Functions on `completion-at-point-functions' can return any of the
|
||||
|
|
26
etc/PROBLEMS
26
etc/PROBLEMS
|
@ -1,7 +1,6 @@
|
|||
Known Problems with GNU Emacs
|
||||
|
||||
Copyright (C) 1987-1989, 1993-1999, 2001-2015 Free Software Foundation,
|
||||
Inc.
|
||||
Copyright (C) 1987-1989, 1993-1999, 2001-2015 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
@ -458,6 +457,29 @@ problem by adding this to your .cshrc file:
|
|||
endif
|
||||
endif
|
||||
|
||||
*** Emacs startup on GNU/Linux systems (and possibly other systems) is slow.
|
||||
|
||||
This can happen if the system is misconfigured and Emacs can't get the
|
||||
full qualified domain name, FQDN. You should have your FQDN in the
|
||||
/etc/hosts file, something like this:
|
||||
|
||||
127.0.0.1 localhost
|
||||
129.187.137.82 nuc04.t30.physik.tu-muenchen.de nuc04
|
||||
|
||||
The way to set this up may vary on non-GNU systems.
|
||||
|
||||
*** Visiting files in some auto-mounted directories causes Emacs to print
|
||||
`Error reading dir-locals: (file-error "Read error" "is a directory" ...'
|
||||
|
||||
This can happen if the auto-mounter mistakenly reports that
|
||||
.dir-locals.el exists and is a directory. There is nothing Emacs can
|
||||
do about this, but you can avoid the issue by adding a suitable entry
|
||||
to the variable `locate-dominating-stop-dir-regexp'. For example, if
|
||||
the problem relates to "/smb/.dir-locals.el", set that variable
|
||||
to a new value where you replace "net\\|afs" with "net\\|afs\\|smb".
|
||||
(The default value already matches common auto-mount prefixes.)
|
||||
See http://lists.gnu.org/archive/html/help-gnu-emacs/2015-02/msg00461.html .
|
||||
|
||||
*** Attempting to visit remote files via ange-ftp fails.
|
||||
|
||||
If the error message is "ange-ftp-file-modtime: Specified time is not
|
||||
|
|
53
etc/TODO
53
etc/TODO
|
@ -102,6 +102,21 @@ make it.
|
|||
"FOO-tab -> ?\FOO-\t", "uppercase -> lowercase", "[fringe KEY...] ->
|
||||
[KEY]", "H-FOO -> M-FOO", "C-x C-y FOO -> H-FOO", ...
|
||||
|
||||
* Things related to elpa.gnu.org.
|
||||
|
||||
** Move idlwave to elpa.gnu.org.
|
||||
Need to sync up the Emacs and external versions.
|
||||
See <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00008.html>
|
||||
|
||||
** Move Org mode to elpa.gnu.org.
|
||||
See <http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00300.html>
|
||||
<http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00257.html>
|
||||
|
||||
** Move verilog-mode to elpa.gnu.org.
|
||||
See <http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg01180.html>
|
||||
|
||||
** Move vhdl-mode to elpa.gnu.org.
|
||||
See <http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg01180.html>
|
||||
|
||||
* Simple tasks. These don't require much Emacs knowledge, they are
|
||||
suitable for anyone from beginners to experts.
|
||||
|
@ -401,9 +416,6 @@ http://lists.gnu.org/archive/html/emacs-devel/2009-04/msg00034.html
|
|||
** Allow frames(terminals) created by emacsclient to inherit their environment
|
||||
from the emacsclient process.
|
||||
|
||||
** Remove the default toggling behavior of minor modes when called from elisp
|
||||
rather than interactively. This a trivial one-liner in easy-mode.el.
|
||||
|
||||
** Give Tar mode all the features of Archive mode.
|
||||
|
||||
** Create a category of errors called `process-error'
|
||||
|
@ -412,9 +424,6 @@ rather than interactively. This a trivial one-liner in easy-mode.el.
|
|||
** Maybe reinterpret `parse-error' as a category of errors
|
||||
and put some other errors under it.
|
||||
|
||||
** A function to tell you the argument pattern of functions.
|
||||
See `function-arity' in http://www.loveshack.ukfsn.org/emacs/fx-misc.el.
|
||||
|
||||
** Make byte-compile warn when a doc string is too wide.
|
||||
|
||||
** Make byte-optimization warnings issue accurate line numbers.
|
||||
|
@ -480,9 +489,6 @@ rather than interactively. This a trivial one-liner in easy-mode.el.
|
|||
** Give start-process the ability to direct standard-error
|
||||
output to a different filter.
|
||||
|
||||
** Make desktop.el save the "frame configuration" of Emacs (in some
|
||||
useful sense).
|
||||
|
||||
** Give desktop.el a feature to switch between different named desktops.
|
||||
|
||||
** Add a cpio mode, more or less like tar mode.
|
||||
|
@ -508,23 +514,10 @@ rather than interactively. This a trivial one-liner in easy-mode.el.
|
|||
Check the assignments file for other packages which might go in and
|
||||
have been missed.
|
||||
|
||||
** Make keymaps a first-class Lisp object (this means a rewrite of
|
||||
keymap.c). What should it do apart from being opaque ?
|
||||
multiple inheritance ? faster where-is ? no more fix_submap_inheritance ?
|
||||
what else ?
|
||||
|
||||
** Implement popular parts of the rest of the CL functions as compiler
|
||||
macros in cl-macs. [Is this still relevant now that cl-lib exists?]
|
||||
|
||||
** Make compiler warnings about functions that might be undefined at run time
|
||||
smarter, so that they know which files are required by the file being
|
||||
compiled and don't warn about functions defined in them.
|
||||
|
||||
** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA,
|
||||
but it's a valuable feature worth making more general.
|
||||
[Basic support added 2013/10:
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00904.html ]
|
||||
|
||||
** Split out parts of lisp.h.
|
||||
|
||||
** Update the FAQ.
|
||||
|
@ -532,11 +525,6 @@ rather than interactively. This a trivial one-liner in easy-mode.el.
|
|||
** Allow auto-compression-mode to use zlib calls if zlib is available.
|
||||
[It's required for PNG, so may be linked anyhow.]
|
||||
|
||||
** Add a --pristine startup flag which does -q --no-site-file plus
|
||||
ignoring X resources (Doze equivalents?) and most of the
|
||||
environment. What should not be ignored needs consideration.
|
||||
[Do the existing -Q and -D cover this, or is more needed?]
|
||||
|
||||
** Improve the GC (generational, incremental). (We may be able to use
|
||||
the Boehm collector.) [See the Boehm-GC branch in CVS for work on this.]
|
||||
|
||||
|
@ -563,20 +551,9 @@ rather than interactively. This a trivial one-liner in easy-mode.el.
|
|||
(Requires recursing through display properties). Provide some way
|
||||
to simulate mouse-clicks on marginal text without a mouse.
|
||||
|
||||
** Implement Lisp functions to determine properly whether a character
|
||||
is displayable (particularly needed in XFree 4, sigh). Use it to
|
||||
define useful glyphs that may be displayed as images or unicodes
|
||||
(with ASCIIfied fallback via latin1-disp). Examples include
|
||||
box-drawing graphics in Custom buffers, W3 rules and tables, and
|
||||
tree displays generally, mode-line mail indicator. [See work done
|
||||
already for Emacs 23 and consult fx.]
|
||||
|
||||
** Extend ps-print to deal with multiple font sizes, images, and extra
|
||||
encodings.
|
||||
|
||||
** Make byte-compile avoid binding an expanded defsubst's args
|
||||
when the body only calls primitives.
|
||||
|
||||
** Use the XIE X extension, if available, for image display.
|
||||
|
||||
** Make monochrome images display using the foreground and background
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2015-02-23 Pete Williamson <petewil0@googlemail.com> (tiny change)
|
||||
|
||||
Use ${EXEEXT} more uniformly in makefiles
|
||||
When porting Emacs to run on NaCl, we need to make sure that we always
|
||||
call it with the proper extension (.nexe in this case) during the build.
|
||||
* Makefile.in (EMACS): Append ${EXEEXT}.
|
||||
|
||||
2015-01-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Less 'make' chatter for leim
|
||||
|
|
|
@ -47,7 +47,7 @@ unexport EMACSDATA EMACSDOC EMACSPATH
|
|||
|
||||
# Which Emacs to use to convert TIT files to Emacs Lisp files,
|
||||
# and generate the file leim-list.el.
|
||||
EMACS = ../src/emacs
|
||||
EMACS = ../src/emacs${EXEEXT}
|
||||
|
||||
# How to run Emacs.
|
||||
# Prevent any setting of EMACSLOADPATH in user environment causing problems.
|
||||
|
|
|
@ -1,3 +1,76 @@
|
|||
2015-03-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port etags to -DDEBUG
|
||||
* etags.c (xnew, xrnew) [DEBUG]: Don't include chkmalloc.h, which
|
||||
is not part of Emacs and is typically not installed.
|
||||
Instead, just invoke xmalloc and xrealloc as usual.
|
||||
Problem reported by Nicolas Richard in:
|
||||
http://bugs.gnu.org/20191#20
|
||||
(xrnew): Avoid no-longer-needed cast to 'char *'.
|
||||
(xrealloc): First arg is now void *, not char *.
|
||||
|
||||
2015-03-06 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Random minor fixes for movemail
|
||||
* movemail.c: Include <stdbool.h> and <signal.h>.
|
||||
(waitpid) [WINDOWSNT]: New macro.
|
||||
(wait) [WINDOWSNT]: Remove.
|
||||
(main, popmail, pop_retr, mbx_write, mbx_delimit_begin)
|
||||
(mbx_delimit_end): Use bool for boolean.
|
||||
(main): Simplify #if usage a bit.
|
||||
(main): Don't assume EOF == -1. Prefer 'return' to 'exit'. Don't
|
||||
possibly unlink lockname twice, as that's a race condition. Set
|
||||
SIGCHLD to SIG_DFL to work around SysV misfeature. Check for fork
|
||||
failure. Use waitpid, not wait, to avoid a race condition in the
|
||||
unlikely case where we start up with a child.
|
||||
(NOTOK, OK): Remove, in favor of plain boolean.
|
||||
(popmail, pop_retr): Don't get confused about errno, e.g., ferror
|
||||
need not set errno.
|
||||
(popmail): Use fclose (mbf), not close (fileno (mbf)), to also
|
||||
detect any stream-related errors (e.g., memory exhaustion).
|
||||
(pop_retr): Report pop errors separately, since caller now does
|
||||
errno reporting.
|
||||
(mbx_write, mbx_delimit_begin, mbx_delimit_end): Check < 0, not ==
|
||||
EOF, as it's a bit faster and (in theory) pickier.
|
||||
|
||||
2015-02-27 Mark Laws <mdl@60hz.org>
|
||||
|
||||
Support daemon mode on MS-Windows (bug#19688)
|
||||
* emacsclient.c (decode_options) [WINDOWSNT]: Don't reject empty
|
||||
arguments for --alternate-editor.
|
||||
(print_help_and_exit) [WINDOWSNT]: Don't refrain from advertising
|
||||
empty arguments for --alternate-editor.
|
||||
(start_daemon_and_retry_set_socket) [WINDOWSNT]: MS-Windows
|
||||
specific code to start Emacs in daemon mode and wait for it to be
|
||||
ready for client connections.
|
||||
|
||||
2015-02-23 Pete Williamson <petewil0@googlemail.com> (tiny change)
|
||||
|
||||
Use ${EXEEXT} more uniformly in makefiles
|
||||
* Makefile.in (EMACS): Append ${EXEEXT}.
|
||||
|
||||
2015-02-20 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify binary I/O configuration
|
||||
* etags.c: Include <sysstdio.h> rather than <stdio.h>.
|
||||
(process_file_name, analyze_regex): Use FOPEN_BINARY rather than
|
||||
hard-coded "b".
|
||||
|
||||
2015-02-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* etags.c (process_file_name) [!DOS_NT]: Use "r", not "rb" in the
|
||||
call to 'popen'. (Bug#19735)
|
||||
|
||||
2015-02-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Better support for future plugins
|
||||
See the thread containing:
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00720.html
|
||||
* make-docfile.c (write_globals): Generate code that #defines
|
||||
Qxxx macros other than Qnil only if DEFINE_NONNIL_Q_SYMBOL_MACROS.
|
||||
Qnil is safe to define even in plugins, since it must be zero for
|
||||
other reasons.
|
||||
|
||||
2015-01-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix a couple of AM_V_GEN bugs
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
SHELL = @SHELL@
|
||||
|
||||
# Following ../lisp/Makefile.in.
|
||||
EMACS = ../src/emacs
|
||||
EMACS = ../src/emacs${EXEEXT}
|
||||
EMACSOPT = -batch --no-site-file --no-site-lisp
|
||||
|
||||
# ==================== Things `configure' will edit ====================
|
||||
|
|
|
@ -595,13 +595,6 @@ decode_options (int argc, char **argv)
|
|||
display = NULL;
|
||||
tty = 1;
|
||||
}
|
||||
|
||||
if (alternate_editor && alternate_editor[0] == '\0')
|
||||
{
|
||||
message (true, "--alternate-editor argument or ALTERNATE_EDITOR variable cannot be\n\
|
||||
an empty string");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
#endif /* WINDOWSNT */
|
||||
}
|
||||
|
||||
|
@ -642,10 +635,8 @@ The following OPTIONS are accepted:\n\
|
|||
Set filename of the TCP authentication file\n\
|
||||
-a EDITOR, --alternate-editor=EDITOR\n\
|
||||
Editor to fallback to if the server is not running\n"
|
||||
#ifndef WINDOWSNT
|
||||
" If EDITOR is the empty string, start Emacs in daemon\n\
|
||||
mode and try connecting again\n"
|
||||
#endif /* not WINDOWSNT */
|
||||
"\n\
|
||||
Report bugs with M-x report-emacs-bug.\n");
|
||||
exit (EXIT_SUCCESS);
|
||||
|
@ -1511,7 +1502,77 @@ start_daemon_and_retry_set_socket (void)
|
|||
execvp ("emacs", d_argv);
|
||||
message (true, "%s: error starting emacs daemon\n", progname);
|
||||
}
|
||||
#endif /* WINDOWSNT */
|
||||
#else /* WINDOWSNT */
|
||||
DWORD wait_result;
|
||||
HANDLE w32_daemon_event;
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
|
||||
ZeroMemory (&si, sizeof si);
|
||||
si.cb = sizeof si;
|
||||
ZeroMemory (&pi, sizeof pi);
|
||||
|
||||
/* We start Emacs in daemon mode, and then wait for it to signal us
|
||||
it is ready to accept client connections, by asserting an event
|
||||
whose name is known to the daemon (defined by nt/inc/ms-w32.h). */
|
||||
|
||||
if (!CreateProcess (NULL, "emacs --daemon", NULL, NULL, FALSE,
|
||||
CREATE_NO_WINDOW, NULL, NULL, &si, &pi))
|
||||
{
|
||||
char* msg = NULL;
|
||||
|
||||
FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM
|
||||
| FORMAT_MESSAGE_ALLOCATE_BUFFER
|
||||
| FORMAT_MESSAGE_ARGUMENT_ARRAY,
|
||||
NULL, GetLastError (), 0, (LPTSTR)&msg, 0, NULL);
|
||||
message (true, "%s: error starting emacs daemon (%s)\n", progname, msg);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
w32_daemon_event = CreateEvent (NULL, TRUE, FALSE, W32_DAEMON_EVENT);
|
||||
if (w32_daemon_event == NULL)
|
||||
{
|
||||
message (true, "Couldn't create Windows daemon event");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
if ((wait_result = WaitForSingleObject (w32_daemon_event, INFINITE))
|
||||
!= WAIT_OBJECT_0)
|
||||
{
|
||||
char *msg = NULL;
|
||||
|
||||
switch (wait_result)
|
||||
{
|
||||
case WAIT_ABANDONED:
|
||||
msg = "The daemon exited unexpectedly";
|
||||
break;
|
||||
case WAIT_TIMEOUT:
|
||||
/* Can't happen due to INFINITE. */
|
||||
default:
|
||||
case WAIT_FAILED:
|
||||
FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM
|
||||
| FORMAT_MESSAGE_ALLOCATE_BUFFER
|
||||
| FORMAT_MESSAGE_ARGUMENT_ARRAY,
|
||||
NULL, GetLastError (), 0, (LPTSTR)&msg, 0, NULL);
|
||||
break;
|
||||
}
|
||||
message (true, "Error: Could not start the Emacs daemon: %s\n", msg);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
CloseHandle (w32_daemon_event);
|
||||
|
||||
/* Try connecting, the daemon should have started by now. */
|
||||
/* It's just a progress message, so don't pop a dialog if this is
|
||||
emacsclientw. */
|
||||
if (!w32_window_app ())
|
||||
message (true,
|
||||
"Emacs daemon should have started, trying to connect again\n");
|
||||
if ((emacs_socket = set_socket (1)) == INVALID_SOCKET)
|
||||
{
|
||||
message (true,
|
||||
"Error: Cannot connect even after starting the Emacs daemon\n");
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
#endif /* WINDOWSNT */
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -122,7 +122,7 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
|
|||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <sysstdio.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -176,17 +176,8 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
|
|||
* SYNOPSIS: Type *xnew (int n, Type);
|
||||
* void xrnew (OldPointer, int n, Type);
|
||||
*/
|
||||
#if DEBUG
|
||||
# include "chkmalloc.h"
|
||||
# define xnew(n,Type) ((Type *) trace_malloc (__FILE__, __LINE__, \
|
||||
(n) * sizeof (Type)))
|
||||
# define xrnew(op,n,Type) ((op) = (Type *) trace_realloc (__FILE__, __LINE__, \
|
||||
(char *) (op), (n) * sizeof (Type)))
|
||||
#else
|
||||
# define xnew(n,Type) ((Type *) xmalloc ((n) * sizeof (Type)))
|
||||
# define xrnew(op,n,Type) ((op) = (Type *) xrealloc ( \
|
||||
(char *) (op), (n) * sizeof (Type)))
|
||||
#endif
|
||||
#define xnew(n, Type) ((Type *) xmalloc ((n) * sizeof (Type)))
|
||||
#define xrnew(op, n, Type) ((op) = (Type *) xrealloc (op, (n) * sizeof (Type)))
|
||||
|
||||
typedef void Lang_function (FILE *);
|
||||
|
||||
|
@ -348,7 +339,7 @@ static void canonicalize_filename (char *);
|
|||
static void linebuffer_init (linebuffer *);
|
||||
static void linebuffer_setlen (linebuffer *, int);
|
||||
static void *xmalloc (size_t);
|
||||
static void *xrealloc (char *, size_t);
|
||||
static void *xrealloc (void *, size_t);
|
||||
|
||||
|
||||
static char searchar = '/'; /* use /.../ searches */
|
||||
|
@ -1532,11 +1523,11 @@ process_file_name (char *file, language *lang)
|
|||
if (real_name == compressed_name)
|
||||
{
|
||||
char *cmd = concat (compr->command, " ", real_name);
|
||||
inf = popen (cmd, "rb");
|
||||
inf = popen (cmd, "r" FOPEN_BINARY);
|
||||
free (cmd);
|
||||
}
|
||||
else
|
||||
inf = fopen (real_name, "rb");
|
||||
inf = fopen (real_name, "r" FOPEN_BINARY);
|
||||
if (inf == NULL)
|
||||
{
|
||||
perror (real_name);
|
||||
|
@ -5600,7 +5591,7 @@ analyze_regex (char *regex_arg)
|
|||
char *regexfile = regex_arg + 1;
|
||||
|
||||
/* regexfile is a file containing regexps, one per line. */
|
||||
regexfp = fopen (regexfile, "rb");
|
||||
regexfp = fopen (regexfile, "r" FOPEN_BINARY);
|
||||
if (regexfp == NULL)
|
||||
pfatal (regexfile);
|
||||
linebuffer_init (®exbuf);
|
||||
|
@ -6533,7 +6524,7 @@ xmalloc (size_t size)
|
|||
}
|
||||
|
||||
static void *
|
||||
xrealloc (char *ptr, size_t size)
|
||||
xrealloc (void *ptr, size_t size)
|
||||
{
|
||||
void *result = realloc (ptr, size);
|
||||
if (result == NULL)
|
||||
|
|
|
@ -707,12 +707,9 @@ write_globals (void)
|
|||
globals[i].name, globals[i].name);
|
||||
}
|
||||
else if (globals[i].type == SYMBOL)
|
||||
printf (("DEFINE_LISP_SYMBOL_BEGIN (%s)\n"
|
||||
"#define i%s %d\n"
|
||||
"#define %s builtin_lisp_symbol (i%s)\n"
|
||||
"DEFINE_LISP_SYMBOL_END (%s)\n\n"),
|
||||
globals[i].name, globals[i].name, symnum++,
|
||||
globals[i].name, globals[i].name, globals[i].name);
|
||||
printf (("#define i%s %d\n"
|
||||
"DEFINE_LISP_SYMBOL (%s)\n"),
|
||||
globals[i].name, symnum++, globals[i].name);
|
||||
else
|
||||
{
|
||||
if (globals[i].flags & DEFUN_noreturn)
|
||||
|
@ -740,15 +737,19 @@ write_globals (void)
|
|||
puts ("#ifdef DEFINE_SYMBOLS");
|
||||
puts ("static char const *const defsym_name[] = {");
|
||||
for (int i = 0; i < num_globals; i++)
|
||||
{
|
||||
if (globals[i].type == SYMBOL)
|
||||
printf ("\t\"%s\",\n", globals[i].v.svalue);
|
||||
while (i + 1 < num_globals
|
||||
&& strcmp (globals[i].name, globals[i + 1].name) == 0)
|
||||
i++;
|
||||
}
|
||||
if (globals[i].type == SYMBOL)
|
||||
printf ("\t\"%s\",\n", globals[i].v.svalue);
|
||||
puts ("};");
|
||||
puts ("#endif");
|
||||
|
||||
puts ("#define Qnil builtin_lisp_symbol (0)");
|
||||
puts ("#if DEFINE_NON_NIL_Q_SYMBOL_MACROS");
|
||||
num_symbols = 0;
|
||||
for (int i = 0; i < num_globals; i++)
|
||||
if (globals[i].type == SYMBOL && num_symbols++ != 0)
|
||||
printf ("# define %s builtin_lisp_symbol (%d)\n",
|
||||
globals[i].name, num_symbols - 1);
|
||||
puts ("#endif");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/file.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
|
@ -66,6 +67,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#include <getopt.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include "syswait.h"
|
||||
#ifdef MAIL_USE_POP
|
||||
|
@ -81,7 +83,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#undef access
|
||||
#undef unlink
|
||||
#define fork() 0
|
||||
#define wait(var) (*(var) = 0)
|
||||
#define waitpid(child, var, flags) (*(var) = 0)
|
||||
/* Unfortunately, Samba doesn't seem to properly lock Unix files even
|
||||
though the locking call succeeds (and indeed blocks local access from
|
||||
other NT programs). If you have direct file access using an NFS
|
||||
|
@ -134,11 +136,11 @@ static void error (const char *s1, const char *s2, const char *s3);
|
|||
static _Noreturn void pfatal_with_name (char *name);
|
||||
static _Noreturn void pfatal_and_delete (char *name);
|
||||
#ifdef MAIL_USE_POP
|
||||
static int popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse_order);
|
||||
static int pop_retr (popserver server, int msgno, FILE *arg);
|
||||
static int mbx_write (char *line, int len, FILE *mbf);
|
||||
static int mbx_delimit_begin (FILE *mbf);
|
||||
static int mbx_delimit_end (FILE *mbf);
|
||||
static int popmail (char *, char *, bool, char *, bool);
|
||||
static bool pop_retr (popserver, int, FILE *);
|
||||
static bool mbx_write (char *, int, FILE *);
|
||||
static bool mbx_delimit_begin (FILE *);
|
||||
static bool mbx_delimit_end (FILE *);
|
||||
#endif
|
||||
|
||||
#if (defined MAIL_USE_MAILLOCK \
|
||||
|
@ -166,23 +168,21 @@ main (int argc, char **argv)
|
|||
int indesc, outdesc;
|
||||
ssize_t nread;
|
||||
int wait_status;
|
||||
int c, preserve_mail = 0;
|
||||
int c;
|
||||
bool preserve_mail = false;
|
||||
|
||||
#ifndef MAIL_USE_SYSTEM_LOCK
|
||||
struct stat st;
|
||||
int tem;
|
||||
char *lockname;
|
||||
char *tempname;
|
||||
size_t inname_len, inname_dirlen;
|
||||
int desc;
|
||||
#endif /* not MAIL_USE_SYSTEM_LOCK */
|
||||
|
||||
#ifdef MAIL_USE_MAILLOCK
|
||||
char *spool_name;
|
||||
#endif
|
||||
char *spool_name = 0;
|
||||
|
||||
#ifdef MAIL_USE_POP
|
||||
int pop_reverse_order = 0;
|
||||
bool pop_reverse_order = false;
|
||||
# define ARGSTR "pr"
|
||||
#else /* ! MAIL_USE_POP */
|
||||
# define ARGSTR "p"
|
||||
|
@ -193,19 +193,19 @@ main (int argc, char **argv)
|
|||
|
||||
delete_lockname = 0;
|
||||
|
||||
while ((c = getopt (argc, argv, ARGSTR)) != EOF)
|
||||
while (0 <= (c = getopt (argc, argv, ARGSTR)))
|
||||
{
|
||||
switch (c) {
|
||||
#ifdef MAIL_USE_POP
|
||||
case 'r':
|
||||
pop_reverse_order = 1;
|
||||
pop_reverse_order = true;
|
||||
break;
|
||||
#endif
|
||||
case 'p':
|
||||
preserve_mail++;
|
||||
preserve_mail = true;
|
||||
break;
|
||||
default:
|
||||
exit (EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -223,7 +223,7 @@ main (int argc, char **argv)
|
|||
#else
|
||||
fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n", "");
|
||||
#endif
|
||||
exit (EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
inname = argv[optind];
|
||||
|
@ -244,7 +244,7 @@ main (int argc, char **argv)
|
|||
status = popmail (inname + 3, outname, preserve_mail,
|
||||
(argc - optind == 3) ? argv[optind+2] : NULL,
|
||||
pop_reverse_order);
|
||||
exit (status);
|
||||
return status;
|
||||
}
|
||||
|
||||
if (setuid (getuid ()) < 0)
|
||||
|
@ -253,18 +253,15 @@ main (int argc, char **argv)
|
|||
#endif /* MAIL_USE_POP */
|
||||
|
||||
#ifndef DISABLE_DIRECT_ACCESS
|
||||
|
||||
char *lockname = 0;
|
||||
|
||||
#ifndef MAIL_USE_MMDF
|
||||
#ifndef MAIL_USE_SYSTEM_LOCK
|
||||
#ifdef MAIL_USE_MAILLOCK
|
||||
spool_name = mail_spool_name (inname);
|
||||
if (spool_name)
|
||||
{
|
||||
#ifdef lint
|
||||
lockname = 0;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (! spool_name)
|
||||
{
|
||||
/* Use a lock file named after our first argument with .lock appended:
|
||||
If it exists, the mail file is locked. */
|
||||
|
@ -292,7 +289,7 @@ main (int argc, char **argv)
|
|||
continue;
|
||||
tempname = xmalloc (inname_dirlen + sizeof "EXXXXXX");
|
||||
|
||||
while (1)
|
||||
while (true)
|
||||
{
|
||||
/* Create the lock file, but not under the lock file name. */
|
||||
/* Give up if cannot do that. */
|
||||
|
@ -328,7 +325,10 @@ main (int argc, char **argv)
|
|||
{
|
||||
time_t now = time (0);
|
||||
if (st.st_ctime < now - 300)
|
||||
unlink (lockname);
|
||||
{
|
||||
unlink (lockname);
|
||||
lockname = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -337,15 +337,20 @@ main (int argc, char **argv)
|
|||
#endif /* not MAIL_USE_SYSTEM_LOCK */
|
||||
#endif /* not MAIL_USE_MMDF */
|
||||
|
||||
if (fork () == 0)
|
||||
#ifdef SIGCHLD
|
||||
signal (SIGCHLD, SIG_DFL);
|
||||
#endif
|
||||
|
||||
pid_t child = fork ();
|
||||
if (child < 0)
|
||||
fatal ("Error in fork; %s", strerror (errno), 0);
|
||||
|
||||
if (child == 0)
|
||||
{
|
||||
int lockcount = 0;
|
||||
int status = 0;
|
||||
#if defined (MAIL_USE_MAILLOCK) && defined (HAVE_TOUCHLOCK)
|
||||
time_t touched_lock;
|
||||
# ifdef lint
|
||||
touched_lock = 0;
|
||||
# endif
|
||||
time_t touched_lock IF_LINT (= 0);
|
||||
#endif
|
||||
|
||||
if (setuid (getuid ()) < 0 || setregid (-1, real_gid) < 0)
|
||||
|
@ -382,9 +387,9 @@ main (int argc, char **argv)
|
|||
#ifdef MAIL_USE_MAILLOCK
|
||||
if (spool_name)
|
||||
{
|
||||
/* The "0 - " is to make it a negative number if maillock returns
|
||||
/* The "-" is to make it a negative number if maillock returns
|
||||
non-zero. */
|
||||
status = 0 - maillock (spool_name, 1);
|
||||
status = - maillock (spool_name, 1);
|
||||
#ifdef HAVE_TOUCHLOCK
|
||||
touched_lock = time (0);
|
||||
#endif
|
||||
|
@ -422,7 +427,7 @@ main (int argc, char **argv)
|
|||
{
|
||||
char buf[1024];
|
||||
|
||||
while (1)
|
||||
while (true)
|
||||
{
|
||||
nread = read (indesc, buf, sizeof buf);
|
||||
if (nread < 0)
|
||||
|
@ -464,7 +469,7 @@ main (int argc, char **argv)
|
|||
#ifdef MAIL_USE_SYSTEM_LOCK
|
||||
if (! preserve_mail)
|
||||
{
|
||||
if (ftruncate (indesc, 0L) != 0)
|
||||
if (ftruncate (indesc, 0) != 0)
|
||||
pfatal_with_name (inname);
|
||||
}
|
||||
#endif /* MAIL_USE_SYSTEM_LOCK */
|
||||
|
@ -499,21 +504,18 @@ main (int argc, char **argv)
|
|||
if (spool_name)
|
||||
mailunlock ();
|
||||
#endif
|
||||
exit (EXIT_SUCCESS);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
wait (&wait_status);
|
||||
if (waitpid (child, &wait_status, 0) < 0)
|
||||
fatal ("Error in waitpid; %s", strerror (errno), 0);
|
||||
if (!WIFEXITED (wait_status))
|
||||
exit (EXIT_FAILURE);
|
||||
return EXIT_FAILURE;
|
||||
else if (WEXITSTATUS (wait_status) != 0)
|
||||
exit (WEXITSTATUS (wait_status));
|
||||
return WEXITSTATUS (wait_status);
|
||||
|
||||
#if !defined (MAIL_USE_MMDF) && !defined (MAIL_USE_SYSTEM_LOCK)
|
||||
#ifdef MAIL_USE_MAILLOCK
|
||||
if (! spool_name)
|
||||
#endif /* MAIL_USE_MAILLOCK */
|
||||
if (lockname)
|
||||
unlink (lockname);
|
||||
#endif /* not MAIL_USE_MMDF and not MAIL_USE_SYSTEM_LOCK */
|
||||
|
||||
#endif /* ! DISABLE_DIRECT_ACCESS */
|
||||
|
||||
|
@ -616,12 +618,6 @@ pfatal_and_delete (char *name)
|
|||
#include <pwd.h>
|
||||
#include <string.h>
|
||||
|
||||
#define NOTOK (-1)
|
||||
#define OK 0
|
||||
|
||||
static char Errmsg[200]; /* POP errors, at least, can exceed
|
||||
the original length of 80. */
|
||||
|
||||
/*
|
||||
* The full valid syntax for a POP mailbox specification for movemail
|
||||
* is "po:username:hostname". The ":hostname" is optional; if it is
|
||||
|
@ -637,10 +633,11 @@ static char Errmsg[200]; /* POP errors, at least, can exceed
|
|||
*/
|
||||
|
||||
static int
|
||||
popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse_order)
|
||||
popmail (char *mailbox, char *outfile, bool preserve, char *password,
|
||||
bool reverse_order)
|
||||
{
|
||||
int nmsgs, nbytes;
|
||||
register int i;
|
||||
int i;
|
||||
int mbfi;
|
||||
FILE *mbf;
|
||||
popserver server;
|
||||
|
@ -690,7 +687,8 @@ popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse
|
|||
}
|
||||
}
|
||||
|
||||
if ((mbf = fdopen (mbfi, "wb")) == NULL)
|
||||
mbf = fdopen (mbfi, "wb");
|
||||
if (!mbf)
|
||||
{
|
||||
pop_close (server);
|
||||
error ("Error in fdopen: %s", strerror (errno), 0);
|
||||
|
@ -713,35 +711,28 @@ popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse
|
|||
}
|
||||
|
||||
for (i = start; i * increment <= end * increment; i += increment)
|
||||
{
|
||||
if (mbx_delimit_begin (mbf) != OK
|
||||
|| pop_retr (server, i, mbf) != OK)
|
||||
{
|
||||
error ("%s", Errmsg, 0);
|
||||
close (mbfi);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
mbx_delimit_end (mbf);
|
||||
fflush (mbf);
|
||||
if (ferror (mbf))
|
||||
{
|
||||
error ("Error in fflush: %s", strerror (errno), 0);
|
||||
pop_close (server);
|
||||
close (mbfi);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
if (! (mbx_delimit_begin (mbf)
|
||||
&& pop_retr (server, i, mbf)
|
||||
&& mbx_delimit_end (mbf)
|
||||
&& fflush (mbf) == 0))
|
||||
{
|
||||
if (errno)
|
||||
error ("Error in POP retrieving: %s", strerror (errno), 0);
|
||||
pop_close (server);
|
||||
fclose (mbf);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (fsync (mbfi) != 0 && errno != EINVAL)
|
||||
{
|
||||
error ("Error in fsync: %s", strerror (errno), 0);
|
||||
close (mbfi);
|
||||
fclose (mbf);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (close (mbfi) != 0)
|
||||
if (fclose (mbf) != 0)
|
||||
{
|
||||
error ("Error in close: %s", strerror (errno), 0);
|
||||
error ("Error in fclose: %s", strerror (errno), 0);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
@ -765,7 +756,7 @@ popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse
|
|||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
pop_retr (popserver server, int msgno, FILE *arg)
|
||||
{
|
||||
char *line;
|
||||
|
@ -773,8 +764,9 @@ pop_retr (popserver server, int msgno, FILE *arg)
|
|||
|
||||
if (pop_retrieve_first (server, msgno, &line))
|
||||
{
|
||||
snprintf (Errmsg, sizeof Errmsg, "Error from POP server: %s", pop_error);
|
||||
return (NOTOK);
|
||||
error ("Error from POP server: %s", pop_error, 0);
|
||||
errno = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
while ((ret = pop_retrieve_next (server, &line)) >= 0)
|
||||
|
@ -782,24 +774,26 @@ pop_retr (popserver server, int msgno, FILE *arg)
|
|||
if (! line)
|
||||
break;
|
||||
|
||||
if (mbx_write (line, ret, arg) != OK)
|
||||
if (! mbx_write (line, ret, arg))
|
||||
{
|
||||
strcpy (Errmsg, strerror (errno));
|
||||
int write_errno = errno;
|
||||
pop_close (server);
|
||||
return (NOTOK);
|
||||
errno = write_errno;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret)
|
||||
{
|
||||
snprintf (Errmsg, sizeof Errmsg, "Error from POP server: %s", pop_error);
|
||||
return (NOTOK);
|
||||
error ("Error from POP server: %s", pop_error, 0);
|
||||
errno = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
return (OK);
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
mbx_write (char *line, int len, FILE *mbf)
|
||||
{
|
||||
#ifdef MOVEMAIL_QUOTE_POP_FROM_LINES
|
||||
|
@ -811,47 +805,42 @@ mbx_write (char *line, int len, FILE *mbf)
|
|||
&& (a[4] == ' '))
|
||||
if (IS_FROM_LINE (line))
|
||||
{
|
||||
if (fputc ('>', mbf) == EOF)
|
||||
return (NOTOK);
|
||||
if (fputc ('>', mbf) < 0)
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
if (line[0] == '\037')
|
||||
{
|
||||
if (fputs ("^_", mbf) == EOF)
|
||||
return (NOTOK);
|
||||
if (fputs ("^_", mbf) < 0)
|
||||
return false;
|
||||
line++;
|
||||
len--;
|
||||
}
|
||||
if (fwrite (line, 1, len, mbf) != len)
|
||||
return (NOTOK);
|
||||
if (fputc (0x0a, mbf) == EOF)
|
||||
return (NOTOK);
|
||||
return (OK);
|
||||
return fwrite (line, 1, len, mbf) == len && 0 <= fputc ('\n', mbf);
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
mbx_delimit_begin (FILE *mbf)
|
||||
{
|
||||
time_t now = time (NULL);
|
||||
struct tm *ltime = localtime (&now);
|
||||
if (!ltime)
|
||||
return NOTOK;
|
||||
return false;
|
||||
|
||||
char fromline[100];
|
||||
if (! strftime (fromline, sizeof fromline,
|
||||
"From movemail %a %b %e %T %Y\n", ltime))
|
||||
return NOTOK;
|
||||
if (fputs (fromline, mbf) == EOF)
|
||||
return (NOTOK);
|
||||
return (OK);
|
||||
{
|
||||
errno = EOVERFLOW;
|
||||
return false;
|
||||
}
|
||||
return 0 <= fputs (fromline, mbf);
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
mbx_delimit_end (FILE *mbf)
|
||||
{
|
||||
if (putc ('\n', mbf) == EOF)
|
||||
return (NOTOK);
|
||||
return (OK);
|
||||
return 0 <= putc ('\n', mbf);
|
||||
}
|
||||
|
||||
#endif /* MAIL_USE_POP */
|
||||
|
|
|
@ -77,6 +77,7 @@ typedef struct gl_directory DIR;
|
|||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef opendir
|
||||
# define opendir rpl_opendir
|
||||
# define GNULIB_defined_opendir 1
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (opendir, DIR *, (const char *dir_name));
|
||||
|
@ -128,6 +129,7 @@ _GL_WARN_ON_USE (rewinddir, "rewinddir is not portable - "
|
|||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef closedir
|
||||
# define closedir rpl_closedir
|
||||
# define GNULIB_defined_closedir 1
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (closedir, int, (DIR *dirp));
|
||||
|
|
32
lib/dirfd.c
Normal file
32
lib/dirfd.c
Normal file
|
@ -0,0 +1,32 @@
|
|||
/* dirfd.c -- return the file descriptor associated with an open DIR*
|
||||
|
||||
Copyright (C) 2001, 2006, 2008-2015 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Written by Jim Meyering. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
|
||||
int
|
||||
dirfd (DIR *dir_p)
|
||||
{
|
||||
int fd = DIR_TO_FD (dir_p);
|
||||
if (fd == -1)
|
||||
errno = ENOTSUP;
|
||||
return fd;
|
||||
}
|
|
@ -93,7 +93,7 @@ fdopendir (int fd)
|
|||
That way, barring race conditions, fd_clone_opendir returns a
|
||||
stream whose file descriptor is FD.
|
||||
|
||||
If REPLACE_CHDIR or CWD is null, use opendir ("/proc/self/fd/...",
|
||||
If REPLACE_FCHDIR or CWD is null, use opendir ("/proc/self/fd/...",
|
||||
falling back on fchdir metadata. Otherwise, CWD is a saved version
|
||||
of the working directory; use fchdir/opendir(".")/restore_cwd(CWD). */
|
||||
static DIR *
|
||||
|
@ -156,7 +156,16 @@ fd_clone_opendir (int fd, struct saved_cwd const *cwd)
|
|||
if (! dir && EXPECTED_ERRNO (saved_errno))
|
||||
{
|
||||
char const *name = _gl_directory_name (fd);
|
||||
return (name ? opendir (name) : NULL);
|
||||
DIR *dp = name ? opendir (name) : NULL;
|
||||
|
||||
/* The caller has done an elaborate dance to arrange for opendir to
|
||||
consume just the right file descriptor. If dirfd returns -1,
|
||||
though, we're on a system like mingw where opendir does not
|
||||
consume a file descriptor. Consume it via 'dup' instead. */
|
||||
if (dp && dirfd (dp) < 0)
|
||||
dup (fd);
|
||||
|
||||
return dp;
|
||||
}
|
||||
# endif
|
||||
errno = saved_errno;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue