diff --git a/ChangeLog b/ChangeLog index 03815e86ff8..d245f6e2f9b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,412 @@ +2013-03-27 Paul Eggert + + * configure.ac (HAVE_XKBGETKEYBOARD): Remove. + Subsumed by HAVE_XKB. All uses changed. + +2013-03-27 Aidan Gauland + + * configure.ac (HAVE_XKB): Define if Xkb is present. + +2013-03-24 Paul Eggert + + Merge from gnulib, incorporating: + 2013-03-21 sys_select, sys_time: port 2013-01-30 fix to Cygwin + +2013-03-18 Paul Eggert + + Fix bug when building Emacs with a GNU Make submake (Bug#13962). + * Makefile.in (QUIET_SUBMAKE): New macro. + (install-info, uninstall): Use it. + + Emacs crashes with ImageMagick 6.8.2-3 through 6.8.3-9 (Bug#13867). + * configure.ac (IMAGEMAGICK_MODULE): Reject 6.8.2. + We want to reject 6.8.2-3 through 6.8.3-9, but there seems to be + no way to do this in pkg-config, so make do with a reasonable + approximation. + + Automate the build of ja-dic.el (Bug#13984). + * .bzrignore: Add leim/ja-dic/. + +2013-03-13 Paul Eggert + + File synchronization fixes (Bug#13944). + * configure.ac (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed. + (fsync): Remove check; now done by gnulib. + * lib/fdatasync.c, lib/fsync.c, m4/fdatasync.m4, m4/fsync.m4: + New files, from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + + Merge from gnulib, incorporating: + 2013-03-13 putenv: port to Solaris 10 + 2013-03-12 mktime: fix configure typo + 2013-03-11 regex: port to mingw's recent addition of undeclared alarm + 2013-03-11 putenv: avoid compilation warning on mingw + 2013-03-11 unistd: don't prevent Tru64 Unix from using gnulib strtod. + +2013-03-06 Paul Eggert + + * configure.ac (TERM_HEADER): Remove duplicate definition (Bug#13872). + It can mess up 'configure' runs. + +2013-03-05 Glenn Morris + + * Makefile.in (install-man): Ignore gzip exit status. + +2013-03-03 Glenn Morris + + * make-dist: Remove lzma (it's replaced by xz). + +2013-03-01 Paul Eggert + + Merge from gnulib, incorporating: + 2013-02-21 putenv: port better to native Windows + 2013-02-18 extern-inline: avoid compilation error with HP-UX cc + 2013-02-14 putenv: fix heap corruption with mixed putenv/_putenv + +2013-02-28 Ken Brown + + * configure.ac (HAVE_DATA_START): Fix test. (Bug#13818) + +2013-02-25 Paul Eggert + + Simplify data_start configuration (Bug#13783). + * configure.ac (CRT_DIR, LIB_STANDARD, START_FILES, DATA_START) + (LD_FIRSTFLAG, ORDINARY_LINK, LIB_GCC): Remove. + (AC_CHECK_HEADERS_ONCE): Remove sys/resource.h, as it's + not always needed. + (HAVE_DATA_START): New macro. + +2013-02-18 Aidan Gauland + + * lisp/eshell/em-cmpl.el: Corrected "context-related help" + keybinding in commentary. + +2013-02-21 Paul Eggert + + Parallelize documentation builds. + This speeds up building of documentation on multiprocessor + platforms, and is motivated by Texinfo 5.0, which is much slower. + Add a toplevel rule 'make docs' to make all the documentation. + * .bzrignore: Add .dvi, .html, .ps. + * Makefile.in (DVIS, HTMLS, INFOS, PSS, DOCS): New macros. + ($(DOCS), docs, vi, html, pdf, ps): New rules. + (info-real): Depend on $(INFOS) rather than doing it sequentially. + (dvi): Depend on $(DVIS) rather than doing it sequentially. + +2013-02-18 Aidan Gauland + + * doc/misc/eshell.texi: Added documentation for Eshell insert + output redirection operator, >>>. + +2013-02-15 Paul Eggert + + Fix AIX port (Bug#13650). + * configure.ac (DATA_START, DATA_SEG_BITS): Set to 0x20000000 on AIX. + +2013-02-12 Eli Zaretskii + + * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/memrchr.$(O). + ($(BLD)/memrchr.$(O)): New dependency. + +2013-02-11 Paul Eggert + + Tune by using memchr and memrchr. + * .bzrignore: Add string.h. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/memrchr.c, lib/string.in.h, m4/memrchr.m4, m4/string_h.m4: + New files, from gnulib. + + Merge from gnulib, incorporating: + 2013-02-11 unsetenv etc.: port to Solaris 11 + GNU Emacs + 2013-02-09 secure_getenv: fix C++ declaration typo + +2013-02-11 Glenn Morris + + * configure.ac (emacs_config_options): Record some env vars. + +2013-02-10 Glenn Morris + + * configure.ac (emacs_config_options): Strip out the (internal) + arguments --no-create and --no-recursion. + +2013-02-08 Paul Eggert + + Merge from gnulib, incorporating: + 2013-02-08 careadlinkat: stop exporting careadlinkatcwd + The MS-Windows port can remove careadlinkatcwd at its convenience. + 2013-02-08 extensions: port better to HP-UX + 2013-02-06 extensions: port better to MINIX 3, HP-UX, autoheader 2.62 + 2013-02-06 unistd: avoid namespace pollution on non-glibc systems + 2013-02-04 secure_getenv: new module [module not used by Emacs] + 2013-01-30 sys_time: port to Solaris 2.6 + +2013-02-01 Paul Eggert + + Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539). + On my host, this speeds up directory-files-and-attributes by a + factor of 3, when applied to Emacs's src directory. + These functions are standardized by POSIX and are common these + days; fall back on a (slower) gnulib implementation if the host + is too old to supply them. + * .bzrignore: Add lib/dirent.h. + * lib/Makefile.am (libgnu_a_SOURCES): Add openat-die.c, save-cwd.c. + * lib/careadlinkat.c, lib/careadlinkat.h: Merge from gnulib, + incorporating: 2013-01-29 careadlinkat: do not provide careadlinkatcwd. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/dirent.in.h, lib/fdopendir.c, lib/fstatat.c, lib/openat-priv.h: + * lib/openat-proc.c, lib/openat.h, m4/dirent_h.m4, m4/fdopendir.m4: + * m4/fstatat.m4: New files, from gnulib. + * lib/openat-die.c, lib/save-cwd.c, lib/save-cwd.h: New files. + These last three are specific to Emacs and are not copied from gnulib. + They are simpler than the gnulib versions and are tuned for Emacs. + +2013-02-01 Glenn Morris + + * make-dist: Only README files exist in lisp/ now, not README*. + +2013-01-23 Giorgos Keramidas (tiny change) + + * .bzrignore: add lib-src/blessmail. + +2013-01-23 Paul Eggert + + Merge from gnulib, incorporating: + 2013-01-16 unistd: port to recent mingw + +2013-01-19 Glenn Morris + + * Makefile.in (install-arch-indep): Put back a chmod that was + removed 2012-05-19. (Bug#13430) + +2013-01-16 Paul Eggert + + Merge from gnulib, incorporating: + 2013-01-16 largefile: port better to Mac OS X 10.5 + 2013-01-15 stdint: fix build with Android's Bionic fox x86 + +2013-01-16 Paul Eggert + + * configure.ac: Document that --enable-gcc-warnings emits errors. + (Bug#13448) + +2013-01-13 Glenn Morris + + * make-dist: Add options for xz compression and no compression. + +2013-01-12 Paul Eggert + + Enable conservative stack scanning for all architectures. + Suggested by Stefan Monnier in + . + * configure.ac (GC_MARK_STACK): Remove. + +2013-01-11 Paul Eggert + + * lib/getopt_.h: Remove trailing CRs that crept in. + +2013-01-11 Eli Zaretskii + + * lib/getopt_.h: Regenerate. + +2013-01-10 Paul Eggert + + Merge from gnulib, incorporating: + 2013-01-09 stdlib: port to Solaris 2.6 + +2013-01-04 Glenn Morris + + * info/dir: Add htmlfontify. + +2013-01-04 Paul Eggert + + Merge from gnulib, incorporating: + 2013-01-04 stdio: remove now-unnecessary stdio.c + 2013-01-04 fprintftime: depend on stdio, not ignore-value + 2013-01-04 fwrite: silence __wur only for older glibc versions + 2013-01-04 fwrite: silence __wur without using inline + * lib/stdio.c: Remove. + * lib/stdio.in.h, lib/strftime.c: Update from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + +2013-01-02 Paul Eggert + + Merge from gnulib, incorporating copyright-date changes and: + 2012-12-31 dup2: work around cygwin bug + +2012-12-30 Jan Djärv + + * configure.ac: Check for GtkHandlebox. + Check for GtkTearoffMenuItem. + New enable: --enable-gtk-deprecation-warnings, default off. + (HAVE_GTK3): If above enable is off, add + -DGDK_DISABLE_DEPRECATION_WARNINGS to GTK_CFLAGS. + +2012-12-30 Andreas Schwab + + * configure.ac (TEMACS_LDFLAGS2): Don't define. + (LIBS_GNUSTEP): Set for GNUstep and substitute. + (LD_SWITCH_SYSTEM_TEMACS): Don't set for GNUstep. + +2012-12-27 Glenn Morris + + * configure.ac (emacs_config_options): New. + Use $@ rather than undocumented $ac_configure_args. + Replace any embedded double quotes. (Bug#13274) + +2012-12-27 Andreas Schwab + + * configure.ac (SIGNALS_VIA_CHARACTERS): Also define for darwin. + (Bug#13222) + +2012-12-26 Paul Eggert + + Revert static checking of stack smashing. + * configure.ac (WARN_CFLAGS): Omit -Wstack-protector when + configured with --enable-gcc-warnings. -Wstack-protector causes + diagnostics to be issued on Ubuntu 12.10 x86-64. + +2012-12-24 Paul Eggert + + Merge from gnulib, incorporating: + 2012-12-21 AC_PROG_MKDIR_P: port workaround to pre-2.62 Autoconf + 2012-12-20 AC_PROG_MKDIR_P: don't workaround if not buggy + 2012-12-17 filemode, sys_stat: Handle MPX files a la AIX. + +2012-12-21 Akinori MUSHA (tiny change) + + * Makefile.in (install-arch-dep): Ignore chmod errors. (Bug#13233) + +2012-12-16 Romain Francoise + + * configure.ac (acl): New option. + (HAVE_POSIX_ACL): Test for POSIX ACL support. This is typically + provided by libacl on GNU/Linux. + +2012-12-14 Paul Eggert + + Fix permissions bugs with setgid directories etc. (Bug#13125) + * configure.ac (BSD4_2): Remove; no longer needed. + +2012-12-13 Glenn Morris + + * info/dir: Add bovine, srecode, wisent. + +2012-12-13 Andreas Schwab + + * Makefile.in (install-info): Use `${MAKE} -s' for echo-info. + (uninstall): Likewise. (Bug#13143) + +2012-12-11 Paul Eggert + + Merge from gnulib for 'inline' (Bug#13040), incorporating: + 2012-12-11 extern-inline: avoid incompatibility with Darwin Libc + * m4/extern-inline.m4: Update from gnulib. + +2012-12-11 Juanma Barranquero + + * lib/makefile.w32-in (SIG2STR_H): New macro. + ($(BLD)/sig2str.$(O)): Update dependencies. + +2012-12-10 Paul Eggert + + * configure.ac (HAVE_INOTIFY): Speed up configure-time test. + There's no need to test for any of three inotify functions, + since we use all three. Check for just the first one. + +2012-12-10 Daniel Colascione + + * .bzrignore: add src/emacs.res. + + * configure.ac (W32_RES, W32_RES_LINK, WINDRES): Teach the cygw32 + build how to compile Windows resource files; use these variables + to tell src/Makefile.in how and whether to compile resources. + +2012-12-10 Rüdiger Sonderfeld + + * configure.ac (inotify): New option. + (HAVE_INOTIFY): Test for inotify. + +2012-12-09 Andreas Schwab + + * configure.ac: Fix source command in .gdbinit. + Don't quote $MAKEINFO. + +2012-12-09 Paul Eggert + + Allow spaces in some configuration vars (Bug#13078). + * configure.ac (srcdir): Don't assume $PWD lacks spaces. + (srcdir, MAKEINFO, PKG_CONFIG, PKG_CONFIG_MIN_VERSION): + All uses quoted, to allow spaces in these vars. + +2012-12-08 Paul Eggert + + Use putenv+unsetenv instead of modifying environ directly (Bug#13070). + * lib/putenv.c, lib/unsetenv.c, m4/putenv.m4, m4/setenv.m4: + New files, copied automatically from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + +2012-12-08 Eli Zaretskii + + * lib/makefile.w32-in ($(BLD)/sig2str.$(O)): New dependency. + Remove a stray character at the beginning of the file. + (Bug#13026) + +2012-12-08 Paul Eggert + + Simplify get_lim_data. + * configure.ac (ULIMIT_BREAK_VALUE): Remove. + + Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026). + * configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF): + Use SIGCHLD rather than SIGCLD. + * lib/sig2str.c, lib/sig2str.h, m4/sig2str.m4: New files, from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/makefile.w32-in (GNULIBOBJS): Add $(BUILD)/sig2str.$(O). + +2012-12-06 Glenn Morris + + * configure.ac: Handle info/ files with or without ".info" extension. + +2012-11-30 Paul Eggert + + Merge from gnulib for 'inline' (Bug#13040), incorporating: + 2012-11-29 snippet/warn-on-use: no 'static inline' + 2012-11-29 ftruncate, fts, lstat, openat, raise: no 'static inline' + 2012-11-29 arctwo, md4, md5, sha1, sha256, sha512: no 'static inline' + 2012-11-29 fflush, stat: no 'static inline' + 2012-11-29 stdio: better 'inline' + 2012-11-29 sys_stat: no 'static inline' + 2012-11-29 unistd: better 'inline' + 2012-11-29 c-strtod, memcoll, readutmp: no 'static inline' + 2012-11-29 extern-inline: no 'static inline' + 2012-11-29 sys_socket: better 'inline' + * lib/stdio.c, lib/unistd.c: New files, from gnulib. + * build-aux/snippet/warn-on-use.h, lib/gnulib.mk, lib/lstat.c: + * lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c, lib/stat.c: + * lib/stdio.in.h, lib/sys_stat.in.h, lib/unistd.in.h, m4/c-strtod.m4: + * m4/extern-inline.m4, m4/gnulib-comp.m4, m4/lstat.m4, m4/md5.m4: + * m4/sha1.m4, m4/sha256.m4, m4/sha512.m4, m4/stat.m4, m4/stdio_h.m4: + * m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/unistd_h.m4: + Update from gnulib. + +2012-11-27 Eli Zaretskii + + * make-dist (nt): Adjust to changes in names of the *.manifest files. + +2012-11-24 Ken Brown + + * configure.ac (HAVE_MOUSE): Remove. + 2012-11-23 Paul Eggert Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958). @@ -11703,7 +12112,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/GNUmakefile b/GNUmakefile index 0602266adee..b829e93b498 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,6 +1,6 @@ # Build Emacs from a fresh tarball or version-control checkout. -# Copyright (C) 2011-2012 Free Software Foundation, Inc. +# Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/INSTALL b/INSTALL index 4716bbecf99..925c8b2de71 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ GNU Emacs Installation Guide -Copyright (C) 1992, 1994, 1996-1997, 2000-2012 +Copyright (C) 1992, 1994, 1996-1997, 2000-2013 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -656,7 +656,7 @@ Here is a complete list of the variables you may want to set. path variables - `bindir' and `libexecdir'. The above variables serve analogous purposes in the makefiles for all -GNU software; the following variable is specific to Emacs. +GNU software; the following variables are specific to Emacs. `archlibdir' indicates where Emacs installs and expects the executable files and other architecture-dependent data it uses while @@ -664,6 +664,10 @@ GNU software; the following variable is specific to Emacs. see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' (where VERSION and CONFIGURATION-NAME are as described above). +`GZIP_PROG' is the name of the executable that compresses installed info, + manual, and .el files. It defaults to gzip. Setting it to + the empty string suppresses compression. + Remember that you must specify any variable values you need each time you run `make' in the top directory. If you run `make' once to build emacs, test it, and then run `make' again to install the files, you diff --git a/INSTALL.BZR b/INSTALL.BZR index 9ff6a73a1c5..4b6797ebc96 100644 --- a/INSTALL.BZR +++ b/INSTALL.BZR @@ -1,4 +1,4 @@ -Copyright (C) 2002-2012 Free Software Foundation, Inc. +Copyright (C) 2002-2013 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/Makefile.in b/Makefile.in index 9b7bf795b84..bd77fa6a70d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,7 +2,7 @@ # DIST: make most of the changes to this file you might want, so try # DIST: that first. -# Copyright (C) 1992-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -54,6 +54,9 @@ # make bootstrap # Removes all the compiled files to force a new bootstrap from a # clean slate, and then build in the normal way. +# +# make docs +# Make Emacs documentation files from their sources; requires makeinfo. SHELL = /bin/sh @@ -64,6 +67,10 @@ CDPATH= # If Make doesn't predefine MAKE, set it here. @SET_MAKE@ +# Prevent submakes from outputting "Entering directory ..." and +# "Leaving directory..." diagnostics that would mess up 'make echo-info'. +QUIET_SUBMAKE = MAKELEVEL=0 + # ==================== Things `configure' Might Edit ==================== cache_file = @cache_file@ @@ -445,7 +452,7 @@ install-arch-dep: src install-arch-indep install-doc INSTALL_STRIP=${INSTALL_STRIP} if test "${ns_self_contained}" = "no"; then \ ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACSFULL) || exit 1 ; \ - chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL) ; \ + chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL) || true; \ if test "x${NO_BIN_LINK}" = x; then \ rm -f $(DESTDIR)${bindir}/$(EMACS) ; \ cd $(DESTDIR)${bindir} && $(LN_S) $(EMACSFULL) $(EMACS); \ @@ -534,6 +541,7 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR tar -xvf - && cat > /dev/null) || exit 1; \ [ "$${dir}" != "${srcdir}/etc" ] || rm -f $${dest}/DOC* ; \ for subdir in `find $${dest} -type d -print` ; do \ + chmod a+rx $${subdir} ; \ rm -f $${subdir}/.gitignore ; \ rm -f $${subdir}/.arch-inventory ; \ rm -f $${subdir}/.DS_Store ; \ @@ -568,7 +576,9 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR done ) -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} -# The last chmod isn't needed at present. +## The above chmods are needed because "umask 022; tar ..." is not +## guaranteed to do the right thing; eg if we are root and tar is +## preserving source permissions. ## We install only the relevant DOC file if possible ## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*. @@ -603,7 +613,9 @@ install-info: info [ -f dir ] || \ (cd $${thisdir}; \ ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ; \ - info_misc=`cd $${thisdir}/doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \ + info_misc=`cd $${thisdir}/doc/misc && \ + $(QUIET_SUBMAKE) $(MAKE) -s echo-info \ + `; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ @@ -618,6 +630,12 @@ install-info: info ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ done) +## "gzip || true" is because some gzips exit with non-zero status +## if compression would not reduce the file size. Eg, the gzip in +## OpenBSD 4.9 seems to do this (2013/03). In Emacs, this can +## only happen with the tiny ctags.1 manpage. We don't really care if +## ctags.1 is compressed or not. "gzip -f" is another option here, +## but not sure if portable. install-man: umask 022; ${MKDIR_P} $(DESTDIR)${man1dir} thisdir=`/bin/pwd`; \ @@ -628,7 +646,7 @@ install-man: ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \ ( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \ rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest}; \ + ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest} || true; \ done ## Install those items from etc/ that need to end up elsewhere. @@ -690,7 +708,7 @@ uninstall: done -rm -rf $(DESTDIR)${libexecdir}/emacs/${version} thisdir=`/bin/pwd`; \ - (info_misc=`cd doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \ + (info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ if cd $(DESTDIR)${infodir}; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ (cd $${thisdir}; \ @@ -856,13 +874,25 @@ check: dist: cd ${srcdir}; ./make-dist +DVIS = lispref-dvi lispintro-dvi emacs-dvi misc-dvi +HTMLS = lispref-html lispintro-html emacs-html misc-html +INFOS = lispref-info lispintro-info emacs-info misc-info +PDFS = lispref-pdf lispintro-pdf emacs-pdf misc-pdf +PSS = lispref-ps lispintro-ps emacs-ps # no misc-ps + +DOCS = $(DVIS) $(HTMLS) $(INFOS) $(PDFS) $(PSS) +$(DOCS): + t=$@; IFS=-; set $$t; IFS=; cd doc/$$1 && $(MAKE) $(MFLAGS) $$2 + +.PHONY: $(DOCS) docs pdf ps .PHONY: info dvi dist check html info-real force-info check-info-dir -info-real: - (cd doc/emacs; $(MAKE) $(MFLAGS) info) - (cd doc/misc; $(MAKE) $(MFLAGS) info) - (cd doc/lispref; $(MAKE) $(MFLAGS) info) - (cd doc/lispintro; $(MAKE) $(MFLAGS) info) +docs: $(DOCS) +dvi: $(DVIS) +html: $(HTMLS) +info-real: $(INFOS) +pdf: $(PDFS) +ps: $(PSS) force-info: # Note that man/Makefile knows how to put the info files in $(srcdir), @@ -901,12 +931,6 @@ check-info-dir: info fi ; \ echo "info/dir is OK" -dvi: - (cd doc/emacs; $(MAKE) $(MFLAGS) dvi) - (cd doc/misc; $(MAKE) $(MFLAGS) dvi) - (cd doc/lispref; $(MAKE) $(MFLAGS) elisp.dvi) - (cd doc/lispintro; $(MAKE) $(MFLAGS) emacs-lisp-intro.dvi) - #### Bootstrapping. ### This first cleans the lisp subdirectory, removing all compiled diff --git a/README b/README index 9153c656dbe..ebd07eaaa3d 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index f4105f00c47..a89d1764f7b 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -9,8 +9,6 @@ documented in config.in, and this file would not be necessary. AIX _AIX -BSD4_2 -BSD_SYSTEM CYGWIN Compiling the Cygwin port. __CYGWIN__ Ditto GNU_LINUX @@ -91,7 +89,6 @@ BROKEN_NON_BLOCKING_CONNECT BROKEN_PTY_READ_AFTER_EAGAIN CLASH_DETECTION DATA_SEG_BITS -DATA_START DEFAULT_SOUND_DEVICE DEVICE_SEP DIRECTORY_SEP @@ -151,7 +148,6 @@ HAVE_FORK HAVE_FREEIFADDRS HAVE_FREETYPE HAVE_FSEEKO -HAVE_FSYNC HAVE_FUTIMENS HAVE_FUTIMES HAVE_FUTIMESAT @@ -259,7 +255,6 @@ HAVE_MEMSET HAVE_MENUS HAVE_MKSTEMP HAVE_MMAP -HAVE_MOUSE HAVE_MULTILINGUAL_MENU HAVE_NANOTIME HAVE_NET_IF_DL_H @@ -382,7 +377,6 @@ HAVE_WS2TCPIP_H HAVE_XAW3D HAVE_XFT HAVE_XIM -HAVE_XKBGETKEYBOARD HAVE_XPM HAVE_XRMSETDATABASE HAVE_XSCREENNUMBEROFSCREEN @@ -410,7 +404,6 @@ NO_EDITRES NSIG NSIG_MINIMUM NULL_DEVICE -ORDINARY_LINK PAGESIZE PREFER_VSUSP PTY_ITERATION @@ -420,14 +413,7 @@ PTY_TTY_NAME_SPRINTF PURESIZE RUN_TIME_REMAP SETUP_SLAVE_PTY -SIGALRM -SIGCHLD -SIGHUP -SIGKILL SIGNALS_VIA_CHARACTERS -SIGPIPE -SIGQUIT -SIGTRAP STDC_HEADERS SYSTEM_PURESIZE_EXTRA SYSTEM_MALLOC @@ -437,7 +423,6 @@ TERM TIME_WITH_SYS_TIME TIOCSIGSEND TM_IN_SYS_TIME -ULIMIT_BREAK_VALUE UNIX98_PTYS USE_TOOLKIT_SCROLL_BARS USG_SUBTTY_WORKS diff --git a/admin/ChangeLog b/admin/ChangeLog index fe75ae57a6d..8b71b065056 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,113 @@ +2013-03-18 Paul Eggert + + * notes/unicode: Mention some more iso-2022-7bit files (Bug#13936). + + Automate the build of ja-dic.el (Bug#13984). + * notes/unicode: ja-dic.el is now UTF-8. + +2013-03-16 Glenn Morris + + * admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi. + +2013-03-16 Glenn Morris + + * admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG. + +2013-03-13 Paul Eggert + + File synchronization fixes (Bug#13944). + * CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove. + * merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync. + +2013-03-11 Paul Eggert + + * notes/unicode: Improve notes about Emacs source file encoding. + +2013-03-11 Glenn Morris + + * admin.el (make-manuals): Add emacs-lisp-intro and some more + doc/misc manuals. + (manual-html-mono, manual-html-node, manual-txt): + Pass -I to makeinfo. + +2013-03-10 Glenn Morris + + * admin.el (add-release-logs): Use UTC for release date. + +2013-03-09 Glenn Morris + + * admin.el (add-release-logs): Provide interactive defaults. + Allow specification of the release date. Don't exclude gnus/. + +2013-03-05 Paul Eggert + + * notes/unicode: Add notes about Emacs source file encoding. + +2013-03-04 Paul Eggert + + * grammars/java-tags.wy (CHAR): Remove "('\u0000' to '\uffff')" + from summary, as this causes javat-wy.el to contain both a null byte + and a byte sequence that is not valid UTF-8, which is inconvenient. + +2013-03-03 Paul Eggert + + * bzrmerge.el (bzrmerge-apply): Omit Latin-1 char from diagnostic. + If there were a real need, it should be UTF-8 anyway. + +2013-02-25 Paul Eggert + + Simplify data_start configuration (Bug#13783). + * CPP-DEFINES (DATA_START, ORDINARY_LINK): Remove. + +2013-02-11 Paul Eggert + + Tune by using memchr and memrchr. + * merge-gnulib (GNULIB_MODULES): Add memrchr. + +2013-02-01 Paul Eggert + + Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539). + * merge-gnulib (GNULIB_MODULES): Add fdopendir, fstatat, readlinkat. + (GNULIB_TOOL_FLAGS): Do not avoid at-internal, openat-h. + Avoid dup, open, opendir. + +2013-01-15 Dmitry Antipov + + * coccinelle/xsave.cocci: Semantic patch to adjust users of + XSAVE_POINTER and XSAVE_INTEGER macros. + +2013-01-03 Glenn Morris + + * check-doc-strings: Update for CVS->bzr, moved lispref/ directory. + + * emacs-pretesters, make-announcement, make-changelog-diff: + Remove files. + +2012-12-14 Paul Eggert + + Fix permissions bugs with setgid directories etc. (Bug#13125) + * CPP-DEFINES (BSD4_2): Remove. + +2012-12-08 Paul Eggert + + Use putenv+unsetenv instead of modifying environ directly (Bug#13070). + * merge-gnulib (GNULIB_MODULES): Add putenv, unsetenv. + + Simplify get_lim_data. + * CPP-DEFINES (ULIMIT_BREAK_VALUE): Remove. + +2012-12-03 Paul Eggert + + Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026). + * CPP-DEFINES (SIGALRM, SIGCHLD, SIGHUP, SIGKILL, SIGPIPE, SIGQUIT): + Remove. + (SIGTRAP): Remove this one too, as config.h no longer defines it. + * merge-gnulib (GNULIB_MODULES): Add sig2str. + +2012-11-24 Ken Brown + + * CPP-DEFINES (HAVE_MOUSE): Remove. + 2012-11-23 Paul Eggert Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958). @@ -100,15 +210,14 @@ * grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote): Remove. - (bovine-grammar-expand-form): Test for emacs-major-version. + (bovine-grammar-expand-form): Test for emacs-major-version. * grammars/c.by: Add EXPLICIT to keyword tokens. + Add %provide token. - * grammars/f90.by: Add %provide token. - - * grammar/grammar.wy (semantic-grammar-lexer): Remove, since it + * grammars/grammar.wy (semantic-grammar-lexer): Remove, since it was copied to grammar.el. New %provide token to generate prefix - which conforms with Emacs conventions. Remove lexer definition, + which conforms with Emacs conventions. Remove lexer definition, which is now in grammar.el. 2012-09-27 Glenn Morris @@ -152,7 +261,7 @@ 2012-09-13 Paul Eggert Simplify SIGIO usage (Bug#12408). - * CPP_DEFINES (BROKEN_SIGAIO, BROKEN_SIGIO, BROKEN_SIGPOLL) + * CPP-DEFINES (BROKEN_SIGAIO, BROKEN_SIGIO, BROKEN_SIGPOLL) (BROKEN_SIGPTY, NO_TERMIO): Remove. 2012-09-11 Paul Eggert @@ -1640,7 +1749,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2001-2012 Free Software Foundation, Inc. + Copyright (C) 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS index 34763083e9a..efcc63081b5 100644 --- a/admin/MAINTAINERS +++ b/admin/MAINTAINERS @@ -16,9 +16,6 @@ maintainer has been found so far. 1. ============================================================================== -Richard Stallman - ??? - Jason Rumney W32 @@ -71,13 +68,6 @@ Jay Belanger etc/calccard.tex doc/misc/calc.texi -Michael Olson - ERC - lisp/erc/* - etc/ERC-NEWS - doc/misc/erc.texi - lisp/emacs-lisp/tq.el - Bastien Guerry Org lisp/org/* @@ -87,9 +77,6 @@ Bastien Guerry 2. ============================================================================== -Steven Tamm - MacOS - Eli Zaretskii doc/* lispref/* diff --git a/admin/README b/admin/README index b5eefc2da7a..d696a14176e 100644 --- a/admin/README +++ b/admin/README @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -24,10 +24,6 @@ Instructions to create pretest or release tarballs, announcements, etc. Utilities for setting version numbers and alike. -** make-announcement, make-changelog-diff - -Scripts used to prepare release announcements. - * Scripts that can be used to build and test Emacs. diff --git a/admin/admin.el b/admin/admin.el index ec78fb27865..cb7eaead27f 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -1,6 +1,6 @@ ;;; admin.el --- utilities for Emacs administration -;; Copyright (C) 2001-2012 Free Software Foundation, Inc. +;; Copyright (C) 2001-2013 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -28,25 +28,38 @@ (defvar add-log-time-format) ; in add-log -(defun add-release-logs (root version) +;; Does this information need to be in every ChangeLog, as opposed to +;; just the top-level one? Only if you allow changes the same +;; day as the release. +;; http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00161.html +(defun add-release-logs (root version &optional date) "Add \"Version VERSION released.\" change log entries in ROOT. -Root must be the root of an Emacs source tree." - (interactive "DEmacs root directory: \nNVersion number: ") +Root must be the root of an Emacs source tree. +Optional argument DATE is the release date, default today." + (interactive (list (read-directory-name "Emacs root directory: ") + (read-string "Version number: " + (format "%s.%s" emacs-major-version + emacs-minor-version)) + (read-string "Release date: " + (progn (require 'add-log) + (let ((add-log-time-zone-rule t)) + (funcall add-log-time-format)))))) (setq root (expand-file-name root)) (unless (file-exists-p (expand-file-name "src/emacs.c" root)) (error "%s doesn't seem to be the root of an Emacs source tree" root)) (require 'add-log) + (or date (setq date (let ((add-log-time-zone-rule t)) + (funcall add-log-time-format)))) (let* ((logs (process-lines "find" root "-name" "ChangeLog")) (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n" - (funcall add-log-time-format) + date (or add-log-full-name (user-full-name)) (or add-log-mailing-address user-mail-address) version))) (dolist (log logs) - (unless (string-match "/gnus/" log) - (find-file log) - (goto-char (point-min)) - (insert entry))))) + (find-file log) + (goto-char (point-min)) + (insert entry)))) (defun set-version-in-file (root file version rx) (find-file (expand-file-name file root)) @@ -215,17 +228,33 @@ Root must be the root of an Emacs source tree." (manual-pdf texi (expand-file-name "elisp.pdf" dest)) (manual-dvi texi (expand-file-name "elisp.dvi" dvi-dir) (expand-file-name "elisp.ps" ps-dir))) + (let ((texi (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root)) + (dest (expand-file-name "emacs-lisp-intro" dest)) + dest2 dest3) + ;; Mimic the atypical directory layout used for emacs-lisp-intro. + (make-directory dest) + (make-directory (setq dest2 (expand-file-name "html_node" dest))) + (manual-html-node texi dest2) + (make-directory (setq dest2 (expand-file-name "html_mono" dest))) + (manual-html-mono texi (expand-file-name "emacs-lisp-intro.html" dest2)) + (make-directory (setq dest2 (expand-file-name "txt" dest))) + (manual-txt texi (expand-file-name "emacs-lisp-intro.txt" dest2)) + (manual-pdf texi (expand-file-name "emacs-lisp-intro.pdf" dest)) + (make-directory (setq dest2 (expand-file-name "dvi" dest))) + (make-directory (setq dest3 (expand-file-name "ps" dest))) + (manual-dvi texi (expand-file-name "emacs-lisp-intro.dvi" dest2) + (expand-file-name "emacs-lisp-intro.ps" dest3))) ;; Misc manuals - (let ((manuals '("ada-mode" "auth" "autotype" "calc" "cc-mode" + (let ((manuals '("ada-mode" "auth" "autotype" "bovine" "calc" "cc-mode" "cl" "dbus" "dired-x" "ebrowse" "ede" "ediff" - "edt" "eieio" "emacs-mime" "epa" "erc" "ert" + "edt" "eieio" "emacs-gnutls" "emacs-mime" "epa" "erc" "ert" "eshell" "eudc" "faq" "flymake" "forms" - "gnus" "emacs-gnutls" "idlwave" "info" + "gnus" "htmlfontify" "idlwave" "info" "mairix-el" "message" "mh-e" "newsticker" "nxml-mode" "org" "pcl-cvs" "pgg" "rcirc" - "remember" "reftex" "sasl" "sc" "semantic" - "ses" "sieve" "smtpmail" "speedbar" "tramp" - "url" "vip" "viper" "widget" "woman"))) + "reftex" "remember" "sasl" "sc" "semantic" + "ses" "sieve" "smtpmail" "speedbar" "srecode" "tramp" + "url" "vip" "viper" "widget" "wisent" "woman"))) (dolist (manual manuals) (manual-misc-html manual root html-node-dir html-mono-dir))) (message "Manuals created in %s" dest))) @@ -256,6 +285,11 @@ This function also edits the HTML files so that they validate as HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using the @import directive." (call-process "makeinfo" nil nil nil + "-D" "WWW_GNU_ORG" + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) "--html" "--no-split" texi-file "-o" dest) (with-temp-buffer (insert-file-contents dest) @@ -277,6 +311,11 @@ the @import directive." (unless (file-exists-p texi-file) (error "Manual file %s not found" texi-file)) (call-process "makeinfo" nil nil nil + "-D" "WWW_GNU_ORG" + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) "--html" texi-file "-o" dir) ;; Loop through the node files, fixing them up. (dolist (f (directory-files dir nil "\\.html\\'")) @@ -308,17 +347,31 @@ the @import directive." (defun manual-txt (texi-file dest) "Run Makeinfo on TEXI-FILE, emitting plaintext output to DEST." (call-process "makeinfo" nil nil nil + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) "--plaintext" "--no-split" texi-file "-o" dest) (shell-command (concat "gzip -c " dest " > " (concat dest ".gz")))) (defun manual-pdf (texi-file dest) "Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST." - (call-process "texi2pdf" nil nil nil texi-file "-o" dest)) + (call-process "texi2pdf" nil nil nil + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) + texi-file "-o" dest)) (defun manual-dvi (texi-file dest ps-dest) "Run texi2dvi on TEXI-FILE, emitting dvi output to DEST. Also generate PostScript output in PS-DEST." - (call-process "texi2dvi" nil nil nil texi-file "-o" dest) + (call-process "texi2dvi" nil nil nil + "-I" (expand-file-name "../emacs" + (file-name-directory texi-file)) + "-I" (expand-file-name "../misc" + (file-name-directory texi-file)) + texi-file "-o" dest) (call-process "dvips" nil nil nil dest "-o" ps-dest) (call-process "gzip" nil nil nil dest) (call-process "gzip" nil nil nil ps-dest)) diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c index 2ad5acadcb0..d8fc97cc721 100644 --- a/admin/alloc-colors.c +++ b/admin/alloc-colors.c @@ -1,6 +1,6 @@ /* Allocate X colors. Used for testing with dense colormaps. -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/admin/build-configs b/admin/build-configs index 59a3a1bbbca..8b738befb18 100755 --- a/admin/build-configs +++ b/admin/build-configs @@ -1,7 +1,7 @@ #! /usr/bin/perl # Build Emacs in several different configurations. -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/admin/bzrmerge.el b/admin/bzrmerge.el index 8d64dd9edbf..42d39d3071a 100644 --- a/admin/bzrmerge.el +++ b/admin/bzrmerge.el @@ -1,6 +1,6 @@ ;;; bzrmerge.el --- help merge one Emacs bzr branch to another -;; Copyright (C) 2010-2012 Free Software Foundation, Inc. +;; Copyright (C) 2010-2013 Free Software Foundation, Inc. ;; Author: Stefan Monnier ;; Keywords: maint @@ -50,7 +50,7 @@ The list returned is sorted by oldest-first." (call-process "bzr" nil t nil "status" "-v") (goto-char (point-min)) (when (re-search-forward "^conflicts:\n" nil t) - (error "You still have unresolved conflicts")) + (user-error "You still have unresolved conflicts")) (let ((merges ()) found) (if (not (re-search-forward "^pending merges:\n" nil t)) @@ -62,7 +62,7 @@ The list returned is sorted by oldest-first." (setq found (not (equal "unknown" (match-string 1))))))) found) - (error "You still have uncommitted changes")) + (user-error "You still have uncommitted changes")) ;; This is really stupid, but it seems there's no easy way to figure ;; out which revisions have been merged already. The only info I can ;; find is the "pending merges" from "bzr status -v", which is not @@ -171,7 +171,7 @@ Type `y' to skip this revision, (enable-local-eval nil)) (find-file-noselect file)) (if (buffer-modified-p) - (error "Unsaved changes in %s" (current-buffer))) + (user-error "Unsaved changes in %s" (current-buffer))) (save-excursion (cond ((derived-mode-p 'change-log-mode) @@ -320,10 +320,10 @@ Does not make other difference." ;; bzrmerge-add-metadata does not work when there ;; are conflicts. (display-warning 'bzrmerge "Resolve conflicts manually. -BEWARE! Important metadata is kept in this Emacs session! +BEWARE! Important metadata is kept in this Emacs session! Do not commit without re-running `M-x bzrmerge' first!" :warning bzrmerge-warning-buffer)) - (error "Resolve conflicts manually"))))) + (user-error "Resolve conflicts manually"))))) (cons merge skip))))) (defun bzrmerge (from) diff --git a/admin/charsets/mapfiles/README b/admin/charsets/mapfiles/README index b43611db11d..0a742854811 100644 --- a/admin/charsets/mapfiles/README +++ b/admin/charsets/mapfiles/README @@ -1,4 +1,4 @@ -Copyright (C) 2009-2012 Free Software Foundation, Inc. +Copyright (C) 2009-2013 Free Software Foundation, Inc. Copyright (C) 2009, 2010, 2011 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H13PRO009 diff --git a/admin/check-doc-strings b/admin/check-doc-strings index ef4b203cd79..c69ff47ebfb 100755 --- a/admin/check-doc-strings +++ b/admin/check-doc-strings @@ -17,7 +17,7 @@ formal parameters, docstrings, and lispref texi. This program is in the public domain.\n"; die $usage if @ARGV; -die $usage unless -r "src/alloc.c" && -d "CVS" && -d "lisp"; +die $usage unless -r "src/alloc.c" && -d ".bzr" && -d "lisp"; my %texi_funtype; my %texi_arglist; @@ -197,10 +197,8 @@ sub Check_function { Show_details $show_details, $function, "@parms", $docstring; } -my $lisprefdir; -if (-d "man/lispref") { $lisprefdir = "man/lispref"; } -elsif (-d "lispref") { $lisprefdir = "lispref"; } -else { die "Can't find lispref texi directory.\n"; } +my $lisprefdir = "doc/lispref"; +die "Can't find lispref texi directory.\n" unless -d $lisprefdir; open (FIND, "find $lisprefdir -name '*.texi' -print |") or die; while (my $file = ) { diff --git a/admin/coccinelle/xsave.cocci b/admin/coccinelle/xsave.cocci new file mode 100644 index 00000000000..5172bb55b33 --- /dev/null +++ b/admin/coccinelle/xsave.cocci @@ -0,0 +1,11 @@ +// Adjust users of XSAVE_POINTER and XSAVE_INTEGER. +@@ +expression E; +@@ +( +- XSAVE_POINTER (E) ++ XSAVE_POINTER (E, 0) +| +- XSAVE_INTEGER (E) ++ XSAVE_INTEGER (E, 1) +) diff --git a/admin/cus-test.el b/admin/cus-test.el index 11d781ed01e..c93a14297f8 100644 --- a/admin/cus-test.el +++ b/admin/cus-test.el @@ -1,6 +1,6 @@ ;;; cus-test.el --- tests for custom types and load problems -;; Copyright (C) 1998, 2000, 2002-2012 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2002-2013 Free Software Foundation, Inc. ;; Author: Markus Rost ;; Maintainer: Markus Rost diff --git a/admin/diff-tar-files b/admin/diff-tar-files index 1dbf9a12399..af892d6ce41 100755 --- a/admin/diff-tar-files +++ b/admin/diff-tar-files @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/admin/emacs-pretesters b/admin/emacs-pretesters deleted file mode 100644 index 3b1270b477c..00000000000 --- a/admin/emacs-pretesters +++ /dev/null @@ -1,217 +0,0 @@ -Here are the guidelines for being an Emacs pretester. -If you would like to do this, say so, and I'll add you to -the pretest list. - - - Information for Emacs Pretesters - -The purpose of Emacs pretesting is to verify that the new Emacs -distribution, about to be released, works properly on your system *with -no change whatever*, when installed following the precise -recommendations that come with the Emacs distribution. - -Here are some guidelines on how to do pretesting so as to make it -helpful. All of them follow from common sense together with the -nature of the purpose and the situation. - -Please save this file, and reread it when a new series of pretests -starts. - -* Get the pretest from gnu/emacs/pretest/emacs-MM.0.NN.tar.gz -on alpha.gnu.org. - -* After a few days of testing, if there are no problems, please report -that Emacs works for you and what configuration you are testing it on. - -* If you want to communicate with other pretesters, send mail to -emacs-pretesters@gnu.org. I don't use that mailing list when I send -to you because I've found that mailing lists tend to amplify random -noise into long discussions or even arguments, and that can waste a -lot of time. But when you have a reason to ask other pretesters for -help, you can do it that way. - -* It is absolutely vital that you report even the smallest change or -departure from the standard sources and procedure. - -Otherwise, you are not testing the same program that we asked you to -test. Testing a different program is usually of no use whatever. It -can even cause trouble, if you fail to tell us that you tested some -other program instead of what we are about to release. We might think -that Emacs works, when in fact it has not even been tried, and might -have a glaring fault. - -* Don't use a site-load.el file or a site-init.el file when you pretest. -Using either of those files means you are not testing Emacs as a typical -site would use it. - -Actually, it does no harm to test Emacs with such customizations *as -well as* testing it "out of the box". Anything you do that could find -a bug is useful, as long as you make sure we know exactly what you -did. The important point is that testing with local changes is no -substitute for testing Emacs exactly as it is distributed. - -* Even changing the compilation options counts as a change in the -program. The Emacs sources specify which compilation options to use. -Some of them are specified in makefiles, and some in machine-specific -configuration files. They also give you ways to override this--but if -you do, then you are not testing what ordinary users will do. -Therefore, when pretesting, it is vital to test with the default -compilation options. - -(Testing with a different set of options can be useful *in addition*, -but not *instead of* the default options.) - -* The machine and system configuration files of Emacs are parts of -Emacs. So when you test Emacs, you need to do it with the -configuration files that come with Emacs. - -If Emacs does not come with configuration files for a certain machine, -and you test it with configuration files that don't come with Emacs, -this is effectively changing Emacs. Because the crucial fact about -the planned release is that, without changes, it doesn't work on that -machine. - -To make Emacs work on that machine, we would need to install new -configuration files. That is not out of the question, since it is -safe--it certainly won't break any other machines that already work. -But you will have to rush in the legal papers to give the FSF -permission to use such a large piece of text. - -* Look in the etc/MACHINES file. - -The etc/MACHINES file says which configuration files to use for your -machine, so use the ones that are recommended. If you guess, you might -guess wrong and encounter spurious difficulties. What's more, if you -don't follow etc/MACHINES then you aren't helping to test that its -recommendations are valid. - -The etc/MACHINES file may describe other things that you need to do -to make Emacs work on your machine. If so, you should follow these -recommendations also, for the same reason. - -* Send your problem reports to bug-gnu-emacs@gnu.org. - -Sometimes we won't know what to do about a system-dependent issue, and -we may need people to say what happens if you try a certain thing on a -certain system. When this happens, we'll send out a query. - -* Don't delay sending information. - -When you test on a system and encounter no problems, please report it -right away. That way, we will know that someone has tested Emacs on -that kind of system. - -Please don't wait for several days "to see if it really works before -you say anything." Tell us right away that Emacs seems basically to -work; then, if you notice a problem a few days later, tell us -immediately about that when you see it. - -It is okay if you double check things before reporting a problem, such -as to see if you can easily fix it. But don't wait very long. A good -rule to use in pretesting is always to report every problem on the -same day you encounter it, even if that means you can't find a -solution before you report the problem. - -I'd much rather hear about a problem today and a solution tomorrow -than get both of them tomorrow at the same time. - -* Make each bug report self-contained. - -If you refer back to another message, whether from you or from someone -else, then it will be necessary for anyone who wants to investigate -the bug to find the other message. This may be difficult, it is -probably time-consuming. - -To help save our time, simply copy the relevant parts of any previous -messages into your own bug report. - -In particular, if we ask you for more information because a bug report -was incomplete, it is best to send me the *entire* collection of -relevant information, all together. If you send just the additional -information, that makes extra work for us. There is even a risk that -we won't remember what question you are sending the answer to. - -* When you encounter a bug that manifests itself as a Lisp error, -try setting debug-on-error to t and making the bug happen again. -Then you will get a Lisp backtrace. Including that in your bug report -is very useful. - -* For advice on debugging, see etc/DEBUG. - -* Debugging optimized code is possible, if you compile with GCC, but -in some cases the optimized code can be confusing. If you are not -accustomed to that, recompile Emacs without -O. One way to do this is - - make clean - make CFLAGS=-g - -* Configure tries to figure out what kind of system you have by -compiling and linking programs which calls various functions and looks -at whether that succeeds. The file config.log contains any messages -produced by compilers while running configure, to aid debugging if -configure makes a mistake. But note that config.cache reads: - -# Giving --cache-file=/dev/null disables caching, for debugging configure. - -or more simply, - -rm config.cache -./configure - -* Don't try changing Emacs *in any way* during pretest unless it fails -to work unchanged. - -* Always be precise when talking about changes you have made. Show -things rather than describing them. Use exact filenames (relative to -the main directory of the distribution), not partial ones. For -example, say "I changed Makefile" rather than "I changed the -makefile". Instead of saying "I defined the MUMBLE macro", send a -diff. - -* Always use `diff -c' to make diffs. If you don't include context, it -may be hard for us to figure out where you propose to make the -changes. So we might ignore your patch. - -* When you write a fix, keep in mind that we can't install a change -that *might* break other systems without the risk that it will fail to -work and therefore require an additional cycle of pretesting. - -People often suggest fixing a problem by changing config.h or -src/Makefile to do something special that a particular system needs. -Sometimes it is totally obvious that such changes would break Emacs -for almost all users. We can't possibly make a change like that. All -we can do is ask you to find a fix that is safe to install. - -Sometimes people send fixes that *might* be an improvement in -general--but it is hard to be sure of this. I can install such -changes some of the time, but not during pretest, when I am trying to -get a new version to work reliably as quickly as possible. - -The safest changes for us to install are changes to the s- and m- -files. At least those can't break other systems. - -Another safe kind of change is one that uses a conditional to make -sure it will apply only to a particular kind of system. Ordinarily, -that is a bad way to solve a problem, and I would want to find a -cleaner alternative. But the virtue of safety can make it superior at -pretest time. - -* Don't suggest changes during pretest to add features or make -something cleaner. Every change risks introducing a bug, so I won't -install a change during pretest unless it is *necessary*. - -* If you would like to suggest changes for purposes other than fixing -user-visible bugs, don't wait till pretest time. Instead, send them -after we have made a release that proves to be stable. That is the -easiest time to consider such suggestions. If you send them at -pretest time, we will have to defer them till later, and that might -mean we forget all about them. - -* In some cases, if you don't follow these guidelines, your -information might still be useful, but we would have to do more work -to make use of it. That might cause it to fall by the wayside. - -Local Variables: -mode: text -End: - diff --git a/admin/grammars/c.by b/admin/grammars/c.by index dfced9813d1..5d2f407e8e3 100644 --- a/admin/grammars/c.by +++ b/admin/grammars/c.by @@ -1,5 +1,5 @@ ;;; c.by -- LL grammar for C/C++ language specification -;; Copyright (C) 1999-2012 Free Software Foundation, Inc. +;; Copyright (C) 1999-2013 Free Software Foundation, Inc. ;; ;; Author: Eric M. Ludlam ;; David Ponce diff --git a/admin/grammars/grammar.wy b/admin/grammars/grammar.wy index f89fe6220ff..c5e5413e64c 100644 --- a/admin/grammars/grammar.wy +++ b/admin/grammars/grammar.wy @@ -1,6 +1,6 @@ ;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars ;; -;; Copyright (C) 2002-2012 Free Software Foundation, Inc. +;; Copyright (C) 2002-2013 Free Software Foundation, Inc. ;; ;; Author: David Ponce ;; Maintainer: David Ponce diff --git a/admin/grammars/java-tags.wy b/admin/grammars/java-tags.wy index 708715533ff..71607f452a0 100644 --- a/admin/grammars/java-tags.wy +++ b/admin/grammars/java-tags.wy @@ -1,6 +1,6 @@ ;;; java-tags.wy -- Semantic LALR grammar for Java -;; Copyright (C) 2002-2012 Free Software Foundation, Inc. +;; Copyright (C) 2002-2013 Free Software Foundation, Inc. ;; ;; Author: David Ponce ;; Maintainer: David Ponce @@ -154,7 +154,7 @@ %keyword CHAR "char" %put CHAR summary -"Integral primitive type ('\u0000' to '\uffff') (0 to 65535)" +"Integral primitive type (0 to 65535)" %keyword CLASS "class" %put CLASS summary @@ -312,7 +312,7 @@ %keyword WHILE "while" %put WHILE summary "while () | do while ();" - + ;; -------------------------- ;; Official javadoc line tags ;; -------------------------- @@ -340,27 +340,27 @@ %keyword _AUTHOR "@author" %put _AUTHOR javadoc (seq 1 usage (type)) %keyword _VERSION "@version" -%put _VERSION javadoc (seq 2 usage (type)) +%put _VERSION javadoc (seq 2 usage (type)) %keyword _PARAM "@param" -%put _PARAM javadoc (seq 3 usage (function) with-name t) +%put _PARAM javadoc (seq 3 usage (function) with-name t) %keyword _RETURN "@return" -%put _RETURN javadoc (seq 4 usage (function)) +%put _RETURN javadoc (seq 4 usage (function)) %keyword _EXCEPTION "@exception" -%put _EXCEPTION javadoc (seq 5 usage (function) with-name t) +%put _EXCEPTION javadoc (seq 5 usage (function) with-name t) %keyword _THROWS "@throws" -%put _THROWS javadoc (seq 6 usage (function) with-name t) +%put _THROWS javadoc (seq 6 usage (function) with-name t) %keyword _SEE "@see" -%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t) +%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t) %keyword _SINCE "@since" -%put _SINCE javadoc (seq 8 usage (type function variable) opt t) +%put _SINCE javadoc (seq 8 usage (type function variable) opt t) %keyword _SERIAL "@serial" -%put _SERIAL javadoc (seq 9 usage (variable) opt t) +%put _SERIAL javadoc (seq 9 usage (variable) opt t) %keyword _SERIALDATA "@serialData" -%put _SERIALDATA javadoc (seq 10 usage (function) opt t) +%put _SERIALDATA javadoc (seq 10 usage (function) opt t) %keyword _SERIALFIELD "@serialField" -%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t) +%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t) %keyword _DEPRECATED "@deprecated" -%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t) +%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t) %% @@ -387,7 +387,7 @@ package_declaration ; ;;; Include file token -;; ("FILE" include SYSTEM "DOCSTRING") +;; ("FILE" include SYSTEM "DOCSTRING") import_declaration : IMPORT qualified_name SEMICOLON (INCLUDE-TAG $2 nil) @@ -476,7 +476,7 @@ static_initializer ; ;;; Function token -;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") +;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") constructor_declaration : modifiers_opt constructor_declarator throwsc_opt constructor_body (FUNCTION-TAG (car $2) nil (cdr $2) @@ -491,11 +491,11 @@ constructor_declarator ; constructor_body - : block + : block ; ;;; Function token -;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") +;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") method_declaration : modifiers_opt VOID method_declarator throwsc_opt method_body (FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4) diff --git a/admin/grammars/js.wy b/admin/grammars/js.wy index 7b55f5c3834..3b602296552 100644 --- a/admin/grammars/js.wy +++ b/admin/grammars/js.wy @@ -1,6 +1,6 @@ ;;; javascript-jv.wy -- LALR grammar for Javascript -;; Copyright (C) 2005-2012 Free Software Foundation, Inc. +;; Copyright (C) 2005-2013 Free Software Foundation, Inc. ;; Copyright (C) 1998-2011 Ecma International. ;; Author: Joakim Verona diff --git a/admin/grammars/make.by b/admin/grammars/make.by index 6cff4716f82..dcb3bb2f7d7 100644 --- a/admin/grammars/make.by +++ b/admin/grammars/make.by @@ -1,6 +1,6 @@ ;;; make.by -- BY notation for Makefiles. -;; Copyright (C) 1999-2012 Free Software Foundation, Inc. +;; Copyright (C) 1999-2013 Free Software Foundation, Inc. ;; ;; Author: Eric M. Ludlam ;; David Ponce diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy index f17f41c9b1b..02fb7390b01 100644 --- a/admin/grammars/python.wy +++ b/admin/grammars/python.wy @@ -1,6 +1,6 @@ ;;; python.wy -- LALR grammar for Python -;; Copyright (C) 2002-2012 Free Software Foundation, Inc. +;; Copyright (C) 2002-2013 Free Software Foundation, Inc. ;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, ;; 2009, 2010 Python Software Foundation; All Rights Reserved diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by index 98e75901a71..a433d776df5 100644 --- a/admin/grammars/scheme.by +++ b/admin/grammars/scheme.by @@ -1,6 +1,6 @@ ;;; scheme.by -- Scheme BNF language specification -;; Copyright (C) 2001-2012 Free Software Foundation, Inc. +;; Copyright (C) 2001-2013 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/admin/grammars/srecode-template.wy b/admin/grammars/srecode-template.wy index f84a414b46e..de9bf351ac6 100644 --- a/admin/grammars/srecode-template.wy +++ b/admin/grammars/srecode-template.wy @@ -1,6 +1,6 @@ ;;; srecode-template.wy --- Semantic Recoder Template parser -;; Copyright (C) 2005-2012 Free Software Foundation, Inc. +;; Copyright (C) 2005-2013 Free Software Foundation, Inc. ;; Author: Eric Ludlam ;; Keywords: syntax diff --git a/admin/make-announcement b/admin/make-announcement deleted file mode 100755 index 5b45d09e89b..00000000000 --- a/admin/make-announcement +++ /dev/null @@ -1,87 +0,0 @@ -#! /bin/bash - -## Copyright (C) 2002-2012 Free Software Foundation, Inc. - -## Author: Francesco Potorti` - -## This file is part of GNU Emacs. - -## GNU Emacs 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. - -## GNU Emacs 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 GNU Emacs. If not, see . - - -### Code: - -if [ $# -ne 2 ]; then - echo "usage: $0 " >&2 - exit 1 -fi - -if [ ! -f INSTALL -o ! -f configure -o ! -d lib-src ]; then - echo "this script should be run in the emacs root directory" >&2 - exit 2 -fi - -OLD=$1 -NEW=$2 -outfile=emacs-$NEW.announce -oldtag=EMACS_PRETEST_$(echo $OLD|tr . _) -newtag=EMACS_PRETEST_$(echo $NEW|tr . _) - -if [ -f $outfile ]; then - echo "$outfile exists" - echo -n "interrupt to abort, ENTER to overwrite "; read answer -fi - -echo -n "tag name for OLD emacs version $OLD [$oldtag]: "; read answer -if [ "$answer" ]; then oldtag=$answer; fi - -echo -n "tag name for NEW emacs version $NEW [$newtag]: "; read answer -if [ "$answer" ]; then newtag=$answer; fi - -exec > $outfile - -cat < - -Please report results from compiling and running the pretest to -. Your feedback is necessary for us -to know on which platforms the pretest has been tried. - -If you have the tars from the previous pretest, and you have the -\`xdelta' utility, you can instead download the much smaller - - - -You can use a command like - - $ xdelta patch XDELTA PREVIOUS-TAR CURRENT-TAR - -to generate the new tar from the old one, where XDELTA is the xdelta -file you downloaded, PREVIOUS-TAR is the tar file from the previous -pretest, and CURRENT-TAR is the name of the tar file you downloaded. - -Information about xdelta can be found on the GNU ftp site, in -/non-gnu/xdelta.README. - -Changes since $OLD - -EOF - -make-changelog-diff $oldtag $newtag - -echo " announcement created in $outfile" >&2 - diff --git a/admin/make-changelog-diff b/admin/make-changelog-diff deleted file mode 100755 index 88461131a3f..00000000000 --- a/admin/make-changelog-diff +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/bash - -## Author: Francesco Potorti` - -if [ $# -ne 2 ]; then - echo "usage: $0 TAG1 TAG2" >&2 - exit 1 -fi - -if [ ! -f INSTALL -o ! -f configure -o ! -d lib-src ]; then - echo "this script should be run in the emacs root directory" >&2 - exit 2 -fi - -cvs -q diff -b -r $1 -r $2 $(find -name ChangeLog|sort) | - sed -n -e 's/^=\+/======/p' -e 's/^> //p' -e 's/^diff.*//p' \ - -e 's/^RCS file: .cvsroot.emacs.emacs.\(.*\),v/\1/p' | - sed -n -e "/^======$/ { - N - N - h - d - } - H - s/.*// - x - s/^\n// - p" - diff --git a/admin/make-emacs b/admin/make-emacs index 688f5c196bf..58295c9607a 100755 --- a/admin/make-emacs +++ b/admin/make-emacs @@ -2,7 +2,7 @@ # Build Emacs with various options for profiling, debugging, # with and without warnings enabled etc. -# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index ea9c4a3c2d1..005c6694228 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -1,42 +1,75 @@ -Instructions to create pretest or release tarballs. --- originally written by Gerd Moellmann, amended by Francesco Potort +Instructions to create pretest or release tarballs. -*- coding: utf-8 -*- +-- originally written by Gerd Moellmann, amended by Francesco Potortì with the initial help of Eli Zaretskii -For each step, check for possible errors. + +Steps to take before starting on the first pretest in any release sequence: + +1. Decide on versions of automake and autoconf, and ensure you will + have them available for the duration of the release process. + +2. Consider increasing the value of the variable + `customize-changed-options-previous-release' in cus-edit.el to + refer to a newer version of Emacs. (This is probably needed only + when preparing the first pretest for a major Emacs release.) + Commit cus-edit.el if changed. + + +General steps (for each step, check for possible errors): 1. `bzr update' (for a bound branch), or `bzr pull'. - bzr status # check for locally modified files + bzr status # check for locally modified files 2. Bootstrap to make 100% sure all elc files are up-to-date, and to make sure that the later tagged version will bootstrap, should it be necessary to check it out. -3. Regenerate Emacs' etc/AUTHORS file (M-x load-file RET - lisp/emacs-lisp/authors.el RET, then M-x authors RET, then save - the *Authors* buffer). This may require fixing syntactically - incorrect ChangeLog entries beforehand. +3. Regenerate the etc/AUTHORS file: + M-: (require 'authors) RET + M-x authors RET + + There is almost guaranteed to be an "*Authors Errors*" buffer with + problems caused by certain bad ChangeLog entries. You can ignore + the very old ones (eg lisp/erc has a lot). If there are errors + related to new entries (especially entries that are new since the + last pretest), see if you can fix them. If there was a ChangeLog + typo, fix it. If a file was deleted or renamed, consider adding + an appropriate entry to authors-ignored-files, authors-valid-file-names, + or authors-renamed-files-alist. + + If necessary, repeat M-x authors after making those changes. + Save the "*Authors*" buffer as etc/AUTHORS. + Check the diff looks reasonable. Maybe add entries to + authors-ambiguous-files or authors-aliases, and repeat. + Commit any fixes to ChangeLogs or authors.el. 4. Set the version number (M-x load-file RET admin/admin.el RET, then - M-x set-version RET). For a release, add released change log + M-x set-version RET). For a release, add released ChangeLog entries (M-x add-release-logs RET). For a pretest, start at version .90. After .99, use .990 (so that it sorts). - If needed, increment the value of the variable - `customize-changed-options-previous-release' in cus-edit.el to - refer to a newer release of Emacs. (This is probably needed only - when preparing a major Emacs release, or branching for it.) + The final pretest should be a release candidate. Set the version + 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. 5. autoreconf -i -I m4 --force make bootstrap -6. Commit etc/AUTHORS, all the files changed by M-x set-version, and - lisp/cus-edit.el (if modified). - Copy lisp/loaddefs.el to lisp/ldefs-boot.el and commit lisp/ldefs-boot.el. +6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. + + Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed + by M-x set-version. For a release, also commit the ChangeLog files in all directories. -7. make-dist --snapshot. Check the contents of the new tar with +7. ./make-dist --snapshot --no-compress + + Check the contents of the new tar with admin/diff-tar-files against an older tar file. Some old pretest tarballs may be found at ; old release tarballs are at . @@ -46,36 +79,54 @@ For each step, check for possible errors. something like `find . | sort' in a clean bzr tree, and compare the results against the new tar contents. -8. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta - -9. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW - ./configure && make && make -n install +8. tar -xf emacs-NEW.tar; cd emacs-NEW + ./configure --prefix=/tmp/emacs && make && make install Use `script' or M-x compile to save the compilation log in compile-NEW.log and compare it against an old one. The easiest way to do that is to visit the old log in Emacs, change the version number of the old Emacs to __, do the same with the new log and do - M-x ediff. Especially check that Info files aren't built. + M-x ediff. Especially check that Info files aren't built, and that + no autotools (autoconf etc) run. -10. cd EMACS_ROOT_DIR; bzr tag TAG - TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a - release. +9. cd EMACS_ROOT_DIR && bzr tag TAG + TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. Shortly before the release, cut the version branch also, and open a Savannah support request asking for commits to the new branch to be sent to the emacs-diffs mailing list (by default, the list normally only gets commits to the trunk). -11. Now you should upload the files to the GNU ftp server. In order to +10. Decide what compression schemes to offer. + For a release, at least gz and xz: + gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz + xz -c emacs-NEW.tar > emacs-NEW.tar.xz + + Now you should upload the files to the GNU ftp server. In order to do that, you must be registered as an Emacs maintainer and have your - GPG key acknowledged by the ftp people. Mail - for instructions. + GPG key acknowledged by the ftp people. For instructions, see + http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html + The simplest method is to use the gnulib + script "build-aux/gnupload" to upload each FILE, like this: - You can use the gnupload script to upload each FILE, like this: - gnupload --to alpha.gnu.org:emacs/pretest FILE (for a pretest) - gnupload --to ftp.gnu.org:emacs FILE (for a release) + For a pretest: + gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \ + FILE.gz FILE.xz ... + + For a release: + gnupload [--user your@gpg.key.email] --to ftp.gnu.org:emacs \ + FILE.gz FILE.xz ... + + You only need the --user part if you have multiple GPG keys and do + not want to use the default. + Obviously, if you do not have a fast uplink, be prepared for the + upload to take a while. + + + If you prefer to do it yourself rather than use gnupload: + + For each FILE, create a detached GPG binary signature and a + clearsigned directive file like this: - Instead of using gnupload, for each FILE, create a detached GPG - binary signature and a clearsigned directive file like this: gpg -b FILE echo directory: emacs/pretest > FILE.directive (for a pretest) echo directory: emacs > FILE.directive (for a release) @@ -86,16 +137,17 @@ For each step, check for possible errors. For a pretest, place the files in /incoming/alpha instead, so that they appear on ftp://alpha.gnu.org/. - For a release, upload a bz2 tarfile as well; this can save a lot - of bandwidth. - -12. After five minutes, verify that the files are visible at - ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at +11. After five minutes, verify that the files are visible at + ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or ftp://ftp.gnu.org/gnu/emacs/ for a release. -13. For a pretest, announce it on emacs-devel and BCC the pretesters. - For a release, announce it on info-gnu@gnu.org, - info-gnu-emacs@gnu.org, and emacs-devel. + Download them and check the signatures. Check they build. -14. For a release, update the Emacs homepage in the web repository. +12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org. + For a release, also announce it on info-gnu@gnu.org. (Probably + bcc the info- addresses to make it less likely that people will + followup on those lists.) + +13. For a release, update the Emacs homepage in the web repository. Also add the new NEWS file as NEWS.xx.y. + Maybe regenerate the html manuals, update the FAQ, etc, etc. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 792818b2efe..100749191f0 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -4,7 +4,7 @@ # # admin/merge-gnulib -# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -29,20 +29,22 @@ GNULIB_MODULES=' alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat - fcntl-h filemode getloadavg getopt-gnu gettime gettimeofday + fcntl-h fdatasync fdopendir filemode fstatat fsync + getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat - manywarnings mktime pselect pthread_sigmask readlink - socklen stat-time stdalign stdarg stdbool stdio + manywarnings memrchr mktime + pselect pthread_sigmask putenv readlink readlinkat + sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat - sys_time time timer-time timespec-add timespec-sub utimens + sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings ' GNULIB_TOOL_FLAGS=' - --avoid=at-internal + --avoid=dup --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow - --avoid=openat-die --avoid=openat-h + --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib diff --git a/admin/notes/bzr b/admin/notes/bzr index 50eaf3710ee..f35ff95f9d6 100644 --- a/admin/notes/bzr +++ b/admin/notes/bzr @@ -182,6 +182,71 @@ where revision N+1 is the one where file was removed. You could also try `bzr add --file-ids-from', if you have a copy of another branch where file still exists. +* Undoing a commit (uncommitting) + +It is possible to undo/remove a bzr commit (ie, to uncommit). +Only do this if you really, really, need to. For example, if you +somehow made a commit that triggers a bug in bzr itself. +Don't do it because you made a typo in a commit or the log. + +If you do need to do this, do it as soon as possible, because the +longer you leave it, the more work is involved. + +0. First, tell emacs-devel that you are going to do this, and suggest +people not commit anything to the affected branch for the duration. + +In the following, replace USER with your Savannah username, and +BRANCH with the name of the branch. +Let's assume that revno 100 is the bad commit, and that there have +been two more commits after that (because nothing is ever easy). + +1. Ensure your copy of the branch is up-to-date (for a bound +branch, bzr up; for an unbound branch, bzr pull) and has no local +changes (bzr st). + +2. Make a record of the commits you are going to undo: +bzr diff -c 102 > /tmp/102.diff +etc + +Also record the commit message, author, and any --fixes information. + +3. Most Emacs branches are set up to prevent just this kind of thing. +So we need to disable that protection: + +bzr config append_revisions_only=False \ + -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/ + +4. Undo the commits: +bzr uncommit -r -4 + +This will show the commits it is going to undo, and prompt you to confirm. + +5. If using an unbound branch: +bzr push --overwrite + +6. Now, replay the commits you just undid (obviously, fix whatever it +was in the bad commit that caused the problem): + +patch -p0 < /tmp/100.diff +bzr commit --author ... --fixes ... -F /tmp/100.log +etc + +7. If using an unbound branch: +bzr push + +8. Finally, re-enable the branch protection: +bzr config append_revisions_only=True \ + -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/ + +9. Tell emacs-devel that it is ok to use the branch again. +Anyone with local changes should back them up before doing anything. + +For a bound branch, bzr up will convert any of the undone commits to a +pending merge. Just bzr revert these away. + +For an unbound branch, bzr pull will complain about diverged branches +and refuse to do anything. Use bzr pull --overwrite. + * Loggerhead Loggerhead is the bzr tool for viewing a repository over http (similar @@ -202,3 +267,52 @@ For example, on RHEL6 I needed: yum --enablerepo=epel install python-simpletal Then point your web-browser to http://127.0.0.1:8080/ . + +* Bisecting + +This is a semi-automated way to find the revision that introduced a bug. + +First, get the bzr bisect plugin if you do not have it already: + + cd ~/.bazaar/plugins + bzr branch lp:bzr-bisect bisect + +`bzr help bisect' should work now. + +It's probably simplest to make a new copy of the branch to work in +from this point onwards. + +Identify the last known "good" revision where the relevant issue is +NOT present (e.g. maybe Emacs 24.1). Let's say this is revision 1000. + + bzr bisect start + bzr bisect no -r 1000 + +At this point, bzr will switch to the mid-point of revision 1000 and +the current revision. If you know that the issue was definitely +present in some specific revision (say 2000), you can use: + + bzr bisect yes -r 2000 + +Now bzr switches to revision 1500. + +Now test whether the issue is present. You might need to rebuild +Emacs to do this, or if you know the problem is in a specific Lisp +file, you might be able to get away with just loading that one file in +current Emacs. + +If the issue is present, use + + bzr bisect yes + +If it is not, use + + bzr bisect no + +Repeat until you zero-in on the specific revision. + +When finished, use + + bzr bisect reset + +or simply delete the entire branch if you created it just for this. diff --git a/admin/notes/copyright b/admin/notes/copyright index 173ff83343a..3a404b69678 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright @@ -1,4 +1,4 @@ -Copyright (C) 2007-2012 Free Software Foundation, Inc. +Copyright (C) 2007-2013 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/admin/notes/font-backend b/admin/notes/font-backend index ec2dc11345b..cdf2001580d 100644 --- a/admin/notes/font-backend +++ b/admin/notes/font-backend @@ -1,4 +1,4 @@ -Copyright (C) 2002-2012 Free Software Foundation, Inc. +Copyright (C) 2002-2013 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO index 139aa09e919..2c6d86a4ffd 100644 --- a/admin/notes/lel-TODO +++ b/admin/notes/lel-TODO @@ -1,6 +1,6 @@ Some lisp/emacs-lisp/ Features and Where They Are Documented -Copyright (C) 2007-2012 Free Software Foundation, Inc. +Copyright (C) 2007-2013 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty index 5408b9a3d00..c4edd3abc93 100644 --- a/admin/notes/multi-tty +++ b/admin/notes/multi-tty @@ -1,6 +1,6 @@ -*- coding: utf-8; mode: text; -*- -Copyright (C) 2007-2012 Free Software Foundation, Inc. +Copyright (C) 2007-2013 Free Software Foundation, Inc. See the end of the file for license conditions. From README.multi-tty in the multi-tty branch. diff --git a/admin/notes/unicode b/admin/notes/unicode index dda6ec4cc93..53d568dd628 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode @@ -1,6 +1,6 @@ - -*-mode: text; coding: latin-1;-*- + -*-mode: text; coding: utf-8;-*- -Copyright (C) 2002-2012 Free Software Foundation, Inc. +Copyright (C) 2002-2013 Free Software Foundation, Inc. See the end of the file for license conditions. Problems, fixmes and other unicode-related issues @@ -12,9 +12,9 @@ regard to completeness. * SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has undesirable effects. E.g.: - (multibyte-string-p (let ((s "x")) (aset s 0 ?) s)) => nil - (multibyte-string-p (concat [?])) => nil - (text-char-description ?) => "M-#" + (multibyte-string-p (let ((s "x")) (aset s 0 ?£) s)) => nil + (multibyte-string-p (concat [?£])) => nil + (text-char-description ?£) => "M-#" These examples are all fixed by the change of 2002-10-14, but there still exist questionable SINGLE_BYTE_CHAR_P in the @@ -77,7 +77,7 @@ regard to completeness. spelling and calendar, but that's not a Unicode issue.) * Handle Unicode combining characters usefully, e.g. diacritics, and - handle more scripts specifically ( la Devanagari). There are + handle more scripts specifically (à la Devanagari). There are issues with canonicalization. * We need tabular input methods, e.g. for maths symbols. (Not @@ -98,6 +98,136 @@ regard to completeness. * Old auto-save files, and similar files, such as Gnus drafts, containing non-ASCII characters probably won't be re-read correctly. + +Source file encoding +-------------------- + +Most Emacs source files are encoded in UTF-8 (or in ASCII, which is a +subset), but there are a few exceptions, listed below. Perhaps +someday many of these files will be converted to UTF-8, for +convenience when using tools like 'grep -r', but this might need +nontrivial changes to the build process. + + * chinese-big5 + + These are verbatim copies of files taken from external sources. + They haven't been converted to UTF-8. + + leim/CXTERM-DIC/4Corner.tit + leim/CXTERM-DIC/ARRAY30.tit + leim/CXTERM-DIC/ECDICT.tit + leim/CXTERM-DIC/ETZY.tit + leim/CXTERM-DIC/PY-b5.tit + leim/CXTERM-DIC/Punct-b5.tit + leim/CXTERM-DIC/QJ-b5.tit + leim/CXTERM-DIC/ZOZY.tit + leim/MISC-DIC/CTLau-b5.html + leim/MISC-DIC/cangjie-table.b5 + + * chinese-iso-8bit + + These are verbatim copies of files taken from external sources. + They haven't been converted to UTF-8. + + leim/CXTERM-DIC/CCDOSPY.tit + leim/CXTERM-DIC/Punct.tit + leim/CXTERM-DIC/QJ.tit + leim/CXTERM-DIC/SW.tit + leim/CXTERM-DIC/TONEPY.tit + leim/MISC-DIC/pinyin.map + leim/MISC-DIC/CTLau.html + leim/MISC-DIC/ziranma.cin + + * cp850 + + This file contains non-ASCII characters in unibyte strings. When + editing a keyboard layout it's more convenient to see 'é' than + '\202', and the MS-DOS compiler requires the single byte if a + backslash escape is not being used. + + src/msdos.c + + * iso-2022-cn-ext + + This file is externally generated from leim/MISC-DIC/cangjie-table.b5 + by Big5->CNS converter. It hasn't been converted to UTF-8. + + leim/MISC-DIC/cangjie-table.cns + + * iso-latin-2 + + These files are processed by csplain, a program that requires + Latin-2 input. In 2012 the csplain maintainers started + recommending UTF-8, but these files haven't been converted yet. + + etc/refcards/cs-dired-ref.tex + etc/refcards/cs-refcard.tex + etc/refcards/cs-survival.tex + etc/refcards/sk-dired-ref.tex + etc/refcards/sk-refcard.tex + etc/refcards/sk-survival.tex + + * japanese-iso-8bit + + SKK-JISYO.L is a verbatim copy of a file taken from an external source. + It hasn't been converted to UTF-8. + + leim/SKK-DIC/SKK-JISYO.L + + * japanese-shift-jis + + This is a verbatim copy of a file taken from an external source. + It hasn't been converted to UTF-8. + + admin/charsets/mapfiles/cns2ucsdkw.txt + + * no-conversion + + This file purposely contains arbitrary bytes interspersed within text, + to test whether the Emacs distribution is corrupted. + + lib-src/testfile + + * iso-2022-7bit + + This file switches between CJK charsets, which is not encoded in UTF-8. + + etc/HELLO + + Each of these files contains just one CJK charset, but Emacs + currently has no easy way to specify set-charset-priority on a + per-file basis, so converting any of these files to UTF-8 might + change the file's appearance when viewed by an Emacs that is + operating in some other language environment. + + etc/tutorials/TUTORIAL.ja + etc/tutorials/TUTORIAL.ko + leim/quail/cyril-jis.el + leim/quail/hanja-jis.el + leim/quail/hanja.el + leim/quail/hanja3.el + leim/quail/japanese.el + leim/quail/py-punct.el + leim/quail/pypunct-b5.el + leim/quail/symbol-ksc.el + lisp/international/ja-dic-cnv.el + lisp/international/ja-dic-utl.el + lisp/international/kinsoku.el + lisp/international/kkc.el + lisp/international/titdic-cnv.el + lisp/language/japan-util.el + lisp/language/japanese.el + lisp/term/x-win.el + + These files contain characters that cannot be encoded in UTF-8. + + leim/quail/tibetan.el + leim/quail/ethiopic.el + lisp/international/titdic-cnv.el + lisp/language/tibetan.el + lisp/language/tibet-util.el + lisp/language/ind-util.el + This file is part of GNU Emacs. diff --git a/admin/nt/README-UNDUMP.W32 b/admin/nt/README-UNDUMP.W32 index d3dd88a99ec..8138d0ba0f1 100644 --- a/admin/nt/README-UNDUMP.W32 +++ b/admin/nt/README-UNDUMP.W32 @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. See the end of the file for license conditions. Emacs for Windows diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server index 1b0c9390889..5983a0f9617 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. See the end of the file for license conditions. Precompiled Distributions of @@ -288,4 +288,4 @@ 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 GNU Emacs. If not, see . +along with GNU Emacs. If not, see http://www.gnu.org/licenses/. diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index 4abef102dc4..e74a2a5af49 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs @@ -1,7 +1,7 @@ #!/bin/sh ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly -## Copyright (C) 2001-2012 Free Software Foundation, Inc. +## Copyright (C) 2001-2013 Free Software Foundation, Inc. ## Author: Miles Bader diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index ecbd0490246..49cd9bb6d3a 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -1,6 +1,6 @@ # Makefile -- Makefile to generate character property tables. -# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2012-2013 Free Software Foundation, Inc. # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 # National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/autogen.sh b/autogen.sh index 9cfaa40eee5..e7c28c16d94 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,7 +1,7 @@ #!/bin/sh ### autogen.sh - tool to help build Emacs from a bzr checkout -## Copyright (C) 2011-2012 Free Software Foundation, Inc. +## Copyright (C) 2011-2013 Free Software Foundation, Inc. ## Author: Glenn Morris diff --git a/autogen/Makefile.in b/autogen/Makefile.in index 4599f20df45..03e54906b75 100644 --- a/autogen/Makefile.in +++ b/autogen/Makefile.in @@ -15,7 +15,7 @@ @SET_MAKE@ -# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=at-internal --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=openat-die --avoid=openat-h --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl-h filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=dup --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings memrchr mktime pselect pthread_sigmask putenv readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -65,12 +65,15 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/c-strtod.m4 \ $(top_srcdir)/m4/clock_time.m4 \ - $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/dup2.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/euidaccess.m4 \ - $(top_srcdir)/m4/execinfo.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/dirent_h.m4 \ + $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/euidaccess.m4 $(top_srcdir)/m4/execinfo.m4 \ + $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fdatasync.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/fsync.m4 \ $(top_srcdir)/m4/getgroups.m4 $(top_srcdir)/m4/getloadavg.m4 \ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettime.m4 \ $(top_srcdir)/m4/gettimeofday.m4 \ @@ -80,20 +83,22 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/manywarnings.m4 \ - $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/mktime.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ - $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/pathmax.m4 \ - $(top_srcdir)/m4/pselect.m4 \ - $(top_srcdir)/m4/pthread_sigmask.m4 \ - $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/sha1.m4 \ + $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ + $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pselect.m4 \ + $(top_srcdir)/m4/pthread_sigmask.m4 $(top_srcdir)/m4/putenv.m4 \ + $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ + $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/sha1.m4 \ $(top_srcdir)/m4/sha256.m4 $(top_srcdir)/m4/sha512.m4 \ - $(top_srcdir)/m4/signal_h.m4 $(top_srcdir)/m4/socklen.m4 \ - $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.m4 \ - $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ - $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ - $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ - $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ - $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strftime.m4 \ + $(top_srcdir)/m4/sig2str.m4 $(top_srcdir)/m4/signal_h.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ + $(top_srcdir)/m4/st_dm_mode.m4 $(top_srcdir)/m4/stat-time.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \ + $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtoll.m4 \ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ @@ -119,7 +124,7 @@ am__libgnu_a_SOURCES_DIST = allocator.c c-ctype.h c-ctype.c \ close-stream.c md5.c sha1.c sha256.c sha512.c dtoastr.c \ dtotimespec.c filemode.c gettext.h gettime.c stat-time.c \ strftime.c timespec.c timespec-add.c timespec-sub.c u64.c \ - utimens.c + unistd.c utimens.c openat-die.c save-cwd.c am__objects_1 = am_libgnu_a_OBJECTS = allocator.$(OBJEXT) c-ctype.$(OBJEXT) \ c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \ @@ -128,7 +133,8 @@ am_libgnu_a_OBJECTS = allocator.$(OBJEXT) c-ctype.$(OBJEXT) \ dtoastr.$(OBJEXT) dtotimespec.$(OBJEXT) filemode.$(OBJEXT) \ $(am__objects_1) gettime.$(OBJEXT) stat-time.$(OBJEXT) \ strftime.$(OBJEXT) timespec.$(OBJEXT) timespec-add.$(OBJEXT) \ - timespec-sub.$(OBJEXT) u64.$(OBJEXT) utimens.$(OBJEXT) + timespec-sub.$(OBJEXT) u64.$(OBJEXT) unistd.$(OBJEXT) \ + utimens.$(OBJEXT) openat-die.$(OBJEXT) save-cwd.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles @@ -169,7 +175,6 @@ CFLAGS_SOUND = @CFLAGS_SOUND@ COM_ERRLIB = @COM_ERRLIB@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CRT_DIR = @CRT_DIR@ CRYPTOLIB = @CRYPTOLIB@ CYGPATH_W = @CYGPATH_W@ CYGWIN_OBJ = @CYGWIN_OBJ@ @@ -199,12 +204,15 @@ GCONF_LIBS = @GCONF_LIBS@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ GMALLOC_OBJ = @GMALLOC_OBJ@ +GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@ +GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ @@ -219,7 +227,10 @@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ @@ -270,7 +281,25 @@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ @@ -288,6 +317,7 @@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ +GNULIB_OPENDIR = @GNULIB_OPENDIR@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ @@ -309,7 +339,9 @@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ +GNULIB_READDIR = @GNULIB_READDIR@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ @@ -317,9 +349,12 @@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_REWINDDIR = @GNULIB_REWINDDIR@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ @@ -332,12 +367,28 @@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ @@ -379,12 +430,16 @@ GTK_LIBS = @GTK_LIBS@ GTK_OBJ = @GTK_OBJ@ GZIP_INFO = @GZIP_INFO@ GZIP_PROG = @GZIP_PROG@ +HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ +HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ @@ -398,15 +453,24 @@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ @@ -417,6 +481,9 @@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -441,6 +508,9 @@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAKEINFO = @HAVE_MAKEINFO@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MEMCHR = @HAVE_MEMCHR@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ @@ -453,6 +523,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ @@ -470,11 +541,16 @@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ @@ -486,13 +562,20 @@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ @@ -536,11 +619,11 @@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ KRB4LIB = @KRB4LIB@ KRB5LIB = @KRB5LIB@ LDFLAGS = @LDFLAGS@ -LD_FIRSTFLAG = @LD_FIRSTFLAG@ LD_SWITCH_SYSTEM = @LD_SWITCH_SYSTEM@ LD_SWITCH_SYSTEM_TEMACS = @LD_SWITCH_SYSTEM_TEMACS@ LD_SWITCH_X_SITE = @LD_SWITCH_X_SITE@ LD_SWITCH_X_SITE_RPATH = @LD_SWITCH_X_SITE_RPATH@ +LIBACL_LIBS = @LIBACL_LIBS@ LIBGIF = @LIBGIF@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ @@ -558,6 +641,7 @@ LIBRESOLV = @LIBRESOLV@ LIBS = @LIBS@ LIBSELINUX_LIBS = @LIBSELINUX_LIBS@ LIBSOUND = @LIBSOUND@ +LIBS_GNUSTEP = @LIBS_GNUSTEP@ LIBS_MAIL = @LIBS_MAIL@ LIBS_SYSTEM = @LIBS_SYSTEM@ LIBS_TERMCAP = @LIBS_TERMCAP@ @@ -574,11 +658,10 @@ LIBX_OTHER = @LIBX_OTHER@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_EACCESS = @LIB_EACCESS@ LIB_EXECINFO = @LIB_EXECINFO@ -LIB_GCC = @LIB_GCC@ +LIB_FDATASYNC = @LIB_FDATASYNC@ LIB_MATH = @LIB_MATH@ LIB_PTHREAD = @LIB_PTHREAD@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ -LIB_STANDARD = @LIB_STANDARD@ LIB_TIMER_TIME = @LIB_TIMER_TIME@ LN_S = @LN_S@ LTLIBINTL = @LTLIBINTL@ @@ -588,6 +671,7 @@ M17N_FLT_LIBS = @M17N_FLT_LIBS@ MAKEINFO = @MAKEINFO@ MKDEPDIR = @MKDEPDIR@ MKDIR_P = @MKDIR_P@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ @@ -597,11 +681,13 @@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ @@ -611,6 +697,7 @@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ @@ -648,6 +735,8 @@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ +REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ @@ -655,6 +744,7 @@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ @@ -685,6 +775,8 @@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ @@ -695,6 +787,7 @@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ @@ -723,8 +816,20 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ @@ -751,7 +856,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ -START_FILES = @START_FILES@ STDALIGN_H = @STDALIGN_H@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ @@ -760,12 +864,12 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ -TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@ TERMCAP_OBJ = @TERMCAP_OBJ@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TOOLKIT_LIBW = @TOOLKIT_LIBW@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNEXEC_OBJ = @UNEXEC_OBJ@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ @@ -773,6 +877,8 @@ VERSION = @VERSION@ VMLIMIT_OBJ = @VMLIMIT_OBJ@ W32_LIBS = @W32_LIBS@ W32_OBJ = @W32_OBJ@ +W32_RES = @W32_RES@ +W32_RES_LINK = @W32_RES_LINK@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ @@ -780,6 +886,7 @@ WIDGET_OBJ = @WIDGET_OBJ@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOW_SYSTEM_OBJ = @WINDOW_SYSTEM_OBJ@ +WINDRES = @WINDRES@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ @@ -874,39 +981,43 @@ x_default_search_path = @x_default_search_path@ # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. -BUILT_SOURCES = $(ALLOCA_H) $(EXECINFO_H) fcntl.h $(GETOPT_H) \ +BUILT_SOURCES = $(ALLOCA_H) dirent.h $(EXECINFO_H) fcntl.h $(GETOPT_H) \ inttypes.h signal.h arg-nonnull.h c++defs.h warn-on-use.h \ $(STDALIGN_H) $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) \ - stdio.h stdlib.h sys/select.h sys/stat.h sys/time.h time.h \ - unistd.h -EXTRA_DIST = alloca.in.h allocator.h careadlinkat.h close-stream.h \ - md5.h sha1.h sha256.h sha512.h dosname.h ftoastr.c ftoastr.h \ - dup2.c euidaccess.c execinfo.c execinfo.in.h at-func.c \ - faccessat.c fcntl.in.h filemode.h fpending.c fpending.h \ - getgroups.c getloadavg.c getopt.c getopt.in.h getopt1.c \ - getopt_int.h gettimeofday.c group-member.c ignore-value.h \ - intprops.h inttypes.in.h lstat.c mktime-internal.h mktime.c \ - pathmax.h pselect.c pthread_sigmask.c readlink.c root-uid.h \ - signal.in.h $(top_srcdir)/build-aux/snippet/_Noreturn.h \ + stdio.h stdlib.h string.h sys/select.h sys/stat.h sys/time.h \ + time.h unistd.h +EXTRA_DIST = alloca.in.h allocator.h openat-priv.h openat-proc.c \ + careadlinkat.h close-stream.h md5.h sha1.h sha256.h sha512.h \ + dirent.in.h dosname.h ftoastr.c ftoastr.h dup2.c euidaccess.c \ + execinfo.c execinfo.in.h at-func.c faccessat.c fcntl.in.h \ + fdatasync.c fdopendir.c filemode.h fpending.c fpending.h \ + at-func.c fstatat.c fsync.c getgroups.c getloadavg.c getopt.c \ + getopt.in.h getopt1.c getopt_int.h gettimeofday.c \ + group-member.c ignore-value.h intprops.h inttypes.in.h lstat.c \ + memrchr.c mktime-internal.h mktime.c openat.h pathmax.h \ + pselect.c pthread_sigmask.c putenv.c readlink.c at-func.c \ + readlinkat.c root-uid.h sig2str.c sig2str.h signal.in.h \ + $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h stat.c \ stat-time.h stdalign.in.h stdarg.in.h stdbool.in.h stddef.in.h \ - stdint.in.h stdio.in.h stdlib.in.h strftime.h strtoimax.c \ - strtol.c strtoll.c strtol.c strtoul.c strtoull.c strtoimax.c \ - strtoumax.c symlink.c sys_select.in.h sys_stat.in.h \ - sys_time.in.h time.in.h time_r.c timespec.h u64.h unistd.in.h \ - utimens.h verify.h xalloc-oversized.h + stdint.in.h stdio.in.h stdlib.in.h strftime.h string.in.h \ + strtoimax.c strtol.c strtoll.c strtol.c strtoul.c strtoull.c \ + strtoimax.c strtoumax.c symlink.c sys_select.in.h \ + sys_stat.in.h sys_time.in.h time.in.h time_r.c timespec.h \ + u64.h unistd.in.h unsetenv.c utimens.h verify.h \ + xalloc-oversized.h MOSTLYCLEANDIRS = sys sys -MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t execinfo.h \ - execinfo.h-t fcntl.h fcntl.h-t getopt.h getopt.h-t inttypes.h \ - inttypes.h-t signal.h signal.h-t arg-nonnull.h arg-nonnull.h-t \ - c++defs.h c++defs.h-t warn-on-use.h warn-on-use.h-t stdalign.h \ - stdalign.h-t stdarg.h stdarg.h-t stdbool.h stdbool.h-t \ - stddef.h stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t \ - stdlib.h stdlib.h-t sys/select.h sys/select.h-t sys/stat.h \ - sys/stat.h-t sys/time.h sys/time.h-t time.h time.h-t unistd.h \ - unistd.h-t +MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \ + dirent.h-t execinfo.h execinfo.h-t fcntl.h fcntl.h-t getopt.h \ + getopt.h-t inttypes.h inttypes.h-t signal.h signal.h-t \ + arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \ + warn-on-use.h warn-on-use.h-t stdalign.h stdalign.h-t stdarg.h \ + stdarg.h-t stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h \ + stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t string.h \ + string.h-t sys/select.h sys/select.h-t sys/stat.h sys/stat.h-t \ + sys/time.h sys/time.h-t time.h time.h-t unistd.h unistd.h-t noinst_LIBRARIES = libgnu.a AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src @@ -914,15 +1025,18 @@ libgnu_a_SOURCES = allocator.c c-ctype.h c-ctype.c c-strcase.h \ c-strcasecmp.c c-strncasecmp.c careadlinkat.c close-stream.c \ md5.c sha1.c sha256.c sha512.c dtoastr.c dtotimespec.c \ filemode.c $(am__append_1) gettime.c stat-time.c strftime.c \ - timespec.c timespec-add.c timespec-sub.c u64.c utimens.c + timespec.c timespec-add.c timespec-sub.c u64.c unistd.c \ + utimens.c openat-die.c save-cwd.c libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) -EXTRA_libgnu_a_SOURCES = ftoastr.c dup2.c euidaccess.c execinfo.c \ - at-func.c faccessat.c fpending.c getgroups.c getloadavg.c \ - getopt.c getopt1.c gettimeofday.c group-member.c lstat.c \ - mktime.c pselect.c pthread_sigmask.c readlink.c stat.c \ +EXTRA_libgnu_a_SOURCES = openat-proc.c ftoastr.c dup2.c euidaccess.c \ + execinfo.c at-func.c faccessat.c fdatasync.c fdopendir.c \ + fpending.c at-func.c fstatat.c fsync.c getgroups.c \ + getloadavg.c getopt.c getopt1.c gettimeofday.c group-member.c \ + lstat.c memrchr.c mktime.c pselect.c pthread_sigmask.c \ + putenv.c readlink.c at-func.c readlinkat.c sig2str.c stat.c \ strtoimax.c strtol.c strtoll.c strtol.c strtoul.c strtoull.c \ - strtoimax.c strtoumax.c symlink.c time_r.c + strtoimax.c strtoumax.c symlink.c time_r.c unsetenv.c # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that @@ -993,8 +1107,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/euidaccess.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopendir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpending.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsync.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftoastr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getloadavg.Po@am__quote@ @@ -1005,13 +1123,20 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group-member.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread_sigmask.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha256.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig2str.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@ @@ -1027,6 +1152,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec-sub.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/u64.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utimens.Po@am__quote@ .c.o: @@ -1255,6 +1382,45 @@ uninstall-am: @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ + -e 's/@''GNULIB_OPENDIR''@/$(GNULIB_OPENDIR)/g' \ + -e 's/@''GNULIB_READDIR''@/$(GNULIB_READDIR)/g' \ + -e 's/@''GNULIB_REWINDDIR''@/$(GNULIB_REWINDDIR)/g' \ + -e 's/@''GNULIB_CLOSEDIR''@/$(GNULIB_CLOSEDIR)/g' \ + -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \ + -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \ + -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \ + -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \ + -e 's/@''HAVE_OPENDIR''@/$(HAVE_OPENDIR)/g' \ + -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \ + -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \ + -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \ + -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ + -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ + -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ + -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \ + -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \ + -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \ + -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \ + -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \ + -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/dirent.in.h; \ + } > $@-t && \ + mv $@-t $@ + # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_EXECINFO_H_TRUE@execinfo.h: execinfo.in.h $(top_builddir)/config.status @@ -1649,6 +1815,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ + -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ @@ -1677,6 +1844,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ + -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ @@ -1707,6 +1875,97 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ } > $@-t && \ mv $@-t $@ +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ + -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ + -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ + -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ + -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ + -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ + -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ + -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ + -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ + -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ + -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ + -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ + -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ + -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ + -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ + -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ + -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ + -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ + -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ + -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ + -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ + -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ + -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ + -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ + -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ + -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ + -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ + -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ + -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ + -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ + -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ + -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ + -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ + -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ + -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ + -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ + -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ + -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ + < $(srcdir)/string.in.h | \ + sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ + -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ + -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ + -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ + -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ + -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ + -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ + -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ + -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ + -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ + -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ + -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + < $(srcdir)/string.in.h; \ + } > $@-t && \ + mv $@-t $@ + # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) diff --git a/autogen/aclocal.m4 b/autogen/aclocal.m4 index f423953b3c8..d782216bac5 100644 --- a/autogen/aclocal.m4 +++ b/autogen/aclocal.m4 @@ -989,6 +989,7 @@ m4_include([m4/alloca.m4]) m4_include([m4/c-strtod.m4]) m4_include([m4/clock_time.m4]) m4_include([m4/close-stream.m4]) +m4_include([m4/dirent_h.m4]) m4_include([m4/dup2.m4]) m4_include([m4/environ.m4]) m4_include([m4/euidaccess.m4]) @@ -997,8 +998,12 @@ m4_include([m4/extensions.m4]) m4_include([m4/extern-inline.m4]) m4_include([m4/faccessat.m4]) m4_include([m4/fcntl_h.m4]) +m4_include([m4/fdatasync.m4]) +m4_include([m4/fdopendir.m4]) m4_include([m4/filemode.m4]) m4_include([m4/fpending.m4]) +m4_include([m4/fstatat.m4]) +m4_include([m4/fsync.m4]) m4_include([m4/getgroups.m4]) m4_include([m4/getloadavg.m4]) m4_include([m4/getopt.m4]) @@ -1014,6 +1019,7 @@ m4_include([m4/longlong.m4]) m4_include([m4/lstat.m4]) m4_include([m4/manywarnings.m4]) m4_include([m4/md5.m4]) +m4_include([m4/memrchr.m4]) m4_include([m4/mktime.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nocrash.m4]) @@ -1021,10 +1027,14 @@ m4_include([m4/off_t.m4]) m4_include([m4/pathmax.m4]) m4_include([m4/pselect.m4]) m4_include([m4/pthread_sigmask.m4]) +m4_include([m4/putenv.m4]) m4_include([m4/readlink.m4]) +m4_include([m4/readlinkat.m4]) +m4_include([m4/setenv.m4]) m4_include([m4/sha1.m4]) m4_include([m4/sha256.m4]) m4_include([m4/sha512.m4]) +m4_include([m4/sig2str.m4]) m4_include([m4/signal_h.m4]) m4_include([m4/socklen.m4]) m4_include([m4/ssize_t.m4]) @@ -1039,6 +1049,7 @@ m4_include([m4/stdint.m4]) m4_include([m4/stdio_h.m4]) m4_include([m4/stdlib_h.m4]) m4_include([m4/strftime.m4]) +m4_include([m4/string_h.m4]) m4_include([m4/strtoimax.m4]) m4_include([m4/strtoll.m4]) m4_include([m4/strtoull.m4]) diff --git a/autogen/config.in b/autogen/config.in index c0fb1f34bf4..25f060b9bb9 100644 --- a/autogen/config.in +++ b/autogen/config.in @@ -2,7 +2,7 @@ /* GNU Emacs site configuration template file. -Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012 +Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -56,15 +56,6 @@ along with GNU Emacs. If not, see . */ /* Define on FreeBSD to work around an issue when reading from a PTY. */ #undef BROKEN_PTY_READ_AFTER_EAGAIN -/* Define if the system is compatible with BSD 4.2. */ -#undef BSD4_2 - -/* Define if the system is compatible with BSD 4.2. */ -#undef BSD_SYSTEM - -/* Define if AH_BOTTOM should change BSD_SYSTEM. */ -#undef BSD_SYSTEM_AHB - /* Define if Emacs cannot be dumped on your system. */ #undef CANNOT_DUMP @@ -96,9 +87,6 @@ along with GNU Emacs. If not, see . */ /* Extra bits to be or'd in with any pointers stored in a Lisp_Object. */ #undef DATA_SEG_BITS -/* Address of the start of the data segment. */ -#undef DATA_START - /* Name of the default sound device. */ #undef DEFAULT_SOUND_DEVICE @@ -163,10 +151,6 @@ along with GNU Emacs. If not, see . */ /* Mark a secondary stack, like the register stack on the ia64. */ #undef GC_MARK_SECONDARY_STACK -/* Define to GC_USE_GCPROS_AS_BEFORE if conservative garbage collection is not - known to work. */ -#undef GC_MARK_STACK - /* Define if setjmp is known to save all registers relevant for conservative garbage collection in the jmp_buf. */ #undef GC_SETJMP_WORKS @@ -197,6 +181,10 @@ along with GNU Emacs. If not, see . */ whether the gnulib module faccessat shall be considered present. */ #undef GNULIB_FACCESSAT +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fdopendir shall be considered present. */ +#undef GNULIB_FDOPENDIR + /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF @@ -224,9 +212,6 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */ #undef HAVE_AIX_SMT_EXP -/* Define to 1 if you have the `alarm' function. */ -#undef HAVE_ALARM - /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA @@ -262,6 +247,10 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `copysign' function. */ #undef HAVE_COPYSIGN +/* Define to 1 if data_start is the address of the start of the main data + segment. */ +#undef HAVE_DATA_START + /* Define to 1 if using D-Bus. */ #undef HAVE_DBUS @@ -283,6 +272,18 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `dbus_watch_get_unix_fd' function. */ #undef HAVE_DBUS_WATCH_GET_UNIX_FD +/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't. + */ +#undef HAVE_DECL_ALARM + +/* Define to 1 if you have the declaration of `fdatasync', and to 0 if you + don't. */ +#undef HAVE_DECL_FDATASYNC + +/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you + don't. */ +#undef HAVE_DECL_FDOPENDIR + /* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. */ #undef HAVE_DECL_GETENV @@ -291,6 +292,10 @@ along with GNU Emacs. If not, see . */ don't. */ #undef HAVE_DECL_LOCALTIME_R +/* Define to 1 if you have the declaration of `memrchr', and to 0 if you + don't. */ +#undef HAVE_DECL_MEMRCHR + /* Define to 1 if you have the declaration of `strmode', and to 0 if you don't. */ #undef HAVE_DECL_STRMODE @@ -319,6 +324,14 @@ along with GNU Emacs. If not, see . */ */ #undef HAVE_DECL_TZNAME +/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you + don't. */ +#undef HAVE_DECL_UNSETENV + +/* Define to 1 if you have the declaration of `_putenv', and to 0 if you + don't. */ +#undef HAVE_DECL__PUTENV + /* Define to 1 if you have the declaration of `__fpending', and to 0 if you don't. */ #undef HAVE_DECL___FPENDING @@ -336,6 +349,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `difftime' function. */ #undef HAVE_DIFFTIME +/* Define to 1 if you have the header file. */ +#undef HAVE_DIRENT_H + /* Define to 1 if you have the 'dup2' function. */ #undef HAVE_DUP2 @@ -360,6 +376,12 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `faccessat' function. */ #undef HAVE_FACCESSAT +/* Define to 1 if you have the `fdatasync' function. */ +#undef HAVE_FDATASYNC + +/* Define to 1 if you have the `fdopendir' function. */ +#undef HAVE_FDOPENDIR + /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK @@ -372,6 +394,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO +/* Define to 1 if you have the `fstatat' function. */ +#undef HAVE_FSTATAT + /* Define to 1 if you have the `fsync' function. */ #undef HAVE_FSYNC @@ -478,12 +503,18 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `gtk_file_selection_new' function. */ #undef HAVE_GTK_FILE_SELECTION_NEW +/* Define to 1 if you have the `gtk_handle_box_new' function. */ +#undef HAVE_GTK_HANDLE_BOX_NEW + /* Define to 1 if you have the `gtk_main' function. */ #undef HAVE_GTK_MAIN /* Define to 1 if you have the `gtk_orientable_set_orientation' function. */ #undef HAVE_GTK_ORIENTABLE_SET_ORIENTATION +/* Define to 1 if you have the `gtk_tearoff_menu_item_new' function. */ +#undef HAVE_GTK_TEAROFF_MENU_ITEM_NEW + /* Define to 1 if you have the `gtk_widget_get_mapped' function. */ #undef HAVE_GTK_WIDGET_GET_MAPPED @@ -514,6 +545,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have inet sockets. */ #undef HAVE_INET_SOCKETS +/* Define to 1 to use inotify. */ +#undef HAVE_INOTIFY + /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H @@ -670,6 +704,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H +/* Define to 1 if you have the `memrchr' function. */ +#undef HAVE_MEMRCHR + /* Define to 1 if you have mouse menus. (This is automatic if you use X, but the option to specify it remains.) It is also defined with other window systems that support xmenu.c. */ @@ -681,9 +718,6 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP -/* Define if you have mouse support. */ -#undef HAVE_MOUSE - /* Define to 1 if you have the `nanotime' function. */ #undef HAVE_NANOTIME @@ -715,6 +749,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the header file. */ #undef HAVE_PNG_H +/* Define to 1 if using POSIX ACL support. */ +#undef HAVE_POSIX_ACL + /* Define to 1 if you have the `posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN @@ -787,6 +824,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `shutdown' function. */ #undef HAVE_SHUTDOWN +/* Define to 1 if you have the `sig2str' function. */ +#undef HAVE_SIG2STR + /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T @@ -909,6 +949,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_INOTIFY_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INTTYPES_H @@ -986,6 +1029,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the `unsetenv' function. */ +#undef HAVE_UNSETENV + /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT @@ -1025,6 +1071,10 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if `fork' works. */ #undef HAVE_WORKING_FORK +/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX + 7.1. */ +#undef HAVE_WORKING_FSTATAT_ZERO_FLAG + /* Define if utimes works properly. */ #undef HAVE_WORKING_UTIMES @@ -1056,8 +1106,8 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if XIM is available */ #undef HAVE_XIM -/* Define to 1 if you have the XkbGetKeyboard function. */ -#undef HAVE_XKBGETKEYBOARD +/* Define to 1 if you have the Xkb extension. */ +#undef HAVE_XKB /* Define to 1 if you have the Xpm library (-lXpm). */ #undef HAVE_XPM @@ -1184,9 +1234,6 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if the nlist n_name member is a pointer */ #undef N_NAME_POINTER -/* Define if the C compiler is the linker. */ -#undef ORDINARY_LINK - /* Name of package */ #undef PACKAGE @@ -1331,9 +1378,6 @@ along with GNU Emacs. If not, see . */ timespec. */ #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC -/* Undocumented. */ -#undef ULIMIT_BREAK_VALUE - /* Define to 1 for Encore UMAX. */ #undef UMAX @@ -1365,6 +1409,38 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if using the Motif X toolkit. */ #undef USE_MOTIF +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on OS X. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions if necessary. HP-UX 11.11 defines + mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of + whether compiling with -Ae or -D_HPUX_SOURCE=1. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + /* Define to 1 if we should use toolkit scroll bars. */ #undef USE_TOOLKIT_SCROLL_BARS @@ -1390,6 +1466,9 @@ along with GNU Emacs. If not, see . */ /* Version number of package */ #undef VERSION +/* Define to 1 if unsetenv returns void instead of int. */ +#undef VOID_UNSETENV + /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX @@ -1426,10 +1505,8 @@ along with GNU Emacs. If not, see . */ /* Define if the system is AIX. */ #undef _AIX -/* Enable large inode numbers on Mac OS X. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif +/* Enable large inode numbers on Mac OS X 10.5. */ +#undef _DARWIN_USE_64_BIT_INODE /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS @@ -1450,6 +1527,9 @@ along with GNU Emacs. If not, see . */ /* Define if GNUstep uses ObjC exceptions. */ #undef _NATIVE_OBJC_EXCEPTIONS +/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ +#undef _NETBSD_SOURCE + /* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) @@ -1474,35 +1554,6 @@ along with GNU Emacs. If not, see . */ /* Needed for system_process_attributes on Solaris. */ #undef _STRUCTURED_PROC -/* Define to 500 only on HP-UX. */ -#undef _XOPEN_SOURCE - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable general extensions on Mac OS X. */ -#ifndef _DARWIN_C_SOURCE -# undef _DARWIN_C_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - /* Define to rpl_ if the getopt replacement functions and variables should be used. */ #undef __GETOPT_PREFIX @@ -1523,13 +1574,22 @@ along with GNU Emacs. If not, see . */ when FOO is an inline function in the header; see . _GL_INLINE_HEADER_END contains useful stuff to put - in the same include file, after uses of _GL_INLINE. */ -#if (__GNUC__ \ - ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : 199901L <= __STDC_VERSION__) + in the same include file, after uses of _GL_INLINE. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress the use of extern inline on Apple's platforms, + as Libc-825.25 (2012-09-19) is incompatible with it; see + . + Perhaps Apple will fix this some day. */ +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ + && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline -#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__ # if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) @@ -1538,8 +1598,8 @@ along with GNU Emacs. If not, see . */ # endif # define _GL_EXTERN_INLINE extern #else -# define _GL_INLINE static inline -# define _GL_EXTERN_INLINE static inline +# define _GL_INLINE static _GL_UNUSED +# define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) @@ -1567,12 +1627,6 @@ along with GNU Emacs. If not, see . */ /* Define to rpl_gmtime if the replacement function should be used. */ #undef gmtime -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. diff --git a/autogen/configure b/autogen/configure index fbb2efbc860..126248beced 100755 --- a/autogen/configure +++ b/autogen/configure @@ -605,8 +605,6 @@ LTLIBOBJS LIBOBJS SUBDIR_MAKEFILES_IN WINDOW_SYSTEM_OBJ -LIB_GCC -LD_FIRSTFLAG LD_SWITCH_SYSTEM_TEMACS LIBGNU_LTLIBDEPS LIBGNU_LIBDEPS @@ -625,6 +623,8 @@ gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c_FALSE gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c_TRUE gl_GNULIB_ENABLED_pathmax_FALSE gl_GNULIB_ENABLED_pathmax_TRUE +gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_FALSE +gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_TRUE gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1_FALSE gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1_TRUE gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36_FALSE @@ -635,6 +635,8 @@ gl_GNULIB_ENABLED_euidaccess_FALSE gl_GNULIB_ENABLED_euidaccess_TRUE gl_GNULIB_ENABLED_dosname_FALSE gl_GNULIB_ENABLED_dosname_TRUE +gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_FALSE +gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_TRUE LTLIBINTL LIBINTL LIB_EACCESS @@ -651,6 +653,8 @@ NEXT_TIME_H WINDOWS_64_BIT_ST_SIZE NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H +NEXT_AS_FIRST_DIRECTIVE_STRING_H +NEXT_STRING_H NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H @@ -815,39 +819,79 @@ GNULIB_TIMEGM GNULIB_STRPTIME GNULIB_NANOSLEEP GNULIB_MKTIME -REPLACE_UTIMENSAT -REPLACE_STAT -REPLACE_MKNOD -REPLACE_MKFIFO -REPLACE_MKDIR -REPLACE_LSTAT -REPLACE_FUTIMENS -REPLACE_FSTATAT -REPLACE_FSTAT -HAVE_UTIMENSAT -HAVE_MKNODAT -HAVE_MKNOD -HAVE_MKFIFOAT -HAVE_MKFIFO -HAVE_MKDIRAT -HAVE_LSTAT -HAVE_LCHMOD -HAVE_FUTIMENS -HAVE_FSTATAT -HAVE_FCHMODAT -GNULIB_UTIMENSAT -GNULIB_STAT -GNULIB_MKNODAT -GNULIB_MKNOD -GNULIB_MKFIFOAT -GNULIB_MKFIFO -GNULIB_MKDIRAT -GNULIB_LSTAT -GNULIB_LCHMOD -GNULIB_FUTIMENS -GNULIB_FSTATAT -GNULIB_FSTAT -GNULIB_FCHMODAT +UNDEFINE_STRTOK_R +REPLACE_STRTOK_R +REPLACE_STRSIGNAL +REPLACE_STRNLEN +REPLACE_STRNDUP +REPLACE_STRNCAT +REPLACE_STRERROR_R +REPLACE_STRERROR +REPLACE_STRCHRNUL +REPLACE_STRCASESTR +REPLACE_STRSTR +REPLACE_STRDUP +REPLACE_STPNCPY +REPLACE_MEMMEM +REPLACE_MEMCHR +HAVE_STRVERSCMP +HAVE_DECL_STRSIGNAL +HAVE_DECL_STRERROR_R +HAVE_DECL_STRTOK_R +HAVE_STRCASESTR +HAVE_STRSEP +HAVE_STRPBRK +HAVE_DECL_STRNLEN +HAVE_DECL_STRNDUP +HAVE_DECL_STRDUP +HAVE_STRCHRNUL +HAVE_STPNCPY +HAVE_STPCPY +HAVE_RAWMEMCHR +HAVE_DECL_MEMRCHR +HAVE_MEMPCPY +HAVE_DECL_MEMMEM +HAVE_MEMCHR +HAVE_FFSLL +HAVE_FFSL +HAVE_MBSLEN +GNULIB_STRVERSCMP +GNULIB_STRSIGNAL +GNULIB_STRERROR_R +GNULIB_STRERROR +GNULIB_MBSTOK_R +GNULIB_MBSSEP +GNULIB_MBSSPN +GNULIB_MBSPBRK +GNULIB_MBSCSPN +GNULIB_MBSCASESTR +GNULIB_MBSPCASECMP +GNULIB_MBSNCASECMP +GNULIB_MBSCASECMP +GNULIB_MBSSTR +GNULIB_MBSRCHR +GNULIB_MBSCHR +GNULIB_MBSNLEN +GNULIB_MBSLEN +GNULIB_STRTOK_R +GNULIB_STRCASESTR +GNULIB_STRSTR +GNULIB_STRSEP +GNULIB_STRPBRK +GNULIB_STRNLEN +GNULIB_STRNDUP +GNULIB_STRNCAT +GNULIB_STRDUP +GNULIB_STRCHRNUL +GNULIB_STPNCPY +GNULIB_STPCPY +GNULIB_RAWMEMCHR +GNULIB_MEMRCHR +GNULIB_MEMPCPY +GNULIB_MEMMEM +GNULIB_MEMCHR +GNULIB_FFSLL +GNULIB_FFSL NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H NEXT_INTTYPES_H UINT64_MAX_EQ_ULONG_MAX @@ -931,6 +975,7 @@ HAVE_STRTOLL HAVE_STRTOD HAVE_DECL_SETENV HAVE_SETENV +HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_RANDOM_R @@ -958,6 +1003,7 @@ GNULIB_STRTOULL GNULIB_STRTOLL GNULIB_STRTOD GNULIB_SETENV +GNULIB_SECURE_GETENV GNULIB_RPMATCH GNULIB_REALPATH GNULIB_REALLOC_POSIX @@ -981,12 +1027,42 @@ GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT +REPLACE_UTIMENSAT +REPLACE_STAT +REPLACE_MKNOD +REPLACE_MKFIFO +REPLACE_MKDIR +REPLACE_LSTAT +REPLACE_FUTIMENS +REPLACE_FSTATAT +REPLACE_FSTAT +HAVE_UTIMENSAT +HAVE_MKNODAT +HAVE_MKNOD +HAVE_MKFIFOAT +HAVE_MKFIFO +HAVE_MKDIRAT +HAVE_LSTAT +HAVE_LCHMOD +HAVE_FUTIMENS +HAVE_FSTATAT +HAVE_FCHMODAT +GNULIB_UTIMENSAT +GNULIB_STAT +GNULIB_MKNODAT +GNULIB_MKNOD +GNULIB_MKFIFOAT +GNULIB_MKFIFO +GNULIB_MKDIRAT +GNULIB_LSTAT +GNULIB_LCHMOD +GNULIB_FUTIMENS +GNULIB_FSTATAT +GNULIB_FSTAT +GNULIB_FCHMODAT +LIB_FDATASYNC NEXT_AS_FIRST_DIRECTIVE_FCNTL_H NEXT_FCNTL_H -PRAGMA_COLUMNS -PRAGMA_SYSTEM_HEADER -INCLUDE_NEXT_AS_FIRST_DIRECTIVE -INCLUDE_NEXT REPLACE_OPENAT REPLACE_OPEN REPLACE_FCNTL @@ -1000,6 +1076,34 @@ GL_GENERATE_EXECINFO_H_FALSE GL_GENERATE_EXECINFO_H_TRUE LIB_EXECINFO EXECINFO_H +HAVE_DIRENT_H +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H +NEXT_DIRENT_H +PRAGMA_COLUMNS +PRAGMA_SYSTEM_HEADER +INCLUDE_NEXT_AS_FIRST_DIRECTIVE +INCLUDE_NEXT +REPLACE_FDOPENDIR +REPLACE_DIRFD +REPLACE_CLOSEDIR +REPLACE_OPENDIR +HAVE_ALPHASORT +HAVE_SCANDIR +HAVE_FDOPENDIR +HAVE_DECL_FDOPENDIR +HAVE_DECL_DIRFD +HAVE_CLOSEDIR +HAVE_REWINDDIR +HAVE_READDIR +HAVE_OPENDIR +GNULIB_ALPHASORT +GNULIB_SCANDIR +GNULIB_FDOPENDIR +GNULIB_DIRFD +GNULIB_CLOSEDIR +GNULIB_REWINDDIR +GNULIB_READDIR +GNULIB_OPENDIR UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H REPLACE_WRITE @@ -1201,6 +1305,7 @@ FONTCONFIG_LIBS FONTCONFIG_CFLAGS LIBXMU LIBXTR6 +LIBACL_LIBS LIBGNUTLS_LIBS LIBGNUTLS_CFLAGS LIBSELINUX_LIBS @@ -1226,14 +1331,16 @@ LIB_PTHREAD VMLIMIT_OBJ GMALLOC_OBJ HAVE_XSERVER +W32_RES_LINK +W32_RES W32_LIBS W32_OBJ -LIB_STANDARD +WINDRES NS_OBJC_OBJ NS_OBJ ns_self_contained INSTALL_ARCH_INDEP_EXTRA -TEMACS_LDFLAGS2 +LIBS_GNUSTEP LD_SWITCH_X_SITE_RPATH XMKMF DEPFLAGS @@ -1243,8 +1350,6 @@ ALSA_LIBS ALSA_CFLAGS LIBSOUND PKG_CONFIG -CRT_DIR -START_FILES LIB_MATH LIBS_SYSTEM C_SWITCH_SYSTEM @@ -1392,11 +1497,12 @@ with_dbus with_gconf with_gsettings with_selinux +with_acl with_gnutls +with_inotify with_makeinfo with_compress_info with_pkg_config_prog -with_crt_dir with_gameuser with_gnustep_conf enable_ns_self_contained @@ -1405,6 +1511,7 @@ enable_checking enable_check_lisp_object_type enable_profiling enable_autodepend +enable_gtk_deprecation_warnings enable_dependency_tracking enable_largefile enable_gcc_warnings @@ -2064,12 +2171,15 @@ Optional Features: --enable-autodepend automatically generate dependencies to .h-files. Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is found + --enable-gtk-deprecation-warnings + Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0 --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-largefile omit support for large files - --enable-gcc-warnings turn on lots of GCC warnings. This is intended for - developers, and may generate false alarms when used - with older or non-GNU development tools. + --enable-gcc-warnings turn on lots of GCC warnings/errors. This is + intended for developers, and may generate false + alarms when used with older or non-GNU development + tools. --enable-link-time-optimization build emacs with link-time optimization. This is supported only for GCC since 4.5.0. @@ -2114,16 +2224,16 @@ Optional Packages: --without-gconf don't compile with GConf support --without-gsettings don't compile with GSettings support --without-selinux don't compile with SELinux support + --without-acl don't compile with ACL support --without-gnutls don't use -lgnutls for SSL/TLS support + --without-inotify don't compile with inotify (file-watch) support --without-makeinfo don't require makeinfo for building manuals --without-compress-info don't compress the installed Info pages - --with-pkg-config-prog=PATH - path to pkg-config for finding GTK and librsvg - --with-crt-dir=DIR directory containing crtn.o etc. The default is - /usr/lib, or /usr/lib64 on some platforms. + --with-pkg-config-prog=FILENAME + file name of pkg-config for finding GTK and librsvg --with-gameuser=USER user for shared game score files - --with-gnustep-conf=PATH - path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, + --with-gnustep-conf=FILENAME + name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf --with-x use the X Window System @@ -3209,7 +3319,6 @@ as_fn_append ac_header_list " linux/version.h" as_fn_append ac_header_list " sys/systeminfo.h" as_fn_append ac_header_list " coff.h" as_fn_append ac_header_list " pty.h" -as_fn_append ac_header_list " sys/vlimit.h" as_fn_append ac_header_list " sys/resource.h" as_fn_append ac_header_list " sys/utsname.h" as_fn_append ac_header_list " pwd.h" @@ -3225,10 +3334,14 @@ as_fn_append ac_header_list " maillock.h" as_fn_append ac_header_list " sys/un.h" as_fn_append ac_func_list " tzset" as_fn_append ac_func_list " readlinkat" +as_fn_append ac_header_list " dirent.h" as_fn_append ac_header_list " execinfo.h" as_fn_append ac_func_list " faccessat" +as_fn_append ac_func_list " fdopendir" as_fn_append ac_header_list " stdio_ext.h" as_fn_append ac_func_list " __fpending" +as_fn_append ac_func_list " fstatat" +as_fn_append ac_func_list " fsync" gl_getopt_required=GNU as_fn_append ac_header_list " getopt.h" as_fn_append ac_func_list " gettimeofday" @@ -3238,7 +3351,6 @@ as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " stdint.h" as_fn_append ac_header_list " inttypes.h" as_fn_append ac_func_list " lstat" -as_fn_append ac_func_list " alarm" as_fn_append ac_header_list " sys/select.h" as_fn_append ac_func_list " pselect" as_fn_append ac_func_list " pthread_sigmask" @@ -3322,6 +3434,19 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu + +emacs_config_options="$@" +## Add some environment variables, if they were passed via the environment +## rather than on the command-line. +for var in CFLAGS CPPFLAGS LDFLAGS; do + case "$emacs_config_options" in + *$var=*) continue ;; + esac + eval val="\$${var}" + test x"$val" = x && continue + emacs_config_options="${emacs_config_options}${emacs_config_options:+ }$var=\"$val\"" +done + ac_config_headers="$ac_config_headers src/config.h:src/config.in" @@ -3676,7 +3801,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } - mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; @@ -4169,6 +4293,14 @@ else fi +# Check whether --with-acl was given. +if test "${with_acl+set}" = set; then : + withval=$with_acl; +else + with_acl=$with_features +fi + + # Check whether --with-gnutls was given. if test "${with_gnutls+set}" = set; then : withval=$with_gnutls; @@ -4177,6 +4309,14 @@ else fi +# Check whether --with-inotify was given. +if test "${with_inotify+set}" = set; then : + withval=$with_inotify; +else + with_inotify=$with_features +fi + + ## For the times when you want to build Emacs but don't have ## a suitable makeinfo, and can live without the manuals. @@ -4220,15 +4360,6 @@ if test "X${with_pkg_config_prog}" != X; then fi fi -CRT_DIR= - -# Check whether --with-crt-dir was given. -if test "${with_crt_dir+set}" = set; then : - withval=$with_crt_dir; -fi - -CRT_DIR="${with_crt_dir}" - # Check whether --with-gameuser was given. if test "${with_gameuser+set}" = set; then : @@ -4372,8 +4503,14 @@ else fi +# Check whether --enable-gtk-deprecation-warnings was given. +if test "${enable_gtk_deprecation_warnings+set}" = set; then : + enableval=$enable_gtk_deprecation_warnings; ac_enable_gtk_deprecation_warnings="${enableval}" +fi + + #### Make srcdir absolute, if it isn't already. It's important to -#### avoid running the path through pwd unnecessarily, since pwd can +#### avoid running the file name through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this #### so Emacs can find its files when run uninstalled. ## Make sure CDPATH doesn't affect cd (in case PWD is relative). @@ -4383,17 +4520,17 @@ case "${srcdir}" in . ) ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. - ## Note: we used to use ${PWD} at the end instead of `pwd`, + ## Note: we used to use $PWD at the end instead of `pwd`, ## but that tested only for a well-formed and valid PWD, ## it did not object when PWD was well-formed and valid but just wrong. - if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`" ; + if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`" ; then srcdir="$PWD" else - srcdir="`(cd ${srcdir}; pwd)`" + srcdir=`(cd "$srcdir"; pwd)` fi ;; - * ) srcdir="`(cd ${srcdir}; pwd)`" ;; + * ) srcdir=`(cd "$srcdir"; pwd)` ;; esac ### Canonicalize the configuration name. @@ -5760,7 +5897,8 @@ else test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS" fi -# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them. +# Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, +# as we don't use them. # Avoid gnulib's threadlib module, as we do threads our own way. @@ -6404,8 +6542,6 @@ done - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = x""yes; then : MINIX=yes @@ -6424,16 +6560,11 @@ $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h + +$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h + fi - case "$host_os" in - hpux*) - -$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h - - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } @@ -6475,6 +6606,54 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test "${ac_cv_should_define__xopen_source+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_should_define__xopen_source=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +$as_echo "$ac_cv_should_define__xopen_source" >&6; } + test $ac_cv_should_define__xopen_source = yes && + $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h + @@ -6680,6 +6859,8 @@ rm -rf conftest* fi +$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h + fi case $ac_cv_prog_cc_stdc in #( @@ -6979,6 +7160,7 @@ esac # Code from module alloca-opt: # Code from module allocator: + # Code from module at-internal: # Code from module c-ctype: # Code from module c-strcase: # Code from module careadlinkat: @@ -6988,6 +7170,7 @@ esac # Code from module crypto/sha1: # Code from module crypto/sha256: # Code from module crypto/sha512: + # Code from module dirent: # Code from module dosname: # Code from module dtoastr: # Code from module dtotimespec: @@ -7000,8 +7183,12 @@ esac # Code from module extern-inline: # Code from module faccessat: # Code from module fcntl-h: + # Code from module fdatasync: + # Code from module fdopendir: # Code from module filemode: # Code from module fpending: + # Code from module fstatat: + # Code from module fsync: # Code from module getgroups: # Code from module getloadavg: # Code from module getopt-gnu: @@ -7018,14 +7205,19 @@ esac # Code from module lstat: # Code from module manywarnings: + # Code from module memrchr: # Code from module mktime: # Code from module multiarch: # Code from module nocrash: + # Code from module openat-h: # Code from module pathmax: # Code from module pselect: # Code from module pthread_sigmask: + # Code from module putenv: # Code from module readlink: + # Code from module readlinkat: # Code from module root-uid: + # Code from module sig2str: # Code from module signal-h: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: @@ -7046,6 +7238,7 @@ esac # Code from module stdio: # Code from module stdlib: # Code from module strftime: + # Code from module string: # Code from module strtoimax: # Code from module strtoll: # Code from module strtoull: @@ -7062,6 +7255,7 @@ esac # Code from module timespec-sub: # Code from module u64: # Code from module unistd: + # Code from module unsetenv: # Code from module utimens: # Code from module verify: # Code from module warnings: @@ -7266,38 +7460,12 @@ fi # . nw="$nw -Wshadow" + # Emacs's use of alloca inhibits protecting the stack. + nw="$nw -Wstack-protector" + # The following line should be removable at some point. nw="$nw -Wsuggest-attribute=pure" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use -Wstack-protector" >&5 -$as_echo_n "checking whether to use -Wstack-protector... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if (1 <= __LONG_MAX__ >> 31 >> 31 \ - && 4 < __GNUC__ + (7 < __GNUC_MINOR__ + (2 <= __GNUC_PATCHLEVEL__))) - /* OK */ - #else - #error "Not GCC, or GCC before 4.7.2, or 'long int' has < 64 bits." - #endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - nw="$nw -Wstack-protector" -fi -rm -f conftest.err conftest.$ac_ext - if test -n "$GCC"; then @@ -8145,9 +8313,13 @@ $as_echo "no" >&6; } fi -if test "$MAKEINFO" != "no" && \ - test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[^0-9]*([1-4][0-9]+|[5-9]|4\.[7-9]|4\.[1-6][0-9]+)'`" = x; then - MAKEINFO=no +if test "$MAKEINFO" != "no"; then + case ` + $MAKEINFO --version 2> /dev/null | + $EGREP 'texinfo[^0-9]*([1-4][0-9]+|[5-9]|4\.[7-9]|4\.[1-6][0-9]+)' + ` in + '') MAKEINFO=no;; + esac fi ## Makeinfo is unusual. For a released Emacs, the manuals are @@ -8165,7 +8337,7 @@ if test "$MAKEINFO" = "no"; then MAKEINFO=makeinfo if test "x${with_makeinfo}" = "xno"; then HAVE_MAKEINFO=no - elif test ! -e $srcdir/info/emacs; then + elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then as_fn_error "You do not seem to have makeinfo >= 4.7, and your source tree does not seem to have pre-built manuals in the \`info' directory. Either install a suitable version of makeinfo, or re-run configure @@ -8385,36 +8557,24 @@ fi LIB_MATH=-lm -LIB_STANDARD= -START_FILES= SYSTEM_TYPE=`echo $opsys | sed -e 's/[0-9].*//' -e 's|-|/|'` case $opsys in cygwin ) LIB_MATH= - START_FILES='pre-crt0.o' ;; darwin ) ## Adding -lm confuses the dynamic linker, so omit it. LIB_MATH= - START_FILES='pre-crt0.o' ;; freebsd ) - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o' SYSTEM_TYPE=berkeley-unix ;; gnu-linux | gnu-kfreebsd ) - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o' ;; hpux10-20 | hpux11 ) - LIB_STANDARD=-lc - START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o' ;; netbsd | openbsd ) - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o' SYSTEM_TYPE=berkeley-unix ;; @@ -8426,117 +8586,11 @@ esac - cat >>confdefs.h <<_ACEOF #define SYSTEM_TYPE "$SYSTEM_TYPE" _ACEOF -crt_files= - -for file in x $LIB_STANDARD $START_FILES; do - case "$file" in - *CRT_DIR*) crt_files="$crt_files `echo $file | sed -e 's|.*/||'`" ;; - esac -done - -if test "x$crt_files" != x; then - - ## If user specified a crt-dir, use that unconditionally. - crt_gcc=no - - if test "X$CRT_DIR" = "X"; then - - CRT_DIR=/usr/lib # default - - case "$canonical" in - x86_64-*-linux-gnu* | s390x-*-linux-gnu*) - ## On x86-64 and s390x GNU/Linux distributions, the standard library - ## can be in a variety of places. We only try /usr/lib64 and /usr/lib. - ## For anything else (eg /usr/lib32), it is up the user to specify - ## the location (bug#5655). - ## Test for crtn.o, not just the directory, because sometimes the - ## directory exists but does not have the relevant files (bug#1287). - ## FIXME better to test for binary compatibility somehow. - test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64 - ;; - - powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;; - esac - - case "$opsys" in - hpux10-20) CRT_DIR=/lib ;; - esac - - test "x${GCC}" = xyes && crt_gcc=yes - - fi # CRT_DIR = "" - - crt_missing= - - for file in $crt_files; do - - ## If we're using gcc, try to determine it automatically by asking - ## gcc. [If this doesn't work, CRT_DIR will remain at the - ## system-dependent default from above.] - if test $crt_gcc = yes && test ! -e $CRT_DIR/$file; then - - crt_file=`$CC --print-file-name=$file 2>/dev/null` - case "$crt_file" in - */*) - CRT_DIR=`$as_dirname -- "$crt_file" || -$as_expr X"$crt_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$crt_file" : 'X\(//\)[^/]' \| \ - X"$crt_file" : 'X\(//\)$' \| \ - X"$crt_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$crt_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - ;; - esac - fi - - crt_gcc=no - - test -e $CRT_DIR/$file || crt_missing="$crt_missing $file" - done # $crt_files - - test "x$crt_missing" = x || \ - as_fn_error "Required file(s) not found:$crt_missing -Try using the --with-crt-dir option." "$LINENO" 5 - -fi # crt_files != "" - - - -case $opsys in - netbsd | openbsd ) - if test -f $CRT_DIR/crti.o; then - - test -f $CRT_DIR/crtn.o || \ - as_fn_error "Required file not found: crtn.o" "$LINENO" 5 - - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o' - fi - ;; -esac - pre_PKG_CONFIG_CFLAGS=$CFLAGS pre_PKG_CONFIG_LIBS=$LIBS @@ -8656,13 +8710,13 @@ fi HAVE_ALSA=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ALSA_MODULES" >&5 $as_echo_n "checking for $ALSA_MODULES... " >&6; } - if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5 && - ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES" 2>&5` && - ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES" 2>&5`; then + if "$PKG_CONFIG" --exists "$ALSA_MODULES" 2>&5 && + ALSA_CFLAGS=`"$PKG_CONFIG" --cflags "$ALSA_MODULES" 2>&5` && + ALSA_LIBS=`"$PKG_CONFIG" --libs "$ALSA_MODULES" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -8682,7 +8736,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - ALSA_PKG_ERRORS=`($PKG_CONFIG --print-errors "$ALSA_MODULES") 2>&1` + ALSA_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$ALSA_MODULES") 2>&1` fi @@ -8803,8 +8857,6 @@ done - - @@ -9506,8 +9558,8 @@ tmp_CPPFLAGS="$CPPFLAGS" tmp_CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS -x objective-c" CFLAGS="$CFLAGS -x objective-c" -TEMACS_LDFLAGS2="\${LDFLAGS}" GNU_OBJC_CFLAGS= +LIBS_GNUSTEP= if test "${with_ns}" != no; then if test "${opsys}" = darwin; then NS_IMPL_COCOA=yes @@ -9532,9 +9584,7 @@ if test "${with_ns}" != no; then CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}" - LIB_STANDARD= - START_FILES= - TEMACS_LDFLAGS2= + LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS" >&5 $as_echo_n "checking if GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS... " >&6; } if test "${emacs_cv_objc_exceptions+set}" = set; then : @@ -9672,10 +9722,11 @@ CPPFLAGS="$tmp_CPPFLAGS" - HAVE_W32=no W32_OBJ= W32_LIBS= +W32_RES= +W32_RES_LINK= if test "${with_w32}" != no; then if test "${opsys}" != "cygwin"; then as_fn_error "Using w32 with an autotools build is only supported for Cygwin." "$LINENO" 5 @@ -9692,14 +9743,112 @@ fi $as_echo "#define HAVE_NTGUI 1" >>confdefs.h + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. +set dummy ${ac_tool_prefix}windres; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_WINDRES+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$WINDRES"; then + ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_WINDRES="${ac_tool_prefix}windres" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +WINDRES=$ac_cv_prog_WINDRES +if test -n "$WINDRES"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 +$as_echo "$WINDRES" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_WINDRES"; then + ac_ct_WINDRES=$WINDRES + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_WINDRES+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_WINDRES"; then + ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_WINDRES="windres" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES +if test -n "$ac_ct_WINDRES"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 +$as_echo "$ac_ct_WINDRES" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_WINDRES" = x; then + WINDRES="as_fn_error "No resource compiler found." "$LINENO" 5" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + WINDRES=$ac_ct_WINDRES + fi +else + WINDRES="$ac_cv_prog_WINDRES" +fi + W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o" W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o" W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" + W32_RES="emacs.res" + # Tell the linker that emacs.res is an object (which we compile from + # the rc file), not a linker script. + W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res" fi + + if test "${HAVE_W32}" = "yes"; then window_system=w32 with_xft=no @@ -9742,14 +9891,6 @@ case "${window_system}" in ;; esac -if test -n "${term_header}"; then - -cat >>confdefs.h <<_ACEOF -#define TERM_HEADER "${term_header}" -_ACEOF - -fi - if test "$window_system" = none && test "X$with_x" != "Xno"; then # Extract the first word of "X", so it can be a program name with args. set dummy X; ac_word=$2 @@ -9863,6 +10004,50 @@ $as_echo "#define SYSTEM_MALLOC 1" >>confdefs.h else test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o VMLIMIT_OBJ=vm-limit.o + + for ac_header in sys/vlimit.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/vlimit.h" "ac_cv_header_sys_vlimit_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_vlimit_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_VLIMIT_H 1 +_ACEOF + +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for data_start" >&5 +$as_echo_n "checking for data_start... " >&6; } +if test "${emacs_cv_data_start+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern char data_start[]; char ch; +int +main () +{ +return data_start < &ch; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + emacs_cv_data_start=yes +else + emacs_cv_data_start=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_data_start" >&5 +$as_echo "$emacs_cv_data_start" >&6; } + if test $emacs_cv_data_start = yes; then + +$as_echo "#define HAVE_DATA_START 1" >>confdefs.h + + fi fi @@ -10449,7 +10634,7 @@ rm -f core conftest.err conftest.$ac_objext \ $as_echo "$emacs_xkb" >&6; } if test $emacs_xkb = yes; then -$as_echo "#define HAVE_XKBGETKEYBOARD 1" >>confdefs.h +$as_echo "#define HAVE_XKB 1" >>confdefs.h fi @@ -10537,13 +10722,13 @@ if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then : else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $RSVG_MODULE" >&5 $as_echo_n "checking for $RSVG_MODULE... " >&6; } - if $PKG_CONFIG --exists "$RSVG_MODULE" 2>&5 && - RSVG_CFLAGS=`$PKG_CONFIG --cflags "$RSVG_MODULE" 2>&5` && - RSVG_LIBS=`$PKG_CONFIG --libs "$RSVG_MODULE" 2>&5`; then + if "$PKG_CONFIG" --exists "$RSVG_MODULE" 2>&5 && + RSVG_CFLAGS=`"$PKG_CONFIG" --cflags "$RSVG_MODULE" 2>&5` && + RSVG_LIBS=`"$PKG_CONFIG" --libs "$RSVG_MODULE" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -10563,7 +10748,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - RSVG_PKG_ERRORS=`($PKG_CONFIG --print-errors "$RSVG_MODULE") 2>&1` + RSVG_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$RSVG_MODULE") 2>&1` fi @@ -10600,7 +10785,8 @@ if test "${HAVE_X11}" = "yes"; then ## 6.2.8 is the earliest version known to work, but earlier versions ## might work - let us know if you find one. ## 6.0.7 does not work. See bug#7955. - IMAGEMAGICK_MODULE="Wand >= 6.2.8" + ## 6.8.2 makes Emacs crash; see Bug#13867. + IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2" succeeded=no @@ -10608,13 +10794,13 @@ if test "${HAVE_X11}" = "yes"; then : else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $IMAGEMAGICK_MODULE" >&5 $as_echo_n "checking for $IMAGEMAGICK_MODULE... " >&6; } - if $PKG_CONFIG --exists "$IMAGEMAGICK_MODULE" 2>&5 && - IMAGEMAGICK_CFLAGS=`$PKG_CONFIG --cflags "$IMAGEMAGICK_MODULE" 2>&5` && - IMAGEMAGICK_LIBS=`$PKG_CONFIG --libs "$IMAGEMAGICK_MODULE" 2>&5`; then + if "$PKG_CONFIG" --exists "$IMAGEMAGICK_MODULE" 2>&5 && + IMAGEMAGICK_CFLAGS=`"$PKG_CONFIG" --cflags "$IMAGEMAGICK_MODULE" 2>&5` && + IMAGEMAGICK_LIBS=`"$PKG_CONFIG" --libs "$IMAGEMAGICK_MODULE" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -10634,7 +10820,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - IMAGEMAGICK_PKG_ERRORS=`($PKG_CONFIG --print-errors "$IMAGEMAGICK_MODULE") 2>&1` + IMAGEMAGICK_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$IMAGEMAGICK_MODULE") 2>&1` fi @@ -10695,13 +10881,13 @@ if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOO pkg_check_gtk=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5 $as_echo_n "checking for $GTK_MODULES... " >&6; } - if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5 && - GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES" 2>&5` && - GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES" 2>&5`; then + if "$PKG_CONFIG" --exists "$GTK_MODULES" 2>&5 && + GTK_CFLAGS=`"$PKG_CONFIG" --cflags "$GTK_MODULES" 2>&5` && + GTK_LIBS=`"$PKG_CONFIG" --libs "$GTK_MODULES" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -10721,7 +10907,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - GTK_PKG_ERRORS=`($PKG_CONFIG --print-errors "$GTK_MODULES") 2>&1` + GTK_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$GTK_MODULES") 2>&1` fi @@ -10749,6 +10935,9 @@ $as_echo "#define HAVE_GTK3 1" >>confdefs.h GTK_OBJ=emacsgtkfixed.o term_header=gtkutil.h USE_GTK_TOOLKIT="GTK3" + if test "x$ac_enable_gtk_deprecation_warnings" = x; then + GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS" + fi else check_gtk2=yes gtk3_pkg_errors="$GTK_PKG_ERRORS " @@ -10767,13 +10956,13 @@ if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then pkg_check_gtk=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5 $as_echo_n "checking for $GTK_MODULES... " >&6; } - if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5 && - GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES" 2>&5` && - GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES" 2>&5`; then + if "$PKG_CONFIG" --exists "$GTK_MODULES" 2>&5 && + GTK_CFLAGS=`"$PKG_CONFIG" --cflags "$GTK_MODULES" 2>&5` && + GTK_LIBS=`"$PKG_CONFIG" --libs "$GTK_MODULES" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -10793,7 +10982,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - GTK_PKG_ERRORS=`($PKG_CONFIG --print-errors "$GTK_MODULES") 2>&1` + GTK_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$GTK_MODULES") 2>&1` fi @@ -10849,7 +11038,7 @@ $as_echo "#define USE_GTK 1" >>confdefs.h GTK_OBJ="gtkutil.o $GTK_OBJ" USE_X_TOOLKIT=none - if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then + if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of Gtk+ will have problems with @@ -10898,6 +11087,53 @@ done fi + HAVE_GTK_HANDLE_BOX=no + ac_fn_c_check_decl "$LINENO" "GTK_TYPE_HANDLE_BOX" "ac_cv_have_decl_GTK_TYPE_HANDLE_BOX" "$ac_includes_default +#include +" +if test "x$ac_cv_have_decl_GTK_TYPE_HANDLE_BOX" = x""yes; then : + HAVE_GTK_HANDLE_BOX=yes +else + HAVE_GTK_HANDLE_BOX=no +fi + + if test "$HAVE_GTK_HANDLE_BOX" = yes; then + for ac_func in gtk_handle_box_new +do : + ac_fn_c_check_func "$LINENO" "gtk_handle_box_new" "ac_cv_func_gtk_handle_box_new" +if test "x$ac_cv_func_gtk_handle_box_new" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GTK_HANDLE_BOX_NEW 1 +_ACEOF + +fi +done + + fi + + HAVE_GTK_TEAROFF_MENU_ITEM=no + ac_fn_c_check_decl "$LINENO" "GTK_TYPE_TEAROFF_MENU_ITEM" "ac_cv_have_decl_GTK_TYPE_TEAROFF_MENU_ITEM" "$ac_includes_default +#include +" +if test "x$ac_cv_have_decl_GTK_TYPE_TEAROFF_MENU_ITEM" = x""yes; then : + HAVE_GTK_TEAROFF_MENU_ITEM=yes +else + HAVE_GTK_TEAROFF_MENU_ITEM=no +fi + + if test "$HAVE_GTK_TEAROFF_MENU_ITEM" = yes; then + for ac_func in gtk_tearoff_menu_item_new +do : + ac_fn_c_check_func "$LINENO" "gtk_tearoff_menu_item_new" "ac_cv_func_gtk_tearoff_menu_item_new" +if test "x$ac_cv_func_gtk_tearoff_menu_item_new" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GTK_TEAROFF_MENU_ITEM_NEW 1 +_ACEOF + +fi +done + + fi for ac_func in gtk_widget_get_window gtk_widget_set_has_window \ gtk_dialog_get_action_area gtk_widget_get_sensitive \ @@ -10930,13 +11166,13 @@ if test "${with_dbus}" = "yes"; then HAVE_DBUS=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus-1 >= 1.0" >&5 $as_echo_n "checking for dbus-1 >= 1.0... " >&6; } - if $PKG_CONFIG --exists "dbus-1 >= 1.0" 2>&5 && - DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.0" 2>&5` && - DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.0" 2>&5`; then + if "$PKG_CONFIG" --exists "dbus-1 >= 1.0" 2>&5 && + DBUS_CFLAGS=`"$PKG_CONFIG" --cflags "dbus-1 >= 1.0" 2>&5` && + DBUS_LIBS=`"$PKG_CONFIG" --libs "dbus-1 >= 1.0" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -10956,7 +11192,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - DBUS_PKG_ERRORS=`($PKG_CONFIG --print-errors "dbus-1 >= 1.0") 2>&1` + DBUS_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "dbus-1 >= 1.0") 2>&1` fi @@ -11011,13 +11247,13 @@ if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then HAVE_GSETTINGS=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gio-2.0 >= 2.26" >&5 $as_echo_n "checking for gio-2.0 >= 2.26... " >&6; } - if $PKG_CONFIG --exists "gio-2.0 >= 2.26" 2>&5 && - GSETTINGS_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.26" 2>&5` && - GSETTINGS_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.26" 2>&5`; then + if "$PKG_CONFIG" --exists "gio-2.0 >= 2.26" 2>&5 && + GSETTINGS_CFLAGS=`"$PKG_CONFIG" --cflags "gio-2.0 >= 2.26" 2>&5` && + GSETTINGS_LIBS=`"$PKG_CONFIG" --libs "gio-2.0 >= 2.26" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -11037,7 +11273,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - GSETTINGS_PKG_ERRORS=`($PKG_CONFIG --print-errors "gio-2.0 >= 2.26") 2>&1` + GSETTINGS_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "gio-2.0 >= 2.26") 2>&1` fi @@ -11073,13 +11309,13 @@ if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then HAVE_GCONF=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gconf-2.0 >= 2.13" >&5 $as_echo_n "checking for gconf-2.0 >= 2.13... " >&6; } - if $PKG_CONFIG --exists "gconf-2.0 >= 2.13" 2>&5 && - GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= 2.13" 2>&5` && - GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= 2.13" 2>&5`; then + if "$PKG_CONFIG" --exists "gconf-2.0 >= 2.13" 2>&5 && + GCONF_CFLAGS=`"$PKG_CONFIG" --cflags "gconf-2.0 >= 2.13" 2>&5` && + GCONF_LIBS=`"$PKG_CONFIG" --libs "gconf-2.0 >= 2.13" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -11099,7 +11335,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - GCONF_PKG_ERRORS=`($PKG_CONFIG --print-errors "gconf-2.0 >= 2.13") 2>&1` + GCONF_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "gconf-2.0 >= 2.13") 2>&1` fi @@ -11134,13 +11370,13 @@ if test "$HAVE_GSETTINGS" = "yes" || test "$HAVE_GCONF" = "yes"; then HAVE_GOBJECT=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-2.0 >= 2.0" >&5 $as_echo_n "checking for gobject-2.0 >= 2.0... " >&6; } - if $PKG_CONFIG --exists "gobject-2.0 >= 2.0" 2>&5 && - GOBJECT_CFLAGS=`$PKG_CONFIG --cflags "gobject-2.0 >= 2.0" 2>&5` && - GOBJECT_LIBS=`$PKG_CONFIG --libs "gobject-2.0 >= 2.0" 2>&5`; then + if "$PKG_CONFIG" --exists "gobject-2.0 >= 2.0" 2>&5 && + GOBJECT_CFLAGS=`"$PKG_CONFIG" --cflags "gobject-2.0 >= 2.0" 2>&5` && + GOBJECT_LIBS=`"$PKG_CONFIG" --libs "gobject-2.0 >= 2.0" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -11160,7 +11396,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - GOBJECT_PKG_ERRORS=`($PKG_CONFIG --print-errors "gobject-2.0 >= 2.0") 2>&1` + GOBJECT_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "gobject-2.0 >= 2.0") 2>&1` fi @@ -11268,13 +11504,13 @@ if test "${with_gnutls}" = "yes" ; then HAVE_GNUTLS=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 2.6.6" >&5 $as_echo_n "checking for gnutls >= 2.6.6... " >&6; } - if $PKG_CONFIG --exists "gnutls >= 2.6.6" 2>&5 && - LIBGNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 2.6.6" 2>&5` && - LIBGNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= 2.6.6" 2>&5`; then + if "$PKG_CONFIG" --exists "gnutls >= 2.6.6" 2>&5 && + LIBGNUTLS_CFLAGS=`"$PKG_CONFIG" --cflags "gnutls >= 2.6.6" 2>&5` && + LIBGNUTLS_LIBS=`"$PKG_CONFIG" --libs "gnutls >= 2.6.6" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -11294,7 +11530,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - LIBGNUTLS_PKG_ERRORS=`($PKG_CONFIG --print-errors "gnutls >= 2.6.6") 2>&1` + LIBGNUTLS_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "gnutls >= 2.6.6") 2>&1` fi @@ -11342,6 +11578,100 @@ fi +if test "${with_inotify}" = "yes"; then + for ac_header in sys/inotify.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_inotify_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_INOTIFY_H 1 +_ACEOF + +fi + +done + + if test "$ac_cv_header_sys_inotify_h" = yes ; then + ac_fn_c_check_func "$LINENO" "inotify_init1" "ac_cv_func_inotify_init1" +if test "x$ac_cv_func_inotify_init1" = x""yes; then : + +fi + + fi +fi +if test "$ac_cv_func_inotify_init1" = yes; then + +$as_echo "#define HAVE_INOTIFY 1" >>confdefs.h + +fi + +HAVE_POSIX_ACL=no +LIBACL_LIBS= +if test "${with_acl}" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_set_file in -lacl" >&5 +$as_echo_n "checking for acl_set_file in -lacl... " >&6; } +if test "${ac_cv_lib_acl_acl_set_file+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lacl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char acl_set_file (); +int +main () +{ +return acl_set_file (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_acl_acl_set_file=yes +else + ac_cv_lib_acl_acl_set_file=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_acl_acl_set_file" >&5 +$as_echo "$ac_cv_lib_acl_acl_set_file" >&6; } +if test "x$ac_cv_lib_acl_acl_set_file" = x""yes; then : + HAVE_POSIX_ACL=yes +else + HAVE_POSIX_ACL=no +fi + + if test "$HAVE_POSIX_ACL" = yes; then + +$as_echo "#define HAVE_POSIX_ACL 1" >>confdefs.h + + LIBACL_LIBS=-lacl + else + ac_fn_c_check_func "$LINENO" "acl_set_file" "ac_cv_func_acl_set_file" +if test "x$ac_cv_func_acl_set_file" = x""yes; then : + HAVE_POSIX_ACL=yes +else + HAVE_POSIX_ACL=no +fi + + if test "$HAVE_POSIX_ACL" = yes; then + +$as_echo "#define HAVE_POSIX_ACL 1" >>confdefs.h + + fi + fi +fi + + HAVE_XAW3D=no LUCID_LIBW= if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then @@ -11902,13 +12232,13 @@ if test "${HAVE_X11}" = "yes"; then HAVE_FC=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig >= 2.2.0" >&5 $as_echo_n "checking for fontconfig >= 2.2.0... " >&6; } - if $PKG_CONFIG --exists "fontconfig >= 2.2.0" 2>&5 && - FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig >= 2.2.0" 2>&5` && - FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig >= 2.2.0" 2>&5`; then + if "$PKG_CONFIG" --exists "fontconfig >= 2.2.0" 2>&5 && + FONTCONFIG_CFLAGS=`"$PKG_CONFIG" --cflags "fontconfig >= 2.2.0" 2>&5` && + FONTCONFIG_LIBS=`"$PKG_CONFIG" --libs "fontconfig >= 2.2.0" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -11928,7 +12258,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - FONTCONFIG_PKG_ERRORS=`($PKG_CONFIG --print-errors "fontconfig >= 2.2.0") 2>&1` + FONTCONFIG_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "fontconfig >= 2.2.0") 2>&1` fi @@ -11961,13 +12291,13 @@ $as_echo "no" >&6; } HAVE_XFT=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xft >= 0.13.0" >&5 $as_echo_n "checking for xft >= 0.13.0... " >&6; } - if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5 && - XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0" 2>&5` && - XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0" 2>&5`; then + if "$PKG_CONFIG" --exists "xft >= 0.13.0" 2>&5 && + XFT_CFLAGS=`"$PKG_CONFIG" --cflags "xft >= 0.13.0" 2>&5` && + XFT_LIBS=`"$PKG_CONFIG" --libs "xft >= 0.13.0" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -11987,7 +12317,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - XFT_PKG_ERRORS=`($PKG_CONFIG --print-errors "xft >= 0.13.0") 2>&1` + XFT_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "xft >= 0.13.0") 2>&1` fi @@ -12129,13 +12459,13 @@ $as_echo "#define HAVE_XFT 1" >>confdefs.h HAVE_FREETYPE=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5 $as_echo_n "checking for freetype2... " >&6; } - if $PKG_CONFIG --exists "freetype2" 2>&5 && - FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>&5` && - FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2" 2>&5`; then + if "$PKG_CONFIG" --exists "freetype2" 2>&5 && + FREETYPE_CFLAGS=`"$PKG_CONFIG" --cflags "freetype2" 2>&5` && + FREETYPE_LIBS=`"$PKG_CONFIG" --libs "freetype2" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -12155,7 +12485,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - FREETYPE_PKG_ERRORS=`($PKG_CONFIG --print-errors "freetype2") 2>&1` + FREETYPE_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "freetype2") 2>&1` fi @@ -12190,13 +12520,13 @@ $as_echo "#define HAVE_FREETYPE 1" >>confdefs.h HAVE_LIBOTF=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotf" >&5 $as_echo_n "checking for libotf... " >&6; } - if $PKG_CONFIG --exists "libotf" 2>&5 && - LIBOTF_CFLAGS=`$PKG_CONFIG --cflags "libotf" 2>&5` && - LIBOTF_LIBS=`$PKG_CONFIG --libs "libotf" 2>&5`; then + if "$PKG_CONFIG" --exists "libotf" 2>&5 && + LIBOTF_CFLAGS=`"$PKG_CONFIG" --cflags "libotf" 2>&5` && + LIBOTF_LIBS=`"$PKG_CONFIG" --libs "libotf" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -12216,7 +12546,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - LIBOTF_PKG_ERRORS=`($PKG_CONFIG --print-errors "libotf") 2>&1` + LIBOTF_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "libotf") 2>&1` fi @@ -12299,13 +12629,13 @@ $as_echo "#define HAVE_OTF_GET_VARIATION_GLYPHS 1" >>confdefs.h HAVE_M17N_FLT=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m17n-flt" >&5 $as_echo_n "checking for m17n-flt... " >&6; } - if $PKG_CONFIG --exists "m17n-flt" 2>&5 && - M17N_FLT_CFLAGS=`$PKG_CONFIG --cflags "m17n-flt" 2>&5` && - M17N_FLT_LIBS=`$PKG_CONFIG --libs "m17n-flt" 2>&5`; then + if "$PKG_CONFIG" --exists "m17n-flt" 2>&5 && + M17N_FLT_CFLAGS=`"$PKG_CONFIG" --cflags "m17n-flt" 2>&5` && + M17N_FLT_LIBS=`"$PKG_CONFIG" --libs "m17n-flt" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -12325,7 +12655,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - M17N_FLT_PKG_ERRORS=`($PKG_CONFIG --print-errors "m17n-flt") 2>&1` + M17N_FLT_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "m17n-flt") 2>&1` fi @@ -13087,13 +13417,13 @@ if test "${with_xml2}" != "no"; then HAVE_LIBXML2=no else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 > 2.6.17" >&5 $as_echo_n "checking for libxml-2.0 > 2.6.17... " >&6; } - if $PKG_CONFIG --exists "libxml-2.0 > 2.6.17" 2>&5 && - LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 > 2.6.17" 2>&5` && - LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 > 2.6.17" 2>&5`; then + if "$PKG_CONFIG" --exists "libxml-2.0 > 2.6.17" 2>&5 && + LIBXML2_CFLAGS=`"$PKG_CONFIG" --cflags "libxml-2.0 > 2.6.17" 2>&5` && + LIBXML2_LIBS=`"$PKG_CONFIG" --libs "libxml-2.0 > 2.6.17" 2>&5`; then edit_cflags=" s,///*,/,g s/^/ / @@ -13113,7 +13443,7 @@ $as_echo "no" >&6; } ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - LIBXML2_PKG_ERRORS=`($PKG_CONFIG --print-errors "libxml-2.0 > 2.6.17") 2>&1` + LIBXML2_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "libxml-2.0 > 2.6.17") 2>&1` fi @@ -13477,7 +13807,7 @@ select getpagesize setlocale \ utimes getrlimit setrlimit shutdown getaddrinfo \ strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ -gai_strerror mkstemp getline getdelim fsync sync \ +gai_strerror mkstemp getline getdelim sync \ difftime posix_memalign \ getpwent endpwent getgrent endgrent \ touchlock \ @@ -15300,7 +15630,7 @@ $as_echo "#define UNIX98_PTYS 1" >>confdefs.h $as_echo "#define FIRST_PTY_LETTER 'q'" >>confdefs.h - $as_echo "#define PTY_OPEN { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }" >>confdefs.h + $as_echo "#define PTY_OPEN { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }" >>confdefs.h $as_echo "#define PTY_NAME_SPRINTF /**/" >>confdefs.h @@ -15309,12 +15639,12 @@ $as_echo "#define UNIX98_PTYS 1" >>confdefs.h ;; sol2* ) - $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h + $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h ;; unixware ) - $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal(\"could not grant slave pty\"); if (unlockpt(fd) == -1) fatal(\"could not unlock slave pty\"); if (!(ptyname = ptsname(fd))) fatal (\"could not enable slave pty\"); snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h + $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal(\"could not grant slave pty\"); if (unlockpt(fd) == -1) fatal(\"could not unlock slave pty\"); if (!(ptyname = ptsname(fd))) fatal (\"could not enable slave pty\"); snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h ;; esac @@ -15336,7 +15666,7 @@ esac case $opsys in - aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd ) + aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd | darwin ) $as_echo "#define SIGNALS_VIA_CHARACTERS 1" >>confdefs.h ;; @@ -15378,22 +15708,16 @@ esac - case $opsys in - gnu) - $as_echo "#define DATA_START ({ extern int data_start; (char *) &data_start; })" >>confdefs.h + aix*) + $as_echo "#define DATA_SEG_BITS 0x20000000" >>confdefs.h ;; - hpux*) - $as_echo "#define DATA_START 0x40000000" >>confdefs.h - - $as_echo "#define DATA_SEG_BITS 0x40000000" >>confdefs.h + $as_echo "#define DATA_SEG_BITS 0x40000000" >>confdefs.h ;; irix6-5) - $as_echo "#define DATA_START 0x10000000" >>confdefs.h - $as_echo "#define DATA_SEG_BITS 0x10000000" >>confdefs.h ;; @@ -15402,7 +15726,6 @@ esac - case $opsys in darwin) $as_echo "#define TAB3 OXTABS" >>confdefs.h ;; @@ -15416,27 +15739,6 @@ $as_echo "#define TABDLY OXTABS" >>confdefs.h ;; gnu-linux | gnu-kfreebsd ) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifndef __i386__ -# error "not i386" -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - $as_echo "#define ULIMIT_BREAK_VALUE (32*1024*1024)" >>confdefs.h - -fi -rm -f conftest.err conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15465,25 +15767,13 @@ rm -f conftest.err conftest.$ac_ext $as_echo "#define RUN_TIME_REMAP 1" >>confdefs.h ;; - - irix6-5) - $as_echo "#define ULIMIT_BREAK_VALUE 0x14000000" >>confdefs.h - - ;; esac - - case $opsys in - aix4-2 | hpux* | unixware) - $as_echo "#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE" >>confdefs.h - - ;; - gnu-linux | gnu-kfreebsd ) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15508,9 +15798,6 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : $as_echo "#define GC_SETJMP_WORKS 1" >>confdefs.h -else - $as_echo "#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE" >>confdefs.h - fi rm -f conftest.err conftest.$ac_ext ;; @@ -15622,8 +15909,6 @@ esac - - case $opsys in aix4-2) $as_echo "#define USG /**/" >>confdefs.h @@ -15662,50 +15947,11 @@ $as_echo "#define CYGWIN 1" >>confdefs.h ;; darwin) - $as_echo "#define BSD4_2 /**/" >>confdefs.h - - $as_echo "#define BSD_SYSTEM /**/" >>confdefs.h - $as_echo "#define DARWIN_OS /**/" >>confdefs.h ;; - freebsd) - $as_echo "#define BSD4_2 /**/" >>confdefs.h - - -$as_echo "#define BSD_SYSTEM_AHB 1" >>confdefs.h - - ;; - - gnu | netbsd | openbsd ) - $as_echo "#define BSD4_2 /**/" >>confdefs.h - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifndef BSD_SYSTEM -# error "BSD_SYSTEM not defined" -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - $as_echo "#define BSD_SYSTEM 43" >>confdefs.h - -fi -rm -f conftest.err conftest.$ac_ext - ;; - gnu-linux | gnu-kfreebsd ) $as_echo "#define USG /**/" >>confdefs.h @@ -15878,7 +16124,7 @@ fi version=$PACKAGE_VERSION -copyright="Copyright (C) 2012 Free Software Foundation, Inc." +copyright="Copyright (C) 2013 Free Software Foundation, Inc." cat >>confdefs.h <<_ACEOF #define COPYRIGHT "$copyright" @@ -15942,9 +16188,10 @@ cat >>confdefs.h <<_ACEOF #define EMACS_CONFIGURATION "${canonical}" _ACEOF +emacs_config_options=`echo "$emacs_config_options " | sed -e 's/--no-create //' -e 's/--no-recursion //' -e 's/ *$//' -e "s/\"/'/g"` cat >>confdefs.h <<_ACEOF -#define EMACS_CONFIG_OPTIONS "${ac_configure_args}" +#define EMACS_CONFIG_OPTIONS "${emacs_config_options}" _ACEOF @@ -16549,92 +16796,6 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if test "${ac_cv_c_inline+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strtold conforms to C99" >&5 -$as_echo_n "checking whether strtold conforms to C99... " >&6; } -if test "${gl_cv_func_c99_strtold+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* On HP-UX before 11.23, strtold returns a struct instead of - long double. Reject implementations like that, by requiring - compatibility with the C99 prototype. */ - #include - static long double (*p) (char const *, char **) = strtold; - static long double - test (char const *nptr, char **endptr) - { - long double r; - r = strtold (nptr, endptr); - return r; - } -int -main () -{ -return test ("1.0", NULL) != 1 || p ("1.0", NULL) != 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_func_c99_strtold=yes -else - gl_cv_func_c99_strtold=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_c99_strtold" >&5 -$as_echo "$gl_cv_func_c99_strtold" >&6; } - if test $gl_cv_func_c99_strtold = yes; then - -$as_echo "#define HAVE_C99_STRTOLD 1" >>confdefs.h - - fi - GNULIB_CHDIR=0; GNULIB_CHOWN=0; @@ -16759,75 +16920,27 @@ $as_echo "#define HAVE_C99_STRTOLD 1" >>confdefs.h - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 -$as_echo_n "checking if environ is properly declared... " >&6; } - if test "${gt_cv_var_environ_declaration+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if HAVE_UNISTD_H - #include - #endif - /* mingw, BeOS, Haiku declare environ in , not in . */ - #include - - extern struct { int foo; } environ; -int -main () -{ -environ.foo = 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_var_environ_declaration=no -else - gt_cv_var_environ_declaration=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 -$as_echo "$gt_cv_var_environ_declaration" >&6; } - if test $gt_cv_var_environ_declaration = yes; then - -$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h - - fi - - - if test $gt_cv_var_environ_declaration != yes; then - HAVE_DECL_ENVIRON=0 - fi - - - - - - - - - - - GNULIB_FCNTL=0; - GNULIB_NONBLOCKING=0; - GNULIB_OPEN=0; - GNULIB_OPENAT=0; - HAVE_FCNTL=1; - HAVE_OPENAT=1; - REPLACE_FCNTL=0; - REPLACE_OPEN=0; - REPLACE_OPENAT=0; - + GNULIB_OPENDIR=0; + GNULIB_READDIR=0; + GNULIB_REWINDDIR=0; + GNULIB_CLOSEDIR=0; + GNULIB_DIRFD=0; + GNULIB_FDOPENDIR=0; + GNULIB_SCANDIR=0; + GNULIB_ALPHASORT=0; + HAVE_OPENDIR=1; + HAVE_READDIR=1; + HAVE_REWINDDIR=1; + HAVE_CLOSEDIR=1; + HAVE_DECL_DIRFD=1; + HAVE_DECL_FDOPENDIR=1; + HAVE_FDOPENDIR=1; + HAVE_SCANDIR=1; + HAVE_ALPHASORT=1; + REPLACE_OPENDIR=0; + REPLACE_CLOSEDIR=0; + REPLACE_DIRFD=0; + REPLACE_FDOPENDIR=0; @@ -16943,6 +17056,122 @@ $as_echo "$gl_cv_pragma_columns" >&6; } fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strtold conforms to C99" >&5 +$as_echo_n "checking whether strtold conforms to C99... " >&6; } +if test "${gl_cv_func_c99_strtold+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* On HP-UX before 11.23, strtold returns a struct instead of + long double. Reject implementations like that, by requiring + compatibility with the C99 prototype. */ + #include + static long double (*p) (char const *, char **) = strtold; + static long double + test (char const *nptr, char **endptr) + { + long double r; + r = strtold (nptr, endptr); + return r; + } +int +main () +{ +return test ("1.0", NULL) != 1 || p ("1.0", NULL) != 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_c99_strtold=yes +else + gl_cv_func_c99_strtold=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_c99_strtold" >&5 +$as_echo "$gl_cv_func_c99_strtold" >&6; } + if test $gl_cv_func_c99_strtold = yes; then + +$as_echo "#define HAVE_C99_STRTOLD 1" >>confdefs.h + + fi + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 +$as_echo_n "checking if environ is properly declared... " >&6; } + if test "${gt_cv_var_environ_declaration+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if HAVE_UNISTD_H + #include + #endif + /* mingw, BeOS, Haiku declare environ in , not in . */ + #include + + extern struct { int foo; } environ; +int +main () +{ +environ.foo = 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gt_cv_var_environ_declaration=no +else + gt_cv_var_environ_declaration=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 +$as_echo "$gt_cv_var_environ_declaration" >&6; } + if test $gt_cv_var_environ_declaration = yes; then + +$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h + + fi + + + if test $gt_cv_var_environ_declaration != yes; then + HAVE_DECL_ENVIRON=0 + fi + + + + + + + + + + GNULIB_FCNTL=0; + GNULIB_NONBLOCKING=0; + GNULIB_OPEN=0; + GNULIB_OPENAT=0; + HAVE_FCNTL=1; + HAVE_OPENAT=1; + REPLACE_FCNTL=0; + REPLACE_OPEN=0; + REPLACE_OPENAT=0; + + ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = x""yes; then : @@ -16954,6 +17183,19 @@ _ACEOF fi +ac_fn_c_check_decl "$LINENO" "fdatasync" "ac_cv_have_decl_fdatasync" "$ac_includes_default" +if test "x$ac_cv_have_decl_fdatasync" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FDATASYNC $ac_have_decl +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_dm_mode in struct stat" >&5 $as_echo_n "checking for st_dm_mode in struct stat... " >&6; } if test "${ac_cv_struct_st_dm_mode+set}" = set; then : @@ -17005,6 +17247,108 @@ _ACEOF + GNULIB_FCHMODAT=0; + GNULIB_FSTAT=0; + GNULIB_FSTATAT=0; + GNULIB_FUTIMENS=0; + GNULIB_LCHMOD=0; + GNULIB_LSTAT=0; + GNULIB_MKDIRAT=0; + GNULIB_MKFIFO=0; + GNULIB_MKFIFOAT=0; + GNULIB_MKNOD=0; + GNULIB_MKNODAT=0; + GNULIB_STAT=0; + GNULIB_UTIMENSAT=0; + HAVE_FCHMODAT=1; + HAVE_FSTATAT=1; + HAVE_FUTIMENS=1; + HAVE_LCHMOD=1; + HAVE_LSTAT=1; + HAVE_MKDIRAT=1; + HAVE_MKFIFO=1; + HAVE_MKFIFOAT=1; + HAVE_MKNOD=1; + HAVE_MKNODAT=1; + HAVE_UTIMENSAT=1; + REPLACE_FSTAT=0; + REPLACE_FSTATAT=0; + REPLACE_FUTIMENS=0; + REPLACE_LSTAT=0; + REPLACE_MKDIR=0; + REPLACE_MKFIFO=0; + REPLACE_MKNOD=0; + REPLACE_STAT=0; + REPLACE_UTIMENSAT=0; + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } +if test "${gl_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftest.sym conftest.file + echo >conftest.file + if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + /* Linux will dereference the symlink and fail, as required by + POSIX. That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_lstat_dereferences_slashed_symlink=yes +else + gl_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + else + # If the 'ln -s' command failed, then we probably don't even + # have an lstat function. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" + fi + rm -f conftest.sym conftest.file + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 +$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *yes) + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + ;; + esac + + + + + + GNULIB__EXIT=0; GNULIB_ATOLL=0; GNULIB_CALLOC_POSIX=0; @@ -17028,6 +17372,7 @@ _ACEOF GNULIB_REALLOC_POSIX=0; GNULIB_REALPATH=0; GNULIB_RPMATCH=0; + GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; GNULIB_STRTOLL=0; @@ -17055,6 +17400,7 @@ _ACEOF HAVE_RANDOM_R=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; + HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_STRTOD=1; @@ -19002,105 +19348,93 @@ $as_echo "$gl_cv_type_off_t_64" >&6; } esac - GNULIB_FCHMODAT=0; - GNULIB_FSTAT=0; - GNULIB_FSTATAT=0; - GNULIB_FUTIMENS=0; - GNULIB_LCHMOD=0; - GNULIB_LSTAT=0; - GNULIB_MKDIRAT=0; - GNULIB_MKFIFO=0; - GNULIB_MKFIFOAT=0; - GNULIB_MKNOD=0; - GNULIB_MKNODAT=0; - GNULIB_STAT=0; - GNULIB_UTIMENSAT=0; - HAVE_FCHMODAT=1; - HAVE_FSTATAT=1; - HAVE_FUTIMENS=1; - HAVE_LCHMOD=1; - HAVE_LSTAT=1; - HAVE_MKDIRAT=1; - HAVE_MKFIFO=1; - HAVE_MKFIFOAT=1; - HAVE_MKNOD=1; - HAVE_MKNODAT=1; - HAVE_UTIMENSAT=1; - REPLACE_FSTAT=0; - REPLACE_FSTATAT=0; - REPLACE_FUTIMENS=0; - REPLACE_LSTAT=0; - REPLACE_MKDIR=0; - REPLACE_MKFIFO=0; - REPLACE_MKNOD=0; - REPLACE_STAT=0; - REPLACE_UTIMENSAT=0; + GNULIB_FFSL=0; + GNULIB_FFSLL=0; + GNULIB_MEMCHR=0; + GNULIB_MEMMEM=0; + GNULIB_MEMPCPY=0; + GNULIB_MEMRCHR=0; + GNULIB_RAWMEMCHR=0; + GNULIB_STPCPY=0; + GNULIB_STPNCPY=0; + GNULIB_STRCHRNUL=0; + GNULIB_STRDUP=0; + GNULIB_STRNCAT=0; + GNULIB_STRNDUP=0; + GNULIB_STRNLEN=0; + GNULIB_STRPBRK=0; + GNULIB_STRSEP=0; + GNULIB_STRSTR=0; + GNULIB_STRCASESTR=0; + GNULIB_STRTOK_R=0; + GNULIB_MBSLEN=0; + GNULIB_MBSNLEN=0; + GNULIB_MBSCHR=0; + GNULIB_MBSRCHR=0; + GNULIB_MBSSTR=0; + GNULIB_MBSCASECMP=0; + GNULIB_MBSNCASECMP=0; + GNULIB_MBSPCASECMP=0; + GNULIB_MBSCASESTR=0; + GNULIB_MBSCSPN=0; + GNULIB_MBSPBRK=0; + GNULIB_MBSSPN=0; + GNULIB_MBSSEP=0; + GNULIB_MBSTOK_R=0; + GNULIB_STRERROR=0; + GNULIB_STRERROR_R=0; + GNULIB_STRSIGNAL=0; + GNULIB_STRVERSCMP=0; + HAVE_MBSLEN=0; + HAVE_FFSL=1; + HAVE_FFSLL=1; + HAVE_MEMCHR=1; + HAVE_DECL_MEMMEM=1; + HAVE_MEMPCPY=1; + HAVE_DECL_MEMRCHR=1; + HAVE_RAWMEMCHR=1; + HAVE_STPCPY=1; + HAVE_STPNCPY=1; + HAVE_STRCHRNUL=1; + HAVE_DECL_STRDUP=1; + HAVE_DECL_STRNDUP=1; + HAVE_DECL_STRNLEN=1; + HAVE_STRPBRK=1; + HAVE_STRSEP=1; + HAVE_STRCASESTR=1; + HAVE_DECL_STRTOK_R=1; + HAVE_DECL_STRERROR_R=1; + HAVE_DECL_STRSIGNAL=1; + HAVE_STRVERSCMP=1; + REPLACE_MEMCHR=0; + REPLACE_MEMMEM=0; + REPLACE_STPNCPY=0; + REPLACE_STRDUP=0; + REPLACE_STRSTR=0; + REPLACE_STRCASESTR=0; + REPLACE_STRCHRNUL=0; + REPLACE_STRERROR=0; + REPLACE_STRERROR_R=0; + REPLACE_STRNCAT=0; + REPLACE_STRNDUP=0; + REPLACE_STRNLEN=0; + REPLACE_STRSIGNAL=0; + REPLACE_STRTOK_R=0; + UNDEFINE_STRTOK_R=0; - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 -$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } -if test "${gl_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then : - $as_echo_n "(cached) " >&6 +ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" +if test "x$ac_cv_have_decl_memrchr" = x""yes; then : + ac_have_decl=1 else - rm -f conftest.sym conftest.file - echo >conftest.file - if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then - if test "$cross_compiling" = yes; then : - case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; - esac - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -struct stat sbuf; - /* Linux will dereference the symlink and fail, as required by - POSIX. That is better in the sense that it means we will not - have to compile and use the lstat wrapper. */ - return lstat ("conftest.sym/", &sbuf) == 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gl_cv_func_lstat_dereferences_slashed_symlink=yes -else - gl_cv_func_lstat_dereferences_slashed_symlink=no + ac_have_decl=0 fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - else - # If the 'ln -s' command failed, then we probably don't even - # have an lstat function. - gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" - fi - rm -f conftest.sym conftest.file - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 -$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } - case "$gl_cv_func_lstat_dereferences_slashed_symlink" in - *yes) cat >>confdefs.h <<_ACEOF -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +#define HAVE_DECL_MEMRCHR $ac_have_decl _ACEOF - ;; - esac - GNULIB_MKTIME=0; GNULIB_NANOSLEEP=0; @@ -19116,7 +19450,16 @@ _ACEOF REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; +ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" +if test "x$ac_cv_have_decl_alarm" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ALARM $ac_have_decl +_ACEOF GNULIB_PSELECT=0; @@ -19728,6 +20071,79 @@ fi + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_string_h='<'string.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if test "${gl_cv_next_string_h+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'string.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 +$as_echo "$gl_cv_next_string_h" >&6; } + fi + NEXT_STRING_H=$gl_cv_next_string_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'string.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_string_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive + + + + + + + + + ac_fn_c_check_decl "$LINENO" "strtoimax" "ac_cv_have_decl_strtoimax" "$ac_includes_default" if test "x$ac_cv_have_decl_strtoimax" = x""yes; then : ac_have_decl=1 @@ -19977,6 +20393,17 @@ $as_echo "$gl_cv_next_time_h" >&6; } +ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default" +if test "x$ac_cv_have_decl_unsetenv" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UNSETENV $ac_have_decl +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5 $as_echo_n "checking whether the utimes function works... " >&6; } @@ -20408,12 +20835,10 @@ _ACEOF - : - : @@ -20430,6 +20855,90 @@ _ACEOF + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_dirent_h='<'dirent.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +$as_echo_n "checking absolute name of ... " >&6; } +if test "${gl_cv_next_dirent_h+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_dirent_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'dirent.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_dirent_h='<'dirent.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5 +$as_echo "$gl_cv_next_dirent_h" >&6; } + fi + NEXT_DIRENT_H=$gl_cv_next_dirent_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'dirent.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_dirent_h + fi + NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_dirent_h = yes; then + HAVE_DIRENT_H=1 + else + HAVE_DIRENT_H=0 + fi + + + + + + + + + + $as_echo "#define HAVE_DUP2 1" >>confdefs.h @@ -20481,6 +20990,9 @@ int result = 0; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, 1000000) == -1 && errno != EBADF) result |= 16; + /* Flush out a cygwin core dump. */ + if (dup2 (2, -1) != -1 || errno != EBADF) + result |= 32; return result; ; @@ -20774,6 +21286,233 @@ $as_echo "$gl_cv_next_fcntl_h" >&6; } + LIB_FDATASYNC= + + + if test $ac_cv_have_decl_fdatasync = no; then + HAVE_DECL_FDATASYNC=0 + for ac_func in fdatasync +do : + ac_fn_c_check_func "$LINENO" "fdatasync" "ac_cv_func_fdatasync" +if test "x$ac_cv_func_fdatasync" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FDATASYNC 1 +_ACEOF + +fi +done + + if test $ac_cv_func_fdatasync = no; then + HAVE_FDATASYNC=0 + fi + else + gl_saved_libs=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fdatasync" >&5 +$as_echo_n "checking for library containing fdatasync... " >&6; } +if test "${ac_cv_search_fdatasync+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fdatasync (); +int +main () +{ +return fdatasync (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt posix4; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fdatasync=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_fdatasync+set}" = set; then : + break +fi +done +if test "${ac_cv_search_fdatasync+set}" = set; then : + +else + ac_cv_search_fdatasync=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fdatasync" >&5 +$as_echo "$ac_cv_search_fdatasync" >&6; } +ac_res=$ac_cv_search_fdatasync +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + test "$ac_cv_search_fdatasync" = "none required" || + LIB_FDATASYNC=$ac_cv_search_fdatasync +fi + + LIBS=$gl_saved_libs + fi + + if test $HAVE_FDATASYNC = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fdatasync.$ac_objext" + + fi + + + + + + GNULIB_FDATASYNC=1 + + + + + + + + + + + ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" " +#include + +" +if test "x$ac_cv_have_decl_fdopendir" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FDOPENDIR $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +else + HAVE_DECL_FDOPENDIR=0 +fi + + + if test $ac_cv_func_fdopendir = no; then + HAVE_FDOPENDIR=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5 +$as_echo_n "checking whether fdopendir works... " >&6; } +if test "${gl_cv_func_fdopendir_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_fdopendir_works="guessing no" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if !HAVE_DECL_FDOPENDIR +extern +# ifdef __cplusplus +"C" +# endif +DIR *fdopendir (int); +#endif + +int +main () +{ +int result = 0; + int fd = open ("conftest.c", O_RDONLY); + if (fd < 0) result |= 1; + if (fdopendir (fd)) result |= 2; + if (close (fd)) result |= 4; + return result; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fdopendir_works=yes +else + gl_cv_func_fdopendir_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopendir_works" >&5 +$as_echo "$gl_cv_func_fdopendir_works" >&6; } + case "$gl_cv_func_fdopendir_works" in + *yes) ;; + *) + REPLACE_FDOPENDIR=1 + ;; + esac + fi + + if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext" + + fi + + + + + + GNULIB_FDOPENDIR=1 + + + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_FDOPENDIR 1 +_ACEOF + + + + + + @@ -20890,6 +21629,122 @@ _ACEOF fi + + + + + if test $ac_cv_func_fstatat = no; then + HAVE_FSTATAT=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5 +$as_echo_n "checking whether fstatat (..., 0) works... " >&6; } +if test "${gl_cv_func_fstatat_zero_flag+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix*) gl_cv_func_fstatat_zero_flag="guessing no";; + *) gl_cv_func_fstatat_zero_flag="guessing yes";; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int + main (void) + { + struct stat a; + return fstatat (AT_FDCWD, ".", &a, 0) != 0; + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_fstatat_zero_flag=yes +else + gl_cv_func_fstatat_zero_flag=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5 +$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; } + + case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in + *yes+*yes) ;; + *) REPLACE_FSTATAT=1 + case $gl_cv_func_fstatat_zero_flag in + *yes) + +$as_echo "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h + + ;; + esac + ;; + esac + fi + + if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext" + + fi + + + + + + GNULIB_FSTATAT=1 + + + + + + + + + if test $ac_cv_func_fsync = no; then + HAVE_FSYNC=0 + fi + + if test $HAVE_FSYNC = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fsync.$ac_objext" + + : + fi + + + + + + GNULIB_FSYNC=1 + + + + + + + # Persuade glibc to declare getloadavg(). @@ -21736,10 +22591,7 @@ done gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext" - - - : - + : fi @@ -21757,6 +22609,51 @@ done + if test $ac_cv_have_decl_memrchr = no; then + HAVE_DECL_MEMRCHR=0 + fi + + for ac_func in memrchr +do : + ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" +if test "x$ac_cv_func_memrchr" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMRCHR 1 +_ACEOF + +fi +done + + + if test $ac_cv_func_memrchr = no; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memrchr.$ac_objext" + + : + fi + + + + + + GNULIB_MEMRCHR=1 + + + + + + + + + + if test $APPLE_UNIVERSAL_BUILD = 1; then # A universal build on Apple Mac OS X platforms. @@ -21783,8 +22680,8 @@ else # include #endif -#ifndef HAVE_ALARM -# define alarm(X) /* empty */ +#if HAVE_DECL_ALARM +# include #endif /* Work around redefinition to rpl_putenv by other config tests. */ @@ -21920,10 +22817,13 @@ main () int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; int time_t_signed = ! ((time_t) 0 < (time_t) -1); +#if HAVE_DECL_ALARM /* This test makes some buggy mktime implementations loop. Give up after 60 seconds; a mktime slower than that isn't worth using anyway. */ + signal (SIGALRM, SIG_DFL); alarm (60); +#endif time_t_max = (! time_t_signed ? (time_t) -1 @@ -22430,6 +23330,103 @@ $as_echo "#define HAVE_PTHREAD_SIGMASK 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5 +$as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; } +if test "${gl_cv_func_svid_putenv+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_svid_putenv="guessing no" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Put it in env. */ + if (putenv ("CONFTEST_putenv=val")) + return 1; + + /* Try to remove it. */ + if (putenv ("CONFTEST_putenv")) + return 2; + + /* Make sure it was deleted. */ + if (getenv ("CONFTEST_putenv") != 0) + return 3; + + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_svid_putenv=yes +else + gl_cv_func_svid_putenv=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5 +$as_echo "$gl_cv_func_svid_putenv" >&6; } + case "$gl_cv_func_svid_putenv" in + *yes) ;; + *) + REPLACE_PUTENV=1 + ;; + esac + + if test $REPLACE_PUTENV = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS putenv.$ac_objext" + + + ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default" +if test "x$ac_cv_have_decl__putenv" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__PUTENV $ac_have_decl +_ACEOF + + + fi + + + + + + GNULIB_PUTENV=1 + + + + + + + if test $ac_cv_func_readlink = no; then HAVE_READLINK=0 @@ -22549,6 +23546,65 @@ $as_echo "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h + if test $ac_cv_func_readlinkat = no; then + HAVE_READLINKAT=0 + fi + + if test $HAVE_READLINKAT = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS readlinkat.$ac_objext" + + fi + + + + + + GNULIB_READLINKAT=1 + + + + + + + for ac_func in sig2str +do : + ac_fn_c_check_func "$LINENO" "sig2str" "ac_cv_func_sig2str" +if test "x$ac_cv_func_sig2str" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SIG2STR 1 +_ACEOF + +fi +done + + + if test $ac_cv_func_sig2str = no; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS sig2str.$ac_objext" + + + : + + fi + + + + @@ -23282,7 +24338,6 @@ $as_echo "$gl_cv_next_stddef_h" >&6; } - if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else @@ -23472,6 +24527,9 @@ $as_echo "#define my_strftime nstrftime" >>confdefs.h + + + if test "$ac_cv_have_decl_strtoimax" != yes; then HAVE_DECL_STRTOIMAX=0 fi @@ -23924,8 +24982,6 @@ done - - if test $gl_cv_have_include_next = yes; then @@ -24231,7 +25287,6 @@ done - if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else @@ -24313,6 +25368,160 @@ $as_echo "$gl_cv_next_unistd_h" >&6; } + if test $ac_cv_have_decl_unsetenv = no; then + HAVE_DECL_UNSETENV=0 + fi + for ac_func in unsetenv +do : + ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv" +if test "x$ac_cv_func_unsetenv" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UNSETENV 1 +_ACEOF + +fi +done + + if test $ac_cv_func_unsetenv = no; then + HAVE_UNSETENV=0 + else + HAVE_UNSETENV=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5 +$as_echo_n "checking for unsetenv() return type... " >&6; } +if test "${gt_cv_func_unsetenv_ret+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#undef _BSD +#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ +#include +extern +#ifdef __cplusplus +"C" +#endif +int unsetenv (const char *name); + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gt_cv_func_unsetenv_ret='int' +else + gt_cv_func_unsetenv_ret='void' +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5 +$as_echo "$gt_cv_func_unsetenv_ret" >&6; } + if test $gt_cv_func_unsetenv_ret = 'void'; then + +$as_echo "#define VOID_UNSETENV 1" >>confdefs.h + + REPLACE_UNSETENV=1 + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5 +$as_echo_n "checking whether unsetenv obeys POSIX... " >&6; } +if test "${gl_cv_func_unsetenv_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_unsetenv_works="guessing no" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + extern char **environ; + +int +main () +{ + + char entry1[] = "a=1"; + char entry2[] = "b=2"; + char *env[] = { entry1, entry2, NULL }; + if (putenv ((char *) "a=1")) return 1; + if (putenv (entry2)) return 2; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 3; + if (!unsetenv ("") || errno != EINVAL) return 4; + entry2[0] = 'b'; + environ = env; + if (!getenv ("a")) return 5; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 6; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_unsetenv_works=yes +else + gl_cv_func_unsetenv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5 +$as_echo "$gl_cv_func_unsetenv_works" >&6; } + case "$gl_cv_func_unsetenv_works" in + *yes) ;; + *) + REPLACE_UNSETENV=1 + ;; + esac + fi + + if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext" + + + + + + fi + + + + + + GNULIB_UNSETENV=1 + + + + + + + + @@ -24373,11 +25582,13 @@ $as_echo "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h esac fi + gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=false gl_gnulib_enabled_dosname=false gl_gnulib_enabled_euidaccess=false gl_gnulib_enabled_getgroups=false gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1=false + gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=false gl_gnulib_enabled_pathmax=false gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=false gl_gnulib_enabled_stat=false @@ -24385,6 +25596,22 @@ $as_echo "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h gl_gnulib_enabled_strtoull=false gl_gnulib_enabled_verify=false gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false + func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b () + { + if ! $gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext" + + gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=true + fi + } func_gl_gnulib_m4code_dosname () { if ! $gl_gnulib_enabled_dosname; then @@ -24910,6 +26137,12 @@ fi fi fi } + func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 () + { + if ! $gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7; then + gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=true + fi + } func_gl_gnulib_m4code_pathmax () { if ! $gl_gnulib_enabled_pathmax; then @@ -25043,10 +26276,7 @@ $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext" - - - : - + : fi @@ -25187,12 +26417,30 @@ done gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=true fi } + if test $HAVE_FACCESSAT = 0; then + func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b + fi if test $HAVE_FACCESSAT = 0; then func_gl_gnulib_m4code_dosname fi if test $HAVE_FACCESSAT = 0; then func_gl_gnulib_m4code_euidaccess fi + if test $HAVE_FACCESSAT = 0; then + func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 + fi + if test $HAVE_FDOPENDIR = 0; then + func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b + fi + if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then + func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b + fi + if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then + func_gl_gnulib_m4code_dosname + fi + if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then + func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 + fi if test $REPLACE_GETOPT = 1; then func_gl_gnulib_m4code_be453cec5eecf5731a274f2de7f2db36 fi @@ -25205,6 +26453,15 @@ done if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then func_gl_gnulib_m4code_stat fi + if test $HAVE_READLINKAT = 0; then + func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b + fi + if test $HAVE_READLINKAT = 0; then + func_gl_gnulib_m4code_dosname + fi + if test $HAVE_READLINKAT = 0; then + func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 + fi if { test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes; then func_gl_gnulib_m4code_strtoll fi @@ -25218,6 +26475,14 @@ done func_gl_gnulib_m4code_verify fi + if $gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b; then + gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_TRUE= + gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_FALSE='#' +else + gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_TRUE='#' + gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_FALSE= +fi + if $gl_gnulib_enabled_dosname; then gl_GNULIB_ENABLED_dosname_TRUE= gl_GNULIB_ENABLED_dosname_FALSE='#' @@ -25258,6 +26523,14 @@ else gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1_FALSE= fi + if $gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7; then + gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_TRUE= + gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_FALSE='#' +else + gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_TRUE='#' + gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_FALSE= +fi + if $gl_gnulib_enabled_pathmax; then gl_GNULIB_ENABLED_pathmax_TRUE= gl_GNULIB_ENABLED_pathmax_FALSE='#' @@ -25375,15 +26648,8 @@ case "$opsys" in LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra" ## This is here because src/Makefile.in did some extra fiddling around - ## with LD_SWITCH_SYSTEM. The cpp logic was: - ## #ifndef LD_SWITCH_SYSTEM - ## #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF))) - ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to: - ## not using gcc, darwin. - ## Because this was done in src/Makefile.in, the resulting part of - ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link). - ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS, - ## rather than LD_SWITCH_SYSTEM. + ## with LD_SWITCH_SYSTEM. It seems cleaner to put this in + ## LD_SWITCH_SYSTEM_TEMACS instead, test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \ LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS" ;; @@ -25400,103 +26666,13 @@ case "$opsys" in *) LD_SWITCH_SYSTEM_TEMACS= ;; esac -if test "$NS_IMPL_GNUSTEP" = "yes"; then - LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread" -fi - - -LD_FIRSTFLAG= -ORDINARY_LINK= -case "$opsys" in - ## gnu: GNU needs its own crt0. - aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;; - - ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the - ## library search parth, i.e. it won't search /usr/lib for libc and - ## friends. Using -nostartfiles instead avoids this problem, and - ## will also work on earlier NetBSD releases. - netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;; - - ## powerpc*: NAKAJI Hiroyuki says - ## MkLinux/LinuxPPC needs this. - ## s390x-* only supports opsys = gnu-linux so it can be added here. - gnu-*) - case "$canonical" in - powerpc*|s390x-*) LD_FIRSTFLAG="-nostdlib" ;; - esac - ;; -esac - - -if test "x$ORDINARY_LINK" = "xyes"; then - - LD_FIRSTFLAG="" - -$as_echo "#define ORDINARY_LINK 1" >>confdefs.h - - -## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are: -## freebsd, gnu-* not on powerpc*|s390x*. -elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then - - ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure - ## places that are difficult to figure out at make time. Fortunately, - ## these same versions allow you to pass arbitrary flags on to the - ## linker, so there is no reason not to use it as a linker. - ## - ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from - ## searching for libraries in its internal directories, so we have to - ## ask GCC explicitly where to find libgcc.a (LIB_GCC below). - LD_FIRSTFLAG="-nostdlib" -fi - -## FIXME? What setting of EDIT_LDFLAGS should this have? -test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic" - - - - -## FIXME? The logic here is not precisely the same as that above. -## There is no check here for a pre-defined LD_FIRSTFLAG. -## Should we only be setting LIB_GCC if LD ~ -nostdlib? -LIB_GCC= -if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then - - case "$opsys" in - freebsd|netbsd|openbsd) LIB_GCC= ;; - - gnu-*) - ## armin76@gentoo.org reported that the lgcc_s flag is necessary to - ## build on ARM EABI under GNU/Linux. (Bug#5518) - case $host_cpu in - arm*) - LIB_GCC="-lgcc_s" - ;; - *) - ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then - ## immediately undefine it again and redefine it to empty. - ## Was the C_SWITCH_X_SITE part really necessary? -## LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name` - LIB_GCC= - ;; - esac - ;; - - ## Ask GCC where to find libgcc.a. - *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;; - esac -fi - ## Common for all window systems if test "$window_system" != "none"; then $as_echo "#define HAVE_WINDOW_SYSTEM 1" >>confdefs.h - -$as_echo "#define HAVE_MOUSE 1" >>confdefs.h - WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o" fi @@ -25615,7 +26791,7 @@ ac_config_files="$ac_config_files Makefile lib/Makefile lib-src/Makefile oldXMen opt_makefile=test/automated/Makefile -if test -f $srcdir/${opt_makefile}.in; then +if test -f "$srcdir/$opt_makefile.in"; then SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile" ac_config_files="$ac_config_files test/automated/Makefile" @@ -25624,7 +26800,7 @@ fi opt_makefile=admin/unidata/Makefile -if test -f $srcdir/${opt_makefile}.in; then +if test -f "$srcdir/$opt_makefile.in"; then SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile" ac_config_files="$ac_config_files admin/unidata/Makefile" @@ -25790,6 +26966,10 @@ if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FAL as_fn_error "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_TRUE}" && test -z "${gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b_FALSE}"; then + as_fn_error "conditional \"gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_dosname_TRUE}" && test -z "${gl_GNULIB_ENABLED_dosname_FALSE}"; then as_fn_error "conditional \"gl_GNULIB_ENABLED_dosname\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -25810,6 +26990,10 @@ if test -z "${gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1_TRUE}" && test as_fn_error "conditional \"gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_TRUE}" && test -z "${gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7_FALSE}"; then + as_fn_error "conditional \"gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_pathmax_TRUE}" && test -z "${gl_GNULIB_ENABLED_pathmax_FALSE}"; then as_fn_error "conditional \"gl_GNULIB_ENABLED_pathmax\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -27220,9 +28404,9 @@ echo creating src/epaths.h ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force ;; "gdbinit":C) -if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then +if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then echo creating src/.gdbinit - echo source $srcdir/src/.gdbinit > src/.gdbinit + echo "source $srcdir/src/.gdbinit" > src/.gdbinit fi ;; diff --git a/autogen/update_autogen b/autogen/update_autogen index 14a4119087e..264d8d83d6d 100755 --- a/autogen/update_autogen +++ b/autogen/update_autogen @@ -1,7 +1,7 @@ #!/bin/bash ### update_autogen - update the generated files in Emacs autogen/ directory -## Copyright (C) 2011-2012 Free Software Foundation, Inc. +## Copyright (C) 2011-2013 Free Software Foundation, Inc. ## Author: Glenn Morris diff --git a/build-aux/move-if-change b/build-aux/move-if-change index 8cae2b392c6..f45cbea3bf7 100755 --- a/build-aux/move-if-change +++ b/build-aux/move-if-change @@ -8,7 +8,7 @@ VERSION='2012-01-06 07:23'; # UTC # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. -# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 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 diff --git a/build-aux/snippet/arg-nonnull.h b/build-aux/snippet/arg-nonnull.h index 3a9dd2664ea..8ea2a4747e8 100644 --- a/build-aux/snippet/arg-nonnull.h +++ b/build-aux/snippet/arg-nonnull.h @@ -1,5 +1,5 @@ /* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2012 Free Software Foundation, Inc. + Copyright (C) 2009-2013 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 diff --git a/build-aux/snippet/c++defs.h b/build-aux/snippet/c++defs.h index 96da94b97b6..b35b933cd67 100644 --- a/build-aux/snippet/c++defs.h +++ b/build-aux/snippet/c++defs.h @@ -1,5 +1,5 @@ /* C++ compatible function declaration macros. - Copyright (C) 2010-2012 Free Software Foundation, Inc. + Copyright (C) 2010-2013 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 diff --git a/build-aux/snippet/warn-on-use.h b/build-aux/snippet/warn-on-use.h index d4cb94f3525..1736a1bd7a4 100644 --- a/build-aux/snippet/warn-on-use.h +++ b/build-aux/snippet/warn-on-use.h @@ -1,5 +1,5 @@ /* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2012 Free Software Foundation, Inc. + Copyright (C) 2010-2013 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 @@ -55,7 +55,7 @@ rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON - static inline char ***rpl_environ (void) { return &environ; } + static char ***rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) diff --git a/build-aux/update-subdirs b/build-aux/update-subdirs index e20e0da6e13..8fdf1609e6f 100755 --- a/build-aux/update-subdirs +++ b/build-aux/update-subdirs @@ -1,8 +1,8 @@ #!/bin/sh # Write into $1/subdirs.el a list of subdirs of directory $1. -# Copyright (C) 1994-1995, 1997, 1999, 2001-2012 -# Free Software Foundation, Inc. +# Copyright (C) 1994-1995, 1997, 1999, 2001-2013 Free Software +# Foundation, Inc. # This file is part of GNU Emacs. diff --git a/config.bat b/config.bat index 2637fe5e4ec..683bb7062cf 100644 --- a/config.bat +++ b/config.bat @@ -1,7 +1,7 @@ @echo off rem ---------------------------------------------------------------------- rem Configuration script for MSDOS -rem Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc. +rem Copyright (C) 1994-1999, 2001-2013 Free Software Foundation, Inc. rem This file is part of GNU Emacs. diff --git a/configure.ac b/configure.ac index c941fcb2122..e412dd342e0 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl autoconf dnl in the directory containing this script. dnl If you changed any AC_DEFINES, also run autoheader. dnl -dnl Copyright (C) 1994-1996, 1999-2012 Free Software Foundation, Inc. +dnl Copyright (C) 1994-1996, 1999-2013 Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl @@ -23,6 +23,21 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) AC_INIT(emacs, 24.3.50) + +dnl This is the documented way to record the args passed to configure, +dnl rather than $ac_configure_args. +emacs_config_options="$@" +## Add some environment variables, if they were passed via the environment +## rather than on the command-line. +for var in CFLAGS CPPFLAGS LDFLAGS; do + case "$emacs_config_options" in + *$var=*) continue ;; + esac + eval val="\$${var}" + test x"$val" = x && continue + emacs_config_options="${emacs_config_options}${emacs_config_options:+ }$var=\"$val\"" +done + AC_CONFIG_HEADER(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) AC_CONFIG_AUX_DIR(build-aux) @@ -130,7 +145,7 @@ OPTION_DEFAULT_ON([sound],[don't compile with sound support]) dnl FIXME currently it is not the last. dnl This should be the last --with option, because --with-x is -dnl added later on when we find the path of X, and it's best to +dnl added later on when we find the file name of X, and it's best to dnl keep them together visually. AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT], [use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, no)])], @@ -184,7 +199,9 @@ OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support]) OPTION_DEFAULT_ON([gconf],[don't compile with GConf support]) OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support]) OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support]) +OPTION_DEFAULT_ON([acl],[don't compile with ACL support]) OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support]) +OPTION_DEFAULT_ON([inotify],[don't compile with inotify (file-watch) support]) ## For the times when you want to build Emacs but don't have ## a suitable makeinfo, and can live without the manuals. @@ -205,20 +222,14 @@ fi AC_SUBST(GZIP_INFO) AC_ARG_WITH([pkg-config-prog],dnl -[AS_HELP_STRING([--with-pkg-config-prog=PATH], - [path to pkg-config for finding GTK and librsvg])]) +[AS_HELP_STRING([--with-pkg-config-prog=FILENAME], + [file name of pkg-config for finding GTK and librsvg])]) if test "X${with_pkg_config_prog}" != X; then if test "${with_pkg_config_prog}" != yes; then PKG_CONFIG="${with_pkg_config_prog}" fi fi -CRT_DIR= -AC_ARG_WITH([crt-dir],dnl -[AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc. -The default is /usr/lib, or /usr/lib64 on some platforms.])]) -CRT_DIR="${with_crt_dir}" - AC_ARG_WITH(gameuser,dnl [AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])]) test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \ @@ -226,7 +237,8 @@ test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \ test "X$gameuser" = X && gameuser=games AC_ARG_WITH([gnustep-conf],dnl -[AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])]) +[AS_HELP_STRING([--with-gnustep-conf=FILENAME], + [name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])]) test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \ GNUSTEP_CONFIG_FILE="${with_gnustep_conf}" test "X$GNUSTEP_CONFIG_FILE" = "X" && \ @@ -353,8 +365,13 @@ AC_ARG_ENABLE(autodepend, found])], [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes]) +AC_ARG_ENABLE(gtk-deprecation-warnings, +[AS_HELP_STRING([--enable-gtk-deprecation-warnings], + [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])], +[ac_enable_gtk_deprecation_warnings="${enableval}"],[]) + #### Make srcdir absolute, if it isn't already. It's important to -#### avoid running the path through pwd unnecessarily, since pwd can +#### avoid running the file name through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this #### so Emacs can find its files when run uninstalled. ## Make sure CDPATH doesn't affect cd (in case PWD is relative). @@ -364,17 +381,17 @@ case "${srcdir}" in . ) ## We may be able to use the $PWD environment variable to make this ## absolute. But sometimes PWD is inaccurate. - ## Note: we used to use ${PWD} at the end instead of `pwd`, + ## Note: we used to use $PWD at the end instead of `pwd`, ## but that tested only for a well-formed and valid PWD, ## it did not object when PWD was well-formed and valid but just wrong. - if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`" ; + if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`" ; then srcdir="$PWD" else - srcdir="`(cd ${srcdir}; pwd)`" + srcdir=`(cd "$srcdir"; pwd)` fi ;; - * ) srcdir="`(cd ${srcdir}; pwd)`" ;; + * ) srcdir=`(cd "$srcdir"; pwd)` ;; esac ### Canonicalize the configuration name. @@ -582,7 +599,8 @@ else test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS" fi -# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them. +# 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 threadlib module, as we do threads our own way. AC_DEFUN([gl_THREADLIB]) @@ -624,7 +642,7 @@ fi AC_ARG_ENABLE([gcc-warnings], [AS_HELP_STRING([--enable-gcc-warnings], - [turn on lots of GCC warnings. This is intended for + [turn on lots of GCC warnings/errors. This is intended for developers, and may generate false alarms when used with older or non-GNU development tools.])], [case $enableval in @@ -732,23 +750,12 @@ else # . nw="$nw -Wshadow" + # Emacs's use of alloca inhibits protecting the stack. + nw="$nw -Wstack-protector" + # The following line should be removable at some point. nw="$nw -Wsuggest-attribute=pure" - AC_MSG_CHECKING([whether to use -Wstack-protector]) - AC_PREPROC_IFELSE( - [AC_LANG_PROGRAM( - [[#if (1 <= __LONG_MAX__ >> 31 >> 31 \ - && 4 < __GNUC__ + (7 < __GNUC_MINOR__ + (2 <= __GNUC_PATCHLEVEL__))) - /* OK */ - #else - #error "Not GCC, or GCC before 4.7.2, or 'long int' has < 64 bits." - #endif - ]])], - [AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no) - nw="$nw -Wstack-protector"]) - gl_MANYWARN_ALL_GCC([ws]) gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw]) for w in $ws; do @@ -818,9 +825,13 @@ fi AC_PATH_PROG(MAKEINFO, makeinfo, no) dnl By this stage, configure has already checked for egrep and set EGREP, dnl or exited with an error if no egrep was found. -if test "$MAKEINFO" != "no" && \ - test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'`" = x; then - MAKEINFO=no +if test "$MAKEINFO" != "no"; then + case ` + $MAKEINFO --version 2> /dev/null | + $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)' + ` in + '') MAKEINFO=no;; + esac fi ## Makeinfo is unusual. For a released Emacs, the manuals are @@ -838,7 +849,7 @@ if test "$MAKEINFO" = "no"; then MAKEINFO=makeinfo if test "x${with_makeinfo}" = "xno"; then HAVE_MAKEINFO=no - elif test ! -e $srcdir/info/emacs; then + elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your source tree does not seem to have pre-built manuals in the `info' directory. Either install a suitable version of makeinfo, or re-run configure @@ -1046,45 +1057,32 @@ AC_DEFUN([AC_TYPE_UID_T]) LIB_MATH=-lm -LIB_STANDARD= -START_FILES= dnl Current possibilities handled by sed (aix4-2 -> aix, dnl gnu-linux -> gnu/linux, etc.): dnl gnu, gnu/linux, gnu/kfreebsd, aix, cygwin, darwin, hpux, irix. dnl And special cases: berkeley-unix, usg-unix-v, ms-dos, windows-nt. SYSTEM_TYPE=`echo $opsys | sed -e 's/[[0-9]].*//' -e 's|-|/|'` -dnl NB do not use CRT_DIR unquoted here, since it might not be set yet. case $opsys in cygwin ) LIB_MATH= - START_FILES='pre-crt0.o' ;; darwin ) ## Adding -lm confuses the dynamic linker, so omit it. LIB_MATH= - START_FILES='pre-crt0.o' ;; freebsd ) - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o' SYSTEM_TYPE=berkeley-unix ;; gnu-linux | gnu-kfreebsd ) - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o' ;; hpux10-20 | hpux11 ) - LIB_STANDARD=-lc - START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o' ;; mingw32 ) LIB_MATH= ;; dnl NB this may be adjusted below. netbsd | openbsd ) - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o' SYSTEM_TYPE=berkeley-unix ;; @@ -1095,96 +1093,9 @@ case $opsys in esac AC_SUBST(LIB_MATH) -AC_SUBST(START_FILES) AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE", [The type of system you are compiling for; sets `system-type'.]) -dnl Not all platforms use crtn.o files. Check if the current one does. -crt_files= - -for file in x $LIB_STANDARD $START_FILES; do - case "$file" in - *CRT_DIR*) crt_files="$crt_files `echo $file | sed -e 's|.*/||'`" ;; - esac -done - -if test "x$crt_files" != x; then - - ## If user specified a crt-dir, use that unconditionally. - crt_gcc=no - - if test "X$CRT_DIR" = "X"; then - - CRT_DIR=/usr/lib # default - - case "$canonical" in - x86_64-*-linux-gnu* | s390x-*-linux-gnu*) - ## On x86-64 and s390x GNU/Linux distributions, the standard library - ## can be in a variety of places. We only try /usr/lib64 and /usr/lib. - ## For anything else (eg /usr/lib32), it is up the user to specify - ## the location (bug#5655). - ## Test for crtn.o, not just the directory, because sometimes the - ## directory exists but does not have the relevant files (bug#1287). - ## FIXME better to test for binary compatibility somehow. - test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64 - ;; - - powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;; - esac - - case "$opsys" in - hpux10-20) CRT_DIR=/lib ;; - esac - - test "x${GCC}" = xyes && crt_gcc=yes - - fi # CRT_DIR = "" - - crt_missing= - - for file in $crt_files; do - - ## If we're using gcc, try to determine it automatically by asking - ## gcc. [If this doesn't work, CRT_DIR will remain at the - ## system-dependent default from above.] - if test $crt_gcc = yes && test ! -e $CRT_DIR/$file; then - - crt_file=`$CC --print-file-name=$file 2>/dev/null` - case "$crt_file" in - */*) - CRT_DIR=`AS_DIRNAME(["$crt_file"])` - ;; - esac - fi - - dnl We expect all the files to be in a single directory, so after the - dnl first there is no point asking gcc. - crt_gcc=no - - test -e $CRT_DIR/$file || crt_missing="$crt_missing $file" - done # $crt_files - - test "x$crt_missing" = x || \ - AC_MSG_ERROR([Required file(s) not found:$crt_missing -Try using the --with-crt-dir option.]) - -fi # crt_files != "" - -AC_SUBST(CRT_DIR) - -case $opsys in - netbsd | openbsd ) - if test -f $CRT_DIR/crti.o; then - - test -f $CRT_DIR/crtn.o || \ - AC_MSG_ERROR([Required file not found: crtn.o]) - - LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o' - START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o' - fi - ;; -esac - pre_PKG_CONFIG_CFLAGS=$CFLAGS pre_PKG_CONFIG_LIBS=$LIBS @@ -1200,15 +1111,15 @@ AC_DEFUN([PKG_CHECK_MODULES], [ if test "$PKG_CONFIG" = "no" ; then ifelse([$4], , [AC_MSG_ERROR([ - *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4]) + *** The pkg-config script could not be found. Make sure it is in your path, or give the full name of pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4]) else PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then AC_MSG_CHECKING(for $2) - if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD && - $1_CFLAGS=`$PKG_CONFIG --cflags "$2" 2>&AS_MESSAGE_LOG_FD` && - $1_LIBS=`$PKG_CONFIG --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then + if "$PKG_CONFIG" --exists "$2" 2>&AS_MESSAGE_LOG_FD && + $1_CFLAGS=`"$PKG_CONFIG" --cflags "$2" 2>&AS_MESSAGE_LOG_FD` && + $1_LIBS=`"$PKG_CONFIG" --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then edit_cflags=" s,///*,/,g s/^/ / @@ -1226,7 +1137,7 @@ AC_DEFUN([PKG_CHECK_MODULES], [ ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. Do it in a subshell ## to capture any diagnostics in invoking pkg-config. - $1_PKG_ERRORS=`($PKG_CONFIG --print-errors "$2") 2>&1` + $1_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$2") 2>&1` ifelse([$4], ,echo "$$1_PKG_ERRORS",) fi @@ -1303,7 +1214,7 @@ dnl checks for header files AC_CHECK_HEADERS_ONCE( linux/version.h sys/systeminfo.h coff.h pty.h - sys/vlimit.h sys/resource.h + sys/resource.h sys/utsname.h pwd.h utmp.h util.h) AC_MSG_CHECKING(if personality LINUX32 can be set) @@ -1491,8 +1402,8 @@ tmp_CPPFLAGS="$CPPFLAGS" tmp_CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS -x objective-c" CFLAGS="$CFLAGS -x objective-c" -TEMACS_LDFLAGS2="\${LDFLAGS}" GNU_OBJC_CFLAGS= +LIBS_GNUSTEP= if test "${with_ns}" != no; then if test "${opsys}" = darwin; then NS_IMPL_COCOA=yes @@ -1519,9 +1430,7 @@ if test "${with_ns}" != no; then CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}" - LIB_STANDARD= - START_FILES= - TEMACS_LDFLAGS2= + LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread" dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1. dnl If they had chosen to either define it or not, we could have dnl just used AC_CHECK_DECL here. @@ -1572,7 +1481,7 @@ fail; fi fi -AC_SUBST(TEMACS_LDFLAGS2) +AC_SUBST(LIBS_GNUSTEP) INSTALL_ARCH_INDEP_EXTRA=install-etc ns_self_contained=no @@ -1610,11 +1519,12 @@ AC_SUBST(INSTALL_ARCH_INDEP_EXTRA) AC_SUBST(ns_self_contained) AC_SUBST(NS_OBJ) AC_SUBST(NS_OBJC_OBJ) -AC_SUBST(LIB_STANDARD) HAVE_W32=no W32_OBJ= W32_LIBS= +W32_RES= +W32_RES_LINK= if test "${with_w32}" != no; then if test "${opsys}" != "cygwin"; then if test "${opsys}" != "mingw32"; then @@ -1644,11 +1554,17 @@ fi if test "${HAVE_W32}" = "yes"; then AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.]) + AC_CHECK_TOOL(WINDRES, [windres], + [AC_MSG_ERROR([No resource compiler found.])]) W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o" W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o" if test "${opsys}" = "cygwin"; then W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" + W32_RES="emacs.res" + # Tell the linker that emacs.res is an object (which we compile from + # the rc file), not a linker script. + W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res" else W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o" W32_LIBS="$W32_LIBS -lwinmm -ladvapi32 -lgdi32 -lcomdlg32 -luser32" @@ -1657,6 +1573,8 @@ if test "${HAVE_W32}" = "yes"; then fi AC_SUBST(W32_OBJ) AC_SUBST(W32_LIBS) +AC_SUBST(W32_RES) +AC_SUBST(W32_RES_LINK) if test "${HAVE_W32}" = "yes"; then window_system=w32 @@ -1704,11 +1622,6 @@ dnl use the toolkit if we have gtk, or X11R5 or newer. ;; esac -if test -n "${term_header}"; then - AC_DEFINE_UNQUOTED(TERM_HEADER, "${term_header}", - [Define to the header for the built-in window system.]) -fi - if test "$window_system" = none && test "X$with_x" != "Xno"; then AC_CHECK_PROG(HAVE_XSERVER, X, true, false) if test "$HAVE_XSERVER" = true || @@ -1767,6 +1680,20 @@ if test "${system_malloc}" = "yes"; then else test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o VMLIMIT_OBJ=vm-limit.o + + AC_CHECK_HEADERS([sys/vlimit.h]) + AC_CACHE_CHECK([for data_start], [emacs_cv_data_start], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[extern char data_start[]; char ch;]], + [[return data_start < &ch;]])], + [emacs_cv_data_start=yes], + [emacs_cv_data_start=no])]) + if test $emacs_cv_data_start = yes; then + AC_DEFINE([HAVE_DATA_START], 1, + [Define to 1 if data_start is the address of the start + of the main data segment.]) + fi fi AC_SUBST(GMALLOC_OBJ) AC_SUBST(VMLIMIT_OBJ) @@ -1936,7 +1863,7 @@ if test "${HAVE_X11}" = "yes"; then emacs_xkb=yes, emacs_xkb=no) AC_MSG_RESULT($emacs_xkb) if test $emacs_xkb = yes; then - AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.]) + AC_DEFINE(HAVE_XKB, 1, [Define to 1 if you have the Xkb extension.]) fi AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \ @@ -1995,7 +1922,8 @@ if test "${HAVE_X11}" = "yes"; then ## 6.2.8 is the earliest version known to work, but earlier versions ## might work - let us know if you find one. ## 6.0.7 does not work. See bug#7955. - IMAGEMAGICK_MODULE="Wand >= 6.2.8" + ## 6.8.2 makes Emacs crash; see Bug#13867. + IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2" PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :) AC_SUBST(IMAGEMAGICK_CFLAGS) AC_SUBST(IMAGEMAGICK_LIBS) @@ -2030,6 +1958,9 @@ if test "${opsys}" != "mingw32"; then GTK_OBJ=emacsgtkfixed.o term_header=gtkutil.h USE_GTK_TOOLKIT="GTK3" + if test "x$ac_enable_gtk_deprecation_warnings" = x; then + GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS" + fi else check_gtk2=yes gtk3_pkg_errors="$GTK_PKG_ERRORS " @@ -2071,7 +2002,7 @@ if test x"$pkg_check_gtk" = xyes; then AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.]) GTK_OBJ="gtkutil.o $GTK_OBJ" USE_X_TOOLKIT=none - if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then + if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then : else AC_MSG_WARN([[Your version of Gtk+ will have problems with @@ -2106,6 +2037,23 @@ if test "${HAVE_GTK}" = "yes"; then AC_CHECK_FUNCS(gtk_file_selection_new) fi + dnl Same as above for gtk_handle_box. + HAVE_GTK_HANDLE_BOX=no + AC_CHECK_DECL(GTK_TYPE_HANDLE_BOX, HAVE_GTK_HANDLE_BOX=yes, + HAVE_GTK_HANDLE_BOX=no, [AC_INCLUDES_DEFAULT +#include ]) + if test "$HAVE_GTK_HANDLE_BOX" = yes; then + AC_CHECK_FUNCS(gtk_handle_box_new) + fi + + dnl Same as above for gtk_tearoff_menu_item. + HAVE_GTK_TEAROFF_MENU_ITEM=no + AC_CHECK_DECL(GTK_TYPE_TEAROFF_MENU_ITEM, HAVE_GTK_TEAROFF_MENU_ITEM=yes, + HAVE_GTK_TEAROFF_MENU_ITEM=no, [AC_INCLUDES_DEFAULT +#include ]) + if test "$HAVE_GTK_TEAROFF_MENU_ITEM" = yes; then + AC_CHECK_FUNCS(gtk_tearoff_menu_item_new) + fi dnl Check for functions introduced in 2.14 and later. AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \ @@ -2219,6 +2167,34 @@ fi AC_SUBST(LIBGNUTLS_LIBS) AC_SUBST(LIBGNUTLS_CFLAGS) +dnl inotify is only available on GNU/Linux. +if test "${with_inotify}" = "yes"; then + AC_CHECK_HEADERS(sys/inotify.h) + if test "$ac_cv_header_sys_inotify_h" = yes ; then + AC_CHECK_FUNC(inotify_init1) + fi +fi +if test "$ac_cv_func_inotify_init1" = yes; then + AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.]) +fi + +dnl POSIX ACL support: provided by libacl on GNU/Linux, by libc on FreeBSD. +HAVE_POSIX_ACL=no +LIBACL_LIBS= +if test "${with_acl}" = "yes"; then + AC_CHECK_LIB([acl], [acl_set_file], HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no) + if test "$HAVE_POSIX_ACL" = yes; then + AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.]) + LIBACL_LIBS=-lacl + else + AC_CHECK_FUNC(acl_set_file, HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no) + if test "$HAVE_POSIX_ACL" = yes; then + AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.]) + fi + fi +fi +AC_SUBST(LIBACL_LIBS) + dnl Do not put whitespace before the #include statements below. dnl Older compilers (eg sunos4 cc) choke on it. HAVE_XAW3D=no @@ -3026,7 +3002,7 @@ select getpagesize setlocale \ utimes getrlimit setrlimit shutdown getaddrinfo \ strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ -gai_strerror mkstemp getline getdelim fsync sync \ +gai_strerror mkstemp getline getdelim sync \ difftime posix_memalign \ getpwent endpwent getgrent endgrent \ touchlock \ @@ -3761,7 +3737,7 @@ case $opsys in AC_DEFINE(PTY_ITERATION, []) dnl Not used, because PTY_ITERATION is defined. AC_DEFINE(FIRST_PTY_LETTER, ['q']) - AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }]) + AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }]) dnl No need to get the pty name at all. AC_DEFINE(PTY_NAME_SPRINTF, []) dnl No need to use sprintf to get the tty name--we get that from _getpty. @@ -3772,12 +3748,12 @@ case $opsys in dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler() dnl from intercepting that death. If any child but grantpt's should die dnl within, it should be caught after sigrelse(2). - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) ;; unixware ) dnl Comments are as per sol2*. - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) ;; esac @@ -3800,7 +3776,7 @@ AH_TEMPLATE(SIGNALS_VIA_CHARACTERS, [Make process_send_signal work by case $opsys in dnl Perry Smith says this is correct for AIX. dnl thomas@mathematik.uni-bremen.de says this is needed for IRIX. - aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd ) + aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd | darwin ) AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1) ;; @@ -3822,9 +3798,7 @@ case $opsys in esac -dnl Used in vm-limit.c -AH_TEMPLATE(DATA_START, [Address of the start of the data segment.]) -dnl Used in lisp.h, emacs.c, mem-limits.h +dnl Used in lisp.h, emacs.c, vm-limit.c dnl NEWS.18 describes this as "a number which contains dnl the high bits to be inclusive or'ed with pointers that are unpacked." AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers @@ -3832,24 +3806,20 @@ stored in a Lisp_Object.]) dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT. case $opsys in - gnu) - dnl libc defines data_start. - AC_DEFINE(DATA_START, [({ extern int data_start; (char *) &data_start; })]) + aix*) + dnl This works with 32-bit executables; Emacs doesn't support 64-bit. + AC_DEFINE(DATA_SEG_BITS, [0x20000000]) ;; - hpux*) dnl The data segment on this machine always starts at address 0x40000000. - AC_DEFINE(DATA_START, [0x40000000]) AC_DEFINE(DATA_SEG_BITS, [0x40000000]) ;; irix6-5) - AC_DEFINE(DATA_START, [0x10000000]) AC_DEFINE(DATA_SEG_BITS, [0x10000000]) ;; esac -AH_TEMPLATE(ULIMIT_BREAK_VALUE, [Undocumented.]) AH_TEMPLATE(TAB3, [Undocumented.]) case $opsys in @@ -3861,14 +3831,6 @@ case $opsys in ;; gnu-linux | gnu-kfreebsd ) - dnl libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared - dnl library, we cannot get the maximum address for brk. - AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ -#ifndef __i386__ -# error "not i386" -#endif - ]], [[]])], AC_DEFINE(ULIMIT_BREAK_VALUE, [(32*1024*1024)]), []) - AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ #ifndef __ia64__ # error "not ia64" @@ -3882,30 +3844,16 @@ case $opsys in AC_DEFINE(RUN_TIME_REMAP, 1, [Define if emacs.c needs to call run_time_remap; for HPUX.]) ;; - - irix6-5) - dnl Ulimit(UL_GMEMLIM) is busted... - AC_DEFINE(ULIMIT_BREAK_VALUE, [0x14000000]) - ;; esac -dnl These won't be used automatically yet. We also need to know, at least, +dnl This won't be used automatically yet. We also need to know, at least, dnl that the stack is continuous. AH_TEMPLATE(GC_SETJMP_WORKS, [Define if setjmp is known to save all registers relevant for conservative garbage collection in the jmp_buf.]) -AH_TEMPLATE(GC_MARK_STACK, [Define to GC_USE_GCPROS_AS_BEFORE if - conservative garbage collection is not known to work.]) - case $opsys in - aix4-2 | hpux* | unixware) - dnl Conservative garbage collection has not been tested, so for now - dnl play it safe and stick with the old-fashioned way of marking. - AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE]) - ;; - dnl Not all the architectures are tested, but there are Debian packages dnl for SCM and/or Guile on them, so the technique must work. See also dnl comments in alloc.c concerning setjmp and gcc. @@ -3920,8 +3868,7 @@ case $opsys in #else # error "setjmp not known to work on this arch" #endif - ]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1), - AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE]) ) + ]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1)) ;; esac @@ -3993,8 +3940,6 @@ esac dnl Define symbols to identify the version of Unix this is. dnl Define all the symbols that apply correctly. -AH_TEMPLATE(BSD4_2, [Define if the system is compatible with BSD 4.2.]) -AH_TEMPLATE(BSD_SYSTEM, [Define if the system is compatible with BSD 4.2.]) AH_TEMPLATE(DOS_NT, [Define if the system is MS DOS or MS Windows.]) AH_TEMPLATE(MSDOS, [Define if the system is MS DOS.]) AH_TEMPLATE(USG, [Define if the system is compatible with System III.]) @@ -4018,33 +3963,12 @@ case $opsys in ;; darwin) - dnl BSD4_3 and BSD4_4 are already defined in sys/param.h. - AC_DEFINE(BSD4_2, []) - AC_DEFINE(BSD_SYSTEM, []) - dnl More specific than the above two. We cannot use __APPLE__ as this - dnl may not be defined on non-OSX Darwin, and we cannot define DARWIN - dnl here because Panther and lower CoreFoundation.h uses DARWIN to + dnl Not __APPLE__, as this may not be defined on non-OSX Darwin. + dnl Not DARWIN, because Panther and lower CoreFoundation.h use DARWIN to dnl distinguish OS X from pure Darwin. AC_DEFINE(DARWIN_OS, [], [Define if the system is Darwin.]) ;; - freebsd) - AC_DEFINE(BSD4_2, []) - dnl Hack to avoid calling AC_PREPROC_IFELSE multiple times. - dnl Would not be needed with autoconf >= 2.67, where the - dnl preprocessed output is accessible in "conftest.i". - AC_DEFINE(BSD_SYSTEM_AHB, 1, [Define if AH_BOTTOM should change BSD_SYSTEM.]) - ;; - - gnu | netbsd | openbsd ) - AC_DEFINE(BSD4_2, []) - AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ -#ifndef BSD_SYSTEM -# error "BSD_SYSTEM not defined" -#endif - ]], [[]])], [], AC_DEFINE(BSD_SYSTEM, 43) ) - ;; - gnu-linux | gnu-kfreebsd ) AC_DEFINE(USG, []) AC_DEFINE(GNU_LINUX, [], [Define if ths system is compatible with GNU/Linux.]) @@ -4171,7 +4095,7 @@ fi version=$PACKAGE_VERSION -copyright="Copyright (C) 2012 Free Software Foundation, Inc." +copyright="Copyright (C) 2013 Free Software Foundation, Inc." AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"], [Short copyright string for this version of Emacs.]) AC_SUBST(copyright) @@ -4226,7 +4150,9 @@ fi AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}", [Define to the canonical Emacs configuration name.]) -AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}", +dnl Replace any embedded " characters (bug#13274). +emacs_config_options=`echo "$emacs_config_options " | sed -e 's/--no-create //' -e 's/--no-recursion //' -e 's/ *$//' -e "s/\"/'/g"` +AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${emacs_config_options}", [Define to the options passed to configure.]) AH_TEMPLATE(config_opsysfile, [Some platforms that do not use configure define this to include extra configuration information.]) @@ -4427,15 +4353,8 @@ case "$opsys" in LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra" ## This is here because src/Makefile.in did some extra fiddling around - ## with LD_SWITCH_SYSTEM. The cpp logic was: - ## #ifndef LD_SWITCH_SYSTEM - ## #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF))) - ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to: - ## not using gcc, darwin. - ## Because this was done in src/Makefile.in, the resulting part of - ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link). - ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS, - ## rather than LD_SWITCH_SYSTEM. + ## with LD_SWITCH_SYSTEM. It seems cleaner to put this in + ## LD_SWITCH_SYSTEM_TEMACS instead, test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \ LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS" ;; @@ -4456,98 +4375,11 @@ case "$opsys" in *) LD_SWITCH_SYSTEM_TEMACS= ;; esac -if test "$NS_IMPL_GNUSTEP" = "yes"; then - LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread" -fi - AC_SUBST(LD_SWITCH_SYSTEM_TEMACS) - -LD_FIRSTFLAG= -ORDINARY_LINK= -case "$opsys" in - ## gnu: GNU needs its own crt0. - aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|mingw32|sol2*|unixware) ORDINARY_LINK=yes ;; - - ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the - ## library search parth, i.e. it won't search /usr/lib for libc and - ## friends. Using -nostartfiles instead avoids this problem, and - ## will also work on earlier NetBSD releases. - netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;; - - ## powerpc*: NAKAJI Hiroyuki says - ## MkLinux/LinuxPPC needs this. - ## s390x-* only supports opsys = gnu-linux so it can be added here. - gnu-*) - case "$canonical" in - powerpc*|s390x-*) LD_FIRSTFLAG="-nostdlib" ;; - esac - ;; -esac - - -if test "x$ORDINARY_LINK" = "xyes"; then - - LD_FIRSTFLAG="" - AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.]) - -## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are: -## freebsd, gnu-* not on powerpc*|s390x*. -elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then - - ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure - ## places that are difficult to figure out at make time. Fortunately, - ## these same versions allow you to pass arbitrary flags on to the - ## linker, so there is no reason not to use it as a linker. - ## - ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from - ## searching for libraries in its internal directories, so we have to - ## ask GCC explicitly where to find libgcc.a (LIB_GCC below). - LD_FIRSTFLAG="-nostdlib" -fi - -## FIXME? What setting of EDIT_LDFLAGS should this have? -test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic" - -AC_SUBST(LD_FIRSTFLAG) - - -## FIXME? The logic here is not precisely the same as that above. -## There is no check here for a pre-defined LD_FIRSTFLAG. -## Should we only be setting LIB_GCC if LD ~ -nostdlib? -LIB_GCC= -if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then - - case "$opsys" in - freebsd|netbsd|openbsd) LIB_GCC= ;; - - gnu-*) - ## armin76@gentoo.org reported that the lgcc_s flag is necessary to - ## build on ARM EABI under GNU/Linux. (Bug#5518) - case $host_cpu in - arm*) - LIB_GCC="-lgcc_s" - ;; - *) - ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then - ## immediately undefine it again and redefine it to empty. - ## Was the C_SWITCH_X_SITE part really necessary? -## LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name` - LIB_GCC= - ;; - esac - ;; - - ## Ask GCC where to find libgcc.a. - *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;; - esac -fi dnl if $GCC -AC_SUBST(LIB_GCC) - ## Common for all window systems if test "$window_system" != "none"; then AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.]) - AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.]) WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o" fi @@ -4555,7 +4387,7 @@ AC_SUBST(WINDOW_SYSTEM_OBJ) AH_TOP([/* GNU Emacs site configuration template file. -Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012 +Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -4713,7 +4545,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \ dnl test/ is not present in release tarfiles. opt_makefile=test/automated/Makefile -if test -f $srcdir/${opt_makefile}.in; then +if test -f "$srcdir/$opt_makefile.in"; then SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile" dnl Again, it's best not to use a variable. Though you can add dnl ", [], [opt_makefile='$opt_makefile']" and it should work. @@ -4724,7 +4556,7 @@ fi dnl admin/ may or may not be present. opt_makefile=admin/unidata/Makefile -if test -f $srcdir/${opt_makefile}.in; then +if test -f "$srcdir/$opt_makefile.in"; then SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile" AC_CONFIG_FILES([admin/unidata/Makefile]) fi @@ -4755,9 +4587,9 @@ ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"]) AC_CONFIG_COMMANDS([gdbinit], [ -if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then +if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then echo creating src/.gdbinit - echo source $srcdir/src/.gdbinit > src/.gdbinit + echo "source $srcdir/src/.gdbinit" > src/.gdbinit fi ]) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index af22f0628d1..c2be55a33bb 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,137 @@ +2013-03-17 Paul Eggert + + doc: convert some TeX accents to UTF-8 + * ack.texi (Acknowledgments): + * emacs.texi (Acknowledgments): + Convert some TeX accents (e.g., '@l{}') to UTF-8 (e.g., 'ł'). + Apparently the TeX accents cause problems when generating gnu.org + web pages, e.g., @l{} is rendered as '/l' on + . + +2013-03-16 Glenn Morris + + * emacs.texi (Top): Add some stuff specific to www.gnu.org. + +2013-03-16 Glenn Morris + + * Version 24.3 released. + +2013-03-04 Paul Eggert + + Prefer UTF-8 for documentation. + With GNU Texinfo 5.0, this generates nicer-looking info files, + since they can use curly quotes. With older Texinfo it doesn't matter. + * ack.texi, cal-xtra.texi, calendar.texi, emacs-xtra.texi, emacs.texi: + Switch from Latin-1 to UTF-8. + +2013-02-28 Bastien Guerry + + * xresources.texi (GTK resources): Fix broken link. + +2013-02-25 Eli Zaretskii + + * files.texi (Interlocking): Don't refer to symlinks as the + exclusive means of locking files. + +2013-02-22 Glenn Morris + + * ack.texi (Acknowledgments): + * emacs.texi (Acknowledgments): Small updates. + +2013-02-21 Glenn Morris + + * files.texi (File Conveniences): Not just GIFs can be animated. + +2013-02-13 Glenn Morris + + * ack.texi (Acknowledgments): Don't mention yow any more. + +2013-02-13 Paul Eggert + + * cmdargs.texi (General Variables): + Fix TMPDIR documentation to match the code's behavior. + +2013-02-10 Glenn Morris + + * trouble.texi (Checklist): Update bug keybinding. + +2013-02-09 Eli Zaretskii + + * msdog.texi (Text and Binary): Delete the description of + file-name-buffer-file-type-alist. + +2013-01-19 Paul Eggert + + * trouble.texi (Crashing): Suggest -p for newer addr2line. (Bug#13445) + Without it, I don't see function names. Older addr2line + implementations will die out sooner or later, so tailor the + first suggestion to recent addr2line, with a followup about + older ones. + +2013-01-19 Glenn Morris + + * custom.texi (Directory Variables): Fix paren typo. + + * trouble.texi (Crashing): Not all addr2line have -p. (Bug#13445) + + * custom.texi (Custom Themes): Fix typo. + +2013-01-07 Bastien Guerry + + * help.texi (Apropos): Document `apropos-user-option' and update + the doc for `apropos-variable'. + +2013-01-05 Glenn Morris + + * text.texi (HTML Mode): Remove deleted nxml C-RET binding. + +2012-12-21 Glenn Morris + + * emacs-xtra.texi (copying): The FSF does not sell copies of this. + Simply include doclicense. + +2012-12-21 Chong Yidong + + * frames.texi (Mouse Commands): Fix description of the effect of + mouse dragging (Bug#13049). + +2012-12-15 Juri Linkov + + * misc.texi (Recursive Edit): Add a link to "Query Replace". + (Bug#13181) + +2012-12-10 Dani Moncayo + + * killing.texi (Deletion): Doc fix (Bug#12748). + +2012-12-06 Paul Eggert + + * doclicense.texi, gpl.texi: Update to latest version from FSF. + These are just minor editorial changes. + +2012-12-06 Juanma Barranquero + + * vc1-xtra.texi (General VC Options): Remove obsolete reference + to `vc-path'. + +2012-12-03 Chong Yidong + + * custom.texi (Init Rebinding): kbd is now a function (Bug#13052). + +2012-12-02 Kevin Ryde + + * maintaining.texi (Tag Syntax): Mention (defvar foo) handling. + +2012-12-01 Kevin Ryde + + * maintaining.texi (Tag Syntax): Mention Perl's "use constant". + +2012-11-24 Paul Eggert + + * doclicense.texi, gpl.texi: Update to latest version from FSF. + These are just minor editorial changes. + 2012-11-21 Dani Moncayo * display.texi (Auto Scrolling): Fix some inaccuracies, plus @@ -9667,7 +9801,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in index 8f2078192b2..43de825ea70 100644 --- a/doc/emacs/Makefile.in +++ b/doc/emacs/Makefile.in @@ -1,6 +1,6 @@ #### Makefile for the Emacs Manual -# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1994, 1996-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi index d3c914d92b0..cc16a5f7762 100644 --- a/doc/emacs/abbrevs.texi +++ b/doc/emacs/abbrevs.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Abbrevs @chapter Abbrevs @@ -141,7 +141,7 @@ abbrev definitions, both global and local. When Abbrev mode is enabled, an abbrev expands whenever it is present in the buffer just before point and you type a self-inserting -whitespace or punctuation character (@key{SPC}, comma, etc.@:). More +whitespace or punctuation character (@key{SPC}, comma, etc.). More precisely, any character that is not a word constituent expands an abbrev, and any word-constituent character can be part of an abbrev. The most common way to use an abbrev is to insert it and then insert a diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi index 9fdead70f8a..0d0ed9e37f4 100644 --- a/doc/emacs/ack.texi +++ b/doc/emacs/ack.texi @@ -1,6 +1,6 @@ -@c -*- coding: iso-latin-1 -*- +@c -*- coding: utf-8 -*- @c This is part of the Emacs manual. -@c Copyright (C) 1994-1997, 1999-2012 Free Software Foundation, Inc. +@c Copyright (C) 1994-1997, 1999-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @node Acknowledgments @@ -44,7 +44,7 @@ Tomas Abrahamsson wrote @file{artist.el}, a package for producing @acronym{ASCII} art with a mouse or with keyboard keys. @item -Jay K.@: Adams wrote @file{jka-compr.el} and @file{jka-cmpr-hook.el}, +Jay K. Adams wrote @file{jka-compr.el} and @file{jka-cmpr-hook.el}, providing automatic decompression and recompression for compressed files. @@ -53,7 +53,7 @@ Michael Albinus wrote @file{dbus.el}, a package that implements the D-Bus message bus protocol; @file{zeroconf.el}, a mode for browsing Avahi services; @file{xesam.el}, a Xesam-based search engine interface; and @file{secrets.el}, an interface to keyring daemons for -storing confidential data. He and Kai Grojohann wrote the Tramp package, which +storing confidential data. He and Kai Großjohann wrote the Tramp package, which provides transparent remote file editing using rcp, ssh, ftp, and other network protocols. He and Daniel Pittman wrote @file{tramp-cache.el}. @@ -68,7 +68,7 @@ Joe Arceneaux wrote the original text property implementation, and implemented support for X11. @item -Emil strm, Milan Zamaza, and Stefan Bruda wrote @file{prolog.el}, +Emil Åström, Milan Zamaza, and Stefan Bruda wrote @file{prolog.el}, a mode for editing Prolog (and Mercury) code. @item @@ -96,13 +96,13 @@ Eli Barzilay wrote @file{calculator.el}, a desktop calculator for Emacs. @item -Steven L.@: Baur wrote @file{footnote.el} which lets you include +Steven L. Baur wrote @file{footnote.el} which lets you include footnotes in email messages; and @file{gnus-audio.el} and @file{earcon.el}, which provide sound effects for Gnus. He also wrote @file{gnus-setup.el}. @item -Alexander L.@: Belikoff, Sergey Berezin, Sacha Chua, David Edmondson, +Alexander L. Belikoff, Sergey Berezin, Sacha Chua, David Edmondson, Noah Friedman, Andreas Fuchs, Mario Lang, Ben Mesander, Lawrence Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Schaefer, Alex Schroeder, and Tom Tromey wrote ERC, an advanced Internet Relay @@ -115,7 +115,7 @@ Christian Limpach and Adrian Robert developed and maintained the NeXTstep port of Emacs. @item -Anna M.@: Bigatti wrote @file{cal-html.el}, which produces HTML calendars. +Anna M. Bigatti wrote @file{cal-html.el}, which produces HTML calendars. @item Ray Blaak and Simon South wrote @file{delphi.el}, a mode for editing @@ -130,14 +130,14 @@ Jim Blandy wrote Emacs 19's input system, brought its configuration and build process up to the GNU coding standards, and contributed to the frame support and multi-face support. Jim also wrote @file{tvi970.el}, terminal support for the TeleVideo 970 terminals; and co-wrote -@file{wyse50.el} (q.v.@:). +@file{wyse50.el} (q.v.). @item Per Bothner wrote @file{term.el}, a terminal emulator in an Emacs buffer. @item -Terrence M.@: Brannon wrote @file{landmark.el}, a neural-network robot +Terrence M. Brannon wrote @file{landmark.el}, a neural-network robot that learns landmarks. @item @@ -162,11 +162,11 @@ Kevin Broadey wrote @file{foldout.el}, providing folding extensions to Emacs's outline modes. @item -David M.@: Brown wrote @file{array.el}, for editing arrays and other +David M. Brown wrote @file{array.el}, for editing arrays and other tabular data. @item -W@l{}odek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for +Włodek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for changing the encoding of Polish characters. @item @@ -184,7 +184,7 @@ Emacs Lisp functions; and @file{trace.el}, a tracing facility for Emacs Lisp. @item -Chris Chase, Carsten Dominik, and J.@: D.@: Smith wrote IDLWAVE mode, +Chris Chase, Carsten Dominik, and J. D. Smith wrote IDLWAVE mode, for editing IDL and WAVE CL. @item @@ -202,7 +202,7 @@ Andrew Choi and Yamamoto Mitsuharu wrote the Carbon support, used prior to Emacs 23 for Mac OS. @item -Chong Yidong was the Emacs co-maintainer from Emacs 23 onwards. He made many +Chong Yidong was the Emacs co-maintainer from Emacs 23 to 24.3. He made many improvements to the Emacs display engine. He also wrote @file{tabulated-list.el}, a generic major mode for lists of data; and improved support for themes and packages. @@ -260,16 +260,16 @@ text replace the current selection. Eric Ding wrote @file{goto-addr.el}, @item -Jan Djrv added support for the GTK+ toolkit and X drag-and-drop. +Jan Djärv added support for the GTK+ toolkit and X drag-and-drop. He also wrote @file{dynamic-setting.el}. @item Carsten Dominik wrote Ref@TeX{}, a package for setting up labels and cross-references in @LaTeX{} documents; and co-wrote IDLWAVE mode -(q.v.@:). He was the original author of Org mode, for maintaining notes, +(q.v.). He was the original author of Org mode, for maintaining notes, todo lists, and project planning. Bastien Guerry subsequently took -over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Bcker, Lennart -Borgman, Baoqiu Cui, Dan Davison, Christian Egli, Eric S.@: Fraga, Daniel German, Chris Gray, Konrad Hinsen, Tassilo Horn, Philip +over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Böcker, Lennart +Borgman, Baoqiu Cui, Dan Davison, Christian Egli, Eric S. Fraga, Daniel German, Chris Gray, Konrad Hinsen, Tassilo Horn, Philip Jackson, Martyn Jago, Thorsten Jolitz, Jambunathan K, Tokuya Kameshima, Sergey Litvinov, David Maus, Ross Patterson, Juan Pechiar, Sebastian Rose, Eric Schulte, Paul Sexton, Ulf Stegemann, Andy Stewart, Christopher Suckling, David O'Toole, John Wiegley, Zhang Weize, Piotr Zielinski, and others also wrote various Org mode components. @@ -303,7 +303,7 @@ folders have mail waiting in them; and @file{iswitchb.el}, a feature for incremental reading and completion of buffer names. @item -Torbjrn Einarsson wrote @file{f90.el}, a mode for Fortran 90 files. +Torbjörn Einarsson wrote @file{f90.el}, a mode for Fortran 90 files. @item Tsugutomo Enami co-wrote the support for international character sets. @@ -365,7 +365,7 @@ Kevin Gallagher rewrote and enhanced the EDT emulation, and wrote flow control. @item -Fabin E. Gallina rewrote @file{python.el}, the major mode for the +Fabián E. Gallina rewrote @file{python.el}, the major mode for the Python programming language used in Emacs 24.3 onwards. @item @@ -373,7 +373,7 @@ Kevin Gallo added multiple-frame support for Windows NT and wrote @file{w32-win.el}, support functions for the MS-Windows window system. @item -Juan Len Lahoz Garca wrote @file{wdired.el}, a package for +Juan León Lahoz García wrote @file{wdired.el}, a package for performing file operations by directly editing Dired buffers. @item @@ -429,7 +429,7 @@ characters used by @TeX{} and net tradition. @item Bastien Guerry wrote @file{gnus-bookmark.el}, bookmark support for Gnus; -as well as helping to maintain Org mode (q.v.@:). +as well as helping to maintain Org mode (q.v.). @item Henry Guillaume wrote @file{find-file.el}, a package to visit files @@ -456,7 +456,7 @@ Jesper Harder wrote @file{yenc.el}, for decoding yenc encoded messages. Alexandru Harsanyi wrote a library for accessing SOAP web services. @item -K.@: Shane Hartman wrote @file{chistory.el} and @file{echistory.el}, +K. Shane Hartman wrote @file{chistory.el} and @file{echistory.el}, packages for browsing command history lists; @file{electric.el} and @file{helper.el}, which provide an alternative command loop and appropriate help facilities; @file{emacsbug.el}, a package for @@ -510,9 +510,9 @@ He also wrote @file{network-stream.el}, for opening network processes; @file{url-queue.el}, for controlling parallel downloads of URLs; and implemented libxml2 support. Components of Gnus have also been written by: Nagy Andras, David -Blacka, Scott Byer, Ludovic Courts, Julien Danjou, Kevin Greiner, Kai -Grojohann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha -Ldecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz, +Blacka, Scott Byer, Ludovic Courtès, Julien Danjou, Kevin Greiner, Kai +Großjohann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha +Lüdecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz, Thomas Steffen, Reiner Steib, Didier Verna, Ilja Weis, Katsumi Yamaoka, Teodor Zlatanov, and others (@pxref{Contributors,,,gnus, the Gnus Manual}). @@ -553,7 +553,7 @@ S/MIME and Sieve components; and @file{tls.el} and @file{starttls.el} for the Transport Layer Security protocol. @item -Arne Jrgensen wrote @file{latexenc.el}, a package to +Arne Jørgensen wrote @file{latexenc.el}, a package to automatically guess the correct coding system in @LaTeX{} files. @item @@ -605,7 +605,7 @@ files and running a PostScript interpreter interactively from within Emacs. @item -Karel Kl@v{c} contributed SELinux support, for preserving the +Karel Klíč contributed SELinux support, for preserving the Security-Enhanced Linux context of files on backup and copy. @item @@ -617,7 +617,7 @@ Pavel Kobyakov wrote @file{flymake.el}, a minor mode for performing on-the-fly syntax checking. @item -David M.@: Koppelman wrote @file{hi-lock.el}, a minor mode for +David M. Koppelman wrote @file{hi-lock.el}, a minor mode for interactive automatic highlighting of parts of the buffer text. @item @@ -630,12 +630,12 @@ menu support. @item Sebastian Kremer wrote @code{dired-mode}, with contributions by Lawrence -R.@: Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the +R. Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the @code{ls} command for platforms that don't have @code{ls} as a standard program. @item -David K@ringaccent{a}gedal wrote @file{tempo.el}, providing support for +David Kågedal wrote @file{tempo.el}, providing support for easy insertion of boilerplate text and other common constructions. @item @@ -647,7 +647,7 @@ Daniel LaLiberte wrote @file{edebug.el}, a source-level debugger for Emacs Lisp; @file{cl-specs.el}, specifications to help @code{edebug} debug code written using David Gillespie's Common Lisp support; and @file{isearch.el}, Emacs's incremental search minor mode. He also -co-wrote @file{hideif.el} (q.v.@:). +co-wrote @file{hideif.el} (q.v.). @item Karl Landstrom and Daniel Colascione wrote @file{js.el}, a mode for @@ -673,7 +673,7 @@ Emacs Lisp programs. @item Lars Lindberg wrote @file{msb.el}, which provides more flexible menus -for buffer selection; co-wrote @file{imenu.el} (q.v.@:); and rewrote +for buffer selection; co-wrote @file{imenu.el} (q.v.); and rewrote @file{dabbrev.el}, originally written by Don Morrison. @item @@ -694,7 +694,7 @@ directory-local variables; and the @code{info-finder} feature that creates a virtual Info manual of package keywords. @item -Kroly L@H{o}rentey wrote the ``multi-terminal'' code, which allows +Károly Lőrentey wrote the ``multi-terminal'' code, which allows Emacs to run on graphical and text terminals simultaneously. @item @@ -726,7 +726,7 @@ the display of the Emacs tool bar. With Riccardo Murri he wrote Eric Ludlam wrote the Speedbar package; @file{checkdoc.el}, for checking doc strings in Emacs Lisp programs; @file{dframe.el}, providing dedicated frame support modes; @file{ezimage.el}, a generalized way to -place images over text; @file{chart.el} for drawing bar charts etc; and +place images over text; @file{chart.el} for drawing bar charts etc.; and the EIEIO (Enhanced Implementation of Emacs Interpreted Objects) package. He was also the main author of the CEDET (Collection of Emacs Development Environment Tools) package. Portions were also written by @@ -752,11 +752,11 @@ maintained CC Mode from Emacs 22 onwards. Michael McNamara and Wilson Snyder wrote Verilog mode. @item -Christopher J.@: Madsen wrote @file{decipher.el}, a package for cracking +Christopher J. Madsen wrote @file{decipher.el}, a package for cracking simple substitution ciphers. @item -Neil M.@: Mager wrote @file{appt.el}, functions to notify users of their +Neil M. Mager wrote @file{appt.el}, functions to notify users of their appointments. It finds appointments recorded in the diary files used by the @code{calendar} package. @@ -811,9 +811,8 @@ Richard Mlynarik wrote @file{cl-indent.el}, a package for indenting Common Lisp code; @file{ebuff-menu.el}, an ``electric'' browser for buffer listings; @file{ehelp.el}, bindings for browsing help screens; @file{rfc822.el}, a parser for E-mail addresses in the RFC-822 format, -used in mail messages and news articles; @file{terminal.el}, a -terminal emulator for Emacs subprocesses; and @file{yow.el}, an -essential utility. +used in mail messages and news articles; and @file{terminal.el}, a +terminal emulator for Emacs subprocesses. @item Gerd Moellmann was the Emacs maintainer from the beginning of Emacs 21 @@ -826,7 +825,7 @@ facility. He also wrote @code{ebrowse}, the C@t{++} browser; and @file{rx.el}, a regular expression constructor. @item -Stefan Monnier was the Emacs co-maintainer from Emacs 23 onwards. He added +Stefan Monnier was the Emacs (co-)maintainer from Emacs 23 onwards. He added support for Arch and Subversion to VC, re-wrote much of the Emacs server to use the built-in networking primitives, and re-wrote the abbrev and minibuffer completion code for Emacs 23. He also wrote @code{PCL-CVS}, @@ -859,7 +858,7 @@ Erik Naggum wrote the time-conversion functions. He also wrote @file{parse-time.el}, for parsing time strings. @item -Takahashi Naoto co-wrote @file{quail.el} (q.v.@:), and wrote +Takahashi Naoto co-wrote @file{quail.el} (q.v.), and wrote @file{robin.el}, another input method. @item @@ -908,7 +907,7 @@ Takaaki Ota wrote @file{table.el}, a package for creating and editing embedded text-based tables. @item -Pieter E.@: J.@: Pareit wrote @file{mixal-mode.el}, an editing mode for +Pieter E. J. Pareit wrote @file{mixal-mode.el}, an editing mode for the MIX assembly language. @item @@ -924,7 +923,7 @@ Damon Anton Permezel wrote @file{hanoi.el}, an animated demonstration of the ``Towers of Hanoi'' puzzle. @item -William M.@: Perry wrote @file{mailcap.el} (with Lars Magne +William M. Perry wrote @file{mailcap.el} (with Lars Magne Ingebrigtsen), a MIME media types configuration facility; @file{mwheel.el}, a package for supporting mouse wheels; co-wrote (with Dave Love) @file{socks.el}, a Socks v5 client; and developed the URL @@ -953,7 +952,7 @@ support for Wyse 50 terminals. He also co-wrote @file{compile.el} (q.v.@:) and @file{ada-stmt.el}. @item -Richard L.@: Pieri wrote @file{pop3.el}, a Post Office Protocol (RFC +Richard L. Pieri wrote @file{pop3.el}, a Post Office Protocol (RFC 1460) interface for Emacs. @item @@ -961,7 +960,7 @@ Fred Pierresteguy and Paul Reilly made Emacs work with X Toolkit widgets. @item -Franois Pinard, Greg McGary, and Bruno Haible wrote @file{po.el}, +François Pinard, Greg McGary, and Bruno Haible wrote @file{po.el}, support for PO translation files. @item @@ -976,12 +975,12 @@ minor mode for displaying a ruler in the header line; and structures. @item -Francesco A.@: Potorti wrote @file{cmacexp.el}, providing a command which +Francesco A. Potorti wrote @file{cmacexp.el}, providing a command which runs the C preprocessor on a region of a file and displays the results. He also expanded and redesigned the @code{etags} program. @item -Michael D.@: Prange and Steven A.@: Wood wrote @file{fortran.el}, a mode +Michael D. Prange and Steven A. Wood wrote @file{fortran.el}, a mode for editing Fortran code. @item @@ -989,7 +988,7 @@ Ashwin Ram wrote @file{refer.el}, commands to look up references in bibliography files by keyword. @item -Eric S.@: Raymond wrote @file{vc.el}, an interface to the RCS and SCCS +Eric S. Raymond wrote @file{vc.el}, an interface to the RCS and SCCS source code version control systems, with Paul Eggert; @file{gud.el}, a package for running source-level debuggers like GDB and SDB in Emacs; @file{asm-mode.el}, a mode for editing assembly language code; @@ -1005,14 +1004,14 @@ used in Emacs Lisp library files; and code to set and make use of the which each lisp function loaded into Emacs came. @item -Edward M.@: Reingold wrote the calendar and diary support, +Edward M. Reingold wrote the calendar and diary support, with contributions from Stewart Clamen (@file{cal-mayan.el}), Nachum Dershowitz (@file{cal-hebrew.el}), Paul Eggert (@file{cal-dst.el}), Steve Fisk (@file{cal-tex.el}), Michael Kifer (@file{cal-x.el}), Lara -Rios (@file{cal-menu.el}), and Denis B.@: Roegel (@file{solar.el}). +Rios (@file{cal-menu.el}), and Denis B. Roegel (@file{solar.el}). Andy Oram contributed to its documentation. Reingold also contributed to @file{tex-mode.el}, a mode for editing @TeX{} files, as did William -F.@: Schelter, Dick King, Stephen Gildea, Michael Prange, and Jacob +F. Schelter, Dick King, Stephen Gildea, Michael Prange, and Jacob Gore. @item @@ -1031,7 +1030,7 @@ VT line of terminals. @item Nick Roberts wrote @file{t-mouse.el}, for mouse support in text -terminals; and @file{gdb-ui.el}, a graphical user interface to GDB. +terminals; and @file{gdb-ui.el}, a graphical user interface to GDB@. Together with Dmitry Dzhus, he wrote @file{gdb-mi.el}, the successor to @file{gdb-ui.el}. @@ -1043,7 +1042,7 @@ into ``handwriting''. Markus Rost wrote @file{cus-test.el}, a testing framework for customize. @item -Guillermo J.@: Rozas wrote @file{scheme.el}, a mode for editing Scheme and +Guillermo J. Rozas wrote @file{scheme.el}, a mode for editing Scheme and DSSSL code. @item @@ -1067,7 +1066,7 @@ Kevin Ryde wrote @file{info-xref.el}, a library for checking references in Info files. @item -James B.@: Salem and Brewster Kahle wrote @file{completion.el}, providing +James B. Salem and Brewster Kahle wrote @file{completion.el}, providing dynamic word completion. @item @@ -1091,7 +1090,7 @@ Michael Schmidt and Tom Perrine wrote @file{modula2.el}, a mode for editing Modula-2 code, based on work by Mick Jordan and Peter Robinson. @item -Ronald S.@: Schnell wrote @file{dunnet.el}, a text adventure game. +Ronald S. Schnell wrote @file{dunnet.el}, a text adventure game. @item Philippe Schnoebelen wrote @file{gomoku.el}, a Go Moku game played @@ -1111,7 +1110,7 @@ for interactively running an SQL interpreter in an Emacs buffer; @file{cus-theme.el}, an interface for custom themes; @file{master.el}, a package for making a buffer @samp{master} over another; and @file{spam-stat.el}, for statistical detection of junk email. He also -wrote parts of the IRC client ERC (q.v.@:). +wrote parts of the IRC client ERC (q.v.). @item Randal Schwartz wrote @file{pp.el}, a pretty-printer for lisp objects. @@ -1162,7 +1161,7 @@ David Smith wrote @file{ielm.el}, a mode for interacting with the Emacs Lisp interpreter as a subprocess. @item -Paul D.@: Smith wrote @file{snmp-mode.el}. +Paul D. Smith wrote @file{snmp-mode.el}. @item William Sommerfeld wrote @file{scribe.el}, a mode for editing Scribe @@ -1204,7 +1203,7 @@ cursor'' that you can move with the keyboard and use for copying text. Ken Stevens wrote @file{ispell.el}, a spell-checker interface. @item -Kim F.@: Storm made many improvements to the Emacs display engine, +Kim F. Storm made many improvements to the Emacs display engine, process support, and networking support. He also wrote @file{bindat.el}, a package for encoding and decoding binary data; CUA mode, which allows Emacs to emulate the standard CUA key @@ -1225,7 +1224,7 @@ Olaf Sylvester wrote @file{bs.el}, a package for manipulating Emacs buffers. @item -Tibor @v{S}imko and Milan Zamazal wrote @file{slovak.el}, support for +Tibor Šimko and Milan Zamazal wrote @file{slovak.el}, support for editing text in Slovak language. @item @@ -1278,12 +1277,12 @@ for Gnus; and @file{timezone.el}, providing functions for dealing with time zones. @item -Neil W.@: Van Dyke wrote @file{webjump.el}, a ``hot links'' package. +Neil W. Van Dyke wrote @file{webjump.el}, a ``hot links'' package. @item Didier Verna wrote @file{rect.el}, a package of functions for operations on rectangle regions of text. He also contributed to Gnus -(q.v.@:). +(q.v.). @item Joakim Verona implemented ImageMagick support. @@ -1332,7 +1331,7 @@ the shift key and motion commands; and @file{dos-fns.el}, functions for use under MS-DOS. @item -Joe Wells wrote the original version of @file{apropos.el} (q.v.@:); +Joe Wells wrote the original version of @file{apropos.el} (q.v.); @file{resume.el}, support for processing command-line arguments after resuming a suspended Emacs job; and @file{mail-extr.el}, a package for extracting names and addresses from mail headers, with contributions @@ -1346,12 +1345,12 @@ mode for editing VHDL source code. John Wiegley wrote @file{align.el}, a set of commands for aligning text according to regular-expression based rules; @file{isearchb.el} for fast buffer switching; @file{timeclock.el}, a package for keeping track of -time spent on projects; the Bah' calendar support; +time spent on projects; the Bahá'í calendar support; @file{pcomplete.el}, a programmable completion facility; @file{remember.el}, a mode for jotting down things to remember; @file{eudcb-mab.el}, an address book backend for the Emacs Unified Directory Client; and @code{eshell}, a command shell implemented -entirely in Emacs Lisp. He also contributed to Org mode (q.v.@:). +entirely in Emacs Lisp. He also contributed to Org mode (q.v.). @item Mike Williams wrote @file{thingatpt.el}, a library of functions for @@ -1362,16 +1361,16 @@ Roland Winkler wrote @file{proced.el}, a system process editor. @item Bill Wohler wrote MH-E, the Emacs interface to the MH mail system; -making use of earlier work by James R.@: Larus. Satyaki Das, Peter S.@: -Galbraith, Stephen Gildea, and Jeffrey C.@: Honig also wrote various +making use of earlier work by James R. Larus. Satyaki Das, Peter S. +Galbraith, Stephen Gildea, and Jeffrey C. Honig also wrote various MH-E components. @item -Dale R.@: Worley wrote @file{emerge.el}, a package for interactively +Dale R. Worley wrote @file{emerge.el}, a package for interactively merging two versions of a file. @item -Francis J.@: Wright wrote @file{woman.el}, a package for browsing +Francis J. Wright wrote @file{woman.el}, a package for browsing manual pages without the @code{man} command. @item @@ -1429,13 +1428,13 @@ messages; @file{rfc1843.el}, an HZ decoding package; other Gnus components. @item -Ian T.@: Zimmerman wrote @file{gametree.el}. +Ian T. Zimmerman wrote @file{gametree.el}. @item Reto Zimmermann wrote @file{vera-mode.el}. @item -Neal Ziring and Felix S.@: T.@: Wu wrote @file{vi.el}, an emulation of the +Neal Ziring and Felix S. T. Wu wrote @file{vi.el}, an emulation of the VI text editor. @item diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi index 62433a5b220..7e2b1324ac9 100644 --- a/doc/emacs/anti.texi +++ b/doc/emacs/anti.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2005-2012 Free Software Foundation, Inc. +@c Copyright (C) 2005-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Antinews diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi index 5a957b02843..f3b21c491d2 100644 --- a/doc/emacs/arevert-xtra.texi +++ b/doc/emacs/arevert-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -40,7 +40,7 @@ explained in the corresponding sections. @menu * Auto Reverting the Buffer Menu:: Auto Revert of the Buffer Menu. * Auto Reverting Dired:: Auto Revert of Dired buffers. -* Supporting additional buffers:: How to add more Auto Revert support. +* Supporting additional buffers:: How to add more Auto Revert support. @end menu @node Auto Reverting the Buffer Menu @@ -66,9 +66,9 @@ operating systems. It may not work satisfactorily on some other systems. Dired buffers only auto-revert when the file list of the buffer's main -directory changes (e.g. when a new file is added). They do not +directory changes (e.g., when a new file is added). They do not auto-revert when information about a particular file changes -(e.g. when the size changes) or when inserted subdirectories change. +(e.g., when the size changes) or when inserted subdirectories change. To be sure that @emph{all} listed information is up to date, you have to manually revert using @kbd{g}, @emph{even} if auto-reverting is enabled in the Dired buffer. Sometimes, you might get the impression diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi index 07060db5af2..b9bc391d1cf 100644 --- a/doc/emacs/basic.texi +++ b/doc/emacs/basic.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Basic @chapter Basic Editing Commands @@ -107,7 +107,7 @@ just like digits. Case is ignored. of a character, using the minibuffer. If you enter a name, the command provides completion (@pxref{Completion}). If you enter a code-point, it should be as a hexadecimal number (the convention for -Unicode), or a number with a specified radix, e.g.@: @code{#o23072} +Unicode), or a number with a specified radix, e.g., @code{#o23072} (octal); @xref{Integer Basics,,, elisp, The Emacs Lisp Reference Manual}. The command then inserts the corresponding character into the buffer. For example, both of the following insert the infinity @@ -385,7 +385,7 @@ On some text terminals, Emacs may not recognize the @key{DEL} key properly. @xref{DEL Does Not Delete}, if you encounter this problem. The @key{delete} (@code{delete-forward-char}) command deletes in the -``opposite direction'': it deletes the character after point, i.e. the +``opposite direction'': it deletes the character after point, i.e., the character under the cursor. If point was at the end of a line, this joins the following line onto this one. Like @kbd{@key{DEL}}, it deletes the text in the region if the region is active (@pxref{Mark}). diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi index 8c6705cc0c9..2d3ff5b05d8 100644 --- a/doc/emacs/buffers.texi +++ b/doc/emacs/buffers.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Buffers @chapter Using Multiple Buffers @@ -44,8 +44,8 @@ variables}---variables that can have a different value in each buffer. by the largest buffer position representable by @dfn{Emacs integers}. This is because Emacs tracks buffer positions using that data type. For typical 64-bit machines, this maximum buffer size is @math{2^61 - -2} bytes, or about 2 EiB. For typical 32-bit machines, the maximum is -usually @math{2^29 - 2} bytes, or about 512 MiB. Buffer sizes are +2} bytes, or about 2 EiB@. For typical 32-bit machines, the maximum is +usually @math{2^29 - 2} bytes, or about 512 MiB@. Buffer sizes are also limited by the amount of memory in the system. @menu @@ -614,7 +614,7 @@ names (all but one of them). @vindex uniquify-buffer-name-style Other methods work by adding parts of each file's directory to the -buffer name. To select one, load the library @file{uniquify} (e.g. +buffer name. To select one, load the library @file{uniquify} (e.g., using @code{(require 'uniquify)}), and customize the variable @code{uniquify-buffer-name-style} (@pxref{Easy Customization}). diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index e0ea72902fb..1072d49ea20 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Building @chapter Compiling and Testing Programs @@ -261,7 +261,7 @@ or previous error message for a different source file. @findex next-error-follow-minor-mode You can type @kbd{C-c C-f} to toggle Next Error Follow mode. In this minor mode, ordinary cursor motion in the compilation buffer -automatically updates the source buffer, i.e.@: moving the cursor over +automatically updates the source buffer, i.e., moving the cursor over an error message causes the locus of that error to be displayed. The features of Compilation mode are also available in a minor mode @@ -324,7 +324,7 @@ nohup @var{command}; sleep 1 @ifnottex On the MS-DOS ``operating system'', asynchronous subprocesses are not supported, so @kbd{M-x compile} runs the compilation command -synchronously (i.e.@: you must wait until the command finishes before +synchronously (i.e., you must wait until the command finishes before you can do anything else in Emacs). @xref{MS-DOS}. @end ifnottex @@ -589,7 +589,7 @@ to recompile and restart the program. @findex gud-tooltip-mode @vindex gud-tooltip-echo-area GUD Tooltip mode is a global minor mode that adds tooltip support to -GUD. To toggle this mode, type @kbd{M-x gud-tooltip-mode}. It is +GUD@. To toggle this mode, type @kbd{M-x gud-tooltip-mode}. It is disabled by default. If enabled, you can move the mouse cursor over a variable, a function, or a macro (collectively called @dfn{identifiers}) to show their values in tooltips @@ -625,7 +625,7 @@ Set a breakpoint on the source line that point is on. @kbd{C-x @key{SPC}} (@code{gud-break}), when called in a source buffer, sets a debugger breakpoint on the current source line. This -command is available only after starting GUD. If you call it in a +command is available only after starting GUD@. If you call it in a buffer that is not associated with any debugger subprocess, it signals a error. @@ -756,7 +756,7 @@ This key is available only in the GUD interaction buffer. that makes sense. Because @key{TAB} serves as a completion command, you can't use it to -enter a tab as input to the program you are debugging with GDB. +enter a tab as input to the program you are debugging with GDB@. Instead, type @kbd{C-q @key{TAB}} to enter a tab. @node GUD Customization @@ -774,7 +774,7 @@ Instead, type @kbd{C-q @key{TAB}} to enter a tab. you are using DBX; @code{sdb-mode-hook}, if you are using SDB; @code{xdb-mode-hook}, if you are using XDB; @code{perldb-mode-hook}, for Perl debugging mode; @code{pdb-mode-hook}, for PDB; -@code{jdb-mode-hook}, for JDB. @xref{Hooks}. +@code{jdb-mode-hook}, for JDB@. @xref{Hooks}. The @code{gud-def} Lisp macro (@pxref{Defining Macros,,, elisp, the Emacs Lisp Reference Manual}) provides a convenient way to define an diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi index 09beabc40cb..1b182327d33 100644 --- a/doc/emacs/cal-xtra.texi +++ b/doc/emacs/cal-xtra.texi @@ -1,5 +1,5 @@ -@c This is part of the Emacs manual. -*- coding: iso-latin-1 -*- -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c This is part of the Emacs manual. -*- coding: utf-8 -*- +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -103,7 +103,7 @@ knows about. These are: @code{holiday-general-holidays}, @code{holiday-bahai-holidays}, @code{holiday-christian-holidays}, @code{holiday-hebrew-holidays}, @code{holiday-islamic-holidays}, @code{holiday-oriental-holidays}, and @code{holiday-other-holidays}. -The names should be self-explanatory; e.g.@: @code{holiday-solar-holidays} +The names should be self-explanatory; e.g., @code{holiday-solar-holidays} lists sun- and moon-related holidays. You can customize these lists of holidays to your own needs, deleting or @@ -203,7 +203,7 @@ the month (1 specifies the first occurrence, 2 the second occurrence, @minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and so on). - You can specify holidays that occur on fixed days of the Bah', + You can specify holidays that occur on fixed days of the Bahá'í, Chinese, Hebrew, Islamic, and Julian calendars too. For example, @smallexample @@ -420,7 +420,7 @@ the fourth pattern. @subsection Diary Entries Using non-Gregorian Calendars As well as entries based on the standard Gregorian calendar, your -diary can have entries based on Bah', Hebrew, or Islamic dates. +diary can have entries based on Bahá'í, Hebrew, or Islamic dates. Recognition of such entries can be time-consuming, however, and since most people don't use them, you must explicitly enable their use. If you want the diary to recognize Hebrew-date diary entries, for example, @@ -440,7 +440,7 @@ you must do this: @end smallexample @noindent -Similarly, for Islamic and Bah' entries, add +Similarly, for Islamic and Bahá'í entries, add @code{diary-islamic-list-entries} and @code{diary-islamic-mark-entries}, or @code{diary-bahai-list-entries} and @code{diary-bahai-mark-entries}. @@ -449,7 +449,7 @@ Similarly, for Islamic and Bah @vindex diary-islamic-entry-symbol These diary entries have the same formats as Gregorian-date diary entries; except that @code{diary-bahai-entry-symbol} (default @samp{B}) -must precede a Bah' date, @code{diary-hebrew-entry-symbol} (default +must precede a Bahá'í date, @code{diary-hebrew-entry-symbol} (default @samp{H}) a Hebrew date, and @code{diary-islamic-entry-symbol} (default @samp{I}) an Islamic date. Moreover, non-Gregorian month names may not be abbreviated (because the first three letters are often not unique). @@ -476,7 +476,7 @@ nonmarking if preceded by @code{diary-nonmarking-symbol} (default Here is a table of commands used in the calendar to create diary entries that match the selected date and other dates that are similar in -the Bah', Hebrew, or Islamic calendars: +the Bahá'í, Hebrew, or Islamic calendars: @table @kbd @item i h d @@ -628,7 +628,7 @@ of the diary entries, or add items. variables @code{diary-comment-start} and @code{diary-comment-end} to strings that delimit comments. The fancy display does not print comments. You might want to put meta-data for the use of other packages -(e.g.@: the appointment package, +(e.g., the appointment package, @iftex @pxref{Appointments,,,emacs, the Emacs Manual}) @end iftex @@ -851,7 +851,7 @@ Make a diary entry with today's equivalent Julian calendar date. @item %%(diary-astro-day-number) Make a diary entry with today's equivalent astronomical (Julian) day number. @item %%(diary-bahai-date) -Make a diary entry with today's equivalent Bah' calendar date. +Make a diary entry with today's equivalent Bahá'í calendar date. @item %%(diary-chinese-date) Make a diary entry with today's equivalent Chinese calendar date. @item %%(diary-coptic-date) diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index d1ddd0dce90..52b966b76e1 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -1,6 +1,6 @@ -@c This is part of the Emacs manual. -*- coding: iso-latin-1 -*- -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c This is part of the Emacs manual. -*- coding: utf-8 -*- +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Calendar/Diary @chapter The Calendar and the Diary @@ -372,7 +372,7 @@ Generate a one-month calendar (@code{cal-html-cursor-month}). @item H y Generate a calendar file for each month of a year, as well as an index page (@code{cal-html-cursor-year}). By default, this command writes -files to a @var{yyyy} subdirectory - if this is altered some hyperlinks +files to a @var{yyyy} subdirectory---if this is altered some hyperlinks between years will not work. @end table @@ -522,7 +522,7 @@ holidays centered around a different month, use @kbd{C-u M-x holidays}, which prompts for the month and year. The holidays known to Emacs include United States holidays and the -major Bah', Chinese, Christian, Islamic, and Jewish holidays; also the +major Bahá'í, Chinese, Christian, Islamic, and Jewish holidays; also the solstices and equinoxes. @findex list-holidays @@ -760,8 +760,8 @@ days are named by combining one of ten ``celestial stems'' with one of twelve ``terrestrial branches'' for a total of sixty names that are repeated in a cycle of sixty. -@cindex Bah' calendar - The Bah' calendar system is based on a solar cycle of 19 months with +@cindex Bahá'í calendar + The Bahá'í calendar system is based on a solar cycle of 19 months with 19 days each. The four remaining ``intercalary'' days are placed between the 18th and 19th months. @@ -801,7 +801,7 @@ Display French Revolutionary date for selected day (@code{calendar-french-print-date}). @findex calendar-bahai-print-date @item p b -Display Bah' date for selected day +Display Bahá'í date for selected day (@code{calendar-bahai-print-date}). @findex calendar-chinese-print-date @item p C @@ -869,7 +869,7 @@ Move to a date specified in the Julian calendar Move to a date specified with an astronomical (Julian) day number (@code{calendar-astro-goto-day-number}). @item g b -Move to a date specified in the Bah' calendar +Move to a date specified in the Bahá'í calendar (@code{calendar-bahai-goto-date}). @item g h Move to a date specified in the Hebrew calendar @@ -1551,7 +1551,7 @@ diary file and iCalendar files, which are defined in ``RFC 2445---Internet Calendaring and Scheduling Core Object Specification (iCalendar)'' (as well as the earlier vCalendar format). -@c Importing works for ``ordinary'' (i.e. non-recurring) events, but +@c Importing works for ``ordinary'' (i.e., non-recurring) events, but @c (at present) may not work correctly (if at all) for recurring events. @c Exporting of diary files into iCalendar files should work correctly @c for most diary entries. This feature is a work in progress, so the diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index d4573eed5a8..19b439afc7f 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Emacs Invocation @appendix Command Line Arguments for Emacs Invocation @@ -567,16 +567,15 @@ terminal specified by @env{TERM}. This defaults to 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, it tries @env{TMP}, then -@env{TEMP}, and finally @file{/tmp}. But on MS-Windows and MS-DOS, -Emacs tries @env{TEMP}, then @env{TMPDIR}, then @env{TMP}, and finally -@file{c:/temp}. +@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 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 +appropriate for the country code returned by DOS@. On MS-Windows, Emacs does not use @env{TZ} at all. @item USER The user's login name. See also @env{LOGNAME}. On MS-DOS, this @@ -747,7 +746,7 @@ Use @var{font} as the default font. When passing a font name to Emacs on the command line, you may need to ``quote'' it, by enclosing it in quotation marks, if it contains -characters that the shell treats specially (e.g.@: spaces). For +characters that the shell treats specially (e.g., spaces). For example: @smallexample @@ -839,7 +838,7 @@ otherwise use an appropriate standard mode for @var{num} colors. Depending on your terminal's capabilities, Emacs might be able to turn on a color mode for 8, 16, 88, or 256 as the value of @var{num}. If there is no mode that supports @var{num} colors, Emacs acts as if -@var{num} were 0, i.e.@: it uses the terminal's default color support +@var{num} were 0, i.e., it uses the terminal's default color support mode. @end table If @var{mode} is omitted, it defaults to @var{ansi8}. @@ -1070,7 +1069,7 @@ it. By default, Emacs uses an icon containing the Emacs logo. On desktop environments such as Gnome, this icon is also displayed in -other contexts, e.g.@: when switching into an Emacs frame. The +other contexts, e.g., when switching into an Emacs frame. The @samp{-nbi} or @samp{--no-bitmap-icon} option tells Emacs to let the window manager choose what sort of icon to use---usually just a small rectangle containing the frame's title. diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi index e63a98a9722..1c0746a9dd0 100644 --- a/doc/emacs/commands.texi +++ b/doc/emacs/commands.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Characters, Keys and Commands @@ -53,7 +53,7 @@ holding down the @key{Ctrl} key while pressing @kbd{a}; we will refer to this as @kbd{C-a} for short. Similarly @kbd{Meta-a}, or @kbd{M-a} for short, is entered by holding down the @key{Alt} key and pressing @kbd{a}. Modifier keys can also be applied to non-alphanumerical -characters, e.g. @kbd{C-@key{F1}} or @kbd{M-@key{left}}. +characters, e.g., @kbd{C-@key{F1}} or @kbd{M-@key{left}}. @cindex @key{ESC} replacing @key{Meta} key You can also type Meta characters using two-character sequences diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index a614126dbc0..fae61252724 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Customization @chapter Customization @@ -555,7 +555,7 @@ or disabled as a unit. You can use Custom themes to switch easily between various collections of settings, and to transfer such collections from one computer to another. - A Custom theme is stored an Emacs Lisp source file. If the name of + A Custom theme is stored as an Emacs Lisp source file. If the name of the Custom theme is @var{name}, the theme file is named @file{@var{name}-theme.el}. @xref{Creating Custom Themes}, for the format of a theme file and how to make one. @@ -610,10 +610,10 @@ always considered safe. @vindex custom-enabled-themes Setting or saving Custom themes actually works by customizing the variable @code{custom-enabled-themes}. The value of this variable is -a list of Custom theme names (as Lisp symbols, e.g.@: @code{tango}). +a list of Custom theme names (as Lisp symbols, e.g., @code{tango}). Instead of using the @file{*Custom Themes*} buffer to set @code{custom-enabled-themes}, you can customize the variable using the -usual customization interface, e.g.@: with @kbd{M-x customize-option}. +usual customization interface, e.g., with @kbd{M-x customize-option}. Note that Custom themes are not allowed to set @code{custom-enabled-themes} themselves. @@ -1305,7 +1305,7 @@ files in that subdirectory. @example ((nil . ((indent-tabs-mode . t) (fill-column . 80))) - (c-mode . ((c-file-style . "BSD"))) + (c-mode . ((c-file-style . "BSD") (subdirs . nil))) ("src/imported" . ((nil . ((change-log-default-name @@ -1648,7 +1648,7 @@ you can specify them in your initialization file by writing Lisp code. @findex kbd There are several ways to write a key binding using Lisp. The -simplest is to use the @code{kbd} macro, which converts a textual +simplest is to use the @code{kbd} function, which converts a textual representation of a key sequence---similar to how we have written key sequences in this manual---into a form that can be passed as an argument to @code{global-set-key}. For example, here's how to bind @@ -1676,11 +1676,11 @@ and mouse events: (global-set-key (kbd "") 'mouse-save-then-kill) @end example - Instead of using the @code{kbd} macro, you can use a Lisp string or -vector to specify the key sequence. Using a string is simpler, but -only works for @acronym{ASCII} characters and Meta-modified -@acronym{ASCII} characters. For example, here's how to bind @kbd{C-x -M-l} to @code{make-symbolic-link} (@pxref{Misc File Ops}): + Instead of using @code{kbd}, you can use a Lisp string or vector to +specify the key sequence. Using a string is simpler, but only works +for @acronym{ASCII} characters and Meta-modified @acronym{ASCII} +characters. For example, here's how to bind @kbd{C-x M-l} to +@code{make-symbolic-link} (@pxref{Misc File Ops}): @example (global-set-key "\C-x\M-l" 'make-symbolic-link) @@ -2329,7 +2329,7 @@ Here a full file name is used, so no searching is done. @cindex loading Lisp libraries automatically @cindex autoload Lisp libraries Tell Emacs to find the definition for the function @code{myfunction} -by loading a Lisp library named @file{mypackage} (i.e.@: a file +by loading a Lisp library named @file{mypackage} (i.e., a file @file{mypackage.elc} or @file{mypackage.el}): @example @@ -2496,7 +2496,7 @@ editor customizations even if you are running as the super user. More precisely, Emacs first determines which user's init file to use. It gets your user name from the environment variables @env{LOGNAME} and -@env{USER}; if neither of those exists, it uses effective user-ID. +@env{USER}; if neither of those exists, it uses effective user-ID@. If that user name matches the real user-ID, then Emacs uses @env{HOME}; otherwise, it looks up the home directory corresponding to that user name in the system's data base of users. diff --git a/doc/emacs/dired-xtra.texi b/doc/emacs/dired-xtra.texi index 81de9a800f9..e0fec06ab1a 100644 --- a/doc/emacs/dired-xtra.texi +++ b/doc/emacs/dired-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 69b72b2c73a..f4ca6c30a5a 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Dired @chapter Dired, the Directory Editor @@ -968,7 +968,7 @@ is the second argument. The output of the @command{diff} program is shown in a buffer using Diff mode (@pxref{Comparing Files}). If the region is active, the default for the file read using the -minibuffer is the file at the mark (i.e.@: the ordinary Emacs mark, +minibuffer is the file at the mark (i.e., the ordinary Emacs mark, not a Dired mark; @pxref{Setting Mark}). Otherwise, if the file at point has a backup file (@pxref{Backup}), that is the default. diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 876c46bdf1a..f5ec8946e1b 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Display @@ -249,14 +249,14 @@ variables @code{scroll-up-aggressively} and position of point after scrolling. The value of @code{scroll-up-aggressively} should be either @code{nil} (the default), or a floating point number @var{f} between 0 and 1. The -latter means that when point goes below the bottom window edge (i.e.@: +latter means that when point goes below the bottom window edge (i.e., scrolling forward), Emacs scrolls the window so that point is @var{f} parts of the window height from the bottom window edge. Thus, larger @var{f} means more aggressive scrolling: more new text is brought into view. The default value, @code{nil}, is equivalent to 0.5. Likewise, @code{scroll-down-aggressively} is used when point goes -above the bottom window edge (i.e.@: scrolling backward). The value +above the bottom window edge (i.e., scrolling backward). The value specifies how far point should be from the top margin of the window after scrolling. Thus, as with @code{scroll-up-aggressively}, a larger value is more aggressive. @@ -1089,7 +1089,7 @@ buffer text, so blank lines at the end of the buffer stand out because they lack this image. To enable this feature, set the buffer-local variable @code{indicate-empty-lines} to a non-@code{nil} value. You can enable or disable this feature for all new buffers by setting the -default value of this variable, e.g.@: @code{(setq-default +default value of this variable, e.g., @code{(setq-default indicate-empty-lines t)}. @cindex Whitespace mode @@ -1258,7 +1258,7 @@ line looks like this: Here @var{hh} and @var{mm} are the hour and minute, followed always by @samp{am} or @samp{pm}. @var{l.ll} is the average number, collected for the last few minutes, of processes in the whole system that were -either running or ready to run (i.e.@: were waiting for an available +either running or ready to run (i.e., were waiting for an available processor). (Some fields may be missing if your operating system cannot support them.) If you prefer time display in 24-hour format, set the variable @code{display-time-24hr-format} to @code{t}. @@ -1369,7 +1369,7 @@ as octal escape sequences instead of caret escape sequences. Some non-@acronym{ASCII} characters have the same appearance as an @acronym{ASCII} space or hyphen (minus) character. Such characters can cause problems if they are entered into a buffer without your -realization, e.g.@: by yanking; for instance, source code compilers +realization, e.g., by yanking; for instance, source code compilers typically do not treat non-@acronym{ASCII} spaces as whitespace characters. To deal with this problem, Emacs displays such characters specially: it displays @code{U+00A0} (no-break space) with the diff --git a/doc/emacs/doclicense.texi b/doc/emacs/doclicense.texi index 51342e96d60..9c3bbe56e91 100644 --- a/doc/emacs/doclicense.texi +++ b/doc/emacs/doclicense.texi @@ -1,4 +1,3 @@ -@c -*-texinfo-*- @c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @@ -6,7 +5,7 @@ @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies @@ -93,16 +92,16 @@ An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain -@sc{ascii} without markup, Texinfo input format, La@TeX{} input -format, @acronym{SGML} or @acronym{XML} using a publicly available -@acronym{DTD}, and standard-conforming simple @acronym{HTML}, -PostScript or @acronym{PDF} designed for human modification. Examples -of transparent image formats include @acronym{PNG}, @acronym{XCF} and -@acronym{JPG}. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, @acronym{SGML} or -@acronym{XML} for which the @acronym{DTD} and/or processing tools are -not generally available, and the machine-generated @acronym{HTML}, -PostScript or @acronym{PDF} produced by some word processors for +ASCII without markup, Texinfo input format, La@TeX{} input +format, SGML or XML using a publicly available +DTD, and standard-conforming simple HTML, +PostScript or PDF designed for human modification. Examples +of transparent image formats include PNG, XCF and +JPG@. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, SGML or +XML for which the DTD and/or processing tools are +not generally available, and the machine-generated HTML, +PostScript or PDF produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, @@ -482,7 +481,7 @@ license notices just after the title page: @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with@dots{}Texts.'' line with this: +replace the ``with@dots{}Texts.''@: line with this: @smallexample @group @@ -501,8 +500,6 @@ recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. - @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: - diff --git a/doc/emacs/emacs-xtra.texi b/doc/emacs/emacs-xtra.texi index 78cac7d8a10..f67ed3d5cad 100644 --- a/doc/emacs/emacs-xtra.texi +++ b/doc/emacs/emacs-xtra.texi @@ -11,29 +11,22 @@ @copying This manual describes specialized features of Emacs. -Copyright @copyright{} 2004-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2004--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU -Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the -license is included in the section entitled ``GNU Free Documentation -License'' in the Emacs manual. +Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +modify this GNU manual.'' @end quotation @end copying -@documentencoding ISO-8859-1 +@documentencoding UTF-8 @dircategory Emacs @direntry @@ -60,7 +53,7 @@ license to the document, as described in section 6 of the license. @menu * Introduction:: What documentation belongs here? @iftex -* Picture Mode:: Editing pictures made up of characters using +* Picture Mode:: Editing pictures made up of characters using the quarter-plane screen model. * Autorevert:: Auto Reverting non-file buffers. @@ -71,6 +64,7 @@ license to the document, as described in section 6 of the license. * Fortran:: Fortran mode and its special features. * MS-DOS:: Using Emacs on MS-DOS. @end iftex +* GNU Free Documentation License:: The license for this documentation. * Index:: @end menu @@ -131,6 +125,10 @@ the Emacs manual. @lowersections @end iftex +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @node Index @unnumbered Index diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 005215de645..d5968a5f7cd 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -1,4 +1,4 @@ -\input texinfo @c -*- coding: iso-latin-1 -*- +\input texinfo @c -*- coding: utf-8 -*- @setfilename ../../info/emacs @settitle GNU Emacs Manual @@ -26,7 +26,7 @@ This is the @cite{GNU Emacs Manual}, @end ifnottex updated for Emacs version @value{EMACSVER}. -Copyright @copyright{} 1985-1987, 1993-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1985--1987, 1993--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -44,7 +44,7 @@ developing GNU and promoting software freedom.'' @end quotation @end copying -@documentencoding ISO-8859-1 +@documentencoding UTF-8 @dircategory Emacs @direntry @@ -111,10 +111,21 @@ Cover art by Etienne Suvasa; cover design by Matt Lee. @top The Emacs Editor Emacs is the extensible, customizable, self-documenting real-time -display editor. This Info file describes how to edit with Emacs and +display editor. This manual describes how to edit with Emacs and some of the ways to customize it; it corresponds to GNU Emacs version @value{EMACSVER}. +@ifset WWW_GNU_ORG +@html +The homepage for GNU Emacs is at +http://www.gnu.org/software/emacs/.
+To view this manual in other formats, click +here.
+You can also purchase a printed copy from the +FSF store. +@end html +@end ifset + @ifinfo If you are reading this in Emacs, type @kbd{h} to read a basic introduction to the Info documentation system. @@ -1323,13 +1334,13 @@ when you get it, not just free for the manufacturer. If you find GNU Emacs useful, please @strong{send a donation} to the Free Software Foundation to support our work. Donations to the Free -Software Foundation are tax deductible in the US. If you use GNU Emacs +Software Foundation are tax deductible in the US@. If you use GNU Emacs at your workplace, please suggest that the company make a donation. For more information on how you can help, see @url{http://www.gnu.org/help/help.html}. We also sell hardcopy versions of this manual and @cite{An -Introduction to Programming in Emacs Lisp}, by Robert J.@: Chassell. +Introduction to Programming in Emacs Lisp}, by Robert J. Chassell. You can visit our online store at @url{http://shop.fsf.org/}. The income from sales goes to support the foundation's purpose: the development of new free software, and improvements to our existing @@ -1350,61 +1361,61 @@ USA @unnumberedsec Acknowledgments Contributors to GNU Emacs include Jari Aalto, Per Abrahamsen, Tomas -Abrahamsson, Jay K.@: Adams, Alon Albert, Michael Albinus, Nagy -Andras, Benjamin Andresen, Ralf Angeli, Dmitry Antipov, Joe Arceneaux, Emil strm, +Abrahamsson, Jay K. Adams, Alon Albert, Michael Albinus, Nagy +Andras, Benjamin Andresen, Ralf Angeli, Dmitry Antipov, Joe Arceneaux, Emil Åström, Miles Bader, David Bakhash, Juanma Barranquero, Eli Barzilay, Thomas -Baumann, Steven L.@: Baur, Jay Belanger, Alexander L.@: Belikoff, +Baumann, Steven L. Baur, Jay Belanger, Alexander L. Belikoff, Thomas Bellman, Scott Bender, Boaz Ben-Zvi, Sergey Berezin, Karl -Berry, Anna M.@: Bigatti, Ray Blaak, Martin Blais, Jim Blandy, Johan -Bockgrd, Jan Bcker, Joel Boehland, Lennart Borgman, Per Bothner, +Berry, Anna M. Bigatti, Ray Blaak, Martin Blais, Jim Blandy, Johan +Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner, Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin -Broadey, Vincent Broman, Michael Brouwer, David M.@: Brown, Stefan Bruda, -Georges Brun-Cottan, Joe Buehler, Scott Byer, W@l{}odek Bzyl, +Broadey, Vincent Broman, Michael Brouwer, David M. Brown, Stefan Bruda, +Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl, Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione, -Edward O'Connor, Christoph Conrad, Ludovic Courts, Andrew Csillag, +Edward O'Connor, Christoph Conrad, Ludovic Courtès, Andrew Csillag, Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri -Ding, Jan Djrv, Lawrence R.@: Dodd, Carsten Dominik, Scott Draves, +Ding, Jan Djärv, Lawrence R. Dodd, Carsten Dominik, Scott Draves, Benjamin Drieu, Viktor Dukhovni, Jacques Duthen, Dmitry Dzhus, John Eaton, Rolf Ebert, Carl Edman, David Edmondson, Paul Eggert, Stephen -Eglen, Christian Egli, Torbjrn Einarsson, Tsugutomo Enami, David +Eglen, Christian Egli, Torbjörn Einarsson, Tsugutomo Enami, David Engster, Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, Frederick Farnbach, Oscar Figueiredo, Fred Fish, Steve Fisk, Karl Fogel, Gary -Foster, Eric S.@: Fraga, Romain Francoise, Noah Friedman, Andreas -Fuchs, Shigeru Fukaya, Hallvard Furuseth, Keith Gabryelski, Peter S.@: -Galbraith, Kevin Gallagher, Kevin Gallo, Juan Len Lahoz Garca, +Foster, Eric S. Fraga, Romain Francoise, Noah Friedman, Andreas +Fuchs, Shigeru Fukaya, Hallvard Furuseth, Keith Gabryelski, Peter S. +Galbraith, Kevin Gallagher, Fabián E. Gallina, Kevin Gallo, Juan León Lahoz García, Howard Gayle, Daniel German, Stephen Gildea, Julien Gilles, David Gillespie, Bob Glickstein, Deepak Goel, David De La Harpe Golden, Boris Goldowsky, David Goodger, Chris Gray, Kevin Greiner, Michelangelo Grigni, Odd -Gripenstam, Kai Grojohann, Michael Gschwind, Bastien Guerry, Henry +Gripenstam, Kai Großjohann, Michael Gschwind, Bastien Guerry, Henry Guillaume, Doug Gwyn, Bruno Haible, Ken'ichi Handa, Lars Hansen, Chris -Hanson, Jesper Harder, Alexandru Harsanyi, K.@: Shane Hartman, John -Heidemann, Jon K.@: Hellan, Magnus Henoch, Markus Heritsch, Dirk +Hanson, Jesper Harder, Alexandru Harsanyi, K. Shane Hartman, John +Heidemann, Jon K. Hellan, Magnus Henoch, Markus Heritsch, Dirk Herrmann, Karl Heuer, Manabu Higashida, Konrad Hinsen, Anders Holst, -Jeffrey C.@: Honig, Tassilo Horn, Kurt Hornik, Tom Houlder, Joakim +Jeffrey C. Honig, Tassilo Horn, Kurt Hornik, Tom Houlder, Joakim Hove, Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue, Philip Jackson, Martyn Jago, Pavel Janik, Paul Jarc, Ulf Jasper, -Thorsten Jolitz, Michael K.@: Johnson, Kyle Jones, Terry Jones, Simon -Josefsson, Alexandre Julliard, Arne Jrgensen, Tomoji Kagatani, +Thorsten Jolitz, Michael K. Johnson, Kyle Jones, Terry Jones, Simon +Josefsson, Alexandre Julliard, Arne Jørgensen, Tomoji Kagatani, Brewster Kahle, Tokuya Kameshima, Lute Kamstra, Ivan Kanis, David Kastrup, David Kaufman, Henry Kautz, Taichi Kawabata, Taro Kawagishi, Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg, Karel -Kl@v{c}, Shuhei Kobayashi, Pavel Kobyakov, Larry K.@: Kolodney, David -M.@: Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, -Ryszard Kubiak, Igor Kuzmin, David Kgedal, Daniel LaLiberte, Karl -Landstrom, Mario Lang, Aaron Larson, James R.@: Larus, Vinicius Jose +Klíč, Shuhei Kobayashi, Pavel Kobyakov, Larry K. Kolodney, David +M. Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, +Ryszard Kubiak, Igor Kuzmin, David Kågedal, Daniel LaLiberte, Karl +Landstrom, Mario Lang, Aaron Larson, James R. Larus, Vinicius Jose Latorre, Werner Lemberg, Frederic Lepied, Peter Liljenberg, Christian Limpach, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link, -Juri Linkov, Francis Litterio, Sergey Litvinov, Emilio C.@: Lopes, -Martin Lorentzon, Dave Love, Eric Ludlam, Kroly L@H{o}rentey, Sascha -Ldecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie, -Christopher J.@: Madsen, Neil M.@: Mager, Ken Manheimer, Bill Mann, +Juri Linkov, Francis Litterio, Sergey Litvinov, Emilio C. Lopes, +Martin Lorentzon, Dave Love, Eric Ludlam, Károly Lőrentey, Sascha +Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie, +Christopher J. Madsen, Neil M. Mager, Ken Manheimer, Bill Mann, Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin, Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will Mengarini, David -Megginson, Stefan Merten, Ben A.@: Mesander, Wayne Mesard, Brad +Megginson, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Moellmann, Stefan Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris, Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, @@ -1412,44 +1423,44 @@ Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, Andrew Norman, Kentaro Ohkouchi, Christian Ohler, Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, -Pieter E.@: J.@: Pareit, Ross Patterson, David Pearson, Juan Pechiar, -Jeff Peck, Damon Anton Permezel, Tom Perrine, William M.@: Perry, Per -Persson, Jens Petersen, Daniel Pfeiffer, Justus Piater, Richard L.@: -Pieri, Fred Pierresteguy, Franois Pinard, Daniel Pittman, Christian -Plaunt, Alexander Pohoyda, David Ponce, Francesco A.@: Potorti, -Michael D.@: Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa, Ashwin -Ram, Eric S.@: Raymond, Paul Reilly, Edward M.@: Reingold, David +Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, +Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per +Persson, Jens Petersen, Daniel Pfeiffer, Justus Piater, Richard L. +Pieri, Fred Pierresteguy, François Pinard, Daniel Pittman, Christian +Plaunt, Alexander Pohoyda, David Ponce, Francesco A. Potorti, +Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa, Ashwin +Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, David Reitter, Alex Rezinsky, Rob Riepel, Lara Rios, Adrian Robert, Nick -Roberts, Roland B.@: Roberts, John Robinson, Denis B.@: Roegel, Danny +Roberts, Roland B. Roberts, John Robinson, Denis B. Roegel, Danny Roozendaal, Sebastian Rose, William Rosenblatt, Markus Rost, Guillermo -J.@: Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, Wolfgang -Rupprecht, Benjamin Rutt, Kevin Ryde, James B.@: Salem, Masahiko Sato, +J. Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, Wolfgang +Rupprecht, Benjamin Rutt, Kevin Ryde, James B. Salem, Masahiko Sato, Timo Savola, Jorgen Schaefer, Holger Schauer, William Schelter, Ralph -Schleicher, Gregor Schmid, Michael Schmidt, Ronald S.@: Schnell, +Schleicher, Gregor Schmid, Michael Schmidt, Ronald S. Schnell, Philippe Schnoebelen, Jan Schormann, Alex Schroeder, Stefan Schoef, Rainer Schoepf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham, Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor -@v{S}imko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, -David Smith, Paul D.@: Smith, Wilson Snyder, William Sommerfeld, Simon +Šimko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, +David Smith, Paul D. Smith, Wilson Snyder, William Sommerfeld, Simon South, Andre Spiegel, Michael Staats, Thomas Steffen, Ulf Stegemann, Reiner Steib, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken -Stevens, Andy Stewart, Jonathan Stigelman, Martin Stjernholm, Kim F.@: +Stevens, Andy Stewart, Jonathan Stigelman, Martin Stjernholm, Kim F. Storm, Steve Strassmann, Christopher Suckling, Olaf Sylvester, Naoto Takahashi, Steven Tamm, Luc Teirlinck, Jean-Philippe Theberge, Jens -T.@: Berger Thielemann, Spencer Thomas, Jim Thompson, Toru Tomabechi, +T. Berger Thielemann, Spencer Thomas, Jim Thompson, Toru Tomabechi, David O'Toole, Markus Triska, Tom Tromey, Enami Tsugutomo, Eli Tziperman, Daiki Ueno, Masanobu Umeda, Rajesh Vaidheeswarran, Neil -W.@: Van Dyke, Didier Verna, Joakim Verona, Ulrik Vieth, Geoffrey +W. Van Dyke, Didier Verna, Joakim Verona, Ulrik Vieth, Geoffrey Voelker, Johan Vromans, Inge Wallin, John Paul Wallington, Colin Walters, Barry Warsaw, Christoph Wedler, Ilja Weis, Zhang Weize, Morten Welinder, Joseph Brian Wells, Rodney Whitby, John Wiegley, Sascha Wilde, Ed Wilkinson, Mike Williams, Roland Winkler, Bill -Wohler, Steven A.@: Wood, Dale R.@: Worley, Francis J.@: Wright, Felix -S.@: T.@: Wu, Tom Wurgler, Yamamoto Mitsuharu, Katsumi Yamaoka, +Wohler, Steven A. Wood, Dale R. Worley, Francis J. Wright, Felix +S. T. Wu, Tom Wurgler, Yamamoto Mitsuharu, Katsumi Yamaoka, Masatake Yamato, Jonathan Yavner, Ryan Yeske, Ilya Zakharevich, Milan Zamazal, Victor Zandy, Eli Zaretskii, Jamie Zawinski, Andrew Zhilin, -Shenghuo Zhu, Piotr Zielinski, Ian T.@: Zimmermann, Reto Zimmermann, +Shenghuo Zhu, Piotr Zielinski, Ian T. Zimmermann, Reto Zimmermann, Neal Ziring, Teodor Zlatanov, and Detlev Zundel. @end iftex diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi index 552580ef851..74775e51261 100644 --- a/doc/emacs/emerge-xtra.texi +++ b/doc/emacs/emerge-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -186,12 +186,12 @@ haven't made a choice. All differences start in the default-A state which one alternative is ``preferred'' (see below). When you select a difference, its state changes from default-A or -default-B to plain A or B. Thus, the selected difference never has +default-B to plain A or B@. Thus, the selected difference never has state default-A or default-B, and these states are never displayed in the mode line. The command @kbd{d a} chooses default-A as the default state, and @kbd{d -b} chooses default-B. This chosen default applies to all differences +b} chooses default-B@. This chosen default applies to all differences that you have never selected and for which no alternative is preferred. If you are moving through the merge sequentially, the differences you haven't selected are those following the selected one. Thus, while @@ -375,7 +375,7 @@ While this example shows C preprocessor conditionals delimiting the two alternative versions, you can specify the strings to use by setting the variable @code{emerge-combine-versions-template} to a string of your choice. In the string, @samp{%a} says where to put version A, and -@samp{%b} says where to put version B. The default setting, which +@samp{%b} says where to put version B@. The default setting, which produces the results shown above, looks like this: @example diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi index 224ab356d08..bb89e6ffd8b 100644 --- a/doc/emacs/entering.texi +++ b/doc/emacs/entering.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Entering and Exiting Emacs diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 8b609891caf..1f78747eaa6 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Files @chapter File Handling @@ -72,7 +72,7 @@ directory into the minibuffer as the initial contents. You can inhibit this insertion by changing the variable @code{insert-default-directory} to @code{nil} (@pxref{Minibuffer File}). Regardless, Emacs always assumes that any relative file name -is relative to the default directory, e.g. entering a file name +is relative to the default directory, e.g., entering a file name without a directory specifies a file in the default directory. @findex cd @@ -734,10 +734,10 @@ file. @cindex locking files When you make the first modification in an Emacs buffer that is visiting a file, Emacs records that the file is @dfn{locked} by you. -(It does this by creating a specially-named symbolic link in the same -directory.) Emacs removes the lock when you save the changes. The -idea is that the file is locked whenever an Emacs buffer visiting it -has unsaved changes. +(It does this by creating a specially-named symbolic link or regular +file with special contents in the same directory.) Emacs removes the +lock when you save the changes. The idea is that the file is locked +whenever an Emacs buffer visiting it has unsaved changes. @vindex create-lockfiles You can prevent the creation of lock files by setting the variable @@ -773,15 +773,15 @@ spurious, just use @kbd{p} to tell Emacs to go ahead anyway. multiple names, Emacs does not prevent two users from editing it simultaneously under different names. - A lock file cannot be written in some circumstances, e.g. if Emacs -lacks the system permissions or the system does not support symbolic -links. In these cases, Emacs can still detect the collision when you -try to save a file, by checking the file's last-modification date. If -the file has changed since the last time Emacs visited or saved it, -that implies that changes have been made in some other way, and will -be lost if Emacs proceeds with saving. Emacs then displays a warning -message and asks for confirmation before saving; answer @kbd{yes} to -save, and @kbd{no} or @kbd{C-g} cancel the save. + A lock file cannot be written in some circumstances, e.g., if Emacs +lacks the system permissions or cannot create lock files for some +other reason. In these cases, Emacs can still detect the collision +when you try to save a file, by checking the file's last-modification +date. If the file has changed since the last time Emacs visited or +saved it, that implies that changes have been made in some other way, +and will be lost if Emacs proceeds with saving. Emacs then displays a +warning message and asks for confirmation before saving; answer +@kbd{yes} to save, and @kbd{no} or @kbd{C-g} cancel the save. If you are notified that simultaneous editing has already taken place, one way to compare the buffer to its file is the @kbd{M-x @@ -1937,8 +1937,7 @@ or taller than the frame, the usual point motion keys (@kbd{C-f}, displayed. If the image can be animated, the command @kbd{RET} (@code{image-toggle-animation}) starts or stops the animation. Animation plays once, unless the option @code{image-animate-loop} is -non-@code{nil}. Currently, Emacs only supports animation in GIF -files. +non-@code{nil}. @cindex ImageMagick support @vindex imagemagick-enabled-types @@ -1948,7 +1947,7 @@ can use ImageMagick to render a wide variety of images. The variable @code{imagemagick-enabled-types} lists the image types that Emacs may render using ImageMagick; each element in the list should be an internal ImageMagick name for an image type, as a symbol or an -equivalent string (e.g.@: @code{BMP} for @file{.bmp} images). To +equivalent string (e.g., @code{BMP} for @file{.bmp} images). To enable ImageMagick for all possible image types, change @code{imagemagick-enabled-types} to @code{t}. The variable @code{imagemagick-types-inhibit} lists the image types which should diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi index b9199eba553..b6eb1ed11a2 100644 --- a/doc/emacs/fixit.texi +++ b/doc/emacs/fixit.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Fixit @chapter Commands for Fixing Typos diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi index 43e2e63863e..da618fc4841 100644 --- a/doc/emacs/fortran-xtra.texi +++ b/doc/emacs/fortran-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -89,7 +89,7 @@ Move to the beginning of the next statement @item C-c C-p Move to the beginning of the previous statement (@code{fortran-previous-statement}/@code{f90-previous-statement}). -If there is no previous statement (i.e. if called from the first +If there is no previous statement (i.e., if called from the first statement in the buffer), move to the start of the buffer. @kindex C-c C-e @r{(F90 mode)} diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 0ce5c64c0eb..5365bdc6e03 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -1,12 +1,12 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Frames @chapter Frames and Graphical Displays @cindex frames - When Emacs is started on a graphical display, e.g.@: on the X Window + When Emacs is started on a graphical display, e.g., on the X Window System, it occupies a graphical system-level ``window''. In this manual, we call this a @dfn{frame}, reserving the word ``window'' for the part of the frame used for displaying a buffer. A frame initially @@ -77,8 +77,8 @@ for doing so on MS-DOS). Move point to where you click (@code{mouse-set-point}). @item Drag-Mouse-1 -Activate the region around the text selected by dragging, and copy it -to the kill ring (@code{mouse-set-region}). +Activate the region around the text selected by dragging, and put the +text in the primary selection (@code{mouse-set-region}). @item Mouse-2 Move point to where you click, and insert the contents of the primary @@ -246,8 +246,8 @@ Select the text you drag across, in the form of whole lines. @vindex mouse-highlight Some Emacs buffers include @dfn{buttons}, or @dfn{hyperlinks}: -pieces of text that perform some action (e.g.@: following a reference) -when activated (e.g.@: by clicking on them). Usually, a button's text +pieces of text that perform some action (e.g., following a reference) +when activated (e.g., by clicking on them). Usually, a button's text is visually highlighted: it is underlined, or a box is drawn around it. If you move the mouse over a button, the shape of the mouse cursor changes and the button lights up. If you change the variable @@ -631,7 +631,7 @@ Monospace Bold Italic 12 @cindex X Logical Font Description The third way to specify a font is to use an @dfn{XLFD} (@dfn{X Logical Font Description}). This is the traditional method for -specifying fonts under X. Each XLFD consists of fourteen words or +specifying fonts under X@. Each XLFD consists of fourteen words or numbers, separated by dashes, like this: @example @@ -644,7 +644,7 @@ characters (including none), and @samp{?} matches any single character. However, matching is implementation-dependent, and can be inaccurate when wildcards match dashes in a long name. For reliable results, supply all 14 dashes and use wildcards only within a field. -Case is insignificant in an XLFD. The syntax for an XLFD is as +Case is insignificant in an XLFD@. The syntax for an XLFD is as follows: @example @@ -659,7 +659,7 @@ The entries have the following meanings: @item maker The name of the font manufacturer. @item family -The name of the font family (e.g.@: @samp{courier}). +The name of the font family (e.g., @samp{courier}). @item weight The font weight---normally either @samp{bold}, @samp{medium} or @samp{light}. Some font names support other values. @@ -1067,7 +1067,7 @@ attributes of the tooltip text are specified by the @code{tooltip} face, and by X resources (@pxref{X Resources}). @dfn{GUD tooltips} are special tooltips that show the values of -variables when debugging a program with GUD. @xref{Debugger +variables when debugging a program with GUD@. @xref{Debugger Operation}. @node Mouse Avoidance diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi index 0912cfe5311..ee41313c10f 100644 --- a/doc/emacs/glossary.texi +++ b/doc/emacs/glossary.texi @@ -1,12 +1,12 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Glossary @unnumbered Glossary @table @asis -@anchor{Glossary - Abbrev} +@anchor{Glossary---Abbrev} @item Abbrev An abbrev is a text string that expands into a different text string when present in the buffer. For example, you might define a few letters @@ -14,7 +14,7 @@ as an abbrev for a long phrase that you want to insert frequently. @xref{Abbrevs}. @item Aborting -Aborting means getting out of a recursive edit (q.v.@:). The +Aborting means getting out of a recursive edit (q.v.). The commands @kbd{C-]} and @kbd{M-x top-level} are used for this. @xref{Quitting}. @@ -29,7 +29,7 @@ key labeled @key{ALT} that is really a @key{META} key.) @xref{User Input, Alt}. @item Argument -@xref{Glossary - Numeric Argument}. +@xref{Glossary---Numeric Argument}. @item @acronym{ASCII} character An @acronym{ASCII} character is either an @acronym{ASCII} control @@ -62,8 +62,8 @@ function from those libraries. This is called `autoloading'. @item Backtrace A backtrace is a trace of a series of function calls showing how a program arrived at a certain point. It is used mainly for finding and -correcting bugs (q.v.@:). Emacs can display a backtrace when it signals -an error or when you type @kbd{C-g} (@pxref{Glossary - Quitting}). +correcting bugs (q.v.). Emacs can display a backtrace when it signals +an error or when you type @kbd{C-g} (@pxref{Glossary---Quitting}). @xref{Checklist}. @item Backup File @@ -79,18 +79,18 @@ Automatic balancing works by blinking or highlighting the delimiter that matches the one you just inserted, or inserting the matching delimiter for you (@pxref{Matching,,Matching Parens}). -@anchor{Glossary - Balanced Expression} +@anchor{Glossary---Balanced Expression} @item Balanced Expressions A balanced expression is a syntactically recognizable expression, such as a symbol, number, string constant, block, or parenthesized expression -in C. @xref{Expressions,Balanced Expressions}. +in C@. @xref{Expressions,Balanced Expressions}. @item Balloon Help -@xref{Glossary - Tooltips}. +@xref{Glossary---Tooltips}. @item Base Buffer A base buffer is a buffer whose text is shared by an indirect buffer -(q.v.@:). +(q.v.). @item Bidirectional Text Some human languages, such as English, are written from left to right. @@ -99,16 +99,16 @@ supports both of these forms, as well as any mixture of them---this is `bidirectional text'. @xref{Bidirectional Editing}. @item Bind -To bind a key sequence means to give it a binding (q.v.@:). +To bind a key sequence means to give it a binding (q.v.). @xref{Rebinding}. -@anchor{Glossary - Binding} +@anchor{Glossary---Binding} @item Binding A key sequence gets its meaning in Emacs by having a binding, which is a -command (q.v.@:), a Lisp function that is run when you type that +command (q.v.), a Lisp function that is run when you type that sequence. @xref{Commands,Binding}. Customization often involves rebinding a character to a different command function. The bindings of -all key sequences are recorded in the keymaps (q.v.@:). @xref{Keymaps}. +all key sequences are recorded in the keymaps (q.v.). @xref{Keymaps}. @item Blank Lines Blank lines are lines that contain only whitespace. Emacs has several @@ -126,13 +126,13 @@ external border, outside of everything including the menu bar, plus an internal border that surrounds the text windows, their scroll bars and fringes, and separates them from the menu bar and tool bar. You can customize both borders with options and resources (@pxref{Borders -X}). Borders are not the same as fringes (q.v.@:). +X}). Borders are not the same as fringes (q.v.). @item Buffer The buffer is the basic editing unit; one buffer corresponds to one text being edited. You normally have several buffers, but at any time you are editing only one, the `current buffer', though several can be visible -when you are using multiple windows or frames (q.v.@:). Most buffers +when you are using multiple windows or frames (q.v.). Most buffers are visiting (q.v.@:) some file. @xref{Buffers}. @item Buffer Selection History @@ -151,12 +151,12 @@ A button down event is the kind of input event (q.v.@:) generated right away when you press down on a mouse button. @xref{Mouse Buttons}. @item By Default -@xref{Glossary - Default}. +@xref{Glossary---Default}. @item Byte Compilation -@xref{Glossary - Compilation}. +@xref{Glossary---Compilation}. -@anchor{Glossary - C-} +@anchor{Glossary---C-} @item @kbd{C-} @kbd{C-} in the name of a character is an abbreviation for Control. @xref{User Input,C-}. @@ -181,7 +181,7 @@ Emacs supports a number of character sets, each of which represents a particular alphabet or script. @xref{International}. @item Character Terminal -@xref{Glossary - Text Terminal}. +@xref{Glossary---Text Terminal}. @item Click Event A click event is the kind of input event (q.v.@:) generated when you @@ -189,12 +189,12 @@ press a mouse button and release it without moving the mouse. @xref{Mouse Buttons}. @item Client -@xref{Glossary - Server}. +@xref{Glossary---Server}. @item Clipboard A clipboard is a buffer provided by the window system for transferring text between applications. On the X Window System, the clipboard is -provided in addition to the primary selection (q.v.@:); on MS-Windows and Mac, +provided in addition to the primary selection (q.v.); on MS-Windows and Mac, the clipboard is used @emph{instead} of the primary selection. @xref{Clipboard}. @@ -206,12 +206,12 @@ text to or from a variety of coding systems when reading or writing it. @item Command A command is a Lisp function specially defined to be able to serve as a -key binding in Emacs. When you type a key sequence (q.v.@:), its +key binding in Emacs. When you type a key sequence (q.v.), its binding (q.v.@:) is looked up in the relevant keymaps (q.v.@:) to find the command to run. @xref{Commands}. @item Command History -@xref{Glossary - Minibuffer History}. +@xref{Glossary---Minibuffer History}. @item Command Name A command name is the name of a Lisp symbol that is a command @@ -229,7 +229,7 @@ Common Lisp is a dialect of Lisp (q.v.@:) much larger and more powerful than Emacs Lisp. Emacs provides a subset of Common Lisp in the CL package. @xref{Top, Common Lisp, Overview, cl, Common Lisp Extensions}. -@anchor{Glossary - Compilation} +@anchor{Glossary---Compilation} @item Compilation Compilation is the process of creating an executable program from source code. Emacs has commands for compiling files of Emacs Lisp code @@ -241,7 +241,7 @@ Reference Manual}) and programs in C and other languages A complete key is a key sequence that fully specifies one action to be performed by Emacs. For example, @kbd{X} and @kbd{C-f} and @kbd{C-x m} are complete keys. Complete keys derive their meanings from being bound -(q.v.@:) to commands (q.v.@:). Thus, @kbd{X} is conventionally bound to +(q.v.@:) to commands (q.v.). Thus, @kbd{X} is conventionally bound to a command to insert @samp{X} in the buffer; @kbd{C-x m} is conventionally bound to a command to begin composing a mail message. @xref{Keys}. @@ -254,14 +254,14 @@ is known; for example, on command names, buffer names, and file names. Completion usually occurs when @key{TAB}, @key{SPC} or @key{RET} is typed. @xref{Completion}.@refill -@anchor{Glossary - Continuation Line} +@anchor{Glossary---Continuation Line} @item Continuation Line When a line of text is longer than the width of the window, it -normally (but see @ref{Glossary - Truncation}) takes up more than one +normally (but see @ref{Glossary---Truncation}) takes up more than one screen line when displayed. We say that the text line is continued, and all screen lines used for it after the first are called continuation lines. @xref{Continuation Lines}. A related Emacs feature is -`filling' (q.v.@:). +`filling' (q.v.). @item Control Character A control character is a character that you type by holding down the @@ -282,7 +282,7 @@ GNU General Public License. @xref{Copying}. @item @key{CTRL} The @key{CTRL} or ``control'' key is what you hold down -in order to enter a control character (q.v.). @xref{Glossary - C-}. +in order to enter a control character (q.v.). @xref{Glossary---C-}. @item Current Buffer The current buffer in Emacs is the Emacs buffer on which most editing @@ -317,9 +317,9 @@ or by rebinding key sequences (@pxref{Keymaps}). @cindex cut and paste @item Cut and Paste -@xref{Glossary - Killing}, and @ref{Glossary - Yanking}. +@xref{Glossary---Killing}, and @ref{Glossary---Yanking}. -@anchor{Glossary - Daemon} +@anchor{Glossary---Daemon} @item Daemon A daemon is a standard term for a system-level process that runs in the background. Daemons are often started when the system first starts up. @@ -333,7 +333,7 @@ do not specify one. When the minibuffer is used to read an argument, the default argument is used if you just type @key{RET}. @xref{Minibuffer}. -@anchor{Glossary - Default} +@anchor{Glossary---Default} @item Default A default is the value that is used for a certain purpose when you do not explicitly specify a value to use. @@ -358,9 +358,9 @@ key or the @key{BACKSPACE} key, whichever one is easy to type. @item Deletion Deletion means erasing text without copying it into the kill ring -(q.v.@:). The alternative is killing (q.v.@:). @xref{Killing,Deletion}. +(q.v.). The alternative is killing (q.v.). @xref{Killing,Deletion}. -@anchor{Glossary - Deletion of Files} +@anchor{Glossary---Deletion of Files} @item Deletion of Files Deleting a file means erasing it from the file system. (Note that some systems use the concept of a ``trash can'', or ``recycle @@ -384,7 +384,7 @@ File directories are named collections in the file system, within which you can place individual files or subdirectories. They are sometimes referred to as ``folders''. @xref{Directories}. -@anchor{Glossary - Directory Local Variable} +@anchor{Glossary---Directory Local Variable} @item Directory Local Variable A directory local variable is a local variable (q.v.@:) that applies to all the files within a certain directory. @xref{Directory @@ -401,7 +401,7 @@ confirmation. The usual reason for disabling a command is that it is confusing for beginning users. @xref{Disabling}. @item Down Event -Short for `button down event' (q.v.@:). +Short for `button down event' (q.v.). @item Drag Event A drag event is the kind of input event (q.v.@:) generated when you @@ -431,16 +431,16 @@ them. @item Electric We say that a character is electric if it is normally self-inserting -(q.v.@:), but the current major mode (q.v.@:) redefines it to do something +(q.v.), but the current major mode (q.v.@:) redefines it to do something else as well. For example, some programming language major modes define particular delimiter characters to reindent the line, or insert one or more newlines in addition to self-insertion. -@anchor{Glossary - End Of Line} +@anchor{Glossary---End Of Line} @item End Of Line End of line is a character or a sequence of characters that indicate the end of a text line. On GNU and Unix systems, this is a newline -(q.v.@:), but other systems have other conventions. @xref{Coding +(q.v.), but other systems have other conventions. @xref{Coding Systems,end-of-line}. Emacs can recognize several end-of-line conventions in files and convert between them. @@ -452,13 +452,13 @@ variables in the environment it passes to programs it invokes. @xref{Environment}. @item EOL -@xref{Glossary - End Of Line}. +@xref{Glossary---End Of Line}. @item Error An error occurs when an Emacs command cannot execute in the current circumstances. When an error occurs, execution of the command stops (unless the command has been programmed to do otherwise) and Emacs -reports the error by displaying an error message (q.v.@:). +reports the error by displaying an error message (q.v.). @c Not helpful? @c Type-ahead is discarded. Then Emacs is ready to read another @c editing command. @@ -477,7 +477,7 @@ typed), you press the @key{ESC} key as you would press a letter key, and it applies to the next character you type. @item Expression -@xref{Glossary - Balanced Expression}. +@xref{Glossary---Balanced Expression}. @item Expunging Expunging an Rmail, Gnus newsgroup, or Dired buffer is an operation @@ -494,10 +494,10 @@ order to display that text as specified by the face attributes. @item File Local Variable A file local variable is a local variable (q.v.@:) specified in a -given file. @xref{File Variables}, and @ref{Glossary - Directory +given file. @xref{File Variables}, and @ref{Glossary---Directory Local Variable}. -@anchor{Glossary - File Locking} +@anchor{Glossary---File Locking} @item File Locking Emacs uses file locking to notice when two different users start to edit one file at the same time. @xref{Interlocking}. @@ -510,11 +510,11 @@ directory, but an absolute file name refers to the same file regardless of which directory is current. On GNU and Unix systems, an absolute file name starts with a slash (the root directory) or with @samp{~/} or @samp{~@var{user}/} (a home directory). On MS-Windows/MS-DOS, an -absolute file name can also start with a drive letter and a colon, e.g. +absolute file name can also start with a drive letter and a colon, e.g., @samp{@var{d}:}. Some people use the term ``pathname'' for file names, but we do not; -we use the word ``path'' only in the term ``search path'' (q.v.@:). +we use the word ``path'' only in the term ``search path'' (q.v.). @item File-Name Component A file-name component names a file directly within a particular @@ -530,14 +530,14 @@ The fill prefix is a string that should be expected at the beginning of each line when filling is done. It is not regarded as part of the text to be filled. @xref{Filling}. -@anchor{Glossary - Filling} +@anchor{Glossary---Filling} @item Filling Filling text means adjusting the position of line-breaks to shift text between consecutive lines, so that all the lines are approximately the same length. @xref{Filling}. Some other editors call this feature ``line wrapping''. -@anchor{Glossary - Font Lock} +@anchor{Glossary---Font Lock} @item Font Lock Font Lock is a mode that highlights parts of buffer text in different faces, according to the syntax. Some other editors refer to this as @@ -551,41 +551,41 @@ make it easy to change several fonts at once by specifying the name of a fontset, rather than changing each font separately. @xref{Fontsets}. @item Formfeed Character -@xref{Glossary - Page}. +@xref{Glossary---Page}. @item Frame A frame is a rectangular cluster of Emacs windows. Emacs starts out with one frame, but you can create more. You can subdivide each frame -into Emacs windows (q.v.@:). When you are using a window system -(q.v.@:), more than one frame can be visible at the same time. +into Emacs windows (q.v.). When you are using a window system +(q.v.), more than one frame can be visible at the same time. @xref{Frames}. Some other editors use the term ``window'' for this, but in Emacs a window means something else. @item Free Software Free software is software that gives you the freedom to share, study and modify it. Emacs is free software, part of the GNU project -(q.v.@:), and distributed under a copyleft (q.v.@:) license called the +(q.v.), and distributed under a copyleft (q.v.@:) license called the GNU General Public License. @xref{Copying}. -@anchor{Glossary - Free Software Foundation} +@anchor{Glossary---Free Software Foundation} @item Free Software Foundation The Free Software Foundation (FSF) is a charitable foundation -dedicated to promoting the development of free software (q.v.@:). +dedicated to promoting the development of free software (q.v.). For more information, see @uref{http://fsf.org/, the FSF website}. @item Fringe -On a graphical display (q.v.@:), there's a narrow portion of the frame +On a graphical display (q.v.), there's a narrow portion of the frame (q.v.@:) between the text area and the window's border. These ``fringes'' are used to display symbols that provide information about the buffer text (@pxref{Fringes}). Emacs displays the fringe using a special face (q.v.@:) called @code{fringe}. @xref{Faces,fringe}. @item FSF -@xref{Glossary - Free Software Foundation}. +@xref{Glossary---Free Software Foundation}. @item FTP FTP is an acronym for File Transfer Protocol. This is one standard -method for retrieving remote files (q.v.@:). +method for retrieving remote files (q.v.). @item Function Key A function key is a key on the keyboard that sends input but does not @@ -593,7 +593,7 @@ correspond to any character. @xref{Function Keys}. @item Global Global means ``independent of the current environment; in effect -throughout Emacs''. It is the opposite of local (q.v.@:). Particular +throughout Emacs''. It is the opposite of local (q.v.). Particular examples of the use of `global' appear below. @item Global Abbrev @@ -604,15 +604,15 @@ modes that do not have local (q.v.@:) definitions for the same abbrev. @item Global Keymap The global keymap (q.v.@:) contains key bindings that are in effect everywhere, except when overridden by local key bindings in a major -mode's local keymap (q.v.@:). @xref{Keymaps}. +mode's local keymap (q.v.). @xref{Keymaps}. @item Global Mark Ring The global mark ring records the series of buffers you have recently set a mark (q.v.@:) in. In many cases you can use this to backtrack through buffers you have been editing, or in which you have found -tags (@pxref{Glossary - Tags Table}). @xref{Global Mark Ring}. +tags (@pxref{Glossary---Tags Table}). @xref{Global Mark Ring}. -@anchor{Glossary - Global Substitution} +@anchor{Glossary---Global Substitution} @item Global Substitution Global substitution means replacing each occurrence of one string by another string throughout a large amount of text. @xref{Replace}. @@ -624,7 +624,7 @@ that do not have their own local (q.v.@:) values for the variable. @item GNU GNU is a recursive acronym for GNU's Not Unix, and it refers to a -Unix-compatible operating system which is free software (q.v.@:). +Unix-compatible operating system which is free software (q.v.). @xref{Manifesto}. GNU is normally used with Linux as the kernel since Linux works better than the GNU kernel. For more information, see @uref{http://www.gnu.org/, the GNU website}. @@ -639,7 +639,7 @@ that character (in ordinary editing modes). @xref{Inserting Text}. @item Graphical Display A graphical display is one that can display images and multiple fonts. -Usually it also has a window system (q.v.@:). +Usually it also has a window system (q.v.). @item Highlighting Highlighting text means displaying it with a different foreground and/or @@ -648,7 +648,7 @@ buffer. Emacs uses highlighting in several ways. It highlights the region whenever it is active (@pxref{Mark}). Incremental search also -highlights matches (@pxref{Incremental Search}). @xref{Glossary - Font Lock}. +highlights matches (@pxref{Incremental Search}). @xref{Glossary---Font Lock}. @item Hardcopy Hardcopy means printed output. Emacs has various commands for @@ -664,7 +664,7 @@ Help echo is a short message displayed in the echo area (q.v.@:) when the mouse pointer is located on portions of display that require some explanations. Emacs displays help echo for menu items, parts of the mode line, tool-bar buttons, etc. On graphical displays, the messages -can be displayed as tooltips (q.v.@:). @xref{Tooltips}. +can be displayed as tooltips (q.v.). @xref{Tooltips}. @item Home Directory Your home directory contains your personal files. On a multi-user GNU @@ -697,7 +697,7 @@ Rmail transfers mail from inboxes to Rmail files in which the mail is then stored permanently or until explicitly deleted. @xref{Rmail Inbox}. -@anchor{Glossary - Incremental Search} +@anchor{Glossary---Incremental Search} @item Incremental Search Emacs provides an incremental search facility, whereby Emacs begins searching for a string as soon as you type the first character. @@ -712,7 +712,7 @@ commands to adjust indentation. @item Indirect Buffer An indirect buffer is a buffer that shares the text of another buffer, -called its base buffer (q.v.@:). @xref{Indirect Buffers}. +called its base buffer (q.v.). @xref{Indirect Buffers}. @item Info Info is the hypertext format used by the GNU project for writing @@ -726,24 +726,24 @@ frames. @xref{User Input}. @item Input Method An input method is a system for entering non-@acronym{ASCII} text characters by -typing sequences of @acronym{ASCII} characters (q.v.@:). @xref{Input Methods}. +typing sequences of @acronym{ASCII} characters (q.v.). @xref{Input Methods}. @item Insertion Insertion means adding text into the buffer, either from the keyboard or from some other place in Emacs. @item Interlocking -@xref{Glossary - File Locking}. +@xref{Glossary---File Locking}. @item Isearch -@xref{Glossary - Incremental Search}. +@xref{Glossary---Incremental Search}. @item Justification Justification means adding extra spaces within lines of text in order to adjust the position of the text edges. @xref{Fill Commands}. @item Key Binding -@xref{Glossary - Binding}. +@xref{Glossary---Binding}. @item Keyboard Macro Keyboard macros are a way of defining new Emacs commands from @@ -756,13 +756,13 @@ play them back as many times as you like. @item Keyboard Shortcut A keyboard shortcut is a key sequence (q.v.@:) that invokes a command. What some programs call ``assigning a keyboard shortcut'', -Emacs calls ``binding a key sequence''. @xref{Glossary - Binding}. +Emacs calls ``binding a key sequence''. @xref{Glossary---Binding}. @item Key Sequence A key sequence (key, for short) is a sequence of input events (q.v.@:) that are meaningful as a single unit. If the key sequence is enough to -specify one action, it is a complete key (q.v.@:); if it is not enough, -it is a prefix key (q.v.@:). @xref{Keys}. +specify one action, it is a complete key (q.v.); if it is not enough, +it is a prefix key (q.v.). @xref{Keys}. @item Keymap The keymap is the data structure that records the bindings (q.v.@:) of @@ -776,16 +776,16 @@ codes that come from the terminal into the character codes that make up key sequences. @item Kill Ring -The kill ring is where all text you have killed (@pxref{Glossary - Killing}) +The kill ring is where all text you have killed (@pxref{Glossary---Killing}) recently is saved. You can reinsert any of the killed text still in -the ring; this is called yanking (q.v.@:). @xref{Yanking}. +the ring; this is called yanking (q.v.). @xref{Yanking}. -@anchor{Glossary - Killing} +@anchor{Glossary---Killing} @item Killing Killing means erasing text and saving it on the kill ring so it can be yanked (q.v.@:) later. Some other systems call this ``cutting''. Most Emacs commands that erase text perform killing, as opposed to -deletion (q.v.@:). @xref{Killing}. +deletion (q.v.). @xref{Killing}. @item Killing a Job Killing a job (such as, an invocation of Emacs) means making it cease @@ -794,7 +794,7 @@ to exist. Any data within it, if not saved in a file, is lost. @item Language Environment Your choice of language environment specifies defaults for the input -method (q.v.@:) and coding system (q.v.@:). @xref{Language +method (q.v.@:) and coding system (q.v.). @xref{Language Environments}. These defaults are relevant if you edit non-@acronym{ASCII} text (@pxref{International}). @@ -802,7 +802,7 @@ non-@acronym{ASCII} text (@pxref{International}). @c Lexical Binding @item Line Wrapping -@xref{Glossary - Filling}. +@xref{Glossary---Filling}. @item Lisp Lisp is a programming language. Most of Emacs is written in a dialect @@ -821,7 +821,7 @@ lists. @xref{Moving by Parens}. Local means ``in effect only in a particular context''; the relevant kind of context is a particular function execution, a particular buffer, or a particular major mode. It is the opposite of `global' -(q.v.@:). Specific uses of `local' in Emacs terminology appear below. +(q.v.). Specific uses of `local' in Emacs terminology appear below. @item Local Abbrev A local abbrev definition is effective only if a particular major mode @@ -844,14 +844,14 @@ one of the modifier keys that can accompany any character. @item @kbd{M-C-} @kbd{M-C-} in the name of a character is an abbreviation for -Control-Meta; it means the same thing as `@kbd{C-M-}' (q.v.@:). +Control-Meta; it means the same thing as `@kbd{C-M-}' (q.v.). @item @kbd{M-x} @kbd{M-x} is the key sequence that is used to call an Emacs command by name. This is how you run commands that are not bound to key sequences. @xref{M-x,M-x,Running Commands by Name}. -@anchor{Glossary - Mail} +@anchor{Glossary---Mail} @item Mail Mail means messages sent from one user to another through the computer system, to be read at the recipient's convenience. Emacs has commands for @@ -875,14 +875,14 @@ fringe) and the window edge. @item Mark The mark points to a position in the text. It specifies one end of the -region (q.v.@:), point being the other end. Many commands operate on +region (q.v.), point being the other end. Many commands operate on all the text from point to the mark. Each buffer has its own mark. @xref{Mark}. @item Mark Ring The mark ring is used to hold several recent previous locations of the mark, in case you want to move back to them. Each buffer has its -own mark ring; in addition, there is a single global mark ring (q.v.@:). +own mark ring; in addition, there is a single global mark ring (q.v.). @xref{Mark Ring}. @item Menu Bar @@ -891,7 +891,7 @@ words you can click on with the mouse to bring up menus, or you can use a keyboard interface to navigate it. @xref{Menu Bars}. @item Message -@xref{Glossary - Mail}. +@xref{Glossary---Mail}. @item Meta Meta is the name of a modifier bit which you can use in a command @@ -911,10 +911,10 @@ A Meta character is one whose character code includes the Meta bit. @item Minibuffer The minibuffer is the window that appears when necessary inside the -echo area (q.v.@:), used for reading arguments to commands. +echo area (q.v.), used for reading arguments to commands. @xref{Minibuffer}. -@anchor{Glossary - Minibuffer History} +@anchor{Glossary---Minibuffer History} @item Minibuffer History The minibuffer history records the text you have specified in the past for minibuffer arguments, so you can conveniently use the same text @@ -923,8 +923,8 @@ again. @xref{Minibuffer History}. @item Minor Mode A minor mode is an optional feature of Emacs, which can be switched on or off independently of all other features. Each minor mode has a -command to turn it on or off. Some minor modes are global (q.v.@:), -and some are local (q.v.@:). @xref{Minor Modes}. +command to turn it on or off. Some minor modes are global (q.v.), +and some are local (q.v.). @xref{Minor Modes}. @item Minor Mode Keymap A minor mode keymap is a keymap that belongs to a minor mode and is @@ -933,7 +933,7 @@ over the buffer's local keymap, just as the local keymap takes precedence over the global keymap. @xref{Keymaps}. @item Mode Line -The mode line is the line at the bottom of each window (q.v.@:), giving +The mode line is the line at the bottom of each window (q.v.), giving status information on the buffer displayed in that window. @xref{Mode Line}. @@ -949,7 +949,7 @@ yanking (q.v.@:) it. @xref{Killing}. @item MULE MULE refers to the Emacs features for editing multilingual -non-@acronym{ASCII} text using multibyte characters (q.v.@:). +non-@acronym{ASCII} text using multibyte characters (q.v.). @xref{International}. @item Multibyte Character @@ -959,7 +959,7 @@ since the number of non-@acronym{ASCII} characters is much more than 256. @xref{International Chars, International Characters}. @item Named Mark -A named mark is a register (q.v.@:), in its role of recording a +A named mark is a register (q.v.), in its role of recording a location in text so that you can move point to that location. @xref{Registers}. @@ -972,7 +972,7 @@ all. @xref{Narrowing}. @item Newline Control-J characters in the buffer terminate lines of text and are -therefore also called newlines. @xref{Glossary - End Of Line}. +therefore also called newlines. @xref{Glossary---End Of Line}. @cindex nil @cindex t @@ -980,7 +980,7 @@ therefore also called newlines. @xref{Glossary - End Of Line}. @code{nil} is a value usually interpreted as a logical ``false''. Its opposite is @code{t}, interpreted as ``true''. -@anchor{Glossary - Numeric Argument} +@anchor{Glossary---Numeric Argument} @item Numeric Argument A numeric argument is a number, specified before a command, to change the effect of the command. Often the numeric argument serves as a @@ -996,7 +996,7 @@ A package is a collection of Lisp code that you download and automatically install from within Emacs. Packages provide a convenient way to add new features. @xref{Packages}. -@anchor{Glossary - Page} +@anchor{Glossary---Page} @item Page A page is a unit of text, delimited by formfeed characters (@acronym{ASCII} control-L, code 014) at the beginning of a line. Some Emacs @@ -1020,7 +1020,7 @@ character. The terminal's cursor (q.v.@:) indicates the location of point. @xref{Point}. @item Prefix Argument -@xref{Glossary - Numeric Argument}. +@xref{Glossary---Numeric Argument}. @item Prefix Key A prefix key is a key sequence (q.v.@:) whose sole function is to @@ -1037,7 +1037,7 @@ specify a different file name. @xref{Rmail}. @end ignore @item Primary Selection -The primary selection is one particular X selection (q.v.@:); it is the +The primary selection is one particular X selection (q.v.); it is the selection that most X applications use for transferring text to and from other applications. @@ -1047,7 +1047,7 @@ uses the primary selection when appropriate. @xref{Killing}. @item Prompt A prompt is text used to ask you for input. Displaying a prompt is called prompting. Emacs prompts always appear in the echo area -(q.v.@:). One kind of prompting happens when the minibuffer is used to +(q.v.). One kind of prompting happens when the minibuffer is used to read an argument (@pxref{Minibuffer}); the echoing that happens when you pause in the middle of typing a multi-character key sequence is also a kind of prompting (@pxref{Echo Area}). @@ -1056,7 +1056,7 @@ a kind of prompting (@pxref{Echo Area}). Query-replace is an interactive string replacement feature provided by Emacs. @xref{Query Replace}. -@anchor{Glossary - Quitting} +@anchor{Glossary---Quitting} @item Quitting Quitting means canceling a partially typed command or a running command, using @kbd{C-g} (or @kbd{C-@key{BREAK}} on MS-DOS). @xref{Quitting}. @@ -1101,18 +1101,18 @@ correspond to changes that have been made in the text being edited. @xref{Screen,Redisplay}. @item Regexp -@xref{Glossary - Regular Expression}. +@xref{Glossary---Regular Expression}. @item Region -The region is the text between point (q.v.@:) and the mark (q.v.@:). +The region is the text between point (q.v.@:) and the mark (q.v.). Many commands operate on the text of the region. @xref{Mark,Region}. @item Register Registers are named slots in which text, buffer positions, or rectangles can be saved for later use. @xref{Registers}. A related -Emacs feature is `bookmarks' (q.v.@:). +Emacs feature is `bookmarks' (q.v.). -@anchor{Glossary - Regular Expression} +@anchor{Glossary---Regular Expression} @item Regular Expression A regular expression is a pattern that can match various text strings; for example, @samp{a[0-9]+} matches @samp{a} followed by one or more @@ -1126,21 +1126,21 @@ you have a supported method to gain access to those files. @xref{Remote Files}. @item Repeat Count -@xref{Glossary - Numeric Argument}. +@xref{Glossary---Numeric Argument}. @item Replacement -@xref{Glossary - Global Substitution}. +@xref{Glossary---Global Substitution}. @item Restriction A buffer's restriction is the amount of text, at the beginning or the end of the buffer, that is temporarily inaccessible. Giving a buffer a -nonzero amount of restriction is called narrowing (q.v.@:); removing -a restriction is called widening (q.v.@:). @xref{Narrowing}. +nonzero amount of restriction is called narrowing (q.v.); removing +a restriction is called widening (q.v.). @xref{Narrowing}. @item @key{RET} @key{RET} is a character that in Emacs runs the command to insert a newline into the text. It is also used to terminate most arguments -read in the minibuffer (q.v.@:). @xref{User Input,Return}. +read in the minibuffer (q.v.). @xref{User Input,Return}. @item Reverting Reverting means returning to the original state. Emacs lets you @@ -1180,7 +1180,7 @@ files for certain purposes. For example, the variable @code{load-path} holds a search path for finding Lisp library files. @xref{Lisp Libraries}. @item Secondary Selection -The secondary selection is one particular X selection (q.v.@:); some X +The secondary selection is one particular X selection (q.v.); some X applications can use it for transferring text to and from other applications. Emacs has special mouse commands for transferring text using the secondary selection. @xref{Secondary Selection}. @@ -1203,7 +1203,7 @@ selections whose values are text. A program can also read the selections that other programs have set up. This is the principal way of transferring text between window applications. Emacs has commands to work with the primary (q.v.@:) selection and the secondary (q.v.@:) -selection, and also with the clipboard (q.v.@:). +selection, and also with the clipboard (q.v.). @item Self-Documentation Self-documentation is the feature of Emacs that can tell you what any @@ -1220,12 +1220,12 @@ are self-inserting in Emacs, except in certain special major modes. Emacs has commands for moving by or killing by sentences. @xref{Sentences}. -@anchor{Glossary - Server} +@anchor{Glossary---Server} @item Server Within Emacs, you can start a `server' process, which listens for connections from `clients'. This offers a faster alternative to starting several Emacs instances. @xref{Emacs Server}, and -@ref{Glossary - Daemon}. +@ref{Glossary---Daemon}. @c This is only covered in the lispref, not the user manual. @ignore @@ -1277,10 +1277,10 @@ inside the string; however, backslash sequences as in C, such as allowed as well. @item String Substitution -@xref{Glossary - Global Substitution}. +@xref{Glossary---Global Substitution}. @item Syntax Highlighting -@xref{Glossary - Font Lock}. +@xref{Glossary---Font Lock}. @item Syntax Table The syntax table tells Emacs which characters are part of a word, @@ -1297,14 +1297,14 @@ have. To make a character Super, type it while holding down the @item Suspending Suspending Emacs means stopping it temporarily and returning control to its parent process, which is usually a shell. Unlike killing a job -(q.v.@:), you can later resume the suspended Emacs job without losing +(q.v.), you can later resume the suspended Emacs job without losing your buffers, unsaved edits, undo history, etc. @xref{Exiting}. @item @key{TAB} @key{TAB} is the tab character. In Emacs it is typically used for indentation or completion. -@anchor{Glossary - Tags Table} +@anchor{Glossary---Tags Table} @item Tags Table A tags table is a file that serves as an index to the function definitions in one or more other files. @xref{Tags}. @@ -1329,7 +1329,7 @@ Data consisting of written human language (as opposed to programs), or following the stylistic conventions of human language. @end itemize -@anchor{Glossary - Text Terminal} +@anchor{Glossary---Text Terminal} @item Text Terminal A text terminal, or character terminal, is a display that is limited to displaying text in character units. Such a terminal cannot control @@ -1344,15 +1344,15 @@ they also specify formatting information. @xref{Editing Format Info}. @item Theme A theme is a set of customizations (q.v.@:) that give Emacs a particular appearance or behavior. For example, you might use a theme -for your favorite set of faces (q.v.@:). +for your favorite set of faces (q.v.). @item Tool Bar The tool bar is a line (sometimes multiple lines) of icons at the top of an Emacs frame. Clicking on one of these icons executes a command. -You can think of this as a graphical relative of the menu bar (q.v.@:). +You can think of this as a graphical relative of the menu bar (q.v.). @xref{Tool Bars}. -@anchor{Glossary - Tooltips} +@anchor{Glossary---Tooltips} @item Tooltips Tooltips are small windows displaying a help echo (q.v.@:) text, which explains parts of the display, lists useful options available via mouse @@ -1362,8 +1362,8 @@ clicks, etc. @xref{Tooltips}. Top level is the normal state of Emacs, in which you are editing the text of the file you have visited. You are at top level whenever you are not in a recursive editing level (q.v.@:) or the minibuffer -(q.v.@:), and not in the middle of a command. You can get back to top -level by aborting (q.v.@:) and quitting (q.v.@:). @xref{Quitting}. +(q.v.), and not in the middle of a command. You can get back to top +level by aborting (q.v.@:) and quitting (q.v.). @xref{Quitting}. @c FIXME? Transient Mark Mode @@ -1374,17 +1374,17 @@ two adjacent characters, words, balanced expressions (q.v.@:) or lines (@pxref{Transpose}). @item Trash Can -@xref{Glossary - Deletion of Files}. +@xref{Glossary---Deletion of Files}. -@anchor{Glossary - Truncation} +@anchor{Glossary---Truncation} @item Truncation Truncating text lines in the display means leaving out any text on a line that does not fit within the right margin of the window displaying it. @xref{Continuation Lines,Truncation}, and -@ref{Glossary - Continuation Line}. +@ref{Glossary---Continuation Line}. @item TTY -@xref{Glossary - Text Terminal}. +@xref{Glossary---Text Terminal}. @item Undoing Undoing means making your previous editing go in reverse, bringing @@ -1395,7 +1395,7 @@ back the text that existed earlier in the editing session. Unix is a class of multi-user computer operating systems with a long history. There are several implementations today. The GNU project (q.v.@:) aims to develop a complete Unix-like operating system that -is free software (q.v.@:). +is free software (q.v.). @item User Option A user option is a face (q.v.@:) or a variable (q.v.@:) that exists so @@ -1413,7 +1413,7 @@ information on variables. @item Version Control Version control systems keep track of multiple versions of a source file. -They provide a more powerful alternative to keeping backup files (q.v.@:). +They provide a more powerful alternative to keeping backup files (q.v.). @xref{Version Control}. @item Visiting @@ -1426,7 +1426,7 @@ tab, newline, and backspace). @item Widening Widening is removing any restriction (q.v.@:) on the current buffer; -it is the opposite of narrowing (q.v.@:). @xref{Narrowing}. +it is the opposite of narrowing (q.v.). @xref{Narrowing}. @item Window Emacs divides a frame (q.v.@:) into one or more windows, each of which @@ -1438,20 +1438,20 @@ other editors use the term ``window'' for what we call a `frame' @item Window System A window system is software that operates on a graphical display -(q.v.@:), to subdivide the screen so that multiple applications can +(q.v.), to subdivide the screen so that multiple applications can have their] own windows at the same time. All modern operating systems include a window system. @item Word Abbrev -@xref{Glossary - Abbrev}. +@xref{Glossary---Abbrev}. @item Word Search Word search is searching for a sequence of words, considering the punctuation between them as insignificant. @xref{Word Search}. -@anchor{Glossary - Yanking} +@anchor{Glossary---Yanking} @item Yanking -Yanking means reinserting text previously killed (q.v.@:). It can be +Yanking means reinserting text previously killed (q.v.). It can be used to undo a mistaken kill, or for copying or moving text. Some other systems call this ``pasting''. @xref{Yanking}. @end table diff --git a/doc/emacs/gnu.texi b/doc/emacs/gnu.texi index 0f21dd635db..1e829a3244f 100644 --- a/doc/emacs/gnu.texi +++ b/doc/emacs/gnu.texi @@ -1,5 +1,5 @@ -@c Copyright (C) 1985-1987, 1993, 1995, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993, 1995, 2001-2013 Free Software +@c Foundation, Inc. @c @c Permission is granted to anyone to make or distribute verbatim copies @c of this document, in any medium, provided that the copyright notice and @@ -34,7 +34,7 @@ our web site, @uref{http://www.gnu.org}. For software tasks and other ways to contribute, see @uref{http://www.gnu.org/help}. @end quotation -@unnumberedsec What's GNU? Gnu's Not Unix! +@unnumberedsec What's GNU@? Gnu's Not Unix! GNU, which stands for Gnu's Not Unix, is the name for the complete Unix-compatible software system which I am writing so that I can give it @@ -151,7 +151,7 @@ systems, approved for use in a residential area, and not in need of sophisticated cooling or power. I have found very many programmers eager to contribute part-time work for -GNU. For most projects, such part-time distributed work would be very hard +GNU@. For most projects, such part-time distributed work would be very hard to coordinate; the independently-written parts would not work together. But for the particular task of replacing Unix, this problem is absent. A complete Unix system contains hundreds of utility programs, each of which @@ -262,7 +262,7 @@ and you must charge for the program to support that.'' @end quotation There are various forms of free or very cheap publicity that can be used to -inform numbers of computer users about something like GNU. But it may be +inform numbers of computer users about something like GNU@. But it may be true that one can reach more microcomputer users with advertising. If this is really so, a business which advertises the service of copying and mailing GNU for a fee ought to be successful enough to pay for its @@ -271,7 +271,7 @@ advertising pay for it. On the other hand, if many people get GNU from their friends, and such companies don't succeed, this will show that advertising was not really -necessary to spread GNU. Why is it that free market advocates don't +necessary to spread GNU@. Why is it that free market advocates don't want to let the free market decide this?@footnote{The Free Software Foundation raises most of its funds from a distribution service, although it is a charity rather than a company. If @emph{no one} diff --git a/doc/emacs/gpl.texi b/doc/emacs/gpl.texi index 1908d1f8f98..0e2e212acb1 100644 --- a/doc/emacs/gpl.texi +++ b/doc/emacs/gpl.texi @@ -2,7 +2,7 @@ @center Version 3, 29 June 2007 @c This file is intended to be included within another document, -@c hence no sectioning command or @node. +@c hence no sectioning command or @node. @display Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} @@ -222,7 +222,7 @@ terms of section 4, provided that you also meet all of these conditions: @enumerate a -@item +@item The work must carry prominent notices stating that you modified it, and giving a relevant date. @@ -623,12 +623,12 @@ later version. @item Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +APPLICABLE LAW@. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +A PARTICULAR PURPOSE@. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. @@ -670,7 +670,7 @@ state the exclusion of warranty; and each file should have at least the ``copyright'' line and a pointer to where the full notice is found. @smallexample -@var{one line to give the program's name and a brief idea of what it does.} +@var{one line to give the program's name and a brief idea of what it does.} Copyright (C) @var{year} @var{name of author} This program is free software: you can redistribute it and/or modify @@ -680,7 +680,7 @@ 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 +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 @@ -693,7 +693,7 @@ If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: @smallexample -@var{program} Copyright (C) @var{year} @var{name of author} +@var{program} Copyright (C) @var{year} @var{name of author} This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. This is free software, and you are welcome to redistribute it under certain conditions; type @samp{show c} for details. diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 050ecd150ab..75b250d0f40 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Help @chapter Help @@ -295,11 +295,16 @@ search for noninteractive functions too. Search for functions and variables. Both interactive functions (commands) and noninteractive functions can be found by this. -@item M-x apropos-variable -@findex apropos-variable +@item M-x apropos-user-option +@findex apropos-user-option Search for user-customizable variables. With a prefix argument, search for non-customizable variables too. +@item M-x apropos-variable +@findex apropos-variable +Search for variables. With a prefix argument, search for +customizable variables only. + @item M-x apropos-value @findex apropos-value Search for variables whose values match the specified pattern. With a diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi index 08914d20340..72ec68812ce 100644 --- a/doc/emacs/indent.texi +++ b/doc/emacs/indent.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Indentation @chapter Indentation @@ -134,7 +134,7 @@ leftward). This command can be used to remove all indentation from the lines in the region, by invoking it with a large negative argument, -e.g. @kbd{C-u -1000 C-x @key{TAB}}. +e.g., @kbd{C-u -1000 C-x @key{TAB}}. @end table @node Tab Stops diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index 5510816b067..051bfe3eae8 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Killing @@ -34,7 +34,7 @@ killing many different types of syntactic units. @cindex deletion Most commands which erase text from the buffer save it in the kill ring. These are known as @dfn{kill} commands, and their names -normally contain the word @samp{kill} (e.g. @code{kill-line}). The +normally contain the word @samp{kill} (e.g., @code{kill-line}). The kill ring stores several recent kills, not just the last one, so killing is a very safe operation: you don't have to worry much about losing text that you previously killed. The kill ring is shared by @@ -123,7 +123,7 @@ point, regardless of the number of spaces that existed previously (even if there were none before). With a numeric argument @var{n}, it leaves @var{n} spaces before point if @var{n} is positive; if @var{n} is negative, it deletes newlines in addition to spaces and tabs, -leaving a single space before point. +leaving @var{-n} spaces before point. @kbd{C-x C-o} (@code{delete-blank-lines}) deletes all blank lines after the current line. If the current line is blank, it deletes all @@ -284,7 +284,7 @@ position, if you wish, with @kbd{C-u C-@key{SPC}} (@pxref{Mark Ring}). With a plain prefix argument (@kbd{C-u C-y}), the command instead leaves the cursor in front of the inserted text, and sets the mark at the end. Using any other prefix argument specifies an earlier kill; -e.g. @kbd{C-u 4 C-y} reinserts the fourth most recent kill. +e.g., @kbd{C-u 4 C-y} reinserts the fourth most recent kill. @xref{Earlier Kills}. On graphical displays, @kbd{C-y} first checks if another application @@ -535,13 +535,13 @@ or ``copy'' commands. Under X, whenever the region is active (@pxref{Mark}), the text in the region is saved in the primary selection. This applies regardless of whether the region was made by dragging or clicking the mouse -(@pxref{Mouse Commands}), or by keyboard commands (e.g. by typing +(@pxref{Mouse Commands}), or by keyboard commands (e.g., by typing @kbd{C-@key{SPC}} and moving point; @pxref{Setting Mark}). @vindex select-active-regions If you change the variable @code{select-active-regions} to @code{only}, Emacs saves only temporarily active regions to the -primary selection, i.e. those made with the mouse or with shift +primary selection, i.e., those made with the mouse or with shift selection (@pxref{Shift Selection}). If you change @code{select-active-regions} to @code{nil}, Emacs avoids saving active regions to the primary selection entirely. @@ -841,8 +841,8 @@ has no effect for @kbd{C-x} and @kbd{C-c} (@pxref{Using Region}). To enter an Emacs command like @kbd{C-x C-f} while the mark is active, use one of the following methods: either hold @kbd{Shift} -together with the prefix key, e.g. @kbd{S-C-x C-f}, or quickly type -the prefix key twice, e.g. @kbd{C-x C-x C-f}. +together with the prefix key, e.g., @kbd{S-C-x C-f}, or quickly type +the prefix key twice, e.g., @kbd{C-x C-x C-f}. To disable the overriding of standard Emacs binding by CUA mode, while retaining the other features of CUA mode described below, set @@ -862,7 +862,7 @@ of each line in the rectangle (on the same side as the cursor). With CUA you can easily copy text and rectangles into and out of registers by providing a one-digit numeric prefix to the kill, copy, -and yank commands, e.g. @kbd{C-1 C-c} copies the region into register +and yank commands, e.g., @kbd{C-1 C-c} copies the region into register @code{1}, and @kbd{C-2 C-v} yanks the contents of register @code{2}. @cindex global mark @@ -875,7 +875,7 @@ position. For example, to copy words from various buffers into a word list in a given buffer, set the global mark in the target buffer, then -navigate to each of the words you want in the list, mark it (e.g. with +navigate to each of the words you want in the list, mark it (e.g., with @kbd{S-M-f}), copy it to the list with @kbd{C-c} or @kbd{M-w}, and insert a newline after the word in the target list by pressing @key{RET}. diff --git a/doc/emacs/kmacro.texi b/doc/emacs/kmacro.texi index 3b83d24e405..aa4d10ef324 100644 --- a/doc/emacs/kmacro.texi +++ b/doc/emacs/kmacro.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Keyboard Macros @chapter Keyboard Macros diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi index 5412c88af92..3faa2c88b2d 100644 --- a/doc/emacs/m-x.texi +++ b/doc/emacs/m-x.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node M-x @chapter Running Commands by Name diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi index 14c5fcae0ce..4483c91802d 100644 --- a/doc/emacs/macos.texi +++ b/doc/emacs/macos.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2000-2012 Free Software Foundation, Inc. +@c Copyright (C) 2000-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Mac OS / GNUstep @appendix Emacs and Mac OS / GNUstep diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 67214bde22c..c8d9e9f2087 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Maintaining @chapter Maintaining Large Programs @@ -31,7 +31,7 @@ versions of a source file, storing information such as the creation time of each version, who made it, and a description of what was changed. - The Emacs version control interface is called @dfn{VC}. VC commands + The Emacs version control interface is called @dfn{VC}@. VC commands work with several different version control systems; currently, it supports GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS, SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS, @@ -73,8 +73,8 @@ provides a uniform interface for common operations in many version control operations. Some uncommon or intricate version control operations, such as -altering repository settings, are not supported in VC. You should -perform such tasks outside Emacs, e.g.@: via the command line. +altering repository settings, are not supported in VC@. You should +perform such tasks outside Emacs, e.g., via the command line. This section provides a general overview of version control, and describes the version control systems that VC supports. You can skip @@ -128,13 +128,13 @@ which it refers to as @dfn{back ends}: @item SCCS was the first version control system ever built, and was long ago superseded by more advanced ones. VC compensates for certain features -missing in SCCS (e.g.@: tag names for releases) by implementing them +missing in SCCS (e.g., tag names for releases) by implementing them itself. Other VC features, such as multiple branches, are simply unavailable. Since SCCS is non-free, we recommend avoiding it. @cindex CSSC @item -CSSC is a free replacement for SCCS. You should use CSSC only if, for +CSSC is a free replacement for SCCS@. You should use CSSC only if, for some reason, you cannot use a more recent and better-designed version control system. @@ -455,7 +455,7 @@ and don't persist across sessions. @node VC With A Merging VCS @subsubsection Basic Version Control with Merging - On a merging-based version control system (i.e.@: most modern ones; + On a merging-based version control system (i.e., most modern ones; @pxref{VCS Merging}), @kbd{C-x v v} does the following: @itemize @bullet @@ -467,7 +467,7 @@ files and ``modified'' files; @pxref{Registering}.) @item If none of the files in the VC fileset are registered with a version -control system, register the VC fileset, i.e.@: place it under version +control system, register the VC fileset, i.e., place it under version control. @xref{Registering}. If Emacs cannot find a system to register under, it prompts for a repository type, creates a new repository, and registers the VC fileset with it. @@ -568,13 +568,13 @@ and Emacs fails to detect the correct one. Otherwise, if using CVS or RCS, you can specify a revision ID. If the fileset is modified (or locked), this makes Emacs commit with -that revision ID. You can create a new branch by supplying an +that revision ID@. You can create a new branch by supplying an appropriate revision ID (@pxref{Branches}). If the fileset is unmodified (and unlocked), this checks the specified revision into the working tree. You can also specify a revision on another branch by giving its revision or branch ID (@pxref{Switching -Branches}). An empty argument (i.e.@: @kbd{C-u C-x v v @key{RET}}) +Branches}). An empty argument (i.e., @kbd{C-u C-x v v @key{RET}}) checks out the latest (``head'') revision on the current branch. This signals an error on a decentralized version control system. @@ -759,7 +759,7 @@ comparison again, generating a new diff. prompts for two revision IDs (@pxref{VCS Concepts}), and displays a diff between those versions of the fileset. This will not work reliably for multi-file VC filesets, if the version control system is -file-based rather than changeset-based (e.g.@: CVS), since then +file-based rather than changeset-based (e.g., CVS), since then revision IDs for different files would not be related in any meaningful way. @@ -783,7 +783,7 @@ Ediff session. @xref{Top,, Ediff, ediff, The Ediff Manual}. @findex vc-root-diff @kindex C-x v D @kbd{C-x v D} (@code{vc-root-diff}) is similar to @kbd{C-x v =}, but -it displays the changes in the entire current working tree (i.e.@: the +it displays the changes in the entire current working tree (i.e., the working tree containing the current VC fileset). If you invoke this command from a Dired buffer, it applies to the working tree containing the directory. @@ -795,7 +795,7 @@ from the first non-@code{nil} value amongst the variables @code{vc-@var{backend}-diff-switches}, @code{vc-diff-switches}, and @code{diff-switches} (@pxref{Comparing Files}), in that order. Here, @var{backend} stands for the relevant version control system, -e.g.@: @code{bzr} for Bazaar. Since @code{nil} means to check the +e.g., @code{bzr} for Bazaar. Since @code{nil} means to check the next variable in the sequence, either of the first two may use the value @code{t} to mean no switches at all. Most of the @code{vc-@var{backend}-diff-switches} variables default to @code{nil}, @@ -835,12 +835,12 @@ view diffs, or view log entries: @table @kbd @item p -Annotate the previous revision, i.e.@: the revision before the one +Annotate the previous revision, i.e., the revision before the one currently annotated. A numeric prefix argument is a repeat count, so @kbd{C-u 10 p} would take you back 10 revisions. @item n -Annotate the next revision, i.e.@: the revision after the one +Annotate the next revision, i.e., the revision after the one currently annotated. A numeric prefix argument is a repeat count. @item j @@ -986,7 +986,7 @@ earlier revision. This shows the changes to all files made in that revision. @item @key{RET} -In a compact-style log buffer (e.g.@: the one created by @kbd{C-x v +In a compact-style log buffer (e.g., the one created by @kbd{C-x v L}), toggle between showing and hiding the full log entry for the revision at point. @end table @@ -1064,8 +1064,8 @@ the version control system which the VC Directory buffer should use. @pindex cvs @cindex CVS directory mode In addition to the VC Directory buffer, Emacs has a similar facility -called PCL-CVS which is specialized for CVS. @xref{Top, , About -PCL-CVS, pcl-cvs, PCL-CVS --- The Emacs Front-End to CVS}. +called PCL-CVS which is specialized for CVS@. @xref{Top, , About +PCL-CVS, pcl-cvs, PCL-CVS---The Emacs Front-End to CVS}. @end ifnottex @menu @@ -1080,7 +1080,7 @@ PCL-CVS, pcl-cvs, PCL-CVS --- The Emacs Front-End to CVS}. and their version control statuses. It lists files in the current directory (the one specified when you called @kbd{C-x v d}) and its subdirectories, but only those with a ``noteworthy'' status. Files -that are up-to-date (i.e.@: the same as in the repository) are +that are up-to-date (i.e., the same as in the repository) are omitted. If all the files in a subdirectory are up-to-date, the subdirectory is not listed either. As an exception, if a file has become up-to-date as a direct result of a VC command, it is listed. @@ -1131,7 +1131,7 @@ updates. If you change the variable @code{vc-stay-local} or @code{vc-cvs-stay-local} (for CVS) to @code{nil} (@pxref{CVS Options}), then Emacs avoids contacting a remote repository when generating the VC Directory buffer (it will still contact it when -necessary, e.g.@: when doing a commit). This may be desirable if you +necessary, e.g., when doing a commit). This may be desirable if you are working offline or the network is slow. @end ifnottex @@ -1307,7 +1307,7 @@ revision 1.2 has revision IDs 1.2.1.1, 1.2.1.2, @dots{}, the second branch created from revision 1.2 has revision IDs 1.2.2.1, 1.2.2.2, @dots{}, and so forth. You can also specify the @dfn{branch ID}, which is a branch revision ID omitting its final component -(e.g.@: 1.2.1), to switch to the latest revision on that branch. +(e.g., 1.2.1), to switch to the latest revision on that branch. On a locking-based system, switching to a different branch also unlocks (write-protects) the working tree. @@ -1589,7 +1589,7 @@ source files. To produce a tags table, you run the @command{etags} shell command on a document or the source code file. The @samp{etags} program writes the tags to a @dfn{tags table file}, or @dfn{tags file} in -short. The conventional name for a tags file is @file{TAGS}. +short. The conventional name for a tags file is @file{TAGS}@. @xref{Create Tags Table}. Emacs provides many commands for searching and replacing using the @@ -1676,9 +1676,11 @@ specifies (using Bourne shell syntax) that the commands @item In Lisp code, any function defined with @code{defun}, any variable -defined with @code{defvar} or @code{defconst}, and in general the first -argument of any expression that starts with @samp{(def} in column zero is -a tag. +defined with @code{defvar} or @code{defconst}, and in general the +first argument of any expression that starts with @samp{(def} in +column zero is a tag. As an exception, expressions of the form +@code{(defvar @var{foo})} are treated as declarations, and are only +tagged if the @samp{--declarations} option is given. @item In Scheme code, tags include anything defined with @code{def} or with a @@ -1696,9 +1698,9 @@ tags. Use the @samp{--packages-only} option to create tags for packages only. In Ada, the same name can be used for different kinds of entity -(e.g.@:, for a procedure and for a function). Also, for things like -packages, procedures and functions, there is the spec (i.e.@: the -interface) and the body (i.e.@: the implementation). To make it +(e.g., for a procedure and for a function). Also, for things like +packages, procedures and functions, there is the spec (i.e., the +interface) and the body (i.e., the implementation). To make it easier to pick the definition you want, Ada tag name have suffixes indicating the type of entity: @@ -1766,11 +1768,11 @@ the file. @item In Perl code, the tags are the packages, subroutines and variables -defined by the @code{package}, @code{sub}, @code{my} and @code{local} -keywords. Use @samp{--globals} if you want to tag global variables. -Tags for subroutines are named @samp{@var{package}::@var{sub}}. The -name for subroutines defined in the default package is -@samp{main::@var{sub}}. +defined by the @code{package}, @code{sub}, @code{use constant}, +@code{my}, and @code{local} keywords. Use @samp{--globals} if you +want to tag global variables. Tags for subroutines are named +@samp{@var{package}::@var{sub}}. The name for subroutines defined in +the default package is @samp{main::@var{sub}}. @item In PHP code, tags are functions, classes and defines. Vars are tags diff --git a/doc/emacs/makefile.w32-in b/doc/emacs/makefile.w32-in index 4ccecbb7ddf..e289c46784d 100644 --- a/doc/emacs/makefile.w32-in +++ b/doc/emacs/makefile.w32-in @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Manual -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi index db191eb175c..05b2a5be3a4 100644 --- a/doc/emacs/mark.texi +++ b/doc/emacs/mark.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Mark @chapter The Mark and the Region @@ -131,7 +131,7 @@ detailed description of these mouse commands. @cindex shift-selection Finally, you can set the mark by holding down the shift key while typing certain cursor motion commands (such as @kbd{S-@key{right}}, -@kbd{S-C-f}, @kbd{S-C-n}, etc.) This is called @dfn{shift-selection}. +@kbd{S-C-f}, @kbd{S-C-n}, etc.). This is called @dfn{shift-selection}. It sets the mark at point before moving point, but only if there is no active mark set via shift-selection. The mark set by mouse commands and by shift-selection behaves slightly differently from the usual diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index ebccedacc05..f3fab686ed9 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Minibuffer @chapter The Minibuffer diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 1836c1982e6..73c1c85e2f8 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Miscellaneous Commands @@ -53,7 +53,7 @@ commands. The three most commonly-used Gnus buffers are the @dfn{group buffer}, the @dfn{summary buffer} and the @dfn{article buffer}. - The @dfn{group buffer} contains a list of article sources (e.g.@: + The @dfn{group buffer} contains a list of article sources (e.g., newsgroups and email inboxes), which are collectively referred to as @dfn{groups}. This is the first buffer Gnus displays when it starts up. It normally displays only the groups to which you subscribe and @@ -166,7 +166,7 @@ List zombie groups. @cindex unsubscribe groups @item u Toggle the subscription status of the group on the current line -(i.e.@: turn a subscribed group into an unsubscribed group, or vice +(i.e., turn a subscribed group into an unsubscribed group, or vice versa). Invoking this on a killed or zombie group turns it into an unsubscribed group. @@ -518,7 +518,7 @@ output is long). type @kbd{M-! gunzip foo.gz @key{RET}}. That shell command normally creates the file @file{foo} and produces no terminal output. - A numeric argument to @code{shell-command}, e.g.@: @kbd{M-1 M-!}, + A numeric argument to @code{shell-command}, e.g., @kbd{M-1 M-!}, causes it to insert terminal output into the current buffer instead of a separate buffer. It puts point before the output, and sets the mark after the output. For instance, @kbd{M-1 M-! gunzip < foo.gz @@ -599,7 +599,7 @@ the buffer and type the input, terminated by @key{RET}. While the subshell is waiting or running a command, you can switch windows or buffers and perform other editing in Emacs. Emacs inserts the output from the subshell into the Shell buffer whenever it has -time to process it (e.g.@: while waiting for keyboard input). +time to process it (e.g., while waiting for keyboard input). @cindex @code{comint-highlight-input} face @cindex @code{comint-highlight-prompt} face @@ -610,7 +610,7 @@ easier to distinguish input lines from the shell output. @xref{Faces}. To make multiple subshells, invoke @kbd{M-x shell} with a prefix -argument (e.g. @kbd{C-u M-x shell}). Then the command will read a +argument (e.g., @kbd{C-u M-x shell}). Then the command will read a buffer name, and create (or reuse) a subshell in that buffer. You can also rename the @file{*shell*} buffer using @kbd{M-x rename-uniquely}, then create a new @file{*shell*} buffer using plain @kbd{M-x shell}. @@ -645,7 +645,7 @@ Coding}. @cindex @env{EMACS} environment variable Emacs sets the environment variable @env{INSIDE_EMACS} in the subshell to @samp{@var{version},comint}, where @var{version} is the -Emacs version (e.g.@: @samp{24.1}). Programs can check this variable +Emacs version (e.g., @samp{24.1}). Programs can check this variable to determine whether they are running inside an Emacs subshell. (It also sets the @env{EMACS} environment variable to @code{t}, if that environment variable is not already defined. However, this @@ -1307,7 +1307,7 @@ mode-line. Type @key{SPC} to display the next screenful of output, or @cindex Rlogin You can login to a remote computer, using whatever commands you -would from a regular terminal (e.g.@: using the @code{telnet} or +would from a regular terminal (e.g., using the @code{telnet} or @code{rlogin} commands), from a Term window. A program that asks you for a password will normally suppress @@ -1531,7 +1531,7 @@ precedence. Create a new graphical @dfn{client frame}, instead of using an existing Emacs frame. See below for the special behavior of @kbd{C-x C-c} in a client frame. If Emacs cannot create a new graphical frame -(e.g.@: if it cannot connect to the X server), it tries to create a +(e.g., if it cannot connect to the X server), it tries to create a text terminal client frame, as though you had supplied the @samp{-t} option instead. @@ -1630,7 +1630,7 @@ frame. If you type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}) in a client frame, that command does not kill the Emacs session as it normally does (@pxref{Exiting}). Instead, Emacs deletes the client frame; furthermore, if the client frame has an @command{emacsclient} -waiting to regain control (i.e.@: if you did not supply the @samp{-n} +waiting to regain control (i.e., if you did not supply the @samp{-n} option), Emacs deletes all other frames of the same client, and marks the client's server buffers as finished, as though you had typed @kbd{C-x #} in all of them. If it so happens that there are no @@ -1689,7 +1689,7 @@ for printing by calling the @command{lpr} program. To change the printer program, customize the variable @code{lpr-command}. To specify extra switches to give the printer program, customize the list variable @code{lpr-switches}. Its value should be a list of option -strings, each of which should start with @samp{-} (e.g.@: the option +strings, each of which should start with @samp{-} (e.g., the option string @code{"-w80"} specifies a line width of 80 columns). The default is the empty list, @code{nil}. @@ -2180,7 +2180,7 @@ commands to perform arbitrary editing while in the middle of another Emacs command. For example, when you type @kbd{C-r} inside of a @code{query-replace}, you enter a recursive edit in which you can change the current buffer. On exiting from the recursive edit, you go back to -the @code{query-replace}. +the @code{query-replace}. @xref{Query Replace}. @kindex C-M-c @findex exit-recursive-edit @@ -2404,7 +2404,7 @@ done by calling @code{browse-url} as a subroutine It can be useful to add @code{goto-address-mode} to mode hooks and hooks for displaying an incoming message -(e.g.@: @code{rmail-show-message-hook} for Rmail, and +(e.g., @code{rmail-show-message-hook} for Rmail, and @code{mh-show-mode-hook} for MH-E). This is not needed for Gnus, which has a similar feature of its own. @@ -2487,7 +2487,7 @@ find the one you select (@code{ffap-menu}). @findex animate-birthday-present @cindex animate - The @code{animate} package makes text dance (e.g. @kbd{M-x + The @code{animate} package makes text dance (e.g., @kbd{M-x animate-birthday-present}). @findex blackbox diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi index c619b1eb47e..6b7073e3f0a 100644 --- a/doc/emacs/modes.texi +++ b/doc/emacs/modes.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Modes @chapter Major and Minor Modes @@ -69,7 +69,7 @@ command to select that mode (e.g., @kbd{M-x lisp-mode} enters Lisp mode). @vindex major-mode The value of the buffer-local variable @code{major-mode} is a symbol -with the same name as the major mode command (e.g. @code{lisp-mode}). +with the same name as the major mode command (e.g., @code{lisp-mode}). This variable is set automatically; you should not change it yourself. The default value of @code{major-mode} determines the major mode to @@ -110,7 +110,7 @@ list of its key bindings, type @code{C-h m} (@code{describe-mode}). Every major mode, apart from Fundamental mode, defines a @dfn{mode hook}, a customizable list of Lisp functions to run each time the mode is enabled in a buffer. @xref{Hooks}, for more information about -hooks. Each mode hook is named after its major mode, e.g. Fortran +hooks. Each mode hook is named after its major mode, e.g., Fortran mode has @code{fortran-mode-hook}. Furthermore, all text-based major modes run @code{text-mode-hook}, and all programming language modes run @code{prog-mode-hook}, prior to running their own mode hooks. diff --git a/doc/emacs/msdog-xtra.texi b/doc/emacs/msdog-xtra.texi index 0d05c8ac9c6..cb19f89dd91 100644 --- a/doc/emacs/msdog-xtra.texi +++ b/doc/emacs/msdog-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -52,7 +52,7 @@ about Emacs's special handling of text files under MS-DOS (and Windows). @kindex BS @r{(MS-DOS)} The key that is called @key{DEL} in Emacs (because that's how it is designated on most workstations) is known as @key{BS} (backspace) on a -PC. That is why the PC-specific terminal initialization remaps the +PC@. That is why the PC-specific terminal initialization remaps the @key{BS} key to act as @key{DEL}; the @key{DELETE} key is remapped to act as @kbd{C-d} for the same reasons. @@ -233,7 +233,7 @@ The MS-DOS terminal doesn't support a vertical-bar cursor, so the bar cursor is horizontal, and the @code{@var{width}} parameter, if specified by the frame parameters, actually determines its height. For this reason, the @code{bar} and @code{hbar} cursor types produce -the same effect on MS-DOS. As an extension, the bar cursor +the same effect on MS-DOS@. As an extension, the bar cursor specification can include the starting scan line of the cursor as well as its width, like this: @@ -320,7 +320,7 @@ converts them to underscores @samp{_}; thus your default init file @ifnottex (@pxref{Init File}) @end ifnottex -is called @file{_emacs} on MS-DOS. Excess characters before or after +is called @file{_emacs} on MS-DOS@. Excess characters before or after the period are generally ignored by MS-DOS itself; thus, if you visit the file @file{LongFileName.EvenLongerExtension}, you will silently get @file{longfile.eve}, but Emacs will still display the long file @@ -552,7 +552,7 @@ when invoked with the @samp{-nw} option. asynchronous subprocesses are not available. In particular, Shell mode and its variants do not work. Most Emacs features that use asynchronous subprocesses also don't work on MS-DOS, including -Shell mode and GUD. When in doubt, try and see; commands that +Shell mode and GUD@. When in doubt, try and see; commands that don't work output an error message saying that asynchronous processes aren't supported. @@ -600,7 +600,7 @@ it, because MS-DOS provides no general way to terminate a process. Pressing @kbd{C-c} or @kbd{C-@key{BREAK}} might sometimes help in these cases. - Accessing files on other machines is not supported on MS-DOS. Other + Accessing files on other machines is not supported on MS-DOS@. Other network-oriented commands such as sending mail, Web browsing, remote login, etc., don't work either, unless network access is built into MS-DOS with some network redirector. diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdog.texi index d8f9bb6961d..0f01958b51c 100644 --- a/doc/emacs/msdog.texi +++ b/doc/emacs/msdog.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Microsoft Windows @appendix Emacs and Microsoft Windows/MS-DOS @@ -218,29 +218,6 @@ set conversion, only end-of-line conversion. Essentially, it directs Emacs to create new files with the Unix-style convention of using newline at the end of a line. @xref{Coding Systems}. -@vindex file-name-buffer-file-type-alist -@cindex binary files, on MS-DOS/MS-Windows - Some kinds of files should not be converted at all, because their -contents are not really text. Therefore, Emacs on MS-Windows distinguishes -certain files as @dfn{binary files}. (This distinction is not part of -MS-Windows; it is made by Emacs only.) Binary files include executable -programs, compressed archives, etc. Emacs uses the file name to decide -whether to treat a file as binary: the variable -@code{file-name-buffer-file-type-alist} defines the file-name patterns -that indicate binary files. If a file name matches one of the patterns -for binary files (those whose associations are of the type -@code{(@var{pattern} . t)}, Emacs reads and writes that file using the -@code{no-conversion} coding system (@pxref{Coding Systems}) which turns -off @emph{all} coding-system conversions, not only the EOL conversion. -@code{file-name-buffer-file-type-alist} also includes file-name patterns -for files which are known to be Windows-style text files with -carriage-return linefeed EOL format, such as @file{CONFIG.SYS}; Emacs -always writes those files with Windows-style EOLs. - - If a file that belongs to an untranslated file system matches one of -the file-name patterns in @code{file-name-buffer-file-type-alist}, the -EOL conversion is determined by @code{file-name-buffer-file-type-alist}. - @node Windows Files @section File Names on MS-Windows @cindex file names on MS-Windows @@ -334,7 +311,7 @@ names that are associated with (a.k.a.@: @dfn{links to}) the file's data; this is only useful on NTFS volumes. @code{uid} means display the numerical identifier of the user who owns the file. @code{gid} means display the numerical identifier of the file owner's group. The -default value is @code{(links uid gid)} i.e.@: all the 3 optional +default value is @code{(links uid gid)} i.e., all the 3 optional attributes are displayed. @vindex ls-lisp-emulation @@ -354,12 +331,12 @@ Emulate @sc{gnu} systems; this is the default. This sets Emulate Unix systems. Like @code{GNU}, but sets @code{ls-lisp-verbosity} to @code{(links uid)}. @item MacOS -Emulate MacOS. Sets @code{ls-lisp-ignore-case} to @code{t}, and +Emulate MacOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and @code{ls-lisp-dirs-first} and @code{ls-lisp-verbosity} to @code{nil}. @item MS-Windows Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and @code{ls-lisp-dirs-first} to @code{t}, and @code{ls-lisp-verbosity} to -@code{(links)} on Windows NT/2K/XP/2K3 and to @code{nil} on Windows 9X. +@code{(links)} on Windows NT/2K/XP/2K3 and to @code{nil} on Windows 9X@. Note that the default emulation is @emph{not} @code{MS-Windows}, even on Windows, since many users of Emacs on those platforms prefer the @sc{gnu} defaults. @@ -422,7 +399,7 @@ Settings\@var{username}\Application Data} on Windows 2000/XP/2K3, @file{C:\Users\@var{username}\AppData\Roaming} on Windows Vista/7/2008, and either @file{C:\WINDOWS\Application Data} or @file{C:\WINDOWS\Profiles\@var{username}\Application Data} on Windows -9X/ME. If this directory does not exist or cannot be accessed, Emacs +9X/ME@. If this directory does not exist or cannot be accessed, Emacs falls back to @file{C:\} as the default value of @code{HOME}. You can override this default value of @code{HOME} by explicitly @@ -690,7 +667,7 @@ If you can go to the first subprocess, and tell it to exit, the second subprocess should continue normally. However, if the second subprocess is synchronous, Emacs itself will be hung until the first subprocess finishes. If it will not finish without user input, then you have no -choice but to reboot if you are running on Windows 9X. If you are +choice but to reboot if you are running on Windows 9X@. If you are running on Windows NT/2K/XP, you can use a process viewer application to kill the appropriate instance of NTVDM instead (this will terminate both DOS subprocesses). @@ -714,7 +691,7 @@ character based on the type of the program. customized commands that run MS-Windows applications registered to handle a certain standard Windows operation for a specific type of document or file. This function is a wrapper around the Windows -@code{ShellExecute} API. See the MS-Windows API documentation for +@code{ShellExecute} API@. See the MS-Windows API documentation for more details. @end ifnottex diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index ff0d43c566a..de3e05777cd 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. +@c Copyright (C) 1997, 1999-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node International @chapter International Character Set Support @@ -994,7 +994,7 @@ decoding. (You can still use an unsuitable coding system if you enter its name at the prompt.) @c It seems that select-message-coding-system does this. -@c Both sendmail.el and smptmail.el call it; i.e. smtpmail.el still +@c Both sendmail.el and smptmail.el call it; i.e., smtpmail.el still @c obeys sendmail-coding-system. @vindex sendmail-coding-system When you send a mail message (@pxref{Sending Mail}), @@ -1039,7 +1039,7 @@ decoding it using coding system @var{right} instead. @findex set-buffer-file-coding-system The command @kbd{C-x @key{RET} f} (@code{set-buffer-file-coding-system}) sets the file coding system for -the current buffer (i.e.@: the coding system to use when saving or +the current buffer (i.e., the coding system to use when saving or reverting the file). You specify which coding system using the minibuffer. You can also invoke this command by clicking with @kbd{Mouse-3} on the coding system indicator in the mode line @@ -1323,7 +1323,7 @@ scripts.@footnote{If you run Emacs on X, you may need to inform the X server about the location of the newly installed fonts with commands such as: @c FIXME? I feel like this may be out of date. -@c Eg the intlfonts tarfile is ~ 10 years old. +@c E.g., the intlfonts tarfile is ~ 10 years old. @example xset fp+ /usr/local/share/emacs/fonts @@ -1569,7 +1569,7 @@ no font appear as a hollow box. If you use Latin-1 characters but your terminal can't display Latin-1, you can arrange to display mnemonic @acronym{ASCII} sequences -instead, e.g.@: @samp{"o} for o-umlaut. Load the library +instead, e.g., @samp{"o} for o-umlaut. Load the library @file{iso-ascii} to do this. @vindex latin1-display @@ -1591,7 +1591,7 @@ the range 0240 to 0377 octal (160 to 255 decimal) to handle the accented letters and punctuation needed by various European languages (and some non-European ones). Note that Emacs considers bytes with codes in this range as raw bytes, not as characters, even in a unibyte -buffer, i.e.@: if you disable multibyte characters. However, Emacs +buffer, i.e., if you disable multibyte characters. However, Emacs can still handle these character codes as if they belonged to @emph{one} of the single-byte character sets at a time. To specify @emph{which} of these codes to use, invoke @kbd{M-x @@ -1767,7 +1767,7 @@ directionality when they are displayed. The default value is Each paragraph of bidirectional text can have its own @dfn{base direction}, either right-to-left or left-to-right. (Paragraph @c paragraph-separate etc have no influence on this? -boundaries are empty lines, i.e.@: lines consisting entirely of +boundaries are empty lines, i.e., lines consisting entirely of whitespace characters.) Text in left-to-right paragraphs begins on the screen at the left margin of the window and is truncated or continued when it reaches the right margin. By contrast, text in diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index df87cf9cb23..6a7111fa296 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Packages @chapter Emacs Lisp Packages @@ -52,10 +52,10 @@ on each line, with the following information: @itemize @bullet @item -The package name (e.g. @samp{auctex}). +The package name (e.g., @samp{auctex}). @item -The package's version number (e.g. @samp{11.86}). +The package's version number (e.g., @samp{11.86}). @item The package's status---normally one of @samp{available} (can be diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi index edf75f078d5..ae631ff3a1f 100644 --- a/doc/emacs/picture-xtra.texi +++ b/doc/emacs/picture-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index b5bb33ad666..459221a9088 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Programs @chapter Editing Programs @@ -85,7 +85,7 @@ Scheme-based DSSSL expression language, Ada, ASM, AWK, C, C++, Delphi, Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, Metafont (@TeX{}'s companion for font creation), Modula2, Objective-C, Octave, Pascal, Perl, Pike, PostScript, Prolog, Python, Ruby, Simula, Tcl, and -VHDL. An alternative mode for Perl is called CPerl mode. Modes are +VHDL@. An alternative mode for Perl is called CPerl mode. Modes are also available for the scripting languages of the common GNU and Unix shells, VMS DCL, and MS-DOS/MS-Windows @samp{BAT} files, and for makefiles, DNS master files, and various sorts of configuration files. @@ -127,7 +127,7 @@ IDL/Pike/AWK (@pxref{Top, , CC Mode, ccmode, CC Mode}), and IDLWAVE @end ifinfo @ifnotinfo The Emacs distribution contains Info manuals for the major modes for -Ada, C/C++/Objective C/Java/Corba IDL/Pike/AWK, and IDLWAVE. For +Ada, C/C++/Objective C/Java/Corba IDL/Pike/AWK, and IDLWAVE@. For Fortran mode, @pxref{Fortran,,, emacs-xtra, Specialized Emacs Features}. @end ifnotinfo @@ -328,7 +328,7 @@ as you move around in a buffer. To either enable or disable Which Function mode, use the command @kbd{M-x which-function-mode}. Which Function mode is a global minor mode. By default, it takes effect in all major modes major modes that -know how to support it (i.e.@: all the major modes that support +know how to support it (i.e., all the major modes that support Imenu). You can restrict it to a specific list of major modes by changing the value of the variable @code{which-func-modes} from @code{t} (which means to support all available major modes) to a list @@ -391,7 +391,7 @@ indentation. When indenting a line that starts within a parenthetical grouping, Emacs usually places the start of the line under the preceding line within the group, or under the text after the parenthesis. If you -manually give one of these lines a nonstandard indentation (e.g.@: for +manually give one of these lines a nonstandard indentation (e.g., for aesthetic purposes), the lines below will follow it. The indentation commands for most programming language modes assume @@ -431,7 +431,7 @@ lines that start inside comments and strings. To reindent the contents of a single parenthetical grouping, position point before the beginning of the grouping and type @kbd{C-M-q}. This changes the relative indentation within the -grouping, without affecting its overall indentation (i.e.@: the +grouping, without affecting its overall indentation (i.e., the indentation of the line where the grouping starts). The function that @kbd{C-M-q} runs depends on the major mode; it is @code{indent-pp-sexp} in Lisp mode, @code{c-indent-exp} in C mode, @@ -672,7 +672,7 @@ Put mark after following expression (@code{mark-sexp}). @findex backward-sexp To move forward over a balanced expression, use @kbd{C-M-f} (@code{forward-sexp}). If the first significant character after point -is an opening delimiter (e.g.@: @samp{(}, @samp{[} or @samp{@{} in C), +is an opening delimiter (e.g., @samp{(}, @samp{[} or @samp{@{} in C), this command moves past the matching closing delimiter. If the character begins a symbol, string, or number, the command moves over that. @@ -924,7 +924,7 @@ negative argument @var{-n} removes @var{n} delimiters. If the region is not active, and there is no existing comment on the current line, @kbd{M-;} adds a new comment to the current line. If -the line is blank (i.e.@: empty or containing only whitespace +the line is blank (i.e., empty or containing only whitespace characters), the comment is indented to the same position where @key{TAB} would indent to (@pxref{Basic Indent}). If the line is non-blank, the comment is placed after the last non-whitespace @@ -987,7 +987,7 @@ type @kbd{M-j} or @kbd{C-M-j} (@code{comment-indent-new-line}). This breaks the current line, and inserts the necessary comment delimiters and indentation to continue the comment. - For languages with closing comment delimiters (e.g.@: @samp{*/} in + For languages with closing comment delimiters (e.g., @samp{*/} in C), the exact behavior of @kbd{M-j} depends on the value of the variable @code{comment-multi-line}. If the value is @code{nil}, the command closes the comment on the old line and starts a new comment on @@ -1631,7 +1631,7 @@ Enable (or disable) @dfn{subword mode}. In subword mode, Emacs's word commands recognize upper case letters in @samp{StudlyCapsIdentifiers} as word boundaries. This is indicated by the flag @samp{/w} on the mode line after the mode name -(e.g. @samp{C/law}). You can even use @kbd{M-x subword-mode} in +(e.g., @samp{C/law}). You can even use @kbd{M-x subword-mode} in non-CC Mode buffers. In the GNU project, we recommend using underscores to separate words diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi index 0a83c0bdddd..77545dff5b2 100644 --- a/doc/emacs/regs.texi +++ b/doc/emacs/regs.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Registers @chapter Registers diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi index 3938712a5e9..f80f9e175fa 100644 --- a/doc/emacs/rmail.texi +++ b/doc/emacs/rmail.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Rmail @chapter Reading Mail with Rmail @@ -284,7 +284,7 @@ deleted remains current. @kbd{d} with a prefix argument is equivalent to @kbd{C-d}. Note that the Rmail summary versions of these commands behave slightly differently (@pxref{Rmail Summary Edit}). -@c mention other hooks, eg show message hook? +@c mention other hooks, e.g., show message hook? @vindex rmail-delete-message-hook Whenever Rmail deletes a message, it runs the hook @code{rmail-delete-message-hook}. When the hook functions are invoked, @@ -1490,7 +1490,7 @@ the machine on which to look for the POP server. @c FIXME mention --with-hesiod "support Hesiod to get the POP server host"? @cindex IMAP mailboxes - Another method for accessing remote mailboxes is IMAP. This method is + Another method for accessing remote mailboxes is IMAP@. This method is supported only by the Mailutils @code{movemail}. To specify an IMAP mailbox in the inbox list, use the following mailbox @acronym{URL}: @samp{imap://@var{username}[:@var{password}]@@@var{hostname}}. The diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi index 2b8edaf9375..39077921a88 100644 --- a/doc/emacs/screen.texi +++ b/doc/emacs/screen.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Screen @chapter The Organization of the Screen diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 7dc5855cdfc..377264223a5 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Search @chapter Searching and Replacement @@ -387,7 +387,7 @@ wrap around, going from the last page to the first page or vice versa. When the current match is on a history element, that history element is pulled into the minibuffer. If you exit the incremental search -normally (e.g. by typing @key{RET}), it remains in the minibuffer +normally (e.g., by typing @key{RET}), it remains in the minibuffer afterwards. Canceling the search, with @kbd{C-g}, restores the contents of the minibuffer when you began the search. diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi index 8802e5392d7..4c8af7e650e 100644 --- a/doc/emacs/sending.texi +++ b/doc/emacs/sending.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Sending Mail @chapter Sending Mail @@ -113,7 +113,7 @@ people use only standard field names with accepted meanings. @vindex user-full-name @vindex user-mail-address The @samp{From} header field identifies the person sending the email -(i.e.@: you). This should be a valid mailing address, as replies are +(i.e., you). This should be a valid mailing address, as replies are normally sent there. The default contents of this header field are computed from the variables @code{user-full-name} (which specifies your full name) and @code{user-mail-address} (your email address). On diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi index 6e895d3ac3c..d50a841d509 100644 --- a/doc/emacs/text.texi +++ b/doc/emacs/text.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Text @chapter Commands for Human Languages @@ -818,10 +818,10 @@ indenting the current line. @xref{Indentation}, for details. Text mode turns off the features concerned with comments except when you explicitly invoke them. It changes the syntax table so that -single-quotes are considered part of words (e.g.@: @samp{don't} is +single-quotes are considered part of words (e.g., @samp{don't} is considered one word). However, if a word starts with a single-quote, it is treated as a prefix for the purposes of capitalization -(e.g.@: @kbd{M-c} converts @samp{'hello'} into @samp{'Hello'}, as +(e.g., @kbd{M-c} converts @samp{'hello'} into @samp{'Hello'}, as expected). @cindex Paragraph-Indent Text mode @@ -1096,9 +1096,9 @@ direct and indirect, and all of their bodies. current heading line as well as all the bodies in its subtree; the subheadings themselves are left visible. The command @kbd{C-c C-k} (@code{show-branches}) reveals the subheadings, if they had previously -been hidden (e.g.@: by @kbd{C-c C-d}). The command @kbd{C-c C-i} +been hidden (e.g., by @kbd{C-c C-d}). The command @kbd{C-c C-i} (@code{show-children}) is a weaker version of this; it reveals just -the direct subheadings, i.e.@: those one level down. +the direct subheadings, i.e., those one level down. @findex hide-other @kindex C-c C-o @r{(Outline mode)} @@ -1177,7 +1177,7 @@ in the mode line shows how deep you've gone. When zooming in on a heading, to see only the child subheadings specify a numeric argument: @kbd{C-u C-c C-z}. The number of levels of children -can be specified too (compare @kbd{M-x show-children}), e.g.@: @kbd{M-2 +can be specified too (compare @kbd{M-x show-children}), e.g., @kbd{M-2 C-c C-z} exposes two levels of child subheadings. Alternatively, the body can be specified with a negative argument: @kbd{M-- C-c C-z}. The whole subtree can be expanded, similarly to @kbd{C-c C-s} (@kbd{M-x @@ -1349,7 +1349,7 @@ date, beneath the heading line. The command @kbd{C-c C-d} Once you have some TODO items planned in an Org file, you can add that file to the list of @dfn{agenda files} by typing @kbd{C-c [} (@code{org-agenda-file-to-front}). Org mode is designed to let you -easily maintain multiple agenda files, e.g.@: for organizing different +easily maintain multiple agenda files, e.g., for organizing different aspects of your life. The list of agenda files is stored in the variable @code{org-agenda-files}. @@ -1372,7 +1372,7 @@ etc. export and publication. To export the current buffer, type @kbd{C-c C-e} (@code{org-export}) anywhere in an Org buffer. This command prompts for an export format; currently supported formats include -HTML, @LaTeX{}, OpenDocument (@file{.odt}), and PDF. Some formats, +HTML, @LaTeX{}, OpenDocument (@file{.odt}), and PDF@. Some formats, such as PDF, require certain system tools to be installed. @vindex org-publish-project-alist @@ -1606,7 +1606,7 @@ when you type the corresponding one. @subsection @TeX{} Printing Commands You can invoke @TeX{} as an subprocess of Emacs, supplying either -the entire contents of the buffer or just part of it (e.g.@: one +the entire contents of the buffer or just part of it (e.g., one chapter of a larger document). @table @kbd @@ -1681,7 +1681,7 @@ determined by the variable @code{tex-dvi-print-command}. shell command strings described in the preceding paragraph. For example, if @code{tex-dvi-view-command} is @code{"xdvi"}, @kbd{C-c C-v} runs @command{xdvi @var{output-file-name}}. In some cases, -however, the file name needs to be embedded in the command, e.g.@: if +however, the file name needs to be embedded in the command, e.g., if you need to provide the file name as an argument to one command whose output is piped to another. You can specify where to put the file name with @samp{*} in the command string. For example, @@ -1917,7 +1917,7 @@ used as a cheap preview (@code{sgml-tags-invisible}). The major mode for editing XML documents is called nXML mode. This is a powerful major mode that can recognize many existing XML schema and use them to provide completion of XML elements via -@kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML +@kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML validation with error highlighting. To enable nXML mode in an existing buffer, type @kbd{M-x nxml-mode}, or, equivalently, @kbd{M-x xml-mode}. Emacs uses nXML mode for files which have the extension @@ -1936,7 +1936,7 @@ Emacs. @vindex sgml-xml-mode You may choose to use the less powerful SGML mode for editing XML, -since XML is a strict subset of SGML. To enable SGML mode in an +since XML is a strict subset of SGML@. To enable SGML mode in an existing buffer, type @kbd{M-x sgml-mode}. On enabling SGML mode, Emacs examines the buffer to determine whether it is XML; if so, it sets the variable @code{sgml-xml-mode} to a non-@code{nil} value. @@ -1950,7 +1950,7 @@ always insert explicit closing tags as well. @findex nroff-mode @vindex nroff-mode-hook Nroff mode, a major mode derived from Text mode, is -specialized for editing nroff files (e.g.@: Unix man pages). Type +specialized for editing nroff files (e.g., Unix man pages). Type @kbd{M-x nroff-mode} to enter this mode. Entering Nroff mode runs the hook @code{text-mode-hook}, then @code{nroff-mode-hook} (@pxref{Hooks}). @@ -2706,7 +2706,7 @@ and 3 rows, and a total of 5 cells. @findex table-insert-sequence @kbd{M-x table-insert-sequence} inserts a string into each cell. -Each string is a part of a sequence i.e.@: a series of increasing +Each string is a part of a sequence i.e., a series of increasing integer numbers. @cindex table for HTML and LaTeX diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 705cd5a4bbe..1c667bc56cb 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Dealing with Common Problems @@ -325,7 +325,7 @@ backtrace with source-code line numbers: @example sed -n 's/.*\[\(.*\)]$/\1/p' @var{backtrace} | - addr2line -Cfip -e @var{bindir}/@var{emacs-binary} + addr2line -C -f -i -p -e @var{bindir}/@var{emacs-binary} @end example @noindent @@ -333,16 +333,18 @@ 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. +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. @cindex core dump Optionally, Emacs can generate a @dfn{core dump} when it crashes, on systems that support core files. A core dump is a file containing voluminous data about the state of the program prior to the crash, -usually examined by loading it into a debugger such as GDB. On many +usually examined by loading it into a debugger such as GDB@. On many platforms, core dumps are disabled by default, and you must explicitly enable them by running the shell command @samp{ulimit -c unlimited} -(e.g.@: in your shell startup script). +(e.g., in your shell startup script). @node After a Crash @subsection Recovery After a Crash @@ -380,7 +382,7 @@ symbols. @file{core.emacs}, so that another crash won't overwrite it. To use this script, run @code{gdb} with the file name of your Emacs -executable and the file name of the core dump, e.g. @samp{gdb +executable and the file name of the core dump, e.g., @samp{gdb /usr/bin/emacs core.emacs}. At the @code{(gdb)} prompt, load the recovery script: @samp{source /usr/src/emacs/etc/emacs-buffer.gdb}. Then type the command @code{ybuffer-list} to see which buffers are @@ -660,7 +662,7 @@ will be sent to the Emacs maintainers at @email{bug-gnu-emacs@@gnu.org}. (If you want to suggest an improvement or new feature, use the same address.) If you cannot send mail from inside Emacs, you can copy the text of your report to your normal mail client (if your system -supports it, you can type @kbd{C-c m} to have Emacs do this for you) +supports it, you can type @kbd{C-c M-i} to have Emacs do this for you) and send it to that address. Or you can simply send an email to that address describing the problem. diff --git a/doc/emacs/vc-xtra.texi b/doc/emacs/vc-xtra.texi index f04f939cced..41a10bc2ace 100644 --- a/doc/emacs/vc-xtra.texi +++ b/doc/emacs/vc-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included in emacs-xtra.texi when producing the printed diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi index cd5ed206dd6..4e701a580a8 100644 --- a/doc/emacs/vc1-xtra.texi +++ b/doc/emacs/vc1-xtra.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in vc-xtra.texi (when producing the @@ -30,7 +30,7 @@ you can generate change log entries from the version control log entries of previous commits. - Note that this only works with RCS or CVS. This procedure would be + Note that this only works with RCS or CVS@. This procedure would be particularly incorrect on a modern changeset-based version control system, where changes to the @file{ChangeLog} file would normally be committed as part of a changeset. In that case, you should write the @@ -195,7 +195,7 @@ Thus, you can use it to compare a tagged version against the current files, or two tagged versions against each other. On SCCS, VC implements tags itself; these tags are visible only -through VC. Most later systems (including CVS, Subversion, bzr, git, +through VC@. Most later systems (including CVS, Subversion, bzr, git, and hg) have a native tag facility, and VC uses it where available; those tags will be visible even when you bypass VC. @@ -236,7 +236,7 @@ way, change the variable @code{vc-consult-headers} to @code{nil}. @vindex vc-@var{backend}-header To insert a suitable header string into the current buffer, type @kbd{C-x v h} (@code{vc-insert-headers}). This command works only on -Subversion, CVS, RCS, and SCCS. The variable +Subversion, CVS, RCS, and SCCS@. The variable @code{vc-@var{backend}-header} contains the list of keywords to insert into the version header; for instance, CVS uses @code{vc-cvs-header}, whose default value is @code{'("\$Id\$")}. (The extra backslashes @@ -313,13 +313,6 @@ appropriate version control system. If @code{vc-command-messages} is non-@code{nil}, VC displays messages to indicate which shell commands it runs, and additional messages when the commands finish. -@vindex vc-path - You can specify additional directories to search for version control -programs by setting the variable @code{vc-path}. These directories -are searched before the usual search path. It is rarely necessary to -set this variable, because VC normally finds the proper files -automatically. - @node RCS and SCCS @subsubsection Options for RCS and SCCS @@ -360,7 +353,7 @@ changed erroneously, set @code{vc-mistrust-permissions} to @code{t}. Then VC always checks the master file to determine the file's status. VC determines the version control state of files under SCCS much as -with RCS. It does not consider SCCS version headers, though. Thus, +with RCS@. It does not consider SCCS version headers, though. Thus, the variable @code{vc-mistrust-permissions} affects SCCS use, but @code{vc-consult-headers} does not. @@ -380,7 +373,7 @@ the name of the operation to invoke. network interactions to a minimum. This is controlled by the variable @code{vc-cvs-stay-local}. There is another variable, @code{vc-stay-local}, which enables the feature also for other back -ends that support it, including CVS. In the following, we will talk +ends that support it, including CVS@. In the following, we will talk only about @code{vc-cvs-stay-local}, but everything applies to @code{vc-stay-local} as well. diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index f87da5f3913..7ed0c682296 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node Windows @chapter Multiple Windows @@ -282,7 +282,7 @@ window one line taller, taking space from a vertically adjacent window without changing the height of the frame. With a positive numeric argument, this command increases the window height by that many lines; with a negative argument, it reduces the height by that many lines. -If there are no vertically adjacent windows (i.e. the window is at the +If there are no vertically adjacent windows (i.e., the window is at the full frame height), that signals an error. The command also signals an error if you attempt to reduce the height of any window below a certain minimum number of lines, specified by the variable @@ -328,7 +328,7 @@ usually work by calling @code{switch-to-buffer} internally @findex display-buffer Some commands try to display ``intelligently'', trying not to take -over the selected window, e.g. by splitting off a new window and +over the selected window, e.g., by splitting off a new window and displaying the desired buffer there. Such commands, which include the various help commands (@pxref{Help}), work by calling @code{display-buffer} internally. @xref{Window Choice}, for details. @@ -425,7 +425,7 @@ and display the buffer there. @cindex undoing window configuration changes @cindex window configuration changes, undoing Winner mode is a global minor mode that records the changes in the -window configuration (i.e. how the frames are partitioned into +window configuration (i.e., how the frames are partitioned into windows), so that you can ``undo'' them. You can toggle Winner mode with @kbd{M-x winner-mode}, or by customizing the variable @code{winner-mode}. When the mode is enabled, @kbd{C-c left} diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi index 5bdf734804b..3723c8e5e1d 100644 --- a/doc/emacs/xresources.texi +++ b/doc/emacs/xresources.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1987, 1993-1995, 1997, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1987, 1993-1995, 1997, 2001-2013 Free Software +@c Foundation, Inc. @c See file emacs.texi for copying conditions. @node X Resources @appendix X Options and Resources @@ -489,7 +489,7 @@ The color for the border shadow, on the top and the left. @cindex @file{~/.emacs.d/gtkrc} file If Emacs is compiled with GTK+ toolkit support, the simplest way to -customize its GTK+ widgets (e.g.@: menus, dialogs, tool bars and +customize its GTK+ widgets (e.g., menus, dialogs, tool bars and scroll bars) is to choose an appropriate GTK+ theme, for example with the GNOME theme selector. @@ -499,7 +499,7 @@ resources are specified in either the file @file{~/.emacs.d/gtkrc} (for Emacs-specific GTK+ resources), or @file{~/.gtkrc-2.0} (for general GTK+ resources). We recommend using @file{~/.emacs.d/gtkrc}, since GTK+ seems to ignore @file{~/.gtkrc-2.0} when running GConf with -GNOME. Note, however, that some GTK themes may override +GNOME@. Note, however, that some GTK themes may override customizations in @file{~/.emacs.d/gtkrc}; there is nothing we can do about this. GTK+ resources do not affect aspects of Emacs unrelated to GTK+ widgets, such as fonts and colors in the main Emacs window; @@ -507,7 +507,7 @@ those are governed by normal X resources (@pxref{Resources}). The following sections describe how to customize GTK+ resources for Emacs. For details about GTK+ resources, see the GTK+ API document at -@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}. +@uref{http://developer.gnome.org/gtk2/stable/gtk2-Resource-Files.html}. In GTK+ version 3, GTK+ resources have been replaced by a completely different system. The appearance of GTK+ widgets is now determined by @@ -541,7 +541,7 @@ gtk-font-name = "courier 12" @noindent Note that in this case the font name must be supplied as a GTK font pattern (also called a @dfn{Pango font name}), not as a -Fontconfig-style font name or XLFD. @xref{Fonts}. +Fontconfig-style font name or XLFD@. @xref{Fonts}. To customize widgets you first define a @dfn{style}, and then apply the style to the widgets. Here is an example that sets the font for @@ -590,8 +590,8 @@ widget "*verticalScrollBar*" style "scroll" A GTK+ widget is specified by a @dfn{widget name} and a @dfn{widget class}. The widget name refers to a specific widget -(e.g.@: @samp{emacs-menuitem}), while the widget class refers to a -collection of similar widgets (e.g.@: @samp{GtkMenuItem}). A widget +(e.g., @samp{emacs-menuitem}), while the widget class refers to a +collection of similar widgets (e.g., @samp{GtkMenuItem}). A widget always has a class, but need not have a name. @dfn{Absolute names} are sequences of widget names or widget @@ -746,7 +746,7 @@ possible states are: This is the default state for widgets. @item ACTIVE This is the state for a widget that is ready to do something. It is -also for the trough of a scroll bar, i.e.@: @code{bg[ACTIVE] = "red"} +also for the trough of a scroll bar, i.e., @code{bg[ACTIVE] = "red"} sets the scroll bar trough to red. Buttons that have been pressed but not released yet (``armed'') are in this state. @item PRELIGHT @@ -780,7 +780,7 @@ dialog. @item bg_pixmap[@var{state}] = "@var{pixmap}" This specifies an image background (instead of a background color). @var{pixmap} should be the image file name. GTK can use a number of -image file formats, including XPM, XBM, GIF, JPEG and PNG. If you +image file formats, including XPM, XBM, GIF, JPEG and PNG@. If you want a widget to use the same image as its parent, use @samp{}. If you don't want any image, use @samp{}. @samp{} is the way to cancel a background image inherited from a @@ -790,7 +790,7 @@ You can't specify the file by its absolute file name. GTK looks for the pixmap file in directories specified in @code{pixmap_path}. @code{pixmap_path} is a colon-separated list of directories within double quotes, specified at the top level in a @file{gtkrc} file -(i.e.@: not inside a style definition; see example above): +(i.e., not inside a style definition; see example above): @smallexample pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" @@ -814,8 +814,8 @@ GTK-style (or Pango) font name, like @samp{Sans Italic 10}. There are three ways to specify a color: a color name, an RGB triplet, or a GTK-style RGB triplet. @xref{Colors}, for a description of color names and RGB triplets. Color names should be enclosed with -double quotes, e.g.@: @samp{"red"}. RGB triplets should be written -without double quotes, e.g.@: @samp{#ff0000}. GTK-style RGB triplets +double quotes, e.g., @samp{"red"}. RGB triplets should be written +without double quotes, e.g., @samp{#ff0000}. GTK-style RGB triplets have the form @w{@code{@{ @var{r}, @var{g}, @var{b} @}}}, where -@var{r}, @var{g} and @var{b} are either integers in the range 0-65535 -or floats in the range 0.0-1.0. +@var{r}, @var{g} and @var{b} are either integers in the range 0--65535 +or floats in the range 0.0--1.0. diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index 396e3857c58..e12c57d4b76 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,40 @@ +2013-03-16 Glenn Morris + + * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org. + +2013-03-16 Glenn Morris + + * Version 24.3 released. + +2013-03-03 Glenn Morris + + * emacs-lisp-intro.texi (Digression into C): Update example. + (defcustom, Simple Extension): Fix typos. + +2012-12-22 Glenn Morris + + * Makefile.in (srcs): New variable, adding doclicense.texi. + (${buildinfodir}/eintr$(INFO_EXT), emacs-lisp-intro.dvi) + (emacs-lisp-intro.pdf, emacs-lisp-intro.html): + Use $srcs for dependencies. + +2012-12-14 Paul Eggert + + Fix permissions bugs with setgid directories etc. (Bug#13125) + * emacs-lisp-intro.texi (Files List): + directory-files-and-attributes now outputs t for attribute that's + now a placeholder. + +2012-12-06 Paul Eggert + + * doclicense.texi: Update to latest version from FSF. + These are just minor editorial changes. + +2012-11-24 Paul Eggert + + * doclicense.texi: Update to latest version from FSF. + These are just minor editorial changes. + 2012-10-24 Paul Eggert * emacs-lisp-intro.texi (Files List): @@ -544,7 +581,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2001-2012 Free Software Foundation, Inc. + Copyright (C) 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index 3f2fe1f9526..a6b50b88ad9 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in @@ -1,6 +1,6 @@ #### Makefile for the Emacs Lisp Introduction manual -# Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc. +# Copyright (C) 1994-1999, 2001-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -43,6 +43,8 @@ ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ mkinfodir = @${MKDIR_P} ${buildinfodir} +srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi + .PHONY: info dvi html pdf ps info: ${buildinfodir}/eintr$(INFO_EXT) @@ -55,20 +57,20 @@ ps: emacs-lisp-intro.ps # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing. # Note: "<" is not portable in ordinary make rules. -${buildinfodir}/eintr$(INFO_EXT): ${srcdir}/emacs-lisp-intro.texi +${buildinfodir}/eintr$(INFO_EXT): ${srcs} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi -emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi +emacs-lisp-intro.dvi: ${srcs} $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi emacs-lisp-intro.ps: emacs-lisp-intro.dvi $(DVIPS) -o $@ emacs-lisp-intro.dvi -emacs-lisp-intro.pdf: ${srcdir}/emacs-lisp-intro.texi +emacs-lisp-intro.pdf: ${srcs} $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi -emacs-lisp-intro.html: ${srcdir}/emacs-lisp-intro.texi +emacs-lisp-intro.html: ${srcs} $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs-lisp-intro.texi .PHONY: mostlyclean clean distclean maintainer-clean infoclean diff --git a/doc/lispintro/README b/doc/lispintro/README index d81a6bc2a3a..360d6296b70 100644 --- a/doc/lispintro/README +++ b/doc/lispintro/README @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/doc/lispintro/cons-1.eps b/doc/lispintro/cons-1.eps index d17082f5ac7..77d24cbddcc 100644 --- a/doc/lispintro/cons-1.eps +++ b/doc/lispintro/cons-1.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:26:58 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/cons-2.eps b/doc/lispintro/cons-2.eps index bd227a14c03..961b00a13ec 100644 --- a/doc/lispintro/cons-2.eps +++ b/doc/lispintro/cons-2.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:26:39 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/cons-2a.eps b/doc/lispintro/cons-2a.eps index 676030d780f..993609638a1 100644 --- a/doc/lispintro/cons-2a.eps +++ b/doc/lispintro/cons-2a.eps @@ -4,7 +4,7 @@ %%CreationDate: Tue Mar 14 15:09:30 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/cons-3.eps b/doc/lispintro/cons-3.eps index 329c751b856..e37dad0de60 100644 --- a/doc/lispintro/cons-3.eps +++ b/doc/lispintro/cons-3.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:25:41 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/cons-4.eps b/doc/lispintro/cons-4.eps index fe28852a872..9af4c2afd75 100644 --- a/doc/lispintro/cons-4.eps +++ b/doc/lispintro/cons-4.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:25:06 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/cons-5.eps b/doc/lispintro/cons-5.eps index 214c4059e32..8a400f320de 100644 --- a/doc/lispintro/cons-5.eps +++ b/doc/lispintro/cons-5.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:27:28 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/doclicense.texi b/doc/lispintro/doclicense.texi index 51342e96d60..9c3bbe56e91 100644 --- a/doc/lispintro/doclicense.texi +++ b/doc/lispintro/doclicense.texi @@ -1,4 +1,3 @@ -@c -*-texinfo-*- @c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @@ -6,7 +5,7 @@ @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies @@ -93,16 +92,16 @@ An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain -@sc{ascii} without markup, Texinfo input format, La@TeX{} input -format, @acronym{SGML} or @acronym{XML} using a publicly available -@acronym{DTD}, and standard-conforming simple @acronym{HTML}, -PostScript or @acronym{PDF} designed for human modification. Examples -of transparent image formats include @acronym{PNG}, @acronym{XCF} and -@acronym{JPG}. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, @acronym{SGML} or -@acronym{XML} for which the @acronym{DTD} and/or processing tools are -not generally available, and the machine-generated @acronym{HTML}, -PostScript or @acronym{PDF} produced by some word processors for +ASCII without markup, Texinfo input format, La@TeX{} input +format, SGML or XML using a publicly available +DTD, and standard-conforming simple HTML, +PostScript or PDF designed for human modification. Examples +of transparent image formats include PNG, XCF and +JPG@. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, SGML or +XML for which the DTD and/or processing tools are +not generally available, and the machine-generated HTML, +PostScript or PDF produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, @@ -482,7 +481,7 @@ license notices just after the title page: @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with@dots{}Texts.'' line with this: +replace the ``with@dots{}Texts.''@: line with this: @smallexample @group @@ -501,8 +500,6 @@ recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. - @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: - diff --git a/doc/lispintro/drawers.eps b/doc/lispintro/drawers.eps index 2c066fc708a..abfec2a7362 100644 --- a/doc/lispintro/drawers.eps +++ b/doc/lispintro/drawers.eps @@ -9,7 +9,7 @@ %%EndComments %%BeginProlog -% Copyright (C) 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index f885d6c15e8..c42ed210cbc 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -227,8 +227,17 @@ This is an @cite{Introduction to Programming in Emacs Lisp}, for people who are not programmers. @sp 1 Edition @value{edition-number}, @value{update-date} +@ifset WWW_GNU_ORG +@html +

The homepage for GNU Emacs is at +http://www.gnu.org/software/emacs/. +
To view this manual in other formats, click +here. +@end html +@end ifset @sp 1 -Copyright @copyright{} 1990-1995, 1997, 2001-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1990--1995, 1997, 2001--2013 Free Software +Foundation, Inc. @sp 1 @iftex @@ -1053,7 +1062,7 @@ of Emacs Lisp, I am referring to GNU Emacs Lisp in particular. My thanks to all who helped me with this book. My especial thanks to @r{Jim Blandy}, @r{Noah Friedman}, @w{Jim Kingdon}, @r{Roland -McGrath}, @w{Frank Ritter}, @w{Randy Smith}, @w{Richard M.@: +McGrath}, @w{Frank Ritter}, @w{Randy Smith}, @w{Richard M. Stallman}, and @w{Melissa Weisshaus}. My thanks also go to both @w{Philip Johnson} and @w{David Stampe} for their patient encouragement. My mistakes are my own. @@ -1085,7 +1094,7 @@ Robert J. Chassell @c has been already used, duplicate ignored @c I guess that is harmless (what happens if a later part of the text @c makes a link to something in the first 4 pages though?). -@c Note that eg the Emacs manual has a preface, but does not bother +@c E.g., note that the Emacs manual has a preface, but does not bother @c resetting the page numbers back to 1 after that. @iftex @headings off @@ -3072,7 +3081,7 @@ All functions are defined in terms of other functions, except for a few language. When you write functions' definitions, you will write them in Emacs Lisp and use other functions as your building blocks. Some of the functions you will use will themselves be written in Emacs Lisp (perhaps -by you) and some will be primitives written in C. The primitive +by you) and some will be primitives written in C@. The primitive functions are used exactly like those written in Emacs Lisp and behave like them. They are written in C so we can easily run GNU Emacs on any computer that has sufficient power and can run C. @@ -4582,7 +4591,7 @@ argument to the value returned by its second argument. @item buffer-name Without an argument, return the name of the buffer, as a string. -@itemx buffer-file-name +@item buffer-file-name Without an argument, return the name of the file the buffer is visiting. @@ -6281,7 +6290,7 @@ the arithmetic, a conversion is necessary, and @findex / @r{(division)} @cindex Division The second argument is @code{(/ size 10)}. This expression divides -the numeric value by ten --- the numeric value of the size of the +the numeric value by ten---the numeric value of the size of the accessible portion of the buffer. This produces a number that tells how many characters make up one tenth of the buffer size. (In Lisp, @code{/} is used for division, just as @code{*} is used for @@ -9029,7 +9038,7 @@ The last expression in the @code{kill-new} function adds the newly copied string to whatever facility exists for copying and pasting among different programs running in a windowing system. In the X Windowing system, for example, the @code{x-select-text} function takes -the string and stores it in memory operated by X. You can paste the +the string and stores it in memory operated by X@. You can paste the string in another program, such as an Xterm. @need 1200 @@ -9115,8 +9124,8 @@ Lisp; it is written in C and is one of the primitives of the GNU Emacs system. Since it is very simple, I will digress briefly from Lisp and describe it here. -@c GNU Emacs 22 in /usr/local/src/emacs/src/editfns.c -@c the DEFUN for buffer-substring-no-properties +@c GNU Emacs 24 in src/editfns.c +@c the DEFUN for delete-and-extract-region @need 1500 Like many of the other Emacs primitives, @@ -9126,22 +9135,15 @@ like this: @smallexample @group -DEFUN ("buffer-substring-no-properties", Fbuffer_substring_no_properties, - Sbuffer_substring_no_properties, 2, 2, 0, - doc: /* Return the characters of part of the buffer, -without the text properties. -The two arguments START and END are character positions; -they can be in either order. */) - (start, end) - Lisp_Object start, end; +DEFUN ("delete-and-extract-region", Fdelete_and_extract_region, + Sdelete_and_extract_region, 2, 2, 0, + doc: /* Delete the text between START and END and return it. */) + (Lisp_Object start, Lisp_Object end) @{ - register int b, e; - validate_region (&start, &end); - b = XINT (start); - e = XINT (end); - - return make_buffer_string (b, e, 0); + if (XINT (start) == XINT (end)) + return empty_unibyte_string; + return del_range_1 (XINT (start), XINT (end), 1, 1); @} @end group @end smallexample @@ -9191,20 +9193,9 @@ and provides a prompt. @item The seventh part is a documentation string, just like the one for a -function written in Emacs Lisp, except that every newline must be -written explicitly as @samp{\n} followed by a backslash and carriage -return. - -@need 1000 -Thus, the first two lines of documentation for @code{goto-char} are -written like this: - -@smallexample -@group - "Set point to POSITION, a number or marker.\n\ -Beginning of buffer is position (point-min), end is (point-max)." -@end group -@end smallexample +function written in Emacs Lisp. This is written as a C comment. (When +you build Emacs, the program @command{lib-src/make-docfile} extracts +these comments and uses them to make the ``real'' documentation.) @end itemize @need 1200 @@ -9217,15 +9208,15 @@ consists of the following four lines: @group validate_region (&start, &end); if (XINT (start) == XINT (end)) - return build_string (""); + return empty_unibyte_string; return del_range_1 (XINT (start), XINT (end), 1, 1); @end group @end smallexample -The @code{validate_region} function checks whether the values +The @code{validate_region} function checks whether the values passed as the beginning and end of the region are the proper type and are within range. If the beginning and end positions are the same, -then return and empty string. +then return an empty string. The @code{del_range_1} function actually deletes the text. It is a complex function we will not look into. It updates the buffer and @@ -9402,7 +9393,7 @@ either by setting it manually or by using @code{customize}. For me, the major use of the @code{set-variable} command is to suggest variables that I might want to set in my @file{.emacs} file. There -are now more than 700 such variables --- far too many to remember +are now more than 700 such variables, far too many to remember readily. Fortunately, you can press @key{TAB} after calling the @code{M-x set-variable} command to see the list of variables. (@xref{Examining, , Examining and Setting Variables, emacs, @@ -9657,7 +9648,7 @@ This sounds more complicated than it is and is easier seen in a diagram: @noindent In the diagram, each box represents a word of computer memory that holds a Lisp object, usually in the form of a memory address. The boxes, -i.e.@: the addresses, are in pairs. Each arrow points to what the address +i.e., the addresses, are in pairs. Each arrow points to what the address is the address of, either an atom or another pair of addresses. The first box is the electronic address of @samp{rose} and the arrow points to @samp{rose}; the second box is the address of the next pair of boxes, @@ -11195,8 +11186,8 @@ The @code{dolist} expression does very much the same as the of the work you have to do when writing a @code{while} expression. Like a @code{while} loop, a @code{dolist} loops. What is different is -that it automatically shortens the list each time it loops --- it -`@sc{cdr}s down the list' on its own --- and it automatically binds +that it automatically shortens the list each time it loops---it +`@sc{cdr}s down the list' on its own---and it automatically binds the @sc{car} of each shorter version of the list to the first of its arguments. @@ -13300,8 +13291,8 @@ We can see that this is a decrementing counter @code{while} loop, using the expression @code{(setq arg (1- arg))} as the decrementer. That expression is not far from the @code{while}, but is hidden in another Lisp macro, an @code{unless} macro. Unless we are at the end -of the buffer --- that is what the @code{eobp} function determines; it -is an abbreviation of @samp{End Of Buffer P} --- we decrease the value +of the buffer---that is what the @code{eobp} function determines; it +is an abbreviation of @samp{End Of Buffer P}---we decrease the value of @code{arg} by one. (If we are at the end of the buffer, we cannot go forward any more and @@ -15657,7 +15648,7 @@ as a list that looks like this (but with more elements): The @code{directory-files-and-attributes} function returns a list of lists. Each of the lists within the main list consists of 13 elements. The first element is a string that contains the name of the -file -- which, in GNU/Linux, may be a `directory file', that is to +file---which, in GNU/Linux, may be a `directory file', that is to say, a file with the special attributes of a directory. The second element of the list is @code{t} for a directory, a string for symbolic link (the string is the name linked to), or @code{nil}. @@ -15687,7 +15678,7 @@ nil "-rw-r--r--" @end group @group -nil +t 2971624 773) @end group @@ -16850,7 +16841,7 @@ Write a line graph version of the graph printing functions. @cindex Customizing your @file{.emacs} file @cindex Initialization file -``You don't have to like Emacs to like it'' -- this seemingly +``You don't have to like Emacs to like it''---this seemingly paradoxical statement is the secret of GNU Emacs. The plain, `out of the box' Emacs is a generic tool. Most people who use it, customize it to suit themselves. @@ -17009,7 +17000,7 @@ For example, the customizable user option variable "Normal hook run when entering Text mode and many related modes." :type 'hook :options '(turn-on-auto-fill flyspell-mode) - :group 'data) + :group 'wp) @end group @end smallexample @@ -17612,7 +17603,7 @@ For example: (load "~/emacs/slowsplit") @end smallexample -This evaluates, i.e.@: loads, the @file{slowsplit.el} file or if it +This evaluates, i.e., loads, the @file{slowsplit.el} file or if it exists, the faster, byte compiled @file{slowsplit.elc} file from the @file{emacs} sub-directory of your home directory. The file contains the function @code{split-window-quietly}, which John Robinson wrote in @@ -17828,7 +17819,7 @@ emacs -q --no-site-file -eval '(blink-cursor-mode nil)' @exdent Or nowadays, using an even more sophisticated set of options, -emacs -Q - D +emacs -Q -D @end smallexample }: @@ -18282,7 +18273,7 @@ or `All'. (A lower case @samp{p} tell you the percentage above the @emph{top} of the window.) @samp{%-} inserts enough dashes to fill out the line. -Remember, ``You don't have to like Emacs to like it'' --- your own +Remember, ``You don't have to like Emacs to like it''---your own Emacs can have different colors, different commands, and different keys than a default Emacs. @@ -18781,7 +18772,7 @@ completes without problems. @item While running Edebug, type @kbd{?} to see a list of all the Edebug commands. -(The @code{global-edebug-prefix} is usually @kbd{C-x X}, i.e.@: +(The @code{global-edebug-prefix} is usually @kbd{C-x X}, i.e., @kbd{@key{CTRL}-x} followed by an upper case @kbd{X}; use this prefix for commands made outside of the Edebug debugging buffer.) @@ -21946,7 +21937,7 @@ Here is the graph: @sp 2 @noindent -The largest group of functions contain 10 -- 19 words and symbols each. +The largest group of functions contain 10--19 words and symbols each. @node Free Software and Free Manuals @appendix Free Software and Free Manuals diff --git a/doc/lispintro/lambda-1.eps b/doc/lispintro/lambda-1.eps index 42f8d54264c..11f3318037c 100644 --- a/doc/lispintro/lambda-1.eps +++ b/doc/lispintro/lambda-1.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:31:53 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/lambda-2.eps b/doc/lispintro/lambda-2.eps index ab9e8a85820..3022ce9bb6c 100644 --- a/doc/lispintro/lambda-2.eps +++ b/doc/lispintro/lambda-2.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:33:09 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/lambda-3.eps b/doc/lispintro/lambda-3.eps index 8269650e0ec..0d66eb73332 100644 --- a/doc/lispintro/lambda-3.eps +++ b/doc/lispintro/lambda-3.eps @@ -4,7 +4,7 @@ %%CreationDate: Wed Mar 8 14:33:49 1995 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) -% Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. +% Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % diff --git a/doc/lispintro/makefile.w32-in b/doc/lispintro/makefile.w32-in index ea9b04b87ca..377112a80d2 100644 --- a/doc/lispintro/makefile.w32-in +++ b/doc/lispintro/makefile.w32-in @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Lisp Introduction manual. -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 3b4b04cfae5..416bb1eec98 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,5 +1,275 @@ +2013-03-24 Eli Zaretskii + + * compile.texi (Byte-Code Objects): Add index entry. + (Disassembly): Add cross-references. + +2013-03-23 Eli Zaretskii + + * frames.texi (Size Parameters): More accurate description of the + difference between 'fullboth' and 'maximized'. (Bug#13935) + +2013-03-17 Christopher Schmidt + + * symbols.texi (Standard Properties): Document pure. (Bug#13823) + +2013-03-16 Glenn Morris + + * elisp.texi: Add some stuff specific to www.gnu.org. + +2013-03-16 Glenn Morris + + * Version 24.3 released. +2013-03-11 Teodor Zlatanov + + * control.texi (Pattern matching case statement): Fix typo. + +2013-03-04 Paul Eggert + + * elisp.texi, intro.texi: Switch from Latin-1 to UTF-8. + +2013-03-03 Glenn Morris + + * objects.texi (Symbol Type): Fix typo. + +2013-02-28 Bastien Guerry + + * variables.texi (File Local Variables): Fix reference. + +2013-02-24 Eli Zaretskii + + * files.texi (Magic File Names): Improve wording and indexing. + +2013-02-21 Glenn Morris + + * display.texi (Multi-Frame Images): Minor rephrasing. + +2013-02-20 Glenn Morris + + * display.texi (GIF Images, TIFF Images): Delete these nodes. + (ImageMagick Images): For :index, use an xref rather than duplicating. + (Other Image Types): Add GIF, adjust formatting. + (Multi-Frame Images): Rename from Animated Images. Expand section. + * elisp.texi (Top): Update menu for these changes. + +2013-02-19 Glenn Morris + + * text.texi (Change Hooks): Fix typo. + +2013-02-15 Glenn Morris + + * modes.texi (Basic Major Modes): 'z' no longer bound in special-mode. + +2013-02-13 Glenn Morris + + * objects.texi (Char-Table Type): Add footnote about #^^. + + * modes.texi (Minor Mode Conventions): Fix typo. + + * keymaps.texi (Scanning Keymaps): Remove obsolete sentence about + meta characters; this changed in 22.1. (Bug#13684) + + * objects.texi (Char-Table Type): Add cindex. + + * keymaps.texi (Key Binding Commands): Trivial rephrasing. + +2013-02-10 Glenn Morris + + * keymaps.texi (Creating Keymaps): Update make-keymap result. + +2013-02-09 Eli Zaretskii + + * modes.texi (%-Constructs): Remove the description of %t. + + * nonascii.texi (MS-DOS File Types): Delete node. + +2013-02-08 Glenn Morris + + * keymaps.texi (Active Keymaps, Searching Keymaps): + Remove confusing mention of "symbolic prefix". (Bug#13643) + +2013-01-19 Glenn Morris + + * macros.texi (Indenting Macros): Fix order of an indent + symbol's arguments. (Bug#13450) + +2013-01-19 Paul Eggert + + Allow floating-point file offsets. + * files.texi (Reading from Files, Writing to Files): + Say that file offsets can be numbers, not just integers. + +2013-01-09 Glenn Morris + + * commands.texi (Interactive Codes): + Whitespace does not terminate interactive "S". (Bug#13393) + +2013-01-06 Chong Yidong + + * windows.texi (Vertical Scrolling): Fix typos (Bug#13267). + +2013-01-05 Glenn Morris + + * display.texi (Overlay Properties): Mention field. (Bug#13364) + +2013-01-05 Eli Zaretskii + + * hooks.texi (Standard Hooks): Use @item, not @itemx, as the first + directive in a group of items. + +2013-01-05 Chong Yidong + + * keymaps.texi (Key Sequences): Remove obsolete sentence + (Bug#13356). + +2013-01-04 Ari Roponen (tiny change) + + * hash.texi (Defining Hash): Fix typo. (Bug#13345) + +2013-01-04 Stefan Monnier + + * files.texi (File Attributes): Undocument return format of file-acl. + +2013-01-03 Glenn Morris + + * processes.texi (System Processes): + * syntax.texi (Syntax Table Functions): Tweak some line breaks. + + * searching.texi (Replacing Match): Fix xref. + + * elisp.texi (DATE): Bump to Jan 2013. + +2013-01-02 Glenn Morris + + * customize.texi (Common Keywords, Type Keywords): + Replace "active field" with "button". (Bug#13310) + + * customize.texi (Common Keywords): Add xref. (Bug#13311) + * tips.texi (Library Headers): Add cindex. + +2012-12-30 Wolfgang Jenkner + + * functions.texi (Declare Form): + * intro.texi (A Sample Function Description): + * syntax.texi (Syntax Table Internals, Syntax Table Functions): + * variables.texi (Using Lexical Binding): Don't use @var or CAPS + in @def.. commands. (Bug#13292) + +2012-12-29 Eli Zaretskii + + * files.texi (Changing Files): Document the return values of + set-file-selinux-context and set-file-acl. + +2012-12-27 Glenn Morris + + * files.texi (File Names): Mention Cygwin conversion functions. + +2012-12-22 Martin Rudalics + + * windows.texi (Selecting Windows): Reword description of + select-window (Bug#13248). + +2012-12-22 Eli Zaretskii + + * files.texi (File Attributes, Changing Files): Remove the details + about the text returned by file-acl. Instead, just document that + it is an opaque string meant to be used by set-file-acl. + +2012-12-21 Chong Yidong + + * modes.texi (Auto Major Mode): Fix typo (Bug#13230). + + * customize.texi (Simple Types): Document key-sequence type + (Bug#13048). + + * strings.texi (Text Comparison): Doc fix for compare-strings. + +2012-12-19 Michael Albinus + + * files.texi (Magic File Names): Add `file-acl', + `file-selinux-context', `set-file-acl' and + `set-file-selinux-context'. Make the list consistent. + +2012-12-19 Jonas Bernoulli + + * tips.texi (Library Headers): New header keyword `Homepage'. + Make continuation lines syntax more precise. + +2012-12-17 Eli Zaretskii + + * files.texi (File Attributes, Changing Files): Update to include + MS-Windows support for ACLs. + +2012-12-16 Romain Francoise + + * files.texi (File Attributes): Document ACL support and new + `file-acl' function. + (Changing Files): Mention argument name change of `copy-file' and + document new function `set-file-acl'. + +2012-12-14 Paul Eggert + + Fix permissions bugs with setgid directories etc. (Bug#13125) + * files.texi (Testing Accessibility): Document GROUP arg + of file-ownership-preserved-p. + (File Attributes): Document that 9th element is now + just a placeholder. + * os.texi (User Identification): Document new functions group-gid, + group-real-gid. + +2012-12-11 Paul Eggert + + * internals.texi (C Integer Types): New section. + This follows up and records an email in + . + +2012-12-10 Stefan Monnier + + * control.texi (Pattern matching case statement): New node. + + * customize.texi (Variable Definitions): Mention the default :group + for defcustoms (bug#13093). + +2012-12-09 Glenn Morris + + * customize.texi (Variable Definitions): Mention eval-defun + on a defcustom calls the :set function when appropriate. + +2012-12-06 Paul Eggert + + * doclicense.texi, gpl.texi: Update to latest version from FSF. + These are just minor editorial changes. + +2012-12-06 Chong Yidong + + * lists.texi (Plist Access): Move put example to Symbol Plists. + + * symbols.texi (Standard Properties): Fix typo. + +2012-12-03 Chong Yidong + + * symbols.texi (Symbol Properties): New node. + (Symbol Plists): Make it a subsection under Symbol Properties. + (Standard Properties): New node. + + * lists.texi (Property Lists): Move here from symbols.texi. + (Plist Access): Rename from Other Plists. + + * customize.texi (Variable Definitions): + * display.texi (Defining Faces): + * sequences.texi (Char-Tables): Fix xref. + + * keymaps.texi (Key Sequences): `kbd' is now a function. + + * commands.texi (Using Interactive): Fix index entry. + 2012-11-24 Paul Eggert + * doclicense.texi: Update to latest version from FSF. + These are just minor editorial changes. + * elisp.texi (GNU Free Documentation License) + (GNU General Public Licens): + Provide sectioning, since doclicense.texi no longer does that. + * loading.texi (Named Features): @ -> @@ to fix typo. 2012-11-24 Martin Rudalics @@ -8,16 +278,14 @@ (Windows and Frames): Fix example. Move description of window-in-direction here. (Recombining Windows): Fix example. - (Buffers and Windows): Fix description of - replace-buffer-in-windows. + (Buffers and Windows): Fix description of replace-buffer-in-windows. (Switching Buffers): Reword. (Display Action Functions): Minor adjustments. (Choosing Window Options): Minor fixes. (Window History): Minor rewording. (Dedicated Windows): Correct and reword part describing how dedicatedness affects functions removing buffers or windows. - * buffers.texi (The Buffer List): Fix description of - bury-buffer. + * buffers.texi (The Buffer List): Fix description of bury-buffer. 2012-11-24 Chong Yidong @@ -76,8 +344,8 @@ * windows.texi (Choosing Window): Rewrite description of display-buffer-alist (Bug#12167). - (Display Action Functions): Mention inhibit-switch-frame. Fix - description of display-buffer-below-selected. Reorder actions. + (Display Action Functions): Mention inhibit-switch-frame. + Fix description of display-buffer-below-selected. Reorder actions. Add example (Bug#12848). 2012-11-16 Glenn Morris @@ -176,11 +444,11 @@ switch-to-buffer-preserve-window-point. (Display Action Functions): Document window-height and window-width alist entries. - (Display Action Functions): Document - display-buffer-below-selected and + (Display Action Functions): + Document display-buffer-below-selected and display-buffer-in-previous-window. - (Quitting Windows): Document quit-restore-window. Rewrite - section. + (Quitting Windows): Document quit-restore-window. + Rewrite section. (Window Configurations): In window-state-get mention that argument window must be valid. (Window Parameters): Document quit-restore window parameter @@ -280,8 +548,8 @@ * minibuf.texi (Text from Minibuffer): Document read-regexp changes. - * nonascii.texi (Selecting a Representation): Document - set-buffer-multibyte changes. + * nonascii.texi (Selecting a Representation): + Document set-buffer-multibyte changes. * keymaps.texi (Toolkit Differences): Node deleted. (Easy Menu): New node. @@ -1053,8 +1321,8 @@ 2012-04-12 Jari Aalto - * processes.texi (Synchronous Processes): Mention - `default-directory' (bug#7515). + * processes.texi (Synchronous Processes): + Mention `default-directory' (bug#7515). 2012-04-09 Chong Yidong @@ -1077,8 +1345,8 @@ * minibuf.texi (Programmed Completion): Remove obsolete variable completion-annotate-function. - (Completion Variables): Rename from Completion Styles. Document - completion-extra-properties. Document completion-styles-alist + (Completion Variables): Rename from Completion Styles. + Document completion-extra-properties. Document completion-styles-alist change. (Reading File Names): minibuffer-local-filename-must-match-map is not used anymore. @@ -1213,8 +1481,8 @@ Minor clarifications. (Defining Faces): Copyedits. Update face example. (Attribute Functions): Mark set-face-foreground etc as commands. - (Face Remapping): Mention text-scale-adjust. Clarify - face-remapping-alist and related docs. + (Face Remapping): Mention text-scale-adjust. + Clarify face-remapping-alist and related docs. (Face Functions): Don't document make-face or copy-face. 2012-03-20 Chong Yidong @@ -1555,8 +1823,8 @@ (Syntax Properties): Document syntax-propertize-function and syntax-propertize-extend-region-functions. (Motion via Parsing): Clarify scan-lists. Fix indentation. - (Parser State): Update for the new "c" comment style. Fix - description of item 7 (comment style). + (Parser State): Update for the new "c" comment style. + Fix description of item 7 (comment style). * modes.texi (Minor Modes): Update how mode commands should treat arguments now. @@ -1634,9 +1902,9 @@ * debugging.texi (Debugging): Copyedits. Describe testcover, ERT. (Error Debugging): Note that debug-ignored-errors overrides list - values of debug-on-error too. Add xref to Signaling Errors. Note - that debug-on-signal is not customizable. Mention - condition-case-unless-debug. + values of debug-on-error too. Add xref to Signaling Errors. + Note that debug-on-signal is not customizable. + Mention condition-case-unless-debug. (Compilation Errors): Node deleted. * compile.texi (Compiler Errors): Move a paragraph here from @@ -1752,15 +2020,15 @@ 2012-02-04 Chong Yidong * functions.texi (What Is a Function): Add closures. Mention - "return value" terminology. Add xref for command-execute. Remove - unused "keystroke command" terminology. + "return value" terminology. Add xref for command-execute. + Remove unused "keystroke command" terminology. (Lambda Expressions): Give a different example than in the following subsection. Add xref to Anonymous Functions. (Function Documentation): Remove gratuitous markup. (Function Names): Move introductory text to `What Is a Function'. (Defining Functions): Fix defun argument spec. - (Anonymous Functions): Document lambda macro explicitly. Mention - effects on lexical binding. + (Anonymous Functions): Document lambda macro explicitly. + Mention effects on lexical binding. (Function Cells): Downplay direct usage of fset. (Closures): New node. (Inline Functions): Remove "open-code" terminology. @@ -1891,8 +2159,8 @@ * variables.texi (Variables, Local Variables, Void Variables): Edit to make the descriptions less specific to dynamic binding. (Local Variables): Default max-specpdl-size is now 1300. - (Defining Variables): Edits for lexical scoping. Delete - information about starting docstrings with *. De-document + (Defining Variables): Edits for lexical scoping. + Delete information about starting docstrings with *. De-document user-variable-p. (Tips for Defining): Remove an unimportant discussion of quitting in the middle of a load. @@ -1980,8 +2248,8 @@ 2012-01-06 Chong Yidong - * variables.texi (Directory Local Variables): Document - hack-dir-local-variables-non-file-buffer. + * variables.texi (Directory Local Variables): + Document hack-dir-local-variables-non-file-buffer. 2012-01-06 Glenn Morris @@ -11798,7 +12066,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1998-2012 Free Software Foundation, Inc. + Copyright (C) 1998-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in index 32a241e2a2d..8e04d085c60 100644 --- a/doc/lispref/Makefile.in +++ b/doc/lispref/Makefile.in @@ -1,6 +1,6 @@ # Makefile for the GNU Emacs Lisp Reference Manual. -# Copyright (C) 1990-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1990-1996, 1998-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/doc/lispref/README b/doc/lispref/README index 0230f4718c8..b94bd10789c 100644 --- a/doc/lispref/README +++ b/doc/lispref/README @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. -*- outline -*- +Copyright (C) 2001-2013 Free Software Foundation, Inc. -*- outline -*- See the end of the file for license conditions. diff --git a/doc/lispref/abbrevs.texi b/doc/lispref/abbrevs.texi index 65a83ef5b84..7cc558f9391 100644 --- a/doc/lispref/abbrevs.texi +++ b/doc/lispref/abbrevs.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 1999, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Abbrevs @chapter Abbrevs and Abbrev Expansion @@ -132,7 +133,7 @@ abbrev in an abbrev table. When a major mode defines a system abbrev, it should call @code{define-abbrev} and specify @code{t} for the @code{:system} property. Be aware that any saved non-``system'' abbrevs are restored -at startup, i.e. before some major modes are loaded. Therefore, major +at startup, i.e., before some major modes are loaded. Therefore, major modes should not assume that their abbrev tables are empty when they are first loaded. diff --git a/doc/lispref/advice.texi b/doc/lispref/advice.texi index 7b18852b1a1..e8d1bd3cdbc 100644 --- a/doc/lispref/advice.texi +++ b/doc/lispref/advice.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1998-1999, 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Advising Functions @chapter Advising Emacs Lisp Functions diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index 6ece2149733..577411ba9df 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999, 2002-2012 Free Software Foundation, Inc. +@c Copyright (C) 1999, 2002-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c This node must have no pointers. diff --git a/doc/lispref/back.texi b/doc/lispref/back.texi index 75c244ae1dd..ef20f8b79e0 100644 --- a/doc/lispref/back.texi +++ b/doc/lispref/back.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c @c %**start of header diff --git a/doc/lispref/backups.texi b/doc/lispref/backups.texi index 935a49116cd..f2599c773ea 100644 --- a/doc/lispref/backups.texi +++ b/doc/lispref/backups.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1999, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Backups and Auto-Saving @chapter Backups and Auto-Saving @@ -661,7 +662,7 @@ host name. After Emacs reads your init file, it initializes @code{auto-save-list-file-name} (if you have not already set it non-@code{nil}) based on this prefix, adding the host name and process -ID. If you set this to @code{nil} in your init file, then Emacs does +ID@. If you set this to @code{nil} in your init file, then Emacs does not initialize @code{auto-save-list-file-name}. @end defopt @@ -772,4 +773,3 @@ to call to check whether a non-file buffer needs reverting (@pxref{Supporting additional buffers,,, emacs}). @end ifnottex @end defvar - diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index 6462788b34e..7ed1876e4b1 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Buffers @chapter Buffers @@ -650,7 +650,7 @@ the last modification time of that directory, as recorded by Dired. For a new buffer visiting a not yet existing file, @var{high} is @minus{}1 and @var{low} is 65535, that is, @ifnottex -@w{2**16 - 1.} +@w{2**16 @minus{} 1.} @end ifnottex @tex @math{2^{16}-1}. diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index c42e4b3b6dc..846d6f3a4a9 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Command Loop @chapter Command Loop @@ -65,7 +66,7 @@ use the minibuffer, so if you call @code{find-file} as a function from Lisp code, you must supply the file name string as an ordinary Lisp function argument. - If the command is a keyboard macro (i.e.@: a string or vector), + If the command is a keyboard macro (i.e., a string or vector), Emacs executes it using @code{execute-kbd-macro} (@pxref{Keyboard Macros}). @@ -141,10 +142,10 @@ A command may be called from Lisp programs like any other function, but then the caller supplies the arguments and @var{arg-descriptor} has no effect. -@cindex @code{interactive-form}, function property +@cindex @code{interactive-form}, symbol property The @code{interactive} form must be located at top-level in the function body, or in the function symbol's @code{interactive-form} -property (@pxref{Symbol Plists}). It has its effect because the +property (@pxref{Symbol Properties}). It has its effect because the command loop looks for it before calling the function (@pxref{Interactive Call}). Once the function is called, all its body forms are executed; at this time, if the @code{interactive} form @@ -470,10 +471,10 @@ Arbitrary text, read in the minibuffer and returned as a string these characters in the input.) Prompt. @item S -An interned symbol whose name is read in the minibuffer. Any whitespace -character terminates the input. (Use @kbd{C-q} to include whitespace in -the string.) Other characters that normally terminate a symbol (e.g., -parentheses and brackets) do not do so here. Prompt. +An interned symbol whose name is read in the minibuffer. Terminate +the input with either @kbd{C-j} or @key{RET}. Other characters that +normally terminate a symbol (e.g., whitespace, parentheses and +brackets) do not do so here. Prompt. @item U A key sequence or @code{nil}. Can be used after a @samp{k} or @@ -2451,7 +2452,7 @@ right-arrow function key: @defun read-char &optional prompt inherit-input-method seconds This function reads and returns a character of command input. If the -user generates an event which is not a character (i.e. a mouse click or +user generates an event which is not a character (i.e., a mouse click or function key event), @code{read-char} signals an error. The arguments work as in @code{read-event}. @@ -2660,7 +2661,7 @@ The command @code{quoted-insert} uses this function. @cindex control characters, reading @cindex nonprinting characters, reading This function is like @code{read-char}, except that if the first -character read is an octal digit (0-7), it reads any number of octal +character read is an octal digit (0--7), it reads any number of octal digits (but stopping if a non-octal digit is found), and returns the character represented by that numeric character code. If the character that terminates the sequence of octal digits is @key{RET}, @@ -2727,7 +2728,7 @@ Normally you add events to the front of this list, so that the events 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}), +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})} forces @var{event} to be added to the current command's key sequence. @@ -2863,7 +2864,7 @@ Some systems support only a whole number of seconds; on these systems, @var{seconds} is rounded down. The expression @code{(sit-for 0)} is equivalent to @code{(redisplay)}, -i.e. it requests a redisplay, without any delay, if there is no pending input. +i.e., it requests a redisplay, without any delay, if there is no pending input. @xref{Forcing Redisplay}. If @var{nodisp} is non-@code{nil}, then @code{sit-for} does not diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index f088934f5f1..522a88da61e 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Byte Compilation @chapter Byte Compilation @@ -514,6 +514,7 @@ one you intend to suppress. @section Byte-Code Function Objects @cindex compiled function @cindex byte-code function +@cindex byte-code object Byte-compiled functions have a special data type: they are @dfn{byte-code function objects}. Whenever such an object appears as @@ -606,8 +607,9 @@ name of an existing buffer. Then the output goes there, at point, and point is left before the output. The argument @var{object} can be a function name, a lambda expression -or a byte-code object. If it is a lambda expression, @code{disassemble} -compiles it and disassembles the resulting compiled code. +(@pxref{Lambda Expressions}), or a byte-code object (@pxref{Byte-Code +Objects}). If it is a lambda expression, @code{disassemble} compiles +it and disassembles the resulting compiled code. @end deffn Here are two examples of using the @code{disassemble} function. We @@ -657,7 +659,7 @@ Lisp source; these do not appear in the output of @code{disassemble}. 11 sub1 ; @r{Pop @code{integer}, decrement value,} ; @r{push new value onto stack.} 12 call 1 ; @r{Call function @code{factorial} using first} - ; @r{(i.e. top) stack element as argument;} + ; @r{(i.e., top) stack element as argument;} ; @r{push returned value onto stack.} @end group @group @@ -704,7 +706,7 @@ The @code{silly-loop} function is somewhat more complex: 4 sub1 ; @r{Subtract 1 from top of stack.} @end group @group -5 dup ; @r{Duplicate top of stack; i.e. copy the top} +5 dup ; @r{Duplicate top of stack; i.e., copy the top} ; @r{of the stack and push copy onto stack.} 6 varset n ; @r{Pop the top of the stack,} ; @r{and bind @code{n} to the value.} @@ -737,4 +739,3 @@ The @code{silly-loop} function is somewhat more complex: 17 return ; @r{Return value of the top of stack.} @end group @end example - diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 489e5cc5b22..9ee01299260 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Control Structures @chapter Control Structures @@ -285,6 +286,110 @@ For example: @end group @end example +@menu +* Pattern matching case statement:: +@end menu + +@node Pattern matching case statement +@subsection Pattern matching case statement +@cindex pcase +@cindex pattern matching + +To compare a particular value against various possible cases, the macro +@code{pcase} can come handy. It takes the following form: + +@example +(pcase @var{exp} @var{branch}1 @var{branch}2 @var{branch}3 @dots{}) +@end example + +where each @var{branch} takes the form @code{(@var{upattern} +@var{body-forms}@dots{})}. + +It will first evaluate @var{exp} and then compare the value against each +@var{upattern} to see which @var{branch} to use, after which it will run the +corresponding @var{body-forms}. A common use case is to distinguish +between a few different constant values: + +@example +(pcase (get-return-code x) + (`success (message "Done!")) + (`would-block (message "Sorry, can't do it now")) + (`read-only (message "The shmliblick is read-only")) + (`access-denied (message "You do not have the needed rights")) + (code (message "Unknown return code %S" code))) +@end example + +In the last clause, @code{code} is a variable that gets bound to the value that +was returned by @code{(get-return-code x)}. + +To give a more complex example, a simple interpreter for a little +expression language could look like: + +@example +(defun evaluate (exp env) + (pcase exp + (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) + (`(call ,fun ,arg) (funcall (evaluate fun) (evaluate arg env))) + (`(fn ,arg ,body) (lambda (val) + (evaluate body (cons (cons arg val) env)))) + ((pred numberp) exp) + ((pred symbolp) (cdr (assq exp env))) + (_ (error "Unknown expression %S" exp)))) +@end example + +Where @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a three +element list starting with the symbol @code{add}, then extracts the second and +third elements and binds them to the variables @code{x} and @code{y}. +@code{(pred numberp)} is a pattern that simply checks that @code{exp} +is a number, and @code{_} is the catch-all pattern that matches anything. + +There are two kinds of patterns involved in @code{pcase}, called +@emph{U-patterns} and @emph{Q-patterns}. The @var{upattern} mentioned above +are U-patterns and can take the following forms: + +@table @code +@item `@var{qpattern} +This is one of the most common form of patterns. The intention is to mimic the +backquote macro: this pattern matches those values that could have been built +by such a backquote expression. Since we're pattern matching rather than +building a value, the unquote does not indicate where to plug an expression, +but instead it lets one specify a U-pattern that should match the value at +that location. + +More specifically, a Q-pattern can take the following forms: +@table @code +@item (@var{qpattern1} . @var{qpattern2}) +This pattern matches any cons cell whose @code{car} matches @var{QPATTERN1} and +whose @code{cdr} matches @var{PATTERN2}. +@item @var{atom} +This pattern matches any atom @code{equal} to @var{atom}. +@item ,@var{upattern} +This pattern matches any object that matches the @var{upattern}. +@end table + +@item @var{symbol} +A mere symbol in a U-pattern matches anything, and additionally let-binds this +symbol to the value that it matched, so that you can later refer to it, either +in the @var{body-forms} or also later in the pattern. +@item _ +This so-called @emph{don't care} pattern matches anything, like the previous +one, but unlike symbol patterns it does not bind any variable. +@item (pred @var{pred}) +This pattern matches if the function @var{pred} returns non-@code{nil} when +called with the object being matched. +@item (or @var{upattern1} @var{upattern2}@dots{}) +This pattern matches as soon as one of the argument patterns succeeds. +All argument patterns should let-bind the same variables. +@item (and @var{upattern1} @var{upattern2}@dots{}) +This pattern matches only if all the argument patterns succeed. +@item (guard @var{exp}) +This pattern ignores the object being examined and simply succeeds if @var{exp} +evaluates to non-@code{nil} and fails otherwise. It is typically used inside +an @code{and} pattern. For example, @code{(and x (guard (< x 10)))} +is a pattern which matches any number smaller than 10 and let-binds it to +the variable @code{x}. +@end table + @node Combining Conditions @section Constructs for Combining Conditions diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index c9d22851ed2..e9260309057 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1997-2012 Free Software Foundation, Inc. +@c Copyright (C) 1997-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Customization @chapter Customization Settings @@ -77,7 +77,7 @@ item. Please don't overdo this, since the result would be annoying. @item :link @var{link-data} @kindex link@r{, customization keyword} Include an external link after the documentation string for this item. -This is a sentence containing an active field which references some +This is a sentence containing a button that references some other documentation. There are several alternatives you can use for @var{link-data}: @@ -101,7 +101,7 @@ Link to a web page; @var{url} is a string which specifies the @item (emacs-commentary-link @var{library}) Link to the commentary section of a library; @var{library} is a string -which specifies the library name. +which specifies the library name. @xref{Library Headers}. @item (emacs-library-link @var{library}) Link to an Emacs Lisp library file; @var{library} is a string which @@ -162,7 +162,7 @@ value was changed in that version. This keyword takes priority over @code{:version}. @var{package} should be the official name of the package, as a symbol -(e.g.@: @code{MH-E}). @var{version} should be a string. If the +(e.g., @code{MH-E}). @var{version} should be a string. If the package @var{package} is released as part of Emacs, @var{package} and @var{version} should appear in the value of @code{customize-package-emacs-version-alist}. @@ -261,7 +261,7 @@ If this variable is non-@code{nil}, the prefixes specified by a group's @code{:prefix} keyword are omitted from tag names, whenever the user customizes the group. -The default value is @code{nil}, i.e.@: the prefix-discarding feature +The default value is @code{nil}, i.e., the prefix-discarding feature is disabled. This is because discarding prefixes often leads to confusing names for options and faces. @end defopt @@ -282,7 +282,7 @@ variable should be displayed in the Customize interface, the values it is allowed to take, etc. @defmac defcustom option standard doc [keyword value]@dots{} -This macro declares @var{option} as a user option (i.e.@: a +This macro declares @var{option} as a user option (i.e., a customizable variable). You should not quote @var{option}. The argument @var{standard} is an expression that specifies the @@ -303,17 +303,21 @@ evaluate at any time. The argument @var{doc} specifies the documentation string for the variable. -Every @code{defcustom} should specify @code{:group} at least once. +If a @code{defcustom} does not specify any @code{:group}, the last group +defined with @code{defgroup} in the same file will be used. This way, most +@code{defcustom} do not need an explicit @code{:group}. When you evaluate a @code{defcustom} form with @kbd{C-M-x} in Emacs Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun} arranges to set the variable unconditionally, without testing whether -its value is void. (The same feature applies to @code{defvar}.) -@xref{Defining Variables}. +its value is void. (The same feature applies to @code{defvar}, +@pxref{Defining Variables}.) Using @code{eval-defun} on a defcustom +that is already defined calls the @code{:set} function (see below), +if there is one. If you put a @code{defcustom} in a pre-loaded Emacs Lisp file (@pxref{Building Emacs}), the standard value installed at dump time -might be incorrect, e.g.@: because another variable that it depends on +might be incorrect, e.g., because another variable that it depends on has not been assigned the right value yet. In that case, use @code{custom-reevaluate-setting}, described below, to re-evaluate the standard value after Emacs starts up. @@ -472,8 +476,8 @@ Internally, @code{defcustom} uses the symbol property @code{saved-value} to record the value saved by the user with the customization buffer, and @code{customized-value} to record the value set by the user with the customization buffer, but not saved. -@xref{Property Lists}. These properties are lists, the car of which -is an expression that evaluates to the value. +@xref{Symbol Properties}. These properties are lists, the car of +which is an expression that evaluates to the value. @defun custom-reevaluate-setting symbol This function re-evaluates the standard value of @var{symbol}, which @@ -616,6 +620,11 @@ you can specify that the value must be @code{nil} or @code{t}, but also specify the text to describe each value in a way that fits the specific meaning of the alternative. +@item key-sequence +The value is a key sequence. The customization buffer shows the key +sequence using the same syntax as the @kbd{kbd} function. @xref{Key +Sequences}. + @item coding-system The value must be a coding-system name, and you can do completion with @kbd{M-@key{TAB}}. @@ -1073,8 +1082,7 @@ Substitute the item's documentation string. @item %h Like @samp{%d}, but if the documentation string is more than one line, -add an active field to control whether to show all of it or just the -first line. +add a button to control whether to show all of it or just the first line. @item %t Substitute the tag here. You specify the tag with the @code{:tag} @@ -1415,7 +1423,7 @@ disabling themes: @defun custom-theme-p theme This function return a non-@code{nil} value if @var{theme} (a symbol) -is the name of a Custom theme (i.e.@: a Custom theme which has been +is the name of a Custom theme (i.e., a Custom theme which has been loaded into Emacs, whether or not the theme is enabled). Otherwise, it returns @code{nil}. @end defun diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi index 6e4f6628637..24629465525 100644 --- a/doc/lispref/debugging.texi +++ b/doc/lispref/debugging.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Debugging @chapter Debugging Lisp Programs diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 5148c6ec22e..eae6af9969d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Display @chapter Emacs Display @@ -87,7 +87,7 @@ This function tries immediately to redisplay. The optional argument instead of being preempted, even if input is pending and the variable @code{redisplay-dont-pause} is @code{nil} (see below). If @code{redisplay-dont-pause} is non-@code{nil} (the default), this -function redisplays in any case, i.e.@: @var{force} does nothing. +function redisplays in any case, i.e., @var{force} does nothing. The function returns @code{t} if it actually tried to redisplay, and @code{nil} otherwise. A value of @code{t} does not mean that @@ -163,7 +163,7 @@ If this buffer-local variable is non-@code{nil}, lines that extend beyond the right edge of the window are truncated; otherwise, they are continued. As a special exception, the variable @code{truncate-partial-width-windows} takes precedence in -@dfn{partial-width} windows (i.e.@: windows that do not occupy the +@dfn{partial-width} windows (i.e., windows that do not occupy the entire frame width). @end defopt @@ -1541,7 +1541,7 @@ specify just the foreground color or just the background color. @kindex mouse-face @r{(overlay property)} This property is used instead of @code{face} when the mouse is within the range of the overlay. However, Emacs ignores all face attributes -from this property that alter the text size (e.g. @code{:height}, +from this property that alter the text size (e.g., @code{:height}, @code{:weight}, and @code{:slant}). Those attributes are always the same as in the unhighlighted text. @@ -1559,6 +1559,14 @@ mouse onto the text in the overlay, Emacs displays a help string in the echo area, or in the tooltip window. For details see @ref{Text help-echo}. +@item field +@kindex field @r{(overlay property)} +@c Copied from Special Properties. +Consecutive characters with the same @code{field} property constitute a +@emph{field}. Some motion functions including @code{forward-word} and +@code{beginning-of-line} stop moving at a field boundary. +@xref{Fields}. + @item modification-hooks @kindex modification-hooks @r{(overlay property)} This property's value is a list of functions to be called if any @@ -1744,7 +1752,7 @@ check the width of a character. @xref{Primitive Indent}, and @defun char-width char This function returns the width in columns of the character -@var{char}, if it were displayed in the current buffer (i.e.@: taking +@var{char}, if it were displayed in the current buffer (i.e., taking into account the buffer's display table, if any; @pxref{Display Tables}). The width of a tab character is usually @code{tab-width} (@pxref{Usual Display}). @@ -2287,7 +2295,7 @@ terminal must match one of the @var{value}s specified for it in @end example Internally, Emacs stores the face's default specification in its -@code{face-defface-spec} symbol property (@pxref{Property Lists}). +@code{face-defface-spec} symbol property (@pxref{Symbol Properties}). The @code{saved-face} property stores the face specification saved by the user, using the customization buffer; the @code{customized-face} property stores the face specification customized for the current @@ -2569,7 +2577,7 @@ any text having the face @var{face} with @var{remapping}, rather than the ordinary definition of @var{face}. @var{remapping} may be any face specification suitable for a -@code{face} text property: either a face (i.e.@: a face name or a +@code{face} text property: either a face (i.e., a face name or a property list of attribute/value pairs), or a list of faces. For details, see the description of the @code{face} text property in @ref{Special Properties}. @var{remapping} serves as the complete @@ -2775,7 +2783,7 @@ attribute on this face (@pxref{Face Attributes}). @itemx underline @itemx fixed-pitch @itemx variable-pitch -These have the attributes indicated by their names (e.g. @code{bold} +These have the attributes indicated by their names (e.g., @code{bold} has a bold @code{:weight} attribute), with all other attributes unspecified (and so given by @code{default}). @@ -3458,7 +3466,7 @@ both left and right fringes. @xref{Fringe Bitmaps}, for a list of standard bitmap symbols and how to define your own. In addition, @code{nil} represents the empty -bitmap (i.e.@: an indicator that is not shown). +bitmap (i.e., an indicator that is not shown). When @code{fringe-indicator-alist} has a buffer-local value, and there is no bitmap defined for a logical indicator, or the bitmap is @@ -3836,7 +3844,7 @@ irrelevant, since those don't apply to the replacement. property'' means all the consecutive characters that have the same Lisp object as their @code{display} property; these characters are replaced as a single unit. If two characters have different Lisp -objects as their @code{display} properties (i.e.@: objects which are +objects as their @code{display} properties (i.e., objects which are not @code{eq}), they are handled separately. Here is an example which illustrates this point. A string serves as @@ -4191,14 +4199,12 @@ displayed (@pxref{Display Feature Testing}). * Image Descriptors:: How to specify an image for use in @code{:display}. * XBM Images:: Special features for XBM format. * XPM Images:: Special features for XPM format. -* GIF Images:: Special features for GIF format. -* TIFF Images:: Special features for TIFF format. * PostScript Images:: Special features for PostScript format. * ImageMagick Images:: Special features available through ImageMagick. * Other Image Types:: Various other formats are supported. * Defining Images:: Convenient ways to define an image for later use. * Showing Images:: Convenient ways to display an image once it is defined. -* Animated Images:: Some image formats can be animated. +* Multi-Frame Images:: Some images contain more than one frame. * Image Cache:: Internal mechanisms of image display. @end menu @@ -4533,35 +4539,6 @@ the name of a color as it appears in the image file, and @var{color} specifies the actual color to use for displaying that name. @end table -@node GIF Images -@subsection GIF Images -@cindex GIF - - For GIF images, specify image type @code{gif}. - -@table @code -@item :index @var{index} -You can use @code{:index} to specify image number @var{index} from a -GIF file that contains more than one image. If the GIF file doesn't -contain an image with the specified index, the image displays as a -hollow box. GIF files with more than one image can be animated, -@pxref{Animated Images}. -@end table - -@node TIFF Images -@subsection TIFF Images -@cindex TIFF - - For TIFF images, specify image type @code{tiff}. - -@table @code -@item :index @var{index} -You can use @code{:index} to specify image number @var{index} from a -TIFF file that contains more than one image. If the TIFF file doesn't -contain an image with the specified index, the image displays as a -hollow box. -@end table - @node PostScript Images @subsection PostScript Images @cindex postscript images @@ -4645,10 +4622,7 @@ Specifies a rotation angle in degrees. @item :index @c Doesn't work: http://debbugs.gnu.org/7978 -This has the same meaning as it does for GIF images (@pxref{GIF Images}), -i.e. it specifies which image to view inside an image bundle file format -such as DJVM. You can use the @code{image-metadata} function to -retrieve the total number of images in an image bundle. +@xref{Multi-Frame Images}. @end table @node Other Image Types @@ -4673,13 +4647,27 @@ used for each pixel in the PBM that is 0. The default is the frame's background color. @end table - For JPEG images, specify image type @code{jpeg}. +@noindent +The remaining image types that Emacs can support are: - For TIFF images, specify image type @code{tiff}. +@table @asis +@item GIF +Image type @code{gif}. +Supports the @code{:index} property. @xref{Multi-Frame Images}. - For PNG images, specify image type @code{png}. +@item JPEG +Image type @code{jpeg}. - For SVG images, specify image type @code{svg}. +@item PNG +Image type @code{png}. + +@item SVG +Image type @code{svg}. + +@item TIFF +Image type @code{tiff}. +Supports the @code{:index} property. @xref{Multi-Frame Images}. +@end table @node Defining Images @subsection Defining Images @@ -4745,7 +4733,7 @@ Each specification in @var{specs} is a property list with contents depending on image type. All specifications must at least contain the properties @code{:type @var{type}} and either @w{@code{:file @var{file}}} or @w{@code{:data @var{DATA}}}, where @var{type} is a symbol specifying -the image type, e.g.@: @code{xbm}, @var{file} is the file to load the +the image type, e.g., @code{xbm}, @var{file} is the file to load the image from, and @var{data} is a string containing the actual image data. The first specification in the list whose @var{type} is supported, and @var{file} exists, is used to construct the image specification to be @@ -4915,20 +4903,45 @@ cache, it can always be displayed, even if the value of @var{max-image-size} is subsequently changed (@pxref{Image Cache}). @end defvar -@node Animated Images -@subsection Animated Images +@node Multi-Frame Images +@subsection Multi-Frame Images @cindex animation @cindex image animation -Some image files can contain more than one image. This can be used to -create animation. Currently, Emacs only supports animated GIF files. -The following functions related to animated images are available. +@cindex image frames +Some image files can contain more than one image. We say that there +are multiple ``frames'' in the image. At present, Emacs supports +multiple frames for GIF, TIFF, and certain ImageMagick formats such as +DJVM@. -@defun image-animated-p image -This function returns non-@code{nil} if @var{image} can be animated. -The actual return value is a cons @code{(@var{nimages} . @var{delay})}, -where @var{nimages} is the number of frames and @var{delay} is the -delay in seconds between them. +The frames can be used either to represent multiple ``pages'' (this is +usually the case with multi-frame TIFF files, for example), or to +create animation (usually the case with multi-frame GIF files). + +A multi-frame image has a property @code{:index}, whose value is an +integer (counting from 0) that specifies which frame is being displayed. + +@defun image-multi-frame-p image +This function returns non-@code{nil} if @var{image} contains more than +one frame. The actual return value is a cons @code{(@var{nimages} +. @var{delay})}, where @var{nimages} is the number of frames and +@var{delay} is the delay in seconds between them, or @code{nil} +if the image does not specify a delay. Images that are intended to be +animated usually specify a frame delay, whereas ones that are intended +to be treated as multiple pages do not. +@end defun + +@defun image-current-frame image +This function returns the index of the current frame number for +@var{image}, counting from 0. +@end defun + +@defun image-show-frame image n &optional nocheck +This function switches @var{image} to frame number @var{n}. It +replaces a frame number outside the valid range with that of the end +of the range, unless @var{nocheck} is non-@code{nil}. If @var{image} +does not contain a frame with the specified number, the image displays +as a hollow box. @end defun @defun image-animate image &optional index limit @@ -4940,7 +4953,9 @@ forever; if a number animation stops after that many seconds. @end defun @noindent Animation operates by means of a timer. Note that Emacs imposes a -minimum frame delay of 0.01 seconds. +minimum frame delay of 0.01 (@code{image-minimum-frame-delay}) seconds. +If the image itself does not specify a delay, Emacs uses +@code{image-default-frame-delay}. @defun image-animate-timer image This function returns the timer responsible for animating @var{image}, @@ -5182,7 +5197,7 @@ and returns it. (@pxref{Text Properties}) to hold the button properties. Such buttons do not add markers to the buffer, so editing in the buffer does not slow down if there is an extremely large numbers of buttons. However, -if there is an existing face text property on the text (e.g.@: a face +if there is an existing face text property on the text (e.g., a face assigned by Font Lock mode), the button face may not be visible. Both of these functions return the starting position of the new button. @@ -5780,7 +5795,7 @@ codes 0 through 31, as well as the @key{DEL} character (character code @code{ctl-arrow}. If this variable is non-@code{nil} (the default), these characters are displayed as sequences of two glyphs, where the first glyph is @samp{^} (a display table can specify a glyph to use -instead of @samp{^}); e.g.@: the @key{DEL} character is displayed as +instead of @samp{^}); e.g., the @key{DEL} character is displayed as @samp{^?}. If @code{ctl-arrow} is @code{nil}, these characters are displayed as @@ -6045,7 +6060,7 @@ glyph table is displayed literally. @cindex glyphless characters @dfn{Glyphless characters} are characters which are displayed in a -special way, e.g.@: as a box containing a hexadecimal code, instead of +special way, e.g., as a box containing a hexadecimal code, instead of being displayed literally. These include characters which are explicitly defined to be glyphless, as well as characters for which there is no available font (on a graphical display), and characters @@ -6252,7 +6267,7 @@ and Hebrew, whose natural ordering for horizontal text display runs from right to left. Furthermore, segments of Latin script and digits embedded in right-to-left text are displayed left-to-right, while segments of right-to-left script embedded in left-to-right text -(e.g.@: Arabic or Hebrew text in comments or strings in a program +(e.g., Arabic or Hebrew text in comments or strings in a program source file) are appropriately displayed right-to-left. We call such mixtures of left-to-right and right-to-left text @dfn{bidirectional text}. This section describes the facilities and options for editing @@ -6264,7 +6279,7 @@ and displaying bidirectional text. @cindex unicode bidirectional algorithm @cindex bidirectional reordering Text is stored in Emacs buffers and strings in @dfn{logical} (or -@dfn{reading}) order, i.e.@: the order in which a human would read +@dfn{reading}) order, i.e., the order in which a human would read each character. In right-to-left and bidirectional text, the order in which characters are displayed on the screen (called @dfn{visual order}) is not the same as logical order; the characters' screen diff --git a/doc/lispref/doclicense.texi b/doc/lispref/doclicense.texi index 6e7ec924f65..9c3bbe56e91 100644 --- a/doc/lispref/doclicense.texi +++ b/doc/lispref/doclicense.texi @@ -1,15 +1,11 @@ -@c -*-texinfo-*- @c The GNU Free Documentation License. -@node GNU Free Documentation License - -@appendix GNU Free Documentation License @center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies @@ -96,16 +92,16 @@ An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain -@sc{ascii} without markup, Texinfo input format, La@TeX{} input -format, @acronym{SGML} or @acronym{XML} using a publicly available -@acronym{DTD}, and standard-conforming simple @acronym{HTML}, -PostScript or @acronym{PDF} designed for human modification. Examples -of transparent image formats include @acronym{PNG}, @acronym{XCF} and -@acronym{JPG}. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, @acronym{SGML} or -@acronym{XML} for which the @acronym{DTD} and/or processing tools are -not generally available, and the machine-generated @acronym{HTML}, -PostScript or @acronym{PDF} produced by some word processors for +ASCII without markup, Texinfo input format, La@TeX{} input +format, SGML or XML using a publicly available +DTD, and standard-conforming simple HTML, +PostScript or PDF designed for human modification. Examples +of transparent image formats include PNG, XCF and +JPG@. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, SGML or +XML for which the DTD and/or processing tools are +not generally available, and the machine-generated HTML, +PostScript or PDF produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, @@ -485,7 +481,7 @@ license notices just after the title page: @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with@dots{}Texts.'' line with this: +replace the ``with@dots{}Texts.''@: line with this: @smallexample @group @@ -504,7 +500,6 @@ recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. - @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index b5edda06bad..8e394b5d92d 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -1,6 +1,7 @@ @comment -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1992-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1992-1994, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @c This file can also be used by an independent Edebug User @@ -1116,7 +1117,7 @@ definition, but specifications are much more general than macro arguments. @xref{Defining Macros}, for more explanation of the @code{declare} form. -@c See eg http://debbugs.gnu.org/10577 +@c See, e.g., http://debbugs.gnu.org/10577 @c FIXME Maybe there should be an Edebug option to get it to @c automatically load the entire source file containing the function @c being instrumented. That would avoid this. diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index cb00b5e9889..9e9617c10f8 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -56,7 +56,7 @@ @c (See comments for EDITION in emacs.texi) @set VERSION 3.1 @include emacsver.texi -@set DATE May 2012 +@set DATE January 2013 @c in general, keep the following line commented out, unless doing a @c copy of this manual that will be published. The manual should go @@ -97,8 +97,18 @@ This is edition @value{VERSION} of the @cite{GNU Emacs Lisp Reference Manual},@* This is the @cite{GNU Emacs Lisp Reference Manual} @end ifnottex corresponding to Emacs version @value{EMACSVER}. +@ifset WWW_GNU_ORG +@html +

The homepage for GNU Emacs is at +http://www.gnu.org/software/emacs/.
+For information on using Emacs, refer to +the Emacs +Manual.
To view this manual in other formats, +click here. +@end html +@end ifset -Copyright @copyright{} 1990-1996, 1998-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1990--1996, 1998--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -115,7 +125,7 @@ developing GNU and promoting software freedom.'' @end quotation @end copying -@documentencoding ISO-8859-1 +@documentencoding UTF-8 @dircategory GNU Emacs Lisp @direntry @@ -378,6 +388,7 @@ Lists * Modifying Lists:: Storing new pieces into an existing list. * Sets And Lists:: A list can represent a finite mathematical set. * Association Lists:: A list can represent a finite relation or mapping. +* Property Lists:: A list of paired elements. Modifying Existing List Structure @@ -386,6 +397,12 @@ Modifying Existing List Structure This can be used to remove or add elements. * Rearrangement:: Reordering the elements in a list; combining lists. +Property Lists + +* Plists and Alists:: Comparison of the advantages of property + lists and association lists. +* Plist Access:: Accessing property lists stored elsewhere. + Sequences, Arrays, and Vectors * Sequence Functions:: Functions that accept any kind of sequence. @@ -410,15 +427,13 @@ Symbols and property lists. * Definitions:: A definition says how a symbol will be used. * Creating Symbols:: How symbols are kept unique. -* Property Lists:: Each symbol has a property list +* Symbol Properties:: Each symbol has a property list for recording miscellaneous information. -Property Lists +Symbol Properties -* Plists and Alists:: Comparison of the advantages of property - lists and association lists. -* Symbol Plists:: Functions to access symbols' property lists. -* Other Plists:: Accessing property lists stored elsewhere. +* Symbol Plists:: Accessing symbol properties. +* Standard Properties:: Standard meanings of symbol properties. Evaluation @@ -1204,8 +1219,6 @@ Coding Systems for a single file operation. * Explicit Encoding:: Encoding or decoding text without doing I/O. * Terminal I/O Encoding:: Use of encoding for terminal I/O. -* MS-DOS File Types:: How DOS "text" and "binary" files - relate to coding systems. Searching and Matching @@ -1414,15 +1427,13 @@ Images * Image Descriptors:: How to specify an image for use in @code{:display}. * XBM Images:: Special features for XBM format. * XPM Images:: Special features for XPM format. -* GIF Images:: Special features for GIF format. -* TIFF Images:: Special features for TIFF format. * PostScript Images:: Special features for PostScript format. * ImageMagick Images:: Special features available through ImageMagick. * Other Image Types:: Various other formats are supported. * Defining Images:: Convenient ways to define an image for later use. * Showing Images:: Convenient ways to display an image once it is defined. -* Animated Images:: Some image formats can be animated. +* Multi-Frame Images:: Some images contain more than one frame. * Image Cache:: Internal mechanisms of image display. Buttons @@ -1588,7 +1599,11 @@ Object Internals @c appendices @include anti.texi +@node GNU Free Documentation License +@appendix GNU Free Documentation License @include doclicense.texi +@node GPL +@appendix GNU General Public License @include gpl.texi @include tips.texi @include internals.texi diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index b92fd9ed665..3f3984e40d2 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1993, 1999, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Standard Errors @appendix Standard Errors @@ -24,7 +25,7 @@ conditions, that means it has none. condition @code{error}, because quitting is not considered an error. @c You can grep for "(put 'foo 'error-conditions ...) to find -@c examples defined in Lisp. Eg soap-client.el, sasl.el. +@c examples defined in Lisp. E.g., soap-client.el, sasl.el. Most of these error symbols are defined in C (mainly @file{data.c}), but some are defined in Lisp. For example, the file @file{userlock.el} defines the @code{file-locked} and @code{file-supersession} errors. @@ -91,7 +92,7 @@ The message is @samp{End of buffer}. @xref{Character Motion}. @item end-of-file The message is @samp{End of file during parsing}. Note that this is not a subcategory of @code{file-error}, because it pertains to the -Lisp reader, not to file I/O. @xref{Input Functions}. +Lisp reader, not to file I/O@. @xref{Input Functions}. @item file-already-exists This is a subcategory of @code{file-error}. @xref{Writing to Files}. diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 670b293bea6..4b5ef187383 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 1998, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 1998, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Evaluation @chapter Evaluation diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index a5710c789e9..971e38f20b7 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Files @chapter Files @@ -241,9 +241,9 @@ used, and in many cases only some of the functions are called. @defvar find-file-literally This buffer-local variable, if set to a non-@code{nil} value, makes @code{save-buffer} behave as if the buffer were visiting its file -literally, i.e. without conversions of any kind. The command +literally, i.e., without conversions of any kind. The command @code{find-file-literally} sets this variable's local value, but other -equivalent functions and commands can do that as well, e.g.@: to avoid +equivalent functions and commands can do that as well, e.g., to avoid automatic addition of a newline at the end of the file. This variable is permanent local, so it is unaffected by changes of major modes. @end defvar @@ -533,9 +533,9 @@ is visiting the file @var{filename}: these include the buffer's visited file name and its last save file modtime. This feature is used by @code{find-file-noselect} and you probably should not use it yourself. -If @var{beg} and @var{end} are non-@code{nil}, they should be integers -specifying the portion of the file to insert. In this case, @var{visit} -must be @code{nil}. For example, +If @var{beg} and @var{end} are non-@code{nil}, they should be numbers +that are byte offsets specifying the portion of the file to insert. +In this case, @var{visit} must be @code{nil}. For example, @example (insert-file-contents filename nil 0 500) @@ -605,8 +605,8 @@ that string, rather than text from the buffer. @var{end} is ignored in this case. If @var{append} is non-@code{nil}, then the specified text is appended -to the existing file contents (if any). If @var{append} is an -integer, @code{write-region} seeks to that byte offset from the start +to the existing file contents (if any). If @var{append} is a +number, @code{write-region} seeks to that byte offset from the start of the file and writes the data from there. If @var{mustbenew} is non-@code{nil}, then @code{write-region} asks @@ -895,11 +895,14 @@ returns @code{nil}. However, if the open fails, it signals an error using @var{string} as the error message text. @end defun -@defun file-ownership-preserved-p filename +@defun file-ownership-preserved-p filename &optional group This function returns @code{t} if deleting the file @var{filename} and then creating it anew would keep the file's owner unchanged. It also returns @code{t} for nonexistent files. +If the optional argument @var{group} is non-@code{nil}, this function +also checks that the file's group would be unchanged. + If @var{filename} is a symbolic link, then, unlike the other functions discussed here, @code{file-ownership-preserved-p} does @emph{not} replace @var{filename} with its target. However, it does recursively @@ -1246,8 +1249,7 @@ The file's modes, as a string of ten letters or dashes, as in @samp{ls -l}. @item -@code{t} if the file's @acronym{GID} would change if file were -deleted and recreated; @code{nil} otherwise. +An unspecified value, present for backward compatibility. @item The file's inode number. If possible, this is an integer. If the @@ -1279,7 +1281,7 @@ For example, here are the file attributes for @file{files.texi}: (20000 23 0 0) (20614 64555 902289 872000) 122295 "-rw-rw-rw-" - nil (5888 2 . 43978) + t (5888 2 . 43978) (15479 . 46724)) @end group @end example @@ -1318,8 +1320,8 @@ end-of-line format is CR-LF.) @item "-rw-rw-rw-" has a mode of read and write access for the owner, group, and world. -@item nil -would retain the same @acronym{GID} if it were recreated. +@item t +is merely a placeholder; it carries no information. @item (5888 2 . 43978) has an inode number of 6473924464520138. @@ -1350,6 +1352,29 @@ not support SELinux, or if Emacs was not compiled with SELinux support, then the return value is @code{(nil nil nil nil)}. @end defun +@cindex access control list +@cindex ACL entries + If Emacs has been compiled with @dfn{ACL} (access control list) +support, you can use the function @code{file-acl} to retrieve a file's +ACL entries. The interface implementation is platform-specific; on +GNU/Linux and BSD, Emacs uses the POSIX ACL interface, while on +MS-Windows Emacs emulates the POSIX ACL interface with native file +security APIs. + +@defun file-acl filename +This function returns the ACL entries of the file @var{filename}. The +return value is a platform-dependent object containing some +representation of the ACL entries. Don't use it for anything except +passing it to the @code{set-file-acl} function (@pxref{Changing Files, +set-file-acl}). + +If the file does not exist or is inaccessible, or if Emacs was unable to +determine the ACL entries, then the return value is @code{nil}. The +latter can happen for local files if Emacs was not compiled with ACL +support, or for remote files if the file handler returns nil for the +file's ACL entries. +@end defun + @node Locating Files @subsection How to Locate Files in Standard Places @cindex locate file in path @@ -1390,7 +1415,7 @@ predicate function for testing whether a candidate file is suitable. The predicate is passed the candidate file name as its single argument. If @var{predicate} is @code{nil} or omitted, @code{locate-file} uses @code{file-readable-p} as the predicate. -@xref{Kinds of Files}, for other useful predicates, e.g.@: +@xref{Kinds of Files}, for other useful predicates, e.g., @code{file-executable-p} and @code{file-directory-p}. For compatibility, @var{predicate} can also be one of the symbols @@ -1539,9 +1564,10 @@ non-@code{nil}, we attempt to copy the user and group ownership of the file. This works only on some operating systems, and only if you have the correct permissions to do so. -If the optional argument @var{preserve-selinux} is non-@code{nil}, and -Emacs has been compiled with SELinux support, this function attempts -to copy the file's SELinux context (@pxref{File Attributes}). +If the optional argument @var{preserve-extended-attributes} is +non-@code{nil}, and Emacs has been built with the appropriate support, +this function attempts to copy the file's extended attributes, such as +its SELinux context and ACL entries (@pxref{File Attributes}). @end deffn @deffn Command make-symbolic-link filename newname &optional ok-if-exists @@ -1660,7 +1686,7 @@ This function converts a symbolic file mode specification in @var{modes} into the equivalent integer value. If the symbolic specification is based on an existing file, that file's mode bits are taken from the optional argument @var{base-modes}; if that argument is -omitted or @code{nil}, it defaults to 0, i.e.@: no access rights at +omitted or @code{nil}, it defaults to 0, i.e., no access rights at all. @end defun @@ -1677,9 +1703,21 @@ This function sets the SELinux security context of the file @var{filename} to @var{context}. @xref{File Attributes}, for a brief description of SELinux contexts. The @var{context} argument should be a list @code{(@var{user} @var{role} @var{type} @var{range})}, like the -return value of @code{file-selinux-context}. The function does -nothing if SELinux is disabled, or if Emacs was compiled without -SELinux support. +return value of @code{file-selinux-context}. The function returns +@code{t} if it succeeds to set the SELinux security context of +@var{filename}, @code{nil} otherwise. The function does nothing and +returns @code{nil} if SELinux is disabled, or if Emacs was compiled +without SELinux support. +@end defun + +@defun set-file-acl filename acl-string +This function sets the ACL entries of the file @var{filename} to +@var{acl-string}. @xref{File Attributes}, for a brief description of +ACLs. The @var{acl-string} argument should be a string containing the +textual representation of the desired ACL entries as returned by +@code{file-acl} (@pxref{File Attributes, file-acl}). The function +returns @code{t} if it succeeds to set the ACL entries of +@var{filename}, @code{nil} otherwise. @end defun @node File Names @@ -1699,12 +1737,20 @@ how to manipulate file names. can operate on file names that do not refer to an existing file or directory. +@findex cygwin-convert-file-name-from-windows +@findex cygwin-convert-file-name-to-windows +@cindex MS-Windows file-name syntax +@cindex converting file names from/to MS-Windows syntax On MS-DOS and MS-Windows, these functions (like the function that actually operate on files) accept MS-DOS or MS-Windows file-name syntax, where backslashes separate the components, as well as Unix syntax; but they always return Unix syntax. This enables Lisp programs to specify file names in Unix syntax and work properly on all systems without -change. +change.@footnote{In MS-Windows versions of Emacs compiled for the Cygwin +environment, you can use the functions +@code{cygwin-convert-file-name-to-windows} and +@code{cygwin-convert-file-name-from-windows} to convert between the +two file-name syntaxes.} @menu * File Name Components:: The directory part of a file name, and the rest. @@ -2635,7 +2681,7 @@ no prefix argument is given, and @code{nil} otherwise. You can implement special handling for certain file names. This is called making those names @dfn{magic}. The principal use for this -feature is in implementing remote file names (@pxref{Remote Files,, +feature is in implementing access to remote files (@pxref{Remote Files,, Remote Files, emacs, The GNU Emacs Manual}). To define a kind of magic file name, you must supply a regular @@ -2643,6 +2689,7 @@ expression to define the class of names (all those that match the regular expression), plus a handler that implements all the primitive Emacs file operations for file names that match. +@cindex file handler @vindex file-name-handler-alist The variable @code{file-name-handler-alist} holds a list of handlers, together with regular expressions that determine when to apply each @@ -2716,9 +2763,12 @@ first, before handlers for jobs such as remote file access. @code{dired-compress-file}, @code{dired-uncache},@* @code{expand-file-name}, @code{file-accessible-directory-p}, +@code{file-acl}, @code{file-attributes}, @code{file-directory-p}, +@code{file-equal-p}, @code{file-executable-p}, @code{file-exists-p}, +@code{file-in-directory-p}, @code{file-local-copy}, @code{file-remote-p}, @code{file-modes}, @code{file-name-all-completions}, @code{file-name-as-directory}, @@ -2727,9 +2777,10 @@ first, before handlers for jobs such as remote file access. @code{file-name-nondirectory}, @code{file-name-sans-versions}, @code{file-newer-than-file-p}, @code{file-ownership-preserved-p}, -@code{file-readable-p}, @code{file-regular-p}, @code{file-in-directory-p}, +@code{file-readable-p}, @code{file-regular-p}, +@code{file-selinux-context}, @code{file-symlink-p}, @code{file-truename}, @code{file-writable-p}, -@code{file-equal-p}, @code{find-backup-file-name}, +@code{find-backup-file-name}, @c Not sure why it was here: @code{find-file-noselect},@* @code{get-file-buffer}, @code{insert-directory}, @@ -2740,7 +2791,8 @@ first, before handlers for jobs such as remote file access. @code{make-directory-internal}, @code{make-symbolic-link},@* @code{process-file}, -@code{rename-file}, @code{set-file-modes}, @code{set-file-times}, +@code{rename-file}, @code{set-file-acl}, @code{set-file-modes}, +@code{set-file-selinux-context}, @code{set-file-times}, @code{set-visited-file-modtime}, @code{shell-command}, @code{start-file-process}, @code{substitute-in-file-name},@* @@ -2763,9 +2815,12 @@ first, before handlers for jobs such as remote file access. @code{dired-compress-file}, @code{dired-uncache}, @code{expand-file-name}, @code{file-accessible-direc@discretionary{}{}{}tory-p}, +@code{file-acl}, @code{file-attributes}, @code{file-direct@discretionary{}{}{}ory-p}, +@code{file-equal-p}, @code{file-executable-p}, @code{file-exists-p}, +@code{file-in-directory-p}, @code{file-local-copy}, @code{file-remote-p}, @code{file-modes}, @code{file-name-all-completions}, @code{file-name-as-directory}, @@ -2774,18 +2829,22 @@ first, before handlers for jobs such as remote file access. @code{file-name-nondirec@discretionary{}{}{}tory}, @code{file-name-sans-versions}, @code{file-newer-than-file-p}, @code{file-ownership-pre@discretionary{}{}{}served-p}, -@code{file-readable-p}, @code{file-regular-p}, @code{file-symlink-p}, -@code{file-truename}, @code{file-writable-p}, +@code{file-readable-p}, @code{file-regular-p}, +@code{file-selinux-context}, +@code{file-symlink-p}, @code{file-truename}, @code{file-writable-p}, @code{find-backup-file-name}, @c Not sure why it was here: @code{find-file-noselect}, @code{get-file-buffer}, @code{insert-directory}, @code{insert-file-contents}, -@code{load}, @code{make-direc@discretionary{}{}{}tory}, +@code{load}, +@code{make-auto-save-file-name}, +@code{make-direc@discretionary{}{}{}tory}, @code{make-direc@discretionary{}{}{}tory-internal}, @code{make-symbolic-link}, @code{process-file}, -@code{rename-file}, @code{set-file-modes}, +@code{rename-file}, @code{set-file-acl}, @code{set-file-modes}, +@code{set-file-selinux-context}, @code{set-file-times}, @code{set-visited-file-modtime}, @code{shell-command}, @code{start-file-process}, @code{substitute-in-file-name}, diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 846dfbaf17c..01d2d1d6c45 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Frames @chapter Frames @@ -70,7 +71,7 @@ selected frame. @defun terminal-live-p object This predicate returns a non-@code{nil} value if @var{object} is a -terminal that is live (i.e.@: not deleted), and @code{nil} otherwise. +terminal that is live (i.e., not deleted), and @code{nil} otherwise. For live terminals, the return value indicates what kind of frames are displayed on that terminal; the list of possible values is the same as for @code{framep} above. @@ -170,7 +171,7 @@ following attributes: @itemize @bullet @item -The name of the device used by the terminal (e.g.@: @samp{:0.0} or +The name of the device used by the terminal (e.g., @samp{:0.0} or @file{/dev/tty}). @item @@ -179,7 +180,7 @@ The terminal and keyboard coding systems used on the terminal. @item The kind of display associated with the terminal. This is the symbol -returned by the function @code{terminal-live-p} (i.e.@: @code{x}, +returned by the function @code{terminal-live-p} (i.e., @code{x}, @code{t}, @code{w32}, @code{ns}, or @code{pc}). @xref{Frames}. @item @@ -276,7 +277,7 @@ the other frame parameters from the alist @var{parameters}. Before creating the frame, this function ensures that Emacs is ``set up'' to display graphics. For instance, if Emacs has not processed X -resources (e.g.@: if it was started on a text terminal), it does so at +resources (e.g., if it was started on a text terminal), it does so at this time. In all other respects, this function behaves like @code{make-frame} (@pxref{Creating Frames}). @end deffn @@ -426,7 +427,7 @@ creates a separate @dfn{minibuffer-only frame} as well. @defopt minibuffer-frame-alist This variable's value is an alist of parameter values used when -creating an initial minibuffer-only frame (i.e.@: the minibuffer-only +creating an initial minibuffer-only frame (i.e., the minibuffer-only frame that Emacs creates if @code{initial-frame-alist} specifies a frame with no minibuffer). @end defopt @@ -631,8 +632,9 @@ 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 still has window manager decorations while the latter really -covers the whole screen. +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. @end table @node Layout Parameters @@ -1114,7 +1116,7 @@ The argument @var{pretend} has the same meaning as in @end defun @c FIXME? Belongs more in Emacs manual than here? -@c But eg fit-window-to-buffer is in this manual. +@c But, e.g., fit-window-to-buffer is in this manual. @deffn Command fit-frame-to-buffer &optional frame max-height min-height This command adjusts the height of @var{frame} (the default is the selected frame) to fit its contents. The optional arguments @@ -1286,7 +1288,7 @@ calls the function @code{delete-frame}. @xref{Misc Events}. @cindex frames, scanning all @defun frame-list -This function returns a list of all the live frames, i.e.@: those that +This function returns a list of all the live frames, i.e., those that have not been deleted. It is analogous to @code{buffer-list} for buffers, and includes frames on all terminals. The list that you get is newly created, so modifying the list doesn't have any effect on the @@ -1546,7 +1548,7 @@ track of such changes. @xref{Misc Events}. @cindex raising a frame @cindex lowering a frame Most window systems use a desktop metaphor. Part of this metaphor -is the idea that system-level windows (e.g.@: Emacs frames) are +is the idea that system-level windows (e.g., Emacs frames) are stacked in a notional third dimension perpendicular to the screen surface. Where two overlap, the one higher up covers the one underneath. You can @dfn{raise} or @dfn{lower} a frame using the @@ -2018,7 +2020,7 @@ drop. @vindex dnd-protocol-alist When an URL is dropped on Emacs it may be a file, but it may also be another URL type (ftp, http, etc.). Emacs first checks -@code{dnd-protocol-alist} to determine what to do with the URL. If +@code{dnd-protocol-alist} to determine what to do with the URL@. If there is no match there and if @code{browse-url-browser-function} is an alist, Emacs looks for a match there. If no match is found the text for the URL is inserted. If you want to alter Emacs behavior, diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 05fd2486fd6..999923f5b84 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Functions @chapter Functions @@ -44,10 +44,10 @@ changes in the values of variables or the contents of data structures. In most computer languages, every function has a name. But in Lisp, a function in the strictest sense has no name: it is an object which -can @emph{optionally} be associated with a symbol (e.g.@: @code{car}) +can @emph{optionally} be associated with a symbol (e.g., @code{car}) that serves as the function name. @xref{Function Names}. When a function has been given a name, we usually also refer to that symbol -as a ``function'' (e.g.@: we refer to ``the function @code{car}''). +as a ``function'' (e.g., we refer to ``the function @code{car}''). In this manual, the distinction between a function name and the function object itself is usually unimportant, but we will take note wherever it is relevant. @@ -61,7 +61,7 @@ Emacs Lisp. @table @dfn @item lambda expression -A function (in the strict sense, i.e.@: a function object) which is +A function (in the strict sense, i.e., a function object) which is written in Lisp. These are described in the following section. @ifnottex @xref{Lambda Expressions}. @@ -71,14 +71,14 @@ written in Lisp. These are described in the following section. @cindex primitive @cindex subr @cindex built-in function -A function which is callable from Lisp but is actually written in C. +A function which is callable from Lisp but is actually written in C@. Primitives are also called @dfn{built-in functions}, or @dfn{subrs}. Examples include functions like @code{car} and @code{append}. In addition, all special forms (see below) are also considered primitives. Usually, a function is implemented as a primitive because it is a -fundamental part of Lisp (e.g.@: @code{car}), or because it provides a +fundamental part of Lisp (e.g., @code{car}), or because it provides a low-level interface to operating system services, or because it needs to run fast. Unlike functions defined in Lisp, primitives can be modified or added only by changing the C sources and recompiling @@ -136,7 +136,7 @@ function: @defun functionp object This function returns @code{t} if @var{object} is any kind of -function, i.e.@: can be passed to @code{funcall}. Note that +function, i.e., can be passed to @code{funcall}. Note that @code{functionp} returns @code{t} for symbols that are function names, and returns @code{nil} for special forms. @end defun @@ -476,7 +476,7 @@ way users think of the parts of the macro call. A symbol can serve as the name of a function. This happens when the symbol's @dfn{function cell} (@pxref{Symbol Components}) contains a -function object (e.g.@: a lambda expression). Then the symbol itself +function object (e.g., a lambda expression). Then the symbol itself becomes a valid, callable function, equivalent to the function object in its function cell. @@ -1080,7 +1080,7 @@ The primary use of this function is as a subroutine by constructs that define or alter functions, like @code{defadvice} (@pxref{Advising Functions}). (If @code{defun} were not a primitive, it could be written as a Lisp macro using @code{fset}.) You can also use it to -give a symbol a function definition that is not a list, e.g.@: a +give a symbol a function definition that is not a list, e.g., a keyboard macro (@pxref{Keyboard Macros}): @example @@ -1099,7 +1099,7 @@ defalias}. As explained in @ref{Variable Scoping}, Emacs can optionally enable lexical binding of variables. When lexical binding is enabled, any -named function that you create (e.g.@: with @code{defun}), as well as +named function that you create (e.g., with @code{defun}), as well as any anonymous function that you create using the @code{lambda} macro or the @code{function} special form or the @code{#'} syntax (@pxref{Anonymous Functions}), is automatically converted into a @@ -1266,7 +1266,7 @@ obsolete, or giving its forms a special @key{TAB} indentation convention in Emacs Lisp mode. @anchor{Definition of declare} -@defmac declare @var{specs}@dots{} +@defmac declare specs@dots{} This macro ignores its arguments and evaluates to @code{nil}; it has no run-time effect. However, when a @code{declare} form occurs in the @var{declare} argument of a @code{defun} or @code{defsubst} function @@ -1383,7 +1383,7 @@ If you prefix the filename in the @code{declare-function} statement with without error. There are some function definitions that @samp{check-declare} does not -understand (e.g. @code{defstruct} and some other macros). In such cases, +understand (e.g., @code{defstruct} and some other macros). In such cases, you can pass a non-@code{nil} @var{fileonly} argument to @code{declare-function}, meaning to only check that the file exists, not that it actually defines the function. Note that to do this without @@ -1397,7 +1397,7 @@ opposed to an unspecified one). @cindex safety of functions Some major modes, such as SES, call functions that are stored in user -files. (@inforef{Top, ,ses}, for more information on SES.) User +files. (@inforef{Top, ,ses}, for more information on SES@.) User files sometimes have poor pedigrees---you can get a spreadsheet from someone you've just met, or you can get one through email from someone you've never met. So it is risky to call a function whose source code diff --git a/doc/lispref/gpl.texi b/doc/lispref/gpl.texi index 6dc50a9751c..0e2e212acb1 100644 --- a/doc/lispref/gpl.texi +++ b/doc/lispref/gpl.texi @@ -1,12 +1,8 @@ -@c -*-texinfo-*- - -@node GPL -@appendix GNU General Public License @c The GNU General Public License. @center Version 3, 29 June 2007 @c This file is intended to be included within another document, -@c hence no sectioning command or @node. +@c hence no sectioning command or @node. @display Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} @@ -226,7 +222,7 @@ terms of section 4, provided that you also meet all of these conditions: @enumerate a -@item +@item The work must carry prominent notices stating that you modified it, and giving a relevant date. @@ -627,12 +623,12 @@ later version. @item Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +APPLICABLE LAW@. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +A PARTICULAR PURPOSE@. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. @@ -674,7 +670,7 @@ state the exclusion of warranty; and each file should have at least the ``copyright'' line and a pointer to where the full notice is found. @smallexample -@var{one line to give the program's name and a brief idea of what it does.} +@var{one line to give the program's name and a brief idea of what it does.} Copyright (C) @var{year} @var{name of author} This program is free software: you can redistribute it and/or modify @@ -684,7 +680,7 @@ 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 +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 @@ -697,7 +693,7 @@ If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: @smallexample -@var{program} Copyright (C) @var{year} @var{name of author} +@var{program} Copyright (C) @var{year} @var{name of author} This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. This is free software, and you are welcome to redistribute it under certain conditions; type @samp{show c} for details. diff --git a/doc/lispref/hash.texi b/doc/lispref/hash.texi index bb7a60e2e2d..655f31ab114 100644 --- a/doc/lispref/hash.texi +++ b/doc/lispref/hash.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1999, 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Hash Tables @chapter Hash Tables @@ -293,7 +293,7 @@ compared case-insensitively. @example (defun case-fold-string= (a b) - (compare-strings a nil nil b nil nil t)) + (eq t (compare-strings a nil nil b nil nil t))) (defun case-fold-string-hash (a) (sxhash (upcase a))) diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 1375a057a5a..9fe069b84d0 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Documentation @chapter Documentation @@ -448,7 +448,7 @@ This function returns a string describing @var{event} in the standard Emacs notation for keyboard input. A normal printing character appears as itself, but a control character turns into a string starting with @samp{C-}, a meta character turns into a string starting -with @samp{M-}, and space, tab, etc.@: appear as @samp{SPC}, +with @samp{M-}, and space, tab, etc., appear as @samp{SPC}, @samp{TAB}, etc. A function key symbol appears inside angle brackets @samp{<@dots{}>}. An event that is a list appears as the name of the symbol in the @sc{car} of the list, inside angle brackets. @@ -728,4 +728,3 @@ If this variable is non-@code{nil}, commands defined with echo area at first, and display the longer @var{help-text} strings only if the user types the help character again. @end defopt - diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi index a6ac2c70e84..745393f8166 100644 --- a/doc/lispref/hooks.texi +++ b/doc/lispref/hooks.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1993, 1998, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1993, 1998, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Standard Hooks @appendix Standard Hooks @@ -120,7 +121,7 @@ The command loop runs this soon after @code{post-command-hook} (q.v.). @item delete-terminal-functions @xref{Multiple Terminals}. -@itemx pop-up-frame-function +@item pop-up-frame-function @itemx split-window-preferred-function @xref{Choosing Window Options}. diff --git a/doc/lispref/index.texi b/doc/lispref/index.texi index 8bec3aa635b..3f31c5dd656 100644 --- a/doc/lispref/index.texi +++ b/doc/lispref/index.texi @@ -12,9 +12,9 @@ @c I tried to include words in a cindex that give the context of the entry, @c particularly if there is more than one entry for the same concept. @c For example, "nil in keymap" -@c Similarly for explicit findex and vindex entries, e.g. "print example". +@c Similarly for explicit findex and vindex entries, e.g., "print example". -@c Error codes are given cindex entries, e.g. "end-of-file error". +@c Error codes are given cindex entries, e.g., "end-of-file error". @c pindex is used for .el files and Unix programs @@ -24,5 +24,3 @@ @c Print the indices @printindex fn - - diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 2a2846921c5..3269776b626 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1993, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1993, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node GNU Emacs Internals @appendix GNU Emacs Internals @@ -16,6 +17,7 @@ internal aspects of GNU Emacs that may be of interest to C programmers. * Memory Usage:: Info about total size of Lisp objects made so far. * Writing Emacs Primitives:: Writing C code for Emacs. * Object Internals:: Data formats of buffers, windows, processes. +* C Integer Types:: How C integer types are used inside Emacs. @end menu @node Building Emacs @@ -293,7 +295,7 @@ the number of those objects that are not live but that Emacs keeps around for future allocations. So an overall result is: @example -((@code{conses} @var{cons-size} @var{used-conse} @var{free-conses}) +((@code{conses} @var{cons-size} @var{used-conses} @var{free-conses}) (@code{symbols} @var{symbol-size} @var{used-symbols} @var{free-symbols}) (@code{miscs} @var{misc-size} @var{used-miscs} @var{free-miscs}) (@code{strings} @var{string-size} @var{used-strings} @var{free-strings}) @@ -324,7 +326,7 @@ provides @code{mallinfo} function. @table @var @item cons-size -Internal size of a cons cell, i.e.@: @code{sizeof (struct Lisp_Cons)}. +Internal size of a cons cell, i.e., @code{sizeof (struct Lisp_Cons)}. @item used-conses The number of cons cells in use. @@ -334,7 +336,7 @@ The number of cons cells for which space has been obtained from the operating system, but that are not currently being used. @item symbol-size -Internal size of a symbol, i.e.@: @code{sizeof (struct Lisp_Symbol)}. +Internal size of a symbol, i.e., @code{sizeof (struct Lisp_Symbol)}. @item used-symbols The number of symbols in use. @@ -344,7 +346,7 @@ The number of symbols for which space has been obtained from the operating system, but that are not currently being used. @item misc-size -Internal size of a miscellaneous entity, i.e.@: +Internal size of a miscellaneous entity, i.e., @code{sizeof (union Lisp_Misc)}, which is a size of the largest type enumerated in @code{enum Lisp_Misc_Type}. @@ -357,7 +359,7 @@ The number of miscellaneous objects for which space has been obtained from the operating system, but that are not currently being used. @item string-size -Internal size of a string header, i.e.@: @code{sizeof (struct Lisp_String)}. +Internal size of a string header, i.e., @code{sizeof (struct Lisp_String)}. @item used-strings The number of string headers in use. @@ -373,7 +375,7 @@ This is used for convenience and equals to @code{sizeof (char)}. The total size of all string data in bytes. @item vector-size -Internal size of a vector header, i.e.@: @code{sizeof (struct Lisp_Vector)}. +Internal size of a vector header, i.e., @code{sizeof (struct Lisp_Vector)}. @item used-vectors The number of vector headers allocated from the vector blocks. @@ -388,7 +390,7 @@ The number of slots in all used vectors. The number of free slots in all vector blocks. @item float-size -Internal size of a float object, i.e.@: @code{sizeof (struct Lisp_Float)}. +Internal size of a float object, i.e., @code{sizeof (struct Lisp_Float)}. (Do not confuse it with the native platform @code{float} or @code{double}.) @item used-floats @@ -399,7 +401,7 @@ The number of floats for which space has been obtained from the operating system, but that are not currently being used. @item interval-size -Internal size of an interval object, i.e.@: @code{sizeof (struct interval)}. +Internal size of an interval object, i.e., @code{sizeof (struct interval)}. @item used-intervals The number of intervals in use. @@ -409,12 +411,12 @@ The number of intervals for which space has been obtained from the operating system, but that are not currently being used. @item buffer-size -Internal size of a buffer, i.e.@: @code{sizeof (struct buffer)}. +Internal size of a buffer, i.e., @code{sizeof (struct buffer)}. (Do not confuse with the value returned by @code{buffer-size} function.) @item used-buffers The number of buffer objects in use. This includes killed buffers -invisible to users, i.e.@: all buffers in @code{all_buffers} list. +invisible to users, i.e., all buffers in @code{all_buffers} list. @item unit-size The unit of heap space measurement, always equal to 1024 bytes. @@ -571,7 +573,7 @@ Emacs session. @cindex primitive function internals @cindex writing Emacs primitives - Lisp primitives are Lisp functions implemented in C. The details of + Lisp primitives are Lisp functions implemented in C@. The details of interfacing the C function so that Lisp can call it are handled by a few C macros. The only way to really understand how to write new C code is to read the source, but we can explain some things here. @@ -699,7 +701,7 @@ in the file @file{lisp.h}.) If the primitive has no upper limit on the number of Lisp arguments, it must have exactly two C arguments: the first is the number of Lisp arguments, and the second is the address of a block containing their values. These have types -@code{int} and @w{@code{Lisp_Object *}} respectively. Since +@code{int} and @w{@code{Lisp_Object *}} respectively. Since @code{Lisp_Object} can hold any Lisp object of any data type, you can determine the actual data type only at run time; so if you want a primitive to accept only a certain type of argument, you must check @@ -858,7 +860,7 @@ DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p, @end smallexample Note that C code cannot call functions by name unless they are defined -in C. The way to call a function written in Lisp is to use +in C@. The way to call a function written in Lisp is to use @code{Ffuncall}, which embodies the Lisp function @code{funcall}. Since the Lisp function @code{funcall} accepts an unlimited number of arguments, in C it takes two: the number of Lisp-level arguments, and a @@ -886,7 +888,7 @@ knows about it. @cindex object internals Emacs Lisp provides a rich set of the data types. Some of them, like cons -cells, integers and stirngs, are common to nearly all Lisp dialects. Some +cells, integers and strings, are common to nearly all Lisp dialects. Some others, like markers and buffers, are quite special and needed to provide the basic support to write editor commands in Lisp. To implement such a variety of object types and provide an efficient way to pass objects between @@ -900,11 +902,11 @@ following basic data types: integer, symbol, string, cons cell, float, vectorlike or miscellaneous object. Each of these data types has the corresponding tag value. All tags are enumerated by @code{enum Lisp_Type} and placed into a 3-bit bitfield of the @code{Lisp_Object}. The rest of the -bits is the value itself. Integer values are immediate, i.e.@: directly +bits is the value itself. Integer values are immediate, i.e., directly represented by those @dfn{value bits}, and all other objects are represented by the C pointers to a corresponding object allocated from the heap. Width of the @code{Lisp_Object} is platform- and configuration-dependent: usually -it's equal to the width of an underlying platform pointer (i.e.@: 32-bit on +it's equal to the width of an underlying platform pointer (i.e., 32-bit on a 32-bit machine and 64-bit on a 64-bit one), but also there is a special configuration where @code{Lisp_Object} is 64-bit but all pointers are 32-bit. The latter trick was designed to overcome the limited range of values for @@ -962,7 +964,7 @@ process object is used to manage the subprocesses. @cindex buffer internals Two structures (see @file{buffer.h}) are used to represent buffers -in C. The @code{buffer_text} structure contains fields describing the +in C@. The @code{buffer_text} structure contains fields describing the text of a buffer; the @code{buffer} structure holds other fields. In the case of indirect buffers, two or more @code{buffer} structures reference the same @code{buffer_text} structure. @@ -1255,7 +1257,7 @@ These fields contain the window's leftmost child and its topmost child respectively. @code{hchild} is used if the window is subdivided horizontally by child windows, and @code{vchild} if it is subdivided vertically. In a live window, only one of @code{hchild}, @code{vchild}, -and @code{buffer} (q.v.) is non-@code{nil}. +and @code{buffer} (q.v.@:) is non-@code{nil}. @item next @itemx prev @@ -1531,4 +1533,91 @@ Symbol indicating the type of process: @code{real}, @code{network}, @end table +@node C Integer Types +@section C Integer Types +@cindex integer types (C programming language) + +Here are some guidelines for use of integer types in the Emacs C +source code. These guidelines sometimes give competing advice; common +sense is advised. + +@itemize @bullet +@item +Avoid arbitrary limits. For example, avoid @code{int len = strlen +(s);} unless the length of @code{s} is required for other reasons to +fit in @code{int} range. + +@item +Do not assume that signed integer arithmetic wraps around on overflow. +This is no longer true of Emacs porting targets: signed integer +overflow has undefined behavior in practice, and can dump core or +even cause earlier or later code to behave ``illogically''. Unsigned +overflow does wrap around reliably, modulo a power of two. + +@item +Prefer signed types to unsigned, as code gets confusing when signed +and unsigned types are combined. Many other guidelines assume that +types are signed; in the rarer cases where unsigned types are needed, +similar advice may apply to the unsigned counterparts (e.g., +@code{size_t} instead of @code{ptrdiff_t}, or @code{uintptr_t} instead +of @code{intptr_t}). + +@item +Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF. + +@item +Prefer @code{ptrdiff_t} for sizes, i.e., for integers bounded by the +maximum size of any individual C object or by the maximum number of +elements in any C array. This is part of Emacs's general preference +for signed types. Using @code{ptrdiff_t} limits objects to +@code{PTRDIFF_MAX} bytes, but larger objects would cause trouble +anyway since they would break pointer subtraction, so this does not +impose an arbitrary limit. + +@item +Prefer @code{intptr_t} for internal representations of pointers, or +for integers bounded only by the number of objects that can exist at +any given time or by the total number of bytes that can be allocated. +Currently Emacs sometimes uses other types when @code{intptr_t} would +be better; fixing this is lower priority, as the code works as-is on +Emacs's current porting targets. + +@item +Prefer the Emacs-defined type @code{EMACS_INT} for representing values +converted to or from Emacs Lisp fixnums, as fixnum arithmetic is based +on @code{EMACS_INT}. + +@item +When representing a system value (such as a file size or a count of +seconds since the Epoch), prefer the corresponding system type (e.g., +@code{off_t}, @code{time_t}). Do not assume that a system type is +signed, unless this assumption is known to be safe. For example, +although @code{off_t} is always signed, @code{time_t} need not be. + +@item +Prefer the Emacs-defined type @code{printmax_t} for representing +values that might be any signed integer value that can be printed, +using a @code{printf}-family function. + +@item +Prefer @code{intmax_t} for representing values that might be any +signed integer value. + +@item +In bitfields, prefer @code{unsigned int} or @code{signed int} to +@code{int}, as @code{int} is less portable: it might be signed, and +might not be. Single-bit bit fields are invariably @code{unsigned +int} so that their values are 0 and 1. + +@item +In C, Emacs commonly uses @code{bool}, 1, and 0 for boolean values. +Using @code{bool} for booleans can make programs easier to read and a +bit faster than using @code{int}. Although it is also OK to use +@code{int}, this older style is gradually being phased out. When +using @code{bool}, respect the limitations of the replacement +implementation of @code{bool}, as documented in the source file +@file{lib/stdbool.in.h}, so that Emacs remains portable to pre-C99 +platforms. +@end itemize + @c FIXME Mention src/globals.h somewhere in this file? diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 4770701b601..803e5229f6e 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi @@ -1,6 +1,6 @@ -@c -*-coding: iso-latin-1-*- +@c -*-coding: utf-8-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Introduction @@ -102,7 +102,7 @@ for other purposes as well, such as writing editing commands. @cindex Common Lisp Dozens of Lisp implementations have been built over the years, each with its own idiosyncrasies. Many of them were inspired by Maclisp, -which was written in the 1960s at MIT's Project MAC. Eventually the +which was written in the 1960s at MIT's Project MAC@. Eventually the implementers of the descendants of Maclisp came together and developed a standard for Lisp systems, called Common Lisp. In the meantime, Gerry Sussman and Guy Steele at MIT developed a simplified but very powerful @@ -380,12 +380,12 @@ More generally, @end defun By convention, any argument whose name contains the name of a type -(e.g.@: @var{integer}, @var{integer1} or @var{buffer}) is expected to +(e.g., @var{integer}, @var{integer1} or @var{buffer}) is expected to be of that type. A plural of a type (such as @var{buffers}) often means a list of objects of that type. An argument named @var{object} may be of any type. (For a list of Emacs object types, @pxref{Lisp Data Types}.) An argument with any other sort of name -(e.g.@: @var{new-file}) is specific to the function; if the function +(e.g., @var{new-file}) is specific to the function; if the function has a documentation string, the type of the argument should be described there (@pxref{Documentation}). @@ -408,7 +408,7 @@ stands for zero or more arguments. Parentheses are used when several arguments are grouped into additional levels of list structure. Here is an example: -@defspec count-loop (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{} +@defspec count-loop (var [from to [inc]]) body@dots{} This imaginary special form implements a loop that executes the @var{body} forms and then increments the variable @var{var} on each iteration. On the first iteration, the variable has the value @@ -547,7 +547,7 @@ Kirman, Bob Knighten, Frederick M. Korz, Joe Lammens, Glenn M. Lewis, K. Richard Magill, Brian Marick, Roland McGrath, Stefan Monnier, Skip Montanaro, John Gardiner Myers, Thomas A. Peterson, Francesco Potorti, Friedrich Pukelsheim, Arnold D. Robbins, Raul Rockwell, Jason Rumney, -Per Starbck, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill +Per Starbäck, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding, Carl Witty, Dale Worley, Rusty Wright, and David D. Zuhn. diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index d01ecba4bed..822e952ef98 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 1998-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 1998-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Keymaps @chapter Keymaps @@ -75,8 +75,8 @@ the vector @code{[?\C-x ?l]} represents the key sequence @kbd{C-x l}. For examples of key sequences written in string and vector representations, @ref{Init Rebinding,,, emacs, The GNU Emacs Manual}. -@defmac kbd keyseq-text -This macro converts the text @var{keyseq-text} (a string constant) +@defun kbd keyseq-text +This function converts the text @var{keyseq-text} (a string constant) into a key sequence (a string or vector constant). The contents of @var{keyseq-text} should use the same syntax as in the buffer invoked by the @kbd{C-x C-k @key{RET}} (@code{kmacro-edit-macro}) command; in @@ -94,10 +94,7 @@ Manual}. (kbd " SPC") @result{} [f1 32] (kbd "C-M-") @result{} [C-M-down] @end example - -This macro is not meant for use with arguments that vary---only -with string constants. -@end defmac +@end defun @node Keymap Basics @section Keymap Basics @@ -330,10 +327,12 @@ these characters to @code{nil}, and does not bind any other kind of event. The argument @var{prompt} specifies a prompt string, as in @code{make-sparse-keymap}. +@c This example seems kind of pointless, but I guess it serves +@c to contrast the result with make-sparse-keymap above. @example @group (make-keymap) - @result{} (keymap #^[t nil nil nil @dots{} nil nil keymap]) + @result{} (keymap #^[nil nil keymap nil nil nil @dots{}]) @end group @end example @@ -637,8 +636,8 @@ keymap, and the global keymap, in that order. Emacs searches for each input key sequence in all these keymaps. @xref{Searching Keymaps}, for more details of this procedure. - When the key sequence starts with a mouse event (optionally preceded -by a symbolic prefix), the active keymaps are determined based on the + When the key sequence starts with a mouse event, +the active keymaps are determined based on the position in that event. If the event happened on a string embedded with a @code{display}, @code{before-string}, or @code{after-string} property (@pxref{Special Properties}), the non-@code{nil} map @@ -769,8 +768,7 @@ them: @var{find-in} and @var{find-in-any} are pseudo functions that search in one keymap and in an alist of keymaps, respectively. (Searching a single keymap for a binding is called @dfn{key lookup}; see @ref{Key -Lookup}.) If the key sequence starts with a mouse event, or a -symbolic prefix event followed by a mouse event, that event's position +Lookup}.) If the key sequence starts with a mouse event, that event's position is used instead of point and the current buffer. Mouse events on an embedded string use non-@code{nil} text properties from that string instead of the buffer. @var{temp-map} is a pseudo variable that @@ -839,7 +837,7 @@ keymap. @end defun @code{current-local-map} returns a reference to the local keymap, not -a copy of it; if you use @code{define-key} or other functions on it +a copy of it; if you use @code{define-key} or other functions on it you will alter local bindings. @defun current-minor-mode-maps @@ -1294,8 +1292,8 @@ numeric codes for the modifier bits don't appear in compiled files. The functions below signal an error if @var{keymap} is not a keymap, or if @var{key} is not a string or vector representing a key sequence. You can use event types (symbols) as shorthand for events that are -lists. The @code{kbd} macro (@pxref{Key Sequences}) is a convenient -way to specify the key sequence. +lists. The @code{kbd} function (@pxref{Key Sequences}) is a +convenient way to specify the key sequence. @defun define-key keymap key binding This function sets the binding for @var{key} in @var{keymap}. (If @@ -1530,7 +1528,7 @@ Instead, if an ordinary key binding specifies @code{kill-line}, it is remapped to @code{my-kill-line}; if an ordinary binding specifies @code{my-kill-line}, it is remapped to @code{my-other-kill-line}. -To undo the remapping of a command, remap it to @code{nil}; e.g. +To undo the remapping of a command, remap it to @code{nil}; e.g., @smallexample (define-key my-mode-map [remap kill-line] nil) @@ -1597,7 +1595,7 @@ alternative interpretations that are usually preferred. It applies after @code{input-decode-map} and before @code{key-translation-map}. Entries in @code{local-function-key-map} are ignored if they conflict -with bindings made in the minor mode, local, or global keymaps. I.e. +with bindings made in the minor mode, local, or global keymaps. I.e., the remapping only applies if the original key sequence would otherwise not have any binding. @@ -1786,7 +1784,7 @@ that uses @var{key} as a prefix---which would not be allowed if @end group @end smallexample -This function is implemented simply using @code{define-key}: +This function is equivalent to using @code{define-key} as follows: @smallexample @group @@ -1977,9 +1975,6 @@ modes---minor modes first, then the major mode, then global bindings. If @var{prefix} is non-@code{nil}, it should be a prefix key; then the listing includes only keys that start with @var{prefix}. -The listing describes meta characters as @key{ESC} followed by the -corresponding non-meta character. - When several characters with consecutive @acronym{ASCII} codes have the same definition, they are shown together, as @samp{@var{firstchar}..@var{lastchar}}. In this instance, you need to @@ -2029,7 +2024,7 @@ which is a string that appears as an element of the keymap. the menu's commands. Emacs displays the overall prompt string as the menu title in some cases, depending on the toolkit (if any) used for displaying menus.@footnote{It is required for menus which do not use a -toolkit, e.g.@: under MS-DOS.} Keyboard menus also display the +toolkit, e.g., under MS-DOS.} Keyboard menus also display the overall prompt string. The easiest way to construct a keymap with a prompt string is to @@ -2308,9 +2303,9 @@ the following word. Thus, @code{"--:singleLine"}, is equivalent to and @code{:visible} for a menu separator: @code{(menu-item @var{separator-type} nil . @var{item-property-list})} - + For example: - + @example (menu-item "--" nil :visible (boundp 'foo)) @end example diff --git a/doc/lispref/lay-flat.texi b/doc/lispref/lay-flat.texi index 73e2adbc03a..f12e724d6a9 100644 --- a/doc/lispref/lay-flat.texi +++ b/doc/lispref/lay-flat.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c @comment %**start of header diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi index 40e8d08f72c..14601de1814 100644 --- a/doc/lispref/lists.texi +++ b/doc/lispref/lists.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Lists @chapter Lists @@ -22,6 +23,7 @@ the whole list. * Modifying Lists:: Storing new pieces into an existing list. * Sets And Lists:: A list can represent a finite mathematical set. * Association Lists:: A list can represent a finite relation or mapping. +* Property Lists:: A list of paired elements. @end menu @node Cons Cells @@ -1821,3 +1823,134 @@ often modifies the original list structure of @var{alist}. compares the @sc{cdr} of each @var{alist} association instead of the @sc{car}. @end defun + +@node Property Lists +@section Property Lists +@cindex property list +@cindex plist + + A @dfn{property list} (@dfn{plist} for short) is a list of paired +elements. Each of the pairs associates a property name (usually a +symbol) with a property or value. Here is an example of a property +list: + +@example +(pine cones numbers (1 2 3) color "blue") +@end example + +@noindent +This property list associates @code{pine} with @code{cones}, +@code{numbers} with @code{(1 2 3)}, and @code{color} with +@code{"blue"}. The property names and values can be any Lisp objects, +but the names are usually symbols (as they are in this example). + + Property lists are used in several contexts. For instance, the +function @code{put-text-property} takes an argument which is a +property list, specifying text properties and associated values which +are to be applied to text in a string or buffer. @xref{Text +Properties}. + + Another prominent use of property lists is for storing symbol +properties. Every symbol possesses a list of properties, used to +record miscellaneous information about the symbol; these properties +are stored in the form of a property list. @xref{Symbol Properties}. + +@menu +* Plists and Alists:: Comparison of the advantages of property + lists and association lists. +* Plist Access:: Accessing property lists stored elsewhere. +@end menu + +@node Plists and Alists +@subsection Property Lists and Association Lists +@cindex plist vs. alist +@cindex alist vs. plist + +@cindex property lists vs association lists + Association lists (@pxref{Association Lists}) are very similar to +property lists. In contrast to association lists, the order of the +pairs in the property list is not significant, since the property +names must be distinct. + + Property lists are better than association lists for attaching +information to various Lisp function names or variables. If your +program keeps all such information in one association list, it will +typically need to search that entire list each time it checks for an +association for a particular Lisp function name or variable, which +could be slow. By contrast, if you keep the same information in the +property lists of the function names or variables themselves, each +search will scan only the length of one property list, which is +usually short. This is why the documentation for a variable is +recorded in a property named @code{variable-documentation}. The byte +compiler likewise uses properties to record those functions needing +special treatment. + + However, association lists have their own advantages. Depending on +your application, it may be faster to add an association to the front of +an association list than to update a property. All properties for a +symbol are stored in the same property list, so there is a possibility +of a conflict between different uses of a property name. (For this +reason, it is a good idea to choose property names that are probably +unique, such as by beginning the property name with the program's usual +name-prefix for variables and functions.) An association list may be +used like a stack where associations are pushed on the front of the list +and later discarded; this is not possible with a property list. + +@node Plist Access +@subsection Property Lists Outside Symbols + + The following functions can be used to manipulate property lists. +They all compare property names using @code{eq}. + +@defun plist-get plist property +This returns the value of the @var{property} property stored in the +property list @var{plist}. It accepts a malformed @var{plist} +argument. If @var{property} is not found in the @var{plist}, it +returns @code{nil}. For example, + +@example +(plist-get '(foo 4) 'foo) + @result{} 4 +(plist-get '(foo 4 bad) 'foo) + @result{} 4 +(plist-get '(foo 4 bad) 'bad) + @result{} nil +(plist-get '(foo 4 bad) 'bar) + @result{} nil +@end example +@end defun + +@defun plist-put plist property value +This stores @var{value} as the value of the @var{property} property in +the property list @var{plist}. It may modify @var{plist} destructively, +or it may construct a new list structure without altering the old. The +function returns the modified property list, so you can store that back +in the place where you got @var{plist}. For example, + +@example +(setq my-plist '(bar t foo 4)) + @result{} (bar t foo 4) +(setq my-plist (plist-put my-plist 'foo 69)) + @result{} (bar t foo 69) +(setq my-plist (plist-put my-plist 'quux '(a))) + @result{} (bar t foo 69 quux (a)) +@end example +@end defun + +@defun lax-plist-get plist property +Like @code{plist-get} except that it compares properties +using @code{equal} instead of @code{eq}. +@end defun + +@defun lax-plist-put plist property value +Like @code{plist-put} except that it compares properties +using @code{equal} instead of @code{eq}. +@end defun + +@defun plist-member plist property +This returns non-@code{nil} if @var{plist} contains the given +@var{property}. Unlike @code{plist-get}, this allows you to distinguish +between a missing property and a property with the value @code{nil}. +The value is actually the tail of @var{plist} whose @code{car} is +@var{property}. +@end defun diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 9ca5314d790..51a060bc6c6 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Loading @chapter Loading @@ -533,7 +533,7 @@ autoloads for all files in the current directory. The same magic comment can copy any kind of form into @file{loaddefs.el}. The form following the magic comment is copied verbatim, @emph{except} if it is one of the forms which the autoload -facility handles specially (e.g.@: by conversion into an +facility handles specially (e.g., by conversion into an @code{autoload} call). The forms which are not copied verbatim are the following: @@ -849,10 +849,10 @@ was not provided}. @defun featurep feature &optional subfeature This function returns @code{t} if @var{feature} has been provided in -the current Emacs session (i.e.@:, if @var{feature} is a member of +the current Emacs session (i.e., if @var{feature} is a member of @code{features}.) If @var{subfeature} is non-@code{nil}, then the function returns @code{t} only if that subfeature is provided as well -(i.e.@: if @var{subfeature} is a member of the @code{subfeature} +(i.e., if @var{subfeature} is a member of the @code{subfeature} property of the @var{feature} symbol.) @end defun @@ -1017,7 +1017,7 @@ example, @file{my_inst.elc} or @file{my_inst.elc.gz} in some directory (eval-after-load "foo/bar/my_inst.elc" @dots{}) @end example -@var{library} can also be a feature (i.e.@: a symbol), in which case +@var{library} can also be a feature (i.e., a symbol), in which case @var{form} is evaluated at the end of any file where @code{(provide @var{library})} is called. diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi index b0dee1bf215..5520bbbd1df 100644 --- a/doc/lispref/macros.texi +++ b/doc/lispref/macros.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Macros @chapter Macros @@ -35,7 +36,7 @@ instead. @xref{Inline Functions}. @section A Simple Example of a Macro Suppose we would like to define a Lisp construct to increment a -variable value, much like the @code{++} operator in C. We would like to +variable value, much like the @code{++} operator in C@. We would like to write @code{(inc x)} and have the effect of @code{(setq x (1+ x))}. Here's a macro definition that does the job: @@ -605,12 +606,12 @@ calculate the indentation of a line within this expression. The function receives two arguments: @table @asis +@item @var{pos} +The position at which the line being indented begins. @item @var{state} The value returned by @code{parse-partial-sexp} (a Lisp primitive for indentation and nesting computation) when it parses up to the beginning of this line. -@item @var{pos} -The position at which the line being indented begins. @end table @noindent diff --git a/doc/lispref/makefile.w32-in b/doc/lispref/makefile.w32-in index 2914852dc8a..00b938dbf68 100644 --- a/doc/lispref/makefile.w32-in +++ b/doc/lispref/makefile.w32-in @@ -1,6 +1,6 @@ # -*- Makefile -*- for the GNU Emacs Lisp Reference Manual. -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/doc/lispref/maps.texi b/doc/lispref/maps.texi index 9426dfd4a88..d92f6a89f0a 100644 --- a/doc/lispref/maps.texi +++ b/doc/lispref/maps.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1993, 1999, 2001-2013 Free Software Foundation, +@c Inc. @c See the file elisp.texi for copying conditions. @node Standard Keymaps @appendix Standard Keymaps @@ -56,7 +57,7 @@ A full keymap for @kbd{ESC} (or @kbd{Meta}) commands. A sparse keymap used for the @kbd{M-o} prefix key. @item function-key-map -The parent keymap of all @code{local-function-key-map} (q.v.) instances. +The parent keymap of all @code{local-function-key-map} (q.v.@:) instances. @ignore @c Doesn't exist. @@ -118,12 +119,12 @@ Some of them contain sub-menus. For example, the Edit menu contains @code{menu-bar-search-menu}, etc. @xref{Menu Bar}. @ignore TODO list all submenus? -There are probably too many, and it would not be useful to do so, eg: +There are probably too many, and it would not be useful to do so, e.g.: The Edit menu includes @code{yank-menu}, @code{menu-bar-search-menu}, @code{menu-bar-replace-menu}, @code{menu-bar-goto-menu}, @code{menu-bar-bookmark-map}, and @code{facemenu-menu}. There is also mule-menu-keymap, set-coding-system-map, -setup-language-environment-map, describe-language-environment-map, +setup-language-environment-map, describe-language-environment-map, menu-bar-epatch-menu, menu-bar-ediff-merge-menu, menu-bar-ediff-menu, etc. @end ignore diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi index fa884269b36..cae14ab9a78 100644 --- a/doc/lispref/markers.texi +++ b/doc/lispref/markers.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Markers @chapter Markers diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 033c10fbf7d..9a1ec477b9f 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Minibuffers @chapter Minibuffers @@ -772,7 +772,7 @@ too short). Both of those begin with the string @samp{foobar}. This function returns a list of all possible completions of @var{string}. The arguments to this function @c (aside from @var{nospace}) -are the same as those of @code{try-completion}, and it +are the same as those of @code{try-completion}, and it uses @code{completion-regexp-list} in the same way that @code{try-completion} does. @@ -1599,7 +1599,7 @@ and @var{predicate} arguments have the same meanings as in @code{try-completion} (@pxref{Basic Completion}), and the @var{point} argument is the position of point within @var{string}. Each function should return a non-@code{nil} value if it performed its job, and -@code{nil} if it did not (e.g.@: if there is no way to complete +@code{nil} if it did not (e.g., if there is no way to complete @var{string} according to the completion style). When the user calls a completion command like diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 55d838d111e..7d42d2591d6 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Modes @chapter Major and Minor Modes @@ -612,7 +613,7 @@ variables section specifying a mode for that particular file. This should not be applied to the containing tar file. Similarly, a tiff image file might just happen to contain a first line that seems to match the @w{@samp{-*-}} pattern. For these reasons, both these file -extensions are members of the list @var{inhibit-local-variables-regexps}. +extensions are members of the list @code{inhibit-local-variables-regexps}. Add patterns to this list to prevent Emacs searching them for local variables of any kind (not just mode specifiers). @@ -865,7 +866,7 @@ derived from any of the major modes given by the symbols @var{modes}. Apart from Fundamental mode, there are three major modes that other major modes commonly derive from: Text mode, Prog mode, and Special -mode. While Text mode is useful in its own right (e.g. for editing +mode. While Text mode is useful in its own right (e.g., for editing files ending in @file{.txt}), Prog mode and Special mode exist mainly to let other modes derive from them. @@ -873,8 +874,8 @@ let other modes derive from them. As far as possible, new major modes should be derived, either directly or indirectly, from one of these three modes. One reason is that this allows users to customize a single mode hook -(e.g. @code{prog-mode-hook}) for an entire family of relevant modes -(e.g. all programming language modes). +(e.g., @code{prog-mode-hook}) for an entire family of relevant modes +(e.g., all programming language modes). @deffn Command text-mode Text mode is a major mode for editing human languages. It defines the @@ -904,9 +905,8 @@ modes derived from Special mode are given a @code{mode-class} property of @code{special} (@pxref{Major Mode Conventions}). Special mode sets the buffer to read-only. Its keymap defines several -common bindings, including @kbd{q} for @code{quit-window}, @kbd{z} for -@code{kill-this-buffer}, and @kbd{g} for @code{revert-buffer} -(@pxref{Reverting}). +common bindings, including @kbd{q} for @code{quit-window} and @kbd{g} +for @code{revert-buffer} (@pxref{Reverting}). An example of a major mode derived from Special mode is Buffer Menu mode, which is used by the @file{*Buffer List*} buffer. @xref{List @@ -981,7 +981,7 @@ very end of every properly-written major mode command. @cindex Tabulated List mode Tabulated List mode is a major mode for displaying tabulated data, -i.e.@: data consisting of @dfn{entries}, each entry occupying one row of +i.e., data consisting of @dfn{entries}, each entry occupying one row of text with its contents divided into columns. Tabulated List mode provides facilities for pretty-printing rows and columns, and sorting the rows according to the values in each column. It is derived from @@ -1002,7 +1002,7 @@ function @code{tabulated-list-init-header} to initialize the header line. The derived mode should also define a @dfn{listing command}. This, -not the mode command, is what the user calls (e.g.@: @kbd{M-x +not the mode command, is what the user calls (e.g., @kbd{M-x list-processes}). The listing command should create or switch to a buffer, turn on the derived mode, specify the tabulated data, and finally call @code{tabulated-list-print} to populate the buffer. @@ -1360,7 +1360,7 @@ follow them is to use the macro @code{define-minor-mode}. @cindex mode variable Define a variable whose name ends in @samp{-mode}. We call this the @dfn{mode variable}. The minor mode command should set this variable. -The value will be @code{nil} is the mode is disabled, and non-@code{nil} +The value will be @code{nil} if the mode is disabled, and non-@code{nil} if the mode is enabled. The variable should be buffer-local if the minor mode is buffer-local. @@ -1378,11 +1378,11 @@ the mode's features. The mode command should accept one optional argument. If called interactively with no prefix argument, it should toggle the mode -(i.e.@: enable if it is disabled, and disable if it is enabled). If +(i.e., enable if it is disabled, and disable if it is enabled). If called interactively with a prefix argument, it should enable the mode if the argument is positive and disable it otherwise. -If the mode command is called from Lisp (i.e.@: non-interactively), it +If the mode command is called from Lisp (i.e., non-interactively), it should enable the mode if the argument is omitted or @code{nil}; it should toggle the mode if the argument is the symbol @code{toggle}; otherwise it should treat the argument in the same way as for an @@ -2149,11 +2149,6 @@ visible on screen; or @samp{Bottom} or @samp{All}. The status of the subprocess belonging to the current buffer, obtained with @code{process-status}. @xref{Process Information}. -@item %t -Whether the visited file is a text file or a binary file. This is a -meaningful distinction only on certain operating systems (@pxref{MS-DOS -File Types}). - @item %z The mnemonics of keyboard, terminal, and buffer coding systems. @@ -3085,7 +3080,7 @@ for comments. @item font-lock-comment-delimiter-face @vindex font-lock-comment-delimiter-face -for comments delimiters, like @samp{/*} and @samp{*/} in C. On most +for comments delimiters, like @samp{/*} and @samp{*/} in C@. On most terminals, this inherits from @code{font-lock-comment-face}. @item font-lock-type-face @@ -3163,7 +3158,7 @@ outside of any comment, string, or sexp (@pxref{Position Parse}). This variable is semi-obsolete; we usually recommend setting @code{syntax-begin-function} instead. One of its uses is to tune the -behavior of syntactic fontification, e.g.@: to ensure that different +behavior of syntactic fontification, e.g., to ensure that different kinds of strings or comments are highlighted differently. The specified function is called with no arguments. It should leave @@ -3539,7 +3534,7 @@ T1 = T2, or T1 > T2. @item A token can be an @code{opener} (something similar to an open-paren), a @code{closer} (like a close-paren), or @code{neither} of the two -(e.g. an infix operator, or an inner token like @code{"else"}). +(e.g., an infix operator, or an inner token like @code{"else"}). @end itemize Precedence conflicts can be resolved via @var{resolvers}, which @@ -3752,7 +3747,7 @@ Finally, in many cases some conflicts will remain despite all efforts to restructure the grammar. Do not despair: while the parser cannot be made more clever, you can make the lexer as smart as you want. So, the solution is then to look at the tokens involved in the conflict and to -split one of those tokens into 2 (or more) different tokens. E.g. if +split one of those tokens into 2 (or more) different tokens. E.g., if the grammar needs to distinguish between two incompatible uses of the token @code{"begin"}, make the lexer return different tokens (say @code{"begin-fun"} and @code{"begin-plain"}) depending on which kind of @@ -3883,7 +3878,7 @@ Indent current token as a @emph{separator}. By @emph{separator}, we mean here a token whose sole purpose is to separate various elements within some enclosing syntactic construct, and -which does not have any semantic significance in itself (i.e. it would +which does not have any semantic significance in itself (i.e., it would typically not exist as a node in an abstract syntax tree). Such a token is expected to have an associative syntax and be closely @@ -4039,4 +4034,3 @@ and it should return the restored buffer. Here @var{desktop-buffer-misc} is the value returned by the function optionally bound to @code{desktop-save-buffer}. @end defvar - diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index e384d40176e..e462c3b4ce4 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1998-1999, 2001-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Non-ASCII Characters @chapter Non-@acronym{ASCII} Characters @@ -417,7 +417,7 @@ Corresponds to the Unicode properties @code{Decomposition_Type} and may be a symbol representing a compatibility formatting tag, such as @code{small}@footnote{The Unicode specification writes these tag names inside @samp{<..>} brackets, but the tag names in Emacs do not include -the brackets; e.g.@: Unicode specifies @samp{} where Emacs uses +the brackets; e.g., Unicode specifies @samp{} where Emacs uses @samp{small}. }; the other elements are characters that give the compatibility decomposition sequence of this character. For unassigned codepoints, the value is the character itself. @@ -825,7 +825,7 @@ a complex translation table rather than a simple one-to-one mapping. Each element of @var{alist} is of the form @code{(@var{from} . @var{to})}, where @var{from} and @var{to} are either characters or vectors specifying a sequence of characters. If @var{from} is a -character, that character is translated to @var{to} (i.e.@: to a +character, that character is translated to @var{to} (i.e., to a character or a character sequence). If @var{from} is a vector of characters, that sequence is translated to @var{to}. The returned table has a translation table for reverse mapping in the first extra @@ -855,8 +855,6 @@ documented here. for a single file operation. * Explicit Encoding:: Encoding or decoding text without doing I/O. * Terminal I/O Encoding:: Use of encoding for terminal I/O. -* MS-DOS File Types:: How DOS "text" and "binary" files - relate to coding systems. @end menu @node Coding System Basics @@ -1171,7 +1169,7 @@ positions. @defun detect-coding-region start end &optional highest This function chooses a plausible coding system for decoding the text from @var{start} to @var{end}. This text should be a byte sequence, -i.e.@: unibyte text or multibyte text with only @acronym{ASCII} and +i.e., unibyte text or multibyte text with only @acronym{ASCII} and eight-bit characters (@pxref{Explicit Encoding}). Normally this function returns a list of coding systems that could @@ -1775,62 +1773,6 @@ for encoding terminal output from @var{terminal}. If @code{nil}, that means the currently selected frame's terminal. @end deffn -@node MS-DOS File Types -@subsection MS-DOS File Types -@cindex DOS file types -@cindex MS-DOS file types -@cindex Windows file types -@cindex file types on MS-DOS and Windows -@cindex text files and binary files -@cindex binary files and text files - - On MS-DOS and Microsoft Windows, Emacs guesses the appropriate -end-of-line conversion for a file by looking at the file's name. This -feature classifies files as @dfn{text files} and @dfn{binary files}. By -``binary file'' we mean a file of literal byte values that are not -necessarily meant to be characters; Emacs does no end-of-line conversion -and no character code conversion for them. On the other hand, the bytes -in a text file are intended to represent characters; when you create a -new file whose name implies that it is a text file, Emacs uses DOS -end-of-line conversion. - -@defvar buffer-file-type -This variable, automatically buffer-local in each buffer, records the -file type of the buffer's visited file. When a buffer does not specify -a coding system with @code{buffer-file-coding-system}, this variable is -used to determine which coding system to use when writing the contents -of the buffer. It should be @code{nil} for text, @code{t} for binary. -If it is @code{t}, the coding system is @code{no-conversion}. -Otherwise, @code{undecided-dos} is used. - -Normally this variable is set by visiting a file; it is set to -@code{nil} if the file was visited without any actual conversion. - -Its default value is used to decide how to handle files for which -@code{file-name-buffer-file-type-alist} says nothing about the type: -If the default value is non-@code{nil}, then these files are treated as -binary: the coding system @code{no-conversion} is used. Otherwise, -nothing special is done for them---the coding system is deduced solely -from the file contents, in the usual Emacs fashion. -@end defvar - -@defopt file-name-buffer-file-type-alist -This variable holds an alist for recognizing text and binary files. -Each element has the form (@var{regexp} . @var{type}), where -@var{regexp} is matched against the file name, and @var{type} may be -@code{nil} for text, @code{t} for binary, or a function to call to -compute which. If it is a function, then it is called with a single -argument (the file name) and should return @code{t} or @code{nil}. - -When running on MS-DOS or MS-Windows, Emacs checks this alist to decide -which coding system to use when reading a file. For a text file, -@code{undecided-dos} is used. For a binary file, @code{no-conversion} -is used. - -If no element in this alist matches a given file name, then -the default value of @code{buffer-file-type} says how to treat the file. -@end defopt - @node Input Methods @section Input Methods @cindex input methods diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi index a086f2b3af1..eeebac6bf72 100644 --- a/doc/lispref/numbers.texi +++ b/doc/lispref/numbers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Numbers @chapter Numbers @@ -43,7 +43,7 @@ minimum range is @minus{}536870912 to 536870911 (30 bits; i.e., @end tex to @ifnottex -2**29 - 1), +2**29 @minus{} 1), @end ifnottex @tex @math{2^{29}-1}), @@ -193,7 +193,7 @@ distinguishable in the @acronym{IEEE} floating point standard. infinity and negative infinity as floating point values. It also provides for a class of values called NaN or ``not-a-number''; numerical functions return such values in cases where there is no -correct answer. For example, @code{(/ 0.0 0.0)} returns a NaN. (NaN +correct answer. For example, @code{(/ 0.0 0.0)} returns a NaN@. (NaN values can also carry a sign, but for practical purposes there's no significant difference between different NaN values in Emacs Lisp.) @@ -1216,7 +1216,7 @@ series of pseudo-random integers. If @var{limit} is a positive integer, the value is chosen to be nonnegative and less than @var{limit}. Otherwise, the value might be -any integer representable in Lisp, i.e.@: an integer between +any integer representable in Lisp, i.e., an integer between @code{most-negative-fixnum} and @code{most-positive-fixnum} (@pxref{Integer Basics}). diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 6933ffe492a..3b7dc41335b 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Lisp Data Types @chapter Lisp Data Types @@ -171,7 +171,7 @@ latter are unique to Emacs Lisp. @end tex to @ifnottex -2**29 - 1) +2**29 @minus{} 1) @end ifnottex @tex @math{2^{29}-1}) @@ -565,8 +565,8 @@ Lisp, upper case and lower case letters are distinct. @end quotation Here are several examples of symbol names. Note that the @samp{+} in -the fifth example is escaped to prevent it from being read as a number. -This is not necessary in the fourth example because the rest of the name +the fourth example is escaped to prevent it from being read as a number. +This is not necessary in the sixth example because the rest of the name makes it invalid as a number. @example @@ -1027,7 +1027,7 @@ but the newline is ignored if escaped." characters in Emacs strings: multibyte and unibyte (@pxref{Text Representations}). Roughly speaking, unibyte strings store raw bytes, while multibyte strings store human-readable text. Each character in -a unibyte string is a byte, i.e.@: its value is between 0 and 255. By +a unibyte string is a byte, i.e., its value is between 0 and 255. By contrast, each character in a multibyte string may have a value between 0 to 4194303 (@pxref{Character Type}). In both cases, characters above 127 are non-@acronym{ASCII}. @@ -1054,7 +1054,7 @@ character), Emacs automatically assumes that it is multibyte. octal escape sequences (@samp{\@var{n}}) in string constants. @strong{But beware:} If a string constant contains hexadecimal or octal escape sequences, and these escape sequences all specify unibyte -characters (i.e.@: less than 256), and there are no other literal +characters (i.e., less than 256), and there are no other literal non-@acronym{ASCII} characters or Unicode-style escape sequences in the string, then Emacs automatically assumes that it is a unibyte string. That is to say, it assumes that all non-@acronym{ASCII} @@ -1177,8 +1177,10 @@ inherit from, a default value, and a small number of extra slots to use for special purposes. A char-table can also specify a single value for a whole character set. +@cindex @samp{#^} read syntax The printed representation of a char-table is like a vector -except that there is an extra @samp{#^} at the beginning. +except that there is an extra @samp{#^} at the beginning.@footnote{You +may also encounter @samp{#^^}, used for ``sub-char-tables''.} @xref{Char-Tables}, for special functions to operate on char-tables. Uses of char-tables include: @@ -1310,7 +1312,7 @@ may still use the built-in definition. Therefore, @strong{we discourage redefinition of primitive functions}. The term @dfn{function} refers to all Emacs functions, whether written -in Lisp or C. @xref{Function Type}, for information about the +in Lisp or C@. @xref{Function Type}, for information about the functions written in Lisp. Primitive functions have no read syntax and print in hash notation @@ -1934,7 +1936,7 @@ This function returns a symbol naming the primitive type of Here we describe functions that test for equality between two objects. Other functions test equality of contents between objects of -specific types, e.g.@: strings. For these predicates, see the +specific types, e.g., strings. For these predicates, see the appropriate chapter describing the data type. @defun eq object1 object2 @@ -1942,10 +1944,10 @@ This function returns @code{t} if @var{object1} and @var{object2} are the same object, and @code{nil} otherwise. If @var{object1} and @var{object2} are integers with the same value, -they are considered to be the same object (i.e.@: @code{eq} returns +they are considered to be the same object (i.e., @code{eq} returns @code{t}). If @var{object1} and @var{object2} are symbols with the same name, they are normally the same object---but see @ref{Creating -Symbols} for exceptions. For other types (e.g.@: lists, vectors, +Symbols} for exceptions. For other types (e.g., lists, vectors, strings), two arguments with the same contents or elements are not necessarily @code{eq} to each other: they are @code{eq} only if they are the same object, meaning that a change in the contents of one will diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 7552aaccc53..b481c330f9f 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node System Interface @chapter Operating System Interface @@ -445,7 +445,7 @@ is found whose name is identical to the terminal's name, Emacs strips from the terminal's name the last hyphen or underscore and everything that follows it, and tries again. This process is repeated until Emacs finds a matching library, or until there are no more hyphens or underscores in the name -(i.e.@: there is no terminal-specific library). For example, if the +(i.e., there is no terminal-specific library). For example, if the terminal name is @samp{xterm-256color} and there is no @file{term/xterm-256color.el} library, Emacs tries to load @file{term/xterm.el}. If necessary, the terminal library can evaluate @@ -638,7 +638,7 @@ input) can read them. higher-level command @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). @xref{Exiting,,, emacs, The GNU Emacs Manual}. It is also called automatically if Emacs receives a -@code{SIGTERM} or @code{SIGHUP} operating system signal (e.g. when the +@code{SIGTERM} or @code{SIGHUP} operating system signal (e.g., when the controlling terminal is disconnected), or if it receives a @code{SIGINT} signal while running in batch mode (@pxref{Batch Mode}). @@ -646,7 +646,7 @@ controlling terminal is disconnected), or if it receives a This normal hook is run by @code{kill-emacs}, before it kills Emacs. Because @code{kill-emacs} can be called in situations where user -interaction is impossible (e.g. when the terminal is disconnected), +interaction is impossible (e.g., when the terminal is disconnected), functions on this hook should not attempt to interact with the user. If you want to interact with the user when Emacs is shutting down, use @code{kill-emacs-query-functions}, described below. @@ -871,7 +871,7 @@ Hewlett-Packard HPUX operating system. Silicon Graphics Irix system. @item ms-dos -Microsoft's DOS. Emacs compiled with DJGPP for MS-DOS binds +Microsoft's DOS@. Emacs compiled with DJGPP for MS-DOS binds @code{system-type} to @code{ms-dos} even when you run it on MS-Windows. @item usg-unix-v @@ -879,7 +879,7 @@ AT&T Unix System V. @item windows-nt Microsoft Windows NT, 9X and later. The value of @code{system-type} -is always @code{windows-nt}, e.g. even on Windows 7. +is always @code{windows-nt}, e.g., even on Windows 7. @end table @@ -887,7 +887,7 @@ We do not wish to add new symbols to make finer distinctions unless it is absolutely necessary! In fact, we hope to eliminate some of these alternatives in the future. If you need to make a finer distinction than @code{system-type} allows for, you can test -@code{system-configuration}, e.g. against a regexp. +@code{system-configuration}, e.g., against a regexp. @end defvar @defun system-name @@ -1157,6 +1157,16 @@ This function returns the effective @acronym{UID} of the user. The value may be a floating point number. @end defun +@defun group-gid +This function returns the effective @acronym{GID} of the Emacs process. +The value may be a floating point number. +@end defun + +@defun group-real-gid +This function returns the real @acronym{GID} of the Emacs process. +The value may be a floating point number. +@end defun + @defun system-users This function returns a list of strings, listing the user names on the system. If Emacs cannot retrieve this information, the return value @@ -1202,7 +1212,7 @@ specified time. The return value of @code{current-time} represents time using four integers, as do the timestamps in the return value of @code{file-attributes} (@pxref{Definition of -file-attributes}). In function arguments, e.g.@: the @var{time-value} +file-attributes}). In function arguments, e.g., the @var{time-value} argument to @code{current-time-string}, two-, three-, and four-integer lists are accepted. You can convert times from the list representation into standard human-readable strings using @@ -1285,7 +1295,7 @@ vice versa. Many 32-bit operating systems are limited to time values containing 32 bits of information; these systems typically handle only the times -from 1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC. +from 1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC@. However, 64-bit and some 32-bit operating systems have larger time values, and can represent times far in the past or future. @@ -1411,23 +1421,23 @@ This stands for the day of month, blank-padded. @item %h This is a synonym for @samp{%b}. @item %H -This stands for the hour (00-23). +This stands for the hour (00--23). @item %I -This stands for the hour (01-12). +This stands for the hour (01--12). @item %j -This stands for the day of the year (001-366). +This stands for the day of the year (001--366). @item %k -This stands for the hour (0-23), blank padded. +This stands for the hour (0--23), blank padded. @item %l -This stands for the hour (1-12), blank padded. +This stands for the hour (1--12), blank padded. @item %m -This stands for the month (01-12). +This stands for the month (01--12). @item %M -This stands for the minute (00-59). +This stands for the minute (00--59). @item %n This stands for a newline. @item %N -This stands for the nanoseconds (000000000-999999999). To ask for +This stands for the nanoseconds (000000000--999999999). To ask for fewer digits, use @samp{%3N} for milliseconds, @samp{%6N} for microseconds, etc. Any excess digits are discarded, without rounding. @item %p @@ -1437,18 +1447,18 @@ This is a synonym for @samp{%I:%M:%S %p}. @item %R This is a synonym for @samp{%H:%M}. @item %S -This stands for the seconds (00-59). +This stands for the seconds (00--59). @item %t This stands for a tab character. @item %T This is a synonym for @samp{%H:%M:%S}. @item %U -This stands for the week of the year (01-52), assuming that weeks +This stands for the week of the year (01--52), assuming that weeks start on Sunday. @item %w -This stands for the numeric day of week (0-6). Sunday is day 0. +This stands for the numeric day of week (0--6). Sunday is day 0. @item %W -This stands for the week of the year (01-52), assuming that weeks +This stands for the week of the year (01--52), assuming that weeks start on Monday. @item %x This has a locale-specific meaning. In the default locale (named @@ -1457,7 +1467,7 @@ This has a locale-specific meaning. In the default locale (named This has a locale-specific meaning. In the default locale (named @samp{C}), it is equivalent to @samp{%T}. @item %y -This stands for the year without century (00-99). +This stands for the year without century (00--99). @item %Y This stands for the year with century. @item %Z @@ -1534,7 +1544,7 @@ The integer number of minutes. The integer number of seconds. @item %z Non-printing control flag. When it is used, other specifiers must be -given in the order of decreasing size, i.e.@: years before days, hours +given in the order of decreasing size, i.e., years before days, hours before minutes, etc. Nothing will be produced in the result string to the left of @samp{%z} until the first non-zero conversion is encountered. For example, the default format used by diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi index 08677f1718b..ad9f4fc1aea 100644 --- a/doc/lispref/package.texi +++ b/doc/lispref/package.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 2010-2012 Free Software Foundation, Inc. +@c Copyright (C) 2010-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Packaging @chapter Preparing Lisp code for distribution @@ -48,12 +48,12 @@ for creating them differs, as explained in the following sections. @table @asis @item Name -A short word (e.g. @samp{auctex}). This is usually also the symbol +A short word (e.g., @samp{auctex}). This is usually also the symbol prefix used in the program (@pxref{Coding Conventions}). @item Version A version number, in a form that the function @code{version-to-list} -understands (e.g. @samp{11.86}). Each release of a package should be +understands (e.g., @samp{11.86}). Each release of a package should be accompanied by an increase in the version number. @item Brief description @@ -80,7 +80,7 @@ if any dependency cannot be found, the package cannot be installed. or via the Package Menu, creates a subdirectory of @code{package-user-dir} named @file{@var{name}-@var{version}}, where @var{name} is the package's name and @var{version} its version -(e.g. @file{~/.emacs.d/elpa/auctex-11.86/}). We call this the +(e.g., @file{~/.emacs.d/elpa/auctex-11.86/}). We call this the package's @dfn{content directory}. It is where Emacs puts the package's contents (the single Lisp file for a simple package, or the files extracted from a multi-file package). diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi index c4576e6456d..e8b6166f63c 100644 --- a/doc/lispref/positions.texi +++ b/doc/lispref/positions.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Positions @chapter Positions @@ -748,7 +748,7 @@ terminate it, and @samp{\} quotes @samp{^}, @samp{-} or @samp{\}. Thus, @code{"a-zA-Z"} skips over all letters, stopping before the first nonletter, and @code{"^a-zA-Z"} skips nonletters stopping before the first letter. See @xref{Regular Expressions}. Character classes -can also be used, e.g. @code{"[:alnum:]"}. See @pxref{Char Classes}. +can also be used, e.g., @code{"[:alnum:]"}. See @pxref{Char Classes}. If @var{limit} is supplied (it must be a number or a marker), it specifies the maximum position in the buffer that point can be skipped diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 217f9f9eaee..1181244a974 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Processes @chapter Processes @@ -88,7 +88,7 @@ initializes @code{exec-path} when it starts up, based on the value of the environment variable @env{PATH}. The standard file name constructs, @samp{~}, @samp{.}, and @samp{..}, are interpreted as usual in @code{exec-path}, but environment variable substitutions -(@samp{$HOME}, etc.) are not recognized; use +(@samp{$HOME}, etc.)@: are not recognized; use @code{substitute-in-file-name} to perform them (@pxref{File Name Expansion}). @code{nil} in this list refers to @code{default-directory}. @@ -450,7 +450,7 @@ as it comes in. For details, see the description of @code{call-process}, above. If @var{destination} is the integer 0, @code{call-process-region} discards the output and returns @code{nil} immediately, without waiting for the subprocess to finish (this only -works if asynchronous subprocesses are supported; i.e. not on MS-DOS). +works if asynchronous subprocesses are supported; i.e., not on MS-DOS). The remaining arguments, @var{args}, are strings that specify command line arguments for the program. @@ -557,7 +557,7 @@ from the process only while waiting for input or for a time delay. when creating the process, based on the value of the variable @code{process-connection-type} (see below). Ptys are usually preferable for processes visible to the user, as in Shell mode, -because they allow for job control (@kbd{C-c}, @kbd{C-z}, etc.) +because they allow for job control (@kbd{C-c}, @kbd{C-z}, etc.)@: between the process and its children, whereas pipes do not. For subprocesses used for internal purposes by programs, it is often better to use a pipe, because they are more efficient, and because @@ -571,7 +571,7 @@ program @var{program} running in it. It returns a process object that stands for the new subprocess in Lisp. The argument @var{name} specifies the name for the process object; if a process with this name already exists, then @var{name} is modified (by appending @samp{<1>}, -etc.) to be unique. The buffer @var{buffer-or-name} is the buffer to +etc.)@: to be unique. The buffer @var{buffer-or-name} is the buffer to associate with the process. If @var{program} is @code{nil}, Emacs opens a new pseudoterminal (pty) @@ -635,7 +635,7 @@ Depending on the implementation of the file handler, it might not be possible to apply @code{process-filter} or @code{process-sentinel} to the resulting process object. @xref{Filter Functions}, and @ref{Sentinels}. -@c FIXME Can we find a better example (i.e. a more modern function +@c FIXME Can we find a better example (i.e., a more modern function @c that is actually documented). Some file handlers may not support @code{start-file-process} (for example the function @code{ange-ftp-hook-function}). In such cases, @@ -1091,7 +1091,7 @@ and cannot be handled by the subprocess. @defun quit-process &optional process current-group This function sends the signal @code{SIGQUIT} to the process @var{process}. This signal is the one sent by the ``quit -@c FIXME? Never heard of C-b being used for this. In readline, eg +@c FIXME? Never heard of C-b being used for this. In readline, e.g., @c bash, that is backward-word. character'' (usually @kbd{C-b} or @kbd{C-\}) when you are not inside Emacs. @@ -1804,12 +1804,12 @@ The number of threads in the process. @item start The time when the process was started, in the same -@w{@code{(@var{high} @var{low} @var{microsec} @var{picosec})}} format used by -@code{current-time} and by @code{file-attributes}. +@code{(@var{high} @var{low} @var{microsec} @var{picosec})} format used by +@code{file-attributes} and @code{current-time}. @item etime -The time elapsed since the process started, in the @w{@code{(@var{high} -@var{low} @var{microsec} @var{picosec})}} format. +The time elapsed since the process started, in the format @code{(@var{high} +@var{low} @var{microsec} @var{picosec})}. @item vsize The virtual memory size of the process, measured in kilobytes. diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index f165381a0f8..87d4051d6f0 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Searching and Matching @chapter Searching and Matching @@ -391,7 +391,7 @@ If @code{case-fold-search} is non-@code{nil}, @samp{[a-z]} also matches upper-case letters. Note that a range like @samp{[a-z]} is not affected by the locale's collation sequence, it always represents a sequence in @acronym{ASCII} order. -@c This wasn't obvious to me, since eg the grep manual "Character +@c This wasn't obvious to me, since, e.g., the grep manual "Character @c Classes and Bracket Expressions" specifically notes the opposite @c behavior. But by experiment Emacs seems unaffected by LC_COLLATE @c in this regard. @@ -684,8 +684,8 @@ is the @dfn{explicitly numbered group} construct. Normal groups get their number implicitly, based on their position, which can be inconvenient. This construct allows you to force a particular group number. There is no particular restriction on the numbering, -e.g.@: you can have several groups with the same number in which case -the last one to match (i.e.@: the rightmost match) will win. +e.g., you can have several groups with the same number in which case +the last one to match (i.e., the rightmost match) will win. Implicitly numbered groups always get the smallest integer larger than the one of any previous group. @@ -933,7 +933,7 @@ for Font Lock mode@footnote{Note that @code{regexp-opt} does not guarantee that its result is absolutely the most efficient form possible. A hand-tuned regular expression can sometimes be slightly more efficient, but is almost never worth the effort.}. -@c See eg http://debbugs.gnu.org/2816 +@c E.g., see http://debbugs.gnu.org/2816 If the optional argument @var{paren} is non-@code{nil}, then the returned regular expression is always enclosed by at least one @@ -1207,7 +1207,7 @@ report the first match found. full backtracking specified by the POSIX standard for regular expression matching. They continue backtracking until they have tried all possibilities and found all matches, so they can report the longest -match, as required by POSIX. This is much slower, so use these +match, as required by POSIX@. This is much slower, so use these functions only when you really need the longest match. The POSIX search and match functions do not properly support the @@ -1325,7 +1325,7 @@ This stands for a single @samp{\} in the replacement text. @item @samp{\?} This stands for itself (for compatibility with @code{replace-regexp} -and related commands; @pxref{Regexp Replacement,,, emacs, The GNU +and related commands; @pxref{Regexp Replace,,, emacs, The GNU Emacs Manual}). @end table @@ -1379,7 +1379,7 @@ other function that might perform another search. Alternatively, you may save and restore the match data (@pxref{Saving Match Data}) around the call to functions that could perform another search. Or use the functions that explicitly do not modify the match data; -e.g. @code{string-match-p}. +e.g., @code{string-match-p}. @c This is an old comment and presumably there is no prospect of this @c changing now. But still the advice stands. diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index e66f61d22d3..00384de7ec8 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Sequences Arrays Vectors @chapter Sequences, Arrays, and Vectors @@ -542,10 +542,10 @@ the function @code{char-table-subtype}, described below. @item The subtype controls the number of @dfn{extra slots} in the char-table. This number is specified by the subtype's -@code{char-table-extra-slots} symbol property, which should be an -integer between 0 and 10. If the subtype has no such symbol property, -the char-table has no extra slots. @xref{Property Lists}, for -information about symbol properties. +@code{char-table-extra-slots} symbol property (@pxref{Symbol +Properties}), whose value should be an integer between 0 and 10. If +the subtype has no such symbol property, the char-table has no extra +slots. @end itemize @cindex parent of char-table diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi index 5fd082678c5..5b7e833b235 100644 --- a/doc/lispref/streams.texi +++ b/doc/lispref/streams.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Read and Print @chapter Reading and Printing Lisp Objects @@ -694,7 +695,7 @@ The default is @code{t}, meaning display in the echo area. @defvar print-quoted If this is non-@code{nil}, that means to print quoted forms using -abbreviated reader syntax, e.g.@: @code{(quote foo)} prints as +abbreviated reader syntax, e.g., @code{(quote foo)} prints as @code{'foo}, and @code{(function foo)} as @code{#'foo}. @end defvar diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index 865435c91b3..340115062f9 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Strings and Characters @chapter Strings and Characters @@ -517,25 +517,29 @@ comparison ignores case differences. @end defun @defun compare-strings string1 start1 end1 string2 start2 end2 &optional ignore-case -This function compares the specified part of @var{string1} with the +This function compares a specified part of @var{string1} with a specified part of @var{string2}. The specified part of @var{string1} -runs from index @var{start1} up to index @var{end1} (@code{nil} means -the end of the string). The specified part of @var{string2} runs from -index @var{start2} up to index @var{end2} (@code{nil} means the end of -the string). +runs from index @var{start1} (inclusive) up to index @var{end1} +(exclusive); @code{nil} for @var{start1} means the start of the +string, while @code{nil} for @var{end1} means the length of the +string. Likewise, the specified part of @var{string2} runs from index +@var{start2} up to index @var{end2}. -The strings are both converted to multibyte for the comparison -(@pxref{Text Representations}) so that a unibyte string and its -conversion to multibyte are always regarded as equal. If -@var{ignore-case} is non-@code{nil}, then case is ignored, so that -upper case letters can be equal to lower case letters. +The strings are compared by the numeric values of their characters. +For instance, @var{str1} is considered ``smaller than'' @var{str2} if +its first differing character has a smaller numeric value. If +@var{ignore-case} is non-@code{nil}, characters are converted to +lower-case before comparing them. Unibyte strings are converted to +multibyte for comparison (@pxref{Text Representations}), so that a +unibyte string and its conversion to multibyte are always regarded as +equal. If the specified portions of the two strings match, the value is @code{t}. Otherwise, the value is an integer which indicates how many -leading characters agree, and which string is less. Its absolute value -is one plus the number of characters that agree at the beginning of the -two strings. The sign is negative if @var{string1} (or its specified -portion) is less. +leading characters agree, and which string is less. Its absolute +value is one plus the number of characters that agree at the beginning +of the two strings. The sign is negative if @var{string1} (or its +specified portion) is less. @end defun @defun assoc-string key alist &optional case-fold diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index 326c6cd4ab2..82dfa0f4917 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Symbols @chapter Symbols @@ -13,8 +14,8 @@ as variables and as function names; see @ref{Variables}, and @ref{Functions}. For the precise read syntax for symbols, see @ref{Symbol Type}. - You can test whether an arbitrary Lisp object is a symbol -with @code{symbolp}: + You can test whether an arbitrary Lisp object is a symbol with +@code{symbolp}: @defun symbolp object This function returns @code{t} if @var{object} is a symbol, @code{nil} @@ -26,7 +27,7 @@ otherwise. and property lists. * Definitions:: A definition says how a symbol will be used. * Creating Symbols:: How symbols are kept unique. -* Property Lists:: Each symbol has a property list +* Symbol Properties:: Each symbol has a property list for recording miscellaneous information. @end menu @@ -91,7 +92,7 @@ the contents of a symbol's function cell, use the function The property list cell normally should hold a correctly formatted property list. To get a symbol's property list, use the function -@code{symbol-plist}. @xref{Property Lists}. +@code{symbol-plist}. @xref{Symbol Properties}. The function cell or the value cell may be @dfn{void}, which means that the cell does not reference any object. (This is not the same @@ -153,8 +154,8 @@ that cell can hold only one Lisp object at any given time. @xref{Macros}. As previously noted, Emacs Lisp allows the same symbol to be defined -both as a variable (e.g.@: with @code{defvar}) and as a function or -macro (e.g.@: with @code{defun}). Such definitions do not conflict. +both as a variable (e.g., with @code{defvar}) and as a function or +macro (e.g., with @code{defun}). Such definitions do not conflict. These definition also act as guides for programming tools. For example, the @kbd{C-h f} and @kbd{C-h v} commands create help buffers @@ -376,82 +377,58 @@ If @code{unintern} does delete a symbol, it returns @code{t}. Otherwise it returns @code{nil}. @end defun -@node Property Lists -@section Property Lists -@cindex property list -@cindex plist +@node Symbol Properties +@section Symbol Properties +@cindex symbol property - A @dfn{property list} (@dfn{plist} for short) is a list of paired -elements. Each of the pairs associates a property name (usually a -symbol) with a property or value. + A symbol may possess any number of @dfn{symbol properties}, which +can be used to record miscellaneous information about the symbol. For +example, when a symbol has a @code{risky-local-variable} property with +a non-@code{nil} value, that means the variable which the symbol names +is a risky file-local variable (@pxref{File Local Variables}). - Every symbol has a cell that stores a property list (@pxref{Symbol -Components}). This property list is used to record information about -the symbol, such as its variable documentation and the name of the -file where it was defined. - - Property lists can also be used in other contexts. For instance, -you can assign property lists to character positions in a string or -buffer. @xref{Text Properties}. - - The property names and values in a property list can be any Lisp -objects, but the names are usually symbols. Property list functions -compare the property names using @code{eq}. Here is an example of a -property list, found on the symbol @code{progn} when the compiler is -loaded: - -@example -(lisp-indent-function 0 byte-compile byte-compile-progn) -@end example - -@noindent -Here @code{lisp-indent-function} and @code{byte-compile} are property -names, and the other two elements are the corresponding values. + Each symbol's properties and property values are stored in the +symbol's property list cell (@pxref{Symbol Components}), in the form +of a property list (@pxref{Property Lists}). @menu -* Plists and Alists:: Comparison of the advantages of property - lists and association lists. -* Symbol Plists:: Functions to access symbols' property lists. -* Other Plists:: Accessing property lists stored elsewhere. +* Symbol Plists:: Accessing symbol properties. +* Standard Properties:: Standard meanings of symbol properties. @end menu -@node Plists and Alists -@subsection Property Lists and Association Lists -@cindex plist vs. alist -@cindex alist vs. plist - -@cindex property lists vs association lists - Association lists (@pxref{Association Lists}) are very similar to -property lists. In contrast to association lists, the order of the -pairs in the property list is not significant since the property names -must be distinct. - - Property lists are better than association lists for attaching -information to various Lisp function names or variables. If your -program keeps all such information in one association list, it will -typically need to search that entire list each time it checks for an -association for a particular Lisp function name or variable, which -could be slow. By contrast, if you keep the same information in the -property lists of the function names or variables themselves, each -search will scan only the length of one property list, which is -usually short. This is why the documentation for a variable is -recorded in a property named @code{variable-documentation}. The byte -compiler likewise uses properties to record those functions needing -special treatment. - - However, association lists have their own advantages. Depending on -your application, it may be faster to add an association to the front of -an association list than to update a property. All properties for a -symbol are stored in the same property list, so there is a possibility -of a conflict between different uses of a property name. (For this -reason, it is a good idea to choose property names that are probably -unique, such as by beginning the property name with the program's usual -name-prefix for variables and functions.) An association list may be -used like a stack where associations are pushed on the front of the list -and later discarded; this is not possible with a property list. - @node Symbol Plists -@subsection Property List Functions for Symbols +@subsection Accessing Symbol Properties + + The following functions can be used to access symbol properties. + +@defun get symbol property +This function returns the value of the property named @var{property} +in @var{symbol}'s property list. If there is no such property, it +returns @code{nil}. Thus, there is no distinction between a value of +@code{nil} and the absence of the property. + +The name @var{property} is compared with the existing property names +using @code{eq}, so any object is a legitimate property. + +See @code{put} for an example. +@end defun + +@defun put symbol property value +This function puts @var{value} onto @var{symbol}'s property list under +the property name @var{property}, replacing any previous property value. +The @code{put} function returns @var{value}. + +@example +(put 'fly 'verb 'transitive) + @result{}'transitive +(put 'fly 'noun '(a buzzing little bug)) + @result{} (a buzzing little bug) +(get 'fly 'verb) + @result{} transitive +(symbol-plist 'fly) + @result{} (verb transitive noun (a buzzing little bug)) +@end example +@end defun @defun symbol-plist symbol This function returns the property list of @var{symbol}. @@ -473,18 +450,15 @@ For symbols in special obarrays, which are not used for ordinary purposes, it may make sense to use the property list cell in a nonstandard fashion; in fact, the abbrev mechanism does so (@pxref{Abbrevs}). -@end defun -@defun get symbol property -This function finds the value of the property named @var{property} in -@var{symbol}'s property list. If there is no such property, @code{nil} -is returned. Thus, there is no distinction between a value of -@code{nil} and the absence of the property. +You could define @code{put} in terms of @code{setplist} and +@code{plist-put}, as follows: -The name @var{property} is compared with the existing property names -using @code{eq}, so any object is a legitimate property. - -See @code{put} for an example. +@example +(defun put (symbol prop value) + (setplist symbol + (plist-put (symbol-plist symbol) prop value))) +@end example @end defun @defun function-get symbol property @@ -493,86 +467,105 @@ is the name of a function alias, it looks in the property list of the symbol naming the actual function. @xref{Defining Functions}. @end defun -@defun put symbol property value -This function puts @var{value} onto @var{symbol}'s property list under -the property name @var{property}, replacing any previous property value. -The @code{put} function returns @var{value}. +@node Standard Properties +@subsection Standard Symbol Properties -@example -(put 'fly 'verb 'transitive) - @result{}'transitive -(put 'fly 'noun '(a buzzing little bug)) - @result{} (a buzzing little bug) -(get 'fly 'verb) - @result{} transitive -(symbol-plist 'fly) - @result{} (verb transitive noun (a buzzing little bug)) -@end example -@end defun + Here, we list the symbol properties which are used for special +purposes in Emacs. In the following table, whenever we say ``the +named function'', that means the function whose name is the relevant +symbol; similarly for ``the named variable'' etc. -@node Other Plists -@subsection Property Lists Outside Symbols +@table @code +@item :advertised-binding +This property value specifies the preferred key binding, when showing +documentation, for the named function. @xref{Keys in Documentation}. - These functions are useful for manipulating property lists -not stored in symbols: +@item char-table-extra-slots +The value, if non-@code{nil}, specifies the number of extra slots in +the named char-table type. @xref{Char-Tables}. -@defun plist-get plist property -This returns the value of the @var{property} property stored in the -property list @var{plist}. It accepts a malformed @var{plist} -argument. If @var{property} is not found in the @var{plist}, it -returns @code{nil}. For example, +@item customized-face +@itemx face-defface-spec +@itemx saved-face +@itemx theme-face +These properties are used to record a face's standard, saved, +customized, and themed face specs. Do not set them directly; they are +managed by @code{defface} and related functions. @xref{Defining +Faces}. -@example -(plist-get '(foo 4) 'foo) - @result{} 4 -(plist-get '(foo 4 bad) 'foo) - @result{} 4 -(plist-get '(foo 4 bad) 'bad) - @result{} nil -(plist-get '(foo 4 bad) 'bar) - @result{} nil -@end example -@end defun +@item customized-value +@itemx saved-value +@itemx standard-value +@itemx theme-value +These properties are used to record a customizable variable's standard +value, saved value, customized-but-unsaved value, and themed values. +Do not set them directly; they are managed by @code{defcustom} and +related functions. @xref{Variable Definitions}. -@defun plist-put plist property value -This stores @var{value} as the value of the @var{property} property in -the property list @var{plist}. It may modify @var{plist} destructively, -or it may construct a new list structure without altering the old. The -function returns the modified property list, so you can store that back -in the place where you got @var{plist}. For example, +@item disabled +If the value is non-@code{nil}, the named function is disabled as a +command. @xref{Disabling Commands}. -@example -(setq my-plist '(bar t foo 4)) - @result{} (bar t foo 4) -(setq my-plist (plist-put my-plist 'foo 69)) - @result{} (bar t foo 69) -(setq my-plist (plist-put my-plist 'quux '(a))) - @result{} (bar t foo 69 quux (a)) -@end example -@end defun +@item face-documentation +The value stores the documentation string of the named face. This is +set automatically by @code{defface}. @xref{Defining Faces}. - You could define @code{put} in terms of @code{plist-put} as follows: +@item history-length +The value, if non-@code{nil}, specifies the maximum minibuffer history +length for the named history list variable. @xref{Minibuffer +History}. -@example -(defun put (symbol prop value) - (setplist symbol - (plist-put (symbol-plist symbol) prop value))) -@end example +@item interactive-form +The value is an interactive form for the named function. Normally, +you should not set this directly; use the @code{interactive} special +form instead. @xref{Interactive Call}. -@defun lax-plist-get plist property -Like @code{plist-get} except that it compares properties -using @code{equal} instead of @code{eq}. -@end defun +@item menu-enable +The value is an expression for determining whether the named menu item +should be enabled in menus. @xref{Simple Menu Items}. -@defun lax-plist-put plist property value -Like @code{plist-put} except that it compares properties -using @code{equal} instead of @code{eq}. -@end defun +@item mode-class +If the value is @code{special}, the named major mode is ``special''. +@xref{Major Mode Conventions}. -@defun plist-member plist property -This returns non-@code{nil} if @var{plist} contains the given -@var{property}. Unlike @code{plist-get}, this allows you to distinguish -between a missing property and a property with the value @code{nil}. -The value is actually the tail of @var{plist} whose @code{car} is -@var{property}. -@end defun +@item permanent-local +If the value is non-@code{nil}, the named variable is a buffer-local +variable whose value should not be reset when changing major modes. +@xref{Creating Buffer-Local}. + +@item permanent-local-hook +If the value is non-@code{nil}, the named function should not be +deleted from the local value of a hook variable when changing major +modes. @xref{Setting Hooks}. + +@item pure +If the value is non-@code{nil}, the named function is considered to be +side-effect free. Calls with constant arguments can be evaluated at +compile time. This may shift run time errors to compile time. + +@item risky-local-variable +If the value is non-@code{nil}, the named variable is considered risky +as a file-local variable. @xref{File Local Variables}. + +@item safe-function +If the value is non-@code{nil}, the named function is considered +generally safe for evaluation. @xref{Function Safety}. + +@item safe-local-eval-function +If the value is non-@code{nil}, the named function is safe to call in +file-local evaluation forms. @xref{File Local Variables}. + +@item safe-local-variable +The value specifies a function for determining safe file-local values +for the named variable. @xref{File Local Variables}. + +@item side-effect-free +A non-@code{nil} value indicates that the named function is free of +side-effects, for determining function safety (@pxref{Function +Safety}) as well as for byte compiler optimizations. Do not set it. + +@item variable-documentation +If non-@code{nil}, this specifies the named variable's documentation +string. This is set automatically by @code{defvar} and related +functions. @xref{Defining Faces}. +@end table diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi index 624b5a92d6e..dfa121103bc 100644 --- a/doc/lispref/syntax.texi +++ b/doc/lispref/syntax.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Syntax Tables @chapter Syntax Tables @@ -115,7 +115,7 @@ its arguments (@pxref{Syntax Table Functions}). The first character in a syntax descriptor must be a syntax class designator character. The second character, if present, specifies a -matching character (e.g.@: in Lisp, the matching character for +matching character (e.g., in Lisp, the matching character for @samp{(} is @samp{)}); a space specifies that there is no matching character. Then come characters specifying additional syntax properties (@pxref{Syntax Flags}). @@ -397,7 +397,7 @@ non-@code{nil}, the parent of the new syntax table is @var{table}; otherwise, the parent is the standard syntax table. In the new syntax table, all characters are initially given the -``inherit'' (@samp{@@}) syntax class, i.e.@: their syntax is inherited +``inherit'' (@samp{@@}) syntax class, i.e., their syntax is inherited from the parent table (@pxref{Syntax Class Table}). @end defun @@ -418,7 +418,7 @@ between @var{min} and @var{max}, inclusive. The syntax is changed only for @var{table}, which defaults to the current buffer's syntax table, and not in any other syntax table. -The argument @var{syntax-descriptor} is a syntax descriptor, i.e.@: a +The argument @var{syntax-descriptor} is a syntax descriptor, i.e., a string whose first character is a syntax class designator and whose second and subsequent characters optionally specify a matching character and syntax flags. @xref{Syntax Descriptors}. An error is @@ -478,17 +478,17 @@ it easier to see the character returned by @code{char-syntax}.) @end group @group -;; Forward slash characters have punctuation syntax. Note that this -;; @code{char-syntax} call does not reveal that it is also part of -;; comment-start and -end sequences. +;; Forward slash characters have punctuation syntax. +;; Note that this @code{char-syntax} call does not reveal +;; that it is also part of comment-start and -end sequences. (string (char-syntax ?/)) @result{} "." @end group @group -;; Open parenthesis characters have open parenthesis syntax. Note -;; that this @code{char-syntax} call does not reveal that it has a -;; matching character, @samp{)}. +;; Open parenthesis characters have open parenthesis syntax. +;; Note that this @code{char-syntax} call does not reveal that +;; it has a matching character, @samp{)}. (string (char-syntax ?\()) @result{} "(" @end group @@ -506,7 +506,7 @@ This function returns the current syntax table, which is the table for the current buffer. @end defun -@defmac with-syntax-table @var{table} @var{body}@dots{} +@defmac with-syntax-table table body@dots{} This macro executes @var{body} using @var{table} as the current syntax table. It returns the value of the last form in @var{body}, after restoring the old current syntax table. @@ -628,7 +628,7 @@ expression prefix syntax class, and characters with the @samp{p} flag. expressions. We will refer to such expressions as @dfn{sexps}, following the terminology of Lisp, even though these functions can act on languages other than Lisp. Basically, a sexp is either a balanced -parenthetical grouping, a string, or a ``symbol'' (i.e.@: a sequence +parenthetical grouping, a string, or a ``symbol'' (i.e., a sequence of characters whose syntax is either word constituent or symbol constituent). However, characters in the expression prefix syntax class (@pxref{Syntax Class Table}) are treated as part of the sexp if @@ -998,7 +998,7 @@ corresponds to each syntax flag. @samp{4} @tab @code{(lsh 1 19)} @end multitable -@defun string-to-syntax @var{desc} +@defun string-to-syntax desc Given a syntax descriptor @var{desc} (a string), this function returns the corresponding raw syntax descriptor. @end defun diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 57df02b74a0..c6cbfa5b3f8 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Text @chapter Text @@ -224,7 +224,7 @@ through the filter functions specified by the wrapper hook @code{filter-buffer-substring-functions}, and returns the result. The obsolete variable @code{buffer-substring-filters} is also consulted. If both of these variables are @code{nil}, the value is the unaltered -text from the buffer, i.e.@: what @code{buffer-substring} would +text from the buffer, i.e., what @code{buffer-substring} would return. If @var{delete} is non-@code{nil}, this function deletes the text @@ -250,7 +250,7 @@ and returns a string. In both cases, the @var{start}, @var{end}, and @code{filter-buffer-substring}. The first hook function is passed a @var{fun} that is equivalent to -the default operation of @code{filter-buffer-substring}, i.e. it +the default operation of @code{filter-buffer-substring}, i.e., it returns the buffer-substring between @var{start} and @var{end} (processed by any @code{buffer-substring-filters}) and optionally deletes the original text from the buffer. In most cases, the hook @@ -3027,7 +3027,7 @@ specify a particular attribute for certain text. A list of faces. This specifies a face which is an aggregate of the attributes of each of the listed faces. Faces occurring earlier in the list have higher priority. Each list element must have one of the -two above forms (i.e.@: either a face name or a property list of face +two above forms (i.e., either a face name or a property list of face attributes). @end itemize @@ -3052,7 +3052,7 @@ between the character and where the mouse is have the same @code{mouse-face} property value. Emacs ignores all face attributes from the @code{mouse-face} property -that alter the text size (e.g. @code{:height}, @code{:weight}, and +that alter the text size (e.g., @code{:height}, @code{:weight}, and @code{:slant}). Those attributes are always the same as for the unhighlighted text. @@ -4071,7 +4071,7 @@ converting to and from this code. @deffn Command base64-encode-region beg end &optional no-line-break This function converts the region from @var{beg} to @var{end} into base 64 code. It returns the length of the encoded text. An error is -signaled if a character in the region is multibyte, i.e.@: in a +signaled if a character in the region is multibyte, i.e., in a multibyte buffer the region must contain only characters from the charsets @code{ascii}, @code{eight-bit-control} and @code{eight-bit-graphic}. @@ -4119,7 +4119,7 @@ The decoding functions ignore newline characters in the encoded text. Emacs has built-in support for computing @dfn{cryptographic hashes}. A cryptographic hash, or @dfn{checksum}, is a digital ``fingerprint'' -of a piece of data (e.g.@: a block of text) which can be used to check +of a piece of data (e.g., a block of text) which can be used to check that you have an unaltered copy of that data. @cindex message digest @@ -4127,7 +4127,7 @@ that you have an unaltered copy of that data. SHA-1, SHA-2, SHA-224, SHA-256, SHA-384 and SHA-512. MD5 is the oldest of these algorithms, and is commonly used in @dfn{message digests} to check the integrity of messages transmitted over a -network. MD5 is not ``collision resistant'' (i.e.@: it is possible to +network. MD5 is not ``collision resistant'' (i.e., it is possible to deliberately design different pieces of data which have the same MD5 hash), so you should not used it for anything security-related. A similar theoretical weakness also exists in SHA-1. Therefore, for @@ -4344,7 +4344,7 @@ This variable holds a list of functions to call after any buffer modification. Each function receives three arguments: the beginning and end of the region just changed, and the length of the text that existed before the change. All three arguments are integers. The -buffer has been changed is always the current buffer. +buffer that has been changed is always the current buffer. The length of the old text is the difference between the buffer positions before and after that text as it was before the change. As diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index bba416d5614..4c443da3af8 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Tips @appendix Tips and Conventions @@ -758,7 +758,7 @@ describe the most important commands in your major mode, and then use @item For consistency, phrase the verb in the first sentence of a function's documentation string as an imperative---for instance, use ``Return the -cons of A and B.'' in preference to ``Returns the cons of A and B@.'' +cons of A and B.@:'' in preference to ``Returns the cons of A and B@.'' Usually it looks good to do likewise for the rest of the first paragraph. Subsequent paragraphs usually look better if each sentence is indicative and has a proper subject. @@ -785,7 +785,7 @@ defun (@pxref{Defuns,, Defuns, emacs, The GNU Emacs Manual}). @item Write documentation strings in the active voice, not the passive, and in the present tense, not the future. For instance, use ``Return a list -containing A and B.'' instead of ``A list containing A and B will be +containing A and B.@:'' instead of ``A list containing A and B will be returned.'' @item @@ -934,7 +934,7 @@ explains these conventions, starting with an example: @group ;;; foo.el --- Support for the Foo programming language -;; Copyright (C) 2010-2012 Your Name +;; Copyright (C) 2010-2013 Your Name @end group ;; Author: Your Name @@ -942,6 +942,7 @@ explains these conventions, starting with an example: ;; Created: 14 Jul 2010 @group ;; Keywords: languages +;; Homepage: http://example.com/foo ;; This file is not part of GNU Emacs. @@ -980,8 +981,7 @@ the conventional possibilities for @var{header-name}: @item Author This line states the name and email address of at least the principal author of the library. If there are multiple authors, list them on -continuation lines led by @code{;;} and whitespace (this is easier -for tools to parse than having more than one author on one line). +continuation lines led by @code{;;} and a tab or at least two spaces. We recommend including a contact email address, of the form @samp{<@dots{}>}. For example: @@ -1028,6 +1028,9 @@ The name of this field is unfortunate, since people often assume it is the place to write arbitrary keywords that describe their package, rather than just the relevant Finder keywords. +@item Homepage +This line states the homepage of the library. + @item Package-Version If @samp{Version} is not suitable for use by the package manager, then a package can define @samp{Package-Version}; it will be used instead. @@ -1063,6 +1066,7 @@ names---they have no standard meanings, so they can't do any harm. library file. These should be separated from anything else by blank lines. Here is a table of them: +@cindex commentary, in a Lisp library @table @samp @item ;;; Commentary: This begins introductory comments that explain how the library works. diff --git a/doc/lispref/two-volume-cross-refs.txt b/doc/lispref/two-volume-cross-refs.txt index 67b5dbf89a3..a134b8c4783 100644 --- a/doc/lispref/two-volume-cross-refs.txt +++ b/doc/lispref/two-volume-cross-refs.txt @@ -1,4 +1,4 @@ -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2013 Free Software Foundation, Inc. See end for copying conditions. Two Volume Cross References diff --git a/doc/lispref/two-volume.make b/doc/lispref/two-volume.make index eb5c0e0193d..9ae4a33df44 100644 --- a/doc/lispref/two-volume.make +++ b/doc/lispref/two-volume.make @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2012 Free Software Foundation, Inc. +# Copyright (C) 2007-2013 Free Software Foundation, Inc. # See end for copying conditions. # although it would be nice to use tex rather than pdftex to avoid diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index dfde3c45c04..4bcf7985f0c 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-2013 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Variables @chapter Variables @@ -171,7 +171,7 @@ binding is no longer in effect, the previously shadowed value (or lack of one) comes back. @cindex current binding - A variable can have more than one local binding at a time (e.g.@: if + A variable can have more than one local binding at a time (e.g., if there are nested @code{let} forms that bind the variable). The @dfn{current binding} is the local binding that is actually in effect. It determines the value returned by evaluating the variable symbol, @@ -302,7 +302,7 @@ If a variable is void, trying to evaluate the variable signals a @code{void-variable} error rather than a value. Under lexical binding rules, the value cell only holds the -variable's global value, i.e.@: the value outside of any lexical +variable's global value, i.e., the value outside of any lexical binding construct. When a variable is lexically bound, the local value is determined by the lexical environment; the variable may have a local value if its symbol's value cell is unassigned. @@ -416,7 +416,7 @@ explicitly in the @code{defvar} form. The variable is marked as If @var{symbol} is void and @var{value} is specified, @code{defvar} evaluates @var{value} and sets @var{symbol} to the result. But if -@var{symbol} already has a value (i.e.@: it is not void), @var{value} +@var{symbol} already has a value (i.e., it is not void), @var{value} is not even evaluated, and @var{symbol}'s value remains unchanged. If @var{value} is omitted, the value of @var{symbol} is not changed in any case. @@ -841,9 +841,9 @@ The function @code{getx} refers to @code{x}. This is a ``free'' reference, in the sense that there is no binding for @code{x} within that @code{defun} construct itself. When we call @code{getx} from within a @code{let} form in which @code{x} is (dynamically) bound, it -retrieves the local value of @code{x} (i.e.@: 1). But when we call +retrieves the local value of @code{x} (i.e., 1). But when we call @code{getx} outside the @code{let} form, it retrieves the global value -of @code{x} (i.e.@: -99). +of @code{x} (i.e., -99). Here is another example, which illustrates setting a dynamically bound variable using @code{setq}: @@ -888,7 +888,7 @@ technique: @itemize @bullet @item If a variable has no global definition, use it as a local variable -only within a binding construct, e.g.@: the body of the @code{let} +only within a binding construct, e.g., the body of the @code{let} form where the variable was bound, or the body of the function for an argument variable. If this convention is followed consistently throughout a program, the value of the variable will not affect, nor @@ -905,7 +905,7 @@ to avoid name conflicts (@pxref{Coding Conventions}). Then you can bind the variable anywhere in a program, knowing reliably what the effect will be. Wherever you encounter the variable, it will -be easy to refer back to the definition, e.g.@: via the @kbd{C-h v} +be easy to refer back to the definition, e.g., via the @kbd{C-h v} command (provided the variable definition has been loaded into Emacs). @xref{Name Help,,, emacs, The GNU Emacs Manual}. @@ -1015,7 +1015,7 @@ binding of @code{x} in that lexical environment. Note that functions like @code{symbol-value}, @code{boundp}, and @code{set} only retrieve or modify a variable's dynamic binding -(i.e.@: the contents of its symbol's value cell). Also, the code in +(i.e., the contents of its symbol's value cell). Also, the code in the body of a @code{defun} or @code{defmacro} cannot refer to surrounding lexical variables. @@ -1057,9 +1057,9 @@ variables}. Every variable that has been defined with @code{defvar}, (@pxref{Defining Variables}). All other variables are subject to lexical binding. -@defun special-variable-p SYMBOL +@defun special-variable-p symbol This function returns non-@code{nil} if @var{symbol} is a special -variable (i.e.@: it has a @code{defvar}, @code{defcustom}, or +variable (i.e., it has a @code{defvar}, @code{defcustom}, or @code{defconst} variable definition). Otherwise, the return value is @code{nil}. @end defun @@ -1423,7 +1423,6 @@ disappear after doing its job and will not interfere with the subsequent major mode. @xref{Hooks}. @end defvar -@c Emacs 19 feature @cindex permanent local variable A buffer-local variable is @dfn{permanent} if the variable name (a symbol) has a @code{permanent-local} property that is non-@code{nil}. @@ -1557,7 +1556,7 @@ an ordinary evaluated argument. A file can specify local variable values; Emacs uses these to create buffer-local bindings for those variables in the buffer visiting that -file. @xref{File variables, , Local Variables in Files, emacs, The +file. @xref{File Variables, , Local Variables in Files, emacs, The GNU Emacs Manual}, for basic information about file-local variables. This section describes the functions and variables that affect how file-local variables are processed. @@ -1933,7 +1932,7 @@ foo Ordinary Lisp variables can be assigned any value that is a valid Lisp object. However, certain Lisp variables are not defined in Lisp, -but in C. Most of these variables are defined in the C code using +but in C@. Most of these variables are defined in the C code using @code{DEFVAR_LISP}. Like variables defined in Lisp, these can take on any value. However, some variables are defined using @code{DEFVAR_INT} or @code{DEFVAR_BOOL}. @xref{Defining Lisp @@ -2024,7 +2023,7 @@ car elt symbol-plist caar get symbol-value cadr gethash cdr nth -cdar nthcdr +cdar nthcdr @end smallexample @item diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 7622fcfd233..792002add81 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Windows @chapter Windows @@ -100,7 +100,7 @@ the window tree are @dfn{internal windows}, which are not live. @cindex valid windows A @dfn{valid window} is one that is either live or internal. A valid -window can be @dfn{deleted}, i.e. removed from its frame +window can be @dfn{deleted}, i.e., removed from its frame (@pxref{Deleting Windows}); then it is no longer valid, but the Lisp object representing it might be still referenced from other Lisp objects. A deleted window may be made valid again by restoring a saved @@ -203,7 +203,7 @@ windows that share the same parent are called @dfn{siblings}. This function returns the parent window of @var{window}. If @var{window} is omitted or @code{nil}, it defaults to the selected window. The return value is @code{nil} if @var{window} has no parent -(i.e. it is a minibuffer window or the root window of its frame). +(i.e., it is a minibuffer window or the root window of its frame). @end defun Each internal window always has at least two child windows. If this @@ -456,14 +456,14 @@ window has any adjacent windows. @defun window-full-height-p &optional window This function returns non-@code{nil} if @var{window} has no other -window above or below it in its frame, i.e. its total height equals +window above or below it in its frame, i.e., its total height equals the total height of the root window on that frame. If @var{window} is omitted or @code{nil}, it defaults to the selected window. @end defun @defun window-full-width-p &optional window This function returns non-@code{nil} if @var{window} has no other -window to the left or right in its frame, i.e. its total width equals +window to the left or right in its frame, i.e., its total width equals that of the root window on that frame. If @var{window} is omitted or @code{nil}, it defaults to the selected window. @end defun @@ -635,7 +635,7 @@ cannot be moved as far as specified by @var{delta}, this function moves it as far as possible but does not signal a error. This function tries to resize windows adjacent to the edge that is -moved. If this is not possible for some reason (e.g. if that adjacent +moved. If this is not possible for some reason (e.g., if that adjacent window is fixed-size), it may resize other windows. @end defun @@ -872,7 +872,7 @@ Configurations}). This function removes @var{window} from display and returns @code{nil}. If @var{window} is omitted or @code{nil}, it defaults to the selected window. If deleting the window would leave no more -windows in the window tree (e.g. if it is the only live window in the +windows in the window tree (e.g., if it is the only live window in the frame), an error is signaled. By default, the space taken up by @var{window} is given to one of its @@ -1296,10 +1296,12 @@ windows. @cindex selecting a window @defun select-window window &optional norecord -This function makes @var{window} the selected window, as well as the -window selected within its frame (@pxref{Basic Windows}). @var{window} -must be a live window. This function makes also @var{window}'s buffer -current (@pxref{Buffers and Windows}). The return value is +This function makes @var{window} the selected window and the window +selected within its frame (@pxref{Basic Windows}) and selects that +frame. @var{window} must be a live window. This function also makes +@var{window}'s buffer (@pxref{Buffers and Windows}) current and sets +that buffer's value of @code{point} to the value of @code{window-point} +(@pxref{Window Point}) in @var{window}. The return value is @var{window}. By default, this function also moves @var{window}'s buffer to the front @@ -1859,13 +1861,13 @@ Action Functions}. @defvar display-buffer-overriding-action The value of this variable should be a display action, which is treated with the highest priority by @code{display-buffer}. The -default value is empty, i.e. @code{(nil . nil)}. +default value is empty, i.e., @code{(nil . nil)}. @end defvar @defopt display-buffer-alist The value of this option is an alist mapping conditions to display actions. Each condition may be either a regular expression matching a -buffer name or a function that takes two arguments - a buffer name and +buffer name or a function that takes two arguments: a buffer name and the @var{action} argument passed to @code{display-buffer}. If the name of the buffer passed to @code{display-buffer} either matches a regular expression in this alist or the function specified by a condition @@ -1966,7 +1968,7 @@ height of the frame's root window. @item If the @sc{cdr} specifies a function, that function is called with one -argument - the new window. The function is supposed to adjust the +argument: the new window. The function is supposed to adjust the height of the window; its return value is ignored. Suitable functions are @code{shrink-window-if-larger-than-buffer} and @code{fit-window-to-buffer}, see @ref{Resizing Windows}. @@ -1987,12 +1989,12 @@ width of the frame's root window. @item If the @sc{cdr} specifies a function, that function is called with one -argument - the new window. The function is supposed to adjust the width +argument: the new window. The function is supposed to adjust the width of the window; its return value is ignored. @end itemize This function can fail if no window splitting can be performed for some -reason (e.g. if the selected frame has an @code{unsplittable} frame +reason (e.g., if the selected frame has an @code{unsplittable} frame parameter; @pxref{Buffer Parameters}). @end defun @@ -3052,10 +3054,11 @@ pixels. In this case, the return value is @var{lines}. @end defun @defvar auto-window-vscroll -If this variable is non-@code{nil}, the line-move, scroll-up, and -scroll-down functions will automatically modify the vertical scroll -position to scroll through display rows that are taller than the height -of the window, for example in the presence of large images. +If this variable is non-@code{nil}, the @code{line-move}, +@code{scroll-up}, and @code{scroll-down} functions will automatically +modify the vertical scroll position to scroll through display rows +that are taller than the height of the window, for example in the +presence of large images. @end defvar @node Horizontal Scrolling @@ -3101,7 +3104,7 @@ left edge. the horizontal scrolling of a window as necessary to ensure that point is always visible. However, you can still set the horizontal scrolling value explicitly. The value you specify serves as a lower -bound for automatic scrolling, i.e. automatic scrolling will not +bound for automatic scrolling, i.e., automatic scrolling will not scroll a window to a column less than the specified one. @deffn Command scroll-left &optional count set-minimum @@ -3218,7 +3221,7 @@ this case Emacs itself draws the tool bar). In both cases, the X and Y coordinates increase rightward and downward respectively. Except where noted, X and Y coordinates are reported in integer -character units, i.e. numbers of lines and columns respectively. On a +character units, i.e., numbers of lines and columns respectively. On a graphical display, each ``line'' and ``column'' corresponds to the height and width of a default character specified by the frame's default font. @@ -3616,10 +3619,10 @@ This parameter is installed by the buffer display functions (@pxref{Choosing Window}) and consulted by @code{quit-restore-window} (@pxref{Quitting Windows}). It contains four elements: -The first element is one of the symbols @code{window} - meaning that the -window has been specially created by @code{display-buffer}, @code{frame} -- a separate frame has been created, @code{same} - the window has -displayed the same buffer before, or @code{other} - the window showed +The first element is one of the symbols @code{window}, meaning that the +window has been specially created by @code{display-buffer}; @code{frame}, +a separate frame has been created; @code{same}, the window has +displayed the same buffer before; or @code{other}, the window showed another buffer before. The second element is either one of the symbols @code{window} or diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog index cc54cd254b5..8a2a90f7895 100644 --- a/doc/man/ChangeLog +++ b/doc/man/ChangeLog @@ -1,3 +1,7 @@ +2012-12-02 Kevin Ryde + + * etags.1: Mention effect of --declarations in Lisp. + 2012-06-03 Glenn Morris * rcs-checkin.1: Remove. @@ -140,7 +144,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2007-2012 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/man/ebrowse.1 b/doc/man/ebrowse.1 index 84f1ef1dd9b..89506db98ef 100644 --- a/doc/man/ebrowse.1 +++ b/doc/man/ebrowse.1 @@ -85,7 +85,7 @@ was written by Gerd Moellmann. Copyright .if t \(co .if n (C) -2008-2012 Free Software Foundation, Inc. +2008-2013 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/doc/man/emacs.1 b/doc/man/emacs.1 index 46bda023b5a..3d0c5107adc 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1 @@ -642,7 +642,7 @@ For detailed credits and acknowledgments, see the GNU Emacs manual. Copyright .if t \(co .if n (C) -1995, 1999-2012 Free Software Foundation, Inc. +1995, 1999-2013 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/doc/man/etags.1 b/doc/man/etags.1 index a1291829665..5ccf528868b 100644 --- a/doc/man/etags.1 +++ b/doc/man/etags.1 @@ -88,6 +88,7 @@ Only \fBctags\fP accepts this option. .B \-\-declarations In C and derived languages, create tags for function declarations, and create tags for extern variables unless \-\-no\-globals is used. +In Lisp, create tags for (defvar foo) declarations. .TP .B \-D, \-\-no\-defines Do not create tag entries for C preprocessor constant definitions @@ -146,7 +147,7 @@ of \- means standard output; overrides default \fBTAGS\fP or \fBtags\fP. Make tags based on regexp matching for the files following this option, in addition to the tags made with the standard parsing based on language. May be freely intermixed with filenames and the \fB\-R\fP -option. The regexps are cumulative, i.e. each such option will add to +option. The regexps are cumulative, i.e., each such option will add to the previous ones. The regexps are of one of the forms: .br [\fB{\fP\fIlanguage\fP\fB}\fP]\fB/\fP\fItagregexp/\fP[\fInameregexp\fP\fB/\fP]\fImodifiers\fP @@ -267,7 +268,7 @@ Stallman. Copyright .if t \(co .if n (C) -1992, 1999, 2001-2012 Free Software Foundation, Inc. +1992, 1999, 2001-2013 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are @@ -282,4 +283,3 @@ Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. - diff --git a/doc/man/grep-changelog.1 b/doc/man/grep-changelog.1 index 397e6493343..ef4b2900988 100644 --- a/doc/man/grep-changelog.1 +++ b/doc/man/grep-changelog.1 @@ -62,7 +62,7 @@ Display basic usage information. Copyright .if t \(co .if n (C) -2008-2012 Free Software Foundation, Inc. +2008-2013 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 92eda67599f..3e9bcaf1f3e 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,468 @@ +2013-03-18 Michael Albinus + + * tramp.texi (Filename Syntax): Host names are not allowed to be + any method name, unless method name is specified explicitly. + Remove restriction on unibyte filenames. + + * trampver.texi: Update release number. + +2013-03-17 Paul Eggert + + doc: convert some TeX accents to UTF-8 + * emacs-mime.texi (Interface Functions): Use 'ï' rather than + '@"{@dotless{i}}'. + +2013-03-15 Michael Albinus + + Sync with Tramp 2.2.7. + + * trampver.texi: Update release number. + +2013-03-09 Jay Belanger + + * calc.texi (Basic Operations on Units): Streamline some + descriptions. + +2013-03-08 Glenn Morris + + * faq.texi (Top): Don't say this was updated @today. + That's irrelevant and leads to spurious diffs. + +2013-03-08 Jay Belanger + + * calc.texi (Basic Operations on Units): Fix + cross-reference. + +2013-03-07 Katsumi Yamaoka + + * gnus-faq.texi (FAQ 3-11): Now Gnus supports POP3 UIDL. + +2013-03-06 Alan Mackenzie + + * cc-mode.texi (Custom Line-Up): Clarify position of point on + calling a line-up function. + +2013-03-04 Paul Eggert + + * emacs-mime.texi, htmlfontify.texi, mairix-el.texi, mh-e.texi: + * ses.texi: Switch from Latin-1 to UTF-8. + +2013-03-03 Michael Albinus + + * tramp.texi (External methods): Tramp does not connect Android + devices by itself. + +2013-03-02 Bill Wohler + + Release MH-E manual version 8.5. + + * mh-e.texi (VERSION, EDITION, UPDATED, UPDATE-MONTH): Update for + release 8.5. + + * mh-e.texi (Preface, Conventions, Getting Started) + (Using This Manual, Folder Selection, Viewing, Aliases) + (Identities, Speedbar, Menu Bar, Tool Bar, Scan Line Formats) + (Bug Reports, Mailing Lists, MH FAQ and Support, Getting MH-E): + Update URLs. + +2013-03-01 Michael Albinus + + * tramp.texi (Inline methods): Remove "ssh1", "ssh2", "plink1" + and "plink2" entries. "plink2" is obsolete for a long time. + (External methods): Remove "scp1" and "scp2" entries. Explain + user name and host name specification for "adb". + +2013-02-28 Michael Albinus + + * tramp.texi (External methods): Mention `tramp-adb-program'. + +2013-02-28 Bastien Guerry + + * org.texi (Visibility cycling): Suggest to set + `org-agenda-inhibit-startup' to nil if user wants the startup + visibility settings to be honored in any circumstances. + (Progress logging, Checkboxes): Fix typos. + +2013-02-28 Michael Albinus + + * tramp.texi (top) [xxx, yyy, trampfn]: Provide two versions of + the macros, for Texinfo 4.13 and 5.0. + +2013-02-24 Michael Albinus + + Port Tramp documentation to Texinfo 5.0. + * tramp.texi (top) [xxx, yyy, trampfn]: Remove superfluous @c. + (Filename Syntax): Do not use @trampfn{} in @item. + (Filename completion): Use @columnfractions in @multitable. + +2013-02-22 Glenn Morris + + * flymake.texi (Syntax check statuses): Fix multitable continued rows. + +2013-02-21 Paul Eggert + + * Makefile.in (html): New rule. + +2013-02-20 Michael Albinus + + * tramp.texi (Android shell setup): Improve. Reported by Thierry + Volpiatto . + +2013-02-16 Michael Albinus + + * tramp.texi (Top, Configuration): Insert section `Android shell + setup' in menu. + (Android shell setup): New section. + (Connection types, Default Method) + (Frequently Asked Questions): Mention "scp" instead of "scpc". + (External methods): Remove "scpc" and "rsyncc" entries. + (Frequently Asked Questions): Remove entry about ControlPersist. + +2013-02-13 Glenn Morris + + * message.texi (News Headers): Don't mention yow any more. + +2013-02-09 Jay Belanger + + * calc.texi (Basic Operations on Units): + (Customizing Calc): Mention the variable `calc-allow-units-as-numbers'. + +2013-02-08 Aidan Gauland + + * eshell.texi: Fill most of the missing sections. + +2013-02-07 Bastien Guerry + + * org.texi (References): Clarify an example. + (Installation): Fix instructions. + (Org-Plot): Fix link. + (Checkboxes, Radio lists): Fix typos. + +2013-02-07 Glenn Morris + + * cl.texi (Equality Predicates): Mention memql. + +2013-02-07 Eric Ludlam + + * doc/misc/ede.texi (Creating a project): Make ede-new doc less + specific, and only about items it supports, indicating that there + might be more. Remove refs to simple project and direct automake + from ede new. + (Simple projects): Re-write to not talk about ede-simple-project + which is deprecated, and instead use the term to mean projects + that don't do much management, just project wrapping. Add + ede-generic-project link. + (ede-generic-project): New node (bug#11441). + +2013-02-07 Glenn Morris + + * cl.texi (Equality Predicates): Fix eq/eql pedantry. + +2013-02-01 Glenn Morris + + * calc.texi (Help Commands): Update calc-view-news description. + Mention etc/CALC-NEWS. + +2013-01-24 Michael Albinus + + * tramp.texi (Filename Syntax): Filenames must be unibyte strings. + +2013-01-13 Bastien Guerry + + * org.texi (Installation): Simplify. + +2013-01-13 François Allisson (tiny change) + + * org.texi (Handling links): Update the mention to the obsolete + variable `org-link-to-org-use-id' with a mention to the newer + variable `org-id-link-to-org-use-id'. Mention the need to load + the org-id library. + +2013-01-10 Michael Albinus + + * tramp.texi (Default Host): Introduce `tramp-default-host-alist'. + +2013-01-09 Bastien Guerry + + * org.texi (Pushing to MobileOrg): Add footnote about using + symbolic links in `org-directory'. + (Timestamps, Deadlines and scheduling): Use `diary-float' instead + of the now obsolete alias `org-float'. + (TODO basics): Add `org-use-fast-todo-selection' to the variable + index. Fix description of TODO keywords cycling. + (Advanced features): Add missing argument for @item. + (Storing searches): Add index entries and a note about + *-tree agenda views. + (Structure editing): Document `org-mark-element' and + `org-mark-subtree'. + (Tag inheritance): Document `org-agenda-use-tag-inheritance'. + +2013-01-08 Juri Linkov + + * info.texi (Go to node): Mention the abbreviated format + `(FILENAME)' equal to `(FILENAME)Top'. (Bug#13365) + +2013-01-06 Andreas Schwab + + * autotype.texi: Remove undefined command @subtitlefont. + * cc-mode.texi: Likewise. + + * org.texi (Advanced features): Use `@w{ }' instead of `@ ' in + @item argument. + (Property searches): Use \\ instead of @backslashchar{}. + * pgg.texi (VERSION): Move @set below @setfilename. + +2013-01-05 Andreas Schwab + + * ada-mode.texi: Remove braces from @title argument. + * eudc.texi: Likewise. + * smtpmail.texi: Likewise. + * auth.texi (VERSION): Set before first use. + * emacs-gnutls.texi (VERSION): Likewise. + * pgg.texi (VERSION): Likewise. + * ede.texi (Top): Rename from top, all uses changed. + * eshell.texi: Add missing argument to @sp. + * forms.texi (Top): Reorder menu to match structure. + * htmlfontify.texi (Customisation): Add missing @item in + @enumerate. + * org.texi (Advanced features): Add missing argument for @item. + (Property searches): Use @backslashchar{} in macro argument. + * pcl-cvs.texi: Add missing argument to @sp. + (Movement commands): Fix use of @itemx. + * vip.texi (Misc Commands, Viewing the Buffer): Likewise. + * reftex.texi (Options (Creating Citations)): Add missing newline + before @end. + * tramp.texi (Obtaining Tramp): Remove extra dots. + (Configuration): Reorder menu to match structure. + (Remote shell setup): Replace literal NUL character by \0. + * viper.texi (Marking): Add missing argument for @item. + +2013-01-04 Glenn Morris + + * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): + Add htmlfontify. + (htmlfontify, $(buildinfodir)/htmlfontify$(INFO_EXT)) + (htmlfontify.dvi, htmlfontify.pdf): New targets. + * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add htmlfontify. + ($(infodir)/htmlfontify$(INFO_EXT), htmlfontify.dvi): New targets. + + * htmlfontify.texi: Miscellaneous fixes and updates. + Set copyright to FSF, update license to GFDL 1.3+. + +2013-01-04 Vivek Dasmohapatra + + * htmlfontify.texi: New file. + +2013-01-02 Jay Belanger + + * calc.texi (Free-Form Dates): Expand on the date reading + algorithm. + +2012-12-27 Glenn Morris + + * viper.texi (Rudimentary Changes, Key Bindings, Key Bindings): + Avoid some overfull lines. + + * widget.texi (Programming Example): Break some long lines. + + * wisent.texi (Wisent Overview): Fix xref. + (Grammar format, Understanding the automaton): Avoid overfill. + + * bovine.texi (Optional Lambda Expression): Allow line break. + + * auth.texi (Help for users): Break long lines. + + * ada-mode.texi (Project file variables): + Reword to reduce underfull hbox. + (No project files, Use GNAT project file): + Use smallexample to make some overfull lines less terrible. + + * autotype.texi, bovine.texi, ede.texi, eieio.texi, pcl-cvs.texi: + Fix cross-references to separate manuals. + + * Makefile.in (gfdl): New variable. Use throughout where + appropriate so that targets depend on doclicense.texi. + +2012-12-25 Lars Ingebrigtsen + + * gnus.texi (Customizing the IMAP Connection): Mention the other + authenticators. + +2012-12-24 Lars Ingebrigtsen + + * gnus.texi (Browse Foreign Server): Document + `gnus-browse-delete-group'. + +2012-12-22 Glenn Morris + + * ada-mode.texi, ebrowse.texi, ediff.texi, ert.texi, eshell.texi: + * eudc.texi, idlwave.texi, pcl-cvs.texi, rcirc.texi, reftex.texi: + * remember.texi, ses.texi, speedbar.texi, vip.texi, viper.texi: + * widget.texi, wisent.texi: Nuke hand-written node pointers. + + * Makefile.in (gfdl): New variable. Use throughout where + appropriate so that targets depend on doclicense.texi. + +2012-12-22 Eli Zaretskii + + * makefile.w32-in ($(INFO_TARGETS), $(DVI_TARGETS)): Depend on + doclicense.texi. Remove doclicense.texi from all targets that + mentioned it explicitly. + ($(infodir)/woman$(INFO_EXT), woman.dvi): Depend on + $(emacsdir)/emacsver.texi. + ($(infodir)/erc$(INFO_EXT), erc.dvi): Don't depend on gpl.texi. + +2012-12-21 Glenn Morris + + * woman.texi (UPDATED, VERSION): Remove in favor of EMACSVER. + Include emacsver.texi. Nuke hand-written node pointers. + * Makefile.in ($(buildinfodir)/woman$(INFO_EXT), woman.dvi, woman.pdf): + Depend on emacsver.texi. + + * auth.texi, emacs-gnutls.texi, epa.texi, ert.texi: + * gnus-coding.texi, info.texi, nxml-mode.texi, sasl.texi: + May as well just include doclicense.texi in everything. + + * ede.texi, eieio.texi, mairix-el.texi: Include a copy of GFDL, + which @copying says is included. + + * ada-mode.texi, auth.texi, autotype.texi, bovine.texi, calc.texi: + * cc-mode.texi, cl.texi, dbus.texi, dired-x.texi, ebrowse.texi: + * ede.texi, ediff.texi, edt.texi, eieio.texi, emacs-gnutls.texi: + * emacs-mime.texi, epa.texi, erc.texi, ert.texi, eshell.texi: + * eudc.texi, flymake.texi, forms.texi, gnus-coding.texi, gnus.texi: + * idlwave.texi, info.texi, mairix-el.texi, message.texi, mh-e.texi: + * newsticker.texi, nxml-mode.texi, pcl-cvs.texi, pgg.texi: + * rcirc.texi, reftex.texi, remember.texi, sasl.texi, sc.texi: + * semantic.texi, ses.texi, sieve.texi, smtpmail.texi, speedbar.texi: + * srecode.texi, tramp.texi, url.texi, vip.texi, viper.texi: + * widget.texi, wisent.texi, woman.texi: Do not mention buying + copies from the FSF, which does not publish these manuals. + + * erc.texi: No need to include gpl in this small manual. + + * org.texi (copying): Include a copy of the GFDL. + (GNU Free Documentation License): New section. + +2012-12-21 Bastien Guerry + + * org.texi: Fix typos. + +2012-12-16 Paul Eggert + + * calc.texi (ISO 8601): Rename from ISO-8601, + as it's typically spelled without a hyphen. + +2012-12-16 Jay Belanger + + * calc.texi (ISO-8601): New section. + (Date Formatting Codes): Mention new codes. + (Standard Date Formats): Mention new formats. + +2012-12-14 Michael Albinus + + * tramp.texi (External methods): Move `adb' method here. + +2012-12-13 Glenn Morris + + * cl.texi (Modify Macros, Obsolete Macros): Now letf == cl-letf. + + * wisent.texi: Small edits. Set copyright to FSF, update license to + GFDL 1.3+. + * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add wisent. + (wisent, $(buildinfodir)/wisent$(INFO_EXT), wisent.dvi, wisent.pdf): + New targets. + * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add wisent. + ($(infodir)/wisent$(INFO_EXT), wisent.dvi): New targets. + + * bovine.texi: Small edits. Set copyright to FSF, update license to + GFDL 1.3+, remove empty index. + * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add bovine. + (bovine, $(buildinfodir)/bovine$(INFO_EXT), bovine.dvi, bovine.pdf): + New targets. + * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add bovine. + ($(infodir)/bovine$(INFO_EXT), bovine.dvi): New targets. + +2012-12-13 Eric Ludlam + David Ponce + Richard Kim + + * bovine.texi, wisent.texi: New files, imported from CEDET trunk. + +2012-12-13 Glenn Morris + + * flymake.texi (Customizable variables, Locating the buildfile): + Remove refs to flymake-buildfile-dirs, removed 2007-07-20. (Bug#13148) + + * srecode.texi: Small edits. Set copyright to FSF, add explicit + GFDL 1.3+ license, fix up index. + * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add srecode. + (srecode, $(buildinfodir)/srecode$(INFO_EXT), srecode.dvi) + (srecode.pdf): New targets. + * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add srecode. + ($(infodir)/srecode$(INFO_EXT), srecode.dvi): New targets. + +2012-12-13 Eric Ludlam + + * srecode.texi: New file, imported from CEDET trunk. + +2012-12-13 Bastien Guerry + + * org.texi (Summary, Code block specific header arguments) + (Code block specific header arguments) + (Header arguments in function calls, var, noweb) + (Results of evaluation, Code evaluation security): + Small reformatting: add a blank line before some example. + + * org.texi (System-wide header arguments) + (Header arguments in Org mode properties, Conflicts) + (Dynamic blocks, Using the mapping API): + Fix indentation of Elisp code examples. + + * org.texi (Comment lines): Fix description of the comment syntax. + + * org.texi (Installation): Mention "make test" in the correct section. + +2012-12-06 Paul Eggert + + * doclicense.texi, gpl.texi: Update to latest version from FSF. + These are just minor editorial changes. + +2012-12-04 Michael Albinus + + * tramp.texi (History): Mention ADB. + (Inline methods): Add `adb' method. + +2012-12-03 Michael Albinus + + * tramp.texi (Top, Obtaining Tramp): Replace CVS by Git. + (External methods): Fix typo. + +2012-12-03 Glenn Morris + + * rcirc.texi (Notices): Fix typo. + +2012-11-25 Bill Wohler + + Release MH-E manual version 8.4. + + * mh-e.texi: (VERSION, EDITION, UPDATED, UPDATE-MONTH, Preface): + Update for release 8.4. + + * mh-e.texi (Sequences): Add mh-whitelist-preserves-sequences-flag. + (Junk): Add mh-whitelist-preserves-sequences-flag, + mh-blacklist-msg-hook, mh-whitelist-msg-hook, + mh-folder-blacklisted, mh-folder-whitelisted (closes SF #2945712). + +2012-11-25 Paul Eggert + + * mh-e.texi (Procmail): Fix two @ typos. + +2012-11-24 Paul Eggert + + * doclicense.texi, gpl.texi: Update to latest version from FSF. + These are just minor editorial changes. + 2012-11-23 Jay Belanger * calc.texi (Date Formatting Codes): Mention the new beginning of @@ -325,7 +790,7 @@ * org.texi (Moving subtrees): Document the ability to archive to a datetree. -2012-09-30 Bastien Guerry +2012-09-30 Bastien Guerry * org.texi (Installation, Feedback, Batch execution): Use (add-to-list 'load-path ... t) for the contrib dir. @@ -931,7 +1396,7 @@ * org.texi: Edit :noweb no header argument for correctness. -2012-04-01 Bastien Guerry +2012-04-01 Bastien Guerry * org.texi (Customization): Update the approximate number of Org variables. @@ -9702,7 +10167,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index ea1e87333bd..add1b42a545 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -1,6 +1,6 @@ #### Makefile for documentation other than the Emacs manual. -# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1994, 1996-2013 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -27,7 +27,6 @@ srcdir=@srcdir@ ## Where the output files go. buildinfodir = $(srcdir)/../../info ## Directory with emacsver.texi. -## Currently only used by efaq and calc. emacsdir = $(srcdir)/../emacs MKDIR_P = @MKDIR_P@ @@ -41,19 +40,20 @@ INFO_OPTS=@INFO_OPTS@ MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I$(emacsdir) -INFO_TARGETS = ada-mode auth autotype calc ccmode cl \ +INFO_TARGETS = ada-mode auth autotype bovine calc ccmode cl \ dbus dired-x ebrowse ede ediff edt eieio \ emacs-mime epa erc ert eshell eudc efaq \ - flymake forms gnus emacs-gnutls idlwave info.info \ + flymake forms gnus emacs-gnutls htmlfontify idlwave info.info \ mairix-el message mh-e newsticker nxml-mode \ org pcl-cvs pgg rcirc remember reftex sasl \ - sc semantic ses sieve smtpmail speedbar tramp \ - url vip viper widget woman + sc semantic ses sieve smtpmail speedbar srecode tramp \ + url vip viper widget wisent woman DVI_TARGETS = \ ada-mode.dvi \ auth.dvi \ autotype.dvi \ + bovine.dvi \ calc.dvi \ cc-mode.dvi \ cl.dvi \ @@ -75,6 +75,7 @@ DVI_TARGETS = \ forms.dvi \ gnus.dvi \ emacs-gnutls.dvi \ + htmlfontify.dvi \ idlwave.dvi \ info.dvi \ mairix-el.dvi \ @@ -95,17 +96,20 @@ DVI_TARGETS = \ sieve.dvi \ smtpmail.dvi \ speedbar.dvi \ + srecode.dvi \ tramp.dvi \ url.dvi \ vip.dvi \ viper.dvi \ widget.dvi \ + wisent.dvi \ woman.dvi PDF_TARGETS = \ ada-mode.pdf \ auth.pdf \ autotype.pdf \ + bovine.pdf \ calc.pdf \ cc-mode.pdf \ cl.pdf \ @@ -126,6 +130,7 @@ PDF_TARGETS = \ flymake.pdf \ forms.pdf \ gnus.pdf \ + htmlfontify.pdf \ emacs-gnutls.pdf \ idlwave.pdf \ info.pdf \ @@ -147,11 +152,13 @@ PDF_TARGETS = \ sieve.pdf \ smtpmail.pdf \ speedbar.pdf \ + srecode.pdf \ tramp.pdf \ url.pdf \ vip.pdf \ viper.pdf \ widget.pdf \ + wisent.pdf \ woman.pdf HTML_TARGETS = emacs-faq.html @@ -164,6 +171,8 @@ ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \ mkinfodir = @${MKDIR_P} ${buildinfodir} +gfdl = ${srcdir}/doclicense.texi + .PHONY: info dvi pdf echo-info ## Prevent implicit rule triggering for foo.info. .SUFFIXES: @@ -183,6 +192,8 @@ webhack: clean dvi: $(DVI_TARGETS) +html: $(HTML_TARGETS) + pdf: $(PDF_TARGETS) # Note that all the Info targets build the Info files in srcdir. @@ -192,185 +203,195 @@ pdf: $(PDF_TARGETS) # Note: "<" is not portable in ordinary make rules. ada-mode : $(buildinfodir)/ada-mode$(INFO_EXT) -$(buildinfodir)/ada-mode$(INFO_EXT): ${srcdir}/ada-mode.texi +$(buildinfodir)/ada-mode$(INFO_EXT): ${srcdir}/ada-mode.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ada-mode.texi -ada-mode.dvi: ${srcdir}/ada-mode.texi +ada-mode.dvi: ${srcdir}/ada-mode.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi -ada-mode.pdf: ${srcdir}/ada-mode.texi +ada-mode.pdf: ${srcdir}/ada-mode.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi auth : $(buildinfodir)/auth$(INFO_EXT) -$(buildinfodir)/auth$(INFO_EXT): ${srcdir}/auth.texi +$(buildinfodir)/auth$(INFO_EXT): ${srcdir}/auth.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/auth.texi -auth.dvi: ${srcdir}/auth.texi +auth.dvi: ${srcdir}/auth.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi -auth.pdf: ${srcdir}/auth.texi +auth.pdf: ${srcdir}/auth.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi autotype : $(buildinfodir)/autotype$(INFO_EXT) -$(buildinfodir)/autotype$(INFO_EXT): ${srcdir}/autotype.texi +$(buildinfodir)/autotype$(INFO_EXT): ${srcdir}/autotype.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/autotype.texi -autotype.dvi: ${srcdir}/autotype.texi +autotype.dvi: ${srcdir}/autotype.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi -autotype.pdf: ${srcdir}/autotype.texi +autotype.pdf: ${srcdir}/autotype.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi +bovine : $(buildinfodir)/bovine$(INFO_EXT) +$(buildinfodir)/bovine$(INFO_EXT): ${srcdir}/bovine.texi ${gfdl} + $(mkinfodir) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/bovine.texi +bovine.dvi: ${srcdir}/bovine.texi ${gfdl} + $(ENVADD) $(TEXI2DVI) ${srcdir}/bovine.texi +bovine.pdf: ${srcdir}/bovine.texi ${gfdl} + $(ENVADD) $(TEXI2PDF) ${srcdir}/bovine.texi + calc : $(buildinfodir)/calc$(INFO_EXT) -$(buildinfodir)/calc$(INFO_EXT): ${srcdir}/calc.texi $(emacsdir)/emacsver.texi +$(buildinfodir)/calc$(INFO_EXT): ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/calc.texi -calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi +calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi -calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi +calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi ccmode : $(buildinfodir)/ccmode$(INFO_EXT) -$(buildinfodir)/ccmode$(INFO_EXT): ${srcdir}/cc-mode.texi +$(buildinfodir)/ccmode$(INFO_EXT): ${srcdir}/cc-mode.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cc-mode.texi -cc-mode.dvi: ${srcdir}/cc-mode.texi +cc-mode.dvi: ${srcdir}/cc-mode.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi -cc-mode.pdf: ${srcdir}/cc-mode.texi +cc-mode.pdf: ${srcdir}/cc-mode.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi cl : $(buildinfodir)/cl$(INFO_EXT) -$(buildinfodir)/cl$(INFO_EXT): ${srcdir}/cl.texi $(emacsdir)/emacsver.texi +$(buildinfodir)/cl$(INFO_EXT): ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cl.texi -cl.dvi: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi +cl.dvi: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi -cl.pdf: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi +cl.pdf: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi dbus : $(buildinfodir)/dbus$(INFO_EXT) -$(buildinfodir)/dbus$(INFO_EXT): ${srcdir}/dbus.texi +$(buildinfodir)/dbus$(INFO_EXT): ${srcdir}/dbus.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dbus.texi -dbus.dvi: ${srcdir}/dbus.texi +dbus.dvi: ${srcdir}/dbus.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi -dbus.pdf: ${srcdir}/dbus.texi +dbus.pdf: ${srcdir}/dbus.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi dired-x : $(buildinfodir)/dired-x$(INFO_EXT) -$(buildinfodir)/dired-x$(INFO_EXT): ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi +$(buildinfodir)/dired-x$(INFO_EXT): ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dired-x.texi -dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi +dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi -dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi +dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi ebrowse : $(buildinfodir)/ebrowse$(INFO_EXT) -$(buildinfodir)/ebrowse$(INFO_EXT): ${srcdir}/ebrowse.texi +$(buildinfodir)/ebrowse$(INFO_EXT): ${srcdir}/ebrowse.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ebrowse.texi -ebrowse.dvi: ${srcdir}/ebrowse.texi +ebrowse.dvi: ${srcdir}/ebrowse.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi -ebrowse.pdf: ${srcdir}/ebrowse.texi +ebrowse.pdf: ${srcdir}/ebrowse.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi ede : $(buildinfodir)/ede$(INFO_EXT) -$(buildinfodir)/ede$(INFO_EXT): ${srcdir}/ede.texi +$(buildinfodir)/ede$(INFO_EXT): ${srcdir}/ede.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ede.texi -ede.dvi: ${srcdir}/ede.texi +ede.dvi: ${srcdir}/ede.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi -ede.pdf: ${srcdir}/ede.texi +ede.pdf: ${srcdir}/ede.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi ediff : $(buildinfodir)/ediff$(INFO_EXT) -$(buildinfodir)/ediff$(INFO_EXT): ${srcdir}/ediff.texi +$(buildinfodir)/ediff$(INFO_EXT): ${srcdir}/ediff.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ediff.texi -ediff.dvi: ${srcdir}/ediff.texi +ediff.dvi: ${srcdir}/ediff.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi -ediff.pdf: ${srcdir}/ediff.texi +ediff.pdf: ${srcdir}/ediff.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi edt : $(buildinfodir)/edt$(INFO_EXT) -$(buildinfodir)/edt$(INFO_EXT): ${srcdir}/edt.texi +$(buildinfodir)/edt$(INFO_EXT): ${srcdir}/edt.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/edt.texi -edt.dvi: ${srcdir}/edt.texi +edt.dvi: ${srcdir}/edt.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi -edt.pdf: ${srcdir}/edt.texi +edt.pdf: ${srcdir}/edt.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi eieio : $(buildinfodir)/eieio$(INFO_EXT) -$(buildinfodir)/eieio$(INFO_EXT): ${srcdir}/eieio.texi +$(buildinfodir)/eieio$(INFO_EXT): ${srcdir}/eieio.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eieio.texi -eieio.dvi: ${srcdir}/eieio.texi +eieio.dvi: ${srcdir}/eieio.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi -eieio.pdf: ${srcdir}/eieio.texi +eieio.pdf: ${srcdir}/eieio.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi emacs-gnutls : $(buildinfodir)/emacs-gnutls$(INFO_EXT) -$(buildinfodir)/emacs-gnutls$(INFO_EXT): ${srcdir}/emacs-gnutls.texi +$(buildinfodir)/emacs-gnutls$(INFO_EXT): ${srcdir}/emacs-gnutls.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi -emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi +emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi -emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi +emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi emacs-mime : $(buildinfodir)/emacs-mime$(INFO_EXT) -$(buildinfodir)/emacs-mime$(INFO_EXT): ${srcdir}/emacs-mime.texi +$(buildinfodir)/emacs-mime$(INFO_EXT): ${srcdir}/emacs-mime.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi -emacs-mime.dvi: ${srcdir}/emacs-mime.texi +emacs-mime.dvi: ${srcdir}/emacs-mime.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi -emacs-mime.pdf: ${srcdir}/emacs-mime.texi +emacs-mime.pdf: ${srcdir}/emacs-mime.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi epa : $(buildinfodir)/epa$(INFO_EXT) -$(buildinfodir)/epa$(INFO_EXT): ${srcdir}/epa.texi +$(buildinfodir)/epa$(INFO_EXT): ${srcdir}/epa.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/epa.texi -epa.dvi: ${srcdir}/epa.texi +epa.dvi: ${srcdir}/epa.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi -epa.pdf: ${srcdir}/epa.texi +epa.pdf: ${srcdir}/epa.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi erc : $(buildinfodir)/erc$(INFO_EXT) -$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi $(emacsdir)/emacsver.texi +$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi -erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi +erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi -erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi +erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi ert : $(buildinfodir)/ert$(INFO_EXT) -$(buildinfodir)/ert$(INFO_EXT): ${srcdir}/ert.texi +$(buildinfodir)/ert$(INFO_EXT): ${srcdir}/ert.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ert.texi -ert.dvi: ${srcdir}/ert.texi +ert.dvi: ${srcdir}/ert.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi -ert.pdf: ${srcdir}/ert.texi +ert.pdf: ${srcdir}/ert.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi eshell : $(buildinfodir)/eshell$(INFO_EXT) -$(buildinfodir)/eshell$(INFO_EXT): ${srcdir}/eshell.texi +$(buildinfodir)/eshell$(INFO_EXT): ${srcdir}/eshell.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eshell.texi -eshell.dvi: ${srcdir}/eshell.texi +eshell.dvi: ${srcdir}/eshell.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi -eshell.pdf: ${srcdir}/eshell.texi +eshell.pdf: ${srcdir}/eshell.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi eudc : $(buildinfodir)/eudc$(INFO_EXT) -$(buildinfodir)/eudc$(INFO_EXT): ${srcdir}/eudc.texi +$(buildinfodir)/eudc$(INFO_EXT): ${srcdir}/eudc.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eudc.texi -eudc.dvi: ${srcdir}/eudc.texi +eudc.dvi: ${srcdir}/eudc.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi -eudc.pdf: ${srcdir}/eudc.texi +eudc.pdf: ${srcdir}/eudc.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi +## No gfdl dependency. efaq : $(buildinfodir)/efaq$(INFO_EXT) $(buildinfodir)/efaq$(INFO_EXT): ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(mkinfodir) @@ -390,274 +411,301 @@ emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi flymake : $(buildinfodir)/flymake$(INFO_EXT) -$(buildinfodir)/flymake$(INFO_EXT): ${srcdir}/flymake.texi +$(buildinfodir)/flymake$(INFO_EXT): ${srcdir}/flymake.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/flymake.texi -flymake.dvi: ${srcdir}/flymake.texi +flymake.dvi: ${srcdir}/flymake.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi -flymake.pdf: ${srcdir}/flymake.texi +flymake.pdf: ${srcdir}/flymake.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi forms : $(buildinfodir)/forms$(INFO_EXT) -$(buildinfodir)/forms$(INFO_EXT): ${srcdir}/forms.texi +$(buildinfodir)/forms$(INFO_EXT): ${srcdir}/forms.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/forms.texi -forms.dvi: ${srcdir}/forms.texi +forms.dvi: ${srcdir}/forms.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi -forms.pdf: ${srcdir}/forms.texi +forms.pdf: ${srcdir}/forms.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi # gnus/message/emacs-mime/sieve/pgg are part of Gnus: gnus : $(buildinfodir)/gnus$(INFO_EXT) -$(buildinfodir)/gnus$(INFO_EXT): ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi +$(buildinfodir)/gnus$(INFO_EXT): ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/gnus.texi -gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi +gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2DVI) gnustmp.texi cp gnustmp.dvi $@ rm gnustmp.* -gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi +gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2PDF) gnustmp.texi cp gnustmp.pdf $@ rm gnustmp.* +htmlfontify : $(buildinfodir)/htmlfontify$(INFO_EXT) +$(buildinfodir)/htmlfontify$(INFO_EXT): ${srcdir}/htmlfontify.texi ${gfdl} + $(mkinfodir) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/htmlfontify.texi +htmlfontify.dvi: ${srcdir}/htmlfontify.texi ${gfdl} + $(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi +htmlfontify.pdf: ${srcdir}/htmlfontify.texi ${gfdl} + $(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi + # NB this one needs --no-split even without a .info extension. idlwave : $(buildinfodir)/idlwave$(INFO_EXT) -$(buildinfodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi +$(buildinfodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/idlwave.texi -idlwave.dvi: ${srcdir}/idlwave.texi +idlwave.dvi: ${srcdir}/idlwave.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi -idlwave.pdf: ${srcdir}/idlwave.texi +idlwave.pdf: ${srcdir}/idlwave.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi # NB this one needs --no-split even without a .info extension. # Avoid name clash with overall "info" target. info.info : $(buildinfodir)/info$(INFO_EXT) -$(buildinfodir)/info$(INFO_EXT): ${srcdir}/info.texi +$(buildinfodir)/info$(INFO_EXT): ${srcdir}/info.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/info.texi -info.dvi: ${srcdir}/info.texi +info.dvi: ${srcdir}/info.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi -info.pdf: ${srcdir}/info.texi +info.pdf: ${srcdir}/info.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi mairix-el : $(buildinfodir)/mairix-el$(INFO_EXT) -$(buildinfodir)/mairix-el$(INFO_EXT): ${srcdir}/mairix-el.texi +$(buildinfodir)/mairix-el$(INFO_EXT): ${srcdir}/mairix-el.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mairix-el.texi -mairix-el.dvi: ${srcdir}/mairix-el.texi +mairix-el.dvi: ${srcdir}/mairix-el.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi -mairix-el.pdf: ${srcdir}/mairix-el.texi +mairix-el.pdf: ${srcdir}/mairix-el.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi message : $(buildinfodir)/message$(INFO_EXT) -$(buildinfodir)/message$(INFO_EXT): ${srcdir}/message.texi +$(buildinfodir)/message$(INFO_EXT): ${srcdir}/message.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/message.texi -message.dvi: ${srcdir}/message.texi +message.dvi: ${srcdir}/message.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi -message.pdf: ${srcdir}/message.texi +message.pdf: ${srcdir}/message.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi mh-e : $(buildinfodir)/mh-e$(INFO_EXT) -$(buildinfodir)/mh-e$(INFO_EXT): ${srcdir}/mh-e.texi +$(buildinfodir)/mh-e$(INFO_EXT): ${srcdir}/mh-e.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mh-e.texi -mh-e.dvi: ${srcdir}/mh-e.texi +mh-e.dvi: ${srcdir}/mh-e.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi -mh-e.pdf: ${srcdir}/mh-e.texi +mh-e.pdf: ${srcdir}/mh-e.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi newsticker : $(buildinfodir)/newsticker$(INFO_EXT) -$(buildinfodir)/newsticker$(INFO_EXT): ${srcdir}/newsticker.texi +$(buildinfodir)/newsticker$(INFO_EXT): ${srcdir}/newsticker.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/newsticker.texi -newsticker.dvi: ${srcdir}/newsticker.texi +newsticker.dvi: ${srcdir}/newsticker.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi -newsticker.pdf: ${srcdir}/newsticker.texi +newsticker.pdf: ${srcdir}/newsticker.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi nxml-mode : $(buildinfodir)/nxml-mode$(INFO_EXT) -$(buildinfodir)/nxml-mode$(INFO_EXT): ${srcdir}/nxml-mode.texi +$(buildinfodir)/nxml-mode$(INFO_EXT): ${srcdir}/nxml-mode.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/nxml-mode.texi -nxml-mode.dvi: ${srcdir}/nxml-mode.texi +nxml-mode.dvi: ${srcdir}/nxml-mode.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi -nxml-mode.pdf: ${srcdir}/nxml-mode.texi +nxml-mode.pdf: ${srcdir}/nxml-mode.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi org : $(buildinfodir)/org$(INFO_EXT) -$(buildinfodir)/org$(INFO_EXT): ${srcdir}/org.texi +$(buildinfodir)/org$(INFO_EXT): ${srcdir}/org.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/org.texi -org.dvi: ${srcdir}/org.texi +org.dvi: ${srcdir}/org.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi -org.pdf: ${srcdir}/org.texi +org.pdf: ${srcdir}/org.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi pcl-cvs : $(buildinfodir)/pcl-cvs$(INFO_EXT) -$(buildinfodir)/pcl-cvs$(INFO_EXT): ${srcdir}/pcl-cvs.texi +$(buildinfodir)/pcl-cvs$(INFO_EXT): ${srcdir}/pcl-cvs.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pcl-cvs.texi -pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi +pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi -pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi +pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi pgg : $(buildinfodir)/pgg$(INFO_EXT) -$(buildinfodir)/pgg$(INFO_EXT): ${srcdir}/pgg.texi +$(buildinfodir)/pgg$(INFO_EXT): ${srcdir}/pgg.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pgg.texi -pgg.dvi: ${srcdir}/pgg.texi +pgg.dvi: ${srcdir}/pgg.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi -pgg.pdf: ${srcdir}/pgg.texi +pgg.pdf: ${srcdir}/pgg.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi rcirc : $(buildinfodir)/rcirc$(INFO_EXT) -$(buildinfodir)/rcirc$(INFO_EXT): ${srcdir}/rcirc.texi +$(buildinfodir)/rcirc$(INFO_EXT): ${srcdir}/rcirc.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/rcirc.texi -rcirc.dvi: ${srcdir}/rcirc.texi +rcirc.dvi: ${srcdir}/rcirc.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi -rcirc.pdf: ${srcdir}/rcirc.texi +rcirc.pdf: ${srcdir}/rcirc.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi reftex : $(buildinfodir)/reftex$(INFO_EXT) -$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi +$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/reftex.texi -reftex.dvi: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi +reftex.dvi: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi -reftex.pdf: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi +reftex.pdf: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi remember : $(buildinfodir)/remember$(INFO_EXT) -$(buildinfodir)/remember$(INFO_EXT): ${srcdir}/remember.texi +$(buildinfodir)/remember$(INFO_EXT): ${srcdir}/remember.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/remember.texi -remember.dvi: ${srcdir}/remember.texi +remember.dvi: ${srcdir}/remember.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi -remember.pdf: ${srcdir}/remember.texi +remember.pdf: ${srcdir}/remember.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi sasl : $(buildinfodir)/sasl$(INFO_EXT) -$(buildinfodir)/sasl$(INFO_EXT): ${srcdir}/sasl.texi +$(buildinfodir)/sasl$(INFO_EXT): ${srcdir}/sasl.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sasl.texi -sasl.dvi: ${srcdir}/sasl.texi +sasl.dvi: ${srcdir}/sasl.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi -sasl.pdf: ${srcdir}/sasl.texi +sasl.pdf: ${srcdir}/sasl.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi sc : $(buildinfodir)/sc$(INFO_EXT) -$(buildinfodir)/sc$(INFO_EXT): ${srcdir}/sc.texi +$(buildinfodir)/sc$(INFO_EXT): ${srcdir}/sc.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sc.texi -sc.dvi: ${srcdir}/sc.texi +sc.dvi: ${srcdir}/sc.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi -sc.pdf: ${srcdir}/sc.texi +sc.pdf: ${srcdir}/sc.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi semantic : $(buildinfodir)/semantic$(INFO_EXT) -$(buildinfodir)/semantic$(INFO_EXT): ${srcdir}/semantic.texi ${srcdir}/sem-user.texi +$(buildinfodir)/semantic$(INFO_EXT): ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/semantic.texi -semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi +semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi -semantic.pdf: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi +semantic.pdf: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi ses : $(buildinfodir)/ses$(INFO_EXT) -$(buildinfodir)/ses$(INFO_EXT): ${srcdir}/ses.texi +$(buildinfodir)/ses$(INFO_EXT): ${srcdir}/ses.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ses.texi -ses.dvi: ${srcdir}/ses.texi +ses.dvi: ${srcdir}/ses.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi -ses.pdf: ${srcdir}/ses.texi +ses.pdf: ${srcdir}/ses.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi sieve : $(buildinfodir)/sieve$(INFO_EXT) -$(buildinfodir)/sieve$(INFO_EXT): ${srcdir}/sieve.texi +$(buildinfodir)/sieve$(INFO_EXT): ${srcdir}/sieve.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sieve.texi -sieve.dvi: ${srcdir}/sieve.texi +sieve.dvi: ${srcdir}/sieve.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi -sieve.pdf: ${srcdir}/sieve.texi +sieve.pdf: ${srcdir}/sieve.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi smtpmail : $(buildinfodir)/smtpmail$(INFO_EXT) -$(buildinfodir)/smtpmail$(INFO_EXT): ${srcdir}/smtpmail.texi +$(buildinfodir)/smtpmail$(INFO_EXT): ${srcdir}/smtpmail.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/smtpmail.texi -smtpmail.dvi: ${srcdir}/smtpmail.texi +smtpmail.dvi: ${srcdir}/smtpmail.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi -smtpmail.pdf: ${srcdir}/smtpmail.texi +smtpmail.pdf: ${srcdir}/smtpmail.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi speedbar : $(buildinfodir)/speedbar$(INFO_EXT) -$(buildinfodir)/speedbar$(INFO_EXT): ${srcdir}/speedbar.texi +$(buildinfodir)/speedbar$(INFO_EXT): ${srcdir}/speedbar.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/speedbar.texi -speedbar.dvi: ${srcdir}/speedbar.texi +speedbar.dvi: ${srcdir}/speedbar.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi -speedbar.pdf: ${srcdir}/speedbar.texi +speedbar.pdf: ${srcdir}/speedbar.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi +srecode : $(buildinfodir)/srecode$(INFO_EXT) +$(buildinfodir)/srecode$(INFO_EXT): ${srcdir}/srecode.texi ${gfdl} + $(mkinfodir) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/srecode.texi +srecode.dvi: ${srcdir}/srecode.texi ${gfdl} + $(ENVADD) $(TEXI2DVI) ${srcdir}/srecode.texi +srecode.pdf: ${srcdir}/srecode.texi ${gfdl} + $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi + tramp : $(buildinfodir)/tramp$(INFO_EXT) -$(buildinfodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi +$(buildinfodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi -tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi +tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi -tramp.pdf: ${srcdir}/tramp.texi ${srcdir}/trampver.texi +tramp.pdf: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi url : $(buildinfodir)/url$(INFO_EXT) -$(buildinfodir)/url$(INFO_EXT): ${srcdir}/url.texi +$(buildinfodir)/url$(INFO_EXT): ${srcdir}/url.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/url.texi -url.dvi: ${srcdir}/url.texi +url.dvi: ${srcdir}/url.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi -url.pdf: ${srcdir}/url.texi +url.pdf: ${srcdir}/url.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi vip : $(buildinfodir)/vip$(INFO_EXT) -$(buildinfodir)/vip$(INFO_EXT): ${srcdir}/vip.texi +$(buildinfodir)/vip$(INFO_EXT): ${srcdir}/vip.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/vip.texi -vip.dvi: ${srcdir}/vip.texi +vip.dvi: ${srcdir}/vip.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi -vip.pdf: ${srcdir}/vip.texi +vip.pdf: ${srcdir}/vip.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi viper : $(buildinfodir)/viper$(INFO_EXT) -$(buildinfodir)/viper$(INFO_EXT): ${srcdir}/viper.texi +$(buildinfodir)/viper$(INFO_EXT): ${srcdir}/viper.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/viper.texi -viper.dvi: ${srcdir}/viper.texi +viper.dvi: ${srcdir}/viper.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi -viper.pdf: ${srcdir}/viper.texi +viper.pdf: ${srcdir}/viper.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi widget : $(buildinfodir)/widget$(INFO_EXT) -$(buildinfodir)/widget$(INFO_EXT): ${srcdir}/widget.texi +$(buildinfodir)/widget$(INFO_EXT): ${srcdir}/widget.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/widget.texi -widget.dvi: ${srcdir}/widget.texi +widget.dvi: ${srcdir}/widget.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi -widget.pdf: ${srcdir}/widget.texi +widget.pdf: ${srcdir}/widget.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi +wisent : $(buildinfodir)/wisent$(INFO_EXT) +$(buildinfodir)/wisent$(INFO_EXT): ${srcdir}/wisent.texi ${gfdl} + $(mkinfodir) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/wisent.texi +wisent.dvi: ${srcdir}/wisent.texi ${gfdl} + $(ENVADD) $(TEXI2DVI) ${srcdir}/wisent.texi +wisent.pdf: ${srcdir}/wisent.texi ${gfdl} + $(ENVADD) $(TEXI2PDF) ${srcdir}/wisent.texi + woman : $(buildinfodir)/woman$(INFO_EXT) -$(buildinfodir)/woman$(INFO_EXT): ${srcdir}/woman.texi +$(buildinfodir)/woman$(INFO_EXT): ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/woman.texi -woman.dvi: ${srcdir}/woman.texi +woman.dvi: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi -woman.pdf: ${srcdir}/woman.texi +woman.pdf: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi index 8d06ae0de22..b5a640e13e0 100644 --- a/doc/misc/ada-mode.texi +++ b/doc/misc/ada-mode.texi @@ -3,7 +3,7 @@ @settitle Ada Mode @copying -Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -14,8 +14,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -26,7 +25,7 @@ developing GNU and promoting software freedom.'' @titlepage @sp 10 -@title{Ada Mode} +@title Ada Mode @sp 2 @subtitle An Emacs major mode for programming in Ada @subtitle Ada Mode Version 4.00 @@ -38,7 +37,7 @@ developing GNU and promoting software freedom.'' @contents -@node Top, Overview, (dir), (dir) +@node Top @top Ada Mode @ifnottex @@ -65,7 +64,7 @@ developing GNU and promoting software freedom.'' @end menu -@node Overview, Installation, Top, Top +@node Overview @chapter Overview The Emacs mode for programming in Ada helps the user in understanding @@ -73,7 +72,7 @@ existing code and facilitates writing new code. When the Gnu Ada compiler GNAT is used, the cross-reference information output by the compiler is used to provide powerful code -navigation (jump to definition, find all uses, etc). +navigation (jump to definition, find all uses, etc.). When you open a file with a file extension of @file{.ads} or @file{.adb}, Emacs will automatically load and activate Ada mode. @@ -97,7 +96,7 @@ and other GNAT commands. See the Emacs info manual, section 'Running Debuggers Under Emacs', for general information on debugging. -@node Installation, Customization, Overview, Top +@node Installation @chapter Installation Ada mode is part of the standard Emacs distribution; if you use that, @@ -137,7 +136,7 @@ GNAT-specific). @end itemize -@node Customization, Compiling Executing, Installation, Top +@node Customization @chapter Customizing Ada mode Here we assume you are familiar with setting variables in Emacs, @@ -176,7 +175,7 @@ See the Emacs help for each of these variables for more information. * Other customization:: @end menu -@node Non-standard file names, Other compiler, Customization, Customization +@node Non-standard file names @section Non-standard file names By default, Ada mode is configured to use the GNAT file naming @@ -218,7 +217,7 @@ rewrite the function @code{ada-make-filename-from-adaname}. Doing that is beyond the scope of this manual; see the current definitions in @file{ada-mode.el} and @file{ada-xref.el} for examples. -@node Other compiler, Other customization, Non-standard file names, Customization +@node Other compiler @section Other compiler By default, Ada mode is configured to use the Gnu Ada compiler GNAT. @@ -228,7 +227,7 @@ used to run that compiler, either in lisp variables or in Emacs Ada mode project files. See @ref{Project file variables} for the list of project variables, and the corresponding lisp variables. -@node Other customization, , Other compiler, Customization +@node Other customization @section Other customization All user-settable Ada mode variables can be set via the menu @@ -246,7 +245,7 @@ and the syntax to set a variable is the following: (setq variable-name value) @end example -@node Compiling Executing, Project files, Customization, Top +@node Compiling Executing @chapter Compiling Executing Ada projects can be compiled, linked, and executed using commands on @@ -264,7 +263,7 @@ file variables referenced here. * Compiler errors:: @end menu -@node Compile commands, Compiler errors, Compiling Executing, Compiling Executing +@node Compile commands @section Compile commands Here are the commands for building and using an Ada project, as @@ -347,7 +346,7 @@ Invoke @samp{Ada | Project | Load}, and load a project file that specifies @code @end enumerate -@node Compiler errors, , Compile commands, Compiling Executing +@node Compiler errors @section Compiler errors The @code{Check file}, @code{Compile file}, and @code{Build} commands @@ -367,7 +366,7 @@ Some error messages might also include references to other files. These references are also clickable in the same way, or put point after the line number and press @key{RET}. -@node Project files, Compiling Examples, Compiling Executing, Top +@node Project files @chapter Project files An Emacs Ada mode project file specifies what directories hold sources @@ -386,7 +385,7 @@ an Emacs Ada mode project file. * Project file variables:: @end menu -@node Project File Overview, GUI Editor, Project files, Project files +@node Project File Overview @section Project File Overview Project files have a simple syntax; they may be edited directly. Each @@ -451,7 +450,7 @@ file extension; if it is @code{.gpr}, the file is treated as a GNAT project file. Any other extension is treated as an Emacs Ada mode project file. -@node GUI Editor, Project file variables, Project File Overview, Project files +@node GUI Editor @section GUI Editor The project file editor is invoked with the menu @samp{Ada | Projects @@ -462,7 +461,7 @@ modification using the @samp{[save]} button at the bottom of the buffer, or the @kbd{C-x C-s} binding. To cancel your modifications, kill the buffer or click on the @samp{[cancel]} button. -@node Project file variables, , GUI Editor, Project files +@node Project file variables @section Project file variables The following variables can be defined in a project file; some can @@ -522,8 +521,8 @@ ada_project_path_sep=: ada_project_path=$GDS_ROOT/makerules ada_project_path=../opentoken @end example -the environment variable @code{ADA_PROJECT_PATH} will be set to -@code{"/home/shared/makerules:/home/opentoken/"}. +then as a result the environment variable @code{ADA_PROJECT_PATH} will +be set to @code{"/home/shared/makerules:/home/opentoken/"}. The default value is not the current value of this environment variable, because that will typically have been set by another @@ -649,7 +648,7 @@ commands and source navigation. @end table -@node Compiling Examples, Moving Through Ada Code, Project files, Top +@node Compiling Examples @chapter Compiling Examples We present several small projects, and walk thru the process of @@ -671,7 +670,7 @@ website mentioned in @xref{Installation}. * Use multiple GNAT project files:: @end menu -@node No project files, Set compiler options, Compiling Examples, Compiling Examples +@node No project files @section No project files This example uses no project files. @@ -731,7 +730,7 @@ In buffer @file{hello.adb}, invoke @samp{Ada | Check file}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): -@example +@smallexample cd c:/Examples/Example_1/ gnatmake -u -c -gnatc -g c:/Examples/Example_1/hello.adb -cargs -gnatq -gnatQ gcc -c -Ic:/Examples/Example_1/ -gnatc -g -gnatq -gnatQ -I- c:/Examples/Example_1/hello.adb @@ -739,7 +738,7 @@ hello.adb:4:04: "Put_Line" is not visible hello.adb:4:04: non-visible declaration at a-textio.ads:264 hello.adb:4:04: non-visible declaration at a-textio.ads:260 gnatmake: "c:/Examples/Example_1/hello.adb" compilation error -@end example +@end smallexample If you have enabled font-lock, the lines with actual errors (starting with @file{hello.adb}) are highlighted, with the file name in red. @@ -837,7 +836,7 @@ Invoke @samp{Ada | Project | Load}, and load a project file that specifies @code @end enumerate -@node Set compiler options, Set source search path, No project files, Compiling Examples +@node Set compiler options @section Set compiler options This example illustrates using an Emacs Ada mode project file to set a @@ -899,7 +898,7 @@ used to set the compiler options. Fixing the error, linking and running the code proceed as in @ref{No project files}. -@node Set source search path, Use GNAT project file, Set compiler options, Compiling Examples +@node Set source search path @section Set source search path In this example, we show how to deal with files in more than one @@ -983,7 +982,7 @@ compiler error message. Fixing the error, linking and running the code proceed as in @ref{No project files}. -@node Use GNAT project file, Use multiple GNAT project files, Set source search path, Compiling Examples +@node Use GNAT project file @section Use GNAT project file In this example, we show how to use a GNAT project file, with no Ada @@ -1046,14 +1045,14 @@ Then, again in @file{hello_4.adb}, invoke @samp{Ada | Set main and Build}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): -@example +@smallexample cd c:/Examples/Example_4/Gnat_Project/ gnatmake -o hello_4 hello_4 -Phello_4.gpr -cargs -gnatq -gnatQ -bargs -largs gcc -c -g -gnatyt -gnatq -gnatQ -I- -gnatA c:\Examples\Example_4\Gnat_Project\hello_4.adb gcc -c -g -gnatyt -gnatq -gnatQ -I- -gnatA c:\Examples\Example_4\hello_pkg.adb hello_pkg.adb:2:08: keyword "body" expected here [see file name] gnatmake: "c:\examples\example_4\hello_pkg.adb" compilation error -@end example +@end smallexample Compare the @code{gcc} options to the compiler output in @ref{Set compiler options}; this shows that @file{hello_4.gpr} is being used to @@ -1062,7 +1061,7 @@ set the compiler options. Fixing the error, linking and running the code proceed as in @ref{No project files}. -@node Use multiple GNAT project files, , Use GNAT project file, Compiling Examples +@node Use multiple GNAT project files @section Use multiple GNAT project files In this example, we show how to use multiple GNAT project files, @@ -1113,20 +1112,20 @@ Then, again in @file{hello_5.adb}, invoke @samp{Ada | Set main and Build}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): -@example +@smallexample cd c:/Examples/Example_5/ gnatmake -o hello_5 hello_5 -Phello_5.gpr -g -cargs -gnatq -gnatQ -bargs -largs gcc -c -g -gnatyt -g -gnatq -gnatQ -I- -gnatA c:\Examples\Example_5\hello_5.adb gcc -c -g -gnatyt -g -gnatq -gnatQ -I- -gnatA c:\Examples\Example_4\hello_pkg.adb hello_pkg.adb:2:08: keyword "body" expected here [see file name] gnatmake: "c:\examples\example_4\hello_pkg.adb" compilation error -@end example +@end smallexample Now type @kbd{C-x `}. @file{Example_4/hello_pkg.adb} is shown, demonstrating that @file{hello_5.gpr} and @file{hello_4.gpr} are being used to set the compilation search path. -@node Moving Through Ada Code, Identifier completion, Compiling Examples, Top +@node Moving Through Ada Code @chapter Moving Through Ada Code There are several easy to use commands to navigate through Ada code. All @@ -1180,7 +1179,7 @@ If the @code{ada-xref-create-ali} variable is non-@code{nil}, Emacs will try to run GNAT for you whenever cross-reference information is needed, and is older than the current source file. -@node Identifier completion, Automatic Smart Indentation, Moving Through Ada Code, Top +@node Identifier completion @chapter Identifier completion Emacs and Ada mode provide two general ways for the completion of @@ -1225,7 +1224,7 @@ Complete current identifier using cross-reference information. Complete identifier using buffer information (not Ada-specific). @end table -@node Automatic Smart Indentation, Formatting Parameter Lists, Identifier completion, Top +@node Automatic Smart Indentation @chapter Automatic Smart Indentation Ada mode comes with a full set of rules for automatic indentation. You @@ -1268,7 +1267,7 @@ Non-@code{nil} means that the current line will also be re-indented before inserting a newline, when you press @key{RET}. @end table -Most of the time, the indentation will be automatic, i.e when you +Most of the time, the indentation will be automatic, i.e., when you press @key{RET}, the cursor will move to the correct column on the next line. @@ -1302,7 +1301,7 @@ Indent the current line and display the name of the variable used for indentation. @end table -@node Formatting Parameter Lists, Automatic Casing, Automatic Smart Indentation, Top +@node Formatting Parameter Lists @chapter Formatting Parameter Lists @table @kbd @@ -1315,7 +1314,7 @@ This aligns the declarations on the colon (@samp{:}) separating argument names and argument types, and aligns the @code{in}, @code{out} and @code{in out} keywords. -@node Automatic Casing, Statement Templates, Formatting Parameter Lists, Top +@node Automatic Casing @chapter Automatic Casing Casing of identifiers, attributes and keywords is automatically @@ -1404,7 +1403,7 @@ Rereads the exception dictionary from the file @code{ada-case-exception-file} (@code{ada-case-read-exceptions}). @end table -@node Statement Templates, Comment Handling, Automatic Casing, Top +@node Statement Templates @chapter Statement Templates Templates are defined for most Ada statements, using the Emacs @@ -1495,7 +1494,7 @@ exception (@code{ada-exception}). type (@code{ada-type}). @end table -@node Comment Handling, GNU Free Documentation License, Statement Templates, Top +@node Comment Handling @chapter Comment Handling By default, comment lines get indented like Ada code. There are a few @@ -1507,18 +1506,18 @@ Start a comment in default column. @item M-j Continue comment on next line. @item C-c ; -Comment the selected region (add -- at the beginning of lines). +Comment the selected region (add @samp{--} at the beginning of lines). @item C-c : Uncomment the selected region @item M-q autofill the current comment. @end table -@node GNU Free Documentation License, Index, Comment Handling, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi -@node Index, , GNU Free Documentation License, Top +@node Index @unnumbered Index @printindex fn diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi index 3a1e4155e97..36ee400acca 100644 --- a/doc/misc/auth.texi +++ b/doc/misc/auth.texi @@ -2,15 +2,15 @@ @include gnus-overrides.texi +@set VERSION 0.3 + @setfilename ../../info/auth @settitle Emacs auth-source Library @value{VERSION} -@set VERSION 0.3 - @copying This file describes the Emacs auth-source library. -Copyright @copyright{} 2008-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2008--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -18,17 +18,10 @@ under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license -is included in the section entitled ``GNU Free Documentation License'' -in the Emacs manual. +is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +modify this GNU manual.'' @end quotation @end copying @@ -68,6 +61,7 @@ It is a way for multiple applications to share a single configuration * Secret Service API:: * Help for developers:: * GnuPG and EasyPG Assistant Configuration:: +* GNU Free Documentation License:: The license for this documentation. * Index:: * Function Index:: * Variable Index:: @@ -89,7 +83,7 @@ password (known as the secret). Similarly, the auth-source library supports multiple storage backend, currently either the classic ``netrc'' backend, examples of which you -can see later in this document, or the Secret Service API. This is +can see later in this document, or the Secret Service API@. This is done with EIEIO-based backends and you can write your own if you want. @node Help for users @@ -160,7 +154,8 @@ and simplest configuration is: (setq auth-sources '((:source "~/.authinfo.gpg"))) ;;; even shorter and the @emph{default}: (setq auth-sources '("~/.authinfo.gpg" "~/.authinfo" "~/.netrc")) -;;; use the Secrets API @var{Login} collection (@pxref{Secret Service API}) +;;; use the Secrets API @var{Login} collection +;;; (@pxref{Secret Service API}) (setq auth-sources '("secrets:Login")) @end lisp @@ -173,7 +168,8 @@ have unusual setups and the remaining 10% are @emph{really} unusual). Here's a mixed example using two sources: @lisp -(setq auth-sources '((:source (:secrets default) :host "myserver" :user "joe") +(setq auth-sources '((:source (:secrets default) + :host "myserver" :user "joe") "~/.authinfo.gpg")) @end lisp @@ -213,7 +209,7 @@ machine yourmachine.com:80 port http login testuser password testpass @end example This will match any realm and authentication method (basic or digest) -over HTTP. HTTPS is set up similarly. If you want finer controls, +over HTTP@. HTTPS is set up similarly. If you want finer controls, explore the url-auth source code and variables. For Tramp authentication, use: @@ -238,7 +234,7 @@ KDE Wallet (these are GNOME and KDE packages respectively and should be available on most modern GNU/Linux systems). The auth-source library uses the @file{secrets.el} library to connect -through the Secret Service API. You can also use that library in +through the Secret Service API@. You can also use that library in other packages, it's not exclusive to auth-source. @defvar secrets-enabled @@ -522,16 +518,20 @@ To set up gpg-agent, follow the instruction in GnuPG manual To set up elisp passphrase cache, set @code{epa-file-cache-passphrase-for-symmetric-encryption}. +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @node Index -@chapter Index +@unnumbered Index @printindex cp @node Function Index -@chapter Function Index +@unnumbered Function Index @printindex fn @node Variable Index -@chapter Variable Index +@unnumbered Variable Index @printindex vr @bye diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi index 9d7a51233ff..137ed6b43e8 100644 --- a/doc/misc/autotype.texi +++ b/doc/misc/autotype.texi @@ -10,7 +10,8 @@ @c @cindex autotypist @copying -Copyright @copyright{} 1994-1995, 1999, 2001-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1994--1995, 1999, 2001--2013 +Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -21,8 +22,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -37,8 +37,7 @@ developing GNU and promoting software freedom.'' @center @titlefont{Autotyping} @sp 2 -@center @subtitlefont{Convenient features for text that you enter -frequently in Emacs} +@center Convenient features for text that you enter frequently in Emacs @sp 2 @center Daniel Pfeiffer @center additions by Dave Love @@ -58,7 +57,7 @@ over and over again. This is especially true of form letters and programming language constructs. Project-specific header comments, flow-control constructs or magic numbers are essentially the same every time. Emacs has various features for doing tedious and repetitive typing chores for you -in addition to the Abbrev features (@pxref{(emacs)Abbrevs}). +in addition to the Abbrev features (@pxref{Abbrevs,,, emacs, The GNU Emacs Manual}). One solution is using skeletons, flexible rules that say what to insert, and how to do it. Various programming language modes offer some @@ -113,7 +112,7 @@ completions and expansions of text at point. programming language you are using, skeletons are a means of accomplishing this. Normally skeletons each have a command of their own, that, when called, will insert the skeleton. These commands can be issued in the usual ways -(@pxref{(emacs)Commands}). Modes that offer various skeletons will often +(@pxref{Commands,,, emacs, The GNU Emacs Manual}). Modes that offer various skeletons will often bind these to key-sequences on the @kbd{C-c} prefix, as well as having an @cite{Insert} menu and maybe even predefined abbrevs for them (@pxref{Skeletons as Abbrevs}). @@ -130,7 +129,7 @@ recognize this situation by a prompt ending in @key{RET}, @kbd{C-g} or @kbd{C-h}. This means that entering an empty string will simply assume that you are finished. Typing quit on the other hand terminates the loop but also the rest of the -skeleton, e.g. an ``else'' clause is skipped. Only a syntactically necessary +skeleton, e.g., an ``else'' clause is skipped. Only a syntactically necessary termination still gets inserted. @@ -146,18 +145,18 @@ accomplishing this, and can even, in the case of programming languages, reindent the wrapped code for you. Skeleton commands take an optional numeric prefix argument -(@pxref{(emacs)Arguments}). This is interpreted in two different ways depending -on whether the prefix is positive, i.e. forwards oriented or negative, -i.e. backwards oriented. +(@pxref{Arguments,,, emacs, The GNU Emacs Manual}). This is interpreted in two different ways depending +on whether the prefix is positive, i.e., forwards oriented, or negative, +i.e., backwards oriented. A positive prefix means to wrap the skeleton around that many following words. This is accomplished by putting the words there where the point is normally left after that skeleton is inserted (@pxref{Using -Skeletons}). The point (@pxref{(emacs)Point}) is left at the next +Skeletons}). The point (@pxref{Point,,, emacs, The GNU Emacs Manual}) is left at the next interesting spot in the skeleton instead. A negative prefix means to do something similar with that many previously -marked interregions (@pxref{(emacs)Mark}). In the simplest case, if you type +marked interregions (@pxref{Mark,,, emacs, The GNU Emacs Manual}). In the simplest case, if you type @kbd{M--} just before issuing the skeleton command, that will wrap the skeleton around the current region, just like a positive argument would have wrapped it around a number of words. @@ -178,7 +177,7 @@ ignored. If, on the other hand, you marked in alphabetical order the points [] A C B, and call a skeleton command with @kbd{M-- 3}, you will wrap the text from -point to A, then the text from A to C and finally the text from C to B. This +point to A, then the text from A to C and finally the text from C to B@. This is done because the regions overlap and Emacs would be helplessly lost if it tried to follow the order in which you marked these points. @@ -189,8 +188,8 @@ tried to follow the order in which you marked these points. @cindex skeletons as abbrevs Rather than use a key binding for every skeleton command, you can also -define an abbreviation (@pxref{(emacs)Defining Abbrevs}) that will expand -(@pxref{(emacs)Expanding Abbrevs}) into the skeleton. +define an abbreviation (@pxref{Defining Abbrevs,,, emacs, The GNU Emacs Manual}) that will expand +(@pxref{Expanding Abbrevs,,, emacs, The GNU Emacs Manual}) into the skeleton. Say you want @samp{ifst} to be an abbreviation for the C language if statement. You will tell Emacs that @samp{ifst} expands to the empty string @@ -241,10 +240,10 @@ put at these places. Point is left at first @code{_} where nothing is wrapped. Indent line according to major mode. When following element is @code{_}, and there is a interregion that will be wrapped here, indent that interregion. @item @code{&} -Logical and. Iff preceding element moved point, i.e. usually inserted +Logical and. Iff preceding element moved point, i.e., usually inserted something, do following element. @item @code{|} -Logical xor. Iff preceding element didn't move point, i.e. usually inserted +Logical xor. Iff preceding element didn't move point, i.e., usually inserted nothing, do following element. @item @code{-@var{number}} Delete preceding number characters. Depends on value of @@ -290,7 +289,7 @@ skeleton. The first argument is the command name, the second is a documentation string, and the rest is an interactor and any number of skeleton elements together forming a skeleton. This skeleton is assigned to a variable of the same name as the command and can thus be overridden from your -@file{~/.emacs} file (@pxref{(emacs)Init File}). +@file{~/.emacs} file (@pxref{Init File,,, emacs, The GNU Emacs Manual}). @@ -309,14 +308,14 @@ fingers backwards, this can be quite relieving too. @findex skeleton-pair-insert-maybe @vindex skeleton-pair - This is done by binding the first key (@pxref{(emacs)Rebinding}) of + This is done by binding the first key (@pxref{Rebinding,,, emacs, The GNU Emacs Manual}) of the pair to @code{skeleton-pair-insert-maybe} instead of @code{self-insert-command}. The ``maybe'' comes from the fact that this at-first surprising behavior is initially turned off. To enable it, you must set @code{skeleton-pair} to some non-@code{nil} value. -And even then, a positive argument (@pxref{(emacs)Arguments}) will +And even then, a positive argument (@pxref{Arguments,,, emacs, The GNU Emacs Manual}) will make this key behave like a self-inserting key -(@pxref{(emacs)Inserting Text}). +(@pxref{Inserting Text,,, emacs, The GNU Emacs Manual}). @vindex skeleton-pair-on-word While this breaks with the stated intention of always balancing pairs, it @@ -354,7 +353,7 @@ the buffer. The main application for this function, as its name suggests, is to have it be called automatically every time an empty, and only an empty file is visited. This is accomplished by putting @code{(add-hook 'find-file-hook 'auto-insert)} into your @file{~/.emacs} file -(@pxref{(emacs)Init File}). +(@pxref{Init File,,, emacs, The GNU Emacs Manual}). @vindex auto-insert-alist What gets inserted, if anything, is determined by the variable @@ -376,7 +375,7 @@ be inserted. can simply insert some text, indeed, it can be skeleton command (@pxref{Using Skeletons}). It can be a lambda function which will for example conditionally call another function. Or it can even reset the mode for the buffer. If you -want to perform several such actions in order, you use a vector, i.e. several +want to perform several such actions in order, you use a vector, i.e., several of the above elements between square brackets (@samp{[@r{@dots{}}]}). By default C and C++ headers insert a definition of a symbol derived from @@ -392,22 +391,22 @@ source files insert the usual header, with a copyright of your environment variable @env{$ORGANIZATION} or else the FSF, and prompt for valid keywords describing the contents. Files in a @file{bin} directory for which Emacs could determine no specialized mode -(@pxref{(emacs)Choosing Modes}) are set to Shell script mode. +(@pxref{Choosing Modes,,, emacs, The GNU Emacs Manual}) are set to Shell script mode. @findex define-auto-insert - In Lisp (@pxref{(emacs)Init File}) you can use the function + In Lisp (@pxref{Init File,,, emacs, The GNU Emacs Manual}) you can use the function @code{define-auto-insert} to add to or modify @code{auto-insert-alist}. See its documentation with @kbd{C-h f define-auto-insert}. @vindex auto-insert The variable @code{auto-insert} says what to do when @code{auto-insert} is -called non-interactively, e.g. when a newly found file is empty (see above): +called non-interactively, e.g., when a newly found file is empty (see above): @table @asis @item @code{nil} Do nothing. @item @code{t} -Insert something if possible, i.e. there is a matching entry in +Insert something if possible, i.e., there is a matching entry in @code{auto-insert-alist}. @item other Insert something if possible, but mark as unmodified. @@ -438,7 +437,7 @@ expression that matched the filename. @kbd{M-x copyright} is a skeleton inserting command, that adds a copyright notice at the point. The ``by'' part is taken from your environment variable @env{$ORGANIZATION} or if that isn't set you are prompted for it. If the -buffer has a comment syntax (@pxref{(emacs)Comments}), this is inserted as a comment. +buffer has a comment syntax (@pxref{Comments,,, emacs, The GNU Emacs Manual}), this is inserted as a comment. @findex copyright-update @vindex copyright-limit @@ -446,17 +445,17 @@ buffer has a comment syntax (@pxref{(emacs)Comments}), this is inserted as a com @kbd{M-x copyright-update} looks for a copyright notice in the first @code{copyright-limit} characters of the buffer and updates it when necessary. The current year (variable @code{copyright-current-year}) is added to the -existing ones, in the same format as the preceding year, i.e. 1994, '94 or 94. +existing ones, in the same format as the preceding year, i.e., 1994, '94 or 94. If a dash-separated year list up to last year is found, that is extended to current year, else the year is added separated by a comma. Or it replaces them when this is called with a prefix argument. If a header referring to a -wrong version of the GNU General Public License (@pxref{(emacs)Copying}) is found, +wrong version of the GNU General Public License (@pxref{Copying,,, emacs, The GNU Emacs Manual}) is found, that is updated too. An interesting application for this function is to have it be called automatically every time a file is saved. This is accomplished by putting @code{(add-hook 'before-save-hook 'copyright-update)} into -your @file{~/.emacs} file (@pxref{(emacs)Init File}). Alternative, +your @file{~/.emacs} file (@pxref{Init File,,, emacs, The GNU Emacs Manual}). Alternative, you can do @kbd{M-x customize-variable @key{RET} before-save-hook @key{RET}}. @code{copyright-update} is conveniently listed as an option in the customization buffer. @@ -492,7 +491,7 @@ intended for resource files, which are only meant to be read in. @vindex executable-insert The variable @code{executable-insert} says what to do when -@code{executable-set-magic} is called non-interactively, e.g. when file has no +@code{executable-set-magic} is called non-interactively, e.g., when file has no or the wrong magic number: @table @asis @item @code{nil} diff --git a/doc/misc/bovine.texi b/doc/misc/bovine.texi new file mode 100644 index 00000000000..978345e5cc8 --- /dev/null +++ b/doc/misc/bovine.texi @@ -0,0 +1,474 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename ../../info/bovine +@set TITLE Bovine parser development +@set AUTHOR Eric M. Ludlam, David Ponce, and Richard Y. Kim +@settitle @value{TITLE} + +@c ************************************************************************* +@c @ Header +@c ************************************************************************* + +@c Merge all indexes into a single index for now. +@c We can always separate them later into two or more as needed. +@syncodeindex vr cp +@syncodeindex fn cp +@syncodeindex ky cp +@syncodeindex pg cp +@syncodeindex tp cp + +@c @footnotestyle separate +@c @paragraphindent 2 +@c @@smallbook +@c %**end of header + +@copying +Copyright @copyright{} 1999--2004, 2012--2013 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and +modify this GNU manual.'' +@end quotation +@end copying + +@dircategory Emacs misc features +@direntry +* Bovine: (bovine). Semantic bovine parser development. +@end direntry + +@iftex +@finalout +@end iftex + +@c @setchapternewpage odd +@c @setchapternewpage off + +@titlepage +@sp 10 +@title @value{TITLE} +@author by @value{AUTHOR} +@page +@vskip 0pt plus 1 fill +@insertcopying +@end titlepage +@page + +@macro semantic{} +@i{Semantic} +@end macro + +@c ************************************************************************* +@c @ Document +@c ************************************************************************* +@contents + +@node top +@top @value{TITLE} + +The @dfn{bovine} parser is the original @semantic{} parser, and is an +implementation of an @acronym{LL} parser. It is good for simple +languages. It has many conveniences making grammar writing easy. The +conveniences make it less powerful than a Bison-like @acronym{LALR} +parser. For more information, @inforef{top, the Wisent Parser Manual, +wisent}. + +Bovine @acronym{LL} grammars are stored in files with a @file{.by} +extension. When compiled, the contents is converted into a file of +the form @file{NAME-by.el}. This, in turn is byte compiled. +@inforef{top, Grammar Framework Manual, grammar-fw}. + +@ifnottex +@insertcopying +@end ifnottex + +@menu +* Starting Rules:: The starting rules for the grammar. +* Bovine Grammar Rules:: Rules used to parse a language. +* Optional Lambda Expression:: Actions to take when a rule is matched. +* Bovine Examples:: Simple Samples. +* GNU Free Documentation License:: The license for this documentation. +@c * Index:: +@end menu + +@node Starting Rules +@chapter Starting Rules + +In Bison, one and only one nonterminal is designated as the ``start'' +symbol. In @semantic{}, one or more nonterminals can be designated as +the ``start'' symbol. They are declared following the @code{%start} +keyword separated by spaces. @inforef{start Decl, ,grammar-fw}. + +If no @code{%start} keyword is used in a grammar, then the very first +is used. Internally the first start nonterminal is targeted by the +reserved symbol @code{bovine-toplevel}, so it can be found by the +parser harness. + +To find locally defined variables, the local context handler needs to +parse the body of functional code. The @code{scopestart} declaration +specifies the name of a nonterminal used as the goal to parse a local +context, @inforef{scopestart Decl, ,grammar-fw}. Internally the +scopestart nonterminal is targeted by the reserved symbol +@code{bovine-inner-scope}, so it can be found by the parser harness. + +@node Bovine Grammar Rules +@chapter Bovine Grammar Rules + +The rules are what allow the compiler to create tags from a language +file. Once the setup is done in the prologue, you can start writing +rules. @inforef{Grammar Rules, ,grammar-fw}. + +@example +@var{result} : @var{components1} @var{optional-semantic-action1}) + | @var{components2} @var{optional-semantic-action2} + ; +@end example + +@var{result} is a nonterminal, that is a symbol synthesized in your grammar. +@var{components} is a list of elements that are to be matched if @var{result} +is to be made. @var{optional-semantic-action} is an optional sequence +of simplified Emacs Lisp expressions for concocting the parse tree. + +In bison, each time an element of @var{components} is found, it is +@dfn{shifted} onto the parser stack. (The stack of matched elements.) +When all @var{components}' elements have been matched, it is +@dfn{reduced} to @var{result}. @xref{Algorithm,,, bison, The GNU Bison Manual}. + +A particular @var{result} written into your grammar becomes +the parser's goal. It is designated by a @code{%start} statement +(@pxref{Starting Rules}). The value returned by the associated +@var{optional-semantic-action} is the parser's result. It should be +a tree of @semantic{} @dfn{tags}, @inforef{Semantic Tags, , +semantic-appdev}. + +@var{components} is made up of symbols. A symbol such as @code{FOO} +means that a syntactic token of class @code{FOO} must be matched. + +@menu +* How Lexical Tokens Match:: +* Grammar-to-Lisp Details:: +* Order of components in rules:: +@end menu + +@node How Lexical Tokens Match +@section How Lexical Tokens Match + +A lexical rule must be used to define how to match a lexical token. + +For instance: + +@example +%keyword FOO "foo" +@end example + +Means that @code{FOO} is a reserved language keyword, matched as such +by looking up into a keyword table, @inforef{keyword Decl, +,grammar-fw}. This is because @code{"foo"} will be converted to +@code{FOO} in the lexical analysis stage. Thus the symbol @code{FOO} +won't be available any other way. + +If we specify our token in this way: + +@example +%token FOO "foo" +@end example + +then @code{FOO} will match the string @code{"foo"} explicitly, but it +won't do so at the lexical level, allowing use of the text +@code{"foo"} in other forms of regular expressions. + +In that case, @code{FOO} is a @code{symbol}-type token. To match, a +@code{symbol} must first be encountered, and then it must +@code{string-match "foo"}. + +@table @strong +@item Caution: +Be especially careful to remember that @code{"foo"}, and more +generally the %token's match-value string, is a regular expression! +@end table + +Non symbol tokens are also allowed. For example: + +@example +%token PERIOD "[.]" + +filename : symbol PERIOD symbol + ; +@end example + +@code{PERIOD} is a @code{punctuation}-type token that will explicitly +match one period when used in the above rule. + +@table @strong +@item Please Note: +@code{symbol}, @code{punctuation}, etc., are predefined lexical token +types, based on the @dfn{syntax class}-character associations +currently in effect. +@end table + +@node Grammar-to-Lisp Details +@section Grammar-to-Lisp Details + +For the bovinator, lexical token matching patterns are @emph{inlined}. +When the grammar-to-lisp converter encounters a lexical token +declaration of the form: + +@example +%token <@var{type}> @var{token-name} @var{match-value} +@end example + +It substitutes every occurrences of @var{token-name} in rules, by its +expanded form: + +@example +@var{type} @var{match-value} +@end example + +For example: + +@example +%token MOOSE "moose" + +find_a_moose: MOOSE + ; +@end example + +Will generate this pseudo equivalent-rule: + +@example +find_a_moose: symbol "moose" ;; invalid syntax! + ; +@end example + +Thus, from the bovinator point of view, the @var{components} part of a +rule is made up of symbols and strings. A string in the mix means +that the previous symbol must have the additional constraint of +exactly matching it, as described in @ref{How Lexical Tokens Match}. + +@table @strong +@item Please Note: +For the bovinator, this task was mixed into the language definition to +simplify implementation, though Bison's technique is more efficient. +@end table + +@node Order of components in rules +@section Order of components in rules + +If a rule has multiple components, order is important, for example + +@example +headerfile : symbol PERIOD symbol + | symbol + ; +@end example + +would match @samp{foo.h} or the @acronym{C++} header @samp{foo}. +The bovine parser will first attempt to match the long form, and then +the short form. If they were in reverse order, then the long form +would never be tested. + +@c @xref{Default syntactic tokens}. + +@node Optional Lambda Expression +@chapter Optional Lambda Expressions + +The @acronym{OLE} (@dfn{Optional Lambda Expression}) is converted into +a bovine lambda. This lambda has special short-cuts to simplify +reading the semantic action definition. An @acronym{OLE} like this: + +@example +( $1 ) +@end example + +results in a lambda return which consists entirely of the string +or object found by matching the first (zeroth) element of match. +An @acronym{OLE} like this: + +@example +( ,(foo $1) ) +@end example + +executes @code{foo} on the first argument, and then splices its return +into the return list whereas: + +@example +( (foo $1) ) +@end example + +executes @code{foo}, and that is placed in the return list. + +Here are other things that can appear inline: + +@table @code +@item $1 +The first object matched. + +@item ,$1 +The first object spliced into the list (assuming it is a list from a +non-terminal). + +@item '$1 +The first object matched, placed in a list. I.e., @code{( $1 )}. + +@item foo +The symbol @code{foo} (exactly as displayed). + +@item (foo) +A function call to foo which is stuck into the return list. + +@item ,(foo) +A function call to foo which is spliced into the return list. + +@item '(foo) +A function call to foo which is stuck into the return list in a list. + +@item (EXPAND @var{$1} @var{nonterminal} @var{depth}) +A list starting with @code{EXPAND} performs a recursive parse on the +token passed to it (represented by @samp{$1} above.) The +@dfn{semantic list} is a common token to expand, as there are often +interesting things in the list. The @var{nonterminal} is a symbol in +your table which the bovinator will start with when parsing. +@var{nonterminal}'s definition is the same as any other nonterminal. +@var{depth} should be at least @samp{1} when descending into a +semantic list. + +@item (EXPANDFULL @var{$1} @var{nonterminal} @var{depth}) +Is like @code{EXPAND}, except that the parser will iterate over +@var{nonterminal} until there are no more matches. (The same way the +parser iterates over the starting rule (@pxref{Starting Rules}). This +lets you have much simpler rules in this specific case, and also lets +you have positional information in the returned tokens, and error +skipping. + +@item (ASSOC @var{symbol1} @var{value1} @var{symbol2} @var{value2} @dots{}) +This is used for creating an association list. Each @var{symbol} is +included in the list if the associated @var{value} is non-@code{nil}. +While the items are all listed explicitly, the created structure is an +association list of the form: + +@example +((@var{symbol1} . @var{value1}) (@var{symbol2} . @var{value2}) @dots{}) +@end example + +@item (TAG @var{name} @var{class} [@var{attributes}]) +This creates one tag in the current buffer. + +@table @var +@item name +Is a string that represents the tag in the language. + +@item class +Is the kind of tag being create, such as @code{function}, or +@code{variable}, though any symbol will work. + +@item attributes +Is an optional set of labeled values such as @code{:constant-flag t :parent +"parenttype"}. +@end table + +@item (TAG-VARIABLE @var{name} @var{type} @var{default-value} [@var{attributes}]) +@itemx (TAG-FUNCTION @var{name} @var{type} @var{arg-list} [@var{attributes}]) +@itemx (TAG-TYPE @var{name} @var{type} @var{members} @var{parents} [@var{attributes}]) +@itemx (TAG-INCLUDE @var{name} @var{system-flag} [@var{attributes}]) +@itemx (TAG-PACKAGE @var{name} @var{detail} [@var{attributes}]) +@itemx (TAG-CODE @var{name} @var{detail} [@var{attributes}]) +Create a tag with @var{name} of respectively the class +@code{variable}, @code{function}, @code{type}, @code{include}, +@code{package}, and @code{code}. +See @inforef{Creating Tags, , semantic-appdev} for the lisp +functions these translate into. +@end table + +If the symbol @code{%quotemode backquote} is specified, then use +@code{,@@} to splice a list in, and @code{,} to evaluate the expression. +This lets you send @code{$1} as a symbol into a list instead of having +it expanded inline. + +@node Bovine Examples +@chapter Examples + +The rule: + +@example +any-symbol: symbol + ; +@end example + +is equivalent to + +@example +any-symbol: symbol + ( $1 ) + ; +@end example + +which, if it matched the string @samp{"A"}, would return + +@example +( "A" ) +@end example + +If this rule were used like this: + +@example +%token EQUAL "=" +@dots{} +assign: any-symbol EQUAL any-symbol + ( $1 $3 ) + ; +@end example + +it would match @samp{"A=B"}, and return + +@example +( ("A") ("B") ) +@end example + +The letters @samp{A} and @samp{B} come back in lists because +@samp{any-symbol} is a nonterminal, not an actual lexical element. + +To get a better result with nonterminals, use @asis{,} to splice lists +in like this: + +@example +%token EQUAL "=" +@dots{} +assign: any-symbol EQUAL any-symbol + ( ,$1 ,$3 ) + ; +@end example + +which would return + +@example +( "A" "B" ) +@end example + +@node GNU Free Documentation License +@appendix GNU Free Documentation License + +@include doclicense.texi + +@c There is nothing to index at the moment. +@ignore +@node Index +@unnumbered Index +@printindex cp +@end ignore + +@iftex +@contents +@summarycontents +@end iftex + +@bye + +@c Following comments are for the benefit of ispell. + +@c LocalWords: bovinator inlined diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 7e60f4b190f..44462d1d5a8 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -94,7 +94,7 @@ This file documents Calc, the GNU Emacs calculator, included with GNU Emacs @value{EMACSVER}. @end ifnotinfo -Copyright @copyright{} 1990-1991, 2001-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1990--1991, 2001--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -106,8 +106,7 @@ Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -293,7 +292,7 @@ experience with GNU Emacs in order to get the most out of Calc, this manual ought to be readable even if you don't know or use Emacs regularly. -This manual is divided into three major parts:@: the ``Getting +This manual is divided into three major parts: the ``Getting Started'' chapter you are reading now, the Calc tutorial, and the Calc reference manual. @c [when-split] @@ -9910,9 +9909,9 @@ listed. @kindex h n The @kbd{h n} or @kbd{h C-n} (@code{calc-view-news}) command displays -the ``news'' or change history of Calc. This is kept in the file -@file{README}, which Calc looks for in the same directory as the Calc -source files. +the ``news'' or change history of Emacs, and jumps to the most recent +portion concerning Calc (if present). For older history, see the file +@file{etc/CALC-NEWS} in the Emacs distribution. @kindex h C-c @kindex h C-d @@ -10518,7 +10517,7 @@ Integers, fractions, and floats are various ways of describing real numbers. HMS forms also for many purposes act as real numbers. These types can be combined to form complex numbers, modulo forms, error forms, or interval forms. (But these last four types cannot be combined -arbitrarily:@: error forms may not contain modulo forms, for example.) +arbitrarily: error forms may not contain modulo forms, for example.) Finally, all these types of numbers may be combined into vectors, matrices, or algebraic formulas. @@ -13417,12 +13416,91 @@ dates. @xref{Specifying Operators}. To avoid confusion with nameless functions, your date formats should avoid using the @samp{#} character. @menu +* ISO 8601:: * Date Formatting Codes:: * Free-Form Dates:: * Standard Date Formats:: @end menu -@node Date Formatting Codes, Free-Form Dates, Date Formats, Date Formats +@node ISO 8601, Date Formatting Codes, Date Formats, Date Formats +@subsubsection ISO 8601 + +@noindent +@cindex ISO 8601 +The same date can be written down in different formats and Calc tries +to allow you to choose your preferred format. Some common formats are +ambiguous, however; for example, 10/11/2012 means October 11, +2012 in the United States but it means November 10, 2012 in +Europe. To help avoid such ambiguities, the International Organization +for Standardization (ISO) provides the ISO 8601 standard, which +provides three different but easily distinguishable and unambiguous +ways to represent a date. + +The ISO 8601 calendar date representation is + +@example + @var{YYYY}-@var{MM}-@var{DD} +@end example + +@noindent +where @var{YYYY} is the four digit year, @var{MM} is the two-digit month +number (01 for January to 12 for December), and @var{DD} is the +two-digit day of the month (01 to 31). (Note that @var{YYYY} does not +correspond to Calc's date formatting code, which will be introduced +later.) The year, which should be padded with zeros to ensure it has at +least four digits, is the Gregorian year, except that the year before +0001 (1 AD) is the year 0000 (1 BC). The date October 11, 2012 is +written 2012-10-11 in this representation and November 10, 2012 is +written 2012-11-10. + +The ISO 8601 ordinal date representation is + +@example + @var{YYYY}-@var{DDD} +@end example + +@noindent +where @var{YYYY} is the year, as above, and @var{DDD} is the day of the year. +The date December 31, 2011 is written 2011-365 in this representation +and January 1, 2012 is written 2012-001. + +The ISO 8601 week date representation is + +@example + @var{YYYY}-W@var{ww}-@var{D} +@end example + +@noindent +where @var{YYYY} is the ISO week-numbering year, @var{ww} is the two +digit week number (preceded by a literal ``W''), and @var{D} is the day +of the week (1 for Monday through 7 for Sunday). The ISO week-numbering +year is based on the Gregorian year but can differ slightly. The first +week of an ISO week-numbering year is the week with the Gregorian year's +first Thursday in it (equivalently, the week containing January 4); +any day of that week (Monday through Sunday) is part of the same ISO +week-numbering year, any day from the previous week is part of the +previous year. For example, January 4, 2013 is on a Friday, and so +the first week for the ISO week-numbering year 2013 starts on +Monday, December 31, 2012. The day December 31, 2012 is then part of the +Gregorian year 2012 but ISO week-numbering year 2013. In the week +date representation, this week goes from 2013-W01-1 (December 31, +2012) to 2013-W01-7 (January 6, 2013). + +All three ISO 8601 representations arrange the numbers from most +significant to least significant; as well as being unambiguous +representations, they are easy to sort since chronological order in +this formats corresponds to lexicographical order. The hyphens are +sometimes omitted. + +The ISO 8601 standard uses a 24 hour clock; a particular time is +represented by @var{hh}:@var{mm}:@var{ss} where @var{hh} is the +two-digit hour (from 00 to 24), @var{mm} is the two-digit minute (from +00 to 59) and @var{ss} is the two-digit second. The seconds or minutes +and seconds can be omitted, and decimals can be added. If a date with a +time is represented, they should be separated by a literal ``T'', so noon +on December 13, 2012 can be represented as 2012-12-13T12:00. + +@node Date Formatting Codes, Free-Form Dates, ISO 8601, Date Formats @subsubsection Date Formatting Codes @noindent @@ -13463,6 +13541,10 @@ Year: ``91'' for 1991, `` 7'' for 2007, ``+23'' for 23 AD. Year: ``1991'' for 1991, ``23'' for 23 AD. @item YYYY Year: ``1991'' for 1991, ``+23'' for 23 AD. +@item ZYYY +Year: ``1991'' for 1991, ``0023'' for 23 AD, ``0000'' for 1 BC. +@item IYYY +Year: ISO 8601 week-numbering year. @item aa Year: ``ad'' or blank. @item AA @@ -13472,7 +13554,7 @@ Year: ``ad '' or blank. (Note trailing space.) @item AAA Year: ``AD '' or blank. @item aaaa -Year: ``a.d.'' or blank. +Year: ``a.d.@:'' or blank. @item AAAA Year: ``A.D.'' or blank. @item bb @@ -13484,7 +13566,7 @@ Year: `` bc'' or blank. (Note leading space.) @item BBB Year: `` BC'' or blank. @item bbbb -Year: ``b.c.'' or blank. +Year: ``b.c.@:'' or blank. @item BBBB Year: ``B.C.'' or blank. @item M @@ -13511,6 +13593,8 @@ Day: ``07'' for 7th day of month. Day: `` 7'' for 7th day of month. @item W Weekday: ``0'' for Sunday, ``6'' for Saturday. +@item w +Weekday: ``1'' for Monday, ``7'' for Sunday. @item WWW Weekday: ``SUN'' for Sunday. @item Www @@ -13521,12 +13605,16 @@ Weekday: ``sun'' for Sunday. Weekday: ``SUNDAY'' for Sunday. @item Wwww Weekday: ``Sunday'' for Sunday. +@item Iww +Week number: ISO 8601 week number, ``W01'' for week 1. @item d Day of year: ``34'' for Feb. 3. @item ddd Day of year: ``034'' for Feb. 3. @item bdd Day of year: `` 34'' for Feb. 3. +@item T +Letter: Literal ``T''. @item h Hour: ``5'' for 5 AM; ``17'' for 5 PM. @item hh @@ -13548,7 +13636,7 @@ AM/PM: ``am'' or ``pm''. @item PP AM/PM: ``AM'' or ``PM''. @item pppp -AM/PM: ``a.m.'' or ``p.m.''. +AM/PM: ``a.m.@:'' or ``p.m.''. @item PPPP AM/PM: ``A.M.'' or ``P.M.''. @item m @@ -13629,15 +13717,21 @@ abbreviated to one letter, and the alternate forms @samp{a.m.}, @samp{p.m.}, and @samp{mid} are also understood. Obviously @samp{noon} and @samp{midnight} are allowed only on 12:00:00. The words @samp{noon}, @samp{mid}, and @samp{midnight} are also -recognized with no number attached. +recognized with no number attached. Midnight will represent the +beginning of a day. If there is no AM/PM indicator, the time is interpreted in 24-hour format. -To read the date portion, all words and numbers are isolated -from the string; other characters are ignored. All words must -be either month names or day-of-week names (the latter of which -are ignored). Names can be written in full or as three-letter +When reading the date portion, Calc first checks to see if it is an +ISO 8601 week-numbering date; if the string contains an integer +representing the year, a ``W'' followed by two digits for the week +number, and an integer from 1 to 7 representing the weekday (in that +order), then all other characters are ignored and this information +determines the date. Otherwise, all words and numbers are isolated +from the string; other characters are ignored. All words must be +either month names or day-of-week names (the latter of which are +ignored). Names can be written in full or as three-letter abbreviations. Large numbers, or numbers with @samp{+} or @samp{-} signs, @@ -13700,6 +13794,10 @@ command (@pxref{Mode Settings}). @samp{j<, h:mm:ss>} (Julian day plus time) @item 9 @samp{YYddd< hh:mm:ss>} (Year-day format) +@item 10 +@samp{ZYYY-MM-DD Www< hh:mm>} (Org mode format) +@item 11 +@samp{IYYY-Iww-w} (ISO 8601 week numbering format) @end table @node Truncating the Stack, Justification, Date Formats, Display Modes @@ -14024,7 +14122,7 @@ conventions. Like C mode, Pascal mode interprets array brackets and uses a different table of operators. Hexadecimal numbers are entered and displayed with a preceding dollar sign. (Thus the regular meaning of @kbd{$2} during algebraic entry does not work in Pascal mode, though -@kbd{$} (and @kbd{$$}, etc.) not followed by digits works the same as +@kbd{$} (and @kbd{$$}, etc.)@: not followed by digits works the same as always.) No special provisions are made for other non-decimal numbers, vectors, and so on, since there is no universally accepted standard way of handling these in Pascal. @@ -16997,7 +17095,7 @@ this formula will return the Wednesday one week in the future. An exercise for the reader is to modify this formula to yield the same day if the input is already a Wednesday. Another interesting exercise is to preserve the time-of-day portion of the input (@code{newweek} resets -the time to midnight; hint:@: how can @code{newweek} be defined in terms +the time to midnight; hint: how can @code{newweek} be defined in terms of the @code{weekday} function?). @ignore @@ -17343,7 +17441,7 @@ daylight saving computations. This is an internal version of the user-level @code{pwday} function described in the previous section. It takes four arguments: The floating-point date value, the corresponding six-element date list, the day-of-month number, -and the weekday number (0-6). +and the weekday number (0--6). The default daylight saving hook ignores the time zone name, but a more sophisticated hook could use different algorithms for different @@ -27761,18 +27859,14 @@ while typing @kbd{u c au/yr @key{RET}} produces If the units you request are inconsistent with the original units, the number will be converted into your units times whatever ``remainder'' -units are left over. For example, converting @samp{55 mph} into acres +units are left over. (This can be disabled; @pxref{Customizing Calc}.) +For example, converting @samp{55 mph} into acres produces @samp{6.08e-3 acre / m s}. (Recall that multiplication binds more strongly than division in Calc formulas, so the units here are acres per meter-second.) Remainder units are expressed in terms of ``fundamental'' units like @samp{m} and @samp{s}, regardless of the input units. -If you want to disallow using inconsistent units, you can set the customizable variable -@code{calc-ensure-consistent-units} to @code{t} (@pxref{Customizing Calc}). In this case, -if you request units which are inconsistent with the original units, you will be warned about -it and no conversion will occur. - One special exception is that if you specify a single unit name, and a compatible unit appears somewhere in the units expression, then that compatible unit will be converted to the new unit and the @@ -27814,10 +27908,14 @@ Composite units are expanded as if by @kbd{a x}, so that If the value on the stack does not contain any units, @kbd{u c} will prompt first for the old units which this value should be considered -to have, then for the new units. Assuming the old and new units you -give are consistent with each other, the result also will not contain -any units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} -converts the number 2 on the stack to 5.08. +to have, then for the new units. (If the value on the stack can be +simplified so that it doesn't contain any units, like @samp{ft/in} can +be simplified to 12, then @kbd{u c} will still prompt for both old +units and new units. This can be disabled; @pxref{Customizing Calc}.) +Assuming the old and new units you give are consistent with each +other, the result also will not contain any units. For example, +@kbd{@w{u c} cm @key{RET} in @key{RET}} converts the number 2 on the +stack to 5.08. @kindex u b @pindex calc-base-units @@ -34455,7 +34553,7 @@ traversed in this way, it is compared with the original formula (from before the call to @code{normalize}) and, if it has changed, the entire procedure is repeated (starting with @code{normalize}) until no further changes occur. Usually only two iterations are -needed:@: one to simplify the formula, and another to verify that no +needed: one to simplify the formula, and another to verify that no further simplifications were possible. @end defun @@ -35596,6 +35694,17 @@ have different dimensions. The default value of @code{calc-ensure-consistent-uni is @code{nil}. @end defvar +@defvar calc-allow-units-as-numbers +When converting units, the variable @code{calc-allow-units-as-numbers} +determines whether or not values which can be simplified so that +they don't contain units (such as @samp{ft/in} can be simplified to 12) +can be regarded as not containing units. If +@code{calc-allow-units-as-numbers} is non-@code{nil}, then @kbd{u c} +will prompt for both old units and new units when converting an expression +like @samp{ft/in}, otherwise @kbd{u c} will only prompt for the new units. +The default value of @code{calc-allow-units-as-numbers} is @code{t}. +@end defvar + @defvar calc-undo-length The variable @code{calc-undo-length} determines the number of undo steps that Calc will keep track of when @code{calc-quit} is called. @@ -36656,7 +36765,7 @@ time zone number or name from the top of the stack. @xref{Time Zones}. @c 17 @item -A prefix argument specifies a day number (0-6, 0-31, or 0-366). +A prefix argument specifies a day number (0--6, 0--31, or 0--366). @c 18 @item diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 8c574be8f2a..4fa4e12cf88 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -88,7 +88,7 @@ the second with them pointing to the XEmacs manuals. @c The following four macros generate the filenames and titles of the @c main (X)Emacs manual and the Elisp/Lispref manual. Leave the @c Texinfo variable `XEMACS' unset to generate a GNU Emacs version, set it -@c to generate an XEmacs version, e.g. with +@c to generate an XEmacs version, e.g., with @c "makeinfo -DXEMACS cc-mode.texi". @ifset XEMACS @macro emacsman @@ -156,7 +156,7 @@ CC Mode @copying This manual is for CC Mode in Emacs. -Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -167,8 +167,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -189,7 +188,7 @@ developing GNU and promoting software freedom.'' @center @titlefont{CC Mode 5.32} @sp 2 -@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages} +@center A GNU Emacs mode for editing C and C-like languages @sp 2 @center Barry A. Warsaw, Martin Stjernholm, Alan Mackenzie @@ -220,7 +219,7 @@ Objective-C, Java, CORBA IDL (and the variants PSDL and CIDL), Pike and AWK code. It provides syntax-based indentation, font locking, and has several handy commands and some minor modes to make the editing easier. It does not provide tools to look up and navigate between -functions, classes etc - there are other packages for that. +functions, classes, etc.; there are other packages for that. @insertcopying @end ifnottex @@ -370,7 +369,7 @@ Late in 1997, Martin Stjernholm joined Barry on the @ccmode{} Maintainers Team, and implemented the Pike support. In 2000 Martin took over as the sole maintainer. In 2001 Alan Mackenzie joined the team, implementing AWK support in version 5.30. @ccmode{} did not -originally contain the font lock support for its languages --- that +originally contain the font lock support for its languages; that was added in version 5.30. This manual describes @ccmode{} @@ -442,7 +441,7 @@ increasing detail. @itemize @bullet @item The chapter ``Configuration Basics'' tells you @emph{how} to write -customizations - whether in hooks, in styles, in both, or in neither, +customizations: whether in hooks, in styles, in both, or in neither, depending on your needs. It describes the @ccmode{} style system and lists the standard styles that @ccmode{} supplies. @@ -469,7 +468,7 @@ The FAQ contains a list of common problems and questions. @item The next two chapters tell you how to get in touch with the @ccmode{} -project - whether for updating @ccmode{} or submitting bug reports. +project: whether for updating @ccmode{} or submitting bug reports. @end itemize @noindent @@ -646,13 +645,13 @@ you're better off getting an external program like GNU @code{indent}, which will rearrange brace location, amongst other things. Preprocessor directives are handled as syntactic whitespace from other -code, i.e. they can be interspersed anywhere without affecting the +code, i.e., they can be interspersed anywhere without affecting the indentation of the surrounding code, just like comments. The code inside macro definitions is, by default, still analyzed syntactically so that you get relative indentation there just as you'd get if the same code was outside a macro. However, since there is no -hint about the syntactic context, i.e. whether the macro expands to an +hint about the syntactic context, i.e., whether the macro expands to an expression, to some statements, or perhaps to whole functions, the syntactic recognition can be wrong. @ccmode{} manages to figure it out correctly most of the time, though. @@ -716,7 +715,7 @@ current line. When it is @code{nil}, @key{TAB} (re)indents the line only if point is to the left of the first non-whitespace character on the line. Otherwise it inserts some whitespace (a tab or an equivalent number of -spaces - see below) at point. +spaces; see below) at point. @item With some other value, the line is reindented. Additionally, if point is within a string or comment, some whitespace is inserted. @@ -773,7 +772,7 @@ Indents the entire top-level function, class or macro definition encompassing point. It leaves point unchanged. This function can't be used to reindent a nested brace construct, such as a nested class or function, or a Java method. The top-level construct being reindented -must be complete, i.e. it must have both a beginning brace and an ending +must be complete, i.e., it must have both a beginning brace and an ending brace. @item @kbd{C-M-\} (@code{indent-region}) @@ -821,10 +820,10 @@ often (in seconds) progress messages are to be displayed. @kindex C-c C-c @findex comment-region This command comments out the lines that start in the region. With a -negative argument, it does the opposite - it deletes the comment +negative argument, it does the opposite: it deletes the comment delimiters from these lines. @xref{Multi-Line Comments,,, emacs, GNU Emacs Manual}, for fuller details. @code{comment-region} isn't -actually part of @ccmode{} - it is given a @ccmode{} binding for +actually part of @ccmode{}; it is given a @ccmode{} binding for convenience. @item @kbd{M-;} (@code{comment-dwim} or @code{indent-for-comment} @footnote{The name of this command varies between (X)Emacs versions.}) @@ -1021,7 +1020,7 @@ preprocessor statements. A popular programming style, especially for object-oriented languages such as C++ is to write symbols in a mixed case format, where the first letter of each word is capitalized, and not separated by -underscores. E.g. @samp{SymbolsWithMixedCaseAndNoUnderlines}. +underscores. E.g., @samp{SymbolsWithMixedCaseAndNoUnderlines}. These commands move backward or forward to the beginning of the next capitalized word. With prefix argument @var{n}, move @var{n} times. @@ -1043,7 +1042,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 +is to do it seamlessly, i.e., you can use auto fill mode, sentence and 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, @@ -1059,7 +1058,7 @@ set this up for you, so you probably won't have to bother. @cindex paragraph filling Line breaks are by default handled (almost) the same regardless of whether they are made by auto fill mode (@pxref{Auto -Fill,,,@emacsman{}, @emacsmantitle{}}), by paragraph filling (e.g. with +Fill,,,@emacsman{}, @emacsmantitle{}}), by paragraph filling (e.g., with @kbd{M-q}), or explicitly with @kbd{M-j} or similar methods. In string literals, the new line gets the same indentation as the previous nonempty line.@footnote{You can change this default by @@ -1120,7 +1119,7 @@ this function. @xref{Sample .emacs File}. @findex c-context-open-line @findex context-open-line (c-) This is to @kbd{C-o} (@kbd{M-x open-line}) as -@code{c-context-line-break} is to @kbd{RET}. I.e. it works just like +@code{c-context-line-break} is to @kbd{RET}. I.e., it works just like @code{c-context-line-break} but leaves the point before the inserted line break. @end table @@ -1144,18 +1143,18 @@ editing chaotically formatted code. It can also be disconcerting, especially for users who are new to @ccmode{}. @item auto-newline mode This automatically inserts newlines where you'd probably want to type -them yourself, e.g. after typing @samp{@}}s. Its action is suppressed +them yourself, e.g., after typing @samp{@}}s. Its action is suppressed when electric mode is disabled. @item hungry-delete mode This lets you delete a contiguous block of whitespace with a single -key - for example, the newline and indentation just inserted by +key: for example, the newline and indentation just inserted by auto-newline when you want to back up and write a comment after the last statement. @item subword mode This mode makes basic word movement commands like @kbd{M-f} (@code{forward-word}) and @kbd{M-b} (@code{backward-word}) treat the parts of sillycapsed symbols as different words. -E.g. @samp{NSGraphicsContext} is treated as three words @samp{NS}, +E.g., @samp{NSGraphicsContext} is treated as three words @samp{NS}, @samp{Graphics}, and @samp{Context}. @item syntactic-indentation mode When this is enabled (which it normally is), indentation commands such @@ -1177,7 +1176,7 @@ are enabled but the other two modes are disabled. @ccmode{} displays the current state of the first four of these minor modes on the modeline by appending letters to the major mode's name, -one letter for each enabled minor mode - @samp{l} for electric mode, +one letter for each enabled minor mode: @samp{l} for electric mode, @samp{a} for auto-newline mode, @samp{h} for hungry delete mode, and @samp{w} for subword mode. If all these modes were enabled, you'd see @samp{C/lahw}@footnote{The @samp{C} would be replaced with the name of @@ -1235,7 +1234,7 @@ turn it (or them) off. @cindex electric characters @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Most punctuation keys provide @dfn{electric} behavior - as well as +Most punctuation keys provide @dfn{electric} behavior: as well as inserting themselves they perform some other action, such as reindenting the line. This reindentation saves you from having to reindent a line manually after typing, say, a @samp{@}}. A few @@ -1288,7 +1287,7 @@ A star (bound to @code{c-electric-star}) or a slash (@code{c-electric-slash}) causes reindentation when you type it as the second component of a C style block comment opener (@samp{/*}) or a C++ line comment opener (@samp{//}) respectively, but only if the -comment opener is the first thing on the line (i.e. there's only +comment opener is the first thing on the line (i.e., there's only whitespace before it). Additionally, you can configure @ccmode{} so that typing a slash at @@ -1426,7 +1425,7 @@ Auto-newline only triggers when the following conditions hold: @itemize @bullet @item Auto-newline minor mode is enabled, as evidenced by the indicator -@samp{a} after the mode name on the modeline (e.g. @samp{C/a} or +@samp{a} after the mode name on the modeline (e.g., @samp{C/a} or @samp{C/la}). @item @@ -1446,7 +1445,7 @@ definition. These constructs are also known as @dfn{syntactic whitespace} since they are usually ignored when scanning C code.}. @item -No numeric argument was supplied to the command (i.e. it was typed as +No numeric argument was supplied to the command (i.e., it was typed as normal, with no @kbd{C-u} prefix). @end itemize @@ -1631,7 +1630,7 @@ trouble with this in GNU Emacs. @cindex nomenclature @cindex subword In spite of the GNU Coding Standards, it is popular to name a symbol -by mixing uppercase and lowercase letters, e.g. @samp{GtkWidget}, +by mixing uppercase and lowercase letters, e.g., @samp{GtkWidget}, @samp{EmacsFrameClass}, or @samp{NSGraphicsContext}. Here we call these mixed case symbols @dfn{nomenclatures}. Also, each capitalized (or completely uppercase) part of a nomenclature is called a @@ -1819,7 +1818,7 @@ Lock,,, emacs, GNU Emacs Manual}, for ways to enable font locking in @strong{Please note:} The font locking in AWK mode is currently not integrated with the rest of @ccmode{}. Only the last section of this -chapter, @ref{AWK Mode Font Locking}, applies to AWK. The other +chapter, @ref{AWK Mode Font Locking}, applies to AWK@. The other sections apply to the other languages. @menu @@ -1912,7 +1911,7 @@ additional regexps to match those you use: For each language there's a variable @code{*-font-lock-extra-types}, where @samp{*} stands for the language in question. It contains a list of regexps that matches identifiers that should be recognized as types, -e.g. @samp{\\sw+_t} to recognize all identifiers ending with @samp{_t} +e.g., @samp{\\sw+_t} to recognize all identifiers ending with @samp{_t} as is customary in C code. Each regexp should not match more than a single identifier. @@ -2009,7 +2008,7 @@ labels. @vindex font-lock-builtin-face @vindex font-lock-reference-face Preprocessor directives get @code{font-lock-preprocessor-face} if it -exists (i.e. XEmacs). In Emacs they get @code{font-lock-builtin-face} +exists (i.e., XEmacs). In Emacs they get @code{font-lock-builtin-face} or @code{font-lock-reference-face}, for lack of a closer equivalent. @item @@ -2035,14 +2034,14 @@ since those aren't syntactic errors in themselves. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! There are various tools to supply documentation in the source as -specially structured comments, e.g. the standard Javadoc tool in Java. +specially structured comments, e.g., the standard Javadoc tool in Java. @ccmode{} provides an extensible mechanism to fontify such comments and the special markup inside them. @defopt c-doc-comment-style @vindex doc-comment-style (c-) This is a style variable that specifies which documentation comment -style to recognize, e.g. @code{javadoc} for Javadoc comments. +style to recognize, e.g., @code{javadoc} for Javadoc comments. The value may also be a list of styles, in which case all of them are recognized simultaneously (presumably with markup cues that don't @@ -2060,7 +2059,7 @@ The default value for @code{c-doc-comment-style} is Note that @ccmode{} uses this variable to set other variables that handle fontification etc. That's done at mode initialization or when you switch to a style which sets this variable. Thus, if you change it -in some other way, e.g. interactively in a CC Mode buffer, you will need +in some other way, e.g., interactively in a CC Mode buffer, you will need to do @kbd{M-x java-mode} (or whatever mode you're currently using) to reinitialize. @@ -2102,7 +2101,7 @@ initialization and the result is prepended. For an example, see @code{javadoc-font-lock-keywords} in @file{cc-fonts.el}. If you add support for another doc comment style, please consider -contributing it - send a note to @email{bug-cc-mode@@gnu.org}. +contributing it: send a note to @email{bug-cc-mode@@gnu.org}. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -2250,7 +2249,7 @@ more sophisticated facilities, hooks and styles. An Emacs @dfn{hook} is a place to put Lisp functions that you want Emacs to execute later in specific circumstances. @xref{Hooks,,,@lispref{}, @lispreftitle{}}. @ccmode{} supplies a main -hook and a language-specific hook for each language it supports - any +hook and a language-specific hook for each language it supports; any functions you put onto these hooks get executed as the last part of a buffer's initialization. Typically you put most of your customization within the main hook, and use the language-specific hooks to vary the @@ -2351,7 +2350,7 @@ have it enabled by default by placing the following in your @cindex mode hooks @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @c The node name is "CC Hooks" rather than "Hooks" because of a bug in -@c some older versions of Info, e.g. the info.el in GNU Emacs 21.3. +@c some older versions of Info, e.g., the info.el in GNU Emacs 21.3. @c If you go to "Config Basics" and hit on the xref to "CC @c Hooks" the function Info-follow-reference searches for "*Note: CC @c Hooks" from the beginning of the page. If this node were instead @@ -2429,7 +2428,7 @@ file. The variables that @ccmode{}'s style system control are called @dfn{style variables}. Note that style variables are ordinary Lisp variables, which the style system initializes; you can change their -values at any time (e.g. in a hook function). The style system can +values at any time (e.g., in a hook function). The style system can also set other variables, to some extent. @xref{Styles}. @dfn{Style variables} are handled specially in several ways: @@ -2684,7 +2683,7 @@ string. If none of the built-in styles is appropriate, you'll probably want to create a new @dfn{style definition}, possibly based on an existing style. To do this, put the new style's settings into a list with the -following format - the list can then be passed as an argument to the +following format; the list can then be passed as an argument to the function @code{c-add-style}. You can see an example of a style definition in @ref{Sample .emacs File}. @@ -2921,9 +2920,9 @@ visit the file, @ccmode{} will automatically institute these offsets using @code{c-set-offset}. @end defvar -Note that file style settings (i.e. @code{c-file-style}) are applied +Note that file style settings (i.e., @code{c-file-style}) are applied before file offset settings -(i.e. @code{c-file-offsets})@footnote{Also, if either of these are set +(i.e., @code{c-file-offsets})@footnote{Also, if either of these are set in a file's local variable section, all the style variable values are made local to that buffer, even if @code{c-style-variables-are-local-p} is @code{nil}. Since this @@ -3001,7 +3000,7 @@ subsequent lines of C style block comments like @noindent with zero or more stars at the beginning of every line. If you change this variable, please make sure it still matches the comment starter -(i.e. @code{//}) of line comments @emph{and} the line prefix inside +(i.e., @code{//}) of line comments @emph{and} the line prefix inside block comments. @findex c-setup-paragraph-variables @@ -3024,7 +3023,7 @@ the line prefix from the other lines in the comment. @ccmode{} uses adaptive fill mode (@pxref{Adaptive Fill,,, emacs, GNU Emacs Manual}) to make Emacs correctly keep the line prefix when filling paragraphs. That also makes Emacs preserve the text -indentation @emph{inside} the comment line prefix. E.g. in the +indentation @emph{inside} the comment line prefix. E.g., in the following comment, both paragraphs will be filled with the left margins of the texts kept intact: @@ -3055,7 +3054,7 @@ by default). A patch for that is available from @c 2005/11/22: The above is still believed to be the case. which handles things like bulleted lists nicely. There's a convenience function @code{c-setup-filladapt} that tunes the relevant variables in -Filladapt for use in @ccmode{}. Call it from a mode hook, e.g. with +Filladapt for use in @ccmode{}. Call it from a mode hook, e.g., with something like this in your @file{.emacs}: @example @@ -3081,7 +3080,7 @@ then as the comment prefix. It defaults to @samp{* @code{c-block-comment-prefix} typically gets overridden by the default style @code{gnu}, which sets it to blank. You can see the line splitting effect described here by setting a different style, -e.g. @code{k&r} @xref{Choosing a Style}.}, which makes a comment +e.g., @code{k&r} @xref{Choosing a Style}.}, which makes a comment @example /* Got O(n^2) here, which is a Bad Thing. */ @@ -3108,7 +3107,7 @@ most common comment styles, see @ref{Line-Up Functions}. @defopt c-ignore-auto-fill @vindex ignore-auto-fill (c-) When auto fill mode is enabled, @ccmode{} can selectively ignore it -depending on the context the line break would occur in, e.g. to never +depending on the context the line break would occur in, e.g., to never break a line automatically inside a string literal. This variable takes a list of symbols for the different contexts where auto-filling never should occur: @@ -3123,7 +3122,7 @@ Inside a C++ style line comment. @item cpp Inside a preprocessor directive. @item code -Anywhere else, i.e. in normal code. +Anywhere else, i.e., in normal code. @end table By default, @code{c-ignore-auto-fill} is set to @code{(string cpp @@ -3151,7 +3150,7 @@ Note that @ccmode{} sets @code{comment-multi-line} to @code{t} at startup. The reason is that @kbd{M-j} could otherwise produce sequences of single line block comments for texts that should logically be treated as one comment, and the rest of the paragraph handling code -(e.g. @kbd{M-q} and @kbd{M-a}) can't cope with that, which would lead to +(e.g., @kbd{M-q} and @kbd{M-a}) can't cope with that, which would lead to inconsistent behavior. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -3167,7 +3166,7 @@ different ways, depending on the character just typed: @item Braces and Colons @ccmode{} first determines the syntactic context of the brace or colon (@pxref{Syntactic Symbols}), then looks for a corresponding element in -an alist. This element specifies where to put newlines - this is any +an alist. This element specifies where to put newlines: this is any combination of before and after the brace or colon. If no alist element is found, newlines are inserted both before and after a brace, but none are inserted around a colon. See @ref{Hanging Braces} and @@ -3268,7 +3267,7 @@ syntactic symbol, the associated value is either @code{nil}, a list, or a function. @table @asis -@item The Key - the syntactic symbol +@item The Key: the syntactic symbol The syntactic symbols that are useful as keys in this list are @code{brace-list-intro}, @code{statement-cont}, @code{inexpr-class-open}, @code{inexpr-class-close}, and all the @@ -3291,7 +3290,7 @@ lists in this regard, even though they do for normal indentation purposes. It's currently not possible to set automatic newlines on these constructs. -@item The associated value - the ``ACTION'' list or function +@item The associated value: the ``ACTION'' list or function The value associated with each syntactic symbol in this association list is called an @var{action}, which can be either a list or a function which returns a list. @xref{Custom Braces}, for how to use @@ -3380,12 +3379,12 @@ giving a syntactic symbol an @dfn{action function} in @cindex customization, brace hanging An action function is called with two arguments: the syntactic symbol -for the brace (e.g. @code{substatement-open}), and the buffer position +for the brace (e.g., @code{substatement-open}), and the buffer position where the brace has been inserted. Point is undefined on entry to an -action function, but the function must preserve it (e.g. by using +action function, but the function must preserve it (e.g., by using @code{save-excursion}). The return value should be a list containing some combination of @code{before} and @code{after}, including neither -of them (i.e. @code{nil}). +of them (i.e., @code{nil}). @defvar c-syntactic-context @vindex syntactic-context (c-) @@ -3461,7 +3460,7 @@ that the brace appears on a line by itself. Using a mechanism similar to brace hanging (@pxref{Hanging Braces}), colons can also be made to hang using the style variable -@code{c-hanging-colons-alist} - When a colon is typed, @ccmode +@code{c-hanging-colons-alist}: when a colon is typed, @ccmode determines its syntactic context, looks this up in the alist @code{c-changing-colons-alist} and inserts up to two newlines accordingly. Here, however, If @ccmode fails to find an entry for a @@ -3472,17 +3471,17 @@ newly typed colon. @vindex hanging-colons-alist (c-) @table @asis -@item The Key - the syntactic symbol +@item The Key: the syntactic symbol The syntactic symbols appropriate as keys in this association list are: @code{case-label}, @code{label}, @code{access-label}, @code{member-init-intro}, and @code{inher-intro}. @xref{Syntactic Symbols}. Elements with any other value as a key get ignored. -@item The associate value - the ``ACTION'' list +@item The associated value: the ``ACTION'' list The @var{action} here is simply a list containing a combination of the symbols @code{before} and @code{after}. Unlike in @code{c-hanging-braces-alist}, functions as @var{actions} are not -supported - there doesn't seem to be any need for them. +supported; there doesn't seem to be any need for them. @end table @end defopt @@ -3566,7 +3565,7 @@ statements. In addition to @ccmode{} also comes with the criteria function @code{c-semi&comma-no-newlines-for-oneline-inliners}, which suppresses newlines after semicolons inside one-line inline method definitions -(e.g. in C++ or Java). +(e.g., in C++ or Java). @end defun @@ -3580,7 +3579,7 @@ newlines after semicolons inside one-line inline method definitions @dfn{Clean-ups} are mechanisms which remove (or exceptionally, add) whitespace in specific circumstances and are complementary to colon and brace hanging. You enable a clean-up by adding its symbol into -@code{c-cleanup-list}, e.g. like this: +@code{c-cleanup-list}, e.g., like this: @example (add-to-list 'c-cleanup-list 'space-before-funcall) @@ -3588,7 +3587,7 @@ and brace hanging. You enable a clean-up by adding its symbol into On the surface, it would seem that clean-ups overlap the functionality provided by the @code{c-hanging-*-alist} variables. Clean-ups, -however, are used to adjust code ``after-the-fact'', i.e. to adjust +however, are used to adjust code ``after-the-fact'', i.e., to adjust the whitespace in constructs later than when they were typed. Most of the clean-ups remove automatically inserted newlines, and are @@ -3799,7 +3798,7 @@ Auto-newline minor mode are enabled: @item space-before-funcall Insert a space between the function name and the opening parenthesis of a function call. This produces function calls in the style -mandated by the GNU coding standards, e.g. @samp{signal@w{ }(SIGINT, +mandated by the GNU coding standards, e.g., @samp{signal@w{ }(SIGINT, SIG_IGN)} and @samp{abort@w{ }()}. Clean up occurs when the opening parenthesis is typed. This clean-up should never be active in AWK Mode, since such a space is syntactically invalid for user defined @@ -3810,13 +3809,13 @@ Clean up any space between the function name and the opening parenthesis of a function call that has no arguments. This is typically used together with @code{space-before-funcall} if you prefer the GNU function call style for functions with arguments but think it looks ugly when -it's only an empty parenthesis pair. I.e. you will get @samp{signal +it's only an empty parenthesis pair. I.e., you will get @samp{signal (SIGINT, SIG_IGN)}, but @samp{abort()}. Clean up occurs when the closing parenthesis is typed. @item comment-close-slash When inside a block comment, terminate the comment when you type a slash -at the beginning of a line (i.e. immediately after the comment prefix). +at the beginning of a line (i.e., immediately after the comment prefix). This clean-up removes whitespace preceding the slash and if needed, inserts a star to complete the token @samp{*/}. Type @kbd{C-q /} in this situation if you just want a literal @samp{/} inserted. @@ -3910,11 +3909,11 @@ brief and typical example: @noindent The first thing inside each syntactic element is always a @dfn{syntactic symbol}. It describes the kind of construct that was -recognized, e.g. @code{statement}, @code{substatement}, +recognized, e.g., @code{statement}, @code{substatement}, @code{class-open}, @code{class-close}, etc. @xref{Syntactic Symbols}, for a complete list of currently recognized syntactic symbols and their semantics. The remaining entries are various data associated -with the recognized construct - there might be zero or more. +with the recognized construct; there might be zero or more. @cindex anchor position Conceptually, a line of code is always indented relative to some @@ -3951,7 +3950,7 @@ position(s). @end table Running this command on line 4 of this example, we'd see in the echo -area@footnote{With a universal argument (i.e. @kbd{C-u C-c C-s}) the +area@footnote{With a universal argument (i.e., @kbd{C-u C-c C-s}) the analysis is inserted into the buffer as a comment on the current line.}: @@ -4219,7 +4218,7 @@ Method Symbols}. Lines continuing an Objective-C method call. @ref{Objective-C Method Symbols}. @item extern-lang-open -Brace that opens an @code{extern} block (e.g. @code{extern "C" +Brace that opens an @code{extern} block (e.g., @code{extern "C" @{...@}}). @ref{External Scope Symbols}. @item extern-lang-close Brace that closes an @code{extern} block. @ref{External Scope @@ -4246,10 +4245,10 @@ Analogous to the above, but for CORBA CIDL @code{composition} blocks. C++ template argument list continuations. @ref{Class Symbols}. @item inlambda Analogous to @code{inclass} syntactic symbol, but used inside lambda -(i.e. anonymous) functions. Only used in Pike mode. @ref{Statement +(i.e., anonymous) functions. Only used in Pike mode. @ref{Statement Block Symbols}. @item lambda-intro-cont -Lines continuing the header of a lambda function, i.e. between the +Lines continuing the header of a lambda function, i.e., between the @code{lambda} keyword and the function body. Only used in Pike mode. @ref{Statement Block Symbols}. @item inexpr-statement @@ -4311,7 +4310,7 @@ top-level construct introduction so it has the syntax the brace that opens a top-level function definition. Line 9 is the corresponding @code{defun-close} since it contains the brace that closes the top-level -function definition. Line 4 is a @code{defun-block-intro}, i.e. it is +function definition. Line 4 is a @code{defun-block-intro}, i.e., it is the first line of a brace-block, enclosed in a top-level function definition. @@ -4360,7 +4359,7 @@ structs, and unions are essentially equivalent syntactically (and are very similar semantically), so replacing the @code{class} keyword in the example above with @code{struct} or @code{union} would still result in a syntax of @code{class-open} for line 4 @footnote{This is the case even -for C and Objective-C. For consistency, structs in all supported +for C and Objective-C@. For consistency, structs in all supported languages are syntactically equivalent to classes. Note however that the keyword @code{class} is meaningless in C and Objective-C.}. Similarly, line 18 is assigned @code{class-close} syntax. @@ -4571,7 +4570,7 @@ example: Here, lines 4, 7, and 10 are all assigned @code{case-label} syntax, while lines 5 and 8 are assigned @code{statement-case-intro}. Line 11 is treated slightly differently since it contains a brace that opens a -block --- it is given @code{statement-case-open} syntax. +block; it is given @code{statement-case-open} syntax. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @node Brace List Symbols, External Scope Symbols, Switch Statement Symbols, Syntactic Symbols @@ -4668,7 +4667,7 @@ where @code{inextern-lang} is a modifier similar in purpose to There are various other top level blocks like @code{extern}, and they are all treated in the same way except that the symbols are named after -the keyword that introduces the block. E.g. C++ namespace blocks get +the keyword that introduces the block. E.g., C++ namespace blocks get the three symbols @code{namespace-open}, @code{namespace-close} and @code{innamespace}. The currently recognized top level blocks are: @@ -4799,7 +4798,7 @@ Line 2 is assigned the @code{func-decl-cont} syntax. @ssindex comment-intro Line 4 is assigned both @code{defun-block-intro} @emph{and} @code{comment-intro} syntax. A syntactic element with -@code{comment-intro} has no anchor point --- It is always accompanied +@code{comment-intro} has no anchor point. It is always accompanied by another syntactic element which does have one. @item @@ -4857,9 +4856,9 @@ Line 17 is assigned @code{stream-op} syntax. @ssindex cpp-define-intro @ssindex cpp-macro-cont Multiline preprocessor macro definitions are normally handled just like -other code, i.e. the lines inside them are indented according to the +other code, i.e., the lines inside them are indented according to the syntactic analysis of the preceding lines inside the macro. The first -line inside a macro definition (i.e. the line after the starting line of +line inside a macro definition (i.e., the line after the starting line of the cpp directive itself) gets @code{cpp-define-intro}. In this example: @example @@ -4875,7 +4874,7 @@ line 1 is given the syntactic symbol @code{cpp-macro}. The first line of a cpp directive is always given that symbol. Line 2 is given @code{cpp-define-intro}, so that you can give the macro body as a whole some extra indentation. Lines 3 through 5 are then analyzed as normal -code, i.e. @code{substatement} on lines 3 and 4, and @code{else-clause} +code, i.e., @code{substatement} on lines 3 and 4, and @code{else-clause} on line 5. The syntactic analysis inside macros can be turned off with @@ -4960,7 +4959,7 @@ the declaration is an annotation. There are a few occasions where a statement block might be used inside an expression. One is in C or C++ code using the gcc extension for -this, e.g: +this, e.g.: @example 1: int res = (@{ @@ -5025,7 +5024,7 @@ handled like this too. @ssindex knr-argdecl-intro @ssindex knr-argdecl Two other syntactic symbols can appear in old style, non-prototyped C -code @footnote{a.k.a. K&R C, or Kernighan & Ritchie C}: +code @footnote{a.k.a.@: K&R C, or Kernighan & Ritchie C}: @example 1: int add_three_integers(a, b, c) @@ -5039,7 +5038,7 @@ code @footnote{a.k.a. K&R C, or Kernighan & Ritchie C}: Here, line 2 is the first line in an argument declaration list and so is given the @code{knr-argdecl-intro} syntactic symbol. Subsequent lines -(i.e. lines 3 and 4 in this example), are given @code{knr-argdecl} +(i.e., lines 3 and 4 in this example), are given @code{knr-argdecl} syntax. @@ -5283,15 +5282,15 @@ values that the special symbols correspond to: @item + @code{c-basic-offset} times 1 @item - -@code{c-basic-offset} times -1 +@code{c-basic-offset} times @minus{}1 @item ++ @code{c-basic-offset} times 2 @item -- -@code{c-basic-offset} times -2 +@code{c-basic-offset} times @minus{}2 @item * @code{c-basic-offset} times 0.5 @item / -@code{c-basic-offset} times -0.5 +@code{c-basic-offset} times @minus{}0.5 @end table @item A vector @@ -5333,10 +5332,10 @@ Use the first offset that doesn't evaluate to @code{nil}. Subsequent elements of the list don't get evaluated. @item min Use the minimum of all the offsets. All must be either relative or -absolute - they can't be mixed. +absolute; they can't be mixed. @item max Use the maximum of all the offsets. All must be either relative or -absolute - they can't be mixed. +absolute; they can't be mixed. @item add Add all the evaluated offsets together. Exactly one of them may be absolute, in which case the result is absolute. Any relative offsets @@ -5494,7 +5493,7 @@ any problems writing custom line-up functions for AWK mode. The calling convention for line-up functions is described fully in @ref{Custom Line-Up}. Roughly speaking, the return value is either an offset itself (such as @code{+} or @code{[0]}) or it's @code{nil}, -meaning ``this function is inappropriate in this case - try a +meaning ``this function is inappropriate in this case; try a different one''. @xref{c-offsets-alist}. The subsections below describe all the standard line-up functions, @@ -5553,7 +5552,7 @@ parentheses and statements within brace blocks. @findex lineup-close-paren (c-) Line up the closing paren under its corresponding open paren if the open paren is followed by code. If the open paren ends its line, no -indentation is added. E.g: +indentation is added. E.g.: @example @group @@ -5607,7 +5606,7 @@ discussion of this ``DWIM'' measure. @defun c-indent-one-line-block @findex indent-one-line-block (c-) -Indent a one line block @code{c-basic-offset} extra. E.g: +Indent a one line block @code{c-basic-offset} extra. E.g.: @example @group @@ -5641,7 +5640,7 @@ which makes the function usable in list expressions. @defun c-indent-multi-line-block @findex indent-multi-line-block (c-) -Indent a multiline block @code{c-basic-offset} extra. E.g: +Indent a multiline block @code{c-basic-offset} extra. E.g.: @example @group @@ -5680,7 +5679,7 @@ block, which makes the function usable in list expressions. Line up statements for coding standards which place the first statement in a block on the same line as the block opening brace@footnote{Run-in style doesn't really work too well. You might need to write your own -custom line-up functions to better support this style.}. E.g: +custom line-up functions to better support this style.}. E.g.: @example @group @@ -5703,7 +5702,7 @@ expressions. @defun c-lineup-inexpr-block @findex lineup-inexpr-block (c-) This can be used with the in-expression block symbols to indent the -whole block to the column where the construct is started. E.g. for Java +whole block to the column where the construct is started. E.g., for Java anonymous classes, this lines up the class under the @samp{new} keyword, and in Pike it lines up the lambda function body under the @samp{lambda} keyword. Returns @code{nil} if the block isn't part of such a @@ -5763,7 +5762,7 @@ indents relative to the surrounding block just like @defun c-lineup-whitesmith-in-block @findex lineup-whitesmith-in-block (c-) Line up lines inside a block in Whitesmith style. It's done in a way -that works both when the opening brace hangs and when it doesn't. E.g: +that works both when the opening brace hangs and when it doesn't. E.g.: @example @group @@ -5793,7 +5792,7 @@ In the first case the indentation is kept unchanged, in the second @code{inline-close}, @code{block-close}, @code{brace-list-close}, @code{brace-list-intro}, @code{statement-block-intro}, @code{arglist-intro}, @code{arglist-cont-nonempty}, -@code{arglist-close}, and all @code{in*} symbols, e.g. @code{inclass} +@code{arglist-close}, and all @code{in*} symbols, e.g., @code{inclass} and @code{inextern-lang}. @end defun @@ -5817,7 +5816,7 @@ Line up the current argument line under the first argument. As a special case, if an argument on the same line as the open parenthesis starts with a brace block opener, the indentation is @code{c-basic-offset} only. This is intended as a ``DWIM'' measure in -cases like macros that contain statement blocks, e.g: +cases like macros that contain statement blocks, e.g.: @example @group @@ -5853,7 +5852,7 @@ brace block. @defun c-lineup-multi-inher @findex lineup-multi-inher (c-) Line up the classes in C++ multiple inheritance clauses and member -initializers under each other. E.g: +initializers under each other. E.g.: @example @group @@ -5896,7 +5895,7 @@ Line up Java implements and extends declarations. If class names follow on the same line as the @samp{implements}/@samp{extends} keyword, they are lined up under each other. Otherwise, they are indented by adding @code{c-basic-offset} to the column of the keyword. -E.g: +E.g.: @example @group @@ -5930,7 +5929,7 @@ same line as the throws keyword, they are lined up under each other. Otherwise, they are indented by adding @code{c-basic-offset} to the column of the @samp{throws} keyword. The @samp{throws} keyword itself is also indented by @code{c-basic-offset} from the function declaration -start if it doesn't hang. E.g: +start if it doesn't hang. E.g.: @example @group @@ -6015,7 +6014,7 @@ line. @defun c-lineup-argcont @findex lineup-argcont (c-) -Line up a continued argument. E.g: +Line up a continued argument. E.g.: @example @group @@ -6053,7 +6052,7 @@ if ( x < 10 Since this function doesn't do anything for lines without an infix operator you typically want to use it together with some other lineup -settings, e.g. as follows (the @code{arglist-close} setting is just a +settings, e.g., as follows (the @code{arglist-close} setting is just a suggestion to get a consistent style): @example @@ -6087,7 +6086,7 @@ operator too, try to align it with the first one. @defun c-lineup-math @findex lineup-math (c-) Like @code{c-lineup-assignments} but indent with @code{c-basic-offset} -if no assignment operator was found on the first line. I.e. this +if no assignment operator was found on the first line. I.e., this function is the same as specifying a list @code{(c-lineup-assignments +)}. It's provided for compatibility with old configurations. @@ -6102,7 +6101,7 @@ function is the same as specifying a list @code{(c-lineup-assignments Line up ``cascaded calls'' under each other. If the line begins with @code{->} or @code{.} and the preceding line ends with one or more function calls preceded by the same token, then the arrow is lined up -with the first of those tokens. E.g: +with the first of those tokens. E.g.: @example @group @@ -6123,7 +6122,7 @@ expressions. @defun c-lineup-streamop @findex lineup-streamop (c-) -Line up C++ stream operators (i.e. @samp{<<} and @samp{>>}). +Line up C++ stream operators (i.e., @samp{<<} and @samp{>>}). @workswith @code{stream-op}. @end defun @@ -6134,7 +6133,7 @@ Line up C++ stream operators (i.e. @samp{<<} and @samp{>>}). @findex lineup-string-cont (c-) Line up a continued string under the one it continues. A continued string in this sense is where a string literal follows directly after -another one. E.g: +another one. E.g.: @example @group @@ -6204,7 +6203,7 @@ to handle most of the common comment styles. Some examples: @end example The style variable @code{c-comment-prefix-regexp} is used to recognize -the comment line prefix, e.g. the @samp{*} that usually starts every +the comment line prefix, e.g., the @samp{*} that usually starts every line inside a comment. @workswith The @code{c} syntactic symbol. @@ -6243,7 +6242,7 @@ is equivalent to @code{(@r{@var{value}} . -1000)}. @findex lineup-knr-region-comment (c-) Line up a comment in the ``K&R region'' with the declaration. That is the region between the function or class header and the beginning of the -block. E.g: +block. E.g.: @example @group @@ -6283,7 +6282,7 @@ already has; think of it as an identity function for lineups. @defun c-lineup-cpp-define @findex lineup-cpp-define (c-) Line up macro continuation lines according to the indentation of the -construct preceding the macro. E.g: +construct preceding the macro. E.g.: @example @group @@ -6315,7 +6314,7 @@ int dribble() @{ If @code{c-syntactic-indentation-in-macros} is non-@code{nil}, the function returns the relative indentation to the macro start line to -allow accumulation with other offsets. E.g. in the following cases, +allow accumulation with other offsets. E.g., in the following cases, @code{cpp-define-intro} is combined with the @code{statement-block-intro} that comes from the @samp{do @{} that hangs on the @samp{#define} line: @@ -6390,7 +6389,7 @@ The @samp{x} line is aligned to the text after the @samp{:} on the This is done only in an @samp{asm} or @samp{__asm__} block, and only to those lines mentioned. Anywhere else @code{nil} is returned. The usual arrangement is to have this routine as an extra feature at the start of -arglist lineups, e.g. +arglist lineups, e.g.: @example (c-lineup-gcc-asm-reg c-lineup-arglist) @@ -6410,7 +6409,7 @@ that those lines could be analyzed as either topmost-intro-cont or statement-cont. It's used for @code{topmost-intro-cont} by default, but you might consider using @code{+} instead.}. For lines preceding a definition, zero is used. For other lines, @code{c-basic-offset} is -added to the indentation. E.g: +added to the indentation. E.g.: @example @group @@ -6476,17 +6475,18 @@ think is generally useful, you're very welcome to contribute it; please contact @email{bug-cc-mode@@gnu.org}. Line-up functions are passed a single argument, the syntactic -element (see below). The return value is a @code{c-offsets-alist} -offset specification: for example, an integer, a symbol such as -@code{+}, a vector, @code{nil}@footnote{Returning @code{nil} is useful -when the offset specification for a syntactic element is a list -containing the line-up function (@pxref{c-offsets-alist}).}, or even -another line-up function. Full details of these are in -@ref{c-offsets-alist}. +element (see below). At the time of the call, point will be somewhere +on the line being indented. The return value is a +@code{c-offsets-alist} offset specification: for example, an integer, +a symbol such as @code{+}, a vector, @code{nil}@footnote{Returning +@code{nil} is useful when the offset specification for a syntactic +element is a list containing the line-up function +(@pxref{c-offsets-alist}).}, or even another line-up function. Full +details of these are in @ref{c-offsets-alist}. Line-up functions must not move point or change the content of the buffer (except temporarily). They are however allowed to do -@dfn{hidden buffer changes}, i.e. setting text properties for caching +@dfn{hidden buffer changes}, i.e., setting text properties for caching purposes etc. Buffer undo recording is disabled while they run. The syntactic element passed as the parameter to a line-up function is @@ -6508,19 +6508,19 @@ earlier. Line-up functions are still passed this cons cell, so as to preserve compatibility with older configurations. In the future, we may decide to convert to using the full list format---you can prepare your setup for this by using the access functions -(@code{c-langelem-sym}, etc.) described below. +(@code{c-langelem-sym}, etc.)@: described below. @vindex c-syntactic-element @vindex syntactic-element (c-) @vindex c-syntactic-context @vindex syntactic-context (c-) -Some syntactic symbols, e.g. @code{arglist-cont-nonempty}, have more -info in the syntactic element - typically other positions that can be +Some syntactic symbols, e.g., @code{arglist-cont-nonempty}, have more +info in the syntactic element: typically other positions that can be interesting besides the anchor position. That info can't be accessed through the passed argument, which is a cons cell. Instead, you can get this information from the variable @code{c-syntactic-element}, which is dynamically bound to the complete syntactic element. The -variable @code{c-syntactic-context} might also be useful - it gets +variable @code{c-syntactic-context} might also be useful: it gets dynamically bound to the complete syntactic context. @xref{Custom Braces}. @@ -6600,9 +6600,9 @@ Line-Up}). When the indentation engine calls this hook, the variable @code{c-syntactic-context} is bound to the current syntactic context -(i.e. what you would get by typing @kbd{C-c C-s} on the source line. +(i.e., what you would get by typing @kbd{C-c C-s} on the source line. @xref{Custom Braces}.). Note that you should not change point or mark -inside a @code{c-special-indent-hook} function, i.e. you'll probably +inside a @code{c-special-indent-hook} function, i.e., you'll probably want to wrap your function in a @code{save-excursion}@footnote{The numerical value returned by @code{point} will change if you change the indentation of the line within a @code{save-excursion} form, but point @@ -6673,11 +6673,11 @@ customized with these variables: These variables control the alignment columns for line continuation backslashes in multiline macros. They are used by the functions that automatically insert or align such backslashes, -e.g. @code{c-backslash-region} and @code{c-context-line-break}. +e.g., @code{c-backslash-region} and @code{c-context-line-break}. @code{c-backslash-column} specifies the minimum column for the backslashes. If any line in the macro goes past this column, then the -next tab stop (i.e. next multiple of @code{tab-width}) in that line is +next tab stop (i.e., next multiple of @code{tab-width}) in that line is used as the alignment column for all the backslashes, so that they remain in a single column. However, if any lines go past @code{c-backslash-max-column} then the backslashes in the rest of the @@ -6693,7 +6693,7 @@ the automatic alignment of backslashes, use @vindex auto-align-backslashes (c-) Align automatically inserted line continuation backslashes if non-@code{nil}. When line continuation backslashes are inserted -automatically for line breaks in multiline macros, e.g. by +automatically for line breaks in multiline macros, e.g., by @code{c-context-line-break}, they are aligned with the other backslashes in the same macro if this flag is set. @@ -6878,9 +6878,9 @@ pathological code can cause @ccmode{} to perform fairly badly. This section gives some insight in how @ccmode{} operates, how that interacts with some coding styles, and what you can use to improve performance. -The overall goal is that @ccmode{} shouldn't be overly slow (i.e. take +The overall goal is that @ccmode{} shouldn't be overly slow (i.e., take more than a fraction of a second) in any interactive operation. -I.e. it's tuned to limit the maximum response time in single operations, +I.e., it's tuned to limit the maximum response time in single operations, which is sometimes at the expense of batch-like operations like reindenting whole blocks. If you find that @ccmode{} gradually gets slower and slower in certain situations, perhaps as the file grows in @@ -6898,7 +6898,7 @@ gets. @findex beginning-of-defun In earlier versions of @ccmode{}, we used to recommend putting the -opening brace of a top-level construct@footnote{E.g. a function in C, +opening brace of a top-level construct@footnote{E.g., a function in C, or outermost class definition in C++ or Java.} into the leftmost column. Earlier still, this used to be a rigid Emacs constraint, as embodied in the @code{beginning-of-defun} function. @ccmode now @@ -6940,7 +6940,7 @@ XEmacs users can set the variable tells @ccmode{} to use XEmacs-specific built-in functions which, in some circumstances, can locate the top-most opening brace much more quickly than @code{beginning-of-defun}. Preliminary testing has shown that for -styles where these braces are hung (e.g. most JDK-derived Java styles), +styles where these braces are hung (e.g., most JDK-derived Java styles), this hack can improve performance of the core syntax parsing routines from 3 to 60 times. However, for styles which @emph{do} conform to Emacs's recommended style of putting top-level braces in column zero, @@ -6951,7 +6951,7 @@ in Emacs since the necessary built-in functions don't exist (in Emacs 22.1 as of this writing in February 2007). Text properties are used to speed up skipping over syntactic whitespace, -i.e. comments and preprocessor directives. Indenting a line after a +i.e., comments and preprocessor directives. Indenting a line after a huge macro definition can be slow the first time, but after that the text properties are in place and it should be fast (even after you've edited other parts of the file and then moved back). @@ -6959,7 +6959,7 @@ edited other parts of the file and then moved back). Font locking can be a CPU hog, especially the font locking done on decoration level 3 which tries to be very accurate. Note that that level is designed to be used with a font lock support mode that only -fontifies the text that's actually shown, i.e. Lazy Lock or Just-in-time +fontifies the text that's actually shown, i.e., Lazy Lock or Just-in-time Lock mode, so make sure you use one of them. Fontification of a whole buffer with some thousand lines can often take over a minute. That is a known weakness; the idea is that it never should happen. @@ -6998,14 +6998,14 @@ geared to be used interactively to edit new code. There's currently no intention to change this goal. If you want to reformat old code, you're probably better off using some -other tool instead, e.g. @ref{Top, , GNU indent, indent, The `indent' +other tool instead, e.g., @ref{Top, , GNU indent, indent, The `indent' Manual}, which has more powerful reformatting capabilities than @ccmode{}. @item The support for C++ templates (in angle brackets) is not yet complete. When a non-nested template is used in a declaration, @ccmode{} indents -it and font-locks it OK. Templates used in expressions, and nested +it and font-locks it OK@. Templates used in expressions, and nested templates do not fare so well. Sometimes a workaround is to refontify the expression after typing the closing @samp{>}. @@ -7063,7 +7063,7 @@ too by adding this to your @code{c-initialization-hook}: @end example @xref{Getting Started}. This is a very common question. If you want -this to be the default behavior, don't lobby us, lobby RMS! @t{:-)} +this to be the default behavior, don't lobby us, lobby RMS@! @t{:-)} @item @emph{How do I stop my code jumping all over the place when I type?} @@ -7169,7 +7169,7 @@ to include any code that appears @emph{before} your bug example, if you think it might affect our ability to reproduce it. Please try to produce the problem in an Emacs instance without any -customizations loaded (i.e. start it with the @samp{-q --no-site-file} +customizations loaded (i.e., start it with the @samp{-q --no-site-file} arguments). If it works correctly there, the problem might be caused by faulty customizations in either your own or your site configuration. In that case, we'd appreciate it if you isolate the diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index beefa3e9c40..83df411cb23 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -6,7 +6,7 @@ @copying This file documents the GNU Emacs Common Lisp emulation package. -Copyright @copyright{} 1993, 2001-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 2001--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -17,8 +17,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -191,11 +190,11 @@ but use different function names (in fact, @file{cl.el} mainly just defines aliases to the @file{cl-lib.el} definitions). Where @file{cl-lib.el} defines a function called, for example, @code{cl-incf}, @file{cl.el} uses the same name but without the -@samp{cl-} prefix, e.g.@: @code{incf} in this example. There are a few +@samp{cl-} prefix, e.g., @code{incf} in this example. There are a few exceptions to this. First, functions such as @code{cl-defun} where the unprefixed version was already used for a standard Emacs Lisp function. In such cases, the @file{cl.el} version adds a @samp{*} -suffix, e.g.@: @code{defun*}. Second, there are some obsolete features +suffix, e.g., @code{defun*}. Second, there are some obsolete features that are only implemented in @file{cl.el}, not in @file{cl-lib.el}, because they are replaced by other standard Emacs Lisp features. Finally, in a very few cases the old @file{cl.el} versions do not @@ -704,14 +703,6 @@ The type symbol @code{real} is a synonym for @code{number}, and The type symbols @code{character} and @code{string-char} match integers in the range from 0 to 255. -@c No longer relevant, so covered by first item above (float -> floatp). -@ignore -@item -The type symbol @code{float} uses the @code{cl-floatp-safe} predicate -defined by this package rather than @code{floatp}, so it will work -correctly even in Emacs versions without floating-point support. -@end ignore - @item The type list @code{(integer @var{low} @var{high})} represents all integers between @var{low} and @var{high}, inclusive. Either bound @@ -749,7 +740,7 @@ This function attempts to convert @var{object} to the specified @var{type}. If @var{object} is already of that type as determined by @code{cl-typep}, it is simply returned. Otherwise, certain types of conversions will be made: If @var{type} is any sequence type -(@code{string}, @code{list}, etc.) then @var{object} will be +(@code{string}, @code{list}, etc.)@: then @var{object} will be converted to that type if possible. If @var{type} is @code{character}, then strings of length one and symbols with one-character names can be coerced. If @var{type} is @code{float}, @@ -818,8 +809,9 @@ not compare strings against vectors of integers. Also note that the Common Lisp functions @code{member} and @code{assoc} use @code{eql} to compare elements, whereas Emacs Lisp follows the MacLisp tradition and uses @code{equal} for these two functions. -In Emacs, use @code{memq} (or @code{cl-member}) and @code{assq} (or -@code{cl-assoc}) to get functions which use @code{eql} for comparisons. +The functions @code{cl-member} and @code{cl-assoc} use @code{eql}, +as in Common Lisp. The standard Emacs Lisp functions @code{memq} and +@code{assq} use @code{eq}, and the standard @code{memql} uses @code{eql}. @node Control Structure @chapter Control Structure @@ -898,8 +890,8 @@ generalized variables. @node Setf Extensions @subsection Setf Extensions -Several standard (e.g.@: @code{car}) and Emacs-specific -(e.g.@: @code{window-point}) Lisp functions are @code{setf}-able by default. +Several standard (e.g., @code{car}) and Emacs-specific +(e.g., @code{window-point}) Lisp functions are @code{setf}-able by default. This package defines @code{setf} handlers for several additional functions: @itemize @@ -1200,9 +1192,6 @@ The only exceptions are plain variables and calls to bound on entry, it is simply made unbound by @code{makunbound} or @code{fmakunbound} on exit. @end ignore - -Note that the @file{cl.el} version of this macro behaves slightly -differently. @xref{Obsolete Macros}. @end defmac @defmac cl-letf* (bindings@dots{}) forms@dots{} @@ -2924,14 +2913,6 @@ This predicate tests whether @var{integer} is even. It is an error if the argument is not an integer. @end defun -@ignore -@defun cl-floatp-safe object -This predicate tests whether @var{object} is a floating-point -number. On systems that support floating-point, this is equivalent -to @code{floatp}. On other systems, this always returns @code{nil}. -@end defun -@end ignore - @node Numerical Functions @section Numerical Functions @@ -4870,7 +4851,7 @@ direct C-language calls to the message routines rather than going through the Lisp @code{message} function. @c Bug#411. -Note that many primitives (e.g.@: @code{+}) have special byte-compile +Note that many primitives (e.g., @code{+}) have special byte-compile handling. Attempts to redefine such functions using @code{flet} will fail if byte-compiled. @c Or cl-flet. @@ -4888,13 +4869,6 @@ form (@pxref{Obsolete Lexical Binding}), rather than the true lexical binding that @code{cl-labels} uses. @end defmac -@defmac letf (bindings@dots{}) forms@dots{} -This macro is almost exactly the same as @code{cl-letf}, which -replaces it (@pxref{Modify Macros}). The only difference is in -details that relate to some deprecated usage of @code{symbol-function} -in place forms. -@end defmac - @node Obsolete Setf Customization @appendixsec Obsolete Ways to Customize Setf diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi index 1f9a401df90..c40a5e313f5 100644 --- a/doc/misc/dbus.texi +++ b/doc/misc/dbus.texi @@ -9,7 +9,7 @@ @syncodeindex fn cp @copying -Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -20,8 +20,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi index cd1ad79eab5..1e3d11f6dc6 100644 --- a/doc/misc/dired-x.texi +++ b/doc/misc/dired-x.texi @@ -19,7 +19,7 @@ @comment %**end of header (This is for running Texinfo on a region.) @copying -Copyright @copyright{} 1994-1995, 1999, 2001-2012 +Copyright @copyright{} 1994--1995, 1999, 2001--2013 Free Software Foundation, Inc. @quotation @@ -31,8 +31,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -883,7 +882,7 @@ Dired buffers, is like @code{shell-command}, but it runs with @file{dired-x} provides a method of visiting or editing a file mentioned in the buffer you are viewing (e.g., a mail buffer, a news article, a -@file{README} file, etc.) or to test if that file exists. You can then modify +@file{README} file, etc.)@: or to test if that file exists. You can then modify this in the minibuffer after snatching the file name. When installed @file{dired-x} will substitute @code{dired-x-find-file} for diff --git a/doc/misc/doclicense.texi b/doc/misc/doclicense.texi index a511ffcd5a8..9c3bbe56e91 100644 --- a/doc/misc/doclicense.texi +++ b/doc/misc/doclicense.texi @@ -1,4 +1,3 @@ -@c -*-texinfo-*- @c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @@ -6,7 +5,7 @@ @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies @@ -93,16 +92,16 @@ An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain -@sc{ascii} without markup, Texinfo input format, La@TeX{} input -format, @acronym{SGML} or @acronym{XML} using a publicly available -@acronym{DTD}, and standard-conforming simple @acronym{HTML}, -PostScript or @acronym{PDF} designed for human modification. Examples -of transparent image formats include @acronym{PNG}, @acronym{XCF} and -@acronym{JPG}. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, @acronym{SGML} or -@acronym{XML} for which the @acronym{DTD} and/or processing tools are -not generally available, and the machine-generated @acronym{HTML}, -PostScript or @acronym{PDF} produced by some word processors for +ASCII without markup, Texinfo input format, La@TeX{} input +format, SGML or XML using a publicly available +DTD, and standard-conforming simple HTML, +PostScript or PDF designed for human modification. Examples +of transparent image formats include PNG, XCF and +JPG@. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, SGML or +XML for which the DTD and/or processing tools are +not generally available, and the machine-generated HTML, +PostScript or PDF produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, @@ -482,7 +481,7 @@ license notices just after the title page: @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with@dots{}Texts.'' line with this: +replace the ``with@dots{}Texts.''@: line with this: @smallexample @group @@ -501,7 +500,6 @@ recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. - @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi index 6db27a38808..c7f3e3b1a61 100644 --- a/doc/misc/ebrowse.texi +++ b/doc/misc/ebrowse.texi @@ -10,7 +10,7 @@ @copying This file documents Ebrowse, a C++ class browser for GNU Emacs. -Copyright @copyright{} 2000-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2000--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -21,8 +21,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -45,7 +44,7 @@ developing GNU and promoting software freedom.'' @contents @ifnottex -@node Top, Overview, (dir), (dir) +@node Top @top Ebrowse You can browse C++ class hierarchies from within Emacs by using @@ -68,7 +67,7 @@ Ebrowse. -@node Overview, Generating browser files, Top, Top +@node Overview @chapter Introduction When working in software projects using C++, I frequently missed @@ -178,8 +177,7 @@ them, if you like. -@node Generating browser files, Loading a Tree, Overview, Top -@comment node-name, next, previous, up +@node Generating browser files @chapter Processing Source Files @cindex @command{ebrowse}, the program @@ -226,7 +224,7 @@ available command line options.@refill @comment name, next, prev, up -@node Input files, Output file, Generating browser files, Generating browser files +@node Input files @section Specifying Input Files @table @samp @@ -267,7 +265,7 @@ properly identifying friend functions of a class. @comment name, next, prev, up -@node Output file, Structs and unions, Input files, Generating browser files +@node Output file @section Changing the Output File Name @table @samp @@ -302,7 +300,7 @@ with this command line option. @comment name, next, prev, up -@node Structs and unions, Matching, Output file, Generating browser files +@node Structs and unions @section Structs and Unions @cindex structs @cindex unions @@ -322,7 +320,7 @@ tree. @comment name, next, prev, up -@node Matching, Verbosity, Structs and unions, Generating browser files +@node Matching @section Regular Expressions @cindex regular expressions, recording @@ -375,8 +373,7 @@ the probability that it will no longer match after editing the file. -@node Verbosity, , Matching, Generating browser files -@comment node-name, next, previous, up +@node Verbosity @section Verbose Mode @cindex verbose operation @@ -396,8 +393,7 @@ the names of the classes seen. -@node Loading a Tree, Tree Buffers, Generating browser files, Top -@comment node-name, next, previous, up +@node Loading a Tree @chapter Starting to Browse @cindex loading @cindex browsing @@ -437,15 +433,14 @@ where no highlight is displayed. @comment *** @comment **************************************************************** -@node Tree Buffers, Member Buffers, Loading a Tree, Top -@comment node-name, next, previous, up +@node Tree Buffers @chapter Tree Buffers @cindex tree buffer mode @cindex class trees Class trees are displayed in @dfn{tree buffers} which install their own major mode. Most Emacs keys work in tree buffers in the usual way, -e.g.@: you can move around in the buffer with the usual @kbd{C-f}, +e.g., you can move around in the buffer with the usual @kbd{C-f}, @kbd{C-v} etc., or you can search with @kbd{C-s}. Tree-specific commands are bound to simple keystrokes, similar to @@ -469,8 +464,7 @@ buffers. -@node Source Display, Member Display, Tree Buffers, Tree Buffers -@comment node-name, next, previous, up +@node Source Display @section Viewing and Finding Class Declarations @cindex viewing, class @cindex finding a class @@ -498,8 +492,7 @@ The same functionality is available from the menu opened with -@node Member Display, Go to Class, Source Display, Tree Buffers -@comment node-name, next, previous, up +@node Member Display @section Displaying Members @cindex @samp{*Members*} buffer @cindex @samp{*Globals*} @@ -562,8 +555,7 @@ These lists are also available from the class' context menu invoked with -@node Go to Class, Quitting, Member Display, Tree Buffers -@comment node-name, next, previous, up +@node Go to Class @section Finding a Class @cindex locate class @cindex expanding branches @@ -590,8 +582,7 @@ local copy of the regular expression last searched in it. -@node Quitting, File Name Display, Go to Class, Tree Buffers -@comment node-name, next, previous, up +@node Quitting @section Burying a Tree Buffer @cindex burying tree buffer @@ -603,8 +594,7 @@ Is a synonym for @kbd{M-x bury-buffer}. -@node File Name Display, Expanding and Collapsing, Quitting, Tree Buffers -@comment node-name, next, previous, up +@node File Name Display @section Displaying File Names @table @kbd @@ -634,8 +624,7 @@ Here is an example of a tree buffer with file names displayed. @end example -@node Expanding and Collapsing, Tree Indentation, File Name Display, Tree Buffers -@comment node-name, next, previous, up +@node Expanding and Collapsing @section Expanding and Collapsing a Tree @cindex expand tree branch @cindex collapse tree branch @@ -674,8 +663,7 @@ This command expands all collapsed branches in the tree. -@node Tree Indentation, Killing Classes, Expanding and Collapsing, Tree Buffers -@comment node-name, next, previous, up +@node Tree Indentation @section Changing the Tree Indentation @cindex tree indentation @cindex indentation of the tree @@ -690,8 +678,7 @@ available from the tree buffer's context menu. -@node Killing Classes, Saving a Tree, Tree Indentation, Tree Buffers -@comment node-name, next, previous, up +@node Killing Classes @section Removing Classes from the Tree @cindex killing classes @cindex class, remove from tree @@ -706,9 +693,7 @@ deletion is actually performed. -@node Saving a Tree, Statistics, Killing Classes, Tree Buffers -@comment node-name, next, previous, up -@comment node-name, next, previous, up +@node Saving a Tree @section Saving a Tree @cindex save tree to a file @cindex tree, save to a file @@ -726,8 +711,8 @@ Writes the tree to a file whose name is read from the minibuffer. -@node Statistics, Marking Classes, Saving a Tree, Tree Buffers -@comment node-name, next, previous, up +@node Statistics +@section Statistics @cindex statistics for a tree @cindex tree statistics @cindex class statistics @@ -742,8 +727,8 @@ context menu. -@node Marking Classes, , Statistics, Tree Buffers -@comment node-name, next, previous, up +@node Marking Classes +@section Marking Classes @cindex marking classes @cindex operations on marked classes @@ -784,8 +769,7 @@ display, like in the following example @c *** @c **************************************************************** -@node Member Buffers, Tags-like Functions, Tree Buffers, Top -@comment node-name, next, previous, up +@node Member Buffers @chapter Member Buffers @cindex members @cindex member buffer mode @@ -835,8 +819,7 @@ buffer: members, classes, and the buffer itself. -@node Switching Member Lists, Finding/Viewing, Member Buffers, Member Buffers -@comment node-name, next, previous, up +@node Switching Member Lists @section Switching Member Lists @cindex member lists, in member buffers @cindex static members @@ -882,8 +865,7 @@ context menu. -@node Finding/Viewing, Inherited Members, Switching Member Lists, Member Buffers -@comment node-name, next, previous, up +@node Finding/Viewing @section Finding and Viewing Member Source @cindex finding members, in member buffers @cindex viewing members, in member buffers @@ -920,8 +902,7 @@ displayed when clicking @kbd{Mouse-2} on a member name. -@node Inherited Members, Searching Members, Finding/Viewing, Member Buffers -@comment node-name, next, previous, up +@node Inherited Members @section Display of Inherited Members @cindex superclasses, members @cindex base classes, members @@ -936,8 +917,7 @@ buffer. This is also in the buffer's context menu. -@node Searching Members, Switching to Tree, Inherited Members, Member Buffers -@comment node-name, next, previous, up +@node Searching Members @section Searching Members @cindex searching members @@ -953,7 +933,7 @@ the completion list. If necessary, the current member list is switched to the one containing the member. With a prefix argument (@kbd{C-u}), all members in the class tree, -i.e.@: all members the browser knows about appear in the completion +i.e., all members the browser knows about appear in the completion list. The member display will be switched to the class and member list containing the member. @@ -966,8 +946,7 @@ a mouse. -@node Switching to Tree, Filters, Searching Members, Member Buffers -@comment node-name, next, previous, up +@node Switching to Tree @section Switching to Tree Buffer @cindex tree buffer, switch to @cindex buffer switching @@ -985,8 +964,7 @@ displayed in the member buffer. -@node Filters, Attributes, Switching to Tree, Member Buffers -@comment node-name, next, previous, up +@node Filters @section Filters @cindex filters @@ -1030,8 +1008,7 @@ These commands are also found in the buffer's context menu. -@node Attributes, Long and Short Display, Filters, Member Buffers -@comment node-name, next, previous, up +@node Attributes @section Displaying Member Attributes @cindex attributes @cindex member attribute display @@ -1087,8 +1064,7 @@ This command is also in the buffer's context menu. -@node Long and Short Display, Regexp Display, Attributes, Member Buffers -@comment node-name, next, previous, up +@node Long and Short Display @section Long and Short Member Display @cindex display form @cindex long display @@ -1122,8 +1098,7 @@ not been produced with the @command{ebrowse} option @samp{--no-regexps}. -@node Regexp Display, Switching Classes, Long and Short Display, Member Buffers -@comment node-name, next, previous, up +@node Regexp Display @section Display of Regular Expressions @cindex regular expression display @@ -1141,8 +1116,7 @@ see @ref{Matching, --no-regexps, Regular Expressions}. -@node Switching Classes, Killing/Burying, Regexp Display, Member Buffers -@comment node-name, next, previous, up +@node Switching Classes @section Displaying Another Class @cindex base class, display @cindex derived class, display @@ -1174,8 +1148,7 @@ Switch to the next sibling of the class in the class tree. -@node Killing/Burying, Column Width, Switching Classes, Member Buffers -@comment node-name, next, previous, up +@node Killing/Burying @section Burying a Member Buffer @cindex burying member buffers @@ -1187,8 +1160,7 @@ This command is a synonym for @kbd{M-x bury-buffer}. -@node Column Width, Redisplay, Killing/Burying, Member Buffers -@comment node-name, next, previous, up +@node Column Width @section Setting the Column Width @cindex column width @cindex member indentation @@ -1203,8 +1175,7 @@ This command sets the column width depending on the display form used -@node Redisplay, Getting Help, Column Width, Member Buffers -@comment node-name, next, previous, up +@node Redisplay @section Forced Redisplay @cindex redisplay of member buffers @@ -1219,8 +1190,8 @@ columns. -@node Getting Help, , Redisplay, Member Buffers -@comment node-name, next, previous, up +@node Getting Help +@section Getting Help @cindex help @table @kbd @@ -1235,8 +1206,7 @@ This key is bound to @code{describe-mode}. @comment *** TAGS LIKE FUNCTIONS @comment ************************************************************** -@node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top -@comment node-name, next, previous, up +@node Tags-like Functions @chapter Tags-like Functions Ebrowse provides tags functions similar to those of the standard @@ -1255,8 +1225,7 @@ Emacs Tags facility, but better suited to the needs of C++ programmers. -@node Finding and Viewing, Position Stack, Tags-like Functions, Tags-like Functions -@comment node-name, next, previous, up +@node Finding and Viewing @section Finding and Viewing Members @cindex finding class member, in C++ source @cindex viewing class member, in C++ source @@ -1315,8 +1284,7 @@ View a member's declaration in another frame. -@node Position Stack, Search & Replace, Finding and Viewing, Tags-like Functions -@comment node-name, next, previous, up +@node Position Stack @section The Position Stack @cindex position stack @@ -1333,7 +1301,7 @@ This command sets point to the previous position in the position stack. Directly after you performed a jump, this will put you back to the position where you came from. -The stack is not popped, i.e.@: you can always switch back and forth +The stack is not popped, i.e., you can always switch back and forth between positions in the stack. To avoid letting the stack grow to infinite size there is a maximum number of positions defined. When this number is reached, older positions are discarded when new positions are @@ -1352,8 +1320,7 @@ view a position with @kbd{v}. -@node Search & Replace, Members in Files, Position Stack, Tags-like Functions -@comment node-name, next, previous, up +@node Search & Replace @section Searching and Replacing @cindex searching multiple C++ files @cindex replacing in multiple C++ files @@ -1390,8 +1357,7 @@ This restarts the last tags operation with the next file in the list. -@node Members in Files, Apropos, Search & Replace, Tags-like Functions -@comment node-name, next, previous, up +@node Members in Files @section Members in Files @cindex files @cindex members in file, listing @@ -1404,8 +1370,7 @@ name is read from the minibuffer with completion. -@node Apropos, Symbol Completion, Members in Files, Tags-like Functions -@comment node-name, next, previous, up +@node Apropos @section Member Apropos @cindex apropos on class members @cindex members, matching regexp @@ -1415,15 +1380,14 @@ given regular expression. This command can be very useful if you remember only part of a member name, and not its beginning. A special buffer is popped up containing all identifiers matching the -regular expression, and what kind of symbol it is (e.g.@: a member +regular expression, and what kind of symbol it is (e.g., a member function, or a type). You can then switch to this buffer, and use the command @kbd{C-c C-m f}, for example, to jump to a specific member. -@node Symbol Completion, Member Buffer Display, Apropos, Tags-like Functions -@comment node-name, next, previous, up +@node Symbol Completion @section Symbol Completion @cindex completion @cindex symbol completion @@ -1433,7 +1397,7 @@ The command @kbd{C-c C-m @key{TAB}} completes the symbol in front of point. -@node Member Buffer Display, , Symbol Completion, Tags-like Functions +@node Member Buffer Display @section Quick Member Display @cindex member buffer, for member at point @@ -1441,12 +1405,12 @@ You can quickly display a member buffer containing the member the cursor in on with the command @kbd{C-c C-m m}. -@node GNU Free Documentation License, Concept Index, Tags-like Functions, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi -@node Concept Index, , GNU Free Documentation License, Top +@node Concept Index @unnumbered Concept Index @printindex cp diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index 1299f2ff062..f2e787fd588 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi @@ -5,7 +5,8 @@ @copying This file describes EDE, the Emacs Development Environment. -Copyright @copyright{} 1998-2001, 2004-2005, 2008-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1998--2001, 2004--2005, 2008--2013 +Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -16,8 +17,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -63,7 +63,7 @@ developing GNU and promoting software freedom.'' @contents -@node top, EDE Project Concepts, (dir), (dir) +@node Top, EDE Project Concepts, (dir), (dir) @top EDE @comment node-name, next, previous, up @@ -88,9 +88,10 @@ learn and adopt GNU ways of doing things. * Building and Debugging:: Initiating a build or debug session. * Miscellaneous commands:: Other project related commands. * Extending EDE:: Programming and extending @ede{}. +* GNU Free Documentation License:: The license for this documentation. @end menu -@node EDE Project Concepts, EDE Mode, top, top +@node EDE Project Concepts, EDE Mode, Top, Top @chapter @ede{} Project Concepts @ede{} is a generic interface for managing projects. It specifies a @@ -125,7 +126,7 @@ of search to files in a single target, or to discover the location of documentation or interface files. @ede{} can provide this information. -@node EDE Mode, Quick Start, EDE Project Concepts, top +@node EDE Mode, Quick Start, EDE Project Concepts, Top @chapter @ede{} Mode @ede{} is implemented as a minor mode, which augments other modes such @@ -142,7 +143,7 @@ bar. This menu provides several menu items for high-level @ede{} commands. These menu items, and their corresponding keybindings, are independent of the type of project you are actually working on. -@node Quick Start, Creating a project, EDE Mode, top +@node Quick Start, Creating a project, EDE Mode, Top @chapter Quick Start Once you have @ede{} enabled, you can create a project. This chapter @@ -438,7 +439,7 @@ C-c . R RET RET If your program takes command line arguments, you can type them in when it offers the command line you want to use to run your program. -@node Creating a project, Modifying your project, Quick Start, top +@node Creating a project, Modifying your project, Quick Start, Top @chapter Creating a project To create a new project, first visit a file that you want to include @@ -449,9 +450,11 @@ ede-new}, or click on the @samp{Create Project} item in the The @command{ede-new} command prompts for the type of project you would like to create. Each project type has its own benefits or -language specific enhancements. @ede{} supports four different -project types: @samp{Make}, @samp{Automake}, @samp{direct Automake}, -and @samp{Simple}. +language specific enhancements. Not all projects that @ede{} supports +also allow creating a new project. Projects such as @code{emacs} +or @code{linux} are designed to recognize existing projects only. +Project types such as @samp{Make} and @samp{Automake} do support +creating new project types with @command{ede-new}. @itemize @item @@ -467,21 +470,6 @@ Unlike a @samp{Make} project, this project autogenerates a @file{Makefile.am} file. @ede{} handles the Automake bootstrapping routines, which import and maintain a @file{configure.am} script and other required files. - -@item -For the @samp{direct Automake} project type, @ede{} reads directly -from the Automake files. - -You cannot create direct Automake projects with the @command{ede-new} -command. Instead, when you visit a project with existing Automake -files, @ede{} automatically detects them. - -@item -The @samp{Simple} project type provides light-weight constructs for -identifying a project root and looking up files. If you already have -a non-@ede{} project infrastructure, you can use a @samp{Simple} -project to provide other Emacs packages, such as Semantic, with some -information about the project. @xref{Simple projects}. @end itemize A subproject is merely a project in a subdirectory of another project. @@ -496,7 +484,7 @@ the top-most project's makefile as a starting place for the build. How the toplevel project handles subprojects in the build process is dependent on that project's type. -@node Modifying your project, Building and Debugging, Creating a project, top +@node Modifying your project, Building and Debugging, Creating a project, Top @chapter Modifying your project In this chapter, we describe the generic features for manipulating @@ -677,7 +665,7 @@ block for ``configurations''. Add a new named configuration here. To switch between different active configurations, modify the ``configuration default'' slot. -@node Building and Debugging, Miscellaneous commands, Modifying your project, top +@node Building and Debugging, Miscellaneous commands, Modifying your project, Top @chapter Building and Debugging @ede{} provides the following ``project-aware'' compilation and @@ -696,7 +684,7 @@ Build a distribution file for your project. These commands are also available from the @samp{Development} menu. -@node Miscellaneous commands, Extending EDE, Building and Debugging, top +@node Miscellaneous commands, Extending EDE, Building and Debugging, Top @chapter Miscellaneous commands If you opt to go in and edit @ede{} project files directly---for @@ -794,24 +782,19 @@ able to find your SDK and compile your programs. @node Simple projects @section Simple Projects -There is a wide array of Simple projects. The root for simple -projects is the class @code{ede-simple-project}. This handles the -infrastructure of storing a .ede file if needed. +There is a wide array of simple projects. In this case a simple +project is one that detects, or is directed to identify a directory as +belonging to a project, but doesn't provide many features of a typical +@ede{} project. Having the project however allows tools such as +@semantic{} to find sources and perform project level completions. -The class @code{ede-simple-project} is designed to be subclassed. -Then key @ede{} methods can be overridden to provide a quick wrapper -over any project. - -A second project type is @code{ede-cpp-root}. This project type is -designed to be created for a directory hierarchy full of C/C++ code. -It can be configured with minimal lisp knowledge to do header file -lookup for @semantic{}, improving code completion performance. @menu * ede-cpp-root:: This project marks the root of a C/C++ code project. * ede-java-root:: This project marks the root of a Java project. * ede-emacs:: A project for working with Emacs. * ede-linux:: A project for working with Linux kernels. +* ede-generic-project:: A project type for wrapping build systems with EDE. * Custom Locate:: Customizing how to locate files in a simple project @end menu @@ -1044,7 +1027,7 @@ tree, and enables EDE project mode for it. It pre-populates the C Preprocessor symbol map for correct parsing, and has an optimized include file identification function. -@node ede-linux, Custom Locate, ede-emacs, Simple projects +@node ede-linux, ede-generic-project, ede-emacs, Simple projects @subsection ede-linux The @code{ede-linux} project will automatically identify a Linux @@ -1053,16 +1036,67 @@ Kernel source tree, and enable EDE project mode for it. It pre-populates the C Preprocessor symbol map for reasonable parsing, and has an optimized include file identification function. -@node Custom Locate, , ede-linux, Simple projects +@node ede-generic-project, Custom Locate, ede-linux, Simple projects +@subsection ede-generic-project + +The @code{ede-generic-project} is a project system that makes it easy +to wrap up different kinds of build systems as an EDE project. +Projects such as @ref{ede-emacs} require coding skills to create. +Generic projects also require writing Emacs Lisp code, but the +requirements are minimal. You can then use +@command{customize-project} to configure build commands, includes, and +other options for that project. The configuration is saved in +@file{EDEConfig.el}. + +Generic projects are disabled by default because they have the +potential to interfere with other projects. To use the generic +project system to start detecting projects, you need to enable it. + +@deffn Command ede-enable-generic-projects +Enable generic project loaders. + +This enables generic loaders for projects that are detected using +either a @file{Makefile}, @file{SConstruct}, or @file{CMakeLists}. + +You do not need to use this command if you create your own generic +project type. +@end deffn + +If you want to create your own generic project loader, you need to +define your own project and target classes, and create an autoloader. +The example for Makefiles looks like this: + +@example +;;; MAKEFILE + +(defclass ede-generic-makefile-project (ede-generic-project) + ((buildfile :initform "Makefile") + ) + "Generic Project for makefiles.") + +(defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config) + "Setup a configuration for Make." + (oset config build-command "make -k") + (oset config debug-command "gdb ") + ) + +(ede-generic-new-autoloader "generic-makefile" "Make" + "Makefile" 'ede-generic-makefile-project) +@end example + +This example project will detect any directory with the file +@file{Makefile} in it as belonging to this project type. +Customization of the project will allow you to make build and debug +commands more precise. + +@node Custom Locate, , ede-generic-project, Simple projects @subsection Custom Locate The various simple project styles all have one major drawback, which -is that the files in the project are not completely known to EDE. +is that the files in the project are not completely known to EDE@. When the EDE API is used to try and file files by some reference name in the project, then that could fail. -@@TODO - Add ID Utils and CScope examples - @ede{} can therefore use some external locate commands, such as the unix ``locate'' command, or ``GNU Global''. @@ -1074,7 +1108,7 @@ To enable one of these tools, set the variable @code{ede-locate-setup-options} with the names of different locate objects. @ref{Miscellaneous commands}. -Configure this in your @file{.emacs} before loading in CEDET or EDE. +Configure this in your @file{.emacs} before loading in CEDET or EDE@. If you want to add support for GNU Global, your configuration would look like this: @@ -1083,7 +1117,7 @@ look like this: @end example That way, when a search needs to be done, it will first try using -GLOBAL. If global is not available for that directory, then it will +GLOBAL@. If global is not available for that directory, then it will revert to the base locate object. The base object always fails to find a file. @@ -1092,7 +1126,12 @@ You can add your own locate tool but subclassing from methods. See the code in @file{ede-locate.el} for GNU Global as a simple example. -@node Extending EDE, , Miscellaneous commands, top +@@TODO - Add ID Utils and CScope examples + +More on idutils and cscope is in the CEDET manual, and they each have +their own section. + +@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top @chapter Extending @ede{} This chapter is intended for users who want to write new parts or fix @@ -1100,7 +1139,7 @@ bugs in @ede{}. A knowledge of Emacs Lisp, and some @eieio{}(CLOS) is required. @ede{} uses @eieio{}, the CLOS package for Emacs, to define two object -superclasses, specifically the PROJECT and TARGET. All commands in +superclasses, specifically the PROJECT and TARGET@. All commands in @ede{} are usually meant to address the current project, or current target. @@ -1109,7 +1148,7 @@ superclasses. In this way, specific behaviors such as how a project is saved, or how a target is compiled can be customized by a project author in detail. @ede{} communicates to these project objects via an API using methods. The commands you use in @ede{} mode are high-level -functional wrappers over these methods. @xref{(eieio)Top}. For +functional wrappers over these methods. @xref{Top,,, eieio, EIEIO manual}. For details on using @eieio{} to extending classes, and writing methods. If you intend to extend @ede{}, it is most likely that a new target type is @@ -1273,7 +1312,7 @@ The function @code{ede-directory-project-p} will call @code{ede-dir-to-projectfile} on every @code{ede-project-autoload} until one of them returns true. The method @code{ede-dir-to-projectfile} in turn gets the @code{:proj-file} slot -from the autoload. If it is a string (ie, a project file name), it +from the autoload. If it is a string (i.e., a project file name), it checks to see if that exists in BUFFER's directory. If it is a function, then it calls that function and expects it to return a file name or nil. If the file exists, then this directory is assumed to be @@ -1360,7 +1399,8 @@ association when a file is loaded. It is generally unnecessary to override this unless you keep auxiliary files. @end table -These methods are used by the semantic package extensions @xref{(semantic)Top}. +These methods are used by the semantic package extensions. +@xref{Top,,, semantic, Semantic manual}. @table @code @item ede-buffer-header-file @@ -1379,7 +1419,7 @@ List all documentation a project or target is responsible for. @ede{} projects track source file / target associates via source code objects. The definitions for this is in @file{ede-source.el}. A source code object contains methods that know how to identify a file as being -of that class, (ie, a C file ends with @file{.c}). Some targets can +of that class, (i.e., a C file ends with @file{.c}). Some targets can handle many different types of sources which must all be compiled together. For example, a mixed C and C++ program would have instantiations of both sourcecode types. @@ -1635,7 +1675,7 @@ This is a URL to be sent to a web site for documentation. @item :web-site-directory @* A directory where web pages can be found by Emacs. -For remote locations use a path compatible with ange-ftp or EFS. +For remote locations use a path compatible with ange-ftp or EFS@. You can also use TRAMP for use with rcp & scp. @refill @@ -1916,7 +1956,7 @@ Type: @code{list} @* Default Value: @code{(quote ("/include" "../include/"))} The default locate function expands filenames within a project. -If a header file (.h, .hh, etc) name is expanded, and +If a header file (.h, .hh, etc.)@: name is expanded, and the @code{:locate-fcn} slot is @code{nil}, then the include path is checked first, and other directories are ignored. For very large projects, this optimization can save a lot of time. @@ -1978,7 +2018,7 @@ The function symbol must take two arguments: NAME - The name of the file to find. DIR - The directory root for this cpp-root project. -It should return the fully qualified file name passed in from NAME. If that file does not +It should return the fully qualified file name passed in from NAME@. If that file does not exist, it should return nil. @refill @@ -2565,7 +2605,7 @@ Optional @var{DEPTH} is the depth we start at. @end deffn @deffn Method ede-buffer-header-file :AFTER this buffer -There are no default header files in EDE. +There are no default header files in EDE@. Do a quick check to see if there is a Header tag in this buffer. @end deffn @@ -4436,4 +4476,8 @@ For example, C code uses .o on unix, and Emacs Lisp uses .elc. @end table @end table +@node GNU Free Documentation License, , Extending EDE, Top +@appendix GNU Free Documentation License +@include doclicense.texi + @bye diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index 0afcdd923d6..378eee08c51 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi @@ -25,7 +25,7 @@ This file documents Ediff, a comprehensive visual interface to Unix diff and patch utilities. -Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -36,8 +36,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -62,7 +61,7 @@ developing GNU and promoting software freedom.'' @contents -@node Top, Introduction, (dir), (dir) +@node Top @top Ediff @insertcopying @@ -80,7 +79,7 @@ developing GNU and promoting software freedom.'' * Index:: @end menu -@node Introduction, Major Entry Points, Top, Top +@node Introduction @chapter Introduction @cindex Comparing files and buffers @@ -128,7 +127,7 @@ functions are adaptations from Emerge. Although Ediff subsumes and greatly extends Emerge, much of the functionality in Ediff is influenced by Emerge. The architecture and the interface are, of course, drastically different. -@node Major Entry Points, Session Commands, Introduction, Top +@node Major Entry Points @chapter Major Entry Points When Ediff starts up, it displays a small control window, which accepts the @@ -398,7 +397,7 @@ Moreover, the functions @code{ediff-directory-revisions}, related Ediff sessions by taking a directory and comparing (or merging) versions of files in that directory. -@node Session Commands, Registry of Ediff Sessions, Major Entry Points, Top +@node Session Commands @chapter Session Commands All Ediff commands are displayed in a Quick Help window, unless you type @@ -409,7 +408,7 @@ Many Ediff commands take numeric prefix arguments. For instance, if you type a number, say 3, and then @kbd{j} (@code{ediff-jump-to-difference}), Ediff moves to the third difference region. Typing 3 and then @kbd{a} (@code{ediff-diff-to-diff}) copies the 3rd difference region from variant A -to variant B. Likewise, 4 followed by @kbd{ra} restores the 4th difference +to variant B@. Likewise, 4 followed by @kbd{ra} restores the 4th difference region in buffer A (if it was previously written over via the command @kbd{a}). @@ -431,7 +430,7 @@ command (see @kbd{ga}, @kbd{gb}, and @kbd{gc}). * Other Session Commands:: Commands that are not bound to keys. @end menu -@node Quick Help Commands,Other Session Commands,,Session Commands +@node Quick Help Commands @section Quick Help Commands @cindex command help @cindex important commands @@ -490,7 +489,7 @@ compares three files simultaneously). @kindex a @emph{In comparison sessions:} Copies the current difference region (or the region specified as the prefix -to this command) from buffer A to buffer B. +to this command) from buffer A to buffer B@. Ediff saves the old contents of buffer B's region; it can be restored via the command @kbd{rb}, which see. @@ -512,31 +511,31 @@ be reinstated via the command @kbd{ra} in comparison sessions and @item ab @kindex ab Copies the current difference region (or the region specified as the prefix -to this command) from buffer A to buffer B. This (and the next five) +to this command) from buffer A to buffer B@. This (and the next five) command is enabled only in sessions that compare three files simultaneously. The old region in buffer B is saved and can be restored via the command @kbd{rb}. @item ac @kindex ac -Copies the difference region from buffer A to buffer C. +Copies the difference region from buffer A to buffer C@. The old region in buffer C is saved and can be restored via the command @kbd{rc}. @item ba @kindex ba -Copies the difference region from buffer B to buffer A. +Copies the difference region from buffer B to buffer A@. The old region in buffer A is saved and can be restored via the command @kbd{ra}. @item bc @kindex bc -Copies the difference region from buffer B to buffer C. +Copies the difference region from buffer B to buffer C@. The command @kbd{rc} undoes this. @item ca @kindex ca -Copies the difference region from buffer C to buffer A. +Copies the difference region from buffer C to buffer A@. The command @kbd{ra} undoes this. @item cb @kindex cb -Copies the difference region from buffer C to buffer B. +Copies the difference region from buffer C to buffer B@. The command @kbd{rb} undoes this. @item p @@ -557,8 +556,8 @@ Makes the next difference region current. Makes the very first difference region current. @kbd{-j} makes the last region current. Typing a number, N, and then `j' -makes the difference region N current. Typing -N (a negative number) then -`j' makes current the region Last - N. +makes the difference region N current. Typing @minus{}N (a negative number) then +`j' makes current the region Last @minus{} N. @item ga @kindex ga @@ -713,12 +712,12 @@ over. @xref{Selective Browsing}, for more. @item A @kindex A -Toggles the read-only property in buffer A. +Toggles the read-only property in buffer A@. If file A is under version control and is checked in, it is checked out (with your permission). @item B @kindex B -Toggles the read-only property in buffer B. +Toggles the read-only property in buffer B@. If file B is under version control and is checked in, it is checked out. @item C @kindex C @@ -795,7 +794,7 @@ While merging with an ancestor file, Ediff is determined to reduce user's wear and tear by saving him and her much of unproductive, repetitive typing. If it notices that, say, file A's difference region is identical to the same difference region in the ancestor file, then the merge buffer will -automatically get the difference region taken from buffer B. The rationale +automatically get the difference region taken from buffer B@. The rationale is that this difference region in buffer A is as old as that in the ancestor buffer, so the contents of that region in buffer B represents real change. @@ -820,7 +819,7 @@ To be more precise, this toggles the check for whether the current merge is identical to its default setting, as originally decided by Ediff. For instance, if Ediff is merging according to the `combined' policy, then the merge region is skipped over if it is different from the combination of the -regions in buffers A and B. (Warning: swapping buffers A and B will confuse +regions in buffers A and B@. (Warning: swapping buffers A and B will confuse things in this respect.) If the merge region is marked as `prefer-A' then this region will be skipped if it differs from the current difference region in buffer A, etc. @@ -912,7 +911,7 @@ merge buffer and then select regions in those buffers. @end table -@node Other Session Commands,,Quick Help Commands,Session Commands +@node Other Session Commands @section Other Session Commands The following commands can be invoked from within any Ediff session, @@ -955,7 +954,7 @@ difference. @vindex ediff-use-toolbar-p The use of the toolbar can also be specified via the variable @code{ediff-use-toolbar-p} (default is @code{t}). This variable can be set -only in @file{.emacs} --- do @strong{not} change it interactively. Use the +only in @file{.emacs}: do @strong{not} change it interactively. Use the function @code{ediff-toggle-use-toolbar} instead. @item ediff-revert-buffers-then-recompute-diffs @@ -978,7 +977,7 @@ making it run faster. The function @code{ediff-profile} toggles profiling of ediff commands. @end table -@node Registry of Ediff Sessions, Session Groups, Session Commands, Top +@node Registry of Ediff Sessions @chapter Registry of Ediff Sessions Ediff maintains a registry of all its invocations that are @@ -1009,7 +1008,7 @@ and @kbd{DEL} (previous registry record). There are other commands as well, but you don't need to memorize them, since they are listed at the top of the registry buffer. -@node Session Groups, Remote and Compressed Files, Registry of Ediff Sessions, Top +@node Session Groups @chapter Session Groups Several major entries of Ediff perform comparison and merging on @@ -1128,7 +1127,7 @@ user whether or not to do a recursive descent. -@node Remote and Compressed Files, Customization, Session Groups, Top +@node Remote and Compressed Files @chapter Remote and Compressed Files Ediff works with remote, compressed, and encrypted files. Ediff @@ -1149,9 +1148,9 @@ packages also use this method). Regular files are treated by the @code{patch} utility in the usual manner, i.e., the original is renamed into @file{source-name.orig} and the result of the patch is placed into the file source-name (@file{_orig} is used -on systems like DOS, etc.) +on systems like DOS, etc.). -@node Customization, Credits, Remote and Compressed Files, Top +@node Customization @chapter Customization Ediff has a rather self-explanatory interface, and in most cases you @@ -1187,7 +1186,7 @@ refer to Emacs manual for the information on how to set Emacs X resources. * Notes on Heavy-duty Customization:: Customization for the gurus. @end menu -@node Hooks, Quick Help Customization, Customization, Customization +@node Hooks @section Hooks The bulk of customization can be done via the following hooks: @@ -1238,7 +1237,7 @@ Keep in mind that hooks executing before @code{ediff-cleanup-mess} start in @code{ediff-control-buffer;} they should also leave @code{ediff-control-buffer} as the current buffer when they finish. Hooks that are executed after @code{ediff-cleanup-mess} should expect -the current buffer be either buffer A or buffer B. +the current buffer be either buffer A or buffer B@. @code{ediff-cleanup-mess} doesn't kill the buffers being compared or merged (see @code{ediff-cleanup-hook}, below). @@ -1327,13 +1326,13 @@ Hooks run just before exiting a session group. @item ediff-meta-buffer-keymap-setup-hook @vindex ediff-meta-buffer-keymap-setup-hook @vindex ediff-meta-buffer-map -Hooks run just after setting up the @code{ediff-meta-buffer-map} --- the +Hooks run just after setting up the @code{ediff-meta-buffer-map}, the map that controls key bindings in the meta buffer. Since @code{ediff-meta-buffer-map} is a local variable, you can set different bindings for different kinds of meta buffers. @end table -@node Quick Help Customization, Window and Frame Configuration, Hooks, Customization +@node Quick Help Customization @section Quick Help Customization @vindex ediff-use-long-help-message @vindex ediff-control-buffer @@ -1357,11 +1356,11 @@ basis, you must use @code{ediff-startup-hook} to change the value of the variable @code{ediff-help-message}, which is local to @code{ediff-control-buffer}. -@node Window and Frame Configuration, Selective Browsing, Quick Help Customization, Customization +@node Window and Frame Configuration @section Window and Frame Configuration On a non-windowing display, Ediff sets things up in one frame, splitting -it between a small control window and the windows for buffers A, B, and C. +it between a small control window and the windows for buffers A, B, and C@. The split between these windows can be horizontal or vertical, which can be changed interactively by typing @kbd{|} while the cursor is in the control window. @@ -1494,7 +1493,7 @@ can switch between sessions by suspending one session and then switching to another control panel. (Different control panel buffers are distinguished by a numerical suffix, e.g., @samp{Ediff Control Panel<3>}.) -@node Selective Browsing, Highlighting Difference Regions, Window and Frame Configuration, Customization +@node Selective Browsing @section Selective Browsing Sometimes it is convenient to be able to step through only some difference @@ -1609,7 +1608,7 @@ ignoring letter case or not. It can be set in @file{.emacs} using When case sensitivity is toggled, all difference regions are recomputed. -@node Highlighting Difference Regions, Narrowing, Selective Browsing, Customization +@node Highlighting Difference Regions @section Highlighting Difference Regions The following variables control the way Ediff highlights difference @@ -1736,7 +1735,7 @@ faces, you can modify them when Ediff is being loaded using or @code{set/make-face-@dots{}} as shown above. Emacs's low-level face-manipulation functions should be avoided. -@node Narrowing, Refinement of Difference Regions, Highlighting Difference Regions, Customization +@node Narrowing @section Narrowing If buffers being compared are narrowed at the time of invocation of @@ -1768,7 +1767,7 @@ Controls whether on quitting Ediff should restore the accessible range that existed before the current invocation. @end table -@node Refinement of Difference Regions, Patch and Diff Programs, Narrowing, Customization +@node Refinement of Difference Regions @section Refinement of Difference Regions Ediff has variables to control the way fine differences are @@ -1840,7 +1839,7 @@ command @kbd{@@}. Repeated typing of this key cycles through three different states: auto-refining, no-auto-refining, and no-highlighting of fine differences. -@node Patch and Diff Programs, Merging and diff3, Refinement of Difference Regions, Customization +@node Patch and Diff Programs @section Patch and Diff Programs This section describes variables that specify the programs to be used for @@ -1949,7 +1948,7 @@ Specifies the default directory to look for patches. @code{diff}. Instead, make sure you are using some implementation of POSIX @code{diff}, such as @code{gnudiff}. -@node Merging and diff3, Support for Version Control, Patch and Diff Programs, Customization +@node Merging and diff3 @section Merging and diff3 Ediff supports three-way comparison via the functions @code{ediff-files3} and @@ -1999,7 +1998,7 @@ represented as a list of the form @code{(STRING1 Symbol1 STRING2 Symbol2 STRING3 Symbol3 STRING4)}. The symbols here must be atoms of the form @code{A}, @code{B}, or @code{Ancestor}. They determine the order in which the corresponding difference regions (from buffers A, B, and the ancestor -buffer) are displayed in the merged region of buffer C. The strings in the +buffer) are displayed in the merged region of buffer C@. The strings in the template determine the text that separates the aforesaid regions. The default template is @@ -2062,7 +2061,7 @@ you copy a difference region from buffer A to buffer C then @samp{=diff(B)} will change to @samp{diff-A} and the mode line will display @samp{=diff(A) prefer-B}. This indicates that the difference region in buffer C is identical to that in buffer A, but originally -buffer C's region came from buffer B. This is useful to know because +buffer C's region came from buffer B@. This is useful to know because you can recover the original difference region in buffer C by typing @kbd{r}. @@ -2090,7 +2089,7 @@ buffer A consists of the white space only (or if it is empty), Ediff will not take it into account for the purpose of computing fine differences. The result is that Ediff can provide a better visual information regarding the actual fine differences in the non-white regions in buffers B and -C. Moreover, if the regions in buffers B and C differ in the white space +C@. Moreover, if the regions in buffers B and C differ in the white space only, then a message to this effect will be displayed. @vindex ediff-merge-window-share @@ -2153,7 +2152,7 @@ When merge buffers are saved automatically as directed by specified by the variable @code{ediff-merge-filename-prefix}. The default is @code{merge_}, but this can be changed by the user. -@node Support for Version Control, Customizing the Mode Line, Merging and diff3, Customization +@node Support for Version Control @section Support for Version Control @@ -2198,7 +2197,7 @@ In case of @file{pcl-cvs.el}, Ediff can also be invoked via the function @code{run-ediff-from-cvs-buffer}---see the documentation string for this function. -@node Customizing the Mode Line, Miscellaneous, Support for Version Control, Customization +@node Customizing the Mode Line @section Customizing the Mode Line When Ediff is running, the mode line of @samp{Ediff Control Panel} @@ -2217,7 +2216,7 @@ don't like the way Ediff changes the mode line, you can use @pindex @file{uniquify.el} @pindex @file{mode-line.el} -@node Miscellaneous, Notes on Heavy-duty Customization, Customizing the Mode Line, Customization +@node Miscellaneous @section Miscellaneous Here are a few other variables for customizing Ediff: @@ -2334,7 +2333,7 @@ Try different settings and see which one is for you. @end table -@node Notes on Heavy-duty Customization, , Miscellaneous, Customization +@node Notes on Heavy-duty Customization @section Notes on Heavy-duty Customization Some users need to customize Ediff in rather sophisticated ways, which @@ -2388,7 +2387,7 @@ In merging, this is the merge buffer. In two-way comparison, this variable is @code{nil}. @item ediff-window-A -The window displaying buffer A. If buffer A is not visible, this variable +The window displaying buffer A@. If buffer A is not visible, this variable is @code{nil} or it may be a dead window. @item ediff-window-B @@ -2403,11 +2402,11 @@ non-@code{nil} only if Ediff uses the multiframe display, i.e., when the control buffer is in its own frame. @end table -@node Credits, GNU Free Documentation License, Customization, Top +@node Credits @chapter Credits Ediff was written by Michael Kifer . It was inspired -by emerge.el written by Dale R.@: Worley . An idea due to +by emerge.el written by Dale R. Worley . An idea due to Boris Goldowsky made it possible to highlight fine differences in Ediff buffers. Alastair Burt ported Ediff to XEmacs, Eric Freudenthal @@ -2424,15 +2423,15 @@ Adrian Aichner (aichner at ecf.teradyne.com), Drew Adams (drew.adams at oracle.com), Steve Baur (steve at xemacs.org), Neal Becker (neal at ctd.comsat.com), -E.@: Jay Berkenbilt (ejb at ql.org), +E. Jay Berkenbilt (ejb at ql.org), Lennart Borgman (ennart.borgman at gmail.com) Alastair Burt (burt at dfki.uni-kl.de), Paul Bibilo (peb at delcam.co.uk), Kevin Broadey (KevinB at bartley.demon.co.uk), Harald Boegeholz (hwb at machnix.mathematik.uni-stuttgart.de), -Bradley A.@: Bosch (brad at lachman.com), -Michael D.@: Carney (carney at ltx-tr.com), -Jin S.@: Choi (jin at atype.com), +Bradley A. Bosch (brad at lachman.com), +Michael D. Carney (carney at ltx-tr.com), +Jin S. Choi (jin at atype.com), Scott Cummings (cummings at adc.com), Albert Dvornik (bert at mit.edu), Eric Eide (eeide at asylum.cs.utah.edu), @@ -2491,7 +2490,7 @@ Paul Raines (raines at slac.stanford.edu), Stefan Reicher (xsteve at riic.at), Charles Rich (rich at merl.com), Bill Richter (richter at math.nwu.edu), -C.S.@: Roberson (roberson at aur.alcatel.com), +C.S. Roberson (roberson at aur.alcatel.com), Kevin Rodgers (kevin.rodgers at ihs.com), Sandy Rutherford (sandy at ibm550.sissa.it), Heribert Schuetz (schuetz at ecrc.de), @@ -2521,12 +2520,12 @@ Ilya Zakharevich (ilya at math.ohio-state.edu), Eli Zaretskii (eliz at is.elta.co.il) @end example -@node GNU Free Documentation License, Index, Credits, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi -@node Index, , GNU Free Documentation License, Top +@node Index @unnumbered Index @printindex cp diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi index af0069fb1bc..339d59bd123 100644 --- a/doc/misc/edt.texi +++ b/doc/misc/edt.texi @@ -5,7 +5,7 @@ @copying This file documents the EDT emulation package for Emacs. -Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2012 +Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2013 Free Software Foundation, Inc. @quotation @@ -17,8 +17,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -65,7 +64,7 @@ of DEC's EDT editor. This manual describes version 4.0 of the EDT Emulation for Emacs. It comes with special functions which replicate nearly all of EDT's keypad mode behavior. It sets up default keypad and function key -bindings which closely match those found in EDT. Support is provided so +bindings which closely match those found in EDT@. Support is provided so that users may reconfigure most keypad and function key bindings to their own liking. @@ -103,25 +102,25 @@ how to customize it to your liking. @itemize @item -@file{edt.texi} - This manual. +@file{edt.texi}---This manual. @item -@file{edt-user.el} - An example customization file. +@file{edt-user.el}---An example customization file. @item -@file{edt.el} - EDT emulation functions and default configuration. +@file{edt.el}---EDT emulation functions and default configuration. @item -@file{edt-lk201.el} - Built-in support for DEC LK-201 keyboards. +@file{edt-lk201.el}---Built-in support for DEC LK-201 keyboards. @item -@file{edt-vt100.el} - Built-in support for DEC VT-100 (and above) terminals. +@file{edt-vt100.el}---Built-in support for DEC VT-100 (and above) terminals. @item -@file{edt-pc.el} - Built-in support for PC 101 Keyboards under MS-DOS. +@file{edt-pc.el}---Built-in support for PC 101 Keyboards under MS-DOS. @item -@file{edt-mapper.el} - Create an EDT LK-201 map file for keyboards +@file{edt-mapper.el}---Create an EDT LK-201 map file for keyboards without built-in support. @end itemize @@ -321,7 +320,7 @@ restores the original key bindings in effect just prior to invoking the emulation. Emacs binds keys to @acronym{ASCII} control characters and so does the -real EDT. Where EDT key bindings and Emacs key bindings conflict, +real EDT@. Where EDT key bindings and Emacs key bindings conflict, the default Emacs key bindings are retained by the EDT emulation by default. If you are a diehard EDT user you may not like this. The @ref{Control keys} section explains how to change this so that the EDT @@ -527,7 +526,7 @@ add mod2 = Num_Lock @end example So, after executing @samp{xmodmap .xmodmaprc}, a press of the physical -@key{F12} key looks like a Num_Lock keypress to X. Also, a press of the +@key{F12} key looks like a Num_Lock keypress to X@. Also, a press of the physical @key{NumLock} key looks like a press of the @key{F12} key to X. Now, @file{edt-mapper.el} will see @samp{f12} when the physical @@ -674,7 +673,7 @@ two-thirds of the current window. (There is also an @item Cursor movement and deletion involving word entities is identical to -EDT. This, above all else, gives the die-hard EDT user a sense of being +EDT@. This, above all else, gives the die-hard EDT user a sense of being at home. Also, an emulation of EDT's @samp{SET ENTITY WORD} command is provided, for those users who like to customize movement by a word at a time to their own liking. diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 6b3a87f19fc..b16144e98a2 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -11,7 +11,7 @@ @copying This manual documents EIEIO, an object framework for Emacs Lisp. -Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -22,8 +22,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -77,6 +76,7 @@ Emacs. * Naming Conventions:: Name your objects in an Emacs friendly way. * CLOS compatibility:: What are the differences? * Wish List:: Things about EIEIO that could be improved. +* GNU Free Documentation License:: The license for this documentation. * Function Index:: @end menu @@ -446,7 +446,7 @@ that default value with @code{oset-default}. @ref{Accessing Slots}. @item :type An unquoted type specifier used to validate data set into this slot. -@xref{(cl)Type Predicates}. +@xref{Type Predicates,,,cl,Common Lisp Extensions}. Here are some examples: @table @code @item symbol @@ -1571,7 +1571,7 @@ all these classes, subsection headings, and indexes. Each class will be indexed using the texinfo labeled index @var{indexstring} which is a two letter description. -@xref{(texinfo) New Indices}. +@xref{New Indices,,,texinfo,Texinfo manual}. To use this command, the texinfo macro @@ -1874,8 +1874,9 @@ instead pre-builds a method that gets the slot's value. @item :type Specifier uses the @code{typep} function from the @file{cl} -package. @xref{(cl)Type Predicates}. It therefore has the same issues as -that package. Extensions include the ability to provide object names. +package. @xref{Type Predicates,,,cl,Common Lisp Extensions}. +It therefore has the same issues as that package. Extensions include +the ability to provide object names. @end table Defclass also supports class options, but does not currently use values @@ -1921,7 +1922,7 @@ In @eieio{} tags are in lower case, not mixed case. @node Wish List @chapter Wish List -@eieio{} is an incomplete implementation of CLOS. Finding ways to +@eieio{} is an incomplete implementation of CLOS@. Finding ways to improve the compatibility would help make CLOS style programs run better in Emacs. @@ -1950,6 +1951,10 @@ buffers. Allow method overloading of method-like functions in Emacs. @end enumerate +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @node Function Index @unnumbered Function Index diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi index 12e65c9e8dd..740dfee41ed 100644 --- a/doc/misc/emacs-gnutls.texi +++ b/doc/misc/emacs-gnutls.texi @@ -1,14 +1,14 @@ \input texinfo @c -*-texinfo-*- +@set VERSION 0.3 + @setfilename ../../info/emacs-gnutls @settitle Emacs GnuTLS Integration @value{VERSION} -@set VERSION 0.3 - @copying This file describes the Emacs GnuTLS integration. -Copyright @copyright{} 2012 Free Software Foundation, Inc. +Copyright @copyright{} 2012--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -16,17 +16,10 @@ under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license -is included in the section entitled ``GNU Free Documentation License'' -in the Emacs manual. +is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +modify this GNU manual.'' @end quotation @end copying @@ -61,6 +54,7 @@ Emacs Lisp library. * Overview:: Overview of the GnuTLS integration. * Help For Users:: * Help For Developers:: +* GNU Free Documentation License:: The license for this documentation. * Function Index:: * Variable Index:: @end menu @@ -185,12 +179,16 @@ Please see @file{gnutls.el} for the @var{spec} details and for usage, but do not rely on this function's interface if possible. @end defun +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @node Function Index -@chapter Function Index +@unnumbered Function Index @printindex fn @node Variable Index -@chapter Variable Index +@unnumbered Variable Index @printindex vr @bye diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi index e57fcc8adf1..cbb78af9d59 100644 --- a/doc/misc/emacs-mime.texi +++ b/doc/misc/emacs-mime.texi @@ -11,7 +11,7 @@ @copying This file documents the Emacs MIME interface functionality. -Copyright @copyright{} 1998-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1998--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -22,13 +22,12 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying -@c Node ``Interface Functions'' uses Latin-1 characters -@documentencoding ISO-8859-1 +@c Node ``Interface Functions'' uses non-ASCII characters +@documentencoding UTF-8 @dircategory Emacs lisp libraries @direntry @@ -382,7 +381,7 @@ When displaying inline images that are larger than the window, Emacs does not enable scrolling, which means that you cannot see the whole image. To prevent this, the library tries to determine the image size before displaying it inline, and if it doesn't fit the window, the -library will display it externally (e.g. with @samp{ImageMagick} or +library will display it externally (e.g., with @samp{ImageMagick} or @samp{xv}). Setting this variable to @code{t} disables this check and makes the library display all inline images as inline, regardless of their size. If you set this variable to @code{resize}, the image will @@ -427,7 +426,7 @@ or @kbd{I} instead.} @item mm-w3m-safe-url-regexp @vindex mm-w3m-safe-url-regexp -A regular expression that matches safe URL names, i.e. URLs that are +A regular expression that matches safe URL names, i.e., URLs that are unlikely to leak personal information when rendering @acronym{HTML} email (the default value is @samp{\\`cid:}). If @code{nil} consider all URLs safe. In Gnus, this will be overridden according to the value @@ -489,7 +488,7 @@ Delete all control characters. @item mm-file-name-delete-gotchas @findex mm-file-name-delete-gotchas Delete characters that could have unintended consequences when used -with flawed shell scripts, i.e. @samp{|}, @samp{>} and @samp{<}; and +with flawed shell scripts, i.e., @samp{|}, @samp{>} and @samp{<}; and @samp{-}, @samp{.} as the first character. @item mm-file-name-delete-whitespace @@ -922,7 +921,7 @@ each case the most efficient of quoted-printable and base64 should be used. @code{qp-or-base64} has another effect. It will fold long lines so that -MIME parts may not be broken by MTA. So do @code{quoted-printable} and +MIME parts may not be broken by MTA@. So do @code{quoted-printable} and @code{base64}. Note that it affects body encoding only when a part is a raw forwarded @@ -994,7 +993,7 @@ Customization}). The charset to be used can be overridden by setting the @code{charset} @acronym{MML} tag (@pxref{MML Definition}) when composing the message. -The encoding of characters (quoted-printable, 8bit etc) is orthogonal +The encoding of characters (quoted-printable, 8bit, etc.)@: is orthogonal to the discussion here, and is controlled by the variables @code{mm-body-charset-encoding-alist} and @code{mm-content-transfer-encoding-defaults} (@pxref{Encoding @@ -1222,7 +1221,7 @@ Return the value of the field under point. @item mail-encode-encoded-word-region @findex mail-encode-encoded-word-region Encode the non-@acronym{ASCII} words in the region. For instance, -@samp{Na@"{@dotless{i}}ve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. +@samp{Naïve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. @item mail-encode-encoded-word-buffer @findex mail-encode-encoded-word-buffer @@ -1235,7 +1234,7 @@ Encode the words that need encoding in a string, and return the result. @example (mail-encode-encoded-word-string - "This is na@"{@dotless{i}}ve, baby") + "This is naïve, baby") @result{} "This is =?iso-8859-1?q?na=EFve,?= baby" @end example @@ -1250,7 +1249,7 @@ Decode the encoded words in the string and return the result. @example (mail-decode-encoded-word-string "This is =?iso-8859-1?q?na=EFve,?= baby") -@result{} "This is na@"{@dotless{i}}ve, baby" +@result{} "This is naïve, baby" @end example @end table @@ -1443,13 +1442,13 @@ This is a version from which the regexp for the Q encoding pattern of @item rfc2047-encode-encoded-words @vindex rfc2047-encode-encoded-words The boolean variable specifies whether encoded words -(e.g. @samp{=?us-ascii?q?hello?=}) should be encoded again. +(e.g., @samp{=?us-ascii?q?hello?=}) should be encoded again. @code{rfc2047-encoded-word-regexp} is used to look for such words. @item rfc2047-allow-irregular-q-encoded-words @vindex rfc2047-allow-irregular-q-encoded-words The boolean variable specifies whether irregular Q encoded words -(e.g. @samp{=?us-ascii?q?hello??=}) should be decoded. If it is +(e.g., @samp{=?us-ascii?q?hello??=}) should be decoded. If it is non-@code{nil}, @code{rfc2047-encoded-word-regexp-loose} is used instead of @code{rfc2047-encoded-word-regexp} to look for encoded words. @@ -1608,14 +1607,14 @@ Take a date and return a time. If the date is not syntactically valid, return a ``zero'' time. @item time-less-p -Take two times and say whether the first time is less (i. e., earlier) +Take two times and say whether the first time is less (i.e., earlier) than the second time. @item time-since Take a time and return a time saying how long it was since that time. @item subtract-time -Take two times and subtract the second from the first. I. e., return +Take two times and subtract the second from the first. I.e., return the time between the two times. @item days-between @@ -1856,7 +1855,7 @@ Conformance Criteria and Examples Languages, and Continuations @item RFC1843 -HZ - A Data Format for Exchanging Files of Arbitrarily Mixed Chinese and +HZ---A Data Format for Exchanging Files of Arbitrarily Mixed Chinese and @acronym{ASCII} characters @item draft-ietf-drums-msg-fmt-05.txt @@ -1891,5 +1890,5 @@ Documentation of the text/plain format parameter for flowed text. @c Local Variables: @c mode: texinfo -@c coding: iso-8859-1 +@c coding: utf-8 @c End: diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi index bb5e18f1c8b..e21851ef37a 100644 --- a/doc/misc/epa.texi +++ b/doc/misc/epa.texi @@ -9,7 +9,7 @@ @copying This file describes EasyPG Assistant @value{VERSION}. -Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -17,17 +17,10 @@ under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license -is included in the section entitled ``GNU Free Documentation License'' -in the Emacs manual. +is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +modify this GNU manual.'' @end quotation @end copying @@ -63,11 +56,12 @@ called EasyPG Library. @end ifnottex @menu -* Overview:: -* Quick start:: -* Commands:: -* Caching Passphrases:: -* Bug Reports:: +* Overview:: +* Quick start:: +* Commands:: +* Caching Passphrases:: +* Bug Reports:: +* GNU Free Documentation License:: The license for this documentation. @end menu @node Overview @@ -107,12 +101,12 @@ encryption/decryption of @samp{*.gpg} files. This chapter introduces various commands for typical use cases. @menu -* Key management:: -* Cryptographic operations on regions:: -* Cryptographic operations on files:: -* Dired integration:: -* Mail-mode integration:: -* Encrypting/decrypting *.gpg files:: +* Key management:: +* Cryptographic operations on regions:: +* Cryptographic operations on files:: +* Dired integration:: +* Mail-mode integration:: +* Encrypting/decrypting *.gpg files:: @end menu @node Key management @@ -311,7 +305,7 @@ style of sending signed/encrypted emails by embedding raw OpenPGP blobs inside a message body, not using modern MIME format. NOTE: Inline OpenPGP is not recommended and you should consider to use -PGP/MIME. See +PGP/MIME@. See @uref{http://josefsson.org/inline-openpgp-considered-harmful.html, Inline OpenPGP in E-mail is bad@comma{} Mm'kay?}. @@ -493,6 +487,10 @@ Before reporting the bug, you should set @code{epg-debug} in the of the @samp{ *epg-debug*} buffer. Note that the first letter of the buffer name is a whitespace. +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @bye @c End: diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 834d2ea844d..cc61cd1ab5b 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -9,7 +9,7 @@ @copying This manual is for ERC as distributed with Emacs @value{EMACSVER}. -Copyright @copyright{} 2005-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2005--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -20,8 +20,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' All Emacs Lisp code contained in this document may be used, distributed, and modified without restriction. @@ -60,12 +59,8 @@ and modified without restriction. * Keystroke Summary:: Keystrokes used in ERC buffers. * Modules:: Available modules for ERC. * Advanced Usage:: Cool ways of using ERC. -* Getting Help and Reporting Bugs:: +* Getting Help and Reporting Bugs:: * History:: The history of ERC. -* Copying:: The GNU General Public License gives you - permission to redistribute ERC on - certain terms; it also explains that - there is no warranty. * GNU Free Documentation License:: The license for this documentation. * Concept Index:: Search for terms. @@ -246,7 +241,7 @@ translation effort. @item user scripting -Users can load scripts (e.g. auto greeting scripts) when ERC starts up. +Users can load scripts (e.g., auto greeting scripts) when ERC starts up. It is also possible to make custom IRC commands, if you know a little Emacs Lisp. Just make an Emacs Lisp function and call it @@ -503,7 +498,7 @@ If you want to assign this function to a keystroke, the following will help you figure out its parameters. @defun erc -Select connection parameters and run ERC. +Select connection parameters and run ERC@. Non-interactively, it takes the following keyword arguments. @itemize @bullet @@ -655,7 +650,7 @@ This can be either a string or a function to call. @section Sample Configuration @cindex configuration, sample -Here is an example of configuration settings for ERC. This can go into +Here is an example of configuration settings for ERC@. This can go into your Emacs configuration file. Everything after the @code{(require 'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}. @@ -706,7 +701,7 @@ stuff, to the current ERC buffer." (erc :server "localhost" :port "6667" :nick "MYNICK"))) -;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has +;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has ;; been commented out to avoid confusing new users. ;; (define-key erc-mode-map (kbd "RET") nil) ;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line) @@ -742,7 +737,7 @@ check out all the available options for ERC is to do @kbd{M-x customize-group erc RET}. @defopt erc-hide-list -If non, @code{nil}, this is a list of IRC message types to hide, e.g. +If non, @code{nil}, this is a list of IRC message types to hide, e.g.: @example (setq erc-hide-list '("JOIN" "PART" "QUIT")) @@ -752,7 +747,7 @@ If non, @code{nil}, this is a list of IRC message types to hide, e.g. @defopt erc-lurker-hide-list Like @code{erc-hide-list}, but only applies to messages sent by lurkers. The function @code{erc-lurker-p} determines whether a given -nickname is considerd a lurker. +nickname is considered a lurker. @end defopt @@ -768,7 +763,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, @@ -855,10 +850,6 @@ is maintained as part of Emacs. @end itemize -@node Copying -@appendix GNU GENERAL PUBLIC LICENSE -@include gpl.texi - @node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi index b585b68daa8..8728d53ea27 100644 --- a/doc/misc/ert.texi +++ b/doc/misc/ert.texi @@ -10,7 +10,7 @@ @end direntry @copying -Copyright @copyright{} 2008, 2010-2012 Free Software Foundation, Inc. +Copyright @copyright{} 2008, 2010--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -18,21 +18,14 @@ under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license -is included in the section entitled ``GNU Free Documentation License'' -in the Emacs manual. +is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +modify this GNU manual.'' @end quotation @end copying -@node Top, Introduction, (dir), (dir) +@node Top @top ERT: Emacs Lisp Regression Testing ERT is a tool for automated testing in Emacs Lisp. Its main features @@ -53,6 +46,7 @@ traditional software development methods. * How to Debug Tests:: What to do if a test fails. * Extending ERT:: ERT is extensible in several ways. * Other Testing Concepts:: Features not in ERT. +* GNU Free Documentation License:: The license for this documentation. @detailmenu --- The Detailed Node Listing --- @@ -85,15 +79,19 @@ Other Testing Concepts * Mocks and Stubs:: Stubbing out code that is irrelevant to the test. * Fixtures and Test Suites:: How ERT differs from tools for other languages. +Appendix + +* GNU Free Documentation License:: The license for this documentation. + @end detailmenu @end menu -@node Introduction, How to Run Tests, Top, Top +@node Introduction @chapter Introduction ERT allows you to define @emph{tests} in addition to functions, macros, variables, and the other usual Lisp constructs. Tests are -simply Lisp code --- code that invokes other code and checks whether +simply Lisp code: code that invokes other code and checks whether it behaves as expected. ERT keeps track of the tests that are defined and provides convenient @@ -134,8 +132,8 @@ will pass if the three calls to @code{equal} all return true better error reporting. @xref{The @code{should} Macro}. Each test should have a name that describes what functionality it tests. -Test names can be chosen arbitrarily --- they are in a -namespace separate from functions and variables --- but should follow +Test names can be chosen arbitrarily---they are in a +namespace separate from functions and variables---but should follow the usual Emacs Lisp convention of having a prefix that indicates which package they belong to. Test names are displayed by ERT when reporting failures and can be used when selecting which tests to run. @@ -156,7 +154,7 @@ test. Tests should clean up even if they fail. @xref{Tests and Their Environment}. -@node How to Run Tests, How to Write Tests, Introduction, Top +@node How to Run Tests @chapter How to Run Tests You can run tests either in the Emacs you are working in, or on the @@ -174,7 +172,7 @@ different Emacs versions. @end menu -@node Running Tests Interactively, Running Tests in Batch Mode, How to Run Tests, How to Run Tests +@node Running Tests Interactively @section Running Tests Interactively You can run the tests that are currently defined in your Emacs with @@ -253,7 +251,7 @@ while point is on a test failure will increase the limits to show more of the expression. -@node Running Tests in Batch Mode, Test Selectors, Running Tests Interactively, How to Run Tests +@node Running Tests in Batch Mode @section Running Tests in Batch Mode ERT supports automated invocations from the command line or from @@ -277,7 +275,7 @@ additional @code{-L} flags to ensure that @code{my-tests.el} and all the files that it requires are on your @code{load-path}. -@node Test Selectors, , Running Tests in Batch Mode, How to Run Tests +@node Test Selectors @section Test Selectors Functions like @code{ert} accept a @emph{test selector}, a Lisp @@ -316,7 +314,7 @@ result in the last run, and tag-based selectors such as @code{(not @code{:causes-redisplay}. -@node How to Write Tests, How to Debug Tests, How to Run Tests, Top +@node How to Write Tests @chapter How to Write Tests ERT lets you define tests in the same way you define functions. You @@ -336,7 +334,7 @@ to find where a test was defined if the test was loaded from a file. * Useful Techniques:: Some examples. @end menu -@node The @code{should} Macro, Expected Failures, How to Write Tests, How to Write Tests +@node The @code{should} Macro @section The @code{should} Macro Test bodies can include arbitrary code; but to be useful, they need to @@ -400,7 +398,7 @@ default. @code{should} reports. -@node Expected Failures, Tests and Their Environment, The @code{should} Macro, How to Write Tests +@node Expected Failures @section Expected Failures Some bugs are complicated to fix, or not very important, and are left as @@ -453,7 +451,7 @@ versions, specific architectures, etc.: @end lisp -@node Tests and Their Environment, Useful Techniques, Expected Failures, How to Write Tests +@node Tests and Their Environment @section Tests and Their Environment The outcome of running a test should not depend on the current state @@ -504,11 +502,11 @@ buffer if one is already visiting the requested file; and it runs Instead, it is better to use lower-level mechanisms with simple and predictable semantics like @code{with-temp-buffer}, @code{insert} or @code{insert-file-contents-literally}, and to activate any desired mode -by calling the corresponding function directly --- after binding the +by calling the corresponding function directly, after binding the hook variables to nil. This avoids the above problems. -@node Useful Techniques, , Tests and Their Environment, How to Write Tests +@node Useful Techniques @section Useful Techniques when Writing Tests Testing simple functions that have no side effects and no dependencies @@ -561,9 +559,9 @@ could be used instead. The reason why this test only checks the first line of the backtrace is that the remainder of the backtrace is dependent on ERT's internals as well as whether the code is running interpreted or compiled. By -looking only at the first line, the test checks a useful property ---- that the backtrace correctly captures the call to @code{signal} that -results from the call to @code{ert-fail} --- without being brittle. +looking only at the first line, the test checks a useful property---that +the backtrace correctly captures the call to @code{signal} that +results from the call to @code{ert-fail}---without being brittle. This example also shows that writing tests is much easier if the code under test was structured with testing in mind. @@ -589,7 +587,7 @@ for testing. Usually, this makes the interfaces easier to use as well. -@node How to Debug Tests, Extending ERT, How to Write Tests, Top +@node How to Debug Tests @chapter How to Debug Tests This section describes how to use ERT's features to understand why @@ -602,7 +600,7 @@ a test failed. @end menu -@node Understanding Explanations, Interactive Debugging, How to Debug Tests, How to Debug Tests +@node Understanding Explanations @section Understanding Explanations Failed @code{should} forms are reported like this: @@ -669,7 +667,7 @@ ERT only provides explanations for predicates that have an explanation function registered. @xref{Defining Explanation Functions}. -@node Interactive Debugging, , Understanding Explanations, How to Debug Tests +@node Interactive Debugging @section Interactive Debugging Debugging failed tests essentially works the same way as debugging any @@ -701,12 +699,12 @@ strips them out, so it is more convenient. failed. This can be useful to figure out how far it got. @item You can instrument tests for debugging the same way you instrument -@code{defun}s for debugging --- go to the source code of the test and +@code{defun}s for debugging: go to the source code of the test and type @kbd{@kbd{C-u} @kbd{C-M-x}}. Then, go back to the ERT buffer and re-run the test with @kbd{r} or @kbd{d}. @item If you have been editing and rearranging tests, it is possible that -ERT remembers an old test that you have since renamed or removed --- +ERT remembers an old test that you have since renamed or removed: renamings or removals of definitions in the source code leave around a stray definition under the old name in the running process (this is a common problem in Lisp). In such a situation, hit @kbd{D} to let ERT @@ -714,7 +712,7 @@ forget about the obsolete test. @end itemize -@node Extending ERT, Other Testing Concepts, How to Debug Tests, Top +@node Extending ERT @chapter Extending ERT There are several ways to add functionality to ERT. @@ -725,7 +723,7 @@ There are several ways to add functionality to ERT. @end menu -@node Defining Explanation Functions, Low-Level Functions for Working with Tests, Extending ERT, Extending ERT +@node Defining Explanation Functions @section Defining Explanation Functions The explanation function for a predicate is a function that takes the @@ -743,7 +741,7 @@ The value of the property should be the symbol that names the explanation function. -@node Low-Level Functions for Working with Tests, , Defining Explanation Functions, Extending ERT +@node Low-Level Functions for Working with Tests @section Low-Level Functions for Working with Tests Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch} @@ -759,7 +757,7 @@ meant to be usable by other code. But there is no mature API yet. Contributions to ERT are welcome. -@node Other Testing Concepts, , Extending ERT, Top +@node Other Testing Concepts @chapter Other Testing Concepts For information on mocks, stubs, fixtures, or test suites, see below. @@ -770,7 +768,7 @@ For information on mocks, stubs, fixtures, or test suites, see below. * Fixtures and Test Suites:: How ERT differs from tools for other languages. @end menu -@node Mocks and Stubs, Fixtures and Test Suites, Other Testing Concepts, Other Testing Concepts +@node Mocks and Stubs @section Other Tools for Emacs Lisp Stubbing out functions or using so-called @emph{mocks} can make it @@ -783,7 +781,7 @@ ERT does not have built-in support for mocks or stubs. The package offers mocks for Emacs Lisp and can be used in conjunction with ERT. -@node Fixtures and Test Suites, , Mocks and Stubs, Other Testing Concepts +@node Fixtures and Test Suites @section Fixtures and Test Suites In many ways, ERT is similar to frameworks for other languages like @@ -838,10 +836,14 @@ solve this by allowing regexp matching on test names; e.g., the selector "^ert-" selects ERT's self-tests. Other uses include grouping tests by their expected execution time, -e.g. to run quick tests during interactive development and slow tests less +e.g., to run quick tests during interactive development and slow tests less often. This can be achieved with the @code{:tag} argument to @code{ert-deftest} and @code{tag} test selectors. +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @bye @c LocalWords: ERT JUnit namespace docstring ERT's diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index d322ca7c3e1..dca95da2d10 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -2,13 +2,14 @@ @c %**start of header @setfilename ../../info/eshell @settitle Eshell: The Emacs Shell +@defindex cm @synindex vr fn @c %**end of header @copying This manual is for Eshell, the Emacs shell. -Copyright @copyright{} 1999-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -19,8 +20,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -33,9 +33,9 @@ developing GNU and promoting software freedom.'' @sp 4 @c The title is printed in a large font. @center @titlefont{User's Guide} -@sp +@sp 1 @center @titlefont{to} -@sp +@sp 1 @center @titlefont{Eshell: The Emacs Shell} @ignore @sp 2 @@ -43,7 +43,7 @@ developing GNU and promoting software freedom.'' @c -release- @end ignore @sp 3 -@center John Wiegley +@center John Wiegley & Aidan Gauland @c -date- @page @@ -58,7 +58,7 @@ developing GNU and promoting software freedom.'' @c ================================================================ @ifnottex -@node Top, What is Eshell?, (dir), (dir) +@node Top @top Eshell Eshell is a shell-like command interpreter @@ -76,15 +76,14 @@ handling the sort of tasks accomplished by those tools. * What is Eshell?:: A brief introduction to the Emacs Shell. * Command basics:: The basics of command usage. * Commands:: -* Arguments:: +* Expansion:: * Input/Output:: -* Process control:: * Extension modules:: -* Extras and Goodies:: * Bugs and ideas:: Known problems, and future ideas. * GNU Free Documentation License:: The license for this documentation. * Concept Index:: * Function and Variable Index:: +* Command Index:: * Key Index:: @end menu @@ -279,47 +278,195 @@ on your mind. Have fun! @node Commands @chapter Commands +In a command shell, everything is done by invoking commands. This +chapter covers command invocations in Eshell, including the command +history and invoking commands in a script file. + @menu * Invocation:: -* Completion:: +* Arguments:: +* Built-ins:: +* Variables:: * Aliases:: * History:: +* Completion:: +* for loop:: * Scripts:: -* Built-ins:: @end menu -Essentially, a command shell is all about invoking commands---and -everything that entails. So understanding how Eshell invokes commands -is the key to comprehending how it all works. - @node Invocation @section Invocation - Unlike regular system shells, Eshell never invokes kernel functions directly, such as @code{exec(3)}. Instead, it uses the Lisp functions available in the Emacs Lisp library. It does this by transforming the -command you specify into a callable Lisp form.@footnote{To see the Lisp -form that will be invoked, type: @samp{eshell-parse-command "echo -hello"}} +input line into a callable Lisp form.@footnote{To see the Lisp form that will be invoked, type: @samp{eshell-parse-command "echo hello"}} -This transformation, from the string of text typed at the command -prompt, to the ultimate invocation of either a Lisp function or external -command, follows these steps: +The command can be either an Elisp function or an external command. +Eshell looks first for an @ref{Aliases, alias} with the same name as the +command, then a @ref{Built-ins, built-in command} or a function with the +same name; if there is no match, it then tries to execute it as an +external command. -@enumerate -@item Parse the command string into separate arguments. -@item -@end enumerate +The semicolon (@code{;}) can be used to separate multiple command +invocations on a single line. A command invocation followed by an +ampersand (@code{&}) will be run in the background. Eshell has no job +control, so you can not suspend or background the current process, or +bring a background process into the foreground. That said, background +processes invoked from Eshell can be controlled the same way as any +other background process in Emacs. -@node Completion -@section Completion +@node Arguments +@section Arguments +Command arguments are passed to the functions as either strings or +numbers, depending on what the parser thinks they look like. If you +need to use a function that takes some other data type, you will need to +call it in an Elisp expression (which can also be used with +@ref{Expansion, expansions}). As with other shells, you can +escape special characters and spaces with the backslash (@code{\}) and +the single (@code{''}) and double (@code{""}) quotes. -@node Aliases -@section Aliases +@node Built-ins -@node History -@section History +@section Built-in commands +Several commands are built-in in Eshell. In order to call the +external variant of a built-in command @code{foo}, you could call +@code{*foo}. Usually, this should not be necessary. You can check +what will be applied by the @code{which} command: +@example +~ $ which ls +eshell/ls is a compiled Lisp function in `em-ls.el' +~ $ which *ls +/bin/ls +@end example + +If you want to discard a given built-in command, you could declare an +alias, @ref{Aliases}. Example: + +@example +~ $ which sudo +eshell/sudo is a compiled Lisp function in `em-unix.el' +~ $ alias sudo '*sudo $*' +~ $ which sudo +sudo is an alias, defined as "*sudo $*" +@end example + +@vindex eshell-prefer-lisp-functions +If you would prefer to use the built-in commands instead of the external +commands, set @var{eshell-prefer-lisp-functions} to @code{t}. + +Some of the built-in commands have different behaviour from their +external counterparts, and some have no external counterpart. Most of +these will print a usage message when given the @code{--help} option. + +@table @code + +@item addpath +@cmindex addpath +Adds a given path or set of paths to the PATH environment variable, or, +with no arguments, prints the current paths in this variable. + +@item alias +@cmindex alias +Define an alias (@pxref{Aliases}). This does not add it to the aliases +file. + +@item date +@cmindex date +Similar to, but slightly different from, the GNU Coreutils +@command{date} command. + +@item define +@cmindex define +Define a varalias. @xref{Variable Aliases, , , elisp}. + +@item diff +@cmindex diff +Use Emacs's internal @code{diff} (not to be confused with +@code{ediff}). @xref{Comparing Files, , , elisp}. + +@item grep +@cmindex grep +@itemx agrep +@cmindex agrep +@itemx egrep +@cmindex egrep +@itemx fgrep +@cmindex fgrep +@itemx glimpse +@cmindex glimpse +The @command{grep} commands are compatible with GNU @command{grep}, but +use Emacs's internal @code{grep} instead. + +@item info +@cmindex info +Same as the external @command{info} command, but uses Emacs's internal +Info reader. + +@item jobs +@cmindex jobs +List subprocesses of the Emacs process, if any, using the function +@code{list-processes}. + +@item kill +@cmindex kill +Kill processes. Takes a PID or a process object and an optional +signal specifier. + +@item listify +@cmindex listify +Eshell version of @code{list}. Allows you to create a list using Eshell +syntax, rather than Elisp syntax. For example, @samp{listify foo bar} +and @code{("foo" "bar")} both evaluate to @code{("foo" "bar")}. + +@item locate +@cmindex locate +Alias to Emacs's @code{locate} function, which simply runs the external +@command{locate} command and parses the results. @xref{Dired and `find', , , elisp}. + +@item make +@cmindex make +Run @command{make} through @code{compile}. @xref{Running Compilations under Emacs, , , elisp}. + +@item occur +@cmindex occur +Alias to Emacs's @code{occur}. @xref{Other Search-and-Loop Commands, , , elisp}. + +@item printnl +@cmindex printnl +Print the arguments separated by newlines. + +@item cd +@cmindex cd +This command changes the current working directory. Usually, it is +invoked as @samp{cd foo} where @file{foo} is the new working directory. +But @command{cd} knows about a few special arguments: + +When it receives no argument at all, it changes to the home directory. + +Giving the command @samp{cd -} changes back to the previous working +directory (this is the same as @samp{cd $-}). + +The command @samp{cd =} shows the directory stack. Each line is +numbered. + +With @samp{cd =foo}, Eshell searches the directory stack for a directory +matching the regular expression @samp{foo} and changes to that +directory. + +With @samp{cd -42}, you can access the directory stack by number. + +@item su +@cmindex su +@itemx sudo +@cmindex sudo +Uses TRAMP's @command{su} or @command{sudo} method @pxref{Inline methods, , , tramp} +to run a command via @command{su} or @command{sudo}. These commands +are in the eshell-tramp module, which is disabled by default. + +@end table + +@subsection Built-in variables Eshell knows a few built-in variables: @table @code @@ -349,62 +496,28 @@ Lisp functions, based on successful completion). @end table -@node Scripts -@section Scripts +@node Variables +@section Variables +Since Eshell is just an Emacs REPL@footnote{Read-Eval-Print Loop}, it +does not have its own scope, and simply stores variables the same you +would in an Elisp program. Eshell provides a command version of +@code{setq} for convenience. +@node Aliases +@section Aliases -@node Built-ins -@section Built-in commands +Aliases are commands that expand to a longer input line. For example, +@command{ll} is a common alias for @code{ls -l}, and would be defined +with the command invocation @samp{alias ll ls -l}; with this defined, +running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}. +Aliases defined (or deleted) by the @command{alias} command are +automatically written to the file named by @var{eshell-aliases-file}, +which you can also edit directly (although you will have to manually +reload it). -Several commands are built-in in Eshell. In order to call the -external variant of a built-in command @code{foo}, you could call -@code{*foo}. Usually, this should not be necessary. You can check -what will be applied by the @code{which} command: - -@example -~ $ which ls -eshell/ls is a compiled Lisp function in `em-ls.el' -~ $ which *ls -/bin/ls -@end example - -If you want to discard a given built-in command, you could declare an -alias, @ref{Aliases}. Eample: - -@example -~ $ which sudo -eshell/sudo is a compiled Lisp function in `em-unix.el' -~ $ alias sudo '*sudo $*' -~ $ which sudo -sudo is an alias, defined as "*sudo $*" -@end example - -Some of the built-in commands have a special behavior in Eshell: - -@table @code - -@item cd -@findex cd -This command changes the current working directory. Usually, it is -invoked as @samp{cd foo} where @file{foo} is the new working -directory. But @code{cd} knows about a few special arguments: - -When it receives no argument at all, it changes to the home directory. - -Giving the command @samp{cd -} changes back to the previous working -directory (this is the same as @samp{cd $-}). - -The command @samp{cd =} shows the directory stack. Each line is -numbered. - -With @samp{cd =foo}, Eshell searches the directory stack for a -directory matching the regular expression @samp{foo} and changes to -that directory. - -With @samp{cd -42}, you can access the directory stack by number. - -@item history -@findex history +@node History +@section History +@cmindex history The @samp{history} command shows all commands kept in the history ring as numbered list. If the history ring contains @code{eshell-history-size} commands, those numbers change after every @@ -420,70 +533,233 @@ of the history ring. argument of the last command beginning with @code{foo} is accessible by @code{!foo:n}. -@item su -@findex su -@itemx sudo -@findex sudo -@code{su} and @code{sudo} work as expected: they apply the following -commands (@code{su}), or the command being an argument (@code{sudo}) -under the permissions of somebody else. +The history ring is loaded from a file at the start of every session, +and written back to the file at the end of every session. The file path +is specified in @var{eshell-history-file-name}. Unlike other shells, +such as Bash, Eshell can not be configured to keep a history ring of a +different size than that of the history file. -This does not work only on -the local host, but even on a remote one, when -@code{default-directory} is a remote file name. The necessary -proxy configuration of Tramp is performed -@ifinfo -automatically, @ref{Multi-hops, , , tramp}. -@end ifinfo -@ifnotinfo -automatically. -@end ifnotinfo -Example: +Since the default buffer navigation and searching key-bindings are +still present in the Eshell buffer, the commands for history +navigation and searching are bound to different keys: + +@table @kbd +@item M-r +@itemx M-s +History I-search. + +@item M-p +@itemx M-n +Previous and next history line. If there is anything on the input +line when you run these commands, they will instead jump to the +precious or next line that begins with that string. +@end table + +@node Completion +@section Completion +Eshell uses the pcomplete package for programmable completion, similar +to that of other command shells. Argument completion differs depending +on the preceding command: for example, possible completions for +@command{rmdir} are only directories, while @command{rm} completions can +be directories @emph{and} files. Eshell provides predefined completions +for the built-in functions and some common external commands, and you +can define your own for any command. + +Eshell completion also works for lisp forms and glob patterns. If the +point is on a lisp form, then @key{TAB} will behave similarly to completion +in @code{elisp-mode} and @code{lisp-interaction-mode}. For glob +patterns, If there are few enough possible completions of the patterns, +they will be cycled when @key{TAB} is pressed, otherwise it will be removed +from the input line and the possible completions will be listed. + +If you want to see the entire list of possible completions when it's +below the cycling threshold, press @kbd{M-?}. + +@subsection pcomplete +Pcomplete, short for programmable completion, is the completion +library originally written for Eshell, but usable for command +completion@footnote{Command completion as opposed to code completion, +which is a beyond the scope of pcomplete.} in other modes. + +Completions are defined as functions (with @code{defun}) named +@code{pcomplete/COMMAND}, where @code{COMMAND} is the name of the +command for which this function provides completions; you can also name +the function @code{pcomplete/MAJOR-MODE/COMMAND} to define completions +for a specific major mode. + +@node for loop +@section @code{for} loop +Because Eshell commands can not (easily) be combined with lisp forms, +Eshell provides a command-oriented @command{for}-loop for convenience. +The syntax is as follows: @example -~ $ cd /ssh:otherhost:/etc -/ssh:user@@otherhost:/etc $ sudo find-file shadow +@code{for VAR in TOKENS @{ command invocation(s) @}} @end example +where @samp{TOKENS} is a space-separated sequence of values of +@var{VAR} for each iteration. This can even be the output of a +command if @samp{TOKENS} is replaced with @samp{@{ command invocation @}}. + +@node Scripts +@section Scripts +@cmindex source +@fnindex eshell-source-file +You can run Eshell scripts much like scripts for other shells; the main +difference is that since Eshell is not a system command, you have to run +it from within Emacs. An Eshell script is simply a file containing a +sequence of commands, as with almost any other shell script. Scripts +are invoked from Eshell with @command{source}, or from anywhere in Emacs +with @code{eshell-source-file}. + +@cmindex . +If you wish to load a script into your @emph{current} environment, +rather than in a subshell, use the @code{.} command. + +@node Expansion +@chapter Expansion +Expansion in a command shell is somewhat like macro expansion in macro +parsers (such as @command{cpp} and @command{m4}), but in a command +shell, they are less often used for constants, and usually for using +variables and string manipulation.@footnote{Eshell has no +string-manipulation expansions because the Elisp library already +provides many functions for this.} For example, @code{$var} on a line +expands to the value of the variable @code{var} when the line is +executed. Expansions are usually passed as arguments, but may also be +used as commands.@footnote{E.g., entering just @samp{$var} at the prompt +is equivalent to entering the value of @code{var} at the prompt.} + +@menu +* Dollars Expansion:: +* Globbing:: +@end menu + +@node Dollars Expansion +@section Dollars Expansion +Eshell has different @code{$} expansion syntax from other shells. There +are some similarities, but don't let these lull you into a false sense +of familiarity. + +@table @code + +@item $var +Expands to the value bound to @code{var}. This is the main way to use +variables in command invocations. + +@item $#var +Expands to the length of the value bound to @code{var}. Raises an error +if the value is not a sequence (@pxref{Sequences Arrays and Vectors, Sequences, , elisp}). + +@item $(lisp) +Expands to the result of evaluating the S-expression @code{(lisp)}. On +its own, this is identical to just @code{(lisp)}, but with the @code{$}, +it can be used in a string, such as @samp{/some/path/$(lisp).txt}. + +@item $@{command@} +Returns the output of @command{command}, which can be any valid Eshell +command invocation, and may even contain expansions. + +@item $var[i] +Expands to the @code{i}th element of the value bound to @code{var}. If +the value is a string, it will be split at whitespace to make it a list. +Again, raises an error if the value is not a sequence. + +@item $var[: i] +As above, but now splitting occurs at the colon character. + +@item $var[: i j] +As above, but instead of returning just a string, it now returns a list +of two strings. If the result is being interpolated into a larger +string, this list will be flattened into one big string, with each +element separated by a space. + +@item $var["\\\\" i] +Separate on backslash characters. Actually, the first argument -- if it +doesn't have the form of a number, or a plain variable name -- can be +any regular expression. So to split on numbers, use @samp{$var["[0-9]+" 10 20]}. + +@item $var[hello] +Calls @code{assoc} on @code{var} with @code{"hello"}, expecting it to be +an alist (@pxref{Association List Type, Association Lists, , elisp}). + +@item $#var[hello] +Returns the length of the cdr of the element of @code{var} who car is equal +to @code{"hello"}. + @end table - -@node Arguments -@chapter Arguments - -@menu -* The Parser:: -* Variables:: -* Substitution:: -* Globbing:: -* Predicates:: -@end menu - -@node The Parser -@section The Parser - -@node Variables -@section Variables - -@node Substitution -@section Substitution - @node Globbing @section Globbing - -@node Predicates -@section Predicates - +Eshell's globbing syntax is very similar to that of Zsh. Users coming +from Bash can still use Bash-style globbing, as there are no +incompatibilities. Most globbing is pattern-based expansion, but there +is also predicate-based expansion. See @ref{Filename Generation, , , zsh} +for full syntax. To customize the syntax and behaviour of globbing in +Eshell see the Customize@footnote{@xref{Customization Settings, Customize, , elisp}.} +groups ``eshell-glob'' and ``eshell-pred''. @node Input/Output @chapter Input/Output +Since Eshell does not communicate with a terminal like most command +shells, IO is a little different. If you try to run programs from +within Eshell that are not line-oriented, such as programs that use +ncurses, you will just get garbage output, since the Eshell buffer is +not a terminal emulator. Eshell solves this problem by running +specified commands in Emacs's terminal emulator; to let Eshell know +which commands need to be run in a terminal, add them to the list +@var{eshell-visual-commands}. -@node Process control -@chapter Process control +Redirection is mostly the same in Eshell as it is in other command +shells. The output redirection operators @code{>} and @code{>>} as +well as pipes are supported, but there is not yet any support for +input redirection. Output can also be redirected to buffers, using +the @code{>>>} redirection operator, and Elisp functions, using +virtual devices. +The buffer redirection operator, @code{>>>}, expects a buffer object +on the right-hand side, into which it inserts the output of the +left-hand side. e.g., @samp{echo hello >>> #} +inserts the string @code{"hello"} into the @code{*scratch*} buffer. + +@var{eshell-virtual-targets} is a list of mappings of virtual device +names to functions. Eshell comes with two virtual devices: +@file{/dev/kill}, which sends the text to the kill ring, and +@file{/dev/clip}, which sends text to the clipboard. + +You can, of course, define your own virtual targets. They are defined +by adding a list of the form @code{("/dev/name" function mode)} to +@var{eshell-virtual-targets}. The first element is the device name; +@code{function} may be either a lambda or a function name. If +@code{mode} is nil, then the function is the output function; if it is +non-nil, then the function is passed the redirection mode as a +symbol--@code{overwrite} for @code{>}, @code{append} for @code{>>}, or +@code{insert} for @code{>>>}--and the function is expected to return +the output function. + +The output function is called once on each line of output until +@code{nil} is passed, indicating end of output. @node Extension modules @chapter Extension modules +Eshell provides a facility for defining extension modules so that they +can be disabled and enabled without having to unload and reload them, +and to provide a common parent Customize group for the +modules.@footnote{ERC provides a similar module facility.} An Eshell +module is defined the same as any other library but one requirement: the +module must define a Customize@footnote{@xref{Customization Settings, Customize, , elisp}.} +group using @code{eshell-defgroup} (in place of @code{defgroup}) with +@code{eshell-module} as the parent group.@footnote{If the module has +no user-customizable options, then there is no need to define it as an +Eshell module.} You also need to load the following as shown: + +@example +(eval-when-compile + (require 'cl) + (require 'esh-mode) + (require 'eshell)) + +(require 'esh-util) +@end example @menu * Writing a module:: @@ -492,7 +768,6 @@ Example: * Key rebinding:: * Smart scrolling:: * Terminal emulation:: -* Built-in UNIX commands:: @end menu @node Writing a module @@ -513,13 +788,6 @@ Example: @node Terminal emulation @section Terminal emulation -@node Built-in UNIX commands -@section Built-in UNIX commands - - -@node Extras and Goodies -@chapter Extras and Goodies - @node Bugs and ideas @chapter Bugs and ideas @cindex reporting bugs and ideas @@ -528,6 +796,8 @@ Example: @cindex email to the author @cindex FAQ @cindex problems, list of common +@cindex known bugs +@cindex bugs, known If you find a bug or misfeature, don't hesitate to let me know! Send email to @email{johnw@@gnu.org}. Feature requests should also be sent @@ -538,16 +808,7 @@ If you have ideas for improvements, or if you have written some extensions to this package, I would like to hear from you. I hope you find this package useful! -@menu -* Known problems:: -@end menu - -@node Known problems -@section Known problems -@cindex known bugs -@cindex bugs, known - -Below is complete list of known problems with Eshell version 2.4.2, +Below is a complete list of known problems with Eshell version 2.4.2, which is the version included with Emacs 22. @table @asis @@ -555,7 +816,7 @@ which is the version included with Emacs 22. @item Differentiate between aliases and functions -Allow for a bash-compatible syntax, such as: +Allow for a Bash-compatible syntax, such as: @example alias arg=blah @@ -783,7 +1044,7 @@ A special associate array, which can take references of the form @item Eshell scripts can't execute in the background -@item Support zsh's ``Parameter Expansion'' syntax, i.e. @samp{$@{@var{name}:-@var{val}@}} +@item Support zsh's ``Parameter Expansion'' syntax, i.e., @samp{$@{@var{name}:-@var{val}@}} @item Write an @command{info} alias that can take arguments @@ -839,7 +1100,7 @@ them; @code{min} would display the smallest figure, etc. It would provide syntax, abbrev, highlighting and indenting support like @code{emacs-lisp-mode} and @code{shell-mode}. -@item In the history mechanism, finish the @command{bash}-style support +@item In the history mechanism, finish the Bash-style support This means @samp{!n}, @samp{!#}, @samp{!:%}, and @samp{!:1-} as separate from @samp{!:1*}. @@ -869,7 +1130,7 @@ It would call subcommands with @option{--help}, or @option{-h} or @item Implement @command{stty} in Lisp -@item Support @command{rc}'s matching operator, e.g. @samp{~ (@var{list}) @var{regexp}} +@item Support @command{rc}'s matching operator, e.g., @samp{~ (@var{list}) @var{regexp}} @item Implement @command{bg} and @command{fg} as editors of @code{eshell-process-list} @@ -905,7 +1166,7 @@ it). @item Make the shell spawning commands be visual That is, make (@command{su}, @command{bash}, @command{telnet}, -@command{rlogin}, @command{rsh}, etc.) be part of +@command{rlogin}, @command{rsh}, etc.)@: be part of @code{eshell-visual-commands}. The only exception is if the shell is being used to invoke a single command. Then, the behavior should be based on what that command is. @@ -1009,6 +1270,11 @@ Since it keeps the cursor up where the command was invoked. @printindex fn +@node Command Index +@unnumbered Command Index + +@printindex cm + @node Key Index @unnumbered Key Index diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi index dec178c5258..5b06cc7f11a 100644 --- a/doc/misc/eudc.texi +++ b/doc/misc/eudc.texi @@ -12,7 +12,7 @@ EUDC is the Emacs Unified Directory Client, a common interface to directory servers using various protocols such as LDAP or the CCSO white pages directory system (PH/QI) -Copyright @copyright{} 1998, 2000-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1998, 2000--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -23,8 +23,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -36,8 +35,8 @@ developing GNU and promoting software freedom.'' @footnotestyle end @titlepage -@title{EUDC Manual} -@subtitle{The Emacs Unified Directory Client} +@title EUDC Manual +@subtitle The Emacs Unified Directory Client @author by Oscar Figueiredo @code{1.30b} @@ -49,9 +48,8 @@ developing GNU and promoting software freedom.'' @contents @ifnottex -@node Top, Overview, (dir), (dir) +@node Top @top Emacs Unified Directory Client -@comment node-name, next, previous, up @insertcopying @end ifnottex @@ -70,8 +68,7 @@ developing GNU and promoting software freedom.'' -@node Overview, Installation, Top, Top -@comment node-name, next, previous, up +@node Overview @chapter Overview EUDC, the @dfn{Emacs Unified Directory Client}, provides a common user @@ -116,8 +113,7 @@ Interface to BBDB to let you insert server records into your own BBDB database -@node LDAP, CCSO PH/QI, Overview, Overview -@comment node-name, next, previous, up +@node LDAP @section LDAP LDAP, @dfn{the Lightweight Directory Access Protocol}, is a communication @@ -143,8 +139,7 @@ EUDC requires external support to access LDAP directory servers (@pxref{LDAP Requirements}) -@node CCSO PH/QI, BBDB, LDAP, Overview -@comment node-name, next, previous, up +@node CCSO PH/QI @section CCSO PH/QI The Central Computing Services Office (CCSO) of the University of @@ -165,8 +160,7 @@ possible to change records in the database. This is not implemented in EUDC. -@node BBDB, , CCSO PH/QI, Overview -@comment node-name, next, previous, up +@node BBDB @section BBDB BBDB is the @dfn{Big Brother's Insidious Database}, a package for Emacs @@ -188,8 +182,7 @@ performing queries on multiple servers. EUDC also offers a means to insert results from directory queries into your own local BBDB (@pxref{Creating BBDB Records}) -@node Installation, Usage, Overview, Top -@comment node-name, next, previous, up +@node Installation @chapter Installation Add the following to your @file{.emacs} init file: @@ -219,8 +212,7 @@ email composition buffers (@pxref{Inline Query Expansion}) * LDAP Requirements:: EUDC needs external support for LDAP @end menu -@node LDAP Requirements, , Installation, Installation -@comment node-name, next, previous, up +@node LDAP Requirements @section LDAP Requirements LDAP support is added by means of @file{ldap.el}, which is part of Emacs. @@ -229,11 +221,10 @@ LDAP support is added by means of @file{ldap.el}, which is part of Emacs. (@url{http://www.openldap.org/}). -@node Usage, Credits, Installation, Top -@comment node-name, next, previous, up +@node Usage @chapter Usage -This chapter describes the usage of EUDC. Most functions and +This chapter describes the usage of EUDC@. Most functions and customization options are available through the @samp{Directory Search} submenu of the @samp{Tools} submenu. @@ -249,8 +240,7 @@ submenu of the @samp{Tools} submenu. @end menu -@node Querying Servers, Query Form, Usage, Usage -@comment node-name, next, previous, up +@node Querying Servers @section Querying Servers EUDC's basic functionality is to let you query a directory server and @@ -264,7 +254,7 @@ to customize in this process. * Duplicate Attributes:: What to do when records have duplicate attributes @end menu -@node Selecting a Server, Return Attributes, Querying Servers, Querying Servers +@node Selecting a Server @subsection Selecting a Server Before doing any query you will need to set the directory server. You @@ -303,7 +293,7 @@ This command accessible from @samp{New Server} submenu lets you specify a new directory server and protocol. @end deffn -@node Return Attributes, Duplicate Attributes, Selecting a Server, Querying Servers +@node Return Attributes @subsection Return Attributes Directory servers may be configured to return a default set of @@ -327,7 +317,7 @@ If non-@code{nil}, entries that do not contain all the requested return attributes are ignored. Default is @code{t}. @end defopt -@node Duplicate Attributes, , Return Attributes, Querying Servers +@node Duplicate Attributes @subsection Duplicate Attributes Directory standards may authorize different instances of the same @@ -382,8 +372,7 @@ to all attribute names. Available methods are: @code{list}, -@node Query Form, Display of Query Results, Querying Servers, Usage -@comment node-name, next, previous, up +@node Query Form @section Query Form The simplest way to query your directory server is to use the query @@ -437,8 +426,7 @@ Otherwise, directory query/response forms display the user attribute names defined in @code{eudc-user-attribute-names-alist}. @end defvar -@node Display of Query Results, Inline Query Expansion, Query Form, Usage -@comment node-name, next, previous, up +@node Display of Query Results @section Display of Query Results Upon successful completion of a form query, EUDC will display a buffer @@ -515,8 +503,7 @@ be passed to the program. @end defvar -@node Inline Query Expansion, The Server Hotlist, Display of Query Results, Usage -@comment node-name, next, previous, up +@node Inline Query Expansion @section Inline Query Expansion Inline query expansion is a powerful method to get completion from your @@ -616,8 +603,7 @@ Default is @code{select} -@node The Server Hotlist, Multi-server Queries, Inline Query Expansion, Usage -@comment node-name, next, previous, up +@node The Server Hotlist @section The Server Hotlist EUDC lets you maintain a list of frequently used servers so that you @@ -655,8 +641,7 @@ loaded. * The Hotlist Edit Buffer:: An interactive hotlist editing facility @end menu -@node The Hotlist Edit Buffer, , The Server Hotlist, The Server Hotlist -@comment node-name, next, previous, up +@node The Hotlist Edit Buffer @subsection The Hotlist Edit Buffer The hotlist edit buffer offers a means to manage a list of frequently @@ -692,8 +677,7 @@ Save the changes and quit the hotlist edit buffer. Use @kbd{x} or @end deffn -@node Multi-server Queries, Creating BBDB Records, The Server Hotlist, Usage -@comment node-name, next, previous, up +@node Multi-server Queries @section Multi-server Queries When using inline query expansion (@pxref{Inline Query Expansion}), EUDC @@ -724,8 +708,7 @@ that all available servers should be tried. -@node Creating BBDB Records, Server/Protocol Locals, Multi-server Queries, Usage -@comment node-name, next, previous, up +@node Creating BBDB Records @section Creating BBDB Records @findex eudc-insert-record-at-point-into-bbdb @@ -840,8 +823,7 @@ Note that only a subset of the attributes you selected with actually be inserted as part of the newly created BBDB record. -@node Server/Protocol Locals, , Creating BBDB Records, Usage -@comment node-name, next, previous, up +@node Server/Protocol Locals @section Server/Protocol Locals EUDC can be customized independently for each server or directory @@ -853,8 +835,7 @@ like buffer-local bindings but on a per server or per protocol basis. * Manipulating local bindings:: Functions to set and query local bindings @end menu -@node Manipulating local bindings, , Server/Protocol Locals, Server/Protocol Locals -@comment node-name, next, previous, up +@node Manipulating local bindings @subsection Manipulating local bindings EUDC offers functions that let you set and query variables on a per @@ -931,8 +912,7 @@ Update all EUDC variables according to their local settings. -@node Credits, GNU Free Documentation License, Usage, Top -@comment node-name, next, previous, up +@node Credits @chapter Credits EUDC was written by Oscar Figueiredo based on @file{ph.el} by the @@ -941,18 +921,16 @@ same author. Thanks to Soren Dayton for his suggestions, his enthusiasm and his help in testing and proofreading the code and docs of @file{ph.el}. -@node GNU Free Documentation License, Command and Function Index, Credits, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi -@node Command and Function Index, Variables Index, GNU Free Documentation License, Top -@comment node-name, next, previous, up +@node Command and Function Index @unnumbered Command and Function Index @printindex fn -@node Variables Index, , Command and Function Index, Top -@comment node-name, next, previous, up +@node Variables Index @unnumbered Variables Index @printindex vr diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi index 2983667c5cd..18e3340a474 100644 --- a/doc/misc/faq.texi +++ b/doc/misc/faq.texi @@ -11,7 +11,7 @@ @c appreciate a notice if you do). @copying -Copyright @copyright{} 2001-2012 Free Software Foundation, Inc.@* +Copyright @copyright{} 2001--2013 Free Software Foundation, Inc.@* Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 Reuven M. Lerner@* Copyright @copyright{} 1992, 1993 Steven Byrnes@* @@ -20,7 +20,7 @@ Copyright @copyright{} 1990, 1991, 1992 Joseph Brian Wells@* @quotation This list of frequently asked questions about GNU Emacs with answers (``FAQ'') may be translated into other languages, transformed into other -formats (e.g. Texinfo, Info, WWW, WAIS), and updated with new information. +formats (e.g., Texinfo, Info, WWW, WAIS), and updated with new information. The same conditions apply to any derivative of the FAQ as apply to the FAQ itself. Every copy of the FAQ must include this notice or an approved @@ -58,8 +58,7 @@ distribution.] @node Top, FAQ notation, (dir), (dir) @top The GNU Emacs FAQ -@c FIXME @today is just the day we ran `makeinfo'. -This is the GNU Emacs FAQ, last updated on @today{}. +This is the GNU Emacs FAQ. This FAQ is maintained as a part of GNU Emacs. If you find any errors, or have any suggestions, please use @kbd{M-x report-emacs-bug} to report @@ -191,7 +190,7 @@ DOS and Windows terminals don't set bit 7 when the @key{Meta} key is pressed.}. @kbd{C-?} (aka @key{DEL}) is @acronym{ASCII} code 127. It is a misnomer to call -@kbd{C-?} a ``control'' key, since 127 has both bits 5 and 6 turned ON. +@kbd{C-?} a ``control'' key, since 127 has both bits 5 and 6 turned ON@. Also, on very few keyboards does @kbd{C-?} generate @acronym{ASCII} code 127. @c FIXME I cannot understand the previous sentence. @@ -257,9 +256,9 @@ Emacs manual. @cindex Directories and files that come with Emacs These are files that come with Emacs. The Emacs distribution is divided -into subdirectories; e.g. @file{etc}, @file{lisp}, and @file{src}. -Some of these (e.g. @file{etc} and @file{lisp}) are present both in -an installed Emacs and in the sources, but some (e.g. @file{src}) are +into subdirectories; e.g., @file{etc}, @file{lisp}, and @file{src}. +Some of these (e.g., @file{etc} and @file{lisp}) are present both in +an installed Emacs and in the sources, but some (e.g., @file{src}) are only found in the sources. If you use Emacs, but don't know where it is kept on your system, start @@ -314,7 +313,7 @@ GNU General Public License @end table -Avoid confusing the FSF and the LPF. The LPF opposes +Avoid confusing the FSF and the LPF@. The LPF opposes look-and-feel copyrights and software patents. The FSF aims to make high quality free software available for everyone. @@ -552,7 +551,7 @@ help-for-help} instead to invoke help. To discover what key (if any) invokes help on your system, type @kbd{M-x where-is @key{RET} help-for-help @key{RET}}. This will print a comma-separated list of key sequences in the echo area. Ignore the last character in each key -sequence listed. Each of the resulting key sequences (e.g. @key{F1} is +sequence listed. Each of the resulting key sequences (e.g., @key{F1} is common) invokes help. Emacs help works best if it is invoked by a single key whose value @@ -611,7 +610,7 @@ matches a regular expression or a string, using @kbd{M-x apropos-documentation}. @item -You can order a hardcopy of the manual from the FSF. @xref{Getting a +You can order a hardcopy of the manual from the FSF@. @xref{Getting a printed manual}. @cindex Reference cards, in other languages @@ -640,7 +639,7 @@ information. To get a list of these commands, type @samp{?} after @cindex Manual, obtaining a printed or HTML copy of @cindex Emacs manual, obtaining a printed or HTML copy of -You can order a printed copy of the Emacs manual from the FSF. For +You can order a printed copy of the Emacs manual from the FSF@. For details see the @uref{http://shop.fsf.org/, FSF on-line store}. The full Texinfo source for the manual also comes in the @file{doc/emacs} @@ -954,7 +953,7 @@ status of its latest version. @cindex TECO @cindex Original version of Emacs -Emacs originally was an acronym for Editor MACroS. RMS says he ``picked +Emacs originally was an acronym for Editor MACroS@. RMS says he ``picked the name Emacs because @key{E} was not in use as an abbreviation on ITS at the time.'' The first Emacs was a set of macros written in 1976 at MIT by RMS for the editor TECO (Text Editor and COrrector, originally Tape @@ -985,9 +984,9 @@ conventions}). @cindex Bazaar repository, Emacs Emacs @value{EMACSVER} is the current version as of this writing. A version -number with two components (e.g. @samp{22.1}) indicates a released +number with two components (e.g., @samp{22.1}) indicates a released version; three components indicate a development -version (e.g. @samp{23.0.50} is what will eventually become @samp{23.1}). +version (e.g., @samp{23.0.50} is what will eventually become @samp{23.1}). Emacs is under active development, hosted at @uref{http://savannah.gnu.org/projects/emacs/, Savannah}. The source @@ -1371,7 +1370,7 @@ groups. From there, you can access all customizable options and faces, change their values, and save your changes to your init file. @xref{Easy Customization,,, emacs, The GNU Emacs Manual}. -If you know the name of the group in advance (e.g. ``shell''), use +If you know the name of the group in advance (e.g., ``shell''), use @kbd{M-x customize-group @key{RET}}. If you wish to customize a single option, use @kbd{M-x customize-option @@ -1385,7 +1384,7 @@ customize, with completion. @cindex Console, colors In Emacs 21.1 and later, colors and faces are supported in non-windowed mode, -i.e.@: on Unix and GNU/Linux text-only terminals and consoles, and when +i.e., on Unix and GNU/Linux text-only terminals and consoles, and when invoked as @samp{emacs -nw} on X, and MS-Windows. (Colors and faces were supported in the MS-DOS port since Emacs 19.29.) Emacs automatically detects color support at startup and uses it if available. If you think @@ -1540,7 +1539,7 @@ with @samp{#!}): @cindex Major mode for shell scripts The variable @code{interpreter-mode-alist} specifies which mode to use -when loading an interpreted script (e.g. shell, python, etc.). Emacs +when loading an interpreted script (e.g., shell, python, etc.). Emacs determines which interpreter you're using by examining the first line of the script. Use @kbd{C-h v} (or @kbd{M-x describe-variable}) on @code{interpreter-mode-alist} to learn more. @@ -1909,7 +1908,7 @@ following line to your @file{.emacs}: where @var{syntactic-symbol} is the name Emacs shows in the minibuffer when you type @kbd{C-c C-o} at the beginning of the line, and @var{offset} is one of the indentation symbols listed above (@code{+}, -@code{/}, @code{0}, etc.) that you've chosen during the interactive +@code{/}, @code{0}, etc.)@: that you've chosen during the interactive procedure. @item @@ -2738,7 +2737,7 @@ type @kbd{C-h C-p} to read it. Old versions (i.e., anything before 19.29) of Emacs had problems editing files larger than 8 megabytes. In versions 19.29 and later, the maximum -buffer size is at least 2^27-1, or 134,217,727 bytes, or 132 MBytes. +buffer size is at least 2^27@minus{}1, or 134,217,727 bytes, or 132 MBytes. The maximum buffer size on 32-bit machines increased to 256 MBytes in Emacs 22, and again to 512 MBytes in Emacs 23.2. @@ -3172,7 +3171,7 @@ the main GNU distribution site, sources are available as @c Don't include VER in the file name, because pretests are not there. @uref{ftp://ftp.gnu.org/pub/gnu/emacs/emacs-VERSION.tar.gz} -(Replace @samp{VERSION} with the relevant version number, e.g. @samp{23.1}.) +(Replace @samp{VERSION} with the relevant version number, e.g., @samp{23.1}.) @item Next uncompress and extract the source files. This requires @@ -3561,7 +3560,7 @@ can be bound to a key and thus treated as a macro. For example: @cindex Misspecified key sequences Usually, one of two things has happened. In one case, the control -character in the key sequence has been misspecified (e.g. @samp{C-f} +character in the key sequence has been misspecified (e.g., @samp{C-f} used instead of @samp{\C-f} within a Lisp expression). In the other case, a @dfn{prefix key} in the keystroke sequence you were trying to bind was already bound as a @dfn{complete key}. Historically, the @samp{ESC [} @@ -3882,7 +3881,7 @@ is how to make @kbd{H-M-RIGHT} move forward a word: @item Not all modifiers are permitted in all situations. @key{Hyper}, @key{Super}, and @key{Alt} are not available on Unix character -terminals. Non-@acronym{ASCII} keys and mouse events (e.g. @kbd{C-=} and +terminals. Non-@acronym{ASCII} keys and mouse events (e.g., @kbd{C-=} and @kbd{Mouse-1}) also fall under this category. @end itemize @@ -4275,7 +4274,7 @@ type them in. To enable this feature, execute the following: @end lisp Note that the aliases are expanded automatically only after you type -a word-separator character (e.g. @key{RET} or @kbd{,}). You can force their +a word-separator character (e.g., @key{RET} or @kbd{,}). You can force their expansion by moving point to the end of the alias and typing @kbd{C-x a e} (@kbd{M-x expand-abbrev}). @end itemize diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi index 4a873490e86..5dedda16ee1 100644 --- a/doc/misc/flymake.texi +++ b/doc/misc/flymake.texi @@ -11,8 +11,7 @@ This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), which is a universal on-the-fly syntax checker for GNU Emacs. -Copyright @copyright{} 2004-2012 -Free Software Foundation, Inc. +Copyright @copyright{} 2004--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -23,8 +22,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -47,7 +45,7 @@ developing GNU and promoting software freedom.'' @ifnottex @node Top @top GNU Flymake -@insertcopying +@insertcopying @end ifnottex @menu @@ -66,10 +64,10 @@ developing GNU and promoting software freedom.'' Flymake is a universal on-the-fly syntax checker implemented as an Emacs minor mode. Flymake runs the pre-configured syntax check tool -(compiler for C++ files, @code{perl} for perl files, etc.) in the +(compiler for C++ files, @code{perl} for perl files, etc.)@: in the background, passing it a temporary copy of the current buffer, and parses the output for known error/warning message patterns. Flymake -then highlights erroneous lines (i.e. lines for which at least one +then highlights erroneous lines (i.e., lines for which at least one error or warning has been reported by the syntax check tool), and displays an overall buffer status in the mode line. Status information displayed by Flymake contains total number of errors and warnings @@ -212,14 +210,14 @@ The following statuses are defined. @multitable @columnfractions 0.25 0.75 @item Flymake* or Flymake:E/W* @tab Flymake is currently running. For the second case, E/W contains the - error and warning count for the previous run. +error and warning count for the previous run. @item Flymake @tab Syntax check is not running. Usually this means syntax check was - successfully passed (no errors, no warnings). Other possibilities are: - syntax check was killed as a result of executing - @code{flymake-compile}, or syntax check cannot start as compilation - is currently in progress. +successfully passed (no errors, no warnings). Other possibilities are: +syntax check was killed as a result of executing +@code{flymake-compile}, or syntax check cannot start as compilation +is currently in progress. @item Flymake:E/W @tab Number of errors/warnings found by the syntax check process. @@ -234,9 +232,9 @@ OFF for the buffer. @multitable @columnfractions 0.25 0.75 @item CFGERR @tab Syntax check process returned nonzero exit code, but no - errors/warnings were reported. This indicates a possible configuration - error (for example, no suitable error message patterns for the - syntax check tool). +errors/warnings were reported. This indicates a possible configuration +error (for example, no suitable error message patterns for the +syntax check tool). @item NOMASTER @tab Flymake was unable to find master file for the current buffer. @@ -291,9 +289,11 @@ A list of @code{(filename-regexp, init-function, cleanup-function getfname-function)} for configuring syntax check tools. @xref{Adding support for a new syntax check tool}. +@ignore @item flymake-buildfile-dirs A list of directories (relative paths) for searching a buildfile. @xref{Locating the buildfile}. +@end ignore @item flymake-master-file-dirs A list of directories for searching a master file. @xref{Locating a @@ -355,8 +355,8 @@ Which fringe (if any) should show the warning/error bitmaps. @cindex Adding support for a new syntax check tool @menu -* Example -- Configuring a tool called directly:: -* Example -- Configuring a tool called via make:: +* Example---Configuring a tool called directly:: +* Example---Configuring a tool called via make:: @end menu Syntax check tools are configured using the @@ -406,8 +406,8 @@ the @code{flymake-err-line-patterns} list. The following sections contain some examples of configuring Flymake support for various syntax check tools. -@node Example -- Configuring a tool called directly -@subsection Example -- Configuring a tool called directly +@node Example---Configuring a tool called directly +@subsection Example---Configuring a tool called directly @cindex Adding support for perl In this example, we will add support for @code{perl} as a syntax check @@ -455,8 +455,8 @@ Finally, we add an entry to @code{flymake-err-line-patterns}: flymake-err-line-patterns)) @end lisp -@node Example -- Configuring a tool called via make -@subsection Example -- Configuring a tool called via make +@node Example---Configuring a tool called via make +@subsection Example---Configuring a tool called via make @cindex Adding support for C (gcc+make) In this example we will add support for C files syntax checked by @@ -528,7 +528,7 @@ check-syntax: Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}. Flymake first determines whether it is able to do syntax check. It then saves a copy of the buffer in a temporary file in the -buffer's directory (or in the system temp directory -- for java +buffer's directory (or in the system temp directory, for java files), creates a syntax check command and launches a process with this command. The output is parsed using a list of error message patterns, and error information (file name, line number, type and text) is @@ -569,7 +569,7 @@ These modes are handled inside init/cleanup/getfname functions, see Flymake contains implementations of all functionality required to support different syntax check modes described above (making temporary copies, finding master files, etc.), as well as some tool-specific -(routines for Make, Ant, etc.) code. +(routines for Make, Ant, etc.)@: code. @node Making a temporary copy @@ -675,10 +675,13 @@ buildfile to reference the 'project configuration' file. Special function, @code{flymake-find-buildfile} is provided for locating buildfiles. Searching for a buildfile is done in a manner similar to that of searching -for possible master files. A customizable variable +for possible master files. +@ignore +A customizable variable @code{flymake-buildfile-dirs} holds a list of relative paths to the -buildfile. They are checked sequentially until a buildfile is found. In case -there's no build file, syntax check is aborted. +buildfile. They are checked sequentially until a buildfile is found. +@end ignore +In case there's no build file, syntax check is aborted. Buildfile values are also cached. diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi index 11c3782dd7e..17b117be961 100644 --- a/doc/misc/forms.texi +++ b/doc/misc/forms.texi @@ -18,7 +18,7 @@ @copying This file documents Forms mode, a form-editing major mode for GNU Emacs. -Copyright @copyright{} 1989, 1997, 2001-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1989, 1997, 2001--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -29,8 +29,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -74,7 +73,7 @@ job: a control file and a data file. The data file holds the actual data to be presented. The control file describes how to present it. -@insertcopying +@insertcopying @menu * Forms Example:: An example: editing the password data base. @@ -88,8 +87,8 @@ how to present it. * Miscellaneous:: Forms mode messages and other remarks. * Error Messages:: List of error messages forms mode can produce. * Long Example:: A more complex control file example. -* GNU Free Documentation License:: The license for this documentation. * Credits:: Thanks everyone. +* GNU Free Documentation License:: The license for this documentation. * Index:: Index to this manual. @end menu @end ifnottex @@ -117,8 +116,8 @@ are all there, but instead of being colon-separated on one single line, they make up a forms. The contents of the forms consist of the contents of the fields of the -record (e.g. @samp{root}, @samp{0}, @samp{1}, @samp{Super User}) -interspersed with normal text (e.g @samp{User : }, @samp{Uid: }). +record (e.g., @samp{root}, @samp{0}, @samp{1}, @samp{Super User}) +interspersed with normal text (e.g., @samp{User : }, @samp{Uid: }). If you modify the contents of the fields, Forms mode will analyze your changes and update the file appropriately. You cannot modify the @@ -467,7 +466,7 @@ appears that way when displayed in Forms mode. If the value is @code{nil}, multi-line text fields are prohibited. The pseudo newline must not be a character contained in @code{forms-field-sep}. -The default value is @code{"\^k"}, the character Control-K. Example: +The default value is @code{"\^k"}, the character Control-K@. Example: @example (setq forms-multi-line "\^k") @@ -739,7 +738,7 @@ so you'd better think twice before using this. The default format for the data file, using @code{"\t"} to separate fields and @code{"\^k"} to separate lines within a field, matches the -file format of some popular database programs, e.g. FileMaker. So +file format of some popular database programs, e.g., FileMaker. So @code{forms-mode} can decrease the need to use proprietary software. @node Error Messages diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi index bbaf2c068da..4e5855627b8 100644 --- a/doc/misc/gnus-coding.texi +++ b/doc/misc/gnus-coding.texi @@ -7,26 +7,19 @@ @syncodeindex pg cp @copying -Copyright @copyright{} 2004-2005, 2007-2012 Free Software +Copyright @copyright{} 2004--2005, 2007--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU -Manual'', and with the Back-Cover Texts as in (a) below. A copy of the -license is included in the section entitled ``GNU Free Documentation -License'' in the Gnus manual. +Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' - -This document is part of a collection distributed under the GNU Free -Documentation License. If you want to distribute this document -separately from the collection, you can do so by adding a copy of the -license to the document, as described in section 6 of the license. +modify this GNU manual.'' @end quotation @end copying @@ -48,12 +41,13 @@ license to the document, as described in section 6 of the license. @top Gnus Coding Style and Maintenance Guide This manual describes @dots{} -@insertcopying +@insertcopying @end ifnottex @menu * Gnus Coding Style:: Gnus Coding Style * Gnus Maintenance Guide:: Gnus Maintenance Guide +* GNU Free Documentation License:: The license for this documentation. @end menu @c @ref{Gnus Reference Guide, ,Gnus Reference Guide, gnus, The Gnus Newsreader} @@ -64,7 +58,7 @@ This manual describes @dots{} The Gnus distribution contains a lot of libraries that have been written for Gnus and used intensively for Gnus. But many of those libraries are -useful on their own. E.g. other Emacs Lisp packages might use the +useful on their own. E.g., other Emacs Lisp packages might use the @acronym{MIME} library @xref{Top, ,Top, emacs-mime, The Emacs MIME Manual}. @@ -196,7 +190,7 @@ There are no Gnus dependencies in this file. Functions for Cancel-Lock feature @c Cf. draft-ietf-usefor-cancel-lock-01.txt @c Although this draft has expired, Canlock-Lock revived in 2007 when -@c major news providers (e.g. news.individual.org) started to use it. +@c major news providers (e.g., news.individual.org) started to use it. @c As of 2007-08-25... There are no Gnus dependencies in these files. @@ -257,18 +251,18 @@ XEmacs 21.1 and up. The development of Gnus normally is done on the Git repository trunk as of April 19, 2010 (formerly it was done in CVS; the repository is -at http://git.gnus.org), i.e. there are no separate branches to +at http://git.gnus.org), i.e., there are no separate branches to develop and test new features. Most of the time, the trunk is developed quite actively with more or less daily changes. Only after -a new major release, e.g. 5.10.1, there's usually a feature period of +a new major release, e.g., 5.10.1, there's usually a feature period of several months. After the release of Gnus 5.10.6 the development of new features started again on the trunk while the 5.10 series is continued on the stable branch (v5-10) from which more stable releases will be done when needed (5.10.8, @dots{}). @ref{Gnus Development, ,Gnus Development, gnus, The Gnus Newsreader} -Stable releases of Gnus finally become part of Emacs. E.g. Gnus 5.8 -became a part of Emacs 21 (relabeled to Gnus 5.9). The 5.10 series +Stable releases of Gnus finally become part of Emacs. E.g., Gnus 5.8 +became a part of Emacs 21 (relabeled to Gnus 5.9). The 5.10 series became part of Emacs 22 as Gnus 5.11. @section Syncing @@ -306,7 +300,7 @@ reason. @c (typically so far the only exception has been that the changes @c already exist in the trunk in modified form). Because of this, when the next major version of Gnus will be included in -Emacs, it should be very easy -- just plonk in the files from the Gnus +Emacs, it should be very easy---just plonk in the files from the Gnus trunk without worrying about lost changes from the Emacs tree. The effect of this is that as hacker, you should generally only have to @@ -320,7 +314,7 @@ tree, and it will show up in the Gnus tree a few days later. If you don't have Emacs bzr access (or it's inconvenient), you can change such a file in the v5-10 branch, and it should propagate to Emacs -bzr -- however, it will get some extra scrutiny (by Miles) to see if the +bzr---however, it will get some extra scrutiny (by Miles) to see if the changes are possibly controversial and need discussion on the mailing list. Many changes are obvious bug-fixes however, so often there won't be any problem. @@ -335,7 +329,7 @@ including improvements on the documentation. If you know that there will be conflicts (perhaps because the affected source code is different in v5-10 and the Gnus git trunk), then you can install your change in both places, and when I try to sync them, there -will be a conflict -- however, since in most such cases there would be a +will be a conflict---however, since in most such cases there would be a conflict @emph{anyway}, it's often easier for me to resolve it simply if I see two @samp{identical} changes, and can just choose the proper one, rather than having to actually fix the code. @@ -379,7 +373,7 @@ Starting from No Gnus, the @file{GNUS-NEWS} is created from For new customizable variables introduced in Oort Gnus (including the v5-10 branch) use @code{:version "22.1" ;; Oort Gnus} (including the -comment) or e.g. @code{:version "22.2" ;; Gnus 5.10.10} if the feature +comment) or, e.g., @code{:version "22.2" ;; Gnus 5.10.10} if the feature was added for Emacs 22.2 and Gnus 5.10.10. @c If the variable is new in No Gnus use @code{:version "23.1" ;; No Gnus}. @@ -387,7 +381,11 @@ If the variable is new in No Gnus use @code{:version "23.1" ;; No Gnus}. The same applies for customizable variables when its default value was changed. +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + @c Local Variables: @c mode: texinfo -@c coding: iso-8859-1 +@c coding: utf-8 @c End: diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 6c2946549e8..cb900626670 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -1,10 +1,10 @@ @c \input texinfo @c -*-texinfo-*- @c Uncomment 1st line before texing this file alone. @c %**start of header -@c Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1995, 2001-2013 Free Software Foundation, Inc. @c -@setfilename gnus-faq.info -@settitle Frequently Asked Questions +@c @setfilename gnus-faq.info +@c @settitle Frequently Asked Questions @c %**end of header @c @@ -41,7 +41,7 @@ Please submit features and suggestions to the @email{ding@@gnus.org, ding list}. @node FAQ - Changes -@subheading Changes +@subsection Changes @@ -57,7 +57,7 @@ reference to discontinued service. @end itemize @node FAQ - Introduction -@subheading Introduction +@subsection Introduction This is the Gnus Frequently Asked Questions list. @@ -65,7 +65,7 @@ Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented as a part of Emacs. It's been around in some form for almost a decade now, and has been distributed as a standard part of Emacs for much of that time. Gnus 5 is the latest (and greatest) incarnation. The -original version was called GNUS, and was written by Masanobu UMEDA. +original version was called GNUS, and was written by Masanobu UMEDA@. When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and decided to rewrite Gnus. @@ -80,7 +80,7 @@ want. This FAQ was maintained by Justin Sheehy until March 2002. He would like to thank Steve Baur and Per Abrahamsen for doing a wonderful -job with this FAQ before him. We would like to do the same - thanks, +job with this FAQ before him. We would like to do the same: thanks, Justin! This version is much nicer than the unofficial hypertext @@ -149,7 +149,7 @@ Anti Spam features. Message-utils now included in Gnus. @item -New format specifiers for summary lines, e.g. %B for +New format specifiers for summary lines, e.g., %B for a complex trn-style thread tree. @end itemize @@ -162,7 +162,7 @@ Where and how to get Gnus? Gnus is released independent from releases of Emacs and XEmacs. Therefore, the version bundled with Emacs or the version in XEmacs's -package system might not be up to date (e.g. Gnus 5.9 bundled with Emacs +package system might not be up to date (e.g., Gnus 5.9 bundled with Emacs 21 is outdated). You can get the latest released version of Gnus from @uref{http://www.gnus.org/dist/gnus.tar.gz} @@ -181,7 +181,7 @@ Untar it via @samp{tar xvzf gnus.tar.gz} and do the common (under MS-Windows either get the Cygwin environment from @uref{http://www.cygwin.com} which allows you to do what's described above or unpack the -tarball with some packer (e.g. Winace from +tarball with some packer (e.g., Winace from @uref{http://www.winace.com}) and use the batch-file make.bat included in the tarball to install Gnus.) If you don't want to (or aren't allowed to) install Gnus @@ -267,7 +267,7 @@ and how to prevent it? This message means that the last time you used Gnus, it wasn't properly exited and therefore couldn't write its -information to disk (e.g. which messages you read), you +information to disk (e.g., which messages you read), you are now asked if you want to restore that information from the auto-save file. @@ -314,7 +314,7 @@ through them? @subsubheading Answer Gnus offers the topic mode, it allows you to sort your -groups in, well, topics, e.g. all groups dealing with +groups in, well, topics, e.g., all groups dealing with Linux under the topic linux, all dealing with music under the topic music and all dealing with scottish music under the topic scottish which is a subtopic of music. @@ -406,7 +406,7 @@ directory Emacs chooses will most certainly not be what you want, so let's do it the correct way. The first thing you've got to do is to create a suitable directory (no blanks in directory name -please) e.g. c:\myhome. Then you must set the environment +please), e.g., c:\myhome. Then you must set the environment variable HOME to this directory. To do this under Windows 9x or Me include the line @@ -556,7 +556,7 @@ these: 1: You want to read your mail from a pop3 server and send them directly to a SMTP Server 2: Some program like fetchmail retrieves your mail and stores it on disk from where Gnus shall read it. Outgoing mail is sent by -Sendmail, Postfix or some other MTA. Sometimes, you even +Sendmail, Postfix or some other MTA@. Sometimes, you even need a combination of the above cases. However, the first thing to do is to tell Gnus in which way @@ -705,32 +705,9 @@ retrieves via POP3? @subsubheading Answer -First of all, that's not the way POP3 is intended to work, -if you have the possibility, you should use the IMAP -Protocol if you want your messages to stay on the -server. Nevertheless there might be situations where you -need the feature, but sadly Gnus itself has no predefined -functionality to do so. - -However this is Gnus county so there are possibilities to -achieve what you want. The easiest way is to get an external -program which retrieves copies of the mail and stores them -on disk, so Gnus can read it from there. On Unix systems you -could use e.g. fetchmail for this, on MS Windows you can use -Hamster, an excellent local news and mail server. - -The other solution would be, to replace the method Gnus -uses to get mail from POP3 servers by one which is capable -of leaving the mail on the server. If you use XEmacs, get -the package mail-lib, it includes an enhanced pop3.el, -look in the file, there's documentation on how to tell -Gnus to use it and not to delete the retrieved mail. For -GNU Emacs look for the file epop3.el which can do the same -(If you know the home of this file, please send me an -e-mail). You can also tell Gnus to use an external program -(e.g. fetchmail) to fetch your mail, see the info node -"Mail Source Specifiers" in the Gnus manual on how to do -it. +Yes, if the POP3 server supports the UIDL control (maybe almost servers +do it nowadays). To do that, add a @code{:leave VALUE} pair to each +POP3 mail source. See @pxref{Mail Source Specifiers} for VALUE. @node FAQ 4 - Reading messages @subsection Reading messages @@ -753,7 +730,7 @@ it. * FAQ 4-9:: Is there a way to automatically ignore posts by specific authors or with specific words in the subject? And can I highlight more interesting ones in some way? -* FAQ 4-10:: How can I disable threading in some (e.g. mail-) groups, +* FAQ 4-10:: How can I disable threading in some (e.g., mail-) groups, or set other variables specific for some groups? * FAQ 4-11:: Can I highlight messages written by me and follow-ups to those? @@ -778,7 +755,7 @@ If you enter the group by saying @samp{RET} in group buffer with point over the group, only unread and ticked messages are loaded. Say @samp{C-u RET} -instead to load all available messages. If you want only the e.g. 300 newest say +instead to load all available messages. If you want only the 300 newest say @samp{C-u 300 RET} Loading only unread messages can be annoying if you have threaded view enabled, say @@ -954,7 +931,7 @@ Hit either @samp{e} for an exact match or @samp{s} for substring-match and delete afterwards everything but the name to score down all authors with the given name no matter which email address is used. Now you need to tell -Gnus when to apply the rule and how long it should last, hit e.g. +Gnus when to apply the rule and how long it should last, hit @samp{p} to apply the rule now and let it last forever. If you want to raise the score instead of lowering it say @samp{I} instead of @samp{L}. @@ -967,7 +944,7 @@ Gnus manual for the exact syntax, basically it's one big list whose elements are lists again. the first element of those lists is the header to score on, then one more list with what to match, which score to assign, when to expire the rule and how to do the -matching. If you find me very interesting, you could e.g. add the +matching. If you find me very interesting, you could add the following to your all.Score: @example @@ -998,7 +975,7 @@ in ~/.gnus.el. @node FAQ 4-10 @subsubheading Question 4.10 -How can I disable threading in some (e.g. mail-) groups, or +How can I disable threading in some (e.g., mail-) groups, or set other variables specific for some groups? @subsubheading Answer @@ -1038,7 +1015,7 @@ mail groups. Is this a bug? No, that's a matter of design of Gnus, fixing this would mean reimplementation of major parts of Gnus' -back ends. Gnus thinks "highest-article-number - +back ends. Gnus thinks "highest-article-number @minus{} lowest-article-number = total-number-of-articles". This works OK for Usenet groups, but if you delete and move many messages in mail groups, this fails. To cure the @@ -1114,7 +1091,7 @@ tabulators which allow you a summary in table form, but sadly hard tabulators are broken in 5.8.8. Since 5.10, Gnus offers you some very nice new specifiers, -e.g. %B which draws a thread-tree and %&user-date which +e.g., %B which draws a thread-tree and %&user-date which gives you a date where the details are dependent of the articles age. Here's an example which uses both: @@ -1218,7 +1195,7 @@ from using them): messages? * FAQ 5-3:: How to set stuff like From, Organization, Reply-To, signature...? -* FAQ 5-4:: Can I set things like From, Signature etc group based on +* FAQ 5-4:: Can I set things like From, Signature etc. group based on the group I post too? * FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly spell-checking? @@ -1771,7 +1748,7 @@ snippet by Frank Haun in @example (defun my-archive-article (&optional n) - "Copies one or more article(s) to a corresponding `nnml:' group, e.g. + "Copies one or more article(s) to a corresponding `nnml:' group, e.g., `gnus.ding' goes to `nnml:1.gnus.ding'. And `nnml:List-gnus.ding' goes to `nnml:1.List-gnus-ding'. @@ -1879,7 +1856,7 @@ some groups). How to do it? @subsubheading Answer -If you want all read messages to be expired (e.g. in +If you want all read messages to be expired (e.g., in mailing lists where there's an online archive), you've got two choices: auto-expire and total-expire. Auto-expire means, that every article @@ -1924,7 +1901,7 @@ Say something like this in ~/.gnus.el: (If you want to change the value of nnmail-expiry-target on a per group basis see the question "How can I disable -threading in some (e.g. mail-) groups, or set other +threading in some (e.g., mail-) groups, or set other variables specific for some groups?") @node FAQ 7 - Gnus in a dial-up environment @@ -1983,7 +1960,7 @@ On windows boxes I'd vote for it's a small freeware, open-source program which fetches your mail and news from remote servers and offers them to Gnus (or any other mail and/or news reader) via nntp -respectively POP3 or IMAP. It also includes a smtp +respectively POP3 or IMAP@. It also includes a smtp server for receiving mails from Gnus. @node FAQ 7-2 @@ -1996,7 +1973,7 @@ So what was this thing about the Agent? The Gnus agent is part of Gnus, it allows you to fetch mail and news and store them on disk for reading them later when you're offline. It kind of mimics offline -newsreaders like e.g. Forte Agent. If you want to use +newsreaders like Forte Agent. If you want to use the Agent place the following in ~/.gnus.el if you are still using 5.8.8 or 5.9 (it's the default since 5.10): @@ -2075,7 +2052,7 @@ work, the agent must be active. @menu * FAQ 8-1:: How to find information and help inside Emacs? -* FAQ 8-2:: I can't find anything in the Gnus manual about X (e.g. +* FAQ 8-2:: I can't find anything in the Gnus manual about X (e.g., attachments, PGP, MIME...), is it not documented? * FAQ 8-3:: Which websites should I know? * FAQ 8-4:: Which mailing lists and newsgroups are there? @@ -2105,7 +2082,7 @@ apropos} searches the bound variables. @subsubheading Question 8.2 I can't find anything in the Gnus manual about X -(e.g. attachments, PGP, MIME...), is it not documented? +(e.g., attachments, PGP, MIME...), is it not documented? @subsubheading Answer diff --git a/doc/misc/gnus-news.el b/doc/misc/gnus-news.el index 0c083c85a4d..ff082e4ecf0 100644 --- a/doc/misc/gnus-news.el +++ b/doc/misc/gnus-news.el @@ -1,5 +1,5 @@ ;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source -;; Copyright (C) 2004-2012 Free Software Foundation, Inc. +;; Copyright (C) 2004-2013 Free Software Foundation, Inc. ;; Author: Reiner Steib ;; Keywords: tools @@ -26,7 +26,7 @@ (defvar gnus-news-header-disclaimer "GNUS NEWS -- history of user-visible changes. -Copyright (C) 1999-2012 Free Software Foundation, Inc. +Copyright (C) 1999-2013 Free Software Foundation, Inc. See the end of the file for license conditions. Please send Gnus bug reports to bugs@gnus.org. diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi index 19bbe01667c..9c1ecb19748 100644 --- a/doc/misc/gnus-news.texi +++ b/doc/misc/gnus-news.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- -@c Copyright (C) 2004-2012 Free Software Foundation, Inc. +@c Copyright (C) 2004-2013 Free Software Foundation, Inc. @c Permission is granted to anyone to make or distribute verbatim copies @c of this document as received, in any medium, provided that the diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 47ff355d946..983887d721d 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -11,7 +11,7 @@ @documentencoding UTF-8 @copying -Copyright @copyright{} 1995-2012 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -22,8 +22,7 @@ and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and -modify this GNU manual. Buying copies from the FSF supports it in -developing GNU and promoting software freedom.'' +modify this GNU manual.'' @end quotation @end copying @@ -1297,7 +1296,7 @@ subscribing these groups. variable defaults to @code{gnus-subscribe-alphabetically}. The ``options -n'' format is very simplistic. The syntax above is all -that is supports -- you can force-subscribe hierarchies, or you can +that is supports: you can force-subscribe hierarchies, or you can deny hierarchies, and that's it. @vindex gnus-options-not-subscribe @@ -1580,6 +1579,10 @@ times you start Gnus. @vindex gnus-before-startup-hook A hook called as the first thing when Gnus is started. +@item gnus-before-resume-hook +@vindex gnus-before-resume-hook +A hook called as the first thing when Gnus is resumed after a suspend. + @item gnus-startup-hook @vindex gnus-startup-hook A hook run as the very last thing after starting up Gnus @@ -1731,7 +1734,7 @@ asterisk at the beginning of the line?). You can change that format to whatever you want by fiddling with the @code{gnus-group-line-format} variable. This variable works along the lines of a @code{format} specification, which is pretty much the same as -a @code{printf} specifications, for those of you who use (feh!) C. +a @code{printf} specifications, for those of you who use (feh!) C@. @xref{Formatting Variables}. @samp{%M%S%5y:%B%(%g%)\n} is the value that produced those lines above. @@ -2140,14 +2143,14 @@ In groups in some news servers, there might be a big gap between a few very old articles that will never be expired and the recent ones. In such a case, the server will return the data like @code{(1 . 30000000)} for the @code{LIST ACTIVE group} command, for example. Even if there -are actually only the articles 1-10 and 29999900-30000000, Gnus doesn't +are actually only the articles 1--10 and 29999900--30000000, Gnus doesn't know it at first and prepares for getting 30000000 articles. However, it will consume hundreds megabytes of memories and might make Emacs get stuck as the case may be. If you use such news servers, set the variable @code{gnus-newsgroup-maximum-articles} to a positive number. The value means that Gnus ignores articles other than this number of the latest ones in every group. For instance, the value 10000 makes Gnus -get only the articles 29990001-30000000 (if the latest article number is +get only the articles 29990001--30000000 (if the latest article number is 30000000 in a group). Note that setting this variable to a number might prevent you from reading very old articles. The default value of the variable @code{gnus-newsgroup-maximum-articles} is @code{nil}, which @@ -2345,13 +2348,13 @@ Gnus considers groups from levels 1 to unsubscribed, @code{gnus-level-zombie} to be zombies (walking dead) (default 8) and @code{gnus-level-killed} to be killed (completely dead) (default 9). Gnus treats subscribed and unsubscribed groups exactly the -same, but zombie and killed groups have no information on what articles -you have read, etc, stored. This distinction between dead and living +same, but zombie and killed groups store no information on what articles +you have read, etc. This distinction between dead and living groups isn't done because it is nice or clever, it is done purely for reasons of efficiency. It is recommended that you keep all your mail groups (if any) on quite -low levels (e.g. 1 or 2). +low levels (e.g., 1 or 2). Maybe the following description of the default behavior of Gnus helps to understand what these levels are all about. By default, Gnus shows you @@ -2418,7 +2421,7 @@ give a level prefix to @kbd{g} or @kbd{l}, all subsequent commands will use this level as the ``work'' level. @vindex gnus-activate-level -Gnus will normally just activate (i. e., query the server about) groups +Gnus will normally just activate (i.e., query the server about) groups on level @code{gnus-activate-level} or less. If you don't want to activate unsubscribed groups, for instance, you might set this variable to 5. The default is 6. @@ -2654,7 +2657,7 @@ to a particular group by using a match string like @kindex G R (Group) @findex gnus-group-make-rss-group Make a group based on an @acronym{RSS} feed -(@code{gnus-group-make-rss-group}). You will be prompted for an URL. +(@code{gnus-group-make-rss-group}). You will be prompted for an URL@. @xref{RSS}. @item G DEL @@ -2708,7 +2711,7 @@ the article range. @findex gnus-read-ephemeral-gmane-group-url This command is similar to @code{gnus-read-ephemeral-gmane-group}, but the group name and the article number and range are constructed from a -given @acronym{URL}. Supported @acronym{URL} formats include e.g. +given @acronym{URL}. Supported @acronym{URL} formats include: @url{http://thread.gmane.org/gmane.foo.bar/12300/focus=12399}, @url{http://thread.gmane.org/gmane.foo.bar/12345/}, @url{http://article.gmane.org/gmane.foo.bar/12345/}, @@ -3125,7 +3128,7 @@ parameters, then you may need the following statement elsewhere in your @vindex gnus-list-identifiers A use for this feature is to remove a mailing list identifier tag in -the subject fields of articles. E.g. if the news group +the subject fields of articles. E.g., if the news group @example nntp+news.gnus.org:gmane.text.docbook.apps @@ -3642,6 +3645,15 @@ Describe the current group (@code{gnus-browse-describe-group}). @findex gnus-browse-describe-briefly Describe browse mode briefly (well, there's not much to describe, is there) (@code{gnus-browse-describe-briefly}). + +@item DEL +@kindex DEL (Browse) +@findex gnus-browse-delete-group +This function will delete the current group +(@code{gnus-browse-delete-group}). If given a prefix, this function +will actually delete all the articles in the group, and forcibly +remove the group itself from the face of the Earth. Use a prefix only +if you are absolutely sure of what you are doing. @end table @@ -3820,7 +3832,7 @@ So, to move a topic to the beginning of the list of topics, just hit @kbd{C-k} on it. This is like the ``cut'' part of cut and paste. Then, move the cursor to the beginning of the buffer (just below the ``Gnus'' topic) and hit @kbd{C-y}. This is like the ``paste'' part of cut and -paste. Like I said -- E-Z. +paste. Like I said---E-Z. You can use @kbd{C-k} and @kbd{C-y} on groups as well as on topics. So you can move topics around as well as groups. @@ -5036,7 +5048,7 @@ A related variable is @code{nnmail-extra-headers}, which controls when to include extra headers when generating overview (@acronym{NOV}) files. If you have old overview files, you should regenerate them after changing this variable, by entering the server buffer using @kbd{^}, -and then @kbd{g} on the appropriate mail server (e.g. nnml) to cause +and then @kbd{g} on the appropriate mail server (e.g., nnml) to cause regeneration. @vindex gnus-summary-line-format @@ -7120,8 +7132,8 @@ arrived on the mailing list. Consequently, when sorting sub-threads using the default @code{gnus-thread-sort-by-number}, responses can end up appearing before the article to which they are responding to. Setting this variable to an alternate value -(e.g. @code{gnus-thread-sort-by-date}), in a group's parameters or in an -appropriate hook (e.g. @code{gnus-summary-generate-hook}) can produce a +(e.g., @code{gnus-thread-sort-by-date}), in a group's parameters or in an +appropriate hook (e.g., @code{gnus-summary-generate-hook}) can produce a more logical sub-thread ordering in such instances. @end table @@ -7908,7 +7920,7 @@ reader to use this setting. @item gnus-summary-save-in-pipe @findex gnus-summary-save-in-pipe Pipe the article to a shell command. This function takes optional two -arguments COMMAND and RAW. Valid values for COMMAND include: +arguments COMMAND and RAW@. Valid values for COMMAND include: @itemize @bullet @item a string@* @@ -8916,7 +8928,7 @@ Unreadable articles that tell you to read them with Caesar rotate or rot13. (Typically offensive jokes and such.) It's commonly called ``rot13'' because each letter is rotated 13 -positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter +positions in the alphabet, e.g., @samp{B} (letter #2) -> @samp{O} (letter #15). It is sometimes referred to as ``Caesar rotate'' because Caesar is rumored to have employed this form of, uh, somewhat weak encryption. @@ -9037,7 +9049,7 @@ Capitalize the first word in each sentence @item W c @kindex W c (Summary) @findex gnus-article-remove-cr -Translate CRLF pairs (i. e., @samp{^M}s on the end of the lines) into LF +Translate CRLF pairs (i.e., @samp{^M}s on the end of the lines) into LF (this takes care of DOS line endings), and then translate any remaining CRs into LF (this takes care of Mac line endings) (@code{gnus-article-remove-cr}). @@ -9587,13 +9599,13 @@ Piconify the @code{From} header (@code{gnus-treat-from-picon}). @item W D m @kindex W D m (Summary) @findex gnus-treat-mail-picon -Piconify all mail headers (i. e., @code{Cc}, @code{To}) +Piconify all mail headers (i.e., @code{Cc}, @code{To}) (@code{gnus-treat-mail-picon}). @item W D n @kindex W D n (Summary) @findex gnus-treat-newsgroups-picon -Piconify all news headers (i. e., @code{Newsgroups} and +Piconify all news headers (i.e., @code{Newsgroups} and @code{Followup-To}) (@code{gnus-treat-newsgroups-picon}). @item W D g @@ -9604,7 +9616,7 @@ Gravatarify the @code{From} header (@code{gnus-treat-from-gravatar}). @item W D h @kindex W D h (Summary) @findex gnus-treat-mail-gravatar -Gravatarify all mail headers (i. e., @code{Cc}, @code{To}) +Gravatarify all mail headers (i.e., @code{Cc}, @code{To}) (@code{gnus-treat-from-gravatar}). @item W D D @@ -9885,7 +9897,7 @@ displayed. This variable overrides This variable is only used when @code{gnus-inhibit-mime-unbuttonizing} is @code{nil}. -To see e.g. security buttons but no other buttons, you could set this +E.g., to see security buttons but no other buttons, you could set this variable to @code{("multipart/signed")} and leave @code{gnus-unbuttonized-mime-types} at the default value. @@ -9904,8 +9916,8 @@ default value is @code{nil}. @vindex gnus-article-mime-part-function For each @acronym{MIME} part, this function will be called with the @acronym{MIME} handle as the parameter. The function is meant to be used to allow -users to gather information from the article (e. g., add Vcard info to -the bbdb database) or to do actions based on parts (e. g., automatically +users to gather information from the article (e.g., add Vcard info to +the bbdb database) or to do actions based on parts (e.g., automatically save all jpegs into some directory). Here's an example function the does the latter: @@ -10230,7 +10242,7 @@ visible effects normally, but it'll make this command work a whole lot faster. Of course, it'll make group entry somewhat slow. @vindex gnus-refer-thread-limit -The @code{gnus-refer-thread-limit} variable says how many old (i. e., +The @code{gnus-refer-thread-limit} variable says how many old (i.e., articles before the first displayed in the current group) headers to fetch when doing this command. The default is 200. If @code{t}, all the available headers will be fetched. This variable can be overridden @@ -11128,7 +11140,7 @@ There will never be more than one dead summary buffer at any one time. @vindex gnus-use-cross-reference The data on the current group will be updated (which articles you have -read, which articles you have replied to, etc.) when you exit the +read, which articles you have replied to, etc.)@: when you exit the summary buffer. If the @code{gnus-use-cross-reference} variable is @code{t} (which is the default), articles that are cross-referenced to this group and are marked as read, will also be marked as read in the @@ -11275,13 +11287,13 @@ things to work: @enumerate @item To handle @acronym{PGP} and @acronym{PGP/MIME} messages, you have to -install an OpenPGP implementation such as GnuPG. The Lisp interface +install an OpenPGP implementation such as GnuPG@. The Lisp interface to GnuPG included with Emacs is called EasyPG (@pxref{Top, ,EasyPG, epa, EasyPG Assistant user's manual}), but PGG (@pxref{Top, ,PGG, pgg, PGG Manual}), and Mailcrypt are also supported. @item -To handle @acronym{S/MIME} message, you need to install OpenSSL. OpenSSL 0.9.6 +To handle @acronym{S/MIME} message, you need to install OpenSSL@. OpenSSL 0.9.6 or newer is recommended. @end enumerate @@ -11773,7 +11785,7 @@ directory, the oldest files will be deleted. The default is 500MB. @item gnus-html-frame-width @vindex gnus-html-frame-width -The width to use when rendering HTML. The default is 70. +The width to use when rendering HTML@. The default is 70. @item gnus-max-image-proportion @vindex gnus-max-image-proportion @@ -12218,7 +12230,7 @@ Displayed when headers are hidden in the article buffer. @item p Displayed when article is digitally signed or encrypted, and Gnus has hidden the security headers. (N.B. does not tell anything about -security status, i.e. good or bad signature.) +security status, i.e., good or bad signature.) @item s Displayed when the signature has been hidden in the Article buffer. @@ -12683,7 +12695,7 @@ copy of a sent message. The current buffer (when the hook is run) contains the message including the message header. Changes made to the message will only affect the Gcc copy, but not the original message. You can use these hooks to edit the copy (and influence -subsequent transformations), e.g. remove MML secure tags +subsequent transformations), e.g., remove MML secure tags (@pxref{Signing and encrypting}). @end table @@ -13028,7 +13040,7 @@ personal mail group. A foreign group (or any group, really) is specified by a @dfn{name} and a @dfn{select method}. To take the latter first, a select method is a -list where the first element says what back end to use (e.g. @code{nntp}, +list where the first element says what back end to use (e.g., @code{nntp}, @code{nnspool}, @code{nnml}) and the second element is the @dfn{server name}. There may be additional elements in the select method, where the value may have special meaning for the back end in question. @@ -13405,7 +13417,7 @@ Server variables are often called @dfn{server parameters}. @subsection Servers and Methods Wherever you would normally use a select method -(e.g. @code{gnus-secondary-select-method}, in the group select method, +(e.g., @code{gnus-secondary-select-method}, in the group select method, when browsing a foreign server) you can use a virtual server name instead. This could potentially save lots of typing. And it's nice all over. @@ -13662,7 +13674,7 @@ server. The default value of this variable is @code{("XOVER" @vindex nntp-nov-gap @code{nntp} normally sends just one big request for @acronym{NOV} lines to the server. The server responds with one huge list of lines. However, -if you have read articles 2-5000 in the group, and only want to read +if you have read articles 2--5000 in the group, and only want to read article 1 and 5001, that means that @code{nntp} will fetch 4999 @acronym{NOV} lines that you will not need. This variable says how big a gap between two consecutive articles is allowed to be before the @@ -13749,7 +13761,7 @@ inhibit Gnus to add a @code{Message-ID} header, you could say: (add-hook 'nntp-prepare-post-hook 'canlock-insert-header) @end lisp -Note that not all servers support the recommended ID. This works for +Note that not all servers support the recommended ID@. This works for INN versions 2.3.0 and later, for instance. @item nntp-server-list-active-group @@ -14010,7 +14022,7 @@ The address of the @acronym{NNTP} server. Port number to connect to the @acronym{NNTP} server. The default is @samp{nntp}. If you use @acronym{NNTP} over @acronym{TLS}/@acronym{SSL}, you may want to use integer ports rather -than named ports (i.e, use @samp{563} instead of @samp{snews} or +than named ports (i.e., use @samp{563} instead of @samp{snews} or @samp{nntps}), because external @acronym{TLS}/@acronym{SSL} tools may not work with named ports. @@ -14196,7 +14208,11 @@ what you need. @item nnimap-authenticator Some @acronym{IMAP} servers allow anonymous logins. In that case, -this should be set to @code{anonymous}. +this should be set to @code{anonymous}. If this variable isn't set, +the normal login methods will be used. If you wish to specify a +specific login method to be used, you can set this variable to either +@code{login} (the traditional @acronym{IMAP} login method), +@code{plain} or @code{cram-md5}. @item nnimap-expunge If non-@code{nil}, expunge articles after deleting them. This is always done @@ -14268,7 +14284,7 @@ Here's a complete example @code{nnimap} backend with a client-side @cindex reading mail @cindex mail -Reading mail with a newsreader---isn't that just plain WeIrD? But of +Reading mail with a newsreader---isn't that just plain WeIrD@? But of course. @menu @@ -14525,6 +14541,7 @@ maildir, for instance. @menu * Mail Source Specifiers:: How to specify what a mail source is. +* Mail Source Functions:: * Mail Source Customization:: Some variables that influence things. * Fetching Mail:: Using the mail source specifiers. @end menu @@ -14684,8 +14701,8 @@ The name of the @acronym{POP} server. The default is taken from the @env{MAILHOST} environment variable. @item :port -The port number of the @acronym{POP} server. This can be a number (eg, -@samp{:port 1234}) or a string (eg, @samp{:port "pop3"}). If it is a +The port number of the @acronym{POP} server. This can be a number (e.g., +@samp{:port 1234}) or a string (e.g., @samp{:port "pop3"}). If it is a string, it should be a service name as listed in @file{/etc/services} on Unix systems. The default is @samp{"pop3"}. On some systems you might need to specify it as @samp{"pop-3"} instead. @@ -14858,7 +14875,7 @@ Two example maildir mail sources: @item imap Get mail from a @acronym{IMAP} server. If you don't want to use -@acronym{IMAP} as intended, as a network mail reading protocol (ie +@acronym{IMAP} as intended, as a network mail reading protocol (i.e., with nnimap), for some reason or other, Gnus let you treat it similar to a @acronym{POP} server and fetches articles from a given @acronym{IMAP} mailbox. @xref{Using IMAP}, for more information. @@ -14984,6 +15001,7 @@ useful when you use local mail and news. @end table @end table +@node Mail Source Functions @subsubsection Function Interface Some of the above keywords specify a Lisp function to be executed. @@ -15392,7 +15410,7 @@ Where @code{nnmail-split-lowercase-expanded} controls whether the lowercase of the matched string should be used for the substitution. Setting it as non-@code{nil} is useful to avoid the creation of multiple groups when users send to an address using different case -(i.e. mailing-list@@domain vs Mailing-List@@Domain). The default value +(i.e., mailing-list@@domain vs Mailing-List@@Domain). The default value is @code{t}. @findex nnmail-split-fancy-with-parent @@ -15926,7 +15944,7 @@ Translate all @samp{TAB} characters into @samp{SPACE} characters. @c @findex nnmail-fix-eudora-headers @cindex Eudora @cindex Pegasus -Some mail user agents (e.g. Eudora and Pegasus) produce broken +Some mail user agents (e.g., Eudora and Pegasus) produce broken @code{References} headers, but correct @code{In-Reply-To} headers. This function will get rid of the @code{References} header if the headers contain a line matching the regular expression @@ -15958,7 +15976,7 @@ Decode Quoted Readable encoding. If you are a member of a couple of mailing lists, you will sometimes receive two copies of the same mail. This can be quite annoying, so @code{nnmail} checks for and treats any duplicates it might find. To do -this, it keeps a cache of old @code{Message-ID}s--- +this, it keeps a cache of old @code{Message-ID}s: @code{nnmail-message-id-cache-file}, which is @file{~/.nnmail-cache} by default. The approximate maximum number of @code{Message-ID}s stored there is controlled by the @code{nnmail-message-id-cache-length} @@ -16052,6 +16070,10 @@ Spool}). * Mail Spool:: Store your mail in a private spool? * MH Spool:: An mhspool-like back end. * Maildir:: Another one-file-per-message format. +* nnmaildir Group Parameters:: +* Article Identification:: +* NOV Data:: +* Article Marks:: * Mail Folders:: Having one file for each group. * Comparing Mail Back Ends:: An in-depth looks at pros and cons. @end menu @@ -16359,6 +16381,7 @@ different in the future. If your split rules create new groups, remember to supply a @code{create-directory} server parameter. @end table +@node nnmaildir Group Parameters @subsubsection Group parameters @code{nnmaildir} uses several group parameters. It's safe to ignore @@ -16469,6 +16492,7 @@ that are either marked with @code{tick} or not marked with @code{read}, plus a little extra. @end table +@node Article Identification @subsubsection Article identification Articles are stored in the @file{cur/} subdirectory of each maildir. Each article file is named like @code{uniq:info}, where @code{uniq} @@ -16481,6 +16505,7 @@ about the corresponding article. The full pathname of an article is available in the variable @code{nnmaildir-article-file-name} after you request the article in the summary buffer. +@node NOV Data @subsubsection NOV data An article identified by @code{uniq} has its @acronym{NOV} data (used to generate lines in the summary buffer) stored in @@ -16494,6 +16519,7 @@ file, but @emph{beware}: this will also cause @code{nnmaildir} to assign a new article number for this article, which may cause trouble with @code{seen} marks, the Agent, and the cache. +@node Article Marks @subsubsection Article marks An article identified by @code{uniq} is considered to have the mark @code{flag} when the file @file{.nnmaildir/marks/flag/uniq} exists. @@ -16622,8 +16648,8 @@ future. Here are some high and low points on each: @table @code @item nnmbox -UNIX systems have historically had a single, very common, and well- -defined format. All messages arrive in a single @dfn{spool file}, and +UNIX systems have historically had a single, very common, and well-defined +format. All messages arrive in a single @dfn{spool file}, and they are delineated by a line whose regular expression matches @samp{^From_}. (My notational use of @samp{_} is to indicate a space, to make it clear in this instance that this is not the RFC-specified @@ -16935,7 +16961,7 @@ Some web sites have an RDF Site Summary (@acronym{RSS}). @acronym{RSS} is a format for summarizing headlines from news related sites (such as BBC or CNN). But basically anything list-like can be presented as an @acronym{RSS} feed: weblogs, changelogs or recent -changes to a wiki (e.g. @url{http://cliki.net/recent-changes.rdf}). +changes to a wiki (e.g., @url{http://cliki.net/recent-changes.rdf}). @acronym{RSS} has a quite regular and nice interface, and it's possible to get the information Gnus needs to keep groups updated. @@ -16999,7 +17025,7 @@ in Emacs or @code{escape-quoted} in XEmacs). @item nnrss-ignore-article-fields @vindex nnrss-ignore-article-fields Some feeds update constantly article fields during their publications, -e.g. to indicate the number of comments. However, if there is +e.g., to indicate the number of comments. However, if there is a difference between the local article and the distant one, the latter is considered to be new. To avoid this and discard some fields, set this variable to the list of fields to be ignored. The default is @@ -17169,7 +17195,7 @@ After all, Gnus is a newsreader, in case you're forgetting. @code{nneething} does this in a two-step process. First, it snoops each file in question. If the file looks like an article (i.e., the first few lines look like headers), it will use this as the head. If this is -just some arbitrary file without a head (e.g. a C source file), +just some arbitrary file without a head (e.g., a C source file), @code{nneething} will cobble up a header out of thin air. It will use file ownership, name and date and do whatever it can with these elements. @@ -17891,7 +17917,7 @@ two variables are probably the only ones you will want to change: @defvar nndiary-reminders This is the list of times when you want to be reminded of your -appointments (e.g. 3 weeks before, then 2 days before, then 1 hour +appointments (e.g., 3 weeks before, then 2 days before, then 1 hour before and that's it). Remember that ``being reminded'' means that the diary message will pop up as brand new and unread again when you get new mail. @@ -17943,9 +17969,9 @@ see the event's date. @code{gnus-diary} provides two supplemental user formats to be used in summary line formats. @code{D} corresponds to a formatted time string -for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''), +for the next occurrence of the event (e.g., ``Sat, Sep 22 01, 12:00''), while @code{d} corresponds to an approximate remaining time until the -next occurrence of the event (e.g. ``in 6 months, 1 week''). +next occurrence of the event (e.g., ``in 6 months, 1 week''). For example, here's how Joe's birthday is displayed in my @code{nndiary+diary:birthdays} summary buffer (note that the message is @@ -18399,7 +18425,7 @@ to know: The functions are called with no parameters, but the useful values. For example, you could decide that you don't want to download articles -that were posted more than a certain number of days ago (e.g. posted +that were posted more than a certain number of days ago (e.g., posted more than @code{gnus-agent-expire-days} ago) you might write a function something along the lines of the following: @@ -19003,7 +19029,7 @@ agent as unread. @subsection Agent and flags The Agent works with any Gnus back end including those, such as -nnimap, that store flags (read, ticked, etc) on the server. Sadly, +nnimap, that store flags (read, ticked, etc.)@: on the server. Sadly, the Agent does not actually know which backends keep their flags in the backend server rather than in @file{.newsrc}. This means that the Agent, while unplugged or disconnected, will always record all changes @@ -19119,7 +19145,7 @@ Hook run when finished fetching articles. @item gnus-agent-cache @vindex gnus-agent-cache Variable to control whether use the locally stored @acronym{NOV} and -articles when plugged, e.g. essentially using the Agent as a cache. +articles when plugged, e.g., essentially using the Agent as a cache. The default is non-@code{nil}, which means to use the Agent as a cache. @item gnus-agent-go-online @@ -19370,7 +19396,7 @@ entries into this list, and upon group exit, this list is saved. The current score file is by default the group's local score file, even if no such score file actually exists. To insert score commands into -some other score file (e.g. @file{all.SCORE}), you must first make this +some other score file (e.g., @file{all.SCORE}), you must first make this score file the current one. General score commands that don't actually change the score file: @@ -19979,14 +20005,14 @@ the article was posted from. Time zones are such wholesome fun for the whole family, eh?) @item Head, Body, All -These three match keys use the same match types as the @code{From} (etc) +These three match keys use the same match types as the @code{From} (etc.)@: header uses. @item Followup This match key is somewhat special, in that it will match the @code{From} header, and affect the score of not only the matching articles, but also all followups to the matching articles. This allows -you e.g. increase the score of followups to your own articles, or +you to increase the score of followups to your own articles, or decrease the score of followups to the articles of some known trouble-maker. Uses the same match types as the @code{From} header uses. (Using this match key will lead to creation of @file{ADAPT} @@ -20066,7 +20092,7 @@ interesting (with @kbd{I T} or @kbd{I S}), and ignore (@kbd{c y}) the rest. Next time you enter the group, you will see new articles in the interesting threads, plus any new threads. -I.e.---the orphan score atom is for high-volume groups where a few +I.e., the orphan score atom is for high-volume groups where a few interesting threads which can't be found automatically by ordinary scoring rules exist. @@ -20961,7 +20987,7 @@ When score files are loaded and @code{gnus-decay-scores} is non-@code{nil}, Gnus will run the score files through the decaying mechanism thereby lowering the scores of all non-permanent score rules. If @code{gnus-decay-scores} is a regexp, only score files matching this -regexp are treated. E.g. you may set it to @samp{\\.ADAPT\\'} if only +regexp are treated. E.g., you may set it to @samp{\\.ADAPT\\'} if only @emph{adaptive} score files should be decayed. The decay itself if performed by the @code{gnus-decay-score-function} function, which is @code{gnus-decay-score} by default. Here's the definition of that @@ -21168,9 +21194,9 @@ features (inspired by the Google search input language): @item Boolean query operators AND, OR, and NOT are supported, and parentheses can be used to control -operator precedence, e.g. (emacs OR xemacs) AND linux. Note that +operator precedence, e.g., (emacs OR xemacs) AND linux. Note that operators must be written with all capital letters to be -recognized. Also preceding a term with a - sign is equivalent to NOT +recognized. Also preceding a term with a @minus{} sign is equivalent to NOT term. @item Automatic AND queries @@ -21213,12 +21239,13 @@ Gmane queries follow a simple query language: @table @samp @item Boolean query operators AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be -used to control operator precedence, e.g. (emacs OR xemacs) AND linux. +used to control operator precedence, e.g., (emacs OR xemacs) AND linux. Note that operators must be written with all capital letters to be recognized. @item Required and excluded terms -+ and - can be used to require or exclude terms, e.g. football -american ++ and @minus{} can be used to require or exclude terms, e.g., football +@minus{}american @item Unicode handling The search engine converts all text to utf-8, so searching should work @@ -21226,8 +21253,8 @@ in any language. @item Stopwords Common English words (like 'the' and 'a') are ignored by default. You -can override this by prefixing such words with a + (e.g. +the) or -enclosing the word in quotes (e.g. "the"). +can override this by prefixing such words with a + (e.g., +the) or +enclosing the word in quotes (e.g., "the"). @end table @@ -21355,7 +21382,7 @@ This engine is obsolete. @table @code @item nnir-method-default-engines -Alist of server backend - search engine pairs. The default associations +Alist of pairs of server backends and search engines. The default associations are @example (nnimap . imap) @@ -21417,7 +21444,7 @@ bound to mairix searches and are automatically updated. @end menu @c FIXME: The markup in this section might need improvement. -@c E.g. adding @samp, @var, @file, @command, etc. +@c E.g., adding @samp, @var, @file, @command, etc. @c Cf. (info "(texinfo)Indicating") @node About mairix @@ -21425,7 +21452,7 @@ bound to mairix searches and are automatically updated. Mairix is a tool for indexing and searching words in locally stored mail. It was written by Richard Curnow and is licensed under the -GPL. Mairix comes with most popular GNU/Linux distributions, but it also +GPL@. Mairix comes with most popular GNU/Linux distributions, but it also runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can be found at @uref{http://www.rpcurnow.force9.co.uk/mairix/index.html} @@ -21455,8 +21482,8 @@ searches. Mairix searches local mail---that means, mairix absolutely must have direct access to your mail folders. If your mail resides on another -server (e.g. an @acronym{IMAP} server) and you happen to have shell -access, @code{nnmairix} supports running mairix remotely, e.g. via ssh. +server (e.g., an @acronym{IMAP} server) and you happen to have shell +access, @code{nnmairix} supports running mairix remotely, e.g., via ssh. Additionally, @code{nnmairix} only supports the following Gnus back ends: @code{nnml}, @code{nnmaildir}, and @code{nnimap}. You must use @@ -21476,7 +21503,7 @@ the package @file{mairix.el}, which comes with Emacs 23. The back end @code{nnmairix} enables you to call mairix from within Gnus, either to query mairix with a search term or to update the database. While visiting a message in the summary buffer, you can use -several pre-defined shortcuts for calling mairix, e.g. to quickly +several pre-defined shortcuts for calling mairix, e.g., to quickly search for all mails from the sender of the current message or to display the whole thread associated with the message, even if the mails are in different folders. @@ -21484,8 +21511,8 @@ mails are in different folders. Additionally, you can create permanent @code{nnmairix} groups which are bound to certain mairix searches. This way, you can easily create a group containing mails from a certain sender, with a certain subject line or -even for one specific thread based on the Message-ID. If you check for -new mail in these folders (e.g. by pressing @kbd{g} or @kbd{M-g}), they +even for one specific thread based on the Message-ID@. If you check for +new mail in these folders (e.g., by pressing @kbd{g} or @kbd{M-g}), they automatically update themselves by calling mairix. You might ask why you need @code{nnmairix} at all, since mairix already @@ -21495,7 +21522,7 @@ does not---at least not without problems. Most probably you will get strange article counts, and sometimes you might see mails which Gnus claims have already been canceled and are inaccessible. This is due to the fact that Gnus isn't really amused when things are happening behind -its back. Another problem can be the mail back end itself, e.g. if you +its back. Another problem can be the mail back end itself, e.g., if you use mairix with an @acronym{IMAP} server (I had Dovecot complaining about corrupt index files when mairix changed the contents of the search group). Using @code{nnmairix} should circumvent these problems. @@ -21510,7 +21537,7 @@ binary so that the search results are stored in folders named present these folders in the Gnus front end only with @code{}. You can use an existing mail back end where you already store your mail, but if you're uncomfortable with @code{nnmairix} creating new mail -groups alongside your other mail, you can also create e.g. a new +groups alongside your other mail, you can also create, e.g., a new @code{nnmaildir} or @code{nnml} server exclusively for mairix, but then make sure those servers do not accidentally receive your new mail (@pxref{nnmairix caveats}). A special case exists if you want to use @@ -21619,7 +21646,7 @@ Just hit @kbd{TAB} to see the available servers. Currently, servers which are accessed through @code{nnmaildir}, @code{nnimap} and @code{nnml} are supported. As explained above, for locally stored mails, this can be an existing server where you store your mails. -However, you can also create e.g. a new @code{nnmaildir} or @code{nnml} +However, you can also create, e.g., a new @code{nnmaildir} or @code{nnml} server exclusively for @code{nnmairix} in your secondary select methods (@pxref{Finding the News}). If you use a secondary @code{nnml} server just for mairix, make sure that you explicitly set the server variable @@ -21632,20 +21659,20 @@ just for mairix, make sure that you explicitly set the server variable @vindex nnmairix-mairix-search-options The @strong{command} to call the mairix binary. This will usually just be @code{mairix}, but you can also choose something like @code{ssh -SERVER mairix} if you want to call mairix remotely, e.g. on your +SERVER mairix} if you want to call mairix remotely, e.g., on your @acronym{IMAP} server. If you want to add some default options to mairix, you could do this here, but better use the variable @code{nnmairix-mairix-search-options} instead. @item The name of the @strong{default search group}. This will be the group -where all temporary mairix searches are stored, i.e. all searches which +where all temporary mairix searches are stored, i.e., all searches which are not bound to permanent @code{nnmairix} groups. Choose whatever you like. @item If the mail back end is @code{nnimap} or @code{nnmaildir}, you will be -asked if you work with @strong{Maildir++}, i.e. with hidden maildir +asked if you work with @strong{Maildir++}, i.e., with hidden maildir folders (=beginning with a dot). For example, you have to answer @samp{yes} here if you work with the Dovecot @acronym{IMAP} server. Otherwise, you should answer @samp{no} here. @@ -21704,7 +21731,7 @@ Changes the search query for the @code{nnmairix} group under cursor @kindex G b t (Group) @findex nnmairix-group-toggle-threads-this-group Toggles the 'threads' parameter for the @code{nnmairix} group under cursor, -i.e. if you want see the whole threads of the found messages +i.e., if you want see the whole threads of the found messages (@code{nnmairix-group-toggle-threads-this-group}). @item G b u @@ -21794,8 +21821,8 @@ calling @code{nnmairix-search} with @samp{f:From}. @kindex $ o (Summary) @findex nnmairix-goto-original-article (Only in @code{nnmairix} groups!) Tries determine the group this article -originally came from and displays the article in this group, so that -e.g. replying to this article the correct posting styles/group +originally came from and displays the article in this group, so that, +e.g., replying to this article the correct posting styles/group parameters are applied (@code{nnmairix-goto-original-article}). This function will use the registry if available, but can also parse the article file name as a fallback method. @@ -21893,7 +21920,7 @@ way slower than the registry---if you set hundreds or even thousands of marks this way, it might take some time. You can avoid this situation by setting @code{nnmairix-only-use-registry} to t. -Maybe you also want to propagate marks the other way round, i.e. if you +Maybe you also want to propagate marks the other way round, i.e., if you tick an article in a "real" mail group, you'd like to have the same article in a @code{nnmairix} group ticked, too. For several good reasons, this can only be done efficiently if you use maildir. To @@ -21947,7 +21974,7 @@ Example: search group for ticked articles For example, you can create a group for all ticked articles, where the articles always stay unread: -Hit @kbd{G b g}, enter group name (e.g. @samp{important}), use +Hit @kbd{G b g}, enter group name (e.g., @samp{important}), use @samp{F:f} as query and do not include threads. Now activate marks propagation for this group by using @kbd{G b p}. Then @@ -21960,7 +21987,7 @@ tick marks from the original article. The other possibility is to set @code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the above comments about this option. If it works for you, the tick marks should also exist in the @code{nnmairix} group and you can remove them as usual, -e.g. by marking an article as read. +e.g., by marking an article as read. When you have removed a tick mark from the original article, this article should vanish from the @code{nnmairix} group after you have updated the @@ -21976,7 +22003,7 @@ the mail back end in the form @samp{zz_mairix--}. You can see them when you enter the back end server in the server buffer. You should not subscribe these groups! Unfortunately, these groups will usually get @emph{auto-subscribed} when you use @code{nnmaildir} or -@code{nnml}, i.e. you will suddenly see groups of the form +@code{nnml}, i.e., you will suddenly see groups of the form @samp{zz_mairix*} pop up in your group buffer. If this happens to you, simply kill these groups with C-k. For avoiding this, turn off auto-subscription completely by setting the variable @@ -22570,7 +22597,7 @@ configuration function will use @code{group} as the key. A full list of possible names is listed below. The @dfn{value} (i.e., the @dfn{split}) says how much space each buffer -should occupy. To take the @code{article} split as an example - +should occupy. To take the @code{article} split as an example: @lisp (article (vertical 1.0 (summary 0.25 point) @@ -22588,7 +22615,7 @@ size spec per split. Point will be put in the buffer that has the optional third element @code{point}. In a @code{frame} split, the last subsplit having a leaf -split where the tag @code{frame-focus} is a member (i.e. is the third or +split where the tag @code{frame-focus} is a member (i.e., is the third or fourth element in the list, depending on whether the @code{point} tag is present) gets focus. @@ -22923,11 +22950,11 @@ quicker. @vindex gnus-mode-non-string-length By default, Gnus displays information on the current article in the mode lines of the summary and article buffers. The information Gnus wishes -to display (e.g. the subject of the article) is often longer than the +to display (e.g., the subject of the article) is often longer than the mode lines, and therefore have to be cut off at some point. The @code{gnus-mode-non-string-length} variable says how long the other elements on the line is (i.e., the non-info part). If you put -additional elements on the mode line (e.g. a clock), you should modify +additional elements on the mode line (e.g., a clock), you should modify this variable: @c Hook written by Francesco Potorti` @@ -23799,7 +23826,7 @@ from Bulgarian IPs. This, unfortunately, is a great way to discard legitimate e-mail. The risks of blocking a whole country (Bulgaria, Norway, Nigeria, China, -etc.) or even a continent (Asia, Africa, Europe, etc.) from contacting +etc.)@: or even a continent (Asia, Africa, Europe, etc.)@: from contacting you should be obvious, so don't do it if you have the choice. In another instance, the very informative and useful RISKS digest has @@ -23947,7 +23974,7 @@ Specifiers}) follow. @end lisp Once you manage to process your incoming spool somehow, thus making -the mail contain e.g.@: a header indicating it is spam, you are ready to +the mail contain, e.g., a header indicating it is spam, you are ready to filter it out. Using normal split methods (@pxref{Splitting Mail}): @lisp @@ -24625,7 +24652,7 @@ From Reiner Steib . My provider has set up bogofilter (in combination with @acronym{DCC}) on the mail server (@acronym{IMAP}). Recognized spam goes to @samp{spam.detected}, the rest goes through the normal filter rules, -i.e. to @samp{some.folder} or to @samp{INBOX}. Training on false +i.e., to @samp{some.folder} or to @samp{INBOX}. Training on false positives or negatives is done by copying or moving the article to @samp{training.ham} or @samp{training.spam} respectively. A cron job on the server feeds those to bogofilter with the suitable ham or spam @@ -24650,7 +24677,7 @@ does most of the job for me: @item @b{The Spam folder:} In the folder @samp{spam.detected}, I have to check for false positives -(i.e. legitimate mails, that were wrongly judged as spam by +(i.e., legitimate mails, that were wrongly judged as spam by bogofilter or DCC). Because of the @code{gnus-group-spam-classification-spam} entry, all @@ -24663,7 +24690,7 @@ and deleted from the @samp{spam.detected} folder. The @code{gnus-article-sort-by-chars} entry simplifies detection of false positives for me. I receive lots of worms (sweN, @dots{}), that all -have a similar size. Grouping them by size (i.e. chars) makes finding +have a similar size. Grouping them by size (i.e., chars) makes finding other false positives easier. (Of course worms aren't @i{spam} (@acronym{UCE}, @acronym{UBE}) strictly speaking. Anyhow, bogofilter is an excellent tool for filtering those unwanted mails for me.) @@ -24691,7 +24718,7 @@ groups as spam and reports the to Gmane at group exit: Additionally, I use @code{(setq spam-report-gmane-use-article-number nil)} because I don't read the groups directly from news.gmane.org, but -through my local news server (leafnode). I.e. the article numbers are +through my local news server (leafnode). I.e., the article numbers are not the same as on news.gmane.org, thus @code{spam-report.el} has to check the @code{X-Report-Spam} header to find the correct number. @@ -24830,7 +24857,7 @@ messages are not assumed to be spam or ham. Set this variable to @code{t} if you want to use the BBDB as an implicit filter, meaning that every message will be considered spam -unless the sender is in the BBDB. Use with care. Only sender +unless the sender is in the BBDB@. Use with care. Only sender addresses in the BBDB will be allowed through; all others will be classified as spammers. @@ -25294,7 +25321,7 @@ SpamOracle. @defvar spam-spamoracle-binary Gnus uses the SpamOracle binary called @file{spamoracle} found in the -user's PATH. Using the variable @code{spam-spamoracle-binary}, this +user's PATH@. Using the variable @code{spam-spamoracle-binary}, this can be customized. @end defvar @@ -25359,7 +25386,7 @@ messages. @end example For this group the @code{spam-use-spamoracle} is installed for both ham and spam processing. If the group contains spam message -(e.g. because SpamOracle has not had enough sample messages yet) and +(e.g., because SpamOracle has not had enough sample messages yet) and the user marks some messages as spam messages, these messages will be processed by SpamOracle. The processor sends the messages to SpamOracle as new samples for spam. @@ -25805,7 +25832,7 @@ of said features in case your attention span is... never mind. Split messages to their parent This keeps discussions in the same group. You can use the subject and -the sender in addition to the Message-ID. Several strategies are +the sender in addition to the Message-ID@. Several strategies are available. @item @@ -25833,8 +25860,8 @@ of all messages matching a particular set of criteria. @menu * Gnus Registry Setup:: -* Fancy splitting to parent:: * Registry Article Refer Method:: +* Fancy splitting to parent:: * Store custom flags and keywords:: * Store arbitrary data:: @end menu @@ -25852,7 +25879,7 @@ Fortunately, setting up the Gnus registry is pretty easy: This adds registry saves to Gnus newsrc saves (which happen on exit and when you press @kbd{s} from the @code{*Group*} buffer. It also -adds registry calls to article actions in Gnus (copy, move, etc.) so +adds registry calls to article actions in Gnus (copy, move, etc.)@: so it's not easy to undo the initialization. See @code{gnus-registry-initialize} for the gory details. @@ -26347,9 +26374,9 @@ with the information when possible). On the January 31th 2012, Ma Gnus was begun. -If you happen upon a version of Gnus that has a prefixed name -- -``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'', -``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'', ``Ma Gnus'' -- don't +If you happen upon a version of Gnus that has a prefixed name---``(ding) +Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'', +``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'', ``Ma Gnus''---don't panic. Don't let it know that you're frightened. Back away. Slowly. Whatever you do, don't run. Walk away, calmly, until you're out of its reach. Find a proper released version of Gnus and snuggle up to @@ -26496,32 +26523,32 @@ on Son-of-RFC 1036. They have produced a number of drafts proposing various changes to the format of news articles. The Gnus towers will look into implementing the changes when the draft is accepted as an RFC. -@item MIME - RFC 2045-2049 etc +@item MIME---RFC 2045--2049 etc @cindex @acronym{MIME} All the various @acronym{MIME} RFCs are supported. -@item Disposition Notifications - RFC 2298 +@item Disposition Notifications---RFC 2298 Message Mode is able to request notifications from the receiver. -@item PGP - RFC 1991 and RFC 2440 +@item PGP---RFC 1991 and RFC 2440 @cindex RFC 1991 @cindex RFC 2440 RFC 1991 is the original @acronym{PGP} message specification, -published as an informational RFC. RFC 2440 was the follow-up, now +published as an informational RFC@. RFC 2440 was the follow-up, now called Open PGP, and put on the Standards Track. Both document a non-@acronym{MIME} aware @acronym{PGP} format. Gnus supports both encoding (signing and encryption) and decoding (verification and decryption). -@item PGP/MIME - RFC 2015/3156 +@item PGP/MIME---RFC 2015/3156 RFC 2015 (superseded by 3156 which references RFC 2440 instead of RFC 1991) describes the @acronym{MIME}-wrapping around the RFC 1991/2440 format. Gnus supports both encoding and decoding. -@item S/MIME - RFC 2633 +@item S/MIME---RFC 2633 RFC 2633 describes the @acronym{S/MIME} format. -@item IMAP - RFC 1730/2060, RFC 2195, RFC 2086, RFC 2359, RFC 2595, RFC 1731 +@item IMAP---RFC 1730/2060, RFC 2195, RFC 2086, RFC 2359, RFC 2595, RFC 1731 RFC 1730 is @acronym{IMAP} version 4, updated somewhat by RFC 2060 (@acronym{IMAP} 4 revision 1). RFC 2195 describes CRAM-MD5 authentication for @acronym{IMAP}. RFC 2086 describes access control @@ -26576,7 +26603,7 @@ circles) @dfn{snapshots}. During this phase, Gnus is assumed to be unstable and should not be used by casual users. Gnus alpha releases have names like ``Oort Gnus'' and ``No Gnus''. @xref{Gnus Versions}. -After futzing around for 10-100 alpha releases, Gnus is declared +After futzing around for 10--100 alpha releases, Gnus is declared @dfn{frozen}, and only bug fixes are applied. Gnus loses the prefix, and is called things like ``Gnus 5.10.1'' instead. Normal people are supposed to be able to use these, and these are mostly discussed on the @@ -27480,7 +27507,7 @@ group, which is created automatically. values. @item -@code{gnus-summary-goto-article} now accept Message-ID's. +@code{gnus-summary-goto-article} now accept Message-IDs. @item A new Message command for deleting text in the body of a message @@ -27929,7 +27956,7 @@ consist of a little new content at the top with a long, untrimmed message cited below. @item -Smileys (@samp{:-)}, @samp{;-)} etc) are now displayed graphically in +Smileys (@samp{:-)}, @samp{;-)} etc.)@: are now displayed graphically in Emacs too. Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.gnus.el} to @@ -28163,7 +28190,7 @@ The behavior can be changed by customizing @code{message-insert-canlock}. @item Gnus supports @acronym{PGP} (RFC 1991/2440), @acronym{PGP/MIME} (RFC -2015/3156) and @acronym{S/MIME} (RFC 2630-2633). +2015/3156) and @acronym{S/MIME} (RFC 2630--2633). It needs an external @acronym{S/MIME} and OpenPGP implementation, but no additional Lisp libraries. This add several menu items to the @@ -28234,7 +28261,7 @@ The nnml and nnfolder back ends store marks for each groups. This makes it possible to take backup of nnml/nnfolder servers/groups separately of @file{~/.newsrc.eld}, while preserving marks. It also makes it possible to share articles and marks between users (without -sharing the @file{~/.newsrc.eld} file) within e.g. a department. It +sharing the @file{~/.newsrc.eld} file) within, e.g., a department. It works by storing the marks stored in @file{~/.newsrc.eld} in a per-group file @file{.marks} (for nnml) and @file{@var{groupname}.mrk} (for nnfolder, named @var{groupname}). If the nnml/nnfolder is moved to @@ -28535,7 +28562,7 @@ A mail message or news article @item head @cindex head -The top part of a message, where administrative information (etc.) is +The top part of a message, where administrative information (etc.)@: is put. @item body @@ -28582,10 +28609,10 @@ know that the server makes wrong @acronym{NOV} data. @item level @cindex levels -Each group is subscribed at some @dfn{level} or other (1-9). The ones +Each group is subscribed at some @dfn{level} or other (1--9). The ones that have a lower level are ``more'' subscribed than the groups with a -higher level. In fact, groups on levels 1-5 are considered -@dfn{subscribed}; 6-7 are @dfn{unsubscribed}; 8 are @dfn{zombies}; and 9 +higher level. In fact, groups on levels 1--5 are considered +@dfn{subscribed}; 6--7 are @dfn{unsubscribed}; 8 are @dfn{zombies}; and 9 are @dfn{killed}. Commands for listing groups and scanning for new articles will all use the numeric prefix as @dfn{working level}. @@ -28937,10 +28964,10 @@ can use @kbd{M-x toggle-debug-on-quit} and press @kbd{C-g} when things are slow, and then try to analyze the backtrace (repeating the procedure helps isolating the real problem areas). -A fancier approach is to use the elisp profiler, ELP. The profiler is +A fancier approach is to use the elisp profiler, ELP@. The profiler is (or should be) fully documented elsewhere, but to get you started there are a few steps that need to be followed. First, instrument the -part of Gnus you are interested in for profiling, e.g. @kbd{M-x +part of Gnus you are interested in for profiling, e.g., @kbd{M-x elp-instrument-package RET gnus} or @kbd{M-x elp-instrument-package RET message}. Then perform the operation that is slow and press @kbd{M-x elp-results}. You will then see which operations that takes @@ -29161,8 +29188,8 @@ return value. Some back ends could be said to be @dfn{server-forming} back ends, and some might be said not to be. The latter are back ends that generally -only operate on one group at a time, and have no concept of ``server'' ----they have a group, and they deliver info on that group and nothing +only operate on one group at a time, and have no concept of ``server''; +they have a group, and they deliver info on that group and nothing more. Gnus identifies each message by way of group name and article number. A @@ -29484,7 +29511,7 @@ There should be no result data from this function. @item (nnchoke-request-set-mark GROUP ACTION &optional SERVER) Set/remove/add marks on articles. Normally Gnus handles the article -marks (such as read, ticked, expired etc) internally, and store them in +marks (such as read, ticked, expired etc.)@: internally, and store them in @file{~/.newsrc.eld}. Some back ends (such as @acronym{IMAP}) however carry all information about the articles on the server, so Gnus need to propagate the mark information to the server. diff --git a/doc/misc/gpl.texi b/doc/misc/gpl.texi index 1908d1f8f98..0e2e212acb1 100644 --- a/doc/misc/gpl.texi +++ b/doc/misc/gpl.texi @@ -2,7 +2,7 @@ @center Version 3, 29 June 2007 @c This file is intended to be included within another document, -@c hence no sectioning command or @node. +@c hence no sectioning command or @node. @display Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} @@ -222,7 +222,7 @@ terms of section 4, provided that you also meet all of these conditions: @enumerate a -@item +@item The work must carry prominent notices stating that you modified it, and giving a relevant date. @@ -623,12 +623,12 @@ later version. @item Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +APPLICABLE LAW@. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +A PARTICULAR PURPOSE@. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. @@ -670,7 +670,7 @@ state the exclusion of warranty; and each file should have at least the ``copyright'' line and a pointer to where the full notice is found. @smallexample -@var{one line to give the program's name and a brief idea of what it does.} +@var{one line to give the program's name and a brief idea of what it does.} Copyright (C) @var{year} @var{name of author} This program is free software: you can redistribute it and/or modify @@ -680,7 +680,7 @@ 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 +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 @@ -693,7 +693,7 @@ If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: @smallexample -@var{program} Copyright (C) @var{year} @var{name of author} +@var{program} Copyright (C) @var{year} @var{name of author} This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. This is free software, and you are welcome to redistribute it under certain conditions; type @samp{show c} for details. diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi new file mode 100644 index 00000000000..e45234872e2 --- /dev/null +++ b/doc/misc/htmlfontify.texi @@ -0,0 +1,1613 @@ +\input texinfo +@comment %**start of header +@setfilename ../../info/htmlfontify +@settitle Htmlfontify User Manual +@exampleindent 2 +@comment %**end of header + +@copying +This manual documents Htmlfontify, a source code -> crosslinked + +formatted + syntax colorized html transformer. + +Copyright @copyright{} 2002, 2003, 2013 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and +modify this GNU manual.'' +@end quotation +@end copying + +@dircategory Emacs misc features +@direntry +* Htmlfontify: (htmlfontify). Convert source code to html. +@end direntry + +@titlepage +@title Htmlfontify User Manual +@sp 4 +@subtitle Htmlfontify version 0.20 +@sp 1 +@subtitle Jun 2002 +@sp 5 +@author Vivek Dasmohapatra +@page + +@vskip 0pt plus 1filll +@noindent +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top +@top Htmlfontify + +@insertcopying +@end ifnottex + +@menu +* Introduction:: About Htmlfontify. +* Usage & Examples:: How to use Htmlfontify. +* Customization:: Fine-tuning Htmlfontify's behaviour. +* Requirements:: External programs used by Htmlfontify. +* GNU Free Documentation License:: The license for this documentation. +* Index:: Index of contents. +@end menu + +@node Introduction +@chapter Introduction +@cindex Introduction + +Htmlfontify provides a means of converting individual Emacs buffers, +source files, or entire source trees to html, preserving formatting +and Emacs colorization / syntax highlighting as much as possible +through careful application of CSS stylesheets and html tags. + +It can also turn instances of functions, methods and (for some +languages) variables and other constructs and items into links +to their definitions, and create an index file (or files) of +all such symbols, also linked to their points of definition. + +Htmlfontify also provides several customization items, which should +allow it to mesh more-or-less seamlessly with various templating or +publishing systems (in the event, for instance, that you don't want +to produce the html pages directly). + +@node Usage & Examples +@chapter Usage & Examples +@cindex Usage & Examples + +Htmlfontify can be used both interactively and as part of another +elisp function. If you're running it in a modern Emacs, it will also +run when attached to a terminal (i.e., without X) or even when in +batch mode. + +@menu +* Interactive:: Using Htmlfontify interactively. +* Non-interactive:: Using Htmlfontify from elisp. +* Variables:: Variables (other than customization entries). +* Data Structures:: Important data structures. +* Examples:: Example(s) of Htmlfontify in use. +@end menu + +@node Interactive +@section Interactive +@cindex Interactive +@cindex functions (interactive) + +Htmlfontify provides the following interactive functions: + +@table @code +@item htmlfontify-buffer +@findex htmlfontify-buffer +@anchor{htmlfontify-buffer} + +@lisp + +(htmlfontify-buffer &optional @var{srcdir} @var{file}) +@end lisp + +Create a new buffer, named for the current buffer + a .html extension, +containing an inline CSS-stylesheet and formatted CSS-markup html that +reproduces the look of the current Emacs buffer as closely as possible. + +``Dangerous'' characters in the existing buffer are turned into html +entities, so you should even be able to do html-within-html fontified +display. + +You should, however, note that random control or non-ASCII characters +such as ^L (\x0c) or ¤ (\xa4) won't get mapped yet. + +If the @var{srcdir} and @var{file} arguments are set, lookup etags +derived entries in the @ref{hfy-tags-cache} and add html anchors +and hyperlinks as appropriate. + +@item htmlfontify-run-etags +@findex htmlfontify-run-etags +@anchor{htmlfontify-run-etags} + +@lisp + +(htmlfontify-run-etags @var{srcdir}) +@end lisp + +Load the etags cache for @var{srcdir}. See @ref{hfy-load-tags-cache}. + +@item htmlfontify-copy-and-link-dir +@findex htmlfontify-copy-and-link-dir +@anchor{htmlfontify-copy-and-link-dir} + +@lisp + +(htmlfontify-copy-and-link-dir @var{srcdir} @var{dstdir} &optional @var{f-ext} @var{l-ext}) +@end lisp + +Trawl @var{srcdir} and write fontified-and-hyperlinked output in +@var{dstdir}. @var{f-ext} and @var{l-ext} specify values for +@ref{hfy-extn} and @ref{hfy-link-extn}. + +You may also want to set @ref{hfy-page-header} and @ref{hfy-page-footer}. + +@item htmlfontify-load-rgb-file +@findex htmlfontify-load-rgb-file +@anchor{htmlfontify-load-rgb-file} + +@lisp + +(htmlfontify-load-rgb-file &optional @var{file}) +@end lisp + +Load an X11 style rgb.txt file (search @code{hfy-rgb-load-path} if +@var{file} is not specified). + +Note that this is not necessary if all you want is the standard X11 +(XFree86 4.1.0) color name -> rgb triplet mapping. Htmlfontify has +a copy built in, for use when it cannot contact an X server. + +Loads the variable @code{hfy-rgb-txt-color-map}, which is used by +@ref{hfy-fallback-color-values}. + +@item htmlfontify-unload-rgb-file +@findex htmlfontify-unload-rgb-file +@anchor{htmlfontify-unload-rgb-file} + +@lisp + +(htmlfontify-unload-rgb-file) +@end lisp + +Unload the currently loaded X11 style rgb.txt file (if any). +@end table + +@node Non-interactive +@section Non-interactive +@cindex Noninteractive +@cindex functions (noninteractive) + +In addition to the aforementioned interactive methods, Htmlfontify +provides the following non-interactive ones: + +@table @code +@comment AUTOGENERATED BLOCK + +@item hfy-face-to-style +@findex hfy-face-to-style +@anchor{hfy-face-to-style} + +@lisp + +(hfy-face-to-style @var{fn}) +@end lisp + +Take @var{fn}, a font or @code{defface} style font specification, +(as returned by @code{face-attr-construct} or @ref{hfy-face-attr-for-class}) +and return a @ref{hfy-style-assoc}. + +See also: @ref{hfy-face-to-style-i}, @ref{hfy-flatten-style}. + +@item hfy-fallback-color-values +@findex hfy-fallback-color-values +@anchor{hfy-fallback-color-values} + +@lisp + +(hfy-fallback-color-values @var{color-string}) +@end lisp + +Use a fallback method for obtaining the rgb values for a color. +If @ref{htmlfontify-load-rgb-file} has been called, it uses the +color map specified, otherwise it uses Htmlfontify's built in map. + +@item hfy-combined-face-spec +@findex hfy-combined-face-spec +@anchor{hfy-combined-face-spec} + +@lisp + +(hfy-combined-face-spec @var{face}) +@end lisp + +Return a @code{defface} style alist of possible specifications for +@var{face}, with any entries resulting from user customization +(@code{custom-set-faces}) taking precedence. + +See also: @ref{hfy-default-face-def} + +@item hfy-word-regex +@findex hfy-word-regex +@anchor{hfy-word-regex} + +@lisp + +(hfy-word-regex @var{string}) +@end lisp + +Return a regex that matches @var{string} as the first @code{match-string}, +with non word characters on either side (vaguely emulating the perl @code{\b} +regex atom). + +@item hfy-force-fontification +@findex hfy-force-fontification +@anchor{hfy-force-fontification} + +@lisp + +(hfy-force-fontification) +@end lisp + +Emacs's fontification is designed for interactive use. As such, it sometimes +does things like deferring fontification until a section of the buffer is +exposed and rendered, or until Emacs is idle for a while. Sometimes, in +non-interactive circumstances, or if it can't see X, it doesn't bother +with some of the harder stuff. While this is all great from the perspective +of a user waiting for Emacs to load a 20000 line file and colorize it, +it's a pain from the point of view from non-interactive code. This function +lies, cheats, steals and generally bullies Emacs into fontifying a buffer +from start to finish, with all the extra frills, whether it thinks it needs +to or not. Oh yes: it operates on the current buffer. + +@item hfy-link-style-string +@findex hfy-link-style-string +@anchor{hfy-link-style-string} + +@lisp + +(hfy-link-style-string @var{style-string}) +@end lisp + +Replace the end of a CSS style declaration @var{style-string} with the contents +of the variable @ref{hfy-src-doc-link-style}, removing text matching the +regex @ref{hfy-src-doc-link-unstyle} first, if necessary. + + +@item hfy-prepare-index-i +@findex hfy-prepare-index-i +@anchor{hfy-prepare-index-i} + +@lisp + +(hfy-prepare-index-i @var{srcdir} @var{dstdir} @var{filename} &optional @var{stub} @var{map}) +@end lisp + +Prepare a tags index buffer for @var{srcdir}. +@ref{hfy-tags-cache} must already have an entry for @var{srcdir} for +this to work. @ref{hfy-page-header}, @ref{hfy-page-footer}, +@ref{hfy-link-extn} and @ref{hfy-extn} all play a part here. + +If @var{stub} is set, prepare an (appropriately named) index buffer +specifically for entries beginning with @var{stub}. + +If @var{map} is set, use that instead of @ref{hfy-tags-cache}. + +@item hfy-compile-stylesheet +@findex hfy-compile-stylesheet +@anchor{hfy-compile-stylesheet} + +@lisp + +(hfy-compile-stylesheet) +@end lisp + +Trawl the current buffer, construct and return a @ref{hfy-sheet-assoc}. + +@item hfy-css-name +@findex hfy-css-name +@anchor{hfy-css-name} + +@lisp + +(hfy-css-name @var{fn}) +@end lisp + +Strip some of the boring bits from a font-name and return a CSS style +name. If @var{fn} is a @code{defface} attribute list, either construct +a name for it, store it in the cache, and return it, or just fetch it +from the cache if it's already there. + +@item hfy-make-directory +@findex hfy-make-directory +@anchor{hfy-make-directory} + +@lisp + +(hfy-make-directory @var{dir}) +@end lisp + +Approximate equivalent of @code{mkdir -p @var{dir}}. + +@item hfy-triplet +@findex hfy-triplet +@anchor{hfy-triplet} + +@lisp + +(hfy-triplet @var{color}) +@end lisp + +Takes a color name (string) and return a CSS rgb(R, G, B) triplet string. +Uses the definition of ``white'' to map the numbers to the 0-255 range, so +if you've redefined white, (especially if you've redefined it to have +a triplet member lower than that of the color you are processing, +strange things may happen). + +@item hfy-default-footer +@findex hfy-default-footer +@anchor{hfy-default-footer} + +@lisp + +(hfy-default-footer @var{file}) +@end lisp + +Default value for @ref{hfy-page-footer} + +@item hfy-list-files +@findex hfy-list-files +@anchor{hfy-list-files} + +@lisp + +(hfy-list-files @var{directory}) +@end lisp + +Return a list of files under @var{directory}. +Strips any leading @samp{./} from each filename. + +@item hfy-color-vals +@findex hfy-color-vals +@anchor{hfy-color-vals} + +@lisp + +(hfy-color-vals @var{color}) +@end lisp + +Where @var{color} is a color name or #XXXXXX style triplet, return a list of +3 (16 bit) rgb values for said color. If a window system is unavailable, +calls @ref{hfy-fallback-color-values}. + +@item hfy-href-stub +@findex hfy-href-stub +@anchor{hfy-href-stub} + +@lisp + +(hfy-href-stub @var{this-file} @var{def-files} @var{tag}) +@end lisp + +Return an href stub for a tag href: if @var{def-files} (list of files +containing definitions for the tag in question) contains only one entry, +the href should link straight to that file. Otherwise, the link should +be to the index file. + +We are not yet concerned with the file extensions/tag line number and +so on at this point. + +If @ref{hfy-split-index} is set, and the href will be to an index file +rather than a source file, append a @samp{.X} to @ref{hfy-index-file}, where +@samp{X} is the uppercased first character of @var{tag}. + +See also: @ref{hfy-relstub}, @ref{hfy-index-file}. + +@item hfy-line-number +@findex hfy-line-number +@anchor{hfy-line-number} + +@lisp + +(hfy-line-number) +@end lisp + +Returns the line number of the point in the current buffer. + +@item hfy-merge-adjacent-spans +@findex hfy-merge-adjacent-spans +@anchor{hfy-merge-adjacent-spans} + +@lisp + +(hfy-merge-adjacent-spans @var{face-map}) +@end lisp + +Where @var{face-map} is a @ref{hfy-facemap-assoc} for the current buffer, +this function merges adjacent style blocks which are of the same value +and are separated by nothing more interesting than whitespace. + +@code{narf brain} + +(as interpreted from @var{face-map}) would become: + +@code{narf brain} + +Returns a modified copy of @var{face-map} (also a @ref{hfy-facemap-assoc}). + +@item hfy-mark-tag-names +@findex hfy-mark-tag-names +@anchor{hfy-mark-tag-names} + +@lisp + +(hfy-mark-tag-names @var{srcdir} @var{file}) +@end lisp + +Mark tags in @var{file} (lookup @var{srcdir} in @ref{hfy-tags-cache}) with the +@code{hfy-anchor} property, with a value of @samp{tag.line-number}. + +@item hfy-weight +@findex hfy-weight +@anchor{hfy-weight} + +@lisp + +(hfy-weight @var{weight}) +@end lisp + +Derive a font-weight CSS specifier from an Emacs weight specification symbol. + +@item hfy-size +@findex hfy-size +@anchor{hfy-size} + +@lisp + +(hfy-size @var{height}) +@end lisp + +Derive a CSS font-size specifier from an Emacs font @code{:height} attribute. +Does not cope with the case where height is a function to be applied to +the height of the underlying font. + +@item hfy-default-header +@findex hfy-default-header +@anchor{hfy-default-header} + +@lisp + +(hfy-default-header @var{file} @var{style}) +@end lisp + +Default value for @ref{hfy-page-header} + +@item hfy-family +@findex hfy-family +@anchor{hfy-family} + +@lisp + +(hfy-family @var{family}) +@end lisp + +Derives a CSS font-family specifier from an Emacs @code{:family} attribute. + +@item hfy-mark-tag-hrefs +@findex hfy-mark-tag-hrefs +@anchor{hfy-mark-tag-hrefs} + +@lisp + +(hfy-mark-tag-hrefs @var{srcdir} @var{file}) +@end lisp + +Mark href start points with the @code{hfy-link} property (value: href string). + +Mark href end points with the @code{hfy-endl} property (value @code{t}). + +Avoid overlapping links, and mark links in descending length of +tag name in order to prevent subtags from usurping supertags; +e.g., ``term'' for ``terminal''). + +@item hfy-box +@findex hfy-box +@anchor{hfy-box} + +@lisp + +(hfy-box @var{box}) +@end lisp + +Derive CSS border-* attributes from the Emacs @code{:box} attribute. + +@item hfy-box-to-style +@findex hfy-box-to-style +@anchor{hfy-box-to-style} + +@lisp + +(hfy-box-to-style @var{spec}) +@end lisp + +Convert a complex @code{:box} Emacs font attribute set to a list of +CSS border-* attributes. Don't call this directly---it is called by +@ref{hfy-box} when necessary. + +@item hfy-html-enkludge-buffer +@findex hfy-html-enkludge-buffer +@anchor{hfy-html-enkludge-buffer} + +@lisp + +(hfy-html-enkludge-buffer) +@end lisp + +Mark dangerous @samp{["<>]} characters with the @code{hfy-quoteme} property. + +See also @ref{hfy-html-dekludge-buffer}. + +@item hfy-buffer +@findex hfy-buffer +@anchor{hfy-buffer} + +@lisp + +(hfy-buffer) +@end lisp + +Generate and return an Htmlfontify html output buffer for the current +buffer. May trample an existing buffer. + +@item hfy-fontified-p +@findex hfy-fontified-p +@anchor{hfy-fontified-p} + +@lisp + +(hfy-fontified-p) +@end lisp + +@code{font-lock} doesn't like to say a buffer's been fontified when in +batch mode, but we want to know if we should fontify or raw copy, so in +batch mode we check for non-default face properties. Otherwise we test +@code{font-lock-mode} and @code{font-lock-fontified} for truth. + +@item hfy-lookup +@findex hfy-lookup +@anchor{hfy-lookup} + +@lisp + +(hfy-lookup @var{face} @var{style}) +@end lisp + +Where @var{style} is a @ref{hfy-sheet-assoc} and @var{face} is an Emacs face, +return the relevant @var{css} style name. + +@item hfy-fontify-buffer +@findex hfy-fontify-buffer +@anchor{hfy-fontify-buffer} + +@lisp + +(hfy-fontify-buffer &optional @var{srcdir} @var{file}) +@end lisp + +Implement the guts of @ref{htmlfontify-buffer}. + +@item hfy-color +@findex hfy-color +@anchor{hfy-color} + +@lisp + +(hfy-color @var{color}) +@end lisp + +Convert an Emacs :foreground property to a CSS color property. + +@item hfy-flatten-style +@findex hfy-flatten-style +@anchor{hfy-flatten-style} + +@lisp + +(hfy-flatten-style @var{style}) +@end lisp + +Take @var{style} (see @ref{hfy-face-to-style-i}, @ref{hfy-face-to-style}) +and merge any multiple attributes appropriately. Currently only font-size is +merged down to a single occurrence---others may need special handling, but I +haven't encountered them yet. Returns a @ref{hfy-style-assoc}. + +@item hfy-size-to-int +@findex hfy-size-to-int +@anchor{hfy-size-to-int} + +@lisp + +(hfy-size-to-int @var{spec}) +@end lisp + +Convert @var{spec}, a CSS font-size specifier, back to an Emacs +@code{:height} attribute value. Used while merging multiple font-size +attributes. + +@item hfy-sprintf-stylesheet +@findex hfy-sprintf-stylesheet +@anchor{hfy-sprintf-stylesheet} + +@lisp + +(hfy-sprintf-stylesheet @var{css} @var{file}) +@end lisp + +Generates a header, via @ref{hfy-page-header}, for @var{file}, containing the +stylesheet derived from @var{css}, which is a @ref{hfy-sheet-assoc}. Returns a +string containing the same. + +@item hfy-relstub +@findex hfy-relstub +@anchor{hfy-relstub} + +@lisp + +(hfy-relstub @var{file} &optional @var{start}) +@end lisp + +Return a @samp{../} stub of the appropriate length for the current source +tree depth (as determined from @var{file}). @c iyswim. + +@item hfy-compile-face-map +@findex hfy-compile-face-map +@anchor{hfy-compile-face-map} + +@lisp + +(hfy-compile-face-map) +@end lisp + +Compile and return a @ref{hfy-facemap-assoc} for the current buffer. + +@item hfy-prepare-index +@findex hfy-prepare-index +@anchor{hfy-prepare-index} + +@lisp + +(hfy-prepare-index @var{srcdir} @var{dstdir}) +@end lisp + +Return as list of index buffer(s), as determined by @ref{hfy-split-index}. +Uses @ref{hfy-prepare-index-i} to do this. + +@item hfy-prepare-tag-map +@findex hfy-prepare-tag-map +@anchor{hfy-prepare-tag-map} + +@lisp + +(hfy-prepare-tag-map @var{srcdir} @var{dstdir}) +@end lisp + +Prepare the counterpart(s) to the index buffer(s)---a list of buffers with +the same structure, but listing (and linking to) instances of tags (as +opposed to their definitions). + +See also: @ref{hfy-prepare-index}, @ref{hfy-split-index} + +@item hfy-subtract-maps +@findex hfy-subtract-maps +@anchor{hfy-subtract-maps} + +@lisp + +(hfy-subtract-maps @var{srcdir}) +@end lisp + +Internal function---strips definitions of tags from the instance map. +See: @ref{hfy-tags-cache} and @ref{hfy-tags-rmap} + +@item hfy-face-to-style-i +@findex hfy-face-to-style-i +@anchor{hfy-face-to-style-i} + +@lisp + +(hfy-face-to-style-i @var{fn}) +@end lisp + +The guts of @ref{hfy-face-to-style}. @var{fn} should be a @code{defface} +font specification, as returned by @code{face-attr-construct} or +@ref{hfy-face-attr-for-class}. Note that this function does not get +font-sizes right if they are based on inherited modifiers (via the +:inherit) attribute, and any other modifiers that are cumulative if they +appear multiple times need to be merged by the user---@ref{hfy-flatten-style} +should do this. + +@item hfy-face-to-css +@findex hfy-face-to-css +@anchor{hfy-face-to-css} + +@lisp + +(hfy-face-to-css @var{fn}) +@end lisp + +Take @var{fn}, a font or @code{defface} specification (c.f. +@code{face-attr-construct}) and return a CSS style specification. + +See also: @ref{hfy-face-to-style} + +@item hfy-html-quote +@findex hfy-html-quote +@anchor{hfy-html-quote} + +@lisp + +(hfy-html-quote @var{char-string}) +@end lisp + +Map a string (usually 1 character long) to an html safe string +(entity) if need be. + +@item hfy-link-style +@findex hfy-link-style +@anchor{hfy-link-style} + +@lisp + +(hfy-link-style @var{style-string}) +@end lisp + +Convert the CSS style spec @var{style-string} to its equivalent +hyperlink style. + +See: @ref{hfy-link-style-fun}. + +@item hfy-p-to-face +@findex hfy-p-to-face +@anchor{hfy-p-to-face} + +@lisp + +(hfy-p-to-face @var{props}) +@end lisp + +Given @var{props}, a list of text-properties, return the value of the +face property, or nil. + +@item hfy-box-to-border-assoc +@findex hfy-box-to-border-assoc +@anchor{hfy-box-to-border-assoc} + +@lisp + +(hfy-box-to-border-assoc @var{spec}) +@end lisp + +Helper function for @ref{hfy-box-to-style}. + +@item hfy-face-attr-for-class +@findex hfy-face-attr-for-class +@anchor{hfy-face-attr-for-class} + +@lisp + +(hfy-face-attr-for-class @var{face} &optional @var{class}) +@end lisp + +Return the face attributes for @var{face}. If @var{class} is set, it +must be a @code{defface} alist key [see below]. Prior to version 0.18, +the first face specification returned by @ref{hfy-combined-face-spec} +which @emph{didn't} clash with @var{class} was returned. In versions +from 0.18 onwards, each font attribute list is scored, and the +non-conflicting list with the highest score is returned. (A specification +with a class of @code{t} is considered to match any class you specify. +This matches Emacs's behaviour when deciding on which face attributes to +use, to the best of my understanding ). + +If @var{class} is nil, then you just get get whatever +@code{face-attr-construct} returns; i.e., the current specification in +effect for @var{face}. + +See @ref{hfy-display-class} for details of valid values for @var{class}. + +@item hfy-face-at +@findex hfy-face-at +@anchor{hfy-face-at} + +@lisp + +(hfy-face-at P) +@end lisp + +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. + +@item hfy-bgcol +@findex hfy-bgcol +@anchor{hfy-bgcol} + +@lisp + +(hfy-bgcol @var{color}) +@end lisp + +As per @ref{hfy-color} but for background colors. + +@item hfy-kludge-cperl-mode +@findex hfy-kludge-cperl-mode +@anchor{hfy-kludge-cperl-mode} + +@lisp + +(hfy-kludge-cperl-mode) +@end lisp + +cperl mode does its best to not do some of its fontification when not +in a windowing system---we try to trick it@dots{} + +@item hfy-href +@findex hfy-href +@anchor{hfy-href} + +@lisp + +(hfy-href @var{this-file} @var{def-files} @var{tag} @var{tag-map}) +@end lisp + +Return a relative href to the tag in question, based on + +@var{this-file} @ref{hfy-link-extn} @ref{hfy-extn} @var{def-files} @var{tag} and @var{tag-map} + +@var{this-file} is the current source file +@var{def-files} is a list of file containing possible link endpoints for @var{tag} +@var{tag} is the @var{tag} in question +@var{tag-map} is the entry in @ref{hfy-tags-cache}. + +@item hfy-shell +@findex hfy-shell +@anchor{hfy-shell} + +@lisp + +(hfy-shell) +@end lisp + +Returns a best guess at a Bourne compatible shell to use: If the current +shell doesn't look promising, fall back to @ref{hfy-shell-file-name}. + +@item hfy-load-tags-cache +@findex hfy-load-tags-cache +@anchor{hfy-load-tags-cache} + +@lisp + +(hfy-load-tags-cache @var{srcdir}) +@end lisp + +Run @ref{hfy-etags-cmd} on @var{srcdir}: load @ref{hfy-tags-cache} and @ref{hfy-tags-sortl}. + +@item hfy-parse-tags-buffer +@findex hfy-parse-tags-buffer +@anchor{hfy-parse-tags-buffer} + +@lisp + +(hfy-parse-tags-buffer @var{srcdir} @var{buffer}) +@end lisp + +Parse a @var{buffer} containing etags formatted output, loading the +@ref{hfy-tags-cache} and @ref{hfy-tags-sortl} entries for @var{srcdir}. + +@item hfy-interq +@findex hfy-interq +@anchor{hfy-interq} + +@lisp + +(hfy-interq @var{set-a} @var{set-b}) +@end lisp + +Return the intersection (using @code{eq}) of 2 lists. + +@item hfy-text-p +@findex hfy-text-p +@anchor{hfy-text-p} + +@lisp + +(hfy-text-p @var{srcdir} @var{file}) +@end lisp + +Is @var{srcdir}/@var{file} text? Uses @ref{hfy-istext-command} to determine this. + +@item hfy-opt +@findex hfy-opt +@anchor{hfy-opt} + +@lisp + +(hfy-opt @var{symbol}) +@end lisp + +Is @ref{hfy-optimisations} member @var{symbol} set or not? + +@item hfy-dirname +@findex hfy-dirname +@anchor{hfy-dirname} + +@lisp + +(hfy-dirname @var{file}) +@end lisp + +Return everything preceding the last @samp{/} from a relative filename, +on the assumption that this will produce a relative directory name. Hardly +bombproof, but good enough in the context in which it is being used. + +@item hfy-html-dekludge-buffer +@findex hfy-html-dekludge-buffer +@anchor{hfy-html-dekludge-buffer} + +@lisp + +(hfy-html-dekludge-buffer) +@end lisp + +Transform all dangerous characters marked with the @code{hfy-quoteme} property +using @ref{hfy-html-quote} + +See also @ref{hfy-html-enkludge-buffer}. + +@item hfy-copy-and-fontify-file +@findex hfy-copy-and-fontify-file +@anchor{hfy-copy-and-fontify-file} + +@lisp + +(hfy-copy-and-fontify-file @var{srcdir} @var{dstdir} @var{file}) +@end lisp + +Open @var{file} in @var{srcdir}---if fontified, write a fontified copy to @var{dstdir} +adding an extension of @ref{hfy-extn}. Fontification is actually done by +@ref{htmlfontify-buffer}. If the buffer is not fontified, just copy it. + +@item hfy-decor +@findex hfy-decor +@anchor{hfy-decor} + +@lisp + +(hfy-decor @var{tag} @var{val}) +@end lisp + +Derive CSS text-decoration specifiers from various Emacs font attributes. + +@item hfy-slant +@findex hfy-slant +@anchor{hfy-slant} + +@lisp + +(hfy-slant @var{slant}) +@end lisp + +Derive a font-style CSS specifier from the Emacs :slant +attribute---CSS does not define the reverse-* styles, so just maps +those to the regular specifiers. + +@item hfy-tags-for-file +@findex hfy-tags-for-file +@anchor{hfy-tags-for-file} + +@lisp + +(hfy-tags-for-file @var{srcdir} @var{file}) +@end lisp + +List of etags tags that have definitions in this @var{file}. Looks up +the tags cache in @ref{hfy-tags-cache} using @var{srcdir} as the key. + +@item hfy-width +@findex hfy-width +@anchor{hfy-width} + +@lisp + +(hfy-width @var{width}) +@end lisp + +Convert an Emacs @code{:width} attribute to a CSS font-stretch attribute. + +@comment /AUTOGENERATED BLOCK +@end table + +@node Variables +@section Variables +@cindex variables + +Important variables that are not customization items: + +@table @code + +@item hfy-tags-cache +@vindex hfy-tags-cache +@anchor{hfy-tags-cache} + +This is an alist of the form: + +@example +(("/src/dir/0" . tag-hash0) ("/src/dir/1" tag-hash1) @dots{} ) +@end example + +Each tag hash entry then contains entries of the form: + +@example +"tag_string" => (("file/name.ext" line char) @dots{} ) +@end example + +i.e., an alist mapping (relative) file paths to line and character offsets. + +See @ref{hfy-load-tags-cache}. + +@item hfy-tags-rmap +@vindex hfy-tags-rmap +@anchor{hfy-tags-rmap} + +@code{hfy-tags-rmap} is an alist of the form: + +@lisp +(("/src/dir" . tag-rmap-hash)) +@end lisp + +Where tag-rmap-hash has entries of the form: + +@example +"tag_string" => ( "file/name.ext" line char ) +@end example + +Unlike @ref{hfy-tags-cache} these are the locations of occurrences of +tagged items, not the locations of their definitions. + +@item hfy-tags-sortl +@vindex hfy-tags-sortl +@anchor{hfy-tags-sortl} + +@code{hfy-tags-sortl} is an alist of the form: + +@example +(("/src/dir" . (tag0 tag1 tag2)) @dots{} ) +@end example + +Where the tags are stored in descending order of length. + +See: @ref{hfy-load-tags-cache}. + +@end table + +@node Data Structures +@section Data Structures +@cindex Data Structures + +Some of the (informal) data structures used in Htmlfontify are detailed here: + +@table @code + +@item hfy-style-assoc +@cindex hfy-style-assoc +@anchor{hfy-style-assoc} + +An assoc representing/describing an Emacs face. Properties may be repeated, +in which case later properties should be treated as if they were inherited +from a ``parent'' font. (For some properties, only the first encountered value +is of any importance, for others the values might be cumulative, and for +others they might be cumulative in a complex way.) + +Some examples: + +@lisp +(hfy-face-to-style 'default) => + + (("background" . "rgb(0, 0, 0)" ) + ("color" . "rgb(255, 255, 255)") + ("font-style" . "normal" ) + ("font-weight" . "500" ) + ("font-stretch" . "normal" ) + ("font-family" . "misc-fixed" ) + ("font-size" . "13pt" ) + ("text-decoration" . "none" )) + +(hfy-face-to-style 'Info-title-3-face) => + + (("font-weight" . "700" ) + ("font-family" . "helv" ) + ("font-size" . "120%" ) + ("text-decoration" . "none") ) +@end lisp + +@item hfy-sheet-assoc +@cindex hfy-sheet-assoc +@anchor{hfy-sheet-assoc} + +An assoc with elements of the form @samp{(face-name style-name . style-string)}. +The actual stylesheet for each page is derived from one of these. + +@lisp +'((default "default" . "@{ background: black; color: white@}") + (font-lock-string-face "string" . "@{ color: rgb(64,224,208) @}")) +@end lisp + +@item hfy-facemap-assoc +@cindex hfy-facemap-assoc +@anchor{hfy-facemap-assoc} + +An assoc of @code{(point . @var{face-symbol})} or +@code{(point . @code{defface} attribute list)} and @code{(point +. end)} elements, in descending order of point value (i.e., from the +file's end to its beginning). The map is in reverse order because +inserting a @samp{} text to embed in the document---the string +returned will be used as the header for the htmlfontified version of +the source file. + +See also: @ref{hfy-page-footer} + +@item hfy-src-doc-link-style +@vindex hfy-src-doc-link-style +@anchor{hfy-src-doc-link-style} + +String to add to the @samp{