Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/ Now on revision 102786. ------------------------------------------------------------ revno: 102786 committer: Glenn Morris branch nick: trunk timestamp: Fri 2011-01-07 18:53:50 -0800 message: Add --no-site-lisp to more Makefiles. * leim/makefile.w32-in (RUN_EMACS): * leim/Makefile.in (RUN-EMACS): Add --no-site-lisp. * lib-src/Makefile.in (EMACSOPT): Add --no-site-lisp. * lisp/makefile.w32-in (EMACSOPT): Add --no-site-lisp. diff: === modified file 'leim/ChangeLog' --- leim/ChangeLog 2011-01-08 02:41:14 +0000 +++ leim/ChangeLog 2011-01-08 02:53:50 +0000 @@ -1,6 +1,9 @@ 2011-01-08 Glenn Morris * makefile.w32-in (RUN_EMACS): + * Makefile.in (RUN-EMACS): Add --no-site-lisp. + + * makefile.w32-in (RUN_EMACS): * Makefile.in (RUN-EMACS): -batch implies --no-init-file. 2010-08-28 Kenichi Handa === modified file 'leim/Makefile.in' --- leim/Makefile.in 2011-01-08 02:41:14 +0000 +++ leim/Makefile.in 2011-01-08 02:53:50 +0000 @@ -48,7 +48,7 @@ # How to run Emacs. RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \ - ${BUILT-EMACS} -batch --no-site-file + ${BUILT-EMACS} -batch --no-site-file --no-site-lisp # Subdirectories to be made if ${srcdir} is different from the current # directory. === modified file 'leim/makefile.w32-in' --- leim/makefile.w32-in 2011-01-08 02:41:14 +0000 +++ leim/makefile.w32-in 2011-01-08 02:53:50 +0000 @@ -37,7 +37,7 @@ buildlisppath=$(CURDIR)/$(dot)$(dot)/lisp # How to run Emacs. -RUN_EMACS = "$(BUILT_EMACS)" -batch --no-site-file +RUN_EMACS = "$(BUILT_EMACS)" -batch --no-site-file --no-site-lisp # Set EMACSLOADPATH correctly (already defined in environment). EMACSLOADPATH=$(buildlisppath) === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2011-01-08 02:34:26 +0000 +++ lib-src/ChangeLog 2011-01-08 02:53:50 +0000 @@ -1,5 +1,7 @@ 2011-01-08 Glenn Morris + * Makefile.in (EMACSOPT): Add --no-site-lisp. + * Makefile.in (EMACSOPT): Remove --multibyte, it does nothing any more. 2011-01-02 Glenn Morris === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2011-01-08 02:34:26 +0000 +++ lib-src/Makefile.in 2011-01-08 02:53:50 +0000 @@ -25,7 +25,7 @@ # Following ../lisp/Makefile.in. EMACS = ../src/emacs -EMACSOPT = -batch --no-site-file +EMACSOPT = -batch --no-site-file --no-site-lisp # ==================== Things `configure' will edit ==================== === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-01-08 02:41:14 +0000 +++ lisp/ChangeLog 2011-01-08 02:53:50 +0000 @@ -1,5 +1,7 @@ 2011-01-08 Glenn Morris + * makefile.w32-in (EMACSOPT): Add --no-site-lisp. + * makefile.w32-in (EMACSOPT): -batch implies --no-init-file. 2011-01-07 Sam Steingold === modified file 'lisp/makefile.w32-in' --- lisp/makefile.w32-in 2011-01-08 02:41:14 +0000 +++ lisp/makefile.w32-in 2011-01-08 02:53:50 +0000 @@ -34,7 +34,7 @@ # Command line flags for Emacs. -EMACSOPT = -batch --no-site-file +EMACSOPT = -batch --no-site-file --no-site-lisp # Extra flags to pass to the byte compiler BYTE_COMPILE_EXTRA_FLAGS = ------------------------------------------------------------ revno: 102785 committer: Glenn Morris branch nick: trunk timestamp: Fri 2011-01-07 18:49:27 -0800 message: -batch implies -q. * etc/PROBLEMS: -batch implies -q. * msdos/sedleim.inp (RUN-EMACS): -batch imples --no-init-file. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2011-01-07 10:39:54 +0000 +++ etc/ChangeLog 2011-01-08 02:49:27 +0000 @@ -1,3 +1,7 @@ +2011-01-08 Glenn Morris + + * PROBLEMS: -batch implies -q. + 2011-01-07 Tassilo Horn * themes/tsdh-light-theme.el, themes/tsdh-dark-theme.el: Remove === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2010-10-31 14:40:01 +0000 +++ etc/PROBLEMS 2011-01-08 02:49:27 +0000 @@ -1,7 +1,7 @@ Known Problems with GNU Emacs Copyright (C) 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -102,7 +102,7 @@ The following command will print any duplicate Lisp files that are present in load-path: - emacs -q -batch -f list-load-path-shadows + emacs -batch -f list-load-path-shadows If this command prints any file names, some of these files are stale, and should be deleted or their directories removed from your @@ -3244,5 +3244,3 @@ mode: outline paragraph-separate: "[ ]*$" end: - -arch-tag: 49fc0d95-88cb-4715-b21c-f27fb5a4764a === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2011-01-07 10:43:57 +0000 +++ msdos/ChangeLog 2011-01-08 02:49:27 +0000 @@ -1,3 +1,7 @@ +2011-01-08 Glenn Morris + + * sedleim.inp (RUN-EMACS): -batch implies --no-init-file. + 2011-01-07 Eli Zaretskii * sed2v2.inp (HAVE___BUILTIN_UNWIND_INIT): Define. @@ -1084,11 +1088,10 @@ ;; Local Variables: ;; coding: utf-8 -;; add-log-time-zone-rule: t ;; End: Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1104,5 +1107,3 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . - -;;; arch-tag: b602fbb5-3776-4053-8de2-03da33c29d44 === modified file 'msdos/sedleim.inp' --- msdos/sedleim.inp 2010-08-22 21:15:20 +0000 +++ msdos/sedleim.inp 2011-01-08 02:49:27 +0000 @@ -3,7 +3,7 @@ # ---------------------------------------------------------------------- # # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # @@ -34,7 +34,7 @@ /RUN-EMACS *=/,/^$/c\ export EMACSLOADPATH=${buildlisppath}\ -RUN-EMACS = ${BUILT-EMACS} -batch --no-init-file --no-site-file +RUN-EMACS = ${BUILT-EMACS} -batch --no-site-file /^ cd ../c\ ${MAKE} -C ../src ${MFLAGS} emacs ------------------------------------------------------------ revno: 102784 committer: Glenn Morris branch nick: trunk timestamp: Fri 2011-01-07 18:41:14 -0800 message: In Makefiles, -batch implies -q. * leim/makefile.w32-in (RUN_EMACS): * leim/Makefile.in (RUN-EMACS): -batch implies --no-init-file. * lisp/makefile.w32-in (EMACSOPT): -batch implies --no-init-file. * src/makefile.w32-in ($(EMACS)): * src/Makefile.in (emacs$(EXEEXT)): -batch implies -q. diff: === modified file 'leim/ChangeLog' --- leim/ChangeLog 2010-09-01 07:13:21 +0000 +++ leim/ChangeLog 2011-01-08 02:41:14 +0000 @@ -1,3 +1,8 @@ +2011-01-08 Glenn Morris + + * makefile.w32-in (RUN_EMACS): + * Makefile.in (RUN-EMACS): -batch implies --no-init-file. + 2010-08-28 Kenichi Handa * quail/japanese.el (quail-japanese-update-translation): Fix === modified file 'leim/Makefile.in' --- leim/Makefile.in 2010-08-22 21:15:20 +0000 +++ leim/Makefile.in 2011-01-08 02:41:14 +0000 @@ -1,9 +1,9 @@ # Makefile for leim subdirectory in GNU Emacs. # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 +# 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation, Inc. # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 +# 2006, 2007, 2008, 2009, 2010, 2011 # National Institute of Advanced Industrial Science and Technology (AIST) # Registration Number H14PRO021 @@ -48,7 +48,7 @@ # How to run Emacs. RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \ - ${BUILT-EMACS} -batch --no-init-file --no-site-file + ${BUILT-EMACS} -batch --no-site-file # Subdirectories to be made if ${srcdir} is different from the current # directory. === modified file 'leim/makefile.w32-in' --- leim/makefile.w32-in 2010-08-22 21:15:20 +0000 +++ leim/makefile.w32-in 2011-01-08 02:41:14 +0000 @@ -1,5 +1,5 @@ # -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft W32 API. -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation, Inc. # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, # 2006, 2007 @@ -37,7 +37,7 @@ buildlisppath=$(CURDIR)/$(dot)$(dot)/lisp # How to run Emacs. -RUN_EMACS = "$(BUILT_EMACS)" -batch --no-init-file --no-site-file +RUN_EMACS = "$(BUILT_EMACS)" -batch --no-site-file # Set EMACSLOADPATH correctly (already defined in environment). EMACSLOADPATH=$(buildlisppath) === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-01-07 19:07:29 +0000 +++ lisp/ChangeLog 2011-01-08 02:41:14 +0000 @@ -1,3 +1,7 @@ +2011-01-08 Glenn Morris + + * makefile.w32-in (EMACSOPT): -batch implies --no-init-file. + 2011-01-07 Sam Steingold * w32-fns.el (w32-shell-name): Use `shell-file-name' instead of === modified file 'lisp/makefile.w32-in' --- lisp/makefile.w32-in 2010-10-01 11:45:16 +0000 +++ lisp/makefile.w32-in 2011-01-08 02:41:14 +0000 @@ -1,6 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -# 2009, 2010 Free Software Foundation, Inc. +# 2009, 2010, 2011 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -34,7 +34,7 @@ # Command line flags for Emacs. -EMACSOPT = -batch --no-init-file --no-site-file +EMACSOPT = -batch --no-site-file # Extra flags to pass to the byte compiler BYTE_COMPILE_EXTRA_FLAGS = === modified file 'src/ChangeLog' --- src/ChangeLog 2011-01-08 02:31:57 +0000 +++ src/ChangeLog 2011-01-08 02:41:14 +0000 @@ -1,5 +1,8 @@ 2011-01-08 Glenn Morris + * makefile.w32-in ($(EMACS)): + * Makefile.in (emacs$(EXEEXT)): -batch implies -q. + * xdisp.c (syms_of_xdisp) : Move from here... * emacs.c (syms_of_emacs) : ...to here. === modified file 'src/Makefile.in' --- src/Makefile.in 2010-12-04 19:50:39 +0000 +++ src/Makefile.in 2011-01-08 02:41:14 +0000 @@ -1,7 +1,7 @@ # src/Makefile for GNU Emacs. # Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -612,12 +612,12 @@ emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) if test "$(CANNOT_DUMP)" = "yes"; then \ ln -f temacs$(EXEEXT) emacs$(EXEEXT); \ - EMACSLOADPATH=$(lispsource) ./emacs -q -batch \ + EMACSLOADPATH=$(lispsource) ./emacs -batch \ -f list-load-path-shadows || true; \ else \ LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \ ln -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ - ./emacs -q -batch -f list-load-path-shadows || true; \ + ./emacs -batch -f list-load-path-shadows || true; \ fi ## We run make-docfile twice because the command line may get too long === modified file 'src/makefile.w32-in' --- src/makefile.w32-in 2010-10-13 23:08:58 +0000 +++ src/makefile.w32-in 2011-01-08 02:41:14 +0000 @@ -1,6 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -# 2008, 2009, 2010 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -165,7 +165,7 @@ emacs: stamp_BLD $(EMACS) $(EMACS): $(DOC) $(TEMACS) "$(THISDIR)/$(BLD)/temacs.exe" -batch -l loadup dump - -"$(THISDIR)/$(BLD)/emacs.exe" -q -batch -f list-load-path-shadows + -"$(THISDIR)/$(BLD)/emacs.exe" -batch -f list-load-path-shadows # # The undumped executable ------------------------------------------------------------ revno: 102783 committer: Glenn Morris branch nick: trunk timestamp: Fri 2011-01-07 18:34:26 -0800 message: * lib-src/Makefile.in (EMACSOPT): Remove --multibyte, it does nothing any more. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2011-01-02 20:28:40 +0000 +++ lib-src/ChangeLog 2011-01-08 02:34:26 +0000 @@ -1,3 +1,7 @@ +2011-01-08 Glenn Morris + + * Makefile.in (EMACSOPT): Remove --multibyte, it does nothing any more. + 2011-01-02 Glenn Morris * ebrowse.c (version) : @@ -7423,12 +7427,11 @@ ;; Local Variables: ;; coding: utf-8 -;; add-log-time-zone-rule: t ;; End: Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -7444,5 +7447,3 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . - -;;; arch-tag: 2d979296-954c-448e-95c1-b46d134513dc === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2010-10-23 02:46:06 +0000 +++ lib-src/Makefile.in 2011-01-08 02:34:26 +0000 @@ -1,6 +1,6 @@ # Makefile for lib-src subdirectory in GNU Emacs. # Copyright (C) 1985, 1987, 1988, 1993, 1994, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010 +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -25,7 +25,7 @@ # Following ../lisp/Makefile.in. EMACS = ../src/emacs -EMACSOPT = -batch --no-site-file --multibyte +EMACSOPT = -batch --no-site-file # ==================== Things `configure' will edit ==================== ------------------------------------------------------------ revno: 102782 committer: Glenn Morris branch nick: trunk timestamp: Fri 2011-01-07 18:31:57 -0800 message: Fix bug#7750. * src/xdisp.c (syms_of_xdisp) : Move from here... * src/emacs.c (syms_of_emacs) : ...to here. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-01-07 22:33:32 +0000 +++ src/ChangeLog 2011-01-08 02:31:57 +0000 @@ -1,3 +1,8 @@ +2011-01-08 Glenn Morris + + * xdisp.c (syms_of_xdisp) : Move from here... + * emacs.c (syms_of_emacs) : ...to here. + 2011-01-07 Andreas Schwab * image.c (imagemagick_load_image): Fix some resource leaks and === modified file 'src/emacs.c' --- src/emacs.c 2011-01-07 03:10:39 +0000 +++ src/emacs.c 2011-01-08 02:31:57 +0000 @@ -178,6 +178,8 @@ Lisp_Object Qfile_name_handler_alist; +Lisp_Object Qrisky_local_variable; + /* Current and previous system locales for messages and time. */ Lisp_Object Vsystem_messages_locale; Lisp_Object Vprevious_system_messages_locale; @@ -2407,6 +2409,8 @@ { Qfile_name_handler_alist = intern_c_string ("file-name-handler-alist"); staticpro (&Qfile_name_handler_alist); + Qrisky_local_variable = intern_c_string ("risky-local-variable"); + staticpro (&Qrisky_local_variable); #ifndef CANNOT_DUMP defsubr (&Sdump_emacs); === modified file 'src/xdisp.c' --- src/xdisp.c 2011-01-02 20:28:40 +0000 +++ src/xdisp.c 2011-01-08 02:31:57 +0000 @@ -2,7 +2,7 @@ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, - 2010 Free Software Foundation, Inc. + 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -336,8 +336,6 @@ /* Pointer shapes */ Lisp_Object Qarrow, Qhand, Qtext; -Lisp_Object Qrisky_local_variable; - /* Holds the list (error). */ Lisp_Object list_of_error; @@ -26581,8 +26579,6 @@ staticpro (&Qarrow); Qtext = intern_c_string ("text"); staticpro (&Qtext); - Qrisky_local_variable = intern_c_string ("risky-local-variable"); - staticpro (&Qrisky_local_variable); Qinhibit_free_realized_faces = intern_c_string ("inhibit-free-realized-faces"); staticpro (&Qinhibit_free_realized_faces); ------------------------------------------------------------ revno: 102781 committer: Andreas Schwab branch nick: emacs timestamp: Fri 2011-01-07 23:33:32 +0100 message: Fix some resource leaks in ImageMagick image loader * src/image.c (imagemagick_load_image): Fix some resource leaks and error handling. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-01-07 17:34:02 +0000 +++ src/ChangeLog 2011-01-07 22:33:32 +0000 @@ -1,3 +1,8 @@ +2011-01-07 Andreas Schwab + + * image.c (imagemagick_load_image): Fix some resource leaks and + error handling. + 2011-01-07 Chong Yidong * fns.c (Fyes_or_no_p): Accept format string args. === modified file 'src/image.c' --- src/image.c 2011-01-03 19:35:59 +0000 +++ src/image.c 2011-01-07 22:33:32 +0000 @@ -1,7 +1,7 @@ /* Functions for image support on window system. Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -7561,9 +7561,15 @@ exception = AcquireExceptionInfo (); im_image = ReadImage (image_info, exception); - CatchException (exception); + DestroyExceptionInfo (exception); - image_wand = NewMagickWandFromImage (im_image); + if (im_image != NULL) + { + image_wand = NewMagickWandFromImage (im_image); + status = MagickTrue; + } + else + status = MagickFalse; } else { @@ -7666,11 +7672,6 @@ width, height, and then transfer ownerwship to Emacs. */ height = MagickGetImageHeight (image_wand); width = MagickGetImageWidth (image_wand); - if (status == MagickFalse) - { - image_error ("Imagemagick image get size failed", Qnil, Qnil); - goto imagemagick_error; - } if (! check_image_size (f, width, height)) { @@ -7690,6 +7691,9 @@ if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap)) { +#ifdef COLOR_TABLE_SUPPORT + free_color_table (); +#endif image_error("Imagemagick X bitmap allocation failure", Qnil, Qnil); goto imagemagick_error; } @@ -7702,6 +7706,10 @@ iterator = NewPixelIterator (image_wand); if (iterator == (PixelIterator *) NULL) { +#ifdef COLOR_TABLE_SUPPORT + free_color_table (); +#endif + x_destroy_x_image (ximg); image_error ("Imagemagick pixel iterator creation failed", Qnil, Qnil); goto imagemagick_error; @@ -7736,6 +7744,9 @@ if (!x_create_x_image_and_pixmap (f, width, height, imagedepth, &ximg, &img->pixmap)) { +#ifdef COLOR_TABLE_SUPPORT + free_color_table (); +#endif image_error("Imagemagick X bitmap allocation failure", Qnil, Qnil); goto imagemagick_error; } @@ -7798,6 +7809,7 @@ return 1; imagemagick_error: + DestroyMagickWand (image_wand); /* TODO more cleanup. */ image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil); return 0; ------------------------------------------------------------ revno: 102780 [merge] committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-01-07 12:43:33 -0800 message: * install-sh, mkinstalldirs, move-if-change: Update from master diff: === modified file 'ChangeLog' --- ChangeLog 2011-01-07 19:39:48 +0000 +++ ChangeLog 2011-01-07 20:42:11 +0000 @@ -1,5 +1,8 @@ 2011-01-07 Paul Eggert + * install-sh, mkinstalldirs, move-if-change: Update from master + source in gnulib. + * config.guess, config.sub: Updated from master source. 2011-01-05 Andreas Schwab === modified file 'admin/ChangeLog' --- admin/ChangeLog 2011-01-07 19:23:35 +0000 +++ admin/ChangeLog 2011-01-07 20:42:11 +0000 @@ -1,4 +1,10 @@ -2011-01-02 Paul Eggert +2011-01-07 Paul Eggert + + * notes/copyright: There's only one install-sh, not two, so fix a + typo claiming that there's two. Add move-if-change to the list of + GPL files imported from gnulib. + +2011-01-07 Paul Eggert * notes/copyright: Report status more accurately for non-GPL files. Report copyright status more accurately for mkinstalldirs, === modified file 'admin/notes/copyright' --- admin/notes/copyright 2011-01-07 19:23:35 +0000 +++ admin/notes/copyright 2011-01-07 20:42:11 +0000 @@ -138,8 +138,7 @@ m4/getopt.m4 - copyright FSF, with MIT-like license -/install-sh -lispintro/install-sh +install-sh - this file is copyright MIT, which is OK. Leave the copyright alone. mkinstalldirs @@ -621,6 +620,7 @@ alone (may import them from Gnulib again). These are: Gnulib: + move-if-change src/getloadavg.c src/gmalloc.c src/md5.c === modified file 'install-sh' --- install-sh 2010-12-13 15:27:36 +0000 +++ install-sh 2011-01-07 20:42:11 +0000 @@ -1,250 +1,524 @@ -#! /bin/sh -# +#!/bin/sh # install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. + +scriptversion=2010-02-06.18; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. +# from scratch. +nl=' +' +IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then - src=$1 + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi - shift - continue;; + trap '' 0;; + esac;; esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: === modified file 'mkinstalldirs' --- mkinstalldirs 2010-12-13 15:27:36 +0000 +++ mkinstalldirs 2011-01-07 20:42:11 +0000 @@ -1,7 +1,7 @@ #! /bin/sh # mkinstalldirs --- make directory hierarchy -scriptversion=2006-05-11.19 +scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 @@ -150,3 +150,13 @@ done exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: === modified file 'move-if-change' --- move-if-change 2010-12-13 15:27:36 +0000 +++ move-if-change 2011-01-07 20:42:11 +0000 @@ -1,15 +1,77 @@ #!/bin/sh -if -test -r $2 -then -if -cmp $1 $2 > /dev/null -then -echo $2 is unchanged -rm -f $1 -else -mv -f $1 $2 -fi -else -mv -f $1 $2 -fi +# Like mv $1 $2, but if the files are the same, just delete $1. +# Status is zero if successful, nonzero otherwise. + +VERSION='2007-09-28 23:10'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +# Copyright (C) 2002-2007, 2009-2011 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +usage="usage: $0 SOURCE DEST" + +help="$usage + or: $0 OPTION +If SOURCE is different than DEST, then move it to DEST; else remove SOURCE. + + --help display this help and exit + --version output version information and exit + +Report bugs to ." + +version=`expr "$VERSION" : '\([^ ]*\)'` +version="move-if-change (gnulib) $version +Copyright (C) 2007 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + + +for arg +do + case $arg in + --help | --hel | --he | --h) + exec echo "$help" ;; + --version | --versio | --versi | --vers | --ver | --ve | --v) + exec echo "$version" ;; + --) + shift + break ;; + -*) + echo "$0: invalid option: $arg" >&2 + exit 1 ;; + *) + break ;; + esac +done + +test $# = 2 || { echo "$0: $usage" >&2; exit 1; } + +if test -r "$2" && cmp -s -- "$1" "$2"; then + rm -f -- "$1" +else + mv -f -- "$1" "$2" +fi + +## Local Variables: +## eval: (add-hook 'write-file-hooks 'time-stamp) +## time-stamp-start: "VERSION='" +## time-stamp-format: "%:y-%02m-%02d %02H:%02M" +## time-stamp-time-zone: "UTC" +## time-stamp-end: "'; # UTC" +## End: ------------------------------------------------------------ revno: 102779 [merge] committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-01-07 11:50:52 -0800 message: * texinfo.tex: Update to version 2010-12-23.17 diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2011-01-07 03:04:21 +0000 +++ doc/misc/ChangeLog 2011-01-07 19:49:15 +0000 @@ -1,3 +1,8 @@ +2011-01-07 Paul Eggert + + * texinfo.tex: Update to version 2010-12-23.17 from gnulib, + which in turn is copied from ftp://tug.org/tex/. + 2011-01-04 Jan Moringen * dbus.texi (Receiving Method Calls): Describe new optional === modified file 'doc/misc/texinfo.tex' --- doc/misc/texinfo.tex 2009-10-29 16:46:52 +0000 +++ doc/misc/texinfo.tex 2011-01-07 19:49:15 +0000 @@ -3,11 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2009-08-14.15} +\def\texinfoversion{2010-12-23.17} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 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 texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -65,7 +65,6 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} - \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. @@ -93,14 +92,13 @@ \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ +\let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top -{\catcode`\'=\active -\global\let\ptexquoteright'}% Math-mode def from plain.tex. -\let\ptexraggedright=\raggedright +{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. @@ -199,36 +197,7 @@ % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % -\def\finalout{\overfullrule=0pt} - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} +\def\finalout{\overfullrule=0pt } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, @@ -267,7 +236,6 @@ \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} -% For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks @@ -599,85 +567,6 @@ \newhelp\EMsimple{Press RETURN to continue.} -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt\char64}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. -\def\mylbrace {{\tt\char123}} -\def\myrbrace {{\tt\char125}} -\let\{=\mylbrace -\let\}=\myrbrace -\begingroup - % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux/toc files. - \catcode`\{ = \other \catcode`\} = \other - \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\! = 0 \catcode`\\ = \other - !gdef!lbracecmd[\{]% - !gdef!rbracecmd[\}]% - !gdef!lbraceatcmd[@{]% - !gdef!rbraceatcmd[@}]% -!endgroup - -% @comma{} to avoid , parsing problems. -\let\comma = , - -% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. -\let\, = \c -\let\dotaccent = \. -\def\ringaccent#1{{\accent23 #1}} -\let\tieaccent = \t -\let\ubaraccent = \b -\let\udotaccent = \d - -% Other special characters: @questiondown @exclamdown @ordf @ordm -% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. -\def\questiondown{?`} -\def\exclamdown{!`} -\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} -\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} - -% Dotless i and dotless j, used for accents. -\def\imacro{i} -\def\jmacro{j} -\def\dotless#1{% - \def\temp{#1}% - \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi - \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi - \else \errmessage{@dotless can be used only with i or j}% - \fi\fi -} - -% The \TeX{} logo, as in plain, but resetting the spacing so that a -% period following counts as ending a sentence. (Idea found in latex.) -% -\edef\TeX{\TeX \spacefactor=1000 } - -% @LaTeX{} logo. Not quite the same results as the definition in -% latex.ltx, since we use a different font for the raised A; it's most -% convenient for us to use an explicitly smaller font, rather than using -% the \scriptstyle font (since we don't reset \scriptstyle and -% \scriptscriptstyle). -% -\def\LaTeX{% - L\kern-.36em - {\setbox0=\hbox{T}% - \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% - \kern-.15em - \TeX -} - % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -873,7 +762,7 @@ % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion -% class. WHICH is `l' or `r'. +% class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} @@ -920,6 +809,36 @@ \temp } +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). This command +% is not documented, not supported, and doesn't work. +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} + % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} @@ -1095,109 +1014,6 @@ } -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math outputs its argument in math mode. -% -% One complication: _ usually means subscripts, but it could also mean -% an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ active, and distinguish by seeing if the current family is \slfam, -% which is what @var uses. -{ - \catcode`\_ = \active - \gdef\mathunderscore{% - \catcode`\_=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% - } -} -% Another complication: we want \\ (and @\) to output a \ character. -% FYI, plain.tex uses \\ as a temporary control sequence (why?), but -% this is not advertised and we don't care. Texinfo does not -% otherwise define @\. -% -% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. -\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} -% -\def\math{% - \tex - \mathunderscore - \let\\ = \mathbackslash - \mathactive - % make the texinfo accent commands work in math mode - \let\"=\ddot - \let\'=\acute - \let\==\bar - \let\^=\hat - \let\`=\grave - \let\u=\breve - \let\v=\check - \let\~=\tilde - \let\dotaccent=\dot - $\finishmath -} -\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. - -% Some active characters (such as <) are spaced differently in math. -% We have to reset their definitions in case the @math was an argument -% to a command which sets the catcodes (such as @item or @section). -% -{ - \catcode`^ = \active - \catcode`< = \active - \catcode`> = \active - \catcode`+ = \active - \catcode`' = \active - \gdef\mathactive{% - \let^ = \ptexhat - \let< = \ptexless - \let> = \ptexgtr - \let+ = \ptexplus - \let' = \ptexquoteright - } -} - -% Some math mode symbols. -\def\bullet{$\ptexbullet$} -\def\geq{\ifmmode \ge\else $\ge$\fi} -\def\leq{\ifmmode \le\else $\le$\fi} -\def\minus{\ifmmode -\else $-$\fi} - -% @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in the cm -% typewriter fonts as three actual period characters; on the other hand, -% in other typewriter fonts three periods are wider than 1.5em. So do -% whichever is larger. -% -\def\dots{% - \leavevmode - \setbox0=\hbox{...}% get width of three periods - \ifdim\wd0 > 1.5em - \dimen0 = \wd0 - \else - \dimen0 = 1.5em - \fi - \hbox to \dimen0{% - \hskip 0pt plus.25fil - .\hskip 0pt plus1fil - .\hskip 0pt plus1fil - .\hskip 0pt plus.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \dots - \spacefactor=\endofsentencespacefactor -} - -% @comma{} is so commas can be inserted into text without messing up -% Texinfo's parsing. -% -\let\comma = , - % @refill is a no-op. \let\refill=\relax @@ -1492,6 +1308,7 @@ \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % % Read toc silently, to get counts of subentries for \pdfoutline. + \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% @@ -2105,8 +1922,8 @@ \font\reducedsy=cmsy10 \def\reducedecsize{1000} -% reset the current fonts -\textfonts +\textleading = 13.2pt % line spacing for 11pt CM +\textfonts % reset the current fonts \rm } % end of 11pt text font size definitions @@ -2236,11 +2053,9 @@ \font\reducedsy=cmsy9 \def\reducedecsize{0900} -% reduce space between paragraphs -\divide\parskip by 2 - -% reset the current fonts -\textfonts +\divide\parskip by 2 % reduce space between paragraphs +\textleading = 12pt % line spacing for 10pt CM +\textfonts % reset the current fonts \rm } % end of 10pt text font size definitions @@ -2249,8 +2064,9 @@ % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % +\def\xiword{11} \def\xword{10} -\def\xiword{11} +\def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% @@ -2308,7 +2124,7 @@ \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% - \resetmathfonts \setleading{25pt}} + \resetmathfonts \setleading{27pt}} \def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl @@ -2460,14 +2276,19 @@ \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright +% \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright +% +\let\markupsetuplqsamp \markupsetcodequoteleft +\let\markupsetuprqsamp \markupsetcodequoteright +% \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright +% \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright -\let\markupsetuplqsamp \markupsetnoligaturesquoteleft \let\markupsetuplqkbd \markupsetnoligaturesquoteleft % Allow an option to not replace quotes with a regular directed right @@ -2505,27 +2326,40 @@ % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic - -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else - \ptexslash\fi\fi\fi} -\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} - -% like \smartslanted except unconditionally uses \ttsl. +% Font commands. + +% #1 is the font command (\sl or \it), #2 is the text to slant. +% If we are in a monospaced environment, however, 1) always use \ttsl, +% and 2) do not add an italic correction. +\def\dosmartslant#1#2{% + \ifusingtt + {{\ttsl #2}\let\next=\relax}% + {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% + \next +} +\def\smartslanted{\dosmartslant\sl} +\def\smartitalic{\dosmartslant\it} + +% Output an italic correction unless \next (presumed to be the following +% character) is such as not to need one. +\def\smartitaliccorrection{% + \ifx\next,% + \else\ifx\next-% + \else\ifx\next.% + \else\ptexslash + \fi\fi\fi} + +% like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. -\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} +\def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? -\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} +\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \let\i=\smartitalic \let\slanted=\smartslanted -\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} +\def\var#1{\smartslanted{#1}} \let\dfn=\smartslanted \let\emph=\smartitalic @@ -2819,8 +2653,188 @@ \fi } +% @asis just yields its argument. Used with @table, for example. +% +\def\asis#1{#1} + +% @math outputs its argument in math mode. +% +% One complication: _ usually means subscripts, but it could also mean +% an actual _ character, as in @math{@var{some_variable} + 1}. So make +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode`\_ = \active + \gdef\mathunderscore{% + \catcode`\_=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} +% Another complication: we want \\ (and @\) to output a math (or tt) \. +% FYI, plain.tex uses \\ as a temporary control sequence (for no +% particular reason), but this is not advertised and we don't care. +% +% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. +\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} +% +\def\math{% + \tex + \mathunderscore + \let\\ = \mathbackslash + \mathactive + % make the texinfo accent commands work in math mode + \let\"=\ddot + \let\'=\acute + \let\==\bar + \let\^=\hat + \let\`=\grave + \let\u=\breve + \let\v=\check + \let\~=\tilde + \let\dotaccent=\dot + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \catcode`' = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + \let' = \ptexquoteright + } +} + \message{glyphs,} +% and logos. + +% @@ prints an @. +\def\@{\char64 } + +% Used to generate quoted braces. Unless we're in typewriter, use +% \ecfont because the CM text fonts do not have braces, and we don't +% want to switch into math. +\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} +\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} +\let\{=\mylbrace +\let\}=\myrbrace +\begingroup + % Definitions to produce \{ and \} commands for indices, + % and @{ and @} for the aux/toc files. + \catcode`\{ = \other \catcode`\} = \other + \catcode`\[ = 1 \catcode`\] = 2 + \catcode`\! = 0 \catcode`\\ = \other + !gdef!lbracecmd[\{]% + !gdef!rbracecmd[\}]% + !gdef!lbraceatcmd[@{]% + !gdef!rbraceatcmd[@}]% +!endgroup + +% @comma{} to avoid , parsing problems. +\let\comma = , + +% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent +% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. +\let\, = \ptexc +\let\dotaccent = \ptexdot +\def\ringaccent#1{{\accent23 #1}} +\let\tieaccent = \ptext +\let\ubaraccent = \ptexb +\let\udotaccent = \d + +% Other special characters: @questiondown @exclamdown @ordf @ordm +% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. +\def\questiondown{?`} +\def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} + +% Dotless i and dotless j, used for accents. +\def\imacro{i} +\def\jmacro{j} +\def\dotless#1{% + \def\temp{#1}% + \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi + \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi + \else \errmessage{@dotless can be used only with i or j}% + \fi\fi +} + +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) +% +\edef\TeX{\TeX \spacefactor=1000 } + +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). +% +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{% + \ifx\textnominalsize\xwordpt + % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. + % Revert to plain's \scriptsize, which is 7pt. + \count255=\the\fam $\fam\count255 \scriptstyle A$% + \else + % For 11pt, we can use our lllsize. + \selectfonts\lllsize A% + \fi + }% + \vss + }}% + \kern-.15em + \TeX +} + +% Some math mode symbols. +\def\bullet{$\ptexbullet$} +\def\geq{\ifmmode \ge\else $\ge$\fi} +\def\leq{\ifmmode \le\else $\le$\fi} +\def\minus{\ifmmode -\else $-$\fi} + +% @dots{} outputs an ellipsis using the current font. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. +% +\def\dots{% + \leavevmode + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em + \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil + }% +} + +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=\endofsentencespacefactor +} % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % @@ -3207,10 +3221,14 @@ \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\HEADINGSoff{% -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff +\def\headingsoff{% non-global headings elimination + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% +} + +\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting +\HEADINGSoff % it's the default + % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document @@ -3322,7 +3340,7 @@ \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil + \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % @@ -4134,11 +4152,14 @@ \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % - % Need these in case \tex is in effect and \{ is a \delimiter again. - % But can't use \lbracecmd and \rbracecmd because texindex assumes - % braces and backslashes are used only as delimiters. - \let\{ = \mylbrace - \let\} = \myrbrace + % Need these unexpandable (because we define \tt as a dummy) + % definitions when @{ or @} appear in index entry text. Also, more + % complicated, when \tex is in effect and \{ is a \delimiter again. + % We can't use \lbracecmd and \rbracecmd because texindex assumes + % braces and backslashes are used only as delimiters. Perhaps we + % should define @lbrace and @rbrace commands a la @comma. + \def\{{{\tt\char123}}% + \def\}{{\tt\char125}}% % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts @@ -4191,7 +4212,7 @@ \def\commondummies{% % % \definedummyword defines \#1 as \string\#1\space, thus effectively - % preventing its expansion. This is used only for control% words, + % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. @@ -4210,6 +4231,7 @@ \commondummiesnofonts % \definedummyletter\_% + \definedummyletter\-% % % Non-English letters. \definedummyword\AA @@ -4246,20 +4268,24 @@ \definedummyword\TeX % % Assorted special characters. + \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots + \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro + \definedummyword\expansion + \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright - \definedummyword\expansion + \definedummyword\leq \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds @@ -4316,7 +4342,9 @@ \definedummyword\b \definedummyword\i \definedummyword\r + \definedummyword\sansserif \definedummyword\sc + \definedummyword\slanted \definedummyword\t % % Commands that take arguments. @@ -4325,10 +4353,12 @@ \definedummyword\code \definedummyword\command \definedummyword\dfn + \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file + \definedummyword\indicateurl \definedummyword\kbd \definedummyword\key \definedummyword\math @@ -4356,7 +4386,7 @@ \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% - % Hopefully, all control words can become @asis. + % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \commondummiesnofonts @@ -4368,8 +4398,14 @@ % \def\ { }% \def\@{@}% - % how to handle braces? \def\_{\normalunderscore}% + \def\-{}% @- shouldn't affect sorting + % + % Unfortunately, texindex is not prepared to handle braces in the + % content at all. So for index sorting, we map @{ and @} to strings + % starting with |, since that ASCII character is between ASCII { and }. + \def\{{|a}% + \def\}{|b}% % % Non-English letters. \def\AA{AA}% @@ -4397,6 +4433,7 @@ % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) + \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% @@ -4406,10 +4443,12 @@ \def\error{error}% \def\euro{euro}% \def\expansion{==>}% + \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% + \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% @@ -4424,6 +4463,9 @@ \def\result{=>}% \def\textdegree{o}% % + \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax + \else \indexlquoteignore \fi + % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up @@ -4437,6 +4479,11 @@ \macrolist } +% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us +% ignore left quotes in the sort term. +{\catcode`\`=\active + \gdef\indexlquoteignore{\let`=\empty}} + \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? @@ -4694,7 +4741,6 @@ % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. -% % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% @@ -4731,10 +4777,17 @@ % columns. \vskip 0pt plus1pt % + % When reading the text of entry, convert explicit line breaks + % from @* into spaces. The user might give these in long section + % titles, for instance. + \def\*{\unskip\space\ignorespaces}% + \def\entrybreak{\hfil\break}% + % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } +\def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent @@ -4967,7 +5020,22 @@ \message{sectioning,} % Chapters, sections, etc. -% \unnumberedno is an oxymoron, of course. But we count the unnumbered +% Let's start with @part. +\outer\parseargdef\part{\partzzz{#1}} +\def\partzzz#1{% + \chapoddpage + \null + \vskip.3\vsize % move it down on the page a bit + \begingroup + \noindent \titlefonts\rmisbold #1\par % the text + \let\lastnode=\empty % no node to associate with + \writetocentry{part}{#1}{}% but put it in the toc + \headingsoff % no headline or footline on the part page + \chapoddpage + \endgroup +} + +% \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 @@ -5046,8 +5114,8 @@ \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. -% To achive this, remember the "biggest" unnum. sec. we are currently in: -\chardef\unmlevel = \maxseclevel +% To achieve this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. @@ -5072,8 +5140,8 @@ % The heading type: \def\headtype{#1}% \if \headtype U% - \ifnum \absseclevel < \unmlevel - \chardef\unmlevel = \absseclevel + \ifnum \absseclevel < \unnlevel + \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: @@ -5085,10 +5153,10 @@ \fi\fi \fi % Check for numbered within unnumbered: - \ifnum \absseclevel > \unmlevel + \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else - \chardef\unmlevel = 3 + \chardef\unnlevel = 3 \fi \fi % Now print the heading: @@ -5340,9 +5408,8 @@ \chappager \ifodd\pageno \else \begingroup - \evenheadline={\hfil}\evenfootline={\hfil}% - \oddheadline={\hfil}\oddfootline={\hfil}% - \hbox to 0pt{}% + \headingsoff + \null \chappager \endgroup \fi @@ -5785,6 +5852,7 @@ \def\summarycontents{% \startcontents{\putwordShortTOC}% % + \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry @@ -5840,6 +5908,19 @@ % The last argument is the page number. % The arguments in between are the chapter number, section number, ... +% Parts, in the main contents. Replace the part number, which doesn't +% exist, with an empty box. Let's hope all the numbers have the same width. +% Also ignore the page number, which is conventionally not printed. +\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} +\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} +% +% Parts, in the short toc. +\def\shortpartentry#1#2#3#4{% + \penalty-300 + \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip + \shortchapentry{{\bf #1}}{\numeralbox}{}{}% +} + % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % @@ -5929,9 +6010,9 @@ \message{environments,} % @foo ... @end foo. -% @tex ... @end tex escapes into raw Tex temporarily. +% @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. +% But \@ or @@ will get a plain @ character. \envdef\tex{% \setupmarkupstyle{tex}% @@ -5948,6 +6029,10 @@ \catcode`\'=\other \escapechar=`\\ % + % ' is active in math mode (mathcode"8000). So reset it, and all our + % other math active characters (just in case), to plain's definitions. + \mathactive + % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -6150,41 +6235,42 @@ } % We often define two environments, @foo and @smallfoo. -% Let's do it by one command: -\def\makedispenv #1#2{ - \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} - \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} +% Let's do it in one command. #1 is the env name, #2 the definition. +\def\makedispenvdef#1#2{% + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } -% Define two synonyms: -\def\maketwodispenvs #1#2#3{ - \makedispenv{#1}{#3} - \makedispenv{#2}{#3} +% Define two environment synonyms (#1 and #2) for an environment. +\def\maketwodispenvdef#1#2#3{% + \makedispenvdef{#1}{#3}% + \makedispenvdef{#2}{#3}% } - -% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. +% +% @lisp: indented, narrowed, typewriter font; +% @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % -\maketwodispenvs {lisp}{example}{% +\maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return + \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % -\makedispenv {display}{% +\makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % -\makedispenv{format}{% +\makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble @@ -6203,7 +6289,7 @@ \envdef\flushright{% \let\nonarrowing = t% \nonfillstart - \advance\leftskip by 0pt plus 1fill + \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak @@ -6238,6 +6324,8 @@ % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % +\makedispenvdef{quotation}{\quotationstart} +% \def\quotationstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt @@ -6253,17 +6341,6 @@ \parsearg\quotationlabel } -\envdef\quotation{% - \setnormaldispenv - \quotationstart -} - -\envdef\smallquotation{% - \setsmalldispenv - \quotationstart -} -\let\Esmallquotation = \Equotation - % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % @@ -6275,6 +6352,7 @@ \fi {\parskip=0pt \afterenvbreak}% } +\def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% @@ -6331,21 +6409,28 @@ % Setup for the @verbatim environment % -% Real tab expansion +% Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % -\def\starttabbox{\setbox0=\hbox\bgroup} +% We typeset each line of the verbatim in an \hbox, so we can handle +% tabs. The \global is in case the verbatim line starts with an accent, +% or some other command that starts with a begin-group. Otherwise, the +% entire \verbbox would disappear at the corresponding end-group, before +% it is typeset. Meanwhile, we can't have nested verbatim commands +% (can we?), so the \global won't be overwriting itself. +\newbox\verbbox +\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup - \dimen0=\wd0 % the width so far, or since the previous tab - \divide\dimen0 by\tabw - \multiply\dimen0 by\tabw % compute previous multiple of \tabw - \advance\dimen0 by\tabw % advance to next multiple of \tabw - \wd0=\dimen0 \box0 \starttabbox + \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab + \divide\dimen\verbbox by\tabw + \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw + \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw + \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup @@ -6354,15 +6439,16 @@ \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart - % Easiest (and conventionally used) font for verbatim - \tt - \def\par{\leavevmode\egroup\box0\endgraf}% + \tt % easiest (and conventionally used) font for verbatim + % The \leavevmode here is for blank lines. Otherwise, we would + % never \starttabox and the \egroup would end verbatim mode. + \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and - % make each space count - % must do in this order: + % make each space count. + % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } @@ -6505,7 +6591,7 @@ #1#2 \endheader % common ending: \interlinepenalty = 10000 - \advance\rightskip by 0pt plus 1fil + \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx @@ -6805,25 +6891,28 @@ } \fi -\def\scanmacro#1{% - \begingroup - \newlinechar`\^^M - \let\xeatspaces\eatspaces - % Undo catcode changes of \startcontents and \doprintindex - % When called from @insertcopying or (short)caption, we need active - % backslash to get it printed correctly. Previously, we had - % \catcode`\\=\other instead. We'll see whether a problem appears - % with macro expansion. --kasal, 19aug04 - \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ - % ... and \example - \spaceisspace - % - % Append \endinput to make sure that TeX does not see the ending newline. - % I've verified that it is necessary both for e-TeX and for ordinary TeX - % --kasal, 29nov03 - \scantokens{#1\endinput}% - \endgroup -} +\def\scanmacro#1{\begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % + % ... and for \example: + \spaceisspace + % + % The \empty here causes a following catcode 5 newline to be eaten + % as part of reading whitespace after a control sequence. It does + % not eat a catcode 13 newline. There's no good way to handle the + % two cases. See the Macro Details node in the manual for the + % workaround we currently have to recommend for macros and + % line-oriented commands. + \scantokens{#1\empty}% +\endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% @@ -6877,17 +6966,18 @@ % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active -% (as in normal texinfo). It is necessary to change the definition of \. - +% (as in normal texinfo). It is necessary to change the definition of \ +% to recognize macro arguments; this is the job of \mbodybackslash. +% % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. - +% % It's necessary to have hard CRs when the macro is executed. This is -% done by making ^^M (\endlinechar) catcode 12 when reading the macro +% done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. - -\def\scanctxt{% +% +\def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other @@ -6900,13 +6990,13 @@ \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } -\def\scanargctxt{% +\def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } -\def\macrobodyctxt{% +\def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other @@ -6914,30 +7004,48 @@ \usembodybackslash } -\def\macroargctxt{% +\def\macroargctxt{% used when scanning invocations \scanctxt - \catcode`\\=\other + \catcode`\\=0 } +% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" +% for the single characters \ { }. Thus, we end up with the "commands" +% that would be written @\ @{ @} in a Texinfo document. +% +% We already have @{ and @}. For @\, we define it here, and only for +% this purpose, to produce a typewriter backslash (so, the @\ that we +% define for @math can't be used with @macro calls): +% +\def\\{\normalbackslash}% +% +% We would like to do this for \, too, since that is what makeinfo does. +% But it is not possible, because Texinfo already has a command @, for a +% cedilla accent. Documents must use @comma{} instead. +% +% \anythingelse will almost certainly be an error of some kind. + % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. - +% {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} +\def\margbackslash#1{\char`\#1 } + \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% - \getargs{#1}% now \macname is the macname and \argl the arglist + \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments - \paramno=0% + \paramno=0 \else \expandafter\parsemargdef \argl;% \fi @@ -6986,28 +7094,32 @@ % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} -\def\getmacname #1 #2\relax{\macname={#1}} +\def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.blah for each blah -% in the params list, to be ##N where N is the position in that list. +% in the params list to be ##N where N is the position in that list. % That gets used by \mbodybackslash (above). - +% % We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something +% The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. -\def\parsemargdef#1;{\paramno=0\def\paramlist{}% - \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} +\def\parsemargdef#1;{% + \paramno=0\def\paramlist{}% + \let\hash\relax + \let\xeatspaces\relax + \parsemargdefxxx#1,;,% +} \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx - \advance\paramno by 1% + \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% @@ -7015,7 +7127,7 @@ % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) - +% \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% @@ -7026,6 +7138,7 @@ % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. +% \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive @@ -7089,7 +7202,8 @@ % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence -% as an argument (by \parsebrace or \parsearg) +% as an argument (by \parsebrace or \parsearg). +% \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else @@ -7099,7 +7213,8 @@ % @alias. % We need some trickery to remove the optional spaces around the equal -% sign. Just make them active and then expand them all to nothing. +% sign. Make them active and then expand them all to nothing. +% \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% @@ -7357,7 +7472,8 @@ \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% + {\toks0 = {#1}% avoid expansion of possibly-complex value + \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue @@ -7687,7 +7803,7 @@ % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. -% #6 is just the usual extra ignored arg for parsing this stuff. +% #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example @@ -8339,8 +8455,8 @@ \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} - \gdef^^ed{\'\i} - \gdef^^ee{\^\i} + \gdef^^ed{\'{\dotless{i}}} + \gdef^^ee{\^{\dotless{i}}} \gdef^^ef{\v d} % \gdef^^f0{\dh} @@ -8899,8 +9015,8 @@ % Prevent underfull vbox error messages. \vbadness = 10000 -% Don't be so finicky about underfull hboxes, either. -\hbadness = 2000 +% Don't be very finicky about underfull hboxes, either. +\hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 ------------------------------------------------------------ revno: 102778 [merge] committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-01-07 11:41:36 -0800 message: * config.guess, config.sub: Updated from master source. diff: === modified file 'ChangeLog' --- ChangeLog 2011-01-05 13:09:07 +0000 +++ ChangeLog 2011-01-07 19:39:48 +0000 @@ -1,3 +1,7 @@ +2011-01-07 Paul Eggert + + * config.guess, config.sub: Updated from master source. + 2011-01-05 Andreas Schwab * configure.in: Check for __builtin_unwind_init. @@ -8700,4 +8704,3 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . - === modified file 'config.guess' --- config.guess 2010-12-13 15:27:36 +0000 +++ config.guess 2011-01-07 19:39:48 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. -timestamp='2009-09-18' +timestamp='2010-09-24' # 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 @@ -56,8 +56,9 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -91,7 +92,7 @@ exit 1 fi -trap 'exit 1' 1 2 15 +trap 'exit 1' HUP INT TERM # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires @@ -105,7 +106,7 @@ set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || @@ -333,6 +334,9 @@ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -548,7 +552,7 @@ echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -807,12 +811,12 @@ i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) + *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -891,7 +895,15 @@ echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-gnu + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -918,11 +930,7 @@ #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) @@ -960,6 +968,9 @@ sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-tilera-linux-gnu + exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; @@ -1223,6 +1234,9 @@ *:QNX:*:4*) echo i386-pc-qnx exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; === modified file 'config.sub' --- config.sub 2010-12-13 15:27:36 +0000 +++ config.sub 2011-01-07 19:39:48 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. -timestamp='2009-10-07' +timestamp='2010-12-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -75,8 +75,9 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,8 +124,9 @@ # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -281,6 +283,7 @@ | moxie \ | mt \ | msp430 \ + | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ @@ -294,13 +297,23 @@ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ + | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -332,7 +345,7 @@ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ @@ -366,6 +379,7 @@ | mmix-* \ | mt-* \ | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ @@ -379,8 +393,10 @@ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ | tron-* \ + | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ @@ -478,6 +494,15 @@ basic_machine=powerpc-ibm os=-cnk ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos @@ -514,7 +539,7 @@ basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -837,6 +862,12 @@ np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -1071,17 +1102,10 @@ basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu ;; tile*) basic_machine=tile-unknown @@ -1254,6 +1278,9 @@ # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1275,8 +1302,8 @@ # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ @@ -1289,7 +1316,8 @@ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1430,6 +1458,8 @@ -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1470,6 +1500,15 @@ c4x-* | tic4x-*) os=-coff ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ------------------------------------------------------------ revno: 102777 [merge] committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-01-07 11:26:23 -0800 message: notes/copyright: Report status more accurately for non-GPL files. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2011-01-02 20:28:40 +0000 +++ admin/ChangeLog 2011-01-07 19:23:35 +0000 @@ -1,3 +1,9 @@ +2011-01-02 Paul Eggert + + * notes/copyright: Report status more accurately for non-GPL files. + Report copyright status more accurately for mkinstalldirs, + configure, m4/getopt.m4, and msdos/sed*.inp. + 2011-01-02 Eli Zaretskii * nt/README.W32: Update the information about PNG support libraries. === modified file 'admin/notes/copyright' --- admin/notes/copyright 2010-03-13 20:02:01 +0000 +++ admin/notes/copyright 2011-01-07 19:23:35 +0000 @@ -132,10 +132,17 @@ GNUstep/Emacs.base/Resources/Info-gnustep.plist `set-copyright' in admin.el will do all the above. +configure + - copyright FSF, with unlimited permission to copy, distribute and modify + +m4/getopt.m4 + - copyright FSF, with MIT-like license + /install-sh lispintro/install-sh - this file is copyright MIT, which is OK. Leave the copyright alone. +mkinstalldirs src/m/news-r6.h public domain, leave alone. @@ -329,6 +336,9 @@ is_exec.c alone. See the msdos/README file for the legal history of these files. +msdos/sed*.inp - These files are copyright FSF and distributed under +an MIT-like license. + oldXMenu/ Keep the "copyright.h" method used by X11, rather than moving the ------------------------------------------------------------ revno: 102776 committer: Sam Steingold branch nick: trunk timestamp: Fri 2011-01-07 14:07:29 -0500 message: * w32-fns.el (w32-shell-name): Use `shell-file-name' instead of the `explicit-shell-file-name' because that is the non-interactive shell. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-01-07 17:34:02 +0000 +++ lisp/ChangeLog 2011-01-07 19:07:29 +0000 @@ -1,3 +1,9 @@ +2011-01-07 Sam Steingold + + * w32-fns.el (w32-shell-name): Use `shell-file-name' instead of + the `explicit-shell-file-name' because that is the + non-interactive shell. + 2011-01-07 Chong Yidong * subr.el (y-or-n-p): Accept format string args. === modified file 'lisp/w32-fns.el' --- lisp/w32-fns.el 2010-10-24 22:04:45 +0000 +++ lisp/w32-fns.el 2011-01-07 19:07:29 +0000 @@ -57,7 +57,7 @@ (defun w32-shell-name () "Return the name of the shell being used." - (or (bound-and-true-p explicit-shell-file-name) + (or (bound-and-true-p shell-file-name) (getenv "ESHELL") (getenv "SHELL") (and (w32-using-nt) "cmd.exe") ------------------------------------------------------------ revno: 102775 committer: Chong Yidong branch nick: trunk timestamp: Fri 2011-01-07 12:34:02 -0500 message: Allow format args for y-or-n-p and yes-or-no-p. * lisp/subr.el (y-or-n-p): Accept format string args. * src/fns.c (Fyes_or_no_p): Accept format string args. diff: === modified file 'etc/NEWS' --- etc/NEWS 2011-01-07 03:10:39 +0000 +++ etc/NEWS 2011-01-07 17:34:02 +0000 @@ -662,6 +662,8 @@ * Lisp changes in Emacs 24.1 +** `y-or-n-p' and `yes-or-no-p' now accept format string arguments. + ** `image-library-alist' is renamed to `dynamic-library-alist'. The variable is now used to load all kind of supported dynamic libraries, not just image libraries. The previous name is still available as an === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-01-07 03:10:39 +0000 +++ lisp/ChangeLog 2011-01-07 17:34:02 +0000 @@ -1,3 +1,7 @@ +2011-01-07 Chong Yidong + + * subr.el (y-or-n-p): Accept format string args. + 2011-01-07 Glenn Morris * Makefile.in (EMACSOPT): Add --no-site-lisp. === modified file 'lisp/subr.el' --- lisp/subr.el 2010-12-15 08:16:53 +0000 +++ lisp/subr.el 2011-01-07 17:34:02 +0000 @@ -2011,6 +2011,55 @@ (push read unread-command-events) nil)))))) (set-advertised-calling-convention 'sit-for '(seconds &optional nodisp) "22.1") + +(defun y-or-n-p (prompt &rest args) + "Ask user a \"y or n\" question. Return t if answer is \"y\". +The argument PROMPT is the string to display to ask the question. +It should end in a space; `y-or-n-p' adds `(y or n) ' to it. +No confirmation of the answer is requested; a single character is enough. +Also accepts Space to mean yes, or Delete to mean no. \(Actually, it uses +the bindings in `query-replace-map'; see the documentation of that variable +for more information. In this case, the useful bindings are `act', `skip', +`recenter', and `quit'.\) + +Under a windowing system a dialog box will be used if `last-nonmenu-event' +is nil and `use-dialog-box' is non-nil." + ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state + ;; where all the keys were unbound (i.e. it somehow got triggered + ;; within read-key, apparently). I had to kill it. + (let ((answer 'recenter)) + (if (and (display-popup-menus-p) + (listp last-nonmenu-event) + use-dialog-box) + (setq answer + (x-popup-dialog t `(,prompt ("yes" . act) ("No" . skip)))) + (setq prompt (concat (apply 'format prompt args) + (if (eq ?\s (aref prompt (1- (length prompt)))) + "" " ") + "(y or n) ")) + (while + (let* ((key + (let ((cursor-in-echo-area t)) + (when minibuffer-auto-raise + (raise-frame (window-frame (minibuffer-window)))) + (read-key (propertize (if (eq answer 'recenter) + prompt + (concat "Please answer y or n. " + prompt)) + 'face 'minibuffer-prompt))))) + (setq answer (lookup-key query-replace-map (vector key) t)) + (cond + ((memq answer '(skip act)) nil) + ((eq answer 'recenter) (recenter) t) + ((memq answer '(exit-prefix quit)) (signal 'quit nil) t) + (t t))) + (ding) + (discard-input))) + (let ((ret (eq answer 'act))) + (unless noninteractive + (message "%s %s" prompt (if ret "y" "n"))) + ret))) + ;;; Atomic change groups. @@ -3305,56 +3354,6 @@ (overlay-put ol2 'evaporate t) (overlay-put ol2 'text-clones dups))) -;;;; Misc functions moved over from the C side. - -(defun y-or-n-p (prompt) - "Ask user a \"y or n\" question. Return t if answer is \"y\". -The argument PROMPT is the string to display to ask the question. -It should end in a space; `y-or-n-p' adds `(y or n) ' to it. -No confirmation of the answer is requested; a single character is enough. -Also accepts Space to mean yes, or Delete to mean no. \(Actually, it uses -the bindings in `query-replace-map'; see the documentation of that variable -for more information. In this case, the useful bindings are `act', `skip', -`recenter', and `quit'.\) - -Under a windowing system a dialog box will be used if `last-nonmenu-event' -is nil and `use-dialog-box' is non-nil." - ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state - ;; where all the keys were unbound (i.e. it somehow got triggered - ;; within read-key, apparently). I had to kill it. - (let ((answer 'recenter)) - (if (and (display-popup-menus-p) - (listp last-nonmenu-event) - use-dialog-box) - (setq answer - (x-popup-dialog t `(,prompt ("yes" . act) ("No" . skip)))) - (setq prompt (concat prompt - (if (eq ?\s (aref prompt (1- (length prompt)))) - "" " ") - "(y or n) ")) - (while - (let* ((key - (let ((cursor-in-echo-area t)) - (when minibuffer-auto-raise - (raise-frame (window-frame (minibuffer-window)))) - (read-key (propertize (if (eq answer 'recenter) - prompt - (concat "Please answer y or n. " - prompt)) - 'face 'minibuffer-prompt))))) - (setq answer (lookup-key query-replace-map (vector key) t)) - (cond - ((memq answer '(skip act)) nil) - ((eq answer 'recenter) (recenter) t) - ((memq answer '(exit-prefix quit)) (signal 'quit nil) t) - (t t))) - (ding) - (discard-input))) - (let ((ret (eq answer 'act))) - (unless noninteractive - (message "%s %s" prompt (if ret "y" "n"))) - ret))) - ;;;; Mail user agents. ;; Here we include just enough for other packages to be able === modified file 'src/ChangeLog' --- src/ChangeLog 2011-01-07 03:10:39 +0000 +++ src/ChangeLog 2011-01-07 17:34:02 +0000 @@ -1,3 +1,7 @@ +2011-01-07 Chong Yidong + + * fns.c (Fyes_or_no_p): Accept format string args. + 2011-01-07 Glenn Morris * emacs.c (no_site_lisp): New int. === modified file 'src/fns.c' --- src/fns.c 2010-12-27 17:29:38 +0000 +++ src/fns.c 2011-01-07 17:34:02 +0000 @@ -2460,7 +2460,7 @@ /* Anything that calls this function must protect from GC! */ -DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, 1, 0, +DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, MANY, 0, doc: /* Ask user a yes-or-no question. Return t if answer is yes. Takes one argument, which is the string to display to ask the question. It should end in a space; `yes-or-no-p' adds `(yes or no) ' to it. @@ -2469,13 +2469,11 @@ Under a windowing system a dialog box will be used if `last-nonmenu-event' is nil, and `use-dialog-box' is non-nil. */) - (Lisp_Object prompt) + (int nargs, Lisp_Object *args) { register Lisp_Object ans; - Lisp_Object args[2]; struct gcpro gcpro1; - - CHECK_STRING (prompt); + Lisp_Object prompt = Fformat (nargs, args); #ifdef HAVE_MENUS if (FRAME_WINDOW_P (SELECTED_FRAME ()) @@ -2496,10 +2494,7 @@ } #endif /* HAVE_MENUS */ - args[0] = prompt; - args[1] = build_string ("(yes or no) "); - prompt = Fconcat (2, args); - + prompt = concat2 (prompt, build_string ("(yes or no) ")); GCPRO1 (prompt); while (1) ------------------------------------------------------------ revno: 102774 [merge] committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2011-01-07 12:47:44 +0200 message: Use __builtin_unwind_init in the MSDOS build. msdos/sed2v2.inp (HAVE___BUILTIN_UNWIND_INIT): Define. diff: === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2010-12-04 19:50:39 +0000 +++ msdos/ChangeLog 2011-01-07 10:43:57 +0000 @@ -1,3 +1,7 @@ +2011-01-07 Eli Zaretskii + + * sed2v2.inp (HAVE___BUILTIN_UNWIND_INIT): Define. + 2010-12-04 Andreas Schwab * sed1v2.inp (M_FILE, S_FILE): Add $(srcdir)/ prefix. === modified file 'msdos/sed2v2.inp' --- msdos/sed2v2.inp 2010-07-29 20:01:08 +0000 +++ msdos/sed2v2.inp 2011-01-07 10:43:57 +0000 @@ -50,6 +50,7 @@ /^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/ /^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/ /^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/ +/^#undef HAVE___BUILTIN_UNWIND_INIT *$/s/^.*$/#define HAVE___BUILTIN_UNWIND_INIT 1/ /^#undef ORDINARY_LINK/s/^.*$/#define ORDINARY_LINK 1/ /^#undef PACKAGE_BUGREPORT/s/^.*$/#define PACKAGE_BUGREPORT ""/ /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/ ------------------------------------------------------------ revno: 102773 committer: Tassilo Horn branch nick: trunk timestamp: Fri 2011-01-07 11:39:54 +0100 message: * themes/tsdh-light-theme.el, themes/tsdh-dark-theme.el: Remove dev-prefix from file names, so that the files don't clash on 8x3 filesystems. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2011-01-06 07:35:47 +0000 +++ etc/ChangeLog 2011-01-07 10:39:54 +0000 @@ -1,3 +1,9 @@ +2011-01-07 Tassilo Horn + + * themes/tsdh-light-theme.el, themes/tsdh-dark-theme.el: Remove + dev-prefix from file names, so that the files don't clash on 8x3 + filesystems. + 2011-01-06 Tassilo Horn * themes/dev-tsdh-light-theme.el (dev-tsdh-light): New theme. === renamed file 'etc/themes/dev-tsdh-dark-theme.el' => 'etc/themes/tsdh-dark-theme.el' === renamed file 'etc/themes/dev-tsdh-light-theme.el' => 'etc/themes/tsdh-light-theme.el' ------------------------------------------------------------ revno: 102772 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2011-01-07 12:16:20 +0200 message: Use __builtin_unwind_init in MinGW builds of w32 port. config.nt (HAVE___BUILTIN_UNWIND_INIT) [GCC >= 2.8]: Define. diff: === modified file 'nt/ChangeLog' --- nt/ChangeLog 2011-01-02 21:58:13 +0000 +++ nt/ChangeLog 2011-01-07 10:16:20 +0000 @@ -1,3 +1,7 @@ +2011-01-07 Eli Zaretskii + + * config.nt (HAVE___BUILTIN_UNWIND_INIT) [GCC >= 2.8]: Define. + 2011-01-02 Eli Zaretskii * configure.bat (end): Unset environment variables used by this === modified file 'nt/config.nt' --- nt/config.nt 2010-11-23 20:21:16 +0000 +++ nt/config.nt 2011-01-07 10:16:20 +0000 @@ -287,6 +287,10 @@ #define EXTERNALLY_VISIBLE #endif +#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)) +#define HAVE___BUILTIN_UNWIND_INIT 1 +#endif + #undef EMACS_CONFIGURATION #undef EMACS_CONFIG_OPTIONS ------------------------------------------------------------ revno: 102771 committer: Daiki Ueno branch nick: trunk timestamp: Fri 2011-01-07 18:28:29 +0900 message: gnus/mml2015.el: Fix secret key validity check (Bug#7797). * mml2015.el (epg-sub-key-fingerprint): Autoload. (mml2015-epg-find-usable-secret-key): New function. (mml2015-epg-sign): Use mml2015-epg-find-usable-secret-key instead of mml2015-epg-find-usable-key (Bug#7797). (mml2015-epg-encrypt): Ditto. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2011-01-04 02:24:15 +0000 +++ lisp/gnus/ChangeLog 2011-01-07 09:28:29 +0000 @@ -1,3 +1,11 @@ +2011-01-07 Daiki Ueno + + * mml2015.el (epg-sub-key-fingerprint): Autoload. + (mml2015-epg-find-usable-secret-key): New function. + (mml2015-epg-sign): Use mml2015-epg-find-usable-secret-key instead of + mml2015-epg-find-usable-key (Bug#7797). + (mml2015-epg-encrypt): Ditto. + 2011-01-03 Lars Magne Ingebrigtsen * flow-fill.el (fill-flowed-encode): Do encoding citation-aware. === modified file 'lisp/gnus/mml2015.el' --- lisp/gnus/mml2015.el 2010-12-27 09:46:02 +0000 +++ lisp/gnus/mml2015.el 2011-01-07 09:28:29 +0000 @@ -742,6 +742,7 @@ (autoload 'epg-key-sub-key-list "epg") (autoload 'epg-sub-key-capability "epg") (autoload 'epg-sub-key-validity "epg") +(autoload 'epg-sub-key-fingerprint "epg") (autoload 'epg-configuration "epg-config") (autoload 'epg-expand-group "epg-config") (autoload 'epa-select-keys "epa") @@ -784,6 +785,24 @@ (setq pointer (cdr pointer)))) (setq keys (cdr keys))))) +;; XXX: since gpg --list-secret-keys does not return validity of each +;; key, `mml2015-epg-find-usable-key' defined above is not enough for +;; secret keys. The function `mml2015-epg-find-usable-secret-key' +;; below looks at appropriate public keys to check usability. +(defun mml2015-epg-find-usable-secret-key (context name usage) + (let ((secret-keys (epg-list-keys context name t)) + secret-key) + (while (and (not secret-key) secret-keys) + (if (mml2015-epg-find-usable-key + (epg-list-keys context (epg-sub-key-fingerprint + (car (epg-key-sub-key-list + (car secret-keys))))) + usage) + (setq secret-key (car secret-keys) + secret-keys nil) + (setq secret-keys (cdr secret-keys)))) + secret-key)) + (defun mml2015-epg-decrypt (handle ctl) (catch 'error (let ((inhibit-redisplay t) @@ -960,9 +979,9 @@ (delq nil (mapcar (lambda (signer) - (setq signer-key (mml2015-epg-find-usable-key - (epg-list-keys context signer t) - 'sign)) + (setq signer-key + (mml2015-epg-find-usable-secret-key + context signer 'sign)) (unless (or signer-key (y-or-n-p (format @@ -1081,9 +1100,9 @@ (delq nil (mapcar (lambda (signer) - (setq signer-key (mml2015-epg-find-usable-key - (epg-list-keys context signer t) - 'sign)) + (setq signer-key + (mml2015-epg-find-usable-secret-key + context signer 'sign)) (unless (or signer-key (y-or-n-p (format ------------------------------------------------------------ revno: 102770 committer: Glenn Morris branch nick: trunk timestamp: Thu 2011-01-06 19:10:39 -0800 message: Add --no-site-lisp option, make -Q use it. (Bug#5707) * lisp/Makefile.in (EMACSOPT): Add --no-site-lisp. * src/emacs.c (no_site_lisp): New int. (USAGE1): Add --no-site-lisp, mention -Q uses it. (main): Set no_site_lisp. (standard_args): Add --no-site-lisp. * src/lisp.h (no_site_lisp): New int. * src/lread.c (init_lread): If no_site_lisp, don't re-add site-lisp directories to Vload_path. * etc/NEWS: Mention --no-site-lisp. diff: === modified file 'etc/NEWS' --- etc/NEWS 2011-01-04 16:57:45 +0000 +++ etc/NEWS 2011-01-07 03:10:39 +0000 @@ -59,6 +59,9 @@ command line arguments, and the EMACS_UNIBYTE environment variable, no longer have any effect. (They were declared obsolete in Emacs 23.) +** New command line option `--no-site-lisp' removes site-lisp directories +from load-path. -Q now implies this. + * Changes in Emacs 24.1 === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-01-06 07:19:05 +0000 +++ lisp/ChangeLog 2011-01-07 03:10:39 +0000 @@ -1,9 +1,12 @@ +2011-01-07 Glenn Morris + + * Makefile.in (EMACSOPT): Add --no-site-lisp. + 2011-01-06 Ken Manheimer - * allout.el: (allout-back-to-current-heading): Ensure return to + * allout.el (allout-back-to-current-heading): Ensure return to the visible containing topic, rather than a collapsed one. - (allout-view-change-hook): Remove hook that was deprecated long - ago. + (allout-view-change-hook): Remove hook that was deprecated long ago. (allout-exposure-change-hook): Remove documentation remarks concerning removed allout-view-change-hook. (allout-flag-region): Remove invocation of and documentation === modified file 'lisp/Makefile.in' --- lisp/Makefile.in 2010-11-22 22:09:17 +0000 +++ lisp/Makefile.in 2011-01-07 03:10:39 +0000 @@ -1,6 +1,6 @@ # Maintenance productions for the Lisp directory # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -# 2009, 2010 Free Software Foundation, Inc. +# 2009, 2010, 2011 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -35,7 +35,7 @@ # Command line flags for Emacs. -EMACSOPT = -batch --no-site-file +EMACSOPT = -batch --no-site-file --no-site-lisp # Extra flags to pass to the byte compiler BYTE_COMPILE_EXTRA_FLAGS = === modified file 'src/ChangeLog' --- src/ChangeLog 2011-01-05 13:09:07 +0000 +++ src/ChangeLog 2011-01-07 03:10:39 +0000 @@ -1,3 +1,13 @@ +2011-01-07 Glenn Morris + + * emacs.c (no_site_lisp): New int. + (USAGE1): Add --no-site-lisp, mention -Q uses it. + (main): Set no_site_lisp. + (standard_args): Add --no-site-lisp. + * lisp.h (no_site_lisp): New int. + * lread.c (init_lread): If no_site_lisp, don't re-add site-lisp + directories to Vload_path. + 2011-01-05 Andreas Schwab * alloc.c (mark_stack): Use __builtin_unwind_init if available. === modified file 'src/emacs.c' --- src/emacs.c 2011-01-04 04:42:43 +0000 +++ src/emacs.c 2011-01-07 03:10:39 +0000 @@ -231,6 +231,9 @@ /* Nonzero means Emacs was run in --quick mode. */ int inhibit_x_resources; +/* Nonzero means remove site-lisp directories from load-path. */ +int no_site_lisp; + /* Name for the server started by the daemon.*/ static char *daemon_name; @@ -268,9 +271,11 @@ --no-init-file, -q load neither ~/.emacs nor default.el\n\ --no-shared-memory, -nl do not use shared memory\n\ --no-site-file do not load site-start.el\n\ +--no-site-lisp, -nsl do not add site-lisp directories to load-path\n\ --no-splash do not display a splash screen on startup\n\ --no-window-system, -nw do not communicate with X, ignoring $DISPLAY\n\ ---quick, -Q equivalent to -q --no-site-file --no-splash\n\ +--quick, -Q equivalent to:\n\ + -q --no-site-file --no-site-lisp --no-splash\n\ --script FILE run FILE as an Emacs Lisp script\n\ --terminal, -t DEVICE use DEVICE for terminal I/O\n\ --user, -u USER load ~USER/.emacs instead of your own\n\ @@ -1341,6 +1346,9 @@ no_loadup = argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args); + no_site_lisp + = argmatch (argv, argc, "-nsl", "--no-site-lisp", 11, NULL, &skip_args); + #ifdef HAVE_NS ns_alloc_autorelease_pool(); if (!noninteractive) @@ -1409,9 +1417,27 @@ && argv[count_before + 1][1] == '-') argv[count_before + 1] = "-d"; + if (! no_site_lisp) + { + if (argmatch (argv, argc, "-Q", "--quick", 3, NULL, &skip_args) + || argmatch (argv, argc, "-quick", 0, 2, NULL, &skip_args)) + no_site_lisp = 1; + } + /* Don't actually discard this arg. */ skip_args = count_before; } +#else /* !HAVE_X_WINDOWS */ + if (! no_site_lisp) + { + int count_before = skip_args; + + if (argmatch (argv, argc, "-Q", "--quick", 3, NULL, &skip_args) + || argmatch (argv, argc, "-quick", 0, 2, NULL, &skip_args)) + no_site_lisp = 1; + + skip_args = count_before; + } #endif /* argmatch must not be used after here, @@ -1743,10 +1769,12 @@ { "-daemon", "--daemon", 99, 0 }, { "-help", "--help", 90, 0 }, { "-nl", "--no-loadup", 70, 0 }, + { "-nsl", "--no-site-lisp", 65, 0 }, /* -d must come last before the options handled in startup.el. */ { "-d", "--display", 60, 1 }, { "-display", 0, 60, 1 }, /* Now for the options handled in `command-line' (startup.el). */ + /* (Note that to imply -nsl, -Q is partially handled here.) */ { "-Q", "--quick", 55, 0 }, { "-quick", 0, 55, 0 }, { "-q", "--no-init-file", 50, 0 }, === modified file 'src/lisp.h' --- src/lisp.h 2010-12-27 17:29:38 +0000 +++ src/lisp.h 2011-01-07 03:10:39 +0000 @@ -1,6 +1,6 @@ /* Fundamental definitions for GNU Emacs Lisp interpreter. Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -3225,6 +3225,9 @@ /* Nonzero means don't load X resources or Windows Registry settings. */ extern int inhibit_x_resources; +/* Nonzero means remove site-lisp directories from load-path. */ +extern int no_site_lisp; + /* Pipe used to send exit notification to the daemon parent at startup. */ extern int daemon_pipe[2]; @@ -3668,5 +3671,3 @@ #endif /* EMACS_LISP_H */ -/* arch-tag: 9b2ed020-70eb-47ac-94ee-e1c2a5107d5e - (do not change this comment) */ === modified file 'src/lread.c' --- src/lread.c 2010-12-27 17:29:38 +0000 +++ src/lread.c 2011-01-07 03:10:39 +0000 @@ -2,7 +2,7 @@ Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010 Free Software Foundation, Inc. + 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -4086,7 +4086,7 @@ Vload_path = Fcons (tem, Vload_path); } } - if (!NILP (sitelisp)) + if (!NILP (sitelisp) && !no_site_lisp) Vload_path = nconc2 (Fnreverse (sitelisp), Vload_path); } } ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.