Skip to content
Browse files

Merge branch 'emacs23'

(first merge from new Git repository)
Conflicts:
	INSTALL
	etc/NEWS
	lisp/progmodes/gdb-ui.el
	nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings
	src/nsfns.m
  • Loading branch information...
1 parent 09647ee commit 113e3b7bc45a8542c1118dd9229013ddd48d80f9 @davidswelt committed
Showing with 3,799 additions and 6,446 deletions.
  1. +71 −0 .bzrignore
  2. +11 −1 ChangeLog
  3. +0 −1 INSTALL
  4. +813 −0 INSTALL
  5. +20 −35 INSTALL.CVS → INSTALL.BZR
  6. +1 −1 README
  7. +1 −1 autogen.sh
  8. +12 −12 configure
  9. +4 −4 configure.in
  10. +13 −0 doc/emacs/ChangeLog
  11. +56 −192 doc/emacs/building.texi
  12. +9 −11 doc/emacs/emacs.texi
  13. +7 −6 doc/emacs/mini.texi
  14. +8 −0 doc/emacs/misc.texi
  15. +35 −2 doc/lispref/ChangeLog
  16. +1 −1 doc/lispref/book-spine.texinfo
  17. +3 −4 doc/lispref/control.texi
  18. +1 −2 doc/lispref/display.texi
  19. +1 −1 doc/lispref/elisp.texi
  20. +8 −7 doc/lispref/loading.texi
  21. +4 −4 doc/lispref/minibuf.texi
  22. +2 −2 doc/lispref/modes.texi
  23. +29 −25 doc/lispref/nonascii.texi
  24. +1 −1 doc/lispref/os.texi
  25. +7 −5 doc/lispref/positions.texi
  26. +6 −7 doc/lispref/text.texi
  27. +1 −2 doc/lispref/variables.texi
  28. +1 −1 doc/lispref/vol1.texi
  29. +1 −1 doc/lispref/vol2.texi
  30. +1 −1 doc/man/ChangeLog
  31. +1 −1 doc/man/emacs.1
  32. +11 −1 doc/misc/ChangeLog
  33. +1 −1 doc/misc/calc.texi
  34. +6 −6 doc/misc/eieio.texi
  35. +1 −1 doc/misc/faq.texi
  36. +2 −3 doc/misc/gnus.texi
  37. +30 −30 etc/AUTHORS
  38. +7 −3 etc/ChangeLog
  39. +54 −33 etc/NEWS
  40. +11 −6 etc/images/gud/README
  41. +4 −4 leim/ChangeLog
  42. +1 −1 lib-src/ChangeLog
  43. +1 −1 lib-src/makefile.w32-in
  44. +275 −20 lisp/ChangeLog
  45. +5 −5 lisp/ChangeLog.7
  46. +5 −2 lisp/Makefile.in
  47. +210 −245 lisp/bookmark.el
  48. +2 −2 lisp/cedet/semantic/db-typecache.el
  49. +5 −2 lisp/comint.el
  50. +1 −1 lisp/dired.el
  51. +5 −5 lisp/ediff-mult.el
  52. +6 −2 lisp/emacs-lisp/easy-mmode.el
  53. +1 −1 lisp/erc/ChangeLog
  54. +6 −2 lisp/files.el
  55. +17 −0 lisp/font-lock.el
  56. +1 −1 lisp/font-setting.el
  57. +33 −2 lisp/gnus/ChangeLog
  58. +8 −1 lisp/gnus/gnus-art.el
  59. +29 −6 lisp/gnus/gnus-sum.el
  60. +23 −0 lisp/gnus/gnus-util.el
  61. +4 −5 lisp/gnus/message.el
  62. +3 −3 lisp/language/indian.el
  63. +864 −980 lisp/ldefs-boot.el
  64. +5 −2 lisp/makefile.w32-in
  65. +7 −7 lisp/mh-e/ChangeLog
  66. +1 −1 lisp/mpc.el
  67. +7 −5 lisp/net/browse-url.el
  68. +44 −44 lisp/net/imap-hash.el
  69. +1 −0 lisp/net/rcirc.el
  70. +9 −4 lisp/org/ChangeLog
  71. +5 −5 lisp/org/org.el
  72. +2 −2 lisp/play/gomoku.el
  73. +0 −4,192 lisp/progmodes/gdb-mi.el
  74. +324 −162 lisp/progmodes/gdb-ui.el
  75. +59 −27 lisp/progmodes/gud.el
  76. +28 −27 lisp/progmodes/idlw-help.el
  77. +21 −13 lisp/progmodes/octave-mod.el
  78. +4 −2 lisp/progmodes/python.el
  79. +4 −0 lisp/term/x-win.el
  80. +1 −1 lisp/url/ChangeLog
  81. +59 −28 lisp/vc-bzr.el
  82. +1 −1 lisp/vc-git.el
  83. +2 −5 lisp/vc-hg.el
  84. +2 −0 lisp/vc-rcs.el
  85. +1 −1 lisp/version.el
  86. +1 −1 lwlib/ChangeLog
  87. +2 −2 nextstep/Cocoa/Emacs.base/Contents/Info.plist
  88. +1 −1 nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop
  89. +2 −2 nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist
  90. +8 −0 nt/ChangeLog
  91. +20 −41 nt/INSTALL
  92. +4 −4 nt/emacs.rc
  93. +4 −4 nt/emacsclient.rc
  94. +97 −14 src/ChangeLog
  95. +16 −7 src/dbusbind.c
  96. +21 −12 src/eval.c
  97. +22 −15 src/font.c
  98. +8 −0 src/font.h
  99. +2 −2 src/fontset.c
  100. +72 −3 src/gtkutil.c
  101. +7 −1 src/keyboard.c
  102. +14 −14 src/lread.c
  103. +13 −18 src/nsfns.m
  104. +2 −1 src/nsterm.m
  105. +1 −1 src/process.c
  106. +101 −42 src/xftfont.c
  107. +33 −26 src/xterm.c
View
71 .bzrignore
@@ -0,0 +1,71 @@
+./bin
+./BIN
+./data
+./etc/icons
+./lock
+./site-lisp
+./_dir-locals.el
+./config.log
+./config.status
+oo
+oo-spd
+autom4te.cache
+*.elc
+DOC
+DOC-*
+makefile
+Makefile
+Makefile.c
+stamp_BLD
+subdirs.el
+TAGS
+info/*
+leim/leim-list.el
+leim/quail/*.el
+leim/changed.misc
+leim/changed.tit
+lib-src/ctags.c
+lib-src/echolisp.tmp
+lib-src/getopt.h
+lib-src/b2m
+lib-src/ctags
+lib-src/digest-doc
+lib-src/digest-doc.exe
+lib-src/ebrowse
+lib-src/emacsclient
+lib-src/etags
+lib-src/fakemail
+lib-src/fakemail.exe
+lib-src/hexl
+lib-src/make-docfile
+lib-src/make-docfile.exe
+lib-src/movemail
+lib-src/profile
+lib-src/profile.exe
+lib-src/sorted-doc
+lib-src/sorted-doc.exe
+lib-src/test-distrib
+lib-src/test-distrib.exe
+lib-src/update-game-score
+lib-src/update-game-score.exe
+lisp/**/*-loaddefs.el
+lisp/**/loaddefs.el
+lisp/cus-load.el
+lisp/eshell/esh-groups.el
+lisp/finder-inf.el
+nt/config.log
+src/buildobj.h
+src/config.h
+src/epaths.h
+src/_dbxinit
+src/_gdbinit
+src/gdb.ini
+src/bootstrap-emacs
+src/b-emacs.exe
+src/emacs
+src/emacs-*
+src/prefix-args*
+src/stamp-oldxmenu
+src/temacs
+src/temacs.exe
+src/deps
View
12 ChangeLog
@@ -1,3 +1,13 @@
+2010-01-02 Eli Zaretskii <eliz@gnu.org>
+
+ * .bzrignore: Add more ignored patterns, including for the MS-DOS
+ build.
+
+2009-12-27 Karl Fogel <kfogel@red-bean>
+
+ * INSTALL.BZR: Rename from INSTALL.CVS; edit to talk about Bazaar.
+ * INSTALL, autogen.sh, configure.in, configure: Adjust accordingly.
+
2009-12-17 Glenn Morris <rgm@gnu.org>
* .dir-locals.el (bug-reference-url-format): Change to debbugs.gnu.org.
@@ -52,7 +62,7 @@
2009-11-14 Jan Djärv <jan.h.d@swipnet.se>
* configure.in: --enable-autodepend is new. Check for GNU Make
- and that gcc supports -MMD -MF. Define AUTO_DEPEND if we can use
+ and that gcc supports -MMD -MF. Define AUTO_DEPEND if we can use
gcc and GNU make to generate dependencies.
2009-10-27 Glenn Morris <rgm@gnu.org>
View
1 INSTALL
View
813 INSTALL
@@ -0,0 +1,813 @@
+GNU Emacs Installation Guide
+Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+
+This file contains general information. For more specific information
+for the Windows, GNUstep/Mac OS X, and MS-DOS ports, also see the files
+nt/INSTALL nextstep/INSTALL, and msdos/INSTALL. For information
+specific to building from a Bazaar checkout (rather than a release), see
+the file INSTALL.BZR.
+
+
+BASIC INSTALLATION
+
+The simplest way to build Emacs is to use the `configure' shell script
+which attempts to guess correct values for various system-dependent
+variables and features and find the directories where various system
+headers and libraries are kept. It then creates a `Makefile' in each
+subdirectory and a `config.h' file containing system-dependent
+definitions. Running the `make' utility then builds the package for
+your system.
+
+Here's the procedure to build Emacs using `configure' on systems which
+are supported by it. If this simplified procedure fails, or if you
+are using a platform such as MS-Windows, where `configure' script
+doesn't work, you might need to use various non-default options, and
+maybe perform some of the steps manually. The more detailed
+description in the rest of the sections of this guide will help you do
+that, so please refer to them if the simple procedure does not work.
+
+ 1. Make sure your system has at least 120 MB of free disk space.
+
+ 2a. `cd' to the directory where you unpacked Emacs and invoke the
+ `configure' script:
+
+ ./configure
+
+ 2b. Alternatively, create a separate directory, outside the source
+ directory, where you want to build Emacs, and invoke `configure'
+ from there:
+
+ SOURCE-DIR/configure
+
+ where SOURCE-DIR is the top-level Emacs source directory. This
+ may not work unless you use GNU make.
+
+ 3. When `configure' finishes, it prints several lines of details
+ about the system configuration. Read those details carefully
+ looking for anything suspicious, such as wrong CPU and operating
+ system names, wrong places for headers or libraries, missing
+ libraries that you know are installed on your system, etc.
+
+ If you find anything wrong, you will have to pass to `configure'
+ explicit machine configuration name, and one or more options
+ which tell it where to find various headers and libraries; refer
+ to DETAILED BUILDING AND INSTALLATION section below.
+
+ If `configure' didn't find some image support libraries, such as
+ Xpm, jpeg, etc., and you want to use them refer to the subsection
+ "Image support libraries", below.
+
+ If the details printed by `configure' don't make any sense to
+ you, assume that `configure' did its job and proceed.
+
+ 4. If you need to run the `configure' script more than once (e.g.,
+ with some non-default options), always clean the source
+ directories before running `configure' again:
+
+ make distclean
+ ./configure
+
+ 5. Invoke the `make' program:
+
+ make
+
+ 6. If `make' succeeds, it will build an executable program `emacs'
+ in the `src' directory. You can try this program, to make sure
+ it works:
+
+ src/emacs -q
+
+ 7. Assuming that the program `src/emacs' starts and displays its
+ opening screen, you can install the program and its auxiliary
+ files into their installation directories:
+
+ make install
+
+ You are now ready to use Emacs. If you wish to conserve disk space,
+ you may remove the program binaries and object files from the
+ directory where you built Emacs:
+
+ make clean
+
+ You can also save some space by compressing (with `gzip') Info files
+ and installed Lisp source (.el) files which have corresponding .elc
+ versions.
+
+
+ADDITIONAL DISTRIBUTION FILES
+
+* Complex Text Layout support libraries
+
+Emacs needs the optional libraries "m17n-db", "libm17n-flt", "libotf"
+to correctly display such complex scripts as Indic and Khmer.
+On some systems, particularly GNU/Linux, these libraries may be
+already present or available as additional packages. Note that if
+there is a separate `dev' or `devel' package, for use at compilation
+time rather than run time, you will need that as well as the
+corresponding run time package; typically the dev package will contain
+header files and a library archive. Otherwise, you can download and
+build libraries from sources.
+
+The sources of these libraries are available by anonymous CVS from
+cvs.m17n.org.
+
+ % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n login
+ % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-db
+ % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-lib
+ % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co libotf
+
+For m17n-lib, if you have problems with making the whole package
+because you lack some other packages on which m17n-lib depends, try to
+configure it with the option "--without-gui".
+
+* intlfonts-VERSION.tar.gz
+
+The intlfonts distribution contains X11 fonts in various encodings
+that Emacs can use to display international characters. If you see a
+non-ASCII character appear as a hollow box, that means you don't have
+a font for it. You might find one in the intlfonts distribution. If
+you do have a font for a non-ASCII character, but some characters
+don't look right, or appear improperly aligned, a font from the
+intlfonts distribution might look better.
+
+The fonts in the intlfonts distribution are also used by the ps-print
+package for printing international characters. The file
+lisp/ps-mule.el defines the *.bdf font files required for printing
+each character set.
+
+The intlfonts distribution contains its own installation instructions,
+in the intlfonts/README file.
+
+* Image support libraries
+
+Emacs needs optional libraries to be able to display images (with the
+exception of PBM and XBM images whose support is built-in).
+
+On some systems, particularly on GNU/Linux, these libraries may
+already be present or available as additional packages. Note that if
+there is a separate `dev' or `devel' package, for use at compilation
+time rather than run time, you will need that as well as the
+corresponding run time package; typically the dev package will
+contain header files and a library archive. Otherwise, you can
+download and build libraries from sources. None of them are vital for
+running Emacs; however, note that Emacs will not be able to use
+colored icons in the toolbar if XPM support is not compiled in.
+
+Here's the list of these optional libraries, and the URLs where they
+can be found:
+
+ . libXaw3d for fancy 3D-style
+ scroll bars: ftp://ftp.x.org/contrib/widgets/Xaw3d/
+ . libxpm for XPM: ftp://ftp.x.org/contrib/libraries/
+ Get version 3.4k or later, which lets Emacs
+ use its own color allocation functions.
+ . libpng for PNG: ftp://ftp.simplesystems.org/pub/libpng/png/
+ . libz (for PNG): http://www.zlib.net/
+ . libjpeg for JPEG: ftp://ftp.uu.net/graphics/jpeg/
+ Get version 6b -- 6a is reported to fail in
+ Emacs.
+ . libtiff for TIFF: http://www.libtiff.org/
+ . libgif for GIF: http://sourceforge.net/projects/giflib/
+
+Emacs will configure itself to build with these libraries if the
+`configure' script finds them on your system, unless you supply the
+appropriate --without-LIB option. In some cases, older versions of
+these libraries won't work because some routines are missing, and
+configure should avoid such old versions. If that happens, use the
+--without-LIB options to `configure'. See below for more details.
+
+* Extra fonts
+
+The Emacs distribution does not include fonts and does not install
+them. You must do that yourself.
+
+Emacs running on the GNU system supports both X fonts and local fonts
+(i.e. the fonts managed by the fontconfig library).
+
+For `Unicode' (ISO 10646) X fonts, see
+<URL:http://czyborra.com/unifont/> (packaged in Debian),
+<URL:http://openlab.ring.gr.jp/efont/> (packaged in Debian). (In
+recent Debian versions, there is an extensive `misc-fixed' iso10646-1
+in the default X installation.) Perhaps also see
+<URL:http://www.cl.cam.ac.uk/%7Emgk25/ucs-fonts.html>.
+
+<URL:http://czyborra.com/charsets/> has basic fonts for Emacs's
+ISO-8859 charsets.
+
+XFree86 release 4 (from <URL:ftp://ftp.xfree86.org/pub/XFree86/> and mirrors)
+contains font support for most, if not all, of the charsets that Emacs
+currently supports, including iso10646-1 encoded fonts for use with
+the mule-unicode charsets. The font files should also be usable with
+older X releases. Note that XFree 4 contains many iso10646-1 fonts
+with minimal character repertoires, which can cause problems -- see
+etc/PROBLEMS.
+
+BDF Unicode fonts etl-unicode.tar.gz are available from
+<URL:ftp://ftp.x.org/contrib/fonts/> and
+<URL:ftp://ftp.xfree86.org/pub/mirror/X.Org/contrib/fonts/>. These
+fonts can also be used by ps-print and ps-mule to print Unicode
+characters.
+
+Finally, the Web page <URL:http://www.gnu.org/software/freefont/>
+lists a large number of free Unicode fonts.
+
+* GNU/Linux development packages
+
+Many GNU/Linux systems do not come with development packages by
+default; they just include the files that you need to run Emacs, but
+not those you need to compile it. For example, to compile Emacs with
+X11 support, you may need to install the special `X11 development'
+package. For example, in April 2003, the package names to install
+were `XFree86-devel' and `Xaw3d-devel' on Red Hat. On Debian, the
+packages necessary to build the installed version should be
+sufficient; they can be installed using `apt-get build-dep emacs21' in
+Debian 3 and above.
+
+
+DETAILED BUILDING AND INSTALLATION:
+
+(This is for a Unix or Unix-like system. For MS-DOS and Windows 3.X,
+see msdos/INSTALL. For Windows 9X, Windows ME, Windows NT, Windows
+2000, Windows XP/2003, and Windows Vista/2008, see the file
+nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.)
+
+1) Make sure your system has enough swapping space allocated to handle
+a program whose pure code is 1.5 MB and whose data area is at
+least 2.8 MB and can reach 100 MB or more. If the swapping space is
+insufficient, you will get an error in the command `temacs -batch -l
+loadup dump', found in `./src/Makefile.in', or possibly when
+running the final dumped Emacs.
+
+Building Emacs requires about 140 MB of disk space (including the
+Emacs sources) Once installed, Emacs occupies about 77 MB in the file
+system where it is installed; this includes the executable files, Lisp
+libraries, miscellaneous data files, and on-line documentation. If
+the building and installation take place in different directories,
+then the installation procedure momentarily requires 140+77 MB.
+
+2) Consult `./etc/MACHINES' to see what configuration name you should
+give to the `configure' program. That file offers hints for
+getting around some possible installation problems. The file lists
+many different configurations, but only the part for your machine and
+operating system is relevant. (The list is arranged in alphabetical
+order by the vendor name.)
+
+3) You can build Emacs in the top-level Emacs source directory
+or in a separate directory.
+
+3a) To build in the top-level Emacs source directory, go to that
+directory and run the program `configure' as follows:
+
+ ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
+
+The CONFIGURATION-NAME argument should be a configuration name given
+in `./etc/MACHINES', with the system version number added at the end.
+
+You should try first omitting CONFIGURATION-NAME. This way,
+`configure' will try to guess your system type. If it cannot guess,
+or if something goes wrong in building or installing Emacs this way,
+try again specifying the proper CONFIGURATION-NAME explicitly.
+
+If you don't want X support, specify `--with-x=no'. If you omit this
+option, `configure' will try to figure out for itself whether your
+system has X, and arrange to use it if present.
+
+The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
+process where the compiler should look for the include files and
+object libraries used with the X Window System. Normally, `configure'
+is able to find them; these options are necessary if you have your X
+Window System files installed in unusual places. These options also
+accept a list of directories, separated with colons.
+
+To get more attractive menus, you can specify an X toolkit when you
+configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
+TOOLKIT is `athena', `motif' or `gtk' (`yes' and `lucid' are synonyms
+for `athena'). On some systems, it does not work to use a toolkit
+with shared libraries. A free implementation of Motif, called
+LessTif, is available from <http://www.lesstif.org>. Compiling with
+LessTif or Motif causes a standard File Selection Dialog to pop up
+when you invoke file commands with the mouse. You can get fancy
+3D-style scroll bars, even without LessTif/Motif, if you have the
+Xaw3d library installed (see "Image support libraries" above for Xaw3d
+availability).
+
+If `--with-x-toolkit=gtk' is specified, you can tell configure where
+to search for GTK by specifying `--with-pkg-config-prog=PATH' where
+PATH is the pathname to pkg-config. Note that GTK version 2.4 or
+newer is required for Emacs.
+
+The Emacs mail reader RMAIL is configured to be able to read mail from
+a POP3 server by default. Versions of the POP protocol older than
+POP3 are not supported. For Kerberos-authenticated POP add
+`--with-kerberos', for Hesiod support add `--with-hesiod'. While POP3
+is always enabled, whether Emacs actually uses POP is controlled by
+individual users--see the Rmail chapter of the Emacs manual.
+
+For image support you may have to download, build, and install the
+appropriate image support libraries for image types other than XBM and
+PBM, see the list of URLs in "ADDITIONAL DISTRIBUTION FILES" above.
+(Note that PNG support requires libz in addition to libpng.)
+
+To disable individual types of image support in Emacs for some reason,
+even though configure finds the libraries, you can configure with one
+or more of these options:
+
+ --without-xpm for XPM image support
+ --without-jpeg for JPEG image support
+ --without-tiff for TIFF image support
+ --without-gif for GIF image support
+ --without-png for PNG image support
+
+Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
+scroll bars.
+
+Use --without-xim to inhibit the default use of X Input Methods. In
+this case, the X resource useXIM can be used to turn on use of XIM.
+
+Use --disable-largefile omits support for files larger than 2GB on
+systems which support that.
+
+Use --without-sound to disable sound support.
+
+The `--prefix=PREFIXDIR' option specifies where the installation process
+should put emacs and its data files. This defaults to `/usr/local'.
+- Emacs (and the other utilities users run) go in PREFIXDIR/bin
+ (unless the `--exec-prefix' option says otherwise).
+- The architecture-independent files go in PREFIXDIR/share/emacs/VERSION
+ (where VERSION is the version number of Emacs, like `19.27').
+- The architecture-dependent files go in
+ PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION
+ (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
+ unless the `--exec-prefix' option says otherwise.
+
+The `--exec-prefix=EXECDIR' option allows you to specify a separate
+portion of the directory tree for installing architecture-specific
+files, like executables and utility programs. If specified,
+- Emacs (and the other utilities users run) go in EXECDIR/bin, and
+- The architecture-dependent files go in
+ EXECDIR/libexec/emacs/VERSION/CONFIGURATION.
+EXECDIR/bin should be a directory that is normally in users' PATHs.
+
+For example, the command
+
+ ./configure mips-dec-ultrix --with-x11
+
+configures Emacs to build for a DECstation running Ultrix, with
+support for the X11 window system.
+
+`configure' doesn't do any compilation or installation
+itself. It just creates the files that influence those things:
+`./Makefile', `lib-src/Makefile', `oldXMenu/Makefile',
+`lwlib/Makefile', `src/Makefile', and `./src/config.h'. For details
+on exactly what it does, see the section called `CONFIGURATION BY
+HAND', below.
+
+When it is done, `configure' prints a description of what it did and
+creates a shell script `config.status' which, when run, recreates the
+same configuration. If `configure' exits with an error after
+disturbing the status quo, it removes `config.status'. `configure'
+also creates a file `config.cache' that saves the results of its tests
+to make reconfiguring faster, and a file `config.log' containing compiler
+output (useful mainly for debugging `configure'). You can give
+`configure' the option `--cache-file=FILE' to use the results of the
+tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to
+disable caching, for debugging `configure'.
+
+If the description of the system configuration printed by `configure'
+is not right, or if it claims some of the features or libraries are not
+available when you know they are, look at the `config.log' file for
+the trace of the failed tests performed by `configure' to check
+whether these features are supported. Typically, some test fails
+because the compiler cannot find some function in the system
+libraries, or some macro-processor definition in the system headers.
+
+Some tests might fail because the compiler should look in special
+directories for some header files, or link against optional
+libraries, or use special compilation options. You can force
+`configure' and the build process which follows it to do that by
+setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, CPP and CC
+before running `configure'. CPP is the command which invokes the
+preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are
+compilation options, LDFLAGS are options used when linking, LIBS are
+libraries to link against, and CC is the command which invokes the
+compiler. By default, gcc is used if available.
+
+Here's an example of a `configure' invocation, assuming a Bourne-like
+shell such as Bash, which uses these variables:
+
+ CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
+ CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure
+
+(this is all one long line). This tells `configure' to instruct the
+preprocessor to look in the `/foo/myinclude' directory for header
+files (in addition to the standard directories), instruct the linker
+to look in `/bar/mylib' for libraries, pass the -O3 optimization
+switch to the compiler, and link against libfoo.a and libbar.a
+libraries in addition to the standard ones.
+
+For some libraries, like Gtk+, fontconfig and ALSA, `configure' use
+pkg-config to find where those libraries are installed.
+If you want pkg-config to look in special directories, you have to set
+the environment variable PKG_CONFIG_PATH to point to the directories
+where the .pc-files for those libraries are.
+For example:
+
+ PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' \
+ ./configure
+
+The work of `configure' can be done by editing various files in the
+distribution, but using `configure' is easier. See the section called
+"CONFIGURATION BY HAND" below if you want to do the configuration
+yourself.
+
+3b) To build in a separate directory, go to that directory
+and run the program `configure' as follows:
+
+ SOURCE-DIR/configure CONFIGURATION-NAME [--OPTION[=VALUE]] ...
+
+SOURCE-DIR refers to the top-level Emacs source directory which is
+where Emacs's configure script is located. `configure' looks for the
+Emacs source code in the directory that `configure' is in.
+
+To build in a separate directory, you must use a version of `make'
+that supports the `VPATH' variable, such as GNU `make'.
+
+3c) Some people try to build in a separate directory by filling
+it full of symlinks to the files in the real source directory.
+If you do that, `make all' does work, but `make install' fails:
+it copies the symbolic links rather than the actual files.
+
+As far as is known, there is no particular reason to use
+a directory full of links rather than use the standard GNU
+facilities to build in a separate directory (see 3b above).
+
+4) Look at `./lisp/paths.el'; if some of those values are not right
+for your system, set up the file `./lisp/site-init.el' with Emacs
+Lisp code to override them; it is not a good idea to edit paths.el
+itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
+rather than `defvar', as used by `./lisp/paths.el'. For example,
+
+ (setq news-inews-program "/usr/bin/inews")
+
+is how you would override the default value of the variable
+news-inews-program (which is "/usr/local/inews").
+
+Before you override a variable this way, *look at the value* that the
+variable gets by default! Make sure you know what kind of value the
+variable should have. If you don't pay attention to what you are
+doing, you'll make a mistake.
+
+5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
+Lisp code you want Emacs to load before it is dumped out. Use
+site-load.el for additional libraries if you arrange for their
+documentation strings to be in the etc/DOC file (see
+src/Makefile.in if you wish to figure out how to do that). For all
+else, use site-init.el. Do not load byte-compiled code which
+was build with a non-nil value of `byte-compile-dynamic'.
+
+If you set load-path to a different value in site-init.el or
+site-load.el, Emacs will use *precisely* that value when it starts up
+again. If you do this, you are on your own!
+
+Note that, on some systems, the code you place in site-init.el must
+not use expand-file-name or any other function which may look
+something up in the system's password and user information database.
+See `./etc/PROBLEMS' for more details on which systems this affects.
+
+The `site-*.el' files are nonexistent in the distribution. You do not
+need to create them if you have nothing to put in them.
+
+6) Refer to the file `./etc/TERMS' for information on fields you may
+wish to add to various termcap entries. The files `./etc/termcap.ucb'
+and `./etc/termcap.dat' may already contain appropriately-modified
+entries.
+
+7) Run `make' in the top directory of the Emacs distribution to finish
+building Emacs in the standard way. The final executable file is
+named `src/emacs'. You can execute this file "in place" without
+copying it, if you wish; then it automatically uses the sibling
+directories ../lisp, ../lib-src, ../info.
+
+Or you can "install" the executable and the other Emacs into their
+installed locations, with `make install'. By default, Emacs's files
+are installed in the following directories:
+
+`/usr/local/bin' holds the executable programs users normally run -
+ `emacs', `etags', `ctags', `b2m', `emacsclient',
+ and `rcs-checkin'.
+
+`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
+ `VERSION' stands for the number of the Emacs version
+ you are installing, like `18.59' or `19.27'. Since the
+ Lisp library changes from one version of Emacs to
+ another, including the version number in the path
+ allows you to have several versions of Emacs installed
+ at the same time; in particular, you don't have to
+ make Emacs unavailable while installing a new version.
+
+`/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
+ file, the `yow' database, and other
+ architecture-independent files Emacs might need while
+ running. VERSION is as specified for `.../lisp'.
+
+`/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
+ programs used by Emacs that users are not expected to
+ run themselves.
+ `VERSION' is the number of the Emacs version you are
+ installing, and `CONFIGURATION-NAME' is the argument
+ you gave to the `configure' program to identify the
+ architecture and operating system of your machine,
+ like `mips-dec-ultrix' or `sparc-sun-sunos'. Since
+ these files are specific to the version of Emacs,
+ operating system, and architecture in use, including
+ the configuration name in the path allows you to have
+ several versions of Emacs for any mix of machines and
+ operating systems installed at the same time; this is
+ useful for sites at which different kinds of machines
+ share the file system Emacs is installed on.
+
+`/usr/local/share/info' holds the on-line documentation for Emacs,
+ known as "info files". Many other GNU programs are
+ documented using info files as well, so this directory
+ stands apart from the other, Emacs-specific
+ directories.
+
+`/usr/local/man/man1' holds the man pages for the programs installed
+ in `/usr/local/bin'.
+
+Any version of Emacs, whether installed or not, also looks for Lisp
+files in these directories.
+
+`/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp
+ files installed for Emacs version VERSION only.
+
+`/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp
+ files installed for all Emacs versions.
+
+ When Emacs is installed, it searches for its Lisp files
+ in `/usr/local/share/emacs/VERSION/site-lisp', then in
+ `/usr/local/share/emacs/site-lisp', and finally in
+ `/usr/local/share/emacs/VERSION/lisp'.
+
+If these directories are not what you want, you can specify where to
+install Emacs's libraries and data files or where Emacs should search
+for its Lisp files by giving values for `make' variables as part of
+the command. See the section below called `MAKE VARIABLES' for more
+information on this.
+
+8) Check the file `dir' in your site's info directory (usually
+/usr/local/share/info) to make sure that it has a menu entry for the
+Emacs info files.
+
+9) If your system uses lock files to interlock access to mailer inbox files,
+then you might need to make the movemail program setuid or setgid
+to enable it to write the lock files. We believe this is safe.
+
+10) You are done! You can remove executables and object files from
+the build directory by typing `make clean'. To also remove the files
+that `configure' created (so you can compile Emacs for a different
+configuration), type `make distclean'. If you don't need some, or all
+of the input methods from the Leim package, you can remove the
+unneeded files in the leim subdirectories of your site's lisp
+directory (usually /usr/local/share/emacs/VERSION/).
+
+
+
+MAKE VARIABLES
+
+You can change where the build process installs Emacs and its data
+files by specifying values for `make' variables as part of the `make'
+command line. For example, if you type
+
+ make install bindir=/usr/local/gnubin
+
+the `bindir=/usr/local/gnubin' argument indicates that the Emacs
+executable files should go in `/usr/local/gnubin', not
+`/usr/local/bin'.
+
+Here is a complete list of the variables you may want to set.
+
+`bindir' indicates where to put executable programs that users can
+ run. This defaults to /usr/local/bin.
+
+`datadir' indicates where to put the architecture-independent
+ read-only data files that Emacs refers to while it runs; it
+ defaults to /usr/local/share. We create the following
+ subdirectories under `datadir':
+ - `emacs/VERSION/lisp', containing the Emacs Lisp library, and
+ - `emacs/VERSION/etc', containing the Emacs tutorial, the DOC
+ file, and the `yow' database.
+ `VERSION' is the number of the Emacs version you are installing,
+ like `18.59' or `19.0'. Since these files vary from one version
+ of Emacs to another, including the version number in the path
+ allows you to have several versions of Emacs installed at the
+ same time; this means that you don't have to make Emacs
+ unavailable while installing a new version.
+
+`libexecdir' indicates where to put architecture-specific data files that
+ Emacs refers to as it runs; it defaults to `/usr/local/libexec'.
+ We create the following subdirectories under `libexecdir':
+ - `emacs/VERSION/CONFIGURATION-NAME', containing executable
+ programs used by Emacs that users are not expected to run
+ themselves.
+ `VERSION' is the number of the Emacs version you are installing,
+ and `CONFIGURATION-NAME' is the argument you gave to the
+ `configure' program to identify the architecture and operating
+ system of your machine, like `mips-dec-ultrix' or
+ `sparc-sun-sunos'. Since these files are specific to the version
+ of Emacs, operating system, and architecture in use, including
+ the configuration name in the path allows you to have several
+ versions of Emacs for any mix of machines and operating systems
+ installed at the same time; this is useful for sites at which
+ different kinds of machines share the file system Emacs is
+ installed on.
+
+`infodir' indicates where to put the info files distributed with
+ Emacs; it defaults to `/usr/local/share/info'.
+
+`mandir' indicates where to put the man pages for Emacs and its
+ utilities (like `etags'); it defaults to
+ `/usr/local/man/man1'.
+
+`manext' gives the extension the man pages should be installed with.
+ It should contain a period, followed by the appropriate
+ digit. It defaults to `.1'. For example given the default
+ values for `mandir' and `manext', the Emacs man page would be
+ installed as `/usr/local/man/man1/emacs.1'.
+
+`prefix' doesn't give a path for any specific part of Emacs; instead,
+ its value is used to determine the defaults for all the
+ architecture-independent path variables - `datadir',
+ `sharedstatedir', `infodir', and `mandir'. Its default value is
+ `/usr/local'; the other variables add on `lib' or `man' to it
+ by default.
+
+ For example, suppose your site generally places GNU software
+ under `/usr/users/software/gnusoft' instead of `/usr/local'.
+ By including
+ `prefix=/usr/users/software/gnusoft'
+ in the arguments to `make', you can instruct the build process
+ to place all of the Emacs data files in the appropriate
+ directories under that path.
+
+`exec_prefix' serves the same purpose as `prefix', but instead
+ determines the default values for the architecture-dependent
+ path variables - `bindir' and `libexecdir'.
+
+The above variables serve analogous purposes in the makefiles for all
+GNU software; this variable is specific to Emacs.
+
+`archlibdir' indicates where Emacs installs and expects the executable
+ files and other architecture-dependent data it uses while
+ running. Its default value, based on `libexecdir' (which
+ see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
+ (where VERSION and CONFIGURATION-NAME are as described above).
+
+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
+must provide the same variable settings each time. To make the
+settings persist, you can edit them into the `Makefile' in the top
+directory, but be aware that running the `configure' program erases
+`Makefile' and rebuilds it from `Makefile.in'.
+
+The path for finding Lisp files is specified in src/paths.h,
+a file which is generated by running configure. To change the path,
+you can edit the definition of PATH_LOADSEARCH in that file
+before you run `make'.
+
+The top-level Makefile stores the variable settings it used in the
+Makefiles for the subdirectories, so you don't have to specify them
+when running make in the subdirectories.
+
+
+CONFIGURATION BY HAND
+
+Instead of running the `configure' program, you have to perform the
+following steps.
+
+1) Copy `./src/config.in' to `./src/config.h'.
+
+2) Consult `./etc/MACHINES' to see what configuration name you should
+use for your system. Look at the code of the `configure' script to
+see which operating system and architecture description files from
+`src/s' and `src/m' should be used for that configuration name. Edit
+`src/config.h', and change the two `#include' directives to include
+the appropriate system and architecture description files.
+
+2) Edit `./src/config.h' to set the right options for your system. If
+you need to override any of the definitions in the s/*.h and m/*.h
+files for your system and machine, do so by editing config.h, not by
+changing the s/*.h and m/*.h files. Occasionally you may need to
+redefine parameters used in `./lib-src/movemail.c'.
+
+3) Create src/Makefile and lib-src/Makefile from the corresponding
+`Makefile.in' files. First copy `Makefile.in' to `Makefile.c',
+then edit in appropriate substitutions for the @...@ constructs,
+and then copy the shell commands near the end of `configure'
+that run cpp to construct `Makefile'.
+
+4) Create `Makefile' files in various other directories
+from the corresponding `Makefile.in' files. This isn't so hard,
+just a matter of substitution.
+
+The `configure' script is built from `configure.in' by the `autoconf'
+program. You need version 2.51 or newer of `autoconf' to rebuild
+`configure'.
+
+BUILDING GNU EMACS BY HAND
+
+Once Emacs is configured, running `make' in the top directory performs
+the following steps.
+
+1) Run `make src/paths.h' in the top directory. This produces
+`./src/paths.h' from the template file `./src/paths.in', changing
+the paths to the values specified in `./Makefile'.
+
+2) Go to directory `./lib-src' and run `make'. This creates
+executables named `ctags' and `etags' and `make-docfile' and
+`digest-doc' and `test-distrib'. And others.
+
+3) Go to directory `./src' and Run `make'. This refers to files in
+the `./lisp' and `./lib-src' subdirectories using names `../lisp' and
+`../lib-src'.
+
+This creates a file `./src/emacs' which is the runnable Emacs,
+which has another name that contains a version number.
+Each time you do this, that version number increments in the last place.
+
+It also creates a file in `./etc' whose name is `DOC' followed by the
+current Emacs version. This file contains documentation strings for
+all the functions in Emacs. Each time you run make to make a new
+emacs, a new DOC file with a new name is made. You must keep the DOC
+file for an Emacs version as long as you keep using that Emacs
+version.
+
+
+INSTALLATION BY HAND
+
+The steps below are done by running `make install' in the main
+directory of the Emacs distribution.
+
+1) Copy `./lisp' and its subdirectories, `./etc', and the executables
+in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
+
+Strictly speaking, not all of the executables in `./lib-src' need be copied.
+- The programs `fakemail', `hexl', `movemail', `profile', `rcs2log',
+ and `vcdiff' are used by Emacs; they do need to be copied.
+- The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin'
+ are intended to be run by users; they are handled below.
+- The programs `make-docfile' and `test-distrib' were
+ used in building Emacs, and are not needed any more.
+- The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
+ a file for users to read. There is no important reason to move them.
+
+2) Copy the files in `./info' to the place specified in
+`./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
+destination directory already contains a file named `dir', you
+probably don't want to replace it with the `dir' file in the Emacs
+distribution. Instead, you should make sure that the existing `dir'
+file contains an appropriate menu entry for the Emacs info.
+
+3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory
+in users' search paths. `./src/emacs' has an alternate name
+`./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
+`/usr/local/bin/emacs' pointing to that alternate name, as an easy way
+of installing different versions.
+
+You can delete `./src/temacs'.
+
+4) Copy the programs `b2m', `emacsclient', `ctags', `etags', and
+`rcs-checkin' from `./lib-src' to `/usr/local/bin'. These programs are
+intended for users to run.
+
+5) Copy the man pages in `./etc' for emacs, ctags, and etags into the
+appropriate man directories.
+
+6) The files in the `./src' subdirectory, except for `emacs', are not
+used by Emacs once it is built. However, it is very desirable to keep
+the source on line for debugging.
+
+
+PROBLEMS
+
+See the file PROBLEMS in etc subdirectory for a list of various
+problems sometimes encountered, and what to do about them.
+
+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 <http://www.gnu.org/licenses/>.
View
55 INSTALL.CVS → INSTALL.BZR
@@ -3,7 +3,7 @@ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
See the end of the file for license conditions.
- Building and Installing Emacs from CVS
+ Building and Installing Emacs from Bazaar
If this is the first time you go through it, you'll need to configure
before bootstrapping:
@@ -11,15 +11,15 @@ before bootstrapping:
$ ./configure
Some of the files that are included in the Emacs tarball, such as
-byte-compiled Lisp files, are not stored in the CVS repository.
-Therefore, to build from CVS you must run "make bootstrap"
-instead of just "make":
+byte-compiled Lisp files, are not stored in Bazaar. Therefore, to
+build from Bazaar you must run "make bootstrap" instead of just "make":
- $ cvs update -dP
+ $ bzr pull
$ make bootstrap
-Normally, it is not necessary to use "make bootstrap" after every CVS
-update. "make" should work in 90% of the cases and be much quicker.
+Normally, it is not necessary to use "make bootstrap" after every
+update from Bazaar. "make" should work in 90% of the cases and be
+much quicker.
$ make
@@ -33,10 +33,11 @@ updated to reflect new autoloaded functions. If you see errors (rather
than warnings) about undefined lisp functions during compilation, that
may be the reason. Another symptom may be an error saying that
"loaddefs.el" could not be found; this is due to a change in the way
-loaddefs.el was handled in CVS, and should only happen once, for users
-that are updating old CVS trees. Finally, sometimes there can be build
-failures related to *loaddefs.el (e.g. "required feature `esh-groups'
-was not provided"). In that case, follow the instructions below.
+loaddefs.el was handled in version control, and should only happen
+once, for users that are updating old sources. Finally, sometimes
+there can be build failures related to *loaddefs.el (e.g. "required
+feature `esh-groups' was not provided"). In that case, follow the
+instructions below.
To update loaddefs.el (and similar files), do:
@@ -52,42 +53,26 @@ platform-specific configuration scripts (nt/configure.bat, config.bat,
etc.) before "make bootstrap" or "make"; the rest of the procedure is
applicable to those systems as well.
-Questions, requests, and bug reports about the CVS versions of Emacs
+Questions, requests, and bug reports about the Bazaar versions of Emacs
should be sent to emacs-pretest-bug@gnu.org rather than gnu.emacs.help
or gnu.emacs.bug. Ideally, use M-x report-emacs-bug RET which will
send it to the proper place.
-Because the CVS version of Emacs is a work in progress, it will
+Because the Bazaar version of Emacs is a work in progress, it will
sometimes fail to build. Please wait a day or so (and check the bug
and development mailing list archives) before reporting such problems.
In most cases, the problem is known about and is just waiting for
someone to fix it.
-Note on using SSH to access the CVS repository from inside Emacs
-----------------------------------------------------------------
+Note on accessing the Bazaar repository
+---------------------------------------
-Write access to the CVS repository requires using SSH v2.
+Write access to the Bazaar repository is currently done via Bazaar's
+sftp:// protocol; see http://www.emacswiki.org/emacs/BzrForEmacsDevs.
+We plan to offer bzr+ssh:// access later. More discussion about that
+is at https://savannah.gnu.org/support/?107077.
-If you execute cvs commands inside Emacs, specifically if you use
-pcl-cvs, output from CVS may be lost due to a problem in the
-interface between ssh, cvs, and libc. Corrupted checkins are
-also known to have happened.
-
-To fix the problem, save the following script into a file, make it
-executable, and set CVS_RSH to the file name of the script:
-
-#!/bin/bash
-exec 2> >(exec cat >&2 2>/dev/null)
-exec ssh "$@"
-
-This may be combined with the following entry in ~/.ssh/config to
-simplify accessing the CVS repository:
-
-Host subversions.gnu.org
- Protocol 2
- ForwardX11 no
- User YOUR_USERID
This file is part of GNU Emacs.
View
2 README
@@ -3,7 +3,7 @@ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
See the end of the file for license conditions.
-This directory tree holds version 23.1.90 of GNU Emacs, the extensible,
+This directory tree holds version 23.1.91 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU
View
2 autogen.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-echo "Please read INSTALL.CVS for instructions on how to build Emacs from CVS."
+echo "Please read INSTALL.BZR for instructions on how to build Emacs from Bazaar."
# Exit with failure, since people may have generic build scripts that
# try things like "autogen.sh && ./configure && make".
View
24 configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.62 for emacs 23.1.90.
+# Generated by GNU Autoconf 2.62 for emacs 23.1.91.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -594,8 +594,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='emacs'
PACKAGE_TARNAME='emacs'
-PACKAGE_VERSION='23.1.90'
-PACKAGE_STRING='emacs 23.1.90'
+PACKAGE_VERSION='23.1.91'
+PACKAGE_STRING='emacs 23.1.91'
PACKAGE_BUGREPORT=''
ac_unique_file="src/lisp.h"
@@ -1371,7 +1371,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures emacs 23.1.90 to adapt to many kinds of systems.
+\`configure' configures emacs 23.1.91 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1445,7 +1445,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of emacs 23.1.90:";;
+ short | recursive ) echo "Configuration of emacs 23.1.91:";;
esac
cat <<\_ACEOF
@@ -1588,7 +1588,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-emacs configure 23.1.90
+emacs configure 23.1.91
generated by GNU Autoconf 2.62
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1602,7 +1602,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by emacs $as_me 23.1.90, which was
+It was created by emacs $as_me 23.1.91, which was
generated by GNU Autoconf 2.62. Invocation command line was
$ $0 $@
@@ -5598,11 +5598,11 @@ fi
## pre-built, and not deleted by the normal clean rules. makeinfo is
## therefore in the category of "special tools" not normally required, which
## configure does not have to check for (eg autoconf itself).
-## In a CVS checkout on the other hand, the manuals are not included.
-## So makeinfo is a requirement to build from CVS, and configure
+## In a Bazaar checkout on the other hand, the manuals are not included.
+## So makeinfo is a requirement to build from Bazaar, and configure
## should test for it as it does for any other build requirement.
## We use the presence of $srcdir/info/emacs to distinguish a release,
-## with pre-built manuals, from a CVS checkout.
+## with pre-built manuals, from a Bazaar checkout.
if test "$MAKEINFO" = "no"; then
if test "x${with_makeinfo}" = "xno"; then
MAKEINFO=off
@@ -26179,7 +26179,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by emacs $as_me 23.1.90, which was
+This file was extended by emacs $as_me 23.1.91, which was
generated by GNU Autoconf 2.62. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26232,7 +26232,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-emacs config.status 23.1.90
+emacs config.status 23.1.91
configured by $0, generated by GNU Autoconf 2.62,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
View
8 configure.in
@@ -22,7 +22,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.62)
-AC_INIT(emacs, 23.1.90)
+AC_INIT(emacs, 23.1.91)
AC_CONFIG_HEADER(src/config.h:src/config.in)
AC_CONFIG_SRCDIR(src/lisp.h)
@@ -799,11 +799,11 @@ fi
## pre-built, and not deleted by the normal clean rules. makeinfo is
## therefore in the category of "special tools" not normally required, which
## configure does not have to check for (eg autoconf itself).
-## In a CVS checkout on the other hand, the manuals are not included.
-## So makeinfo is a requirement to build from CVS, and configure
+## In a Bazaar checkout on the other hand, the manuals are not included.
+## So makeinfo is a requirement to build from Bazaar, and configure
## should test for it as it does for any other build requirement.
## We use the presence of $srcdir/info/emacs to distinguish a release,
-## with pre-built manuals, from a CVS checkout.
+## with pre-built manuals, from a Bazaar checkout.
if test "$MAKEINFO" = "no"; then
if test "x${with_makeinfo}" = "xno"; then
MAKEINFO=off
View
13 doc/emacs/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * misc.texi (Shell): Document async-shell-command.
+
+ * building.texi (Grep Searching): Document zrgrep.
+
+ * mini.texi (Completion Options): Mention `initals' completion style.
+
+2009-12-29 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi: Import GDB Graphical Interface description from
+ EMACS_23_1_RC.
+
2009-12-24 Chong Yidong <cyd@stupidchicken.com>
* emacs.texi (Top): Update node listing.
View
248 doc/emacs/building.texi
@@ -356,8 +356,10 @@ listed in the buffer named @samp{*grep*}.
@item M-x grep-find
@itemx M-x find-grep
@itemx M-x rgrep
-Run @code{grep} via @code{find}, with user-specified arguments, and
-collect output in the buffer named @samp{*grep*}.
+Run @code{grep} via @code{find}, and collect output in the buffer
+named @samp{*grep*}.
+@item M-x zrgrep
+Run @code{zgrep} and collect output in the buffer named @samp{*grep*}.
@item M-x kill-grep
Kill the running @code{grep} subprocess.
@end table
@@ -400,21 +402,22 @@ the @code{find-grep-dired} command, in @ref{Dired and Find}.
@findex lgrep
@findex rgrep
+@findex zrgrep
The commands @kbd{M-x lgrep} (local grep) and @kbd{M-x rgrep}
(recursive grep) are more user-friendly versions of @code{grep} and
@code{grep-find}, which prompt separately for the regular expression
to match, the files to search, and the base directory for the search.
-Case sensitivity of the search is controlled by the
-current value of @code{case-fold-search}.
+Case sensitivity of the search is controlled by the current value of
+@code{case-fold-search}. The command @kbd{M-x zrgrep} is similar to
+@code{rgrep}, but it calls @code{zgrep} instead of @code{grep} to
+search the contents of gzipped files.
-These commands build the shell commands based on the variables
+ These commands build the shell commands based on the variables
@code{grep-template} (for @code{lgrep}) and @code{grep-find-template}
-(for @code{rgrep}).
+(for @code{rgrep}). The files to search can use aliases defined in
+the variable @code{grep-files-aliases}.
-The files to search can use aliases defined in the variable
-@code{grep-files-aliases}.
-
-Subdirectories listed in the variable
+ Subdirectories listed in the variable
@code{grep-find-ignored-directories} such as those typically used by
various version control systems, like CVS and arch, are automatically
skipped by @code{rgrep}.
@@ -854,12 +857,11 @@ multiple programs within one Emacs session.
* Source Buffers:: Use the mouse in the fringe/margin to
control your program.
* Breakpoints Buffer:: A breakpoint control panel.
-* Threads Buffer:: Displays your threads.
* Stack Buffer:: Select a frame from the call stack.
* Other GDB-UI Buffers:: Input/output, locals, registers,
assembler, threads and memory buffers.
* Watch Expressions:: Monitor variable values in the speedbar.
-* Multithreaded Debugging:: Debugging programs with several threads.
+* Reverse Debugging:: Execute and reverse debug your program.
@end menu
@node GDB-UI Layout
@@ -884,7 +886,7 @@ displays the following frame layout:
|--------------------------------+--------------------------------+
| Primary Source buffer | I/O buffer for debugged pgm |
|--------------------------------+--------------------------------+
-| Stack buffer | Breakpoints/Thread buffer |
+| Stack buffer | Breakpoints/Threads buffer |
+--------------------------------+--------------------------------+
@end group
@end smallexample
@@ -1012,92 +1014,10 @@ Visit the source line for the current breakpoint
Visit the source line for the breakpoint you click on.
@end table
-@vindex gdb-show-threads-by-default
When @code{gdb-many-windows} is non-@code{nil}, the breakpoints buffer
shares its window with the threads buffer. To switch from one to the
other click with @kbd{Mouse-1} on the relevant button in the header
-line, or press @kbd{TAB} inside that buffer. If
-@code{gdb-show-threads-by-default} is non-@code{nil}, the threads
-buffer, rather than the breakpoints buffer, is shown at start up.
-
-@node Threads Buffer
-@subsubsection Threads Buffer
-
-@findex gdb-select-thread
-The threads buffer displays a summary of all threads currently in your
-program (@pxref{Threads, Threads, Debugging programs with multiple
-threads, gdb, The GNU debugger}). Move point to any thread in the list
-and press @key{RET} to select it (@code{gdb-select-thread}) and
-display the associated source in the primary source buffer.
-Alternatively, click @kbd{Mouse-2} on a thread to select it. Contents
-of all GDB buffers are updated whenever you select a thread.
-
- You can customize variables under @code{gdb-buffers} group to select
-fields included in threads buffer.
-
-@table @code
-@item gdb-thread-buffer-verbose-names
-@vindex gdb-thread-buffer-verbose-names
-Show long thread names like @samp{Thread 0x4e2ab70 (LWP 1983)} in
-threads buffer.
-
-@item gdb-thread-buffer-arguments
-@vindex gdb-thread-buffer-arguments
-Show arguments of thread top frames in threads buffer.
-
-@item gdb-thread-buffer-locations
-@vindex gdb-thread-buffer-locations
-Show file information or library names in threads buffer.
-
-@item gdb-thread-buffer-addresses
-@vindex gdb-thread-buffer-addresses
-Show addresses for thread frames in threads buffer.
-@end table
-
- It’s possible to observe information for several threads
-simultaneously (in addition to buffers which show information for
-currently selected thread) using the following keys from the threads
-buffer.
-
-@table @kbd
-@item d
-@kindex d @r{(GDB threads buffer)}
-@findex gdb-display-disassembly-for-thread
-Display disassembly buffer for the thread at current line.
-(@code{gdb-display-disassembly-for-thread})
-
-@item f
-@kindex f @r{(GDB threads buffer)}
-@findex gdb-display-stack-for-thread
-Display stack buffer for the thread at current line.
-(@code{gdb-display-stack-for-thread}).
-
-@item l
-@kindex l @r{(GDB threads buffer)}
-@findex gdb-display-locals-for-thread
-Display locals buffer for the thread at current line.
-(@code{gdb-display-locals-for-thread}).
-
-@item r
-@kindex r @r{(GDB threads buffer)}
-@findex gdb-display-registers-for-thread
-Display registers buffer for the thread at current line.
-(@code{gdb-display-registers-for-thread}).
-@end table
-
-Pressing their upper-case counterparts, @kbd{D}, @kbd{F} ,@kbd{L} and
-@kbd{R} displays the corresponding buffer in a new frame.
-
- When you create a buffer showing information about some specific
-thread, it becomes bound to that thread and keeps showing actual
-information while you debug your program. Every GDB buffer contains a
-number of thread it shows information for in its mode name. Thread
-number is also included in the buffer name of bound buffers to prevent
-buffer names clashing.
-
-Further commands are available in the threads buffer which depend on the
-mode of GDB that is used for controlling execution of your program.
-(@pxref{Multithreaded Debugging, Stopping and Starting Multi-threaded Programs}).
+line.
@node Stack Buffer
@subsubsection Stack Buffer
@@ -1134,7 +1054,7 @@ as are the commands to send signals to the debugged program.
@item Locals Buffer
The locals buffer displays the values of local variables of the
current frame for simple data types (@pxref{Frame Info, Frame Info,
-Information on a frame, gdb, The GNU debugger}). Press @key{RET} or
+Information on a frame, gdb, The GNU debugger}). Press @key{RET} or
click @kbd{Mouse-2} on the value if you want to edit it.
Arrays and structures display their type only. With GDB 6.4 or later,
@@ -1153,12 +1073,27 @@ With GDB 6.4 or later, recently changed register values display with
press @key{SPC} to toggle the display of floating point registers
(@code{toggle-gdb-all-registers}).
-@item Disassembly Buffer
-The disassembly buffer displays the current frame as machine code. An
+@item Assembler Buffer
+The assembler buffer displays the current frame as machine code. An
arrow points to the current instruction, and you can set and remove
breakpoints as in a source buffer. Breakpoint icons also appear in
the fringe or margin.
+@item Threads Buffer
+@findex gdb-threads-select
+The threads buffer displays a summary of all threads currently in your
+program (@pxref{Threads, Threads, Debugging programs with multiple
+threads, gdb, The GNU debugger}). Move point to any thread in the
+list and press @key{RET} to select it (@code{gdb-threads-select}) and
+display the associated source in the primary source buffer.
+Alternatively, click @kbd{Mouse-2} on a thread to select it. If the
+locals buffer is visible, its contents update to display the variables
+that are local in the new thread.
+
+When there is more than one main thread and the threads buffer is
+present, Emacs displays the selected thread number in the mode line of
+many of the GDB-UI Buffers.
+
@item Memory Buffer
The memory buffer lets you examine sections of program memory
(@pxref{Memory, Memory, Examining memory, gdb, The GNU debugger}).
@@ -1171,9 +1106,8 @@ size for these data items.
When @code{gdb-many-windows} is non-@code{nil}, the threads buffer
shares its window with the breakpoints buffer, and the locals buffer
-with the registers buffer. To switch from one to the other click with
-@kbd{Mouse-1} on the relevant button in the header line or press
-@kbd{TAB} inside the buffer.
+with the registers buffer. To switch from one to the other click with
+@kbd{Mouse-1} on the relevant button in the header line.
@node Watch Expressions
@subsubsection Watch Expressions
@@ -1241,96 +1175,26 @@ expressions updates, set @code{gdb-speedbar-auto-raise} to
non-@code{nil}. This can be useful if you are debugging with a full
screen Emacs frame.
-@node Multithreaded Debugging
-@subsubsection Stopping and Starting Multi-threaded Programs
-@cindex Multithreaded debugging in GDB
-
-@subsubheading All-stop Debugging
-
-In all-stop mode, whenever your program stops, @emph{all} threads of
-execution stop. Likewise, whenever you restart the program, all
-threads start executing. @xref{All-Stop Mode, , All-Stop Mode, gdb,
-The GNU debugger}. You can enable this behaviour in Emacs by setting
-@code{gdb-non-stop-setting} to @code{nil} before starting a debugging
-session.
-
-@subsubheading Non-stop Debugging
-@cindex Non-stop debugging in GDB
-
-For some multi-threaded targets, GDB supports a further mode of
-operation in which you can examine stopped program threads in the
-debugger while other threads continue to execute freely.
-@xref{Non-Stop Mode, , Non-Stop Mode, gdb, The GNU debugger}.
-This is referred to as @dfn{non-stop} mode.
-
-Versions of GDB prior to 7.0 do not support non-stop mode and it does
-not work on all targets. In such cases, Emacs uses all-stop mode
-regardless of the value of @code{gdb-non-stop-setting}.
-
-@vindex gdb-non-stop-setting
-If the variable @code{gdb-non-stop-setting} is non-@code{nil} (the
-default value), Emacs tries to start GDB in non-stop mode. Note that
-GDB debugging session needs to be restarted for change of this setting
-to take effect.
-
-@vindex gdb-switch-when-another-stopped
-When a thread stops in non-stop mode, Emacs automatically switches to
-that thread. It may be undesirable to allow switching of current
-thread when some other stopped thread is already selected. Set
-@code{gdb-switch-when-another-stopped} to @code{nil} to prevent this.
-
-@vindex gdb-switch-reasons
-Emacs can decide whether or not to switch to the stopped thread
-depending on the reason which caused the stop. Customize
-@code{gdb-switch-reasons} to select stop reasons which make Emacs
-switch thread.
-
-@vindex gdb-stopped-hooks
-The variable @code{gdb-stopped-hooks} allows you to execute your
-functions whenever some thread stops.
-
- In non-stop mode, you can switch between different modes for GUD
-execution control commands.
-
-@vindex gdb-gud-control-all-threads
-@table @dfn
-@item Non-stop/A
-
-When @code{gdb-gud-control-all-threads} is @code{t} (the default
-value), interruption and continuation commands apply to all threads,
-so you can halt or continue all your threads with one command using
-@code{gud-stop-subjob} and @code{gud-cont}, respectively. The
-@samp{Go} button is shown on the toolbar when at least one thread is
-stopped, whereas @samp{Stop} button is shown when at least one thread
-is running.
-
-@item Non-stop/T
-
-When @code{gdb-gud-control-all-threads} is @code{nil}, only the
-current thread is stopped/continued. @samp{Go} and @samp{Stop}
-buttons on the GUD toolbar are shown depending on the state of current
-thread.
-@end table
-
-You can change the current value of @code{gdb-gud-control-all-threads}
-from the tool bar or from @samp{GUD->GDB-MI} menu.
-
- Stepping commands always apply to the current thread.
-
-@subsubheading Fine Thread Control
-
- In non-stop mode, you can interrupt/continue your threads without
-selecting them. Hitting @kbd{i} in threads buffer interrupts thread
-under point, @kbd{c} continues it, @kbd{s} steps through. More such
-commands may be added in the future.
-
-Combined with creating bound buffers for any thread, this allows you
-to change and track state of many threads in the same time.
-
- Note that when you interrupt a thread, it stops with @samp{signal
-received} reason. If that reason is included in your
-@code{gdb-switch-reasons} (it is by default), Emacs will switch to
-that thread.
+@node Reverse Debugging
+@subsubsection Reverse Debugging
+
+ The GDB tool bar shares many buttons with the other GUD debuggers
+for tasks like stepping and printing expressions. It also has a
+further set of buttons that allow reverse debugging (@pxref{Process
+Record and Replay, , ,gdb, The GNU debugger}). This is useful when it
+takes a long time to reproduce the conditions where your program fails
+or for transient problems, like race conditions in multi-threaded
+programs, where a failure might otherwise be hard to reproduce.
+
+To use reverse debugging, set a breakpoint slightly before the
+location of interest and run your program to that point. Enable
+process recording by clicking on the record button. At this point, a
+new set of buttons appear. These buttons allow program execution in
+the reverse direction. Run your program over the code where the
+problem occurs, and then use the new set of buttons to retrace your
+steps, examine values, and analyze the problem. When analysis is
+complete, turn off process recording by clicking on the record button
+again.
@node Executing Lisp
@section Executing Lisp Expressions
View
20 doc/emacs/emacs.texi
@@ -5,7 +5,7 @@
@c The edition number appears in several places in this file
@set EDITION Sixteenth
-@set EMACSVER 23.1.90
+@set EMACSVER 23.1.91
@copying
This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
@@ -745,16 +745,14 @@ Running Debuggers Under Emacs
GDB Graphical Interface
-* GDB-UI Layout:: Control the number of displayed buffers.
-* Source Buffers:: Use the mouse in the fringe/margin to
- control your program.
-* Breakpoints Buffer:: A breakpoint control panel.
-* Threads Buffer:: Displays your threads.
-* Stack Buffer:: Select a frame from the call stack.
-* Other GDB-UI Buffers:: Input/output, locals, registers,
- assembler, threads and memory buffers.
-* Watch Expressions:: Monitor variable values in the speedbar.
-* Multithreaded Debugging:: Debugging programs with several threads.
+* GDB-UI Layout:: Control the number of displayed buffers.
+* Source Buffers:: Use the mouse in the fringe/margin to
+ control your program.
+* Breakpoints Buffer:: A breakpoint control panel.
+* Stack Buffer:: Select a frame from the call stack.
+* Other GDB-UI Buffers::Input/output, locals, registers,
+ assembler, threads and memory buffers.
+* Watch Expressions:: Monitor variable values in the speedbar.
Maintaining Large Programs
View
13 doc/emacs/mini.texi
@@ -456,12 +456,13 @@ default value is @code{nil}).
using the variable @code{completion-styles}. Its value should be a
list of symbols, each representing a @dfn{completion style}; valid
style symbols are @code{basic}, @code{partial-completion},
-@code{emacs22}, and @code{emacs21}. When completing, Emacs attempts
-to use the first completion style in the list; if this does not return
-any completion alternatives, it tries the next completion style in the
-list, and so on. The completion rules described in @ref{Completion
-Commands} correspond to the default value of @code{completion-styles},
-which is @code{(basic partial-completion emacs22)}.
+@code{emacs22}, @code{emacs21}, and @code{initials}. When completing,
+Emacs attempts to use the first completion style in the list; if this
+does not return any completion alternatives, it tries the next
+completion style in the list, and so on. The completion rules
+described in @ref{Completion Commands} correspond to the default value
+of @code{completion-styles}, which is @code{(basic partial-completion
+emacs22)}.
@cindex Icomplete mode
@findex icomplete-mode
View
8 doc/emacs/misc.texi
@@ -485,6 +485,9 @@ Run the shell command line @var{cmd} and display the output
Run the shell command line @var{cmd} with region contents as input;
optionally replace the region with the output
(@code{shell-command-on-region}).
+@item M-& @var{cmd} @key{RET}
+Run the shell command line @var{cmd} asynchronously, and display the
+output (@code{async-shell-command}).
@item M-x shell
Run a subshell with input and output through an Emacs buffer.
You can then give commands interactively.
@@ -542,6 +545,11 @@ command's exit status (0 means success), when it is called from a Lisp
program. You do not get any status information for an asynchronous
command, since it hasn't finished yet when @code{shell-command} returns.
+ You can also type @kbd{M-&} (@code{async-shell-command}) to execute
+a shell command asynchronously. This behaves exactly like calling
+@code{shell-command} with @samp{&}, except that you do not need to add
+the @samp{&} to the shell command line.
+
@kindex M-|
@findex shell-command-on-region
@kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but
View
37 doc/lispref/ChangeLog
@@ -1,3 +1,36 @@
+2010-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Avoid dubious uses of save-excursions.
+ * positions.texi (Excursions): Recommend the use of
+ save-current-buffer if applicable.
+ * text.texi (Clickable Text): Fix the example code which used
+ save-excursion in a naive way which sometimes preserves point and
+ sometimes not.
+ * variables.texi (Creating Buffer-Local):
+ * os.texi (Session Management):
+ * display.texi (GIF Images):
+ * control.texi (Cleanups): Use (save|with)-current-buffer.
+
+2010-01-02 Eli Zaretskii <eliz@gnu.org>
+
+ * modes.texi (Example Major Modes): Fix indentation. (Bug#5195)
+
+2010-01-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * nonascii.texi (Text Representations, Character Codes)
+ (Converting Representations, Explicit Encoding)
+ (Translation of Characters): Use hex notation consistently.
+ (Character Sets): Fix map-charset-chars doc (Bug#5197).
+
+2010-01-01 Chong Yidong <cyd@stupidchicken.com>
+
+ * loading.texi (Where Defined): Make it clearer that these are
+ loaded files (Bug#5068).
+
+2009-12-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * minibuf.texi (Completion Styles): Document `initials' style.
+
2009-12-25 Chong Yidong <cyd@stupidchicken.com>
* frames.texi (Resources): Describe inhibit-x-resources.
@@ -1098,7 +1131,7 @@
2009-01-08 Jason Rumney <jasonr@gnu.org>
* frames.texi (Pointer Shape): Clarify that only X supports
- changing the standard pointer shapes. (Bug#1485)
+ changing the standard pointer shapes. (Bug#1485)
2009-01-08 Chong Yidong <cyd@stupidchicken.com>
@@ -8355,7 +8388,7 @@
;; End:
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009 Free Software Foundation, Inc.
+ 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
View
2 doc/lispref/book-spine.texinfo
@@ -11,7 +11,7 @@
@center @titlefont{GNU Emacs Lisp Reference Manual}
@sp 5
@center GNU
-@center Emacs Version 23.1.90
+@center Emacs Version 23.1.91
@center for Unix Users
@sp 5
View
7 doc/lispref/control.texi
@@ -1255,9 +1255,8 @@ make sure to kill it before finishing:
@smallexample
@group
-(save-excursion
- (let ((buffer (get-buffer-create " *temp*")))
- (set-buffer buffer)
+(let ((buffer (get-buffer-create " *temp*")))
+ (with-current-buffer buffer
(unwind-protect
@var{body-form}
(kill-buffer buffer))))
@@ -1269,7 +1268,7 @@ You might think that we could just as well write @code{(kill-buffer
(current-buffer))} and dispense with the variable @code{buffer}.
However, the way shown above is safer, if @var{body-form} happens to
get an error after switching to a different buffer! (Alternatively,
-you could write another @code{save-excursion} around @var{body-form},
+you could write a @code{save-current-buffer} around @var{body-form},
to ensure that the temporary buffer becomes current again in time to
kill it.)
View
3 doc/lispref/display.texi
@@ -4394,8 +4394,7 @@ every 0.1 seconds.
(when (= idx max)
(setq idx 0))
(let ((img (create-image file nil :image idx)))
- (save-excursion
- (set-buffer buffer)
+ (with-current-buffer buffer
(goto-char (point-min))
(unless first-time (delete-char 1))
(insert-image img))
View
2 doc/lispref/elisp.texi
@@ -8,7 +8,7 @@
@c Please remember to update the edition number in README as well.
@c And also the copies in vol1.texi and vol2.texi.
@set VERSION 3.0
-@set EMACSVER 23.1.90
+@set EMACSVER 23.1.91
@set DATE July 2009
@c in general, keep the following line commented out, unless doing a
View
15 doc/lispref/loading.texi
@@ -823,13 +823,14 @@ without extension.
@code{load-history}.
@defvar load-history
-This variable's value is an alist connecting library file names with the
-names of functions and variables they define, the features they provide,
-and the features they require.
-
-Each element is a list and describes one library. The @sc{car} of the
-list is the absolute file name of the library, as a string. The rest
-of the list elements have these forms:
+This value of this variable is an alist that associates the names of
+loaded library files with the names of the functions and variables
+they defined, as well as the features they provided or required.
+
+Each element in this alist describes one loaded library (including
+libraries that are preloaded at startup). It is a list whose @sc{car}
+is the absolute file name of the library (a string). The rest of the
+list elements have these forms:
@table @code
@item @var{var}
View
8 doc/lispref/minibuf.texi
@@ -1589,13 +1589,13 @@ procedure is used for listing completions, via the
@var{all-completions} functions.
@end defvar
- By default, @code{completion-styles-alist} contains four pre-defined
+ By default, @code{completion-styles-alist} contains five pre-defined
completion styles: @code{basic}, a basic completion style;
@code{partial-completion}, which does partial completion (completing
each word in the input separately); @code{emacs22}, which performs
-completion according to the rules used in Emacs 22; and
-@code{emacs21}, which performs completion according to the rules used
-in Emacs 21.
+completion according to the rules used in Emacs 22; @code{emacs21},
+which performs completion according to the rules used in Emacs 21; and
+@code{initials}, which completes acronyms and initialisms.
@node Programmed Completion
@subsection Programmed Completion
View
4 doc/lispref/modes.texi
@@ -1062,8 +1062,8 @@ correspondingly more complicated. Here are excerpts from
;; @r{part of symbol names but not words.}
;; @r{(The digit @samp{0} is @code{48} in the @acronym{ASCII} character set.)}
(while (< i ?0)
- (modify-syntax-entry i "_ " table)
- (setq i (1+ i)))
+ (modify-syntax-entry i "_ " table)
+ (setq i (1+ i)))
;; @r{@dots{} similar code follows for other character ranges.}
@end group
@group
View
54 doc/lispref/nonascii.texi
@@ -46,12 +46,12 @@ in most any known written language.
follows the @dfn{Unicode Standard}. The Unicode Standard assigns a
unique number, called a @dfn{codepoint}, to each and every character.
The range of codepoints defined by Unicode, or the Unicode
-@dfn{codespace}, is @code{0..10FFFF} (in hex), inclusive. Emacs
-extends this range with codepoints in the range @code{110000..3FFFFF},
-which it uses for representing characters that are not unified with
-Unicode and raw 8-bit bytes that cannot be interpreted as characters
-(the latter occupy the range @code{3FFF80..3FFFFF}). Thus, a
-character codepoint in Emacs is a 22-bit integer number.
+@dfn{codespace}, is @code{0..#x10FFFF} (in hexadecimal notation),
+inclusive. Emacs extends this range with codepoints in the range
+@code{#x110000..#x3FFFFF}, which it uses for representing characters
+that are not unified with Unicode and @dfn{raw 8-bit bytes} that
+cannot be interpreted as characters. Thus, a character codepoint in
+Emacs is a 22-bit integer number.
@cindex internal representation of characters
@cindex characters, representation in buffers and strings
@@ -189,8 +189,8 @@ of characters as @var{string}. If @var{string} is a multibyte string,
it is returned unchanged. The function assumes that @var{string}
includes only @acronym{ASCII} characters and raw 8-bit bytes; the
latter are converted to their multibyte representation corresponding
-to the codepoints in the @code{3FFF80..3FFFFF} area (@pxref{Text
-Representations, codepoints}).
+to the codepoints @code{#x3FFF80} through @code{#x3FFFFF}, inclusive
+(@pxref{Text Representations, codepoints}).
@end defun
@defun string-to-unibyte string
@@ -271,15 +271,19 @@ contains no text properties.
The unibyte and multibyte text representations use different
character codes. The valid character codes for unibyte representation
-range from 0 to 255---the values that can fit in one byte. The valid
-character codes for multibyte representation range from 0 to 4194303
-(#x3FFFFF). In this code space, values 0 through 127 are for
-@acronym{ASCII} characters, and values 128 through 4194175 (#x3FFF7F)
-are for non-@acronym{ASCII} characters. Values 0 through 1114111
-(#10FFFF) correspond to Unicode characters of the same codepoint;
-values 1114112 (#110000) through 4194175 (#x3FFF7F) represent
-characters that are not unified with Unicode; and values 4194176
-(#x3FFF80) through 4194303 (#x3FFFFF) represent eight-bit raw bytes.
+range from 0 to @code{#xFF} (255)---the values that can fit in one
+byte. The valid character codes for multibyte representation range
+from 0 to @code{#x3FFFFF}. In this code space, values 0 through
+@code{#x7F} (127) are for @acronym{ASCII} characters, and values
+@code{#x80} (128) through @code{#x3FFF7F} (4194175) are for
+non-@acronym{ASCII} characters.
+
+ Emacs character codes are a superset of the Unicode standard.
+Values 0 through @code{#x10FFFF} (1114111) correspond to Unicode
+characters of the same codepoint; values @code{#x110000} (1114112)
+through @code{#x3FFF7F} (4194175) represent characters that are not
+unified with Unicode; and values @code{#x3FFF80} (4194176) through
+@code{#x3FFFFF} (4194303) represent eight-bit raw bytes.
@defun characterp charcode
This returns @code{t} if @var{charcode} is a valid character, and
@@ -540,7 +544,7 @@ and strings.
@cindex @code{eight-bit}, a charset
Emacs defines several special character sets. The character set
@code{unicode} includes all the characters whose Emacs code points are
-in the range @code{0..10FFFF}. The character set @code{emacs}
+in the range @code{0..#x10FFFF}. The character set @code{emacs}
includes all @acronym{ASCII} and non-@acronym{ASCII} characters.
Finally, the @code{eight-bit} charset includes the 8-bit raw bytes;
Emacs uses it to represent raw bytes encountered in text.
@@ -628,12 +632,12 @@ that fits the second argument of @code{decode-char} above. If
The following function comes in handy for applying a certain
function to all or part of the characters in a charset:
-@defun map-charset-chars function charset &optional arg from to
+@defun map-charset-chars function charset &optional arg from-code to-code
Call @var{function} for characters in @var{charset}. @var{function}
is called with two arguments. The first one is a cons cell
@code{(@var{from} . @var{to})}, where @var{from} and @var{to}
indicate a range of characters contained in charset. The second
-argument is the optional argument @var{arg}.
+argument passed to @var{function} is @var{arg}.
By default, the range of codepoints passed to @var{function} includes
all the characters in @var{charset}, but optional arguments
@@ -751,7 +755,7 @@ This variable automatically becomes buffer-local when set.
@defun make-translation-table-from-vector vec
This function returns a translation table made from @var{vec} that is
-an array of 256 elements to map byte values 0 through 255 to
+an array of 256 elements to map bytes (values 0 through #xFF) to
characters. Elements may be @code{nil} for untranslated bytes. The
returned table has a translation table for reverse mapping in the
first extra slot, and the value @code{1} in the second extra slot.
@@ -1562,10 +1566,10 @@ in this section.
text. They logically consist of a series of byte values; that is, a
series of @acronym{ASCII} and eight-bit characters. In unibyte
buffers and strings, these characters have codes in the range 0
-through 255. In a multibyte buffer or string, eight-bit characters
-have character codes higher than 255 (@pxref{Text Representations}),
-but Emacs transparently converts them to their single-byte values when
-you encode or decode such text.
+through #xFF (255). In a multibyte buffer or string, eight-bit
+characters have character codes higher than #xFF (@pxref{Text
+Representations}), but Emacs transparently converts them to their
+single-byte values when you encode or decode such text.
The usual way to read a file into a buffer as a sequence of bytes, so
you can decode the contents explicitly, is with
View
2 doc/lispref/os.texi
@@ -2182,7 +2182,7 @@ Emacs is restarted by the session manager.
@group
(defun save-yourself-test ()
- (insert "(save-excursion
+ (insert "(save-current-buffer
(switch-to-buffer \"*scratch*\")
(insert \"I am restored\"))")
nil)
View
12 doc/lispref/positions.texi
@@ -806,7 +806,9 @@ after the completion of the excursion.
The forms for saving and restoring the configuration of windows are
described elsewhere (see @ref{Window Configurations}, and @pxref{Frame
-Configurations}).
+Configurations}). When only the identity of the current buffer needs
+to be saved and restored, it is preferable to use
+@code{save-current-buffer} instead.
@defspec save-excursion body@dots{}
@cindex mark excursion
@@ -817,10 +819,10 @@ buffer and the values of point and the mark in it, evaluates
point and the mark. All three saved values are restored even in case of
an abnormal exit via @code{throw} or error (@pxref{Nonlocal Exits}).
-The @code{save-excursion} special form is the standard way to switch
-buffers or move point within one part of a program and avoid affecting
-the rest of the program. It is used more than 4000 times in the Lisp
-sources of Emacs.
+The @code{save-excursion} special form is the standard way to move
+point within one part of a program and avoid affecting the rest of the
+program. It is used more than 4000 times in the Lisp sources
+of Emacs.
@code{save-excursion} does not save the values of point and the mark for
other buffers, so changes in other buffers remain in effect after
View
13 doc/lispref/text.texi
@@ -3524,13 +3524,12 @@ following command:
(defun dired-mouse-find-file-other-window (event)
"In Dired, visit the file or directory name you click on."
(interactive "e")
- (let (window pos file)
- (save-excursion
- (setq window (posn-window (event-end event))
- pos (posn-point (event-end event)))
- (if (not (windowp window))
- (error "No file chosen"))
- (set-buffer (window-buffer window))
+ (let ((window (posn-window (event-end event)))
+ (pos (posn-point (event-end event)))
+ file)
+ (if (not (windowp window))
+ (error "No file chosen"))
+ (with-current-buffer (window-buffer window)
(goto-char pos)
(setq file (dired-get-file-for-visit)))
(if (file-directory-p file)
View
3 doc/lispref/variables.texi
@@ -1239,8 +1239,7 @@ foo
@group
;; @r{In buffer @samp{b2}, the value hasn't changed.}
-(save-excursion
- (set-buffer "b2")
+(with-current-buffer "b2"
foo)
@result{} 5
@end group
View
2 doc/lispref/vol1.texi
@@ -27,7 +27,7 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
@set VERSION 3.0
-@set EMACSVER 23.1.90
+@set EMACSVER 23.1.91
@set DATE July 2009
@dircategory Emacs
View
2 doc/lispref/vol2.texi
@@ -27,7 +27,7 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
@set VERSION 3.0
-@set EMACSVER 23.1.90
+@set EMACSVER 23.1.91
@set DATE July 2009
@dircategory Emacs
View
2 doc/man/ChangeLog
@@ -42,7 +42,7 @@
2008-11-27 Dan Nicolaescu <dann@ics.uci.edu>
- * emacsclient.1: Mention -nw and -c. Fix the character for --help.
+ * emacsclient.1: Mention -nw and -c. Fix the character for --help.
Swap the order of -e and -n to follow the order displayed by --help.
2008-03-13 Glenn Morris <rgm@gnu.org>
View
2 doc/man/emacs.1
@@ -1,5 +1,5 @@
.\" See section COPYING for copyright and redistribution information.
-.TH EMACS 1 "2007 April 13" "GNU Emacs 23.1.90"
+.TH EMACS 1 "2007 April 13" "GNU Emacs 23.1.91"
.
.
.SH NAME
View
12 doc/misc/ChangeLog
@@ -1,3 +1,13 @@
+2010-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gnus.texi (Posting Styles): Use with-current-buffer.
+ * calc.texi (Defining Simple Commands): Prefer save-current-buffer.
+
+2010-01-02 Kevin Ryde <user42@zip.com.au>
+
+ * eieio.texi (Naming Conventions): Correction to xref on elisp
+ coding conventions, is "Tips" node not "Standards".
+
2009-12-24 Chong Yidong <cyd@stupidchicken.com>
* calc.texi (General Mode Commands): Calc file should be in .emacs.d.
@@ -6543,7 +6553,7 @@
;; End:
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
View
2 doc/misc/calc.texi
@@ -31968,7 +31968,7 @@ the function with code that looks roughly like this:
@smallexample
(let ((calc-command-flags nil))
(unwind-protect
- (save-excursion
+ (save-current-buffer
(calc-select-buffer)
@emph{body of function}
@emph{renumber stack}
View
12 doc/misc/eieio.texi
@@ -11,7 +11,7 @@
@copying
This manual documents EIEIO, an object framework for Emacs Lisp.
-Copyright @copyright{} 2007, 2008, 2009 Free Software Foundation, Inc.
+Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -1776,11 +1776,11 @@ This signal is called when an attempt to reference @var{slot} in
@comment node-name, next, previous, up
@chapter Naming Conventions
-@pxref{Standards,,,elisp,GNU Emacs Lisp Reference Manual}, for a
-description of Emacs Lisp programming conventions. These conventions
-help ensure that Emacs packages work nicely one another, so an
-@eieio{}-based program should follow them. Here are some conventions
-that apply specifically to @eieio{}-based programs:
+@xref{Tips,,Tips and Conventions,elisp,GNU Emacs Lisp Reference
+Manual}, for a description of Emacs Lisp programming conventions.
+These conventions help ensure that Emacs packages work nicely one
+another, so an @eieio{}-based program should follow them. Here are
+some conventions that apply specifically to @eieio{}-based programs:
@itemize
View
2 doc/misc/faq.texi
@@ -5,7 +5,7 @@
@c %**end of header
@c This is used in many places
-@set VER 23.1.90
+@set VER 23.1.91
@c This file is maintained by Romain Francoise <rfrancoise@gnu.org>.
@c Feel free to install changes without prior permission (but I'd
View
5 doc/misc/gnus.texi
<
@@ -10,7 +10,7 @@
@copying
Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document