Now on revision 108390. ------------------------------------------------------------ revno: 108390 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 19:30:29 -0700 message: * doc/misc/cl.texi, doc/misc/dired-x.texi: Nuke hand-written node pointers. Some associated fixes, including not messing with chapno in cl.texi. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-27 01:06:44 +0000 +++ doc/misc/ChangeLog 2012-05-27 02:30:29 +0000 @@ -1,3 +1,8 @@ +2012-05-27 Glenn Morris + + * cl.texi, dired-x.texi: Nuke hand-written node pointers. + Some associated fixes, including not messing with chapno in cl.texi. + 2012-05-27 Bastien Guerry * org.texi (Durations and time values): Fix typo. === modified file 'doc/misc/cl.texi' --- doc/misc/cl.texi 2012-02-29 08:05:16 +0000 +++ doc/misc/cl.texi 2012-05-27 02:30:29 +0000 @@ -45,16 +45,10 @@ @contents -@node Top, Overview, (dir), (dir) -@chapter Introduction - -@noindent -This document describes a set of Emacs Lisp facilities borrowed from -Common Lisp. All the facilities are described here in detail. While -this document does not assume any prior knowledge of Common Lisp, it -does assume a basic familiarity with Emacs Lisp. - @ifnottex +@node Top +@top GNU Emacs Common Lisp Emulation + @insertcopying @end ifnottex @@ -82,12 +76,15 @@ * Variable Index:: @end menu -@node Overview, Program Structure, Top, Top -@ifnottex +@node Overview @chapter Overview -@end ifnottex @noindent +This document describes a set of Emacs Lisp facilities borrowed from +Common Lisp. All the facilities are described here in detail. While +this document does not assume any prior knowledge of Common Lisp, it +does assume a basic familiarity with Emacs Lisp. + Common Lisp is a huge language, and Common Lisp systems tend to be massive and extremely complex. Emacs Lisp, by contrast, is rather minimalist in the choice of Lisp features it offers the programmer. @@ -150,7 +147,7 @@ * Naming Conventions:: Notes on CL function names @end menu -@node Usage, Organization, Overview, Overview +@node Usage @section Usage @noindent @@ -166,7 +163,7 @@ in your @file{.emacs} file. But it's a good idea, for portability, to @code{(require 'cl)} in your code even if you do this. -@node Organization, Installation, Usage, Overview +@node Organization @section Organization @noindent @@ -212,7 +209,7 @@ multiple-values feature. This file is obsolete and should not be used in new code. @xref{Old CL Compatibility}. -@node Installation, Naming Conventions, Organization, Overview +@node Installation @section Installation @noindent @@ -226,7 +223,7 @@ file and put the resulting Info files into a directory in your @code{Info-directory-list}. -@node Naming Conventions, , Installation, Overview +@node Naming Conventions @section Naming Conventions @noindent @@ -280,11 +277,7 @@ @noindent [4] Only when @var{place} is a plain variable name. -@iftex -@chapno=4 -@end iftex - -@node Program Structure, Predicates, Overview, Top +@node Program Structure @chapter Program Structure @noindent @@ -301,7 +294,7 @@ @secno=1 @end iftex -@node Argument Lists, Time of Evaluation, Program Structure, Program Structure +@node Argument Lists @section Argument Lists @noindent @@ -525,7 +518,7 @@ arguments and invalid keyword arguments is disabled. By default, argument lists are rigorously checked. -@node Time of Evaluation, , Argument Lists, Program Structure +@node Time of Evaluation @section Time of Evaluation @noindent @@ -675,7 +668,7 @@ @end example @end defspec -@node Predicates, Control Structure, Program Structure, Top +@node Predicates @chapter Predicates @noindent @@ -687,7 +680,7 @@ * Equality Predicates:: @code{equalp} @end menu -@node Type Predicates, Equality Predicates, Predicates, Predicates +@node Type Predicates @section Type Predicates @noindent @@ -820,7 +813,7 @@ @code{concatenate}, and @code{merge} functions take type-name arguments to specify the type of sequence to return. @xref{Sequences}. -@node Equality Predicates, , Type Predicates, Predicates +@node Equality Predicates @section Equality Predicates @noindent @@ -848,7 +841,7 @@ In Emacs, use @code{member*} and @code{assoc*} to get functions which use @code{eql} for comparisons. -@node Control Structure, Macros, Predicates, Top +@node Control Structure @chapter Control Structure @noindent @@ -868,7 +861,7 @@ * Multiple Values:: @code{values}, @code{multiple-value-bind}, etc. @end menu -@node Assignment, Generalized Variables, Control Structure, Control Structure +@node Assignment @section Assignment @noindent @@ -905,7 +898,7 @@ @code{psetq} always returns @code{nil}. @end defspec -@node Generalized Variables, Variable Bindings, Assignment, Control Structure +@node Generalized Variables @section Generalized Variables @noindent @@ -934,7 +927,7 @@ * Customizing Setf:: @code{define-modify-macro}, @code{defsetf}, @code{define-setf-method} @end menu -@node Basic Setf, Modify Macros, Generalized Variables, Generalized Variables +@node Basic Setf @subsection Basic Setf @noindent @@ -1105,7 +1098,7 @@ to @code{wrong-order}. @end defspec -@node Modify Macros, Customizing Setf, Basic Setf, Generalized Variables +@node Modify Macros @subsection Modify Macros @noindent @@ -1316,7 +1309,7 @@ macros are used in the processing of symbol macros; @pxref{Macro Bindings}. -@node Customizing Setf, , Modify Macros, Generalized Variables +@node Customizing Setf @subsection Customizing Setf @noindent @@ -1529,7 +1522,7 @@ @secno=4 @end iftex -@node Variable Bindings, Conditionals, Generalized Variables, Control Structure +@node Variable Bindings @section Variable Bindings @noindent @@ -1546,7 +1539,7 @@ * Macro Bindings:: @code{macrolet} and @code{symbol-macrolet} @end menu -@node Dynamic Bindings, Lexical Bindings, Variable Bindings, Variable Bindings +@node Dynamic Bindings @subsection Dynamic Bindings @noindent @@ -1566,7 +1559,7 @@ are ignored. @end defspec -@node Lexical Bindings, Function Bindings, Dynamic Bindings, Variable Bindings +@node Lexical Bindings @subsection Lexical Bindings @noindent @@ -1680,7 +1673,7 @@ are made sequentially in the manner of @code{let*}. @end defspec -@node Function Bindings, Macro Bindings, Lexical Bindings, Variable Bindings +@node Function Bindings @subsection Function Bindings @noindent @@ -1756,7 +1749,7 @@ @code{function} to be passed on to, say, @code{mapcar}. @end defspec -@node Macro Bindings, , Function Bindings, Variable Bindings +@node Macro Bindings @subsection Macro Bindings @noindent @@ -1843,7 +1836,7 @@ works much like @code{my-dolist}. @end defspec -@node Conditionals, Blocks and Exits, Variable Bindings, Control Structure +@node Conditionals @section Conditionals @noindent @@ -1917,7 +1910,7 @@ simply returning @code{nil}. @end defspec -@node Blocks and Exits, Iteration, Conditionals, Control Structure +@node Blocks and Exits @section Blocks and Exits @noindent @@ -1982,7 +1975,7 @@ themselves in @code{nil} blocks. @end defspec -@node Iteration, Loop Facility, Blocks and Exits, Control Structure +@node Iteration @section Iteration @noindent @@ -2126,7 +2119,7 @@ @xref{Mapping over Sequences}, for some more functions for iterating over vectors or lists. -@node Loop Facility, Multiple Values, Iteration, Control Structure +@node Loop Facility @section Loop Facility @noindent @@ -2148,7 +2141,7 @@ * Other Clauses:: @code{with}, @code{if}, @code{initially}, @code{finally} @end menu -@node Loop Basics, Loop Examples, Loop Facility, Loop Facility +@node Loop Basics @subsection Loop Basics @noindent @@ -2207,7 +2200,7 @@ Consult the second edition of Steele's @dfn{Common Lisp, the Language}, for additional discussion and examples of the @code{loop} macro. -@node Loop Examples, For Clauses, Loop Basics, Loop Facility +@node Loop Examples @subsection Loop Examples @noindent @@ -2280,7 +2273,7 @@ rather than some sort of triple-nested loop. You must explicitly nest your @code{loop} constructs if you want nested loops. -@node For Clauses, Iteration Clauses, Loop Examples, Loop Facility +@node For Clauses @subsection For Clauses @noindent @@ -2595,7 +2588,7 @@ @result{} (1 2) @end example -@node Iteration Clauses, Accumulation Clauses, For Clauses, Loop Facility +@node Iteration Clauses @subsection Iteration Clauses @noindent @@ -2654,7 +2647,7 @@ values were @code{nil}, the loop returns @code{nil}. @end table -@node Accumulation Clauses, Other Clauses, Iteration Clauses, Loop Facility +@node Accumulation Clauses @subsection Accumulation Clauses @noindent @@ -2723,7 +2716,7 @@ @result{} (fred bob ken sue alice joe kris sunshine june) @end example -@node Other Clauses, , Accumulation Clauses, Loop Facility +@node Other Clauses @subsection Other Clauses @noindent @@ -2874,7 +2867,7 @@ iterate over keymaps, overlays, intervals, frames, windows, and buffers are Emacs-specific extensions. -@node Multiple Values, , Loop Facility, Control Structure +@node Multiple Values @section Multiple Values @noindent @@ -2916,7 +2909,7 @@ Since a perfect emulation is not feasible in Emacs Lisp, this package opts to keep it as simple and predictable as possible. -@node Macros, Declarations, Control Structure, Top +@node Macros @chapter Macros @noindent @@ -2994,7 +2987,7 @@ and @code{symbol-macrolet} forms for making ``local'' macro definitions. -@node Declarations, Symbols, Macros, Top +@node Declarations @chapter Declarations @noindent @@ -3176,7 +3169,7 @@ See the documentation for the optimizing byte compiler for details. @end table -@node Symbols, Numbers, Declarations, Top +@node Symbols @chapter Symbols @noindent @@ -3188,7 +3181,7 @@ * Creating Symbols:: @code{gensym}, @code{gentemp} @end menu -@node Property Lists, Creating Symbols, Symbols, Symbols +@node Property Lists @section Property Lists @noindent @@ -3273,7 +3266,7 @@ @secno=2 @end iftex -@node Creating Symbols, , Property Lists, Symbols +@node Creating Symbols @section Creating Symbols @noindent @@ -3318,11 +3311,7 @@ keywords as data unrelated to keyword arguments, so the @code{defkeyword} form has been discontinued. -@iftex -@chapno=11 -@end iftex - -@node Numbers, Sequences, Symbols, Top +@node Numbers @chapter Numbers @noindent @@ -3340,7 +3329,7 @@ @secno=1 @end iftex -@node Predicates on Numbers, Numerical Functions, Numbers, Numbers +@node Predicates on Numbers @section Predicates on Numbers @noindent @@ -3377,7 +3366,7 @@ @secno=3 @end iftex -@node Numerical Functions, Random Numbers, Predicates on Numbers, Numbers +@node Numerical Functions @section Numerical Functions @noindent @@ -3473,7 +3462,7 @@ @secno=8 @end iftex -@node Random Numbers, Implementation Parameters, Numerical Functions, Numbers +@node Random Numbers @section Random Numbers @noindent @@ -3534,7 +3523,7 @@ @code{random-state} object, or @code{nil} otherwise. @end defun -@node Implementation Parameters, , Random Numbers, Numbers +@node Implementation Parameters @section Implementation Parameters @noindent @@ -3615,11 +3604,7 @@ @code{1.11e-16}. @end defvar -@iftex -@chapno=13 -@end iftex - -@node Sequences, Lists, Numbers, Top +@node Sequences @chapter Sequences @noindent @@ -3636,7 +3621,7 @@ * Sorting Sequences:: @code{sort*}, @code{stable-sort}, @code{merge} @end menu -@node Sequence Basics, Mapping over Sequences, Sequences, Sequences +@node Sequence Basics @section Sequence Basics @noindent @@ -3713,7 +3698,7 @@ the properties of the characters copied from @var{str} into the result. -@node Mapping over Sequences, Sequence Functions, Sequence Basics, Sequences +@node Mapping over Sequences @section Mapping over Sequences @noindent @@ -3851,7 +3836,7 @@ be faster since it generates the loop as in-line code with no function calls. -@node Sequence Functions, Searching Sequences, Mapping over Sequences, Sequences +@node Sequence Functions @section Sequence Functions @noindent @@ -3978,7 +3963,7 @@ and @code{nsubstitute-if-not} functions are defined similarly. For these, a @var{predicate} is given in place of the @var{old} argument. -@node Searching Sequences, Sorting Sequences, Sequence Functions, Sequences +@node Searching Sequences @section Searching Sequences @noindent @@ -4047,7 +4032,7 @@ function finds the @emph{rightmost} matching subsequence. @end defun -@node Sorting Sequences, , Searching Sequences, Sequences +@node Sorting Sequences @section Sorting Sequences @defun sort* seq predicate @t{&key :key} @@ -4106,7 +4091,7 @@ @var{predicate}. @end defun -@node Lists, Structures, Sequences, Top +@node Lists @chapter Lists @noindent @@ -4119,7 +4104,7 @@ * Association Lists:: @code{assoc*}, @code{rassoc*}, @code{acons}, @code{pairlis} @end menu -@node List Functions, Substitution of Expressions, Lists, Lists +@node List Functions @section List Functions @noindent @@ -4212,7 +4197,7 @@ @secno=3 @end iftex -@node Substitution of Expressions, Lists as Sets, List Functions, Lists +@node Substitution of Expressions @section Substitution of Expressions @noindent @@ -4261,7 +4246,7 @@ This is a destructive version of @code{sublis}. @end defun -@node Lists as Sets, Association Lists, Substitution of Expressions, Lists +@node Lists as Sets @section Lists as Sets @noindent @@ -4360,7 +4345,7 @@ also appears in @var{list2}. @end defun -@node Association Lists, , Lists as Sets, Lists +@node Association Lists @section Association Lists @noindent @@ -4404,11 +4389,7 @@ @var{alist})}. @end defun -@iftex -@chapno=18 -@end iftex - -@node Structures, Assertions, Lists, Top +@node Structures @chapter Structures @noindent @@ -4738,11 +4719,7 @@ Except as noted, the @code{defstruct} facility of this package is entirely compatible with that of Common Lisp. -@iftex -@chapno=23 -@end iftex - -@node Assertions, Efficiency Concerns, Structures, Top +@node Assertions @chapter Assertions and Errors @noindent @@ -4814,7 +4791,7 @@ returns the result of the last @var{form}. @end defspec -@node Efficiency Concerns, Common Lisp Compatibility, Assertions, Top +@node Efficiency Concerns @appendix Efficiency Concerns @appendixsec Macros @@ -4957,7 +4934,7 @@ optimizing compiler removes @code{block}s which are not actually referenced by @code{return} or @code{return-from} inside the block. -@node Common Lisp Compatibility, Old CL Compatibility, Efficiency Concerns, Top +@node Common Lisp Compatibility @appendix Common Lisp Compatibility @noindent @@ -5019,7 +4996,7 @@ The second argument of @code{check-type} is treated differently. -@node Old CL Compatibility, Porting Common Lisp, Common Lisp Compatibility, Top +@node Old CL Compatibility @appendix Old CL Compatibility @noindent @@ -5120,7 +5097,7 @@ @code{floor}, @code{ceiling}, etc.; @code{cl-compat} cannot use these names because they conflict with Emacs built-ins. -@node Porting Common Lisp, GNU Free Documentation License, Old CL Compatibility, Top +@node Porting Common Lisp @appendix Porting Common Lisp @noindent @@ -5326,16 +5303,16 @@ recursion. @end itemize -@node GNU Free Documentation License, Function Index, Porting Common Lisp, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi -@node Function Index, Variable Index, GNU Free Documentation License, Top +@node Function Index @unnumbered Function Index @printindex fn -@node Variable Index, , Function Index, Top +@node Variable Index @unnumbered Variable Index @printindex vr === modified file 'doc/misc/dired-x.texi' --- doc/misc/dired-x.texi 2012-01-19 07:21:25 +0000 +++ doc/misc/dired-x.texi 2012-05-27 02:30:29 +0000 @@ -111,7 +111,7 @@ @end ifnottex -@node Introduction, Installation, Top, Top +@node Introduction @chapter Introduction This documents some @emph{extra} features for GNU Emacs's Dired Mode @@ -125,7 +125,7 @@ @end menu @end ifnottex -@node Features, Technical Details, , Introduction +@node Features @section Features @cindex Features @@ -157,7 +157,7 @@ @code{dired-x-find-file} and @code{dired-x-find-file-other-window}, respectively (@pxref{Find File At Point}). -@node Technical Details, , Features, Introduction +@node Technical Details @section Technical Details @cindex Modified functions @cindex @file{dired-aux.el} @@ -173,7 +173,7 @@ @code{dired-guess-shell-command} (@pxref{Shell Command Guessing}) to offer a smarter default command. -@node Installation, Omitting Files in Dired, Introduction, Top +@node Installation @chapter Installation @noindent @@ -211,7 +211,7 @@ @end menu @end ifnottex -@node Optional Installation Dired Jump, Optional Installation File At Point, , Installation +@node Optional Installation Dired Jump @section Optional Installation Dired Jump @cindex Autoloading @code{dired-jump} and @code{dired-jump-other-window} @@ -232,7 +232,7 @@ (define-key global-map "\C-x4\C-j" 'dired-jump-other-window) @end example -@node Optional Installation File At Point, , Optional Installation Dired Jump, Installation +@node Optional Installation File At Point @section Optional Installation File At Point @cindex Binding @code{dired-x-find-file} @@ -251,7 +251,7 @@ )) @end example -@node Omitting Files in Dired, Local Variables, Installation, Top +@node Omitting Files in Dired @chapter Omitting Files in Dired @cindex Omitting Files in Dired @@ -307,7 +307,7 @@ @end menu @end ifnottex -@node Omitting Variables, Omitting Examples, , Omitting Files in Dired +@node Omitting Variables @section Omitting Variables @cindex Customizing file omitting @@ -403,7 +403,7 @@ @end table -@node Omitting Examples, Omitting Technical, Omitting Variables, Omitting Files in Dired +@node Omitting Examples @section Examples of Omitting Various File Types @itemize @bullet @@ -458,7 +458,7 @@ @end itemize -@node Omitting Technical, , Omitting Examples, Omitting Files in Dired +@node Omitting Technical @section Some Technical Details of Omitting Loading @file{dired-x.el} will install Dired Omit by putting @@ -466,7 +466,7 @@ call @code{dired-extra-startup}, which in turn calls @code{dired-omit-startup} in your @code{dired-mode-hook}. -@node Local Variables, Shell Command Guessing, Omitting Files in Dired, Top +@node Local Variables @chapter Local Variables for Dired Directories @cindex Local Variables for Dired Directories @@ -537,7 +537,7 @@ variable. A value of @code{nil} means to ignore any Dired Local Variables. @end table -@node Shell Command Guessing, Virtual Dired, Local Variables, Top +@node Shell Command Guessing @chapter Shell Command Guessing @cindex Guessing shell commands for files. @@ -643,7 +643,7 @@ History list for commands that read dired-shell commands. @end table -@node Virtual Dired, Advanced Mark Commands, Shell Command Guessing, Top +@node Virtual Dired @chapter Virtual Dired @cindex Virtual Dired @@ -684,7 +684,7 @@ The regexp is a bit more complicated than usual to exclude @file{.dired} local-variable files. -@node Advanced Mark Commands, Multiple Dired Directories, Virtual Dired, Top +@node Advanced Mark Commands @chapter Advanced Mark Commands @table @kbd @@ -730,7 +730,7 @@ @end menu @end ifnottex -@node Advanced Cleaning Functions, Advanced Cleaning Variables, , Advanced Mark Commands +@node Advanced Cleaning Functions @section Advanced Cleaning Functions @table @code @@ -761,7 +761,7 @@ and @file{*.dvi} files for deletion. @end table -@node Advanced Cleaning Variables, Special Marking Function, Advanced Cleaning Functions, Advanced Mark Commands +@node Advanced Cleaning Variables @section Advanced Cleaning Variables @noindent Variables used by the above cleaning commands (and in the default value for @@ -800,7 +800,7 @@ List of extensions of dispensable files created by Bib@TeX{}. @end table -@node Special Marking Function, , Advanced Cleaning Variables, Advanced Mark Commands +@node Special Marking Function @section Special Marking Function @table @kbd @@ -856,7 +856,7 @@ @end table -@node Multiple Dired Directories, Find File At Point, Advanced Mark Commands, Top +@node Multiple Dired Directories @chapter Multiple Dired Directories and Non-Dired Commands @cindex Multiple Dired directories @@ -876,8 +876,8 @@ Dired buffers, is like @code{shell-command}, but it runs with @code{default-directory} bound to the current Dired directory. -@node Find File At Point, Miscellaneous Commands, Multiple Dired Directories, Top -@section Find File At Point +@node Find File At Point +@chapter Find File At Point @cindex Visiting a file mentioned in a buffer @cindex Finding a file at point @@ -952,7 +952,7 @@ @code{find-file-other-window}. See @xref{Optional Installation File At Point}. @end table -@node Miscellaneous Commands, Bugs, Find File At Point, Top +@node Miscellaneous Commands @chapter Miscellaneous Commands Miscellaneous features not fitting anywhere else: @@ -1082,7 +1082,7 @@ info. @end table -@node Bugs, GNU Free Documentation License, Miscellaneous Commands, Top +@node Bugs @chapter Bugs @cindex Bugs @@ -1090,23 +1090,23 @@ If you encounter a bug in this package, or wish to suggest an enhancement, then please use @kbd{M-x report-emacs-bug} to report it. -@node GNU Free Documentation License, Concept Index, Bugs, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi -@node Concept Index, Command Index, GNU Free Documentation License, Top +@node Concept Index @unnumbered Concept Index @printindex cp -@node Command Index, Key Index, Concept Index, Top +@node Command Index @unnumbered Function Index @printindex fn -@node Key Index, Variable Index, Command Index, Top +@node Key Index @unnumbered Key Index @printindex ky -@node Variable Index, , Key Index, Top +@node Variable Index @unnumbered Variable Index @printindex vr ------------------------------------------------------------ revno: 108389 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 19:13:54 -0700 message: * doc/emacs/emacs.texi: Simplify following removal of node pointers. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-05-27 01:25:06 +0000 +++ doc/emacs/ChangeLog 2012-05-27 02:13:54 +0000 @@ -1,5 +1,7 @@ 2012-05-27 Glenn Morris + * emacs.texi: Simplify following removal of node pointers. + * ack.texi, anti.texi, basic.texi, buffers.texi, building.texi: * cmdargs.texi, commands.texi, display.texi, emacs.texi: * entering.texi, files.texi, fixit.texi, frames.texi, glossary.texi: === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2012-05-27 01:25:06 +0000 +++ doc/emacs/emacs.texi 2012-05-27 02:13:54 +0000 @@ -1555,37 +1555,20 @@ @c The Option Index is produced only in the on-line version, @c because the index entries related to command-line options @c tend to point to the same pages and all begin with a dash. -@c This, and the need to keep the node links consistent, are -@c the reasons for the funky @iftex/@ifnottex dance below. -@c The Option Index is _not_ before Key Index, because that -@c would require changes in the glossary.texi's @node line. -@c It is not after Concept Index for similar reasons. -@iftex @node Key Index @unnumbered Key (Character) Index @printindex ky -@end iftex @ifnottex -@node Key Index -@unnumbered Key (Character) Index -@printindex ky - @node Option Index @unnumbered Command-Line Options Index @printindex op - -@node Command Index -@unnumbered Command and Function Index -@printindex fn @end ifnottex -@iftex @node Command Index @unnumbered Command and Function Index @printindex fn -@end iftex @node Variable Index @unnumbered Variable Index ------------------------------------------------------------ revno: 108388 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 18:34:14 -0700 message: Nuke hand-written node pointers in doc/lispref Let makeinfo figure them out, as is recommended. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-27 01:06:44 +0000 +++ doc/lispref/ChangeLog 2012-05-27 01:34:14 +0000 @@ -1,3 +1,18 @@ +2012-05-27 Glenn Morris + + * abbrevs.texi, advice.texi, anti.texi, backups.texi: + * buffers.texi, commands.texi, compile.texi, control.texi: + * customize.texi, debugging.texi, display.texi, doclicense.texi: + * edebug.texi, elisp.texi, errors.texi, eval.texi, files.texi: + * frames.texi, functions.texi, gpl.texi, hash.texi, help.texi: + * hooks.texi, index.texi, internals.texi, intro.texi, keymaps.texi: + * lists.texi, loading.texi, macros.texi, maps.texi, markers.texi: + * minibuf.texi, modes.texi, nonascii.texi, numbers.texi: + * objects.texi, os.texi, package.texi, positions.texi: + * processes.texi, searching.texi, sequences.texi, streams.texi: + * strings.texi, symbols.texi, syntax.texi, text.texi, tips.texi: + * variables.texi, windows.texi: Nuke hand-written node pointers. + 2012-05-27 Chong Yidong * functions.texi (Obsolete Functions): === modified file 'doc/lispref/abbrevs.texi' --- doc/lispref/abbrevs.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/abbrevs.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1994, 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Abbrevs, Processes, Syntax Tables, Top +@node Abbrevs @chapter Abbrevs and Abbrev Expansion @cindex abbrev @c @cindex abbrev table Redundant with "abbrev". @@ -56,7 +56,7 @@ Which properties have which effect. @end menu -@node Abbrev Tables, Defining Abbrevs, Abbrevs, Abbrevs +@node Abbrev Tables @section Abbrev Tables This section describes how to create and manipulate abbrev tables. @@ -123,8 +123,7 @@ to add these to @var{name} separately.) @end defun -@node Defining Abbrevs, Abbrev Files, Abbrev Tables, Abbrevs -@comment node-name, next, previous, up +@node Defining Abbrevs @section Defining Abbrevs @code{define-abbrev} is the low-level basic function for defining an @@ -179,7 +178,7 @@ callers. @end defopt -@node Abbrev Files, Abbrev Expansion, Defining Abbrevs, Abbrevs +@node Abbrev Files @section Saving Abbrevs in Files A file of saved abbrev definitions is actually a file of Lisp code. @@ -230,8 +229,7 @@ @code{abbrev-file-name} is used. This function returns @code{nil}. @end deffn -@node Abbrev Expansion, Standard Abbrev Tables, Abbrev Files, Abbrevs -@comment node-name, next, previous, up +@node Abbrev Expansion @section Looking Up and Expanding Abbreviations Abbrevs are usually expanded by certain interactive commands, @@ -367,8 +365,7 @@ nil t))) @end smallexample -@node Standard Abbrev Tables, Abbrev Properties, Abbrev Expansion, Abbrevs -@comment node-name, next, previous, up +@node Standard Abbrev Tables @section Standard Abbrev Tables Here we list the variables that hold the abbrev tables for the @@ -410,7 +407,7 @@ Properties}. @end defvar -@node Abbrev Properties, Abbrev Table Properties, Standard Abbrev Tables, Abbrevs +@node Abbrev Properties @section Abbrev Properties Abbrevs have properties, some of which influence the way they work. @@ -450,7 +447,7 @@ modifies the capitalization of the expansion. @end table -@node Abbrev Table Properties, , Abbrev Properties, Abbrevs +@node Abbrev Table Properties @section Abbrev Table Properties Like abbrevs, abbrev tables have properties, some of which influence === modified file 'doc/lispref/advice.texi' --- doc/lispref/advice.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/advice.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Advising Functions, Debugging, Byte Compilation, Top +@node Advising Functions @chapter Advising Emacs Lisp Functions @cindex advising functions === modified file 'doc/lispref/anti.texi' --- doc/lispref/anti.texi 2012-05-08 06:38:27 +0000 +++ doc/lispref/anti.texi 2012-05-27 01:34:14 +0000 @@ -5,7 +5,7 @@ @c This node must have no pointers. -@node Antinews, GNU Free Documentation License, Packaging, Top +@node Antinews @appendix Emacs 23 Antinews @c Update the elisp.texi Antinews menu entry with the above version number. === modified file 'doc/lispref/backups.texi' --- doc/lispref/backups.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/backups.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Backups and Auto-Saving, Buffers, Files, Top +@node Backups and Auto-Saving @chapter Backups and Auto-Saving @cindex backups and auto-saving === modified file 'doc/lispref/buffers.texi' --- doc/lispref/buffers.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/buffers.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Buffers, Windows, Backups and Auto-Saving, Top +@node Buffers @chapter Buffers @cindex buffer @@ -34,7 +34,6 @@ @end menu @node Buffer Basics -@comment node-name, next, previous, up @section Buffer Basics @ifnottex @@ -588,7 +587,6 @@ @end defun @node Modification Time -@comment node-name, next, previous, up @section Buffer Modification Time @cindex comparing file modification time @cindex modification time of buffer === modified file 'doc/lispref/commands.texi' --- doc/lispref/commands.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/commands.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Command Loop, Keymaps, Minibuffers, Top +@node Command Loop @chapter Command Loop @cindex editor command loop @cindex command loop @@ -286,7 +286,6 @@ @end defun @node Interactive Codes -@comment node-name, next, previous, up @subsection Code Characters for @code{interactive} @cindex interactive code description @cindex description for interactive codes @@ -508,7 +507,6 @@ @end table @node Interactive Examples -@comment node-name, next, previous, up @subsection Examples of Using @code{interactive} @cindex examples of using @code{interactive} @cindex @code{interactive}, examples of using @@ -783,7 +781,6 @@ @end example @node Command Loop Info -@comment node-name, next, previous, up @section Information from the Command Loop The editor command loop sets several Lisp variables to keep status === modified file 'doc/lispref/compile.texi' --- doc/lispref/compile.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/compile.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Byte Compilation, Advising Functions, Loading, Top +@node Byte Compilation @chapter Byte Compilation @cindex byte compilation @cindex byte-code @@ -80,7 +80,6 @@ results are representative, but actual results may vary. @node Compilation Functions -@comment node-name, next, previous, up @section Byte-Compilation Functions @cindex compilation functions === modified file 'doc/lispref/control.texi' --- doc/lispref/control.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/control.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Control Structures, Variables, Evaluation, Top +@node Control Structures @chapter Control Structures @cindex special forms for control structures @cindex control structures === modified file 'doc/lispref/customize.texi' --- doc/lispref/customize.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/customize.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1997-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Customization, Loading, Macros, Top +@node Customization @chapter Customization Settings @cindex customization item === modified file 'doc/lispref/debugging.texi' --- doc/lispref/debugging.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/debugging.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Debugging, Read and Print, Advising Functions, Top +@node Debugging @chapter Debugging Lisp Programs There are several ways to find and investigate problems in an Emacs === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/display.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Display, System Interface, Processes, Top +@node Display @chapter Emacs Display This chapter describes a number of features related to the display === modified file 'doc/lispref/doclicense.texi' --- doc/lispref/doclicense.texi 2011-01-15 23:16:57 +0000 +++ doc/lispref/doclicense.texi 2012-05-27 01:34:14 +0000 @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c The GNU Free Documentation License. -@node GNU Free Documentation License, GPL, Antinews, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @center Version 1.3, 3 November 2008 === modified file 'doc/lispref/edebug.texi' --- doc/lispref/edebug.texi 2012-05-05 01:16:54 +0000 +++ doc/lispref/edebug.texi 2012-05-27 01:34:14 +0000 @@ -9,7 +9,7 @@ @c , Bugs and Todo List, Top, Top -@node Edebug, Syntax Errors, Debugger, Debugging +@node Edebug @section Edebug @cindex Edebug debugging facility === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-05-09 03:11:41 +0000 +++ doc/lispref/elisp.texi 2012-05-27 01:34:14 +0000 @@ -156,7 +156,7 @@ @ifnottex -@node Top, Introduction, (dir), (dir) +@node Top @top Emacs Lisp @insertcopying @@ -1597,7 +1597,7 @@ @end ifclear @ignore -@node New Symbols, , Index, Top +@node New Symbols @unnumbered New Symbols Since the Previous Edition @printindex tp === modified file 'doc/lispref/errors.texi' --- doc/lispref/errors.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/errors.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Standard Errors, Standard Keymaps, GNU Emacs Internals, Top +@node Standard Errors @appendix Standard Errors @cindex standard errors === modified file 'doc/lispref/eval.texi' --- doc/lispref/eval.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/eval.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1994, 1998, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Evaluation, Control Structures, Symbols, Top +@node Evaluation @chapter Evaluation @cindex evaluation @cindex interpreter === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/files.texi 2012-05-27 01:34:14 +0000 @@ -3,8 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Files, Backups and Auto-Saving, Documentation, Top -@comment node-name, next, previous, up +@node Files @chapter Files This chapter describes the Emacs Lisp functions and variables to @@ -250,7 +249,6 @@ @end defvar @node Subroutines of Visiting -@comment node-name, next, previous, up @subsection Subroutines of Visiting The @code{find-file-noselect} function uses two important subroutines @@ -506,7 +504,6 @@ Name}). @node Reading from Files -@comment node-name, next, previous, up @section Reading from Files @cindex reading from files @@ -569,7 +566,6 @@ @ref{Magic File Names}. @node Writing to Files -@comment node-name, next, previous, up @section Writing to Files @cindex writing to files @@ -789,7 +785,6 @@ @end menu @node Testing Accessibility -@comment node-name, next, previous, up @subsection Testing Accessibility @cindex accessibility of a file @cindex file accessibility @@ -947,7 +942,6 @@ @end defun @node Kinds of Files -@comment node-name, next, previous, up @subsection Distinguishing Kinds of Files This section describes how to distinguish various kinds of files, such @@ -1100,7 +1094,6 @@ @xref{Buffer File Name}, for related information. @node File Attributes -@comment node-name, next, previous, up @subsection Other Information about Files This section describes the functions for getting detailed @@ -1918,7 +1911,6 @@ @end defun @node Directory Names -@comment node-name, next, previous, up @subsection Directory Names @cindex directory name @cindex file name of directory === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/frames.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Frames, Positions, Windows, Top +@node Frames @chapter Frames @cindex frame === modified file 'doc/lispref/functions.texi' --- doc/lispref/functions.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/functions.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Functions, Macros, Variables, Top +@node Functions @chapter Functions A Lisp program is composed mainly of Lisp functions. This chapter === modified file 'doc/lispref/gpl.texi' --- doc/lispref/gpl.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/gpl.texi 2012-05-27 01:34:14 +0000 @@ -1,7 +1,6 @@ @c -*-texinfo-*- -@node GPL, Tips, GNU Free Documentation License, Top -@comment node-name, next, previous, up +@node GPL @appendix GNU General Public License @c The GNU General Public License. @center Version 3, 29 June 2007 === modified file 'doc/lispref/hash.texi' --- doc/lispref/hash.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/hash.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Hash Tables, Symbols, Sequences Arrays Vectors, Top +@node Hash Tables @chapter Hash Tables @cindex hash tables @cindex lookup tables === modified file 'doc/lispref/help.texi' --- doc/lispref/help.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/help.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Documentation, Files, Modes, Top +@node Documentation @chapter Documentation @cindex documentation strings @@ -34,7 +34,6 @@ @end menu @node Documentation Basics -@comment node-name, next, previous, up @section Documentation Basics @cindex documentation conventions @cindex writing a documentation string === modified file 'doc/lispref/hooks.texi' --- doc/lispref/hooks.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/hooks.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1993, 1998, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Standard Hooks, Index, Standard Keymaps, Top +@node Standard Hooks @appendix Standard Hooks @cindex standard hooks @cindex hook variables, list of === modified file 'doc/lispref/index.texi' --- doc/lispref/index.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/index.texi 2012-05-27 01:34:14 +0000 @@ -18,7 +18,7 @@ @c pindex is used for .el files and Unix programs -@node Index, , Standard Hooks, Top +@node Index @unnumbered Index @c Print the indices === modified file 'doc/lispref/internals.texi' --- doc/lispref/internals.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/internals.texi 2012-05-27 01:34:14 +0000 @@ -2,8 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1993, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node GNU Emacs Internals, Standard Errors, Tips, Top -@comment node-name, next, previous, up +@node GNU Emacs Internals @appendix GNU Emacs Internals This chapter describes how the runnable Emacs executable is dumped with === modified file 'doc/lispref/intro.texi' --- doc/lispref/intro.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/intro.texi 2012-05-27 01:34:14 +0000 @@ -3,8 +3,7 @@ @c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Introduction, Lisp Data Types, Top, Top -@comment node-name, next, previous, up +@node Introduction @chapter Introduction Most of the GNU Emacs text editor is written in the programming === modified file 'doc/lispref/keymaps.texi' --- doc/lispref/keymaps.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/keymaps.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1994, 1998-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Keymaps, Modes, Command Loop, Top +@node Keymaps @chapter Keymaps @cindex keymap === modified file 'doc/lispref/lists.texi' --- doc/lispref/lists.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/lists.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Lists, Sequences Arrays Vectors, Strings and Characters, Top +@node Lists @chapter Lists @cindex lists @cindex element (of list) @@ -369,7 +369,6 @@ @end defun @node Building Lists -@comment node-name, next, previous, up @section Building Cons Cells and Lists @cindex cons cells @cindex building lists === modified file 'doc/lispref/loading.texi' --- doc/lispref/loading.texi 2012-05-10 02:57:10 +0000 +++ doc/lispref/loading.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Loading, Byte Compilation, Customization, Top +@node Loading @chapter Loading @cindex loading @cindex library === modified file 'doc/lispref/macros.texi' --- doc/lispref/macros.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/macros.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Macros, Customization, Functions, Top +@node Macros @chapter Macros @cindex macros === modified file 'doc/lispref/maps.texi' --- doc/lispref/maps.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/maps.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Standard Keymaps, Standard Hooks, Standard Errors, Top +@node Standard Keymaps @appendix Standard Keymaps @cindex keymaps, standard === modified file 'doc/lispref/markers.texi' --- doc/lispref/markers.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/markers.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Markers, Text, Positions, Top +@node Markers @chapter Markers @cindex markers === modified file 'doc/lispref/minibuf.texi' --- doc/lispref/minibuf.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/minibuf.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Minibuffers, Command Loop, Read and Print, Top +@node Minibuffers @chapter Minibuffers @cindex arguments, reading @cindex complex arguments === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/modes.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Modes, Documentation, Keymaps, Top +@node Modes @chapter Major and Minor Modes @cindex mode === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/nonascii.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Non-ASCII Characters, Searching and Matching, Text, Top +@node Non-ASCII Characters @chapter Non-@acronym{ASCII} Characters @cindex multibyte characters @cindex characters, multi-byte === modified file 'doc/lispref/numbers.texi' --- doc/lispref/numbers.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/numbers.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Numbers, Strings and Characters, Lisp Data Types, Top +@node Numbers @chapter Numbers @cindex integers @cindex numbers @@ -31,7 +31,6 @@ @end menu @node Integer Basics -@comment node-name, next, previous, up @section Integer Basics The range of values for an integer depends on the machine. The === modified file 'doc/lispref/objects.texi' --- doc/lispref/objects.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/objects.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Lisp Data Types, Numbers, Introduction, Top +@node Lisp Data Types @chapter Lisp Data Types @cindex object @cindex Lisp object @@ -60,7 +60,6 @@ @end menu @node Printed Representation -@comment node-name, next, previous, up @section Printed Representation and Read Syntax @cindex printed representation @cindex read syntax @@ -107,7 +106,6 @@ @code{read}, the basic function for reading objects. @node Comments -@comment node-name, next, previous, up @section Comments @cindex comments @cindex @samp{;} in comment @@ -913,7 +911,6 @@ @end ifnottex @node Association List Type -@comment node-name, next, previous, up @subsubsection Association List Type An @dfn{association list} or @dfn{alist} is a specially-constructed === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/os.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node System Interface, Packaging, Display, Top +@node System Interface @chapter Operating System Interface This chapter is about starting and getting out of Emacs, access to @@ -611,7 +611,6 @@ @end menu @node Killing Emacs -@comment node-name, next, previous, up @subsection Killing Emacs @cindex killing Emacs === modified file 'doc/lispref/package.texi' --- doc/lispref/package.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/package.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 2010-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Packaging, Antinews, System Interface, Top +@node Packaging @chapter Preparing Lisp code for distribution @cindex package @cindex Lisp package === modified file 'doc/lispref/positions.texi' --- doc/lispref/positions.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/positions.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Positions, Markers, Frames, Top +@node Positions @chapter Positions @cindex position (in buffer) @@ -614,7 +614,6 @@ @end defun @node List Motion -@comment node-name, next, previous, up @subsection Moving over Balanced Expressions @cindex sexp motion @cindex Lisp expression motion @@ -725,7 +724,6 @@ @end defvar @node Skipping Characters -@comment node-name, next, previous, up @subsection Skipping Characters @cindex skipping characters === modified file 'doc/lispref/processes.texi' --- doc/lispref/processes.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/processes.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Processes, Display, Abbrevs, Top +@node Processes @chapter Processes @cindex child process @cindex parent process === modified file 'doc/lispref/searching.texi' --- doc/lispref/searching.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/searching.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top +@node Searching and Matching @chapter Searching and Matching @cindex searching @@ -831,7 +831,6 @@ an @code{invalid-regexp} error is signaled. @node Regexp Example -@comment node-name, next, previous, up @subsection Complex Regexp Example Here is a complicated regexp which was formerly used by Emacs to === modified file 'doc/lispref/sequences.texi' --- doc/lispref/sequences.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/sequences.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Sequences Arrays Vectors, Hash Tables, Lists, Top +@node Sequences Arrays Vectors @chapter Sequences, Arrays, and Vectors @cindex sequence === modified file 'doc/lispref/streams.texi' --- doc/lispref/streams.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/streams.texi 2012-05-27 01:34:14 +0000 @@ -2,8 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Read and Print, Minibuffers, Debugging, Top -@comment node-name, next, previous, up +@node Read and Print @chapter Reading and Printing Lisp Objects @dfn{Printing} and @dfn{reading} are the operations of converting Lisp === modified file 'doc/lispref/strings.texi' --- doc/lispref/strings.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/strings.texi 2012-05-27 01:34:14 +0000 @@ -3,8 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Strings and Characters, Lists, Numbers, Top -@comment node-name, next, previous, up +@node Strings and Characters @chapter Strings and Characters @cindex strings @cindex character arrays @@ -554,7 +553,6 @@ @ref{Regexp Search}. @node String Conversion -@comment node-name, next, previous, up @section Conversion of Characters and Strings @cindex conversion of strings @@ -670,7 +668,6 @@ @end table @node Formatting Strings -@comment node-name, next, previous, up @section Formatting Strings @cindex formatting strings @cindex strings, formatting them @@ -903,7 +900,6 @@ characters. @node Case Conversion -@comment node-name, next, previous, up @section Case Conversion in Lisp @cindex upper case @cindex lower case === modified file 'doc/lispref/symbols.texi' --- doc/lispref/symbols.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/symbols.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Symbols, Evaluation, Hash Tables, Top +@node Symbols @chapter Symbols @cindex symbol @@ -30,7 +30,7 @@ for recording miscellaneous information. @end menu -@node Symbol Components, Definitions, Symbols, Symbols +@node Symbol Components @section Symbol Components @cindex symbol components @@ -112,7 +112,7 @@ @result{} # @end example -@node Definitions, Creating Symbols, Symbol Components, Symbols +@node Definitions @section Defining Symbols @cindex definitions of symbols @@ -161,7 +161,7 @@ containing links to the relevant variable, function, or macro definitions. @xref{Name Help,,, emacs, The GNU Emacs Manual}. -@node Creating Symbols, Property Lists, Definitions, Symbols +@node Creating Symbols @section Creating and Interning Symbols @cindex reading symbols @@ -376,7 +376,7 @@ it returns @code{nil}. @end defun -@node Property Lists,, Creating Symbols, Symbols +@node Property Lists @section Property Lists @cindex property list @cindex plist === modified file 'doc/lispref/syntax.texi' --- doc/lispref/syntax.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/syntax.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Syntax Tables, Abbrevs, Searching and Matching, Top +@node Syntax Tables @chapter Syntax Tables @cindex parsing buffer text @cindex syntax table === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/text.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Text, Non-ASCII Characters, Markers, Top +@node Text @chapter Text @cindex text @@ -823,7 +823,6 @@ @end menu @node Kill Ring Concepts -@comment node-name, next, previous, up @subsection Kill Ring Concepts The kill ring records killed text as strings in a list, most recent @@ -850,7 +849,6 @@ list. @node Kill Functions -@comment node-name, next, previous, up @subsection Functions for Killing @code{kill-region} is the usual subroutine for killing text. Any @@ -967,7 +965,6 @@ @end defopt @node Yank Commands -@comment node-name, next, previous, up @subsection Functions for Yanking This section describes higher-level commands for yanking, which are @@ -1123,7 +1120,6 @@ @end defvar @node Internals of Kill Ring -@comment node-name, next, previous, up @subsection Internals of the Kill Ring The variable @code{kill-ring} holds the kill ring contents, in the @@ -1196,7 +1192,6 @@ @end defopt @node Undo -@comment node-name, next, previous, up @section Undo @cindex redo @@ -1399,7 +1394,6 @@ @end defopt @node Filling -@comment node-name, next, previous, up @section Filling @cindex filling text @@ -1777,7 +1771,6 @@ @end defopt @node Auto Filling -@comment node-name, next, previous, up @section Auto Filling @cindex filling, automatic @cindex Auto Fill mode @@ -2072,7 +2065,6 @@ @end deffn @node Columns -@comment node-name, next, previous, up @section Counting Columns @cindex columns @cindex counting columns @@ -2415,7 +2407,6 @@ @end deffn @node Indent Tabs -@comment node-name, next, previous, up @subsection Adjustable ``Tab Stops'' @cindex tabs stops for indentation @@ -2474,7 +2465,6 @@ @end deffn @node Case Changes -@comment node-name, next, previous, up @section Case Changes @cindex case conversion in buffers === modified file 'doc/lispref/tips.texi' --- doc/lispref/tips.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/tips.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Tips, GNU Emacs Internals, GPL, Top +@node Tips @appendix Tips and Conventions @cindex tips for writing Lisp @cindex standards of coding style === modified file 'doc/lispref/variables.texi' --- doc/lispref/variables.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/variables.texi 2012-05-27 01:34:14 +0000 @@ -2,7 +2,7 @@ @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Variables, Functions, Control Structures, Top +@node Variables @chapter Variables @cindex variable === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2012-05-27 01:06:44 +0000 +++ doc/lispref/windows.texi 2012-05-27 01:34:14 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1990-1995, 1998-1999, 2001-2012 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@node Windows, Frames, Buffers, Top +@node Windows @chapter Windows This chapter describes the functions and variables related to Emacs ------------------------------------------------------------ revno: 108387 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 18:25:06 -0700 message: Nuke hand-written node pointers in doc/emacs Let makeinfo figure them out, as is recommended. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-05-22 18:31:19 +0000 +++ doc/emacs/ChangeLog 2012-05-27 01:25:06 +0000 @@ -1,3 +1,14 @@ +2012-05-27 Glenn Morris + + * ack.texi, anti.texi, basic.texi, buffers.texi, building.texi: + * cmdargs.texi, commands.texi, display.texi, emacs.texi: + * entering.texi, files.texi, fixit.texi, frames.texi, glossary.texi: + * gnu.texi, help.texi, indent.texi, killing.texi, kmacro.texi: + * m-x.texi, macos.texi, maintaining.texi, mark.texi, mini.texi: + * misc.texi, modes.texi, msdog.texi, mule.texi, programs.texi: + * regs.texi, screen.texi, search.texi, text.texi, trouble.texi: + * windows.texi, xresources.texi: Nuke hand-written node pointers. + 2012-05-22 Glenn Morris * emacs.texi (Acknowledgments): Add another contributor. === modified file 'doc/emacs/ack.texi' --- doc/emacs/ack.texi 2012-04-27 03:10:38 +0000 +++ doc/emacs/ack.texi 2012-05-27 01:25:06 +0000 @@ -3,7 +3,7 @@ @c Copyright (C) 1994-1997, 1999-2012 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c -@node Acknowledgments, Screen, Concept Index, Top +@node Acknowledgments @unnumbered Acknowledgments Many people have contributed code included in the Free Software === modified file 'doc/emacs/anti.texi' --- doc/emacs/anti.texi 2012-01-23 06:52:18 +0000 +++ doc/emacs/anti.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 2005-2012 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Antinews, Mac OS / GNUstep, X Resources, Top +@node Antinews @appendix Emacs 23 Antinews @c Update the emacs.texi Antinews menu entry with the above version number. === modified file 'doc/emacs/basic.texi' --- doc/emacs/basic.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/basic.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Basic, Minibuffer, Exiting, Top +@node Basic @chapter Basic Editing Commands @kindex C-h t === modified file 'doc/emacs/buffers.texi' --- doc/emacs/buffers.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/buffers.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Buffers, Windows, Files, Top +@node Buffers @chapter Using Multiple Buffers @cindex buffers === modified file 'doc/emacs/building.texi' --- doc/emacs/building.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/building.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Building, Maintaining, Programs, Top +@node Building @chapter Compiling and Testing Programs @cindex building programs @cindex program building === modified file 'doc/emacs/cmdargs.texi' --- doc/emacs/cmdargs.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/cmdargs.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Emacs Invocation, X Resources, GNU Free Documentation License, Top +@node Emacs Invocation @appendix Command Line Arguments for Emacs Invocation @cindex command line arguments @cindex arguments (command line) === modified file 'doc/emacs/commands.texi' --- doc/emacs/commands.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/commands.texi 2012-05-27 01:25:06 +0000 @@ -15,7 +15,7 @@ @raisesections @end ifnottex -@node User Input, Keys, Screen, Top +@node User Input @section Kinds of User Input @cindex input with the keyboard @cindex keyboard input @@ -80,7 +80,7 @@ input events, see @ref{Input Events,,, elisp, The Emacs Lisp Reference Manual}. -@node Keys, Commands, User Input, Top +@node Keys @section Keys Some Emacs commands are invoked by just one input event; for @@ -133,7 +133,7 @@ to @kbd{C-M-h}, which does something else entirely. You can, however, use @key{F1} to display a list of commands starting with @key{ESC}. -@node Commands, Entering Emacs, Keys, Top +@node Commands @section Keys and Commands @cindex binding === modified file 'doc/emacs/display.texi' --- doc/emacs/display.texi 2012-04-30 06:51:44 +0000 +++ doc/emacs/display.texi 2012-05-27 01:25:06 +0000 @@ -3,7 +3,7 @@ @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Display, Search, Registers, Top +@node Display @chapter Controlling the Display Since only part of a large buffer fits in the window, Emacs has to === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2012-05-22 03:35:14 +0000 +++ doc/emacs/emacs.texi 2012-05-27 01:25:06 +0000 @@ -109,7 +109,7 @@ @ifnottex -@node Top, Distrib, (dir), (dir) +@node Top @top The Emacs Editor Emacs is the extensible, customizable, self-documenting real-time @@ -1286,7 +1286,7 @@ on Macintosh (and GNUstep). @end iftex -@node Distrib, Intro, Top, Top +@node Distrib @unnumbered Distribution GNU Emacs is @dfn{free software}; this means that everyone is free to @@ -1343,7 +1343,7 @@ @end display @iftex -@node Acknowledgments, Intro, Distrib, Top +@node Acknowledgments @unnumberedsec Acknowledgments Contributors to GNU Emacs include Jari Aalto, Per Abrahamsen, Tomas @@ -1450,7 +1450,7 @@ Neal Ziring, Teodor Zlatanov, and Detlev Zundel. @end iftex -@node Intro, Glossary, Distrib, Top +@node Intro @unnumbered Introduction You are reading about GNU Emacs, the GNU incarnation of the @@ -1531,11 +1531,11 @@ @include custom.texi @include trouble.texi -@node Copying, GNU Free Documentation License, Service, Top +@node Copying @appendix GNU GENERAL PUBLIC LICENSE @include gpl.texi -@node GNU Free Documentation License, Emacs Invocation, Copying, Top +@node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi @@ -1562,36 +1562,36 @@ @c It is not after Concept Index for similar reasons. @iftex -@node Key Index, Command Index, Glossary, Top +@node Key Index @unnumbered Key (Character) Index @printindex ky @end iftex @ifnottex -@node Key Index, Option Index, Glossary, Top +@node Key Index @unnumbered Key (Character) Index @printindex ky -@node Option Index, Command Index, Key Index, Top +@node Option Index @unnumbered Command-Line Options Index @printindex op -@node Command Index, Variable Index, Option Index, Top +@node Command Index @unnumbered Command and Function Index @printindex fn @end ifnottex @iftex -@node Command Index, Variable Index, Key Index, Top +@node Command Index @unnumbered Command and Function Index @printindex fn @end iftex -@node Variable Index, Concept Index, Command Index, Top +@node Variable Index @unnumbered Variable Index @printindex vr -@node Concept Index, Acknowledgments, Variable Index, Top +@node Concept Index @unnumbered Concept Index @printindex cp === modified file 'doc/emacs/entering.texi' --- doc/emacs/entering.texi 2012-04-14 08:25:06 +0000 +++ doc/emacs/entering.texi 2012-05-27 01:25:06 +0000 @@ -12,7 +12,7 @@ @raisesections @end ifnottex -@node Entering Emacs, Exiting, Commands, Top +@node Entering Emacs @section Entering Emacs @cindex entering Emacs @cindex starting Emacs @@ -85,7 +85,7 @@ or @code{t}, which means to display the @file{*scratch*} buffer. @end ignore -@node Exiting, Basic, Entering Emacs, Top +@node Exiting @section Exiting Emacs @cindex exiting @cindex killing Emacs === modified file 'doc/emacs/files.texi' --- doc/emacs/files.texi 2012-05-10 00:58:16 +0000 +++ doc/emacs/files.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Files, Buffers, Keyboard Macros, Top +@node Files @chapter File Handling @cindex files === modified file 'doc/emacs/fixit.texi' --- doc/emacs/fixit.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/fixit.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Fixit, Keyboard Macros, Search, Top +@node Fixit @chapter Commands for Fixing Typos @cindex typos, fixing @cindex mistakes, correcting === modified file 'doc/emacs/frames.texi' --- doc/emacs/frames.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/frames.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Frames, International, Windows, Top +@node Frames @chapter Frames and Graphical Displays @cindex frames === modified file 'doc/emacs/glossary.texi' --- doc/emacs/glossary.texi 2012-04-14 08:25:06 +0000 +++ doc/emacs/glossary.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Glossary, Key Index, Intro, Top +@node Glossary @unnumbered Glossary @table @asis === modified file 'doc/emacs/gnu.texi' --- doc/emacs/gnu.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/gnu.texi 2012-05-27 01:25:06 +0000 @@ -10,7 +10,7 @@ @c Modified versions may not be made. @ifclear justgnu -@node Manifesto,, Microsoft Windows, Top +@node Manifesto @unnumbered The GNU Manifesto @end ifclear @ifset justgnu === modified file 'doc/emacs/help.texi' --- doc/emacs/help.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/help.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Help, Mark, M-x, Top +@node Help @chapter Help @kindex Help @cindex help === modified file 'doc/emacs/indent.texi' --- doc/emacs/indent.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/indent.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Indentation, Text, Modes, Top +@node Indentation @chapter Indentation @cindex indentation @cindex tabs === modified file 'doc/emacs/killing.texi' --- doc/emacs/killing.texi 2012-03-04 06:50:18 +0000 +++ doc/emacs/killing.texi 2012-05-27 01:25:06 +0000 @@ -3,7 +3,7 @@ @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Killing, Registers, Mark, Top +@node Killing @chapter Killing and Moving Text In Emacs, @dfn{killing} means erasing text and copying it into the === modified file 'doc/emacs/kmacro.texi' --- doc/emacs/kmacro.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/kmacro.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Keyboard Macros, Files, Fixit, Top +@node Keyboard Macros @chapter Keyboard Macros @cindex defining keyboard macros @cindex keyboard macro === modified file 'doc/emacs/m-x.texi' --- doc/emacs/m-x.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/m-x.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node M-x, Help, Minibuffer, Top +@node M-x @chapter Running Commands by Name Every Emacs command has a name that you can use to run it. For === modified file 'doc/emacs/macos.texi' --- doc/emacs/macos.texi 2012-04-10 06:54:43 +0000 +++ doc/emacs/macos.texi 2012-05-27 01:25:06 +0000 @@ -1,7 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 2000-2012 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Mac OS / GNUstep, Microsoft Windows, Antinews, Top +@node Mac OS / GNUstep @appendix Emacs and Mac OS / GNUstep @cindex Mac OS X @cindex Macintosh @@ -31,7 +31,7 @@ * GNUstep Support:: Details on status of GNUstep support. @end menu -@node Mac / GNUstep Basics, Mac / GNUstep Customization, , Mac OS / GNUstep +@node Mac / GNUstep Basics @section Basic Emacs usage under Mac OS and GNUstep By default, the @key{alt} and @key{option} keys are the same as @@ -84,7 +84,7 @@ of setting PATH is recommended on Mac OS X 10.5 and later, using the @file{/etc/paths} files and the @file{/etc/paths.d} directory. -@node Mac / GNUstep Customization, Mac / GNUstep Events, Mac / GNUstep Basics, Mac OS / GNUstep +@node Mac / GNUstep Customization @section Mac / GNUstep Customization Emacs can be customized in several ways in addition to the standard @@ -125,7 +125,7 @@ @end table -@node Mac / GNUstep Events, GNUstep Support, Mac / GNUstep Customization, Mac OS / GNUstep +@node Mac / GNUstep Events @section Windowing System Events under Mac OS / GNUstep Nextstep applications receive a number of special events which have @@ -202,7 +202,7 @@ services and receive the results back. Note that you may need to restart Emacs to access newly-available services. -@node GNUstep Support, , Mac / GNUstep Events, Mac OS / GNUstep +@node GNUstep Support @section GNUstep Support Emacs can be built and run under GNUstep, but there are still === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/maintaining.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Maintaining, Abbrevs, Building, Top +@node Maintaining @chapter Maintaining Large Programs This chapter describes Emacs features for maintaining large === modified file 'doc/emacs/mark.texi' --- doc/emacs/mark.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/mark.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Mark, Killing, Help, Top +@node Mark @chapter The Mark and the Region @cindex mark @cindex setting a mark === modified file 'doc/emacs/mini.texi' --- doc/emacs/mini.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/mini.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Minibuffer, M-x, Basic, Top +@node Minibuffer @chapter The Minibuffer @cindex minibuffer === modified file 'doc/emacs/misc.texi' --- doc/emacs/misc.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/misc.texi 2012-05-27 01:25:06 +0000 @@ -1324,7 +1324,7 @@ with your device and will probably only see garbage output in the window. -@node Emacs Server, Printing, Shell, Top +@node Emacs Server @section Using Emacs as a Server @pindex emacsclient @cindex Emacs as a server @@ -1642,7 +1642,7 @@ files(s) in an existing frame rather than a new client frame, negating the effect of @samp{-t}. -@node Printing, Sorting, Emacs Server, Top +@node Printing @section Printing Hard Copies @cindex hardcopy @cindex printing @@ -1710,7 +1710,7 @@ * Printing Package:: An optional advanced printing interface. @end menu -@node PostScript, PostScript Variables,, Printing +@node PostScript @subsection PostScript Hardcopy These commands convert buffer contents to PostScript, @@ -1779,7 +1779,7 @@ can be customized in group @code{handwrite}. This function only supports ISO 8859-1 characters. -@node PostScript Variables, Printing Package, PostScript, Printing +@node PostScript Variables @subsection Variables for PostScript Hardcopy @vindex ps-lpr-command @@ -1874,7 +1874,7 @@ Many other customization variables for these commands are defined and described in the Lisp files @file{ps-print.el} and @file{ps-mule.el}. -@node Printing Package,, PostScript Variables, Printing +@node Printing Package @subsection Printing Package @cindex Printing package @@ -2098,7 +2098,7 @@ hexl-@key{RET}} for details. -@node Saving Emacs Sessions, Recursive Edit, Editing Binary Files, Top +@node Saving Emacs Sessions @section Saving Emacs Sessions @cindex saving sessions @cindex restore session @@ -2164,7 +2164,7 @@ If you want to save minibuffer history from one session to another, use the @code{savehist} library. -@node Recursive Edit, Emulation, Saving Emacs Sessions, Top +@node Recursive Edit @section Recursive Editing Levels @cindex recursive editing level @cindex editing level, recursive @@ -2232,7 +2232,7 @@ approaches give you more flexibility to go back to unfinished tasks in the order you choose. -@node Emulation, Hyperlinking, Recursive Edit, Top +@node Emulation @section Emulation @cindex emulating other editors @cindex other editors @@ -2324,7 +2324,7 @@ key bindings. @end table -@node Hyperlinking, Amusements, Emulation, Top +@node Hyperlinking @section Hyperlinking and Navigation Features The following subsections describe convenience features for handling @@ -2475,7 +2475,7 @@ find the one you select (@code{ffap-menu}). @end table -@node Amusements, Packages, Hyperlinking, Top +@node Amusements @section Other Amusements @cindex boredom === modified file 'doc/emacs/modes.texi' --- doc/emacs/modes.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/modes.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Modes, Indentation, International, Top +@node Modes @chapter Major and Minor Modes Emacs contains many @dfn{editing modes} that alter its basic === modified file 'doc/emacs/msdog.texi' --- doc/emacs/msdog.texi 2012-04-14 20:24:45 +0000 +++ doc/emacs/msdog.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top +@node Microsoft Windows @appendix Emacs and Microsoft Windows/MS-DOS @cindex Microsoft Windows @cindex MS-Windows, Emacs peculiarities === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2012-05-10 02:54:07 +0000 +++ doc/emacs/mule.texi 2012-05-27 01:25:06 +0000 @@ -1,7 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node International, Modes, Frames, Top +@node International @chapter International Character Set Support @c This node is referenced in the tutorial. When renaming or deleting @c it, the tutorial needs to be adjusted. (TUTORIAL.de) === modified file 'doc/emacs/programs.texi' --- doc/emacs/programs.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/programs.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Programs, Building, Text, Top +@node Programs @chapter Editing Programs @cindex Lisp editing @cindex C editing === modified file 'doc/emacs/regs.texi' --- doc/emacs/regs.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/regs.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Registers, Display, Killing, Top +@node Registers @chapter Registers @cindex registers === modified file 'doc/emacs/screen.texi' --- doc/emacs/screen.texi 2012-04-14 08:25:06 +0000 +++ doc/emacs/screen.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Screen, User Input, Acknowledgments, Top +@node Screen @chapter The Organization of the Screen @cindex screen @cindex frame === modified file 'doc/emacs/search.texi' --- doc/emacs/search.texi 2012-04-30 06:53:56 +0000 +++ doc/emacs/search.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Search, Fixit, Display, Top +@node Search @chapter Searching and Replacement @cindex searching @cindex finding strings within text @@ -981,7 +981,7 @@ * Query Replace:: How to use querying. @end menu -@node Unconditional Replace, Regexp Replace, Replace, Replace +@node Unconditional Replace @subsection Unconditional Replacement @findex replace-string @@ -1011,7 +1011,7 @@ @xref{Replacement and Case}, for details about case-sensitivity in replace commands. -@node Regexp Replace, Replacement and Case, Unconditional Replace, Replace +@node Regexp Replace @subsection Regexp Replacement @findex replace-regexp @@ -1098,7 +1098,7 @@ \,(format "%-72sABC%05d" \& \#) @key{RET} @end example -@node Replacement and Case, Query Replace, Regexp Replace, Replace +@node Replacement and Case @subsection Replace Commands and Case If the first argument of a replace command is all lower case, the @@ -1130,7 +1130,7 @@ @code{case-replace} or @code{case-fold-search} is set to @code{nil}, replacement is done without case conversion. -@node Query Replace,, Replacement and Case, Replace +@node Query Replace @subsection Query Replace @cindex query replace === modified file 'doc/emacs/text.texi' --- doc/emacs/text.texi 2012-05-09 03:06:08 +0000 +++ doc/emacs/text.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Text, Programs, Indentation, Top +@node Text @chapter Commands for Human Languages @cindex text @cindex manipulating text === modified file 'doc/emacs/trouble.texi' --- doc/emacs/trouble.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/trouble.texi 2012-05-27 01:25:06 +0000 @@ -133,7 +133,7 @@ finished executing. @xref{Undo}, for more information about the undo facility. -@node Lossage, Bugs, Quitting, Top +@node Lossage @section Dealing with Emacs Trouble This section describes how to recognize and deal with situations in @@ -373,7 +373,7 @@ emergency escape---but there are cases where it won't work, when system call hangs or when Emacs is stuck in a tight loop in C code. -@node Bugs, Contributing, Lossage, Top +@node Bugs @section Reporting Bugs @cindex bugs @@ -1064,7 +1064,7 @@ form that is clearly safe to install. @end itemize -@node Contributing, Service, Bugs, Top +@node Contributing @section Contributing to Emacs Development @cindex contributing to Emacs @@ -1089,7 +1089,7 @@ For more information on how to contribute, see the @file{etc/CONTRIBUTE} file in the Emacs distribution. -@node Service, Copying, Contributing, Top +@node Service @section How To Get Help with GNU Emacs If you need help installing, using or changing GNU Emacs, there are two === modified file 'doc/emacs/windows.texi' --- doc/emacs/windows.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/windows.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node Windows, Frames, Buffers, Top +@node Windows @chapter Multiple Windows @cindex windows in Emacs @cindex multiple windows in Emacs === modified file 'doc/emacs/xresources.texi' --- doc/emacs/xresources.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/xresources.texi 2012-05-27 01:25:06 +0000 @@ -2,7 +2,7 @@ @c Copyright (C) 1987, 1993-1995, 1997, 2001-2012 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. -@node X Resources, Antinews, Emacs Invocation, Top +@node X Resources @appendix X Options and Resources You can customize some X-related aspects of Emacs behavior using X ------------------------------------------------------------ revno: 108386 [merge] committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 18:06:44 -0700 message: Merge from emacs-24; up to r108017 diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-12 00:57:48 +0000 +++ doc/lispref/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,3 +1,61 @@ +2012-05-27 Chong Yidong + + * functions.texi (Obsolete Functions): + Fix doc for set-advertised-calling-convention. + + * modes.texi (Mode Help): Fix describe-mode. + + * display.texi (Face Functions): Fix define-obsolete-face-alias. + + * variables.texi (Variable Aliases): Fix make-obsolete-variable. + +2012-05-27 Martin Rudalics + + * commands.texi (Recursive Editing): recursive-edit is a command. + + * compile.texi (Docs and Compilation): + byte-compile-dynamic-docstrings is an option. + + * debugging.texi (Invoking the Debugger): debug is a command. + + * display.texi (Progress): progress-reporter-update and + progress-reporter-force-update have VALUE argument optional. + (Animated Images): Use non-@code{nil} instead of non-nil. + + * files.texi (Format Conversion Round-Trip): + Use non-@code{nil} instead of non-nil. + + * frames.texi (Creating Frames): make-frame is a command. + (Input Focus): select-frame is a command. + (Pointer Shape): void-text-area-pointer is an option. + + * help.texi (Describing Characters): read-kbd-macro is a command. + (Help Functions): describe-prefix-bindings is a command. + + * markers.texi (Creating Markers): Both arguments of copy-marker + are optional. + + * minibuf.texi (Reading File Names): Use @kbd instead of @code. + + * modes.texi (Mode Line Variables): mode-line-remote and + mode-line-client are not options. + (Imenu): imenu-add-to-menubar is a command. + (SMIE Indentation Helpers): Use non-@code{nil} instead of non-nil. + + * os.texi (Sound Output): play-sound-file is a command. + + * package.texi (Package Archives): Use @key{RET} instead of @kbd{RET}. + + * processes.texi (Signals to Processes): + Use @key{RET} instead of @code{RET}. + (Signals to Processes): signal-process is a command. + + * text.texi (Clickable Text): Use @key{RET} instead of @kbd{RET}. + (Base 64): base64-encode-string is not a command while + base64-decode-region is. + + * windows.texi (Switching Buffers): pop-to-buffer is a command. + 2012-05-12 Glenn Morris * Makefile.in (MKDIR_P): New, set by configure. === modified file 'doc/lispref/commands.texi' --- doc/lispref/commands.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/commands.texi 2012-05-27 01:06:44 +0000 @@ -3210,7 +3210,7 @@ Recursive editing levels are also used when you type @kbd{C-r} in @code{query-replace} or use @kbd{C-x q} (@code{kbd-macro-query}). -@defun recursive-edit +@deffn Command recursive-edit @cindex suspend evaluation This function invokes the editor command loop. It is called automatically by the initialization of Emacs, to let the user begin @@ -3237,7 +3237,7 @@ (simple-rec) @result{} nil @end example -@end defun +@end deffn @deffn Command exit-recursive-edit This function exits from the innermost recursive edit (including === modified file 'doc/lispref/compile.texi' --- doc/lispref/compile.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/compile.texi 2012-05-27 01:06:44 +0000 @@ -290,10 +290,10 @@ -*-byte-compile-dynamic-docstrings: nil;-*- @end example -@defvar byte-compile-dynamic-docstrings +@defopt byte-compile-dynamic-docstrings If this is non-@code{nil}, the byte compiler generates compiled files that are set up for dynamic loading of documentation strings. -@end defvar +@end defopt @node Dynamic Loading @section Dynamic Loading of Individual Functions === modified file 'doc/lispref/debugging.texi' --- doc/lispref/debugging.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/debugging.texi 2012-05-27 01:06:44 +0000 @@ -447,7 +447,7 @@ Here we describe in full detail the function @code{debug} that is used to invoke the debugger. -@defun debug &rest debugger-args +@deffn Command debug &rest debugger-args This function enters the debugger. It switches buffers to a buffer named @file{*Backtrace*} (or @file{*Backtrace*<2>} if it is the second recursive entry to the debugger, etc.), and fills it with information @@ -534,7 +534,7 @@ display messages---for example, to remind yourself of the conditions under which @code{debug} is called. @end table -@end defun +@end deffn @node Internals of Debugger @subsection Internals of the Debugger === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-05-02 13:00:29 +0000 +++ doc/lispref/display.texi 2012-05-27 01:06:44 +0000 @@ -413,7 +413,7 @@ message is printed immediately. @end defun -@defun progress-reporter-update reporter value +@defun progress-reporter-update reporter &optional value This function does the main work of reporting progress of your operation. It displays the message of @var{reporter}, followed by progress percentage determined by @var{value}. If percentage is zero, @@ -434,7 +434,7 @@ likely negate your effort. @end defun -@defun progress-reporter-force-update reporter value &optional new-message +@defun progress-reporter-force-update reporter &optional value new-message This function is similar to @code{progress-reporter-update} except that it prints a message in the echo area unconditionally. @@ -2662,11 +2662,13 @@ (put 'modeline 'face-alias 'mode-line) @end example -@defun define-obsolete-face-alias obsolete-face current-face &optional when -This function defines a face alias and marks it as obsolete, indicating -that it may be removed in future. The optional string @var{when} -indicates when the face was made obsolete (for example, a release number). -@end defun +@defmac define-obsolete-face-alias obsolete-face current-face when +This macro defines @code{obsolete-face} as an alias for +@var{current-face}, and also marks it as obsolete, indicating that it +may be removed in future. @var{when} should be a string indicating +when @code{obsolete-face} was made obsolete (usually a version number +string). +@end defmac @node Auto Faces @subsection Automatic Face Assignment @@ -4904,7 +4906,7 @@ The following functions related to animated images are available. @defun image-animated-p image -This function returns non-nil if @var{image} can be animated. +This function returns non-@code{nil} if @var{image} can be animated. The actual return value is a cons @code{(@var{nimages} . @var{delay})}, where @var{nimages} is the number of frames and @var{delay} is the delay in seconds between them. === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2012-05-10 00:58:16 +0000 +++ doc/lispref/files.texi 2012-05-27 01:06:44 +0000 @@ -3133,10 +3133,10 @@ This command writes the current buffer contents into the file @var{file} in a format based on @var{format}, which is a list of format names. It constructs the actual format starting from @var{format}, then appending -any elements from the value of @code{buffer-file-format} with a non-nil -@var{preserve} flag (see above), if they are not already present in -@var{format}. It then updates @code{buffer-file-format} with this -format, making it the default for future saves. Except for the +any elements from the value of @code{buffer-file-format} with a +non-@code{nil} @var{preserve} flag (see above), if they are not already +present in @var{format}. It then updates @code{buffer-file-format} with +this format, making it the default for future saves. Except for the @var{format} argument, this command is similar to @code{write-file}. In particular, @var{confirm} has the same meaning and interactive treatment as the corresponding argument to @code{write-file}. @xref{Definition of === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2012-05-02 13:00:29 +0000 +++ doc/lispref/frames.texi 2012-05-27 01:06:44 +0000 @@ -108,7 +108,7 @@ To create a new frame, call the function @code{make-frame}. -@defun make-frame &optional alist +@deffn Command make-frame &optional alist This function creates and returns a new frame, displaying the current buffer. @@ -134,7 +134,7 @@ @xref{Input Focus}. The previously selected frame remains selected. On graphical terminals, however, the windowing system may select the new frame for its own reasons. -@end defun +@end deffn @defvar before-make-frame-hook A normal hook run by @code{make-frame} before it creates the frame. @@ -1395,7 +1395,7 @@ of this function is not significant. @end defun -@defun select-frame frame &optional norecord +@deffn Command select-frame frame &optional norecord This function selects frame @var{frame}, temporarily disregarding the focus of the X server if any. The selection of @var{frame} lasts until the next time the user does something to select a different frame, or @@ -1418,7 +1418,7 @@ In general, you should never use @code{select-frame} in a way that could switch to a different terminal without switching back when you're done. -@end defun +@end deffn Emacs cooperates with the window system by arranging to select frames as the server and window manager request. It does so by generating a === modified file 'doc/lispref/functions.texi' --- doc/lispref/functions.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/functions.texi 2012-05-27 01:06:44 +0000 @@ -1178,12 +1178,14 @@ In addition, you can mark a certain a particular calling convention for a function as obsolete: -@defun set-advertised-calling-convention function signature +@defun set-advertised-calling-convention function signature when This function specifies the argument list @var{signature} as the correct way to call @var{function}. This causes the Emacs byte compiler to issue a warning whenever it comes across an Emacs Lisp program that calls @var{function} any other way (however, it will -still allow the code to be byte compiled). +still allow the code to be byte compiled). @var{when} should be a +string indicating when the variable was first made obsolete (usually a +version number string). For instance, in old versions of Emacs the @code{sit-for} function accepted three arguments, like this @@ -1198,7 +1200,7 @@ @example (set-advertised-calling-convention - 'sit-for '(seconds &optional nodisp)) + 'sit-for '(seconds &optional nodisp) "22.1") @end example @end defun === modified file 'doc/lispref/help.texi' --- doc/lispref/help.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/help.texi 2012-05-27 01:06:44 +0000 @@ -511,7 +511,7 @@ @end smallexample @end defun -@defun read-kbd-macro string &optional need-vector +@deffn Command read-kbd-macro string &optional need-vector This function is used mainly for operating on keyboard macros, but it can also be used as a rough inverse for @code{key-description}. You call it with a string containing key descriptions, separated by spaces; @@ -519,7 +519,7 @@ (This may or may not be a single valid key sequence, depending on what events you use; @pxref{Key Sequences}.) If @var{need-vector} is non-@code{nil}, the return value is always a vector. -@end defun +@end deffn @node Help Functions @section Help Functions @@ -626,12 +626,12 @@ variable's default value is @code{describe-prefix-bindings}. @end defvar -@defun describe-prefix-bindings +@deffn Command describe-prefix-bindings This function calls @code{describe-bindings} to display a list of all the subcommands of the prefix key of the most recent key sequence. The prefix described consists of all but the last event of that key sequence. (The last event is, presumably, the help character.) -@end defun +@end deffn The following two functions are meant for modes that want to provide help without relinquishing control, such as the ``electric'' modes. === modified file 'doc/lispref/markers.texi' --- doc/lispref/markers.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/markers.texi 2012-05-27 01:06:44 +0000 @@ -205,7 +205,7 @@ @end example @end defun -@defun copy-marker marker-or-integer &optional insertion-type +@defun copy-marker &optional marker-or-integer insertion-type If passed a marker as its argument, @code{copy-marker} returns a new marker that points to the same place and the same buffer as does @var{marker-or-integer}. If passed an integer as its argument, === modified file 'doc/lispref/minibuf.texi' --- doc/lispref/minibuf.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/minibuf.texi 2012-05-27 01:06:44 +0000 @@ -1404,7 +1404,7 @@ If the user types @key{RET} in an empty minibuffer, this function returns an empty string, regardless of the value of @var{require-match}. This is, for instance, how the user can make the -current buffer visit no file using @code{M-x set-visited-file-name}. +current buffer visit no file using @kbd{M-x set-visited-file-name}. If @var{predicate} is non-@code{nil}, it specifies a function of one argument that decides which file names are acceptable completion === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/modes.texi 2012-05-27 01:06:44 +0000 @@ -734,13 +734,15 @@ variable @code{major-mode} (@pxref{Major Modes}), which is why every major mode command needs to set that variable. -@deffn Command describe-mode -This function displays the documentation of the current major mode. +@deffn Command describe-mode &optional buffer +This command displays the documentation of the current buffer's major +mode and minor modes. It uses the @code{documentation} function to +retrieve the documentation strings of the major and minor mode +commands (@pxref{Accessing Documentation}). -The @code{describe-mode} function calls the @code{documentation} -function using the value of @code{major-mode} as an argument. Thus, it -displays the documentation string of the major mode command. -(@xref{Accessing Documentation}.) +If called from Lisp with a non-nil @var{buffer} argument, this +function displays the documentation for that buffer's major and minor +modes, rather than those of the current buffer. @end deffn @node Derived Modes @@ -1990,14 +1992,14 @@ on the process status, and whether narrowing is in effect. @end defopt -@defopt mode-line-remote +@defvar mode-line-remote This variable is used to show whether @code{default-directory} for the current buffer is remote. -@end defopt +@end defvar -@defopt mode-line-client +@defvar mode-line-client This variable is used to identify @code{emacsclient} frames. -@end defopt +@end defvar The following three variables are used in @code{mode-line-modes}: @@ -2315,10 +2317,10 @@ choose one of them and move point to it. Major modes can add a menu bar item to use Imenu using @code{imenu-add-to-menubar}. -@defun imenu-add-to-menubar name +@deffn Command imenu-add-to-menubar name This function defines a local menu bar item named @var{name} to run Imenu. -@end defun +@end deffn The user-level commands for using Imenu are described in the Emacs Manual (@pxref{Imenu,, Imenu, emacs, the Emacs Manual}). This section @@ -3860,9 +3862,9 @@ @end defun @defun smie-rule-sibling-p -Return non-nil if the current token's parent is actually a sibling. -This is the case for example when the parent of a @code{","} is just the -previous @code{","}. +Return non-@code{nil} if the current token's parent is actually a +sibling. This is the case for example when the parent of a @code{","} +is just the previous @code{","}. @end defun @defun smie-rule-parent &optional offset === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-05-04 05:14:14 +0000 +++ doc/lispref/os.texi 2012-05-27 01:06:44 +0000 @@ -2108,10 +2108,10 @@ Each function is called with one argument, @var{sound}. @end defun -@defun play-sound-file file &optional volume device +@deffn Command play-sound-file file &optional volume device This function is an alternative interface to playing a sound @var{file} specifying an optional @var{volume} and @var{device}. -@end defun +@end deffn @defvar play-sound-functions A list of functions to be called before playing a sound. Each function === modified file 'doc/lispref/package.texi' --- doc/lispref/package.texi 2012-05-02 07:20:29 +0000 +++ doc/lispref/package.texi 2012-05-27 01:06:44 +0000 @@ -294,8 +294,8 @@ A convenient way to set up and update a package archive is via the @code{package-x} library. This is included with Emacs, but not loaded -by default; type @kbd{M-x load-library @kbd{RET} package-x @kbd{RET}} -to load it, or add @code{(require 'package-x)} to your init file. +by default; type @kbd{M-x load-library @key{RET} package-x @key{RET}} to +load it, or add @code{(require 'package-x)} to your init file. @xref{Lisp Libraries,, Lisp Libraries, emacs, The GNU Emacs Manual}. Once loaded, you can make use of the following: === modified file 'doc/lispref/processes.texi' --- doc/lispref/processes.texi 2012-05-02 13:00:29 +0000 +++ doc/lispref/processes.texi 2012-05-27 01:06:44 +0000 @@ -1073,7 +1073,7 @@ @defun interrupt-process &optional process current-group This function interrupts the process @var{process} by sending the signal @code{SIGINT}. Outside of Emacs, typing the ``interrupt -character'' (normally @kbd{C-c} on some systems, and @code{DEL} on +character'' (normally @kbd{C-c} on some systems, and @key{DEL} on others) sends this signal. When the argument @var{current-group} is non-@code{nil}, you can think of this function as ``typing @kbd{C-c}'' on the terminal by which Emacs talks to the subprocess. @@ -1112,7 +1112,7 @@ stopped previously. @end defun -@defun signal-process process signal +@deffn Command signal-process process signal This function sends a signal to process @var{process}. The argument @var{signal} specifies which signal to send; it should be an integer, or a symbol whose name is a signal. @@ -1120,7 +1120,7 @@ The @var{process} argument can be a system process @acronym{ID} (an integer); that allows you to send signals to processes that are not children of Emacs. @xref{System Processes}. -@end defun +@end deffn @node Output from Processes @section Receiving Output from Processes === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2012-05-09 03:06:08 +0000 +++ doc/lispref/text.texi 2012-05-27 01:06:44 +0000 @@ -3530,7 +3530,7 @@ @dfn{link}. Implementing a link involves three separate steps: (1) indicating -clickability when the mouse moves over the link; (2) making @kbd{RET} +clickability when the mouse moves over the link; (2) making @key{RET} or @kbd{Mouse-2} on that link do something; and (3) setting up a @code{follow-link} condition so that the link obeys @code{mouse-1-click-follows-link}. @@ -4068,7 +4068,7 @@ the output is just one long line. @end deffn -@deffn Command base64-encode-string string &optional no-line-break +@defun base64-encode-string string &optional no-line-break This function converts the string @var{string} into base 64 code. It returns a string containing the encoded text. As for @code{base64-encode-region}, an error is signaled if a character in the @@ -4078,15 +4078,15 @@ text, to avoid overlong lines. However, if the optional argument @var{no-line-break} is non-@code{nil}, these newlines are not added, so the result string is just one long line. -@end deffn +@end defun -@defun base64-decode-region beg end +@deffn Command base64-decode-region beg end This function converts the region from @var{beg} to @var{end} from base 64 code into the corresponding decoded text. It returns the length of the decoded text. The decoding functions ignore newline characters in the encoded text. -@end defun +@end deffn @defun base64-decode-string string This function converts the string @var{string} from base 64 code into === modified file 'doc/lispref/variables.texi' --- doc/lispref/variables.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/variables.texi 2012-05-27 01:06:44 +0000 @@ -1852,16 +1852,19 @@ the old name is obsolete and therefore that it may be removed at some stage in the future. -@defun make-obsolete-variable obsolete-name current-name &optional when +@defun make-obsolete-variable obsolete-name current-name when &optional access-type This function makes the byte compiler warn that the variable -@var{obsolete-name} is obsolete. If @var{current-name} is a symbol, it is -the variable's new name; then the warning message says to use -@var{current-name} instead of @var{obsolete-name}. If @var{current-name} -is a string, this is the message and there is no replacement variable. +@var{obsolete-name} is obsolete. If @var{current-name} is a symbol, +it is the variable's new name; then the warning message says to use +@var{current-name} instead of @var{obsolete-name}. If +@var{current-name} is a string, this is the message and there is no +replacement variable. @var{when} should be a string indicating when +the variable was first made obsolete (usually a version number +string). -If provided, @var{when} should be a string indicating when the -variable was first made obsolete---for example, a date or a release -number. +The optional argument @var{access-type}, if non-@code{nil}, should +should specify the kind of access that will trigger obsolescence +warnings; it can be either @code{get} or @code{set}. @end defun You can make two variables synonyms and declare one obsolete at the === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/windows.texi 2012-05-27 01:06:44 +0000 @@ -1558,7 +1558,7 @@ @code{display-buffer} will affect it as well. @xref{Choosing Window}, for the documentation of @code{display-buffer}. -@defun pop-to-buffer buffer-or-name &optional action norecord +@deffn Command pop-to-buffer buffer-or-name &optional action norecord This function makes @var{buffer-or-name} the current buffer and displays it in some window, preferably not the window previously selected. It then selects the displaying window. If that window is @@ -1581,7 +1581,7 @@ Like @code{switch-to-buffer}, this function updates the buffer list unless @var{norecord} is non-@code{nil}. -@end defun +@end deffn @node Choosing Window @section Choosing a Window for Display === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-22 18:31:19 +0000 +++ doc/misc/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,7 +1,10 @@ +2012-05-27 Bastien Guerry + + * org.texi (Durations and time values): Fix typo. + 2012-05-19 Jay Belanger - * doc/misc/calc.texi - (Basic Operations on Units, Customizing Calc): + * doc/misc/calc.texi (Basic Operations on Units, Customizing Calc): Mention `calc-ensure-consistent-units'. 2012-05-14 Andreas Schwab === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2012-05-02 01:22:26 +0000 +++ doc/misc/org.texi 2012-05-25 21:28:05 +0000 @@ -4,8 +4,8 @@ @setfilename ../../info/org @settitle The Org Manual -@set VERSION 7.8.09 -@set DATE April 2012 +@set VERSION 7.8.11 +@set DATE May 2012 @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 @@ -2625,7 +2625,7 @@ Input duration values must be of the form @code{[HH:MM[:SS]}, where seconds are optional. With the @code{T} flag, computed durations will be displayed -as @code{[HH:MM:SS} (see the first formula above). With the @code{t} flag, +as @code{HH:MM:SS} (see the first formula above). With the @code{t} flag, computed durations will be displayed according to the value of the variable @code{org-table-duration-custom-format}, which defaults to @code{'hours} and will display the result as a fraction of hours (see the second formula in the @@ -7900,9 +7900,9 @@ Delete other windows. @c @orgcmdkskc{v d,d,org-agenda-day-view} -@xorgcmdkskc{v w,w,org-agenda-day-view} +@xorgcmdkskc{v w,w,org-agenda-week-view} @xorgcmd{v m,org-agenda-month-view} -@xorgcmd{v y,org-agenda-month-year} +@xorgcmd{v y,org-agenda-year-view} @xorgcmd{v SPC,org-agenda-reset-view} @vindex org-agenda-span Switch to day/week/month/year view. When switching to day or week view, this === modified file 'etc/refcards/orgcard.pdf' Binary files etc/refcards/orgcard.pdf 2012-04-11 10:59:50 +0000 and etc/refcards/orgcard.pdf 2012-05-25 07:39:32 +0000 differ === modified file 'etc/refcards/orgcard.tex' --- etc/refcards/orgcard.tex 2012-04-11 10:59:50 +0000 +++ etc/refcards/orgcard.tex 2012-05-25 07:39:32 +0000 @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{7.8.09} +\def\orgversionnumber{7.8.11} \def\versionyear{2012} % latest update \def\year{2012} % latest copyright year === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 21:58:01 +0000 +++ lisp/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,3 +1,18 @@ +2012-05-27 Eli Zaretskii + + * mail/sendmail.el (mail-yank-region): Recognize + rmail-yank-current-message in addition to insert-buffer. Fixes + mail-mode's "C-c C-r" that otherwise does nothing when invoked in + a *mail* buffer created through rmail-start-mail with sendmail as + mail-user-agent. + +2012-05-27 Chong Yidong + + * net/gnutls.el (gnutls-min-prime-bits): Improve docstring. + Default to 256 (Bug#11267). + + * help.el (describe-mode): Doc fix. + 2012-05-26 Glenn Morris * w32-fns.el (w32-init-info): Remove. === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-05-26 15:52:27 +0000 +++ lisp/gnus/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,3 +1,8 @@ +2012-05-27 Katsumi Yamaoka + + * gnus-msg.el (gnus-msg-mail): Ensure that gnus-newsgroup-name is + a string so that Gcc works (bug#11514). + 2012-05-26 Stefan Monnier * legacy-gnus-agent.el (gnus-agent-unhook-expire-days): === modified file 'lisp/gnus/gnus-msg.el' --- lisp/gnus/gnus-msg.el 2012-04-12 22:38:08 +0000 +++ lisp/gnus/gnus-msg.el 2012-05-21 23:29:03 +0000 @@ -490,6 +490,7 @@ (message-mail to subject other-headers continue nil yank-action send-actions return-action) (let ((buf (current-buffer)) + (gnus-newsgroup-name (or gnus-newsgroup-name "")) mail-buf) (gnus-setup-message 'message (message-mail to subject other-headers continue === modified file 'lisp/help.el' --- lisp/help.el 2012-02-28 08:17:21 +0000 +++ lisp/help.el 2012-05-15 15:43:06 +0000 @@ -783,7 +783,10 @@ For this to work correctly for a minor mode, the mode's indicator variable \(listed in `minor-mode-alist') must also be a function -whose documentation describes the minor mode." +whose documentation describes the minor mode. + +If called from Lisp with a non-nil BUFFER argument, display +documentation for the major and minor modes of that buffer." (interactive "@") (unless buffer (setq buffer (current-buffer))) (help-setup-xref (list #'describe-mode buffer) === modified file 'lisp/mail/sendmail.el' --- lisp/mail/sendmail.el 2012-04-27 03:10:38 +0000 +++ lisp/mail/sendmail.el 2012-05-27 01:06:44 +0000 @@ -1678,7 +1678,8 @@ and don't delete any header fields." (interactive "P") (and (consp mail-reply-action) - (eq (car mail-reply-action) 'insert-buffer) + (memq (car mail-reply-action) + '(rmail-yank-current-message insert-buffer)) (with-current-buffer (nth 1 mail-reply-action) (or (mark t) (error "No mark set: %S" (current-buffer)))) === modified file 'lisp/net/gnutls.el' --- lisp/net/gnutls.el 2012-02-17 13:05:20 +0000 +++ lisp/net/gnutls.el 2012-05-16 02:49:19 +0000 @@ -66,14 +66,16 @@ (repeat (file :tag "Bundle filename")))) ;;;###autoload -(defcustom gnutls-min-prime-bits nil - "The minimum number of bits to be used in Diffie-Hellman key exchange. - -This sets the minimum accepted size of the key to be used in a -client-server handshake. If the server sends a prime with fewer than -the specified number of bits the handshake will fail. - -A value of nil says to use the default gnutls value." +(defcustom gnutls-min-prime-bits 256 + ;; Several mail servers send fewer bits than the GnuTLS default. + ;; Currently, 256 appears to be a reasonable choice (Bug#11267). + "Minimum number of prime bits accepted by GnuTLS for key exchange. +During a Diffie-Hellman handshake, if the server sends a prime +number with fewer than this number of bits, the handshake is +rejected. \(The smaller the prime number, the less secure the +key exchange is against man-in-the-middle attacks.) + +A value of nil says to use the default GnuTLS value." :type '(choice (const :tag "Use default value" nil) (integer :tag "Number of bits" 512)) :group 'gnutls) === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2012-04-27 06:21:10 +0000 +++ lisp/org/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,3 +1,106 @@ +2012-05-27 Mark Shoulson (tiny change) + + * org.el (org-fontify-entities): Fix bug: The entities \sup[123] and + \there4 were not "prettified" when org-pretty-entities was enabled. + +2012-05-27 Nicolas Goaziou + + * org.el (org-font-lock-add-priority-faces): + Restrict priorities fontification to headlines and inlinetasks. + +2012-05-27 Jambunathan K + + * org-odt.el (org-odt-init-outfile) + (org-odt-write-manifest-file): + Disable `nxml-auto-insert-xml-declaration-flag'. + + * org-lparse.el (org-do-lparse): Don't trigger auto-mode processing. + +2012-05-27 Bastien Guerry + + * org.el (org-scan-tags): Fix bug when building the scanner regexp. + +2012-05-27 Eric Schulte + + * ob.el (org-babel-capitalize-examplize-region-markers): + Controls the capitalization of begin and end example blocks. + (org-babel-examplize-region): + Optionally capitalize example block delimiters. + + * ob-plantuml.el (org-babel-execute:plantuml): + Add a :java header argument to plantuml. + + * org-exp-blocks.el (org-export-blocks-preprocess): + Even when the body of a block is not indented the boundary markers + should be indented to their original positions so things like list + indentation still work. + + * ob.el (org-babel-parse-src-block-match): + Save match data during indentation check. + +2012-05-27 Bastien Guerry + + * org.el (org-scan-tags): Correctly match TODO keywords. + +2012-05-27 Nicolas Goaziou + + * org-list.el (org-list-struct): Fix white spaces. + (org-list-swap-items, org-list-send-item): Fix visibility preservation. + + * org-list.el (org-list-swap-items, org-list-send-item): + Preserve visibility when moving items. + +2012-05-27 Mark E. Shoulson (tiny change) + + * org.el (org-fontify-entities): Hide {} when prettifying entities. + +2012-05-27 Bastien Guerry + + * org.el (org-cycle-internal-global): Prevent the display of + messages when cycling from with a Gnus article buffer. + + * org-table.el (org-table-time-seconds-to-string): + Fix bug about handling a negative duration value. + +2012-05-27 Nicolas Goaziou + + * org.el (org-link-expand-abbrev): Fix docstring. + + * org.el (org-translate-link): Fix bug. + +2012-05-27 Bastien Guerry + + * org-agenda.el (org-agenda-bulk-mark-regexp): + Fix bug when setting the number of marked entries. + + * org-table.el (org-tbl-calc-modes): Rename from `org-table-modes'. + (org-set-calc-mode, org-table-eval-formula): Use it. + +2012-05-27 Eric Schulte + + * ob.el (org-babel-find-named-result): + Fix bug finding empty named results. + +2012-05-27 Nicolas Goaziou + + * org.el (org-set-regexps-and-options): + Fix `org-planning-or-clock-line-re' regexp. Indeed "\\>" will never + match since time keywords must end with colons, which are not word + constituents. + +2012-05-27 Bastien Guerry + + * org-ctags.el (org-ctags-new-topic-template): + Fix the option default value back again. + +2012-05-27 Eric Schulte + + * org-bibtex.el (org-bibtex-export-to-kill-ring): + Don't rely on kill-new to return a string. + + * org-bibtex.el (org-bibtex-headline): + Remove call to bibtex-reformat which often hangs. + 2012-04-27 Glenn Morris * org-ctags.el (org-ctags-new-topic-template): === modified file 'lisp/org/ob-plantuml.el' --- lisp/org/ob-plantuml.el 2012-04-03 12:02:21 +0000 +++ lisp/org/ob-plantuml.el 2012-05-25 07:39:32 +0000 @@ -55,9 +55,10 @@ (error "plantuml requires a \":file\" header argument"))) (cmdline (cdr (assoc :cmdline params))) (in-file (org-babel-temp-file "plantuml-")) + (java (or (cdr (assoc :java params)) "")) (cmd (if (not org-plantuml-jar-path) (error "`org-plantuml-jar-path' is not set") - (concat "java -jar " + (concat "java " java " -jar " (shell-quote-argument (expand-file-name org-plantuml-jar-path)) (if (string= (file-name-extension out-file) "svg") === modified file 'lisp/org/ob.el' --- lisp/org/ob.el 2012-04-03 12:02:21 +0000 +++ lisp/org/ob.el 2012-05-25 07:39:32 +0000 @@ -1159,7 +1159,8 @@ (substring body 0 sub-length) (or body ""))))) (preserve-indentation (or org-src-preserve-indentation - (string-match "-i\\>" switches)))) + (save-match-data + (string-match "-i\\>" switches))))) (list lang ;; get block body less properties, protective commas, and indentation (with-temp-buffer @@ -1498,7 +1499,7 @@ (catch 'is-a-code-block (when (re-search-forward (concat org-babel-result-regexp - "[ \t]" (regexp-quote name) "[ \t\n\f\v\r]+") nil t) + "[ \t]" (regexp-quote name) "[ \t]*[\n\f\v\r]") nil t) (when (and (string= "name" (downcase (match-string 1))) (or (beginning-of-line 1) (looking-at org-babel-src-block-regexp) @@ -1957,11 +1958,16 @@ (stringp (car result)) (stringp (cadr result))) (format "[[file:%s][%s]]" (car result) (cadr result)))))) +(defvar org-babel-capitalize-examplize-region-markers nil + "Make true to capitalize begin/end example markers inserted by code blocks.") + (defun org-babel-examplize-region (beg end &optional results-switches) "Comment out region using the inline '==' or ': ' org example quote." (interactive "*r") (flet ((chars-between (b e) - (not (string-match "^[\\s]*$" (buffer-substring b e))))) + (not (string-match "^[\\s]*$" (buffer-substring b e)))) + (maybe-cap (str) (if org-babel-capitalize-examplize-region-markers + (upcase str) str))) (if (or (chars-between (save-excursion (goto-char beg) (point-at-bol)) beg) (chars-between end (save-excursion (goto-char end) (point-at-eol)))) (save-excursion @@ -1978,10 +1984,12 @@ (t (goto-char beg) (insert (if results-switches - (format "#+begin_example%s\n" results-switches) - "#+begin_example\n")) + (format "%s%s\n" + (maybe-cap "#+begin_example") + results-switches) + (maybe-cap "#+begin_example\n"))) (if (markerp end) (goto-char end) (forward-char (- end beg))) - (insert "#+end_example\n")))))))) + (insert (maybe-cap "#+end_example\n"))))))))) (defun org-babel-update-block-body (new-body) "Update the body of the current code block to NEW-BODY." === modified file 'lisp/org/org-agenda.el' --- lisp/org/org-agenda.el 2012-04-26 17:30:04 +0000 +++ lisp/org/org-agenda.el 2012-05-16 17:33:50 +0000 @@ -8315,13 +8315,13 @@ (defun org-agenda-bulk-mark-regexp (regexp) "Mark entries match REGEXP." (interactive "sMark entries matching regexp: ") - (let (entries-marked) + (let ((entries-marked 0)) (save-excursion (goto-char (point-min)) (goto-char (next-single-property-change (point) 'txt)) (while (re-search-forward regexp nil t) (when (string-match regexp (get-text-property (point) 'txt)) - (setq entries-marked (+ entries-marked 1)) + (setq entries-marked (1+ entries-marked)) (call-interactively 'org-agenda-bulk-mark)))) (if (not entries-marked) (message "No entry matching this regexp.")))) === modified file 'lisp/org/org-bibtex.el' --- lisp/org/org-bibtex.el 2012-04-03 12:02:21 +0000 +++ lisp/org/org-bibtex.el 2012-05-16 17:33:50 +0000 @@ -369,7 +369,7 @@ (progn (goto-char (match-end 1)) (insert ", ")) (bibtex-make-field "keywords" t t)) (insert (mapconcat #'identity tags ", "))) - (bibtex-reformat) (buffer-string))))))) + (buffer-string))))))) (defun org-bibtex-ask (field) (unless (assoc field org-bibtex-fields) @@ -661,7 +661,8 @@ (defun org-bibtex-export-to-kill-ring () "Export current headline to kill ring as bibtex entry." (interactive) - (kill-new (org-bibtex-headline))) + (let ((result (org-bibtex-headline))) + (kill-new result) result)) (defun org-bibtex-search (string) "Search for bibliographical entries in agenda files. === modified file 'lisp/org/org-exp-blocks.el' --- lisp/org/org-exp-blocks.el 2012-04-03 12:02:21 +0000 +++ lisp/org/org-exp-blocks.el 2012-05-25 07:39:32 +0000 @@ -211,7 +211,13 @@ (when replacement (delete-region match-start match-end) (goto-char match-start) (insert replacement) - (unless preserve-indent + (if preserve-indent + ;; indent only the code block markers + (save-excursion + (indent-line-to indentation) ; indent end_block + (goto-char match-start) + (indent-line-to indentation)) ; indent begin_block + ;; indent everything (indent-code-rigidly match-start (point) indentation))))) ;; cleanup markers (set-marker match-start nil) === modified file 'lisp/org/org-list.el' --- lisp/org/org-list.el 2012-04-26 17:30:04 +0000 +++ lisp/org/org-list.el 2012-05-16 17:33:50 +0000 @@ -714,15 +714,15 @@ ;; equally indented than BEG-CELL's cdr. Also, store ending ;; position of items in END-LST-2. (catch 'exit - (while t - (let ((ind (+ (or (get-text-property (point) 'original-indentation) 0) + (while t + (let ((ind (+ (or (get-text-property (point) 'original-indentation) 0) (org-get-indentation)))) - (cond - ((>= (point) lim-down) + (cond + ((>= (point) lim-down) ;; At downward limit: this is de facto the end of the ;; list. Save point as an ending position, and jump to ;; part 3. - (throw 'exit + (throw 'exit (push (cons 0 (funcall end-before-blank)) end-lst-2))) ;; At a verbatim block, move to its end. Point is at bol ;; and 'org-example property is set by whole lines: @@ -1071,8 +1071,10 @@ (defun org-list-swap-items (beg-A beg-B struct) "Swap item starting at BEG-A with item starting at BEG-B in STRUCT. -Blank lines at the end of items are left in place. Return the -new structure after the changes. + +Blank lines at the end of items are left in place. Item +visibility is preserved. Return the new structure after the +changes. Assume BEG-A is lesser than BEG-B and that BEG-A and BEG-B belong to the same sub-list. @@ -1089,7 +1091,17 @@ (body-B (buffer-substring beg-B end-B-no-blank)) (between-A-no-blank-and-B (buffer-substring end-A-no-blank beg-B)) (sub-A (cons beg-A (org-list-get-subtree beg-A struct))) - (sub-B (cons beg-B (org-list-get-subtree beg-B struct)))) + (sub-B (cons beg-B (org-list-get-subtree beg-B struct))) + ;; Store overlays responsible for visibility status. We + ;; also need to store their boundaries as they will be + ;; removed from buffer. + (overlays (cons + (mapcar (lambda (ov) + (list ov (overlay-start ov) (overlay-end ov))) + (overlays-in beg-A end-A)) + (mapcar (lambda (ov) + (list ov (overlay-start ov) (overlay-end ov))) + (overlays-in beg-B end-B))))) ;; 1. Move effectively items in buffer. (goto-char beg-A) (delete-region beg-A end-B-no-blank) @@ -1122,7 +1134,22 @@ (setcar e (+ pos (- size-B size-A))) (setcar (nthcdr 6 e) (+ end-e (- size-B size-A)))))))) struct) - (sort struct (lambda (e1 e2) (< (car e1) (car e2))))))) + (setq struct (sort struct (lambda (e1 e2) (< (car e1) (car e2))))) + ;; Restore visibility status, by moving overlays to their new + ;; position. + (mapc (lambda (ov) + (move-overlay + (car ov) + (+ (nth 1 ov) (- (+ beg-B (- size-B size-A)) beg-A)) + (+ (nth 2 ov) (- (+ beg-B (- size-B size-A)) beg-A)))) + (car overlays)) + (mapc (lambda (ov) + (move-overlay (car ov) + (+ (nth 1 ov) (- beg-A beg-B)) + (+ (nth 2 ov) (- beg-A beg-B)))) + (cdr overlays)) + ;; Return structure. + struct))) (defun org-list-separating-blank-lines-number (pos struct prevs) "Return number of blank lines that should separate items in list. @@ -1340,8 +1367,8 @@ to another item in the same list as ITEM, and will move the latter just before the former. -If DEST is `begin' \(respectively `end'\), ITEM will be moved at -the beginning \(respectively end\) of the list it belongs to. +If DEST is `begin' (respectively `end'), ITEM will be moved at +the beginning (respectively end) of the list it belongs to. If DEST is a string like \"N\", where N is an integer, ITEM will be moved at the Nth position in the list. @@ -1351,6 +1378,8 @@ If DEST is `delete', ITEM will be deleted. +Visibility of item is preserved. + This function returns, destructively, the new list structure." (let* ((prevs (org-list-prevs-alist struct)) (item-end (org-list-get-item-end item struct)) @@ -1393,7 +1422,9 @@ (org-list-get-last-item item struct prevs)) (point-at-eol))))) (t dest))) - (org-M-RET-may-split-line nil)) + (org-M-RET-may-split-line nil) + ;; Store visibility. + (visibility (overlays-in item item-end))) (cond ((eq dest 'delete) (org-list-delete-item item struct)) ((eq dest 'kill) @@ -1429,9 +1460,14 @@ (+ end shift))))))) moved-items)) (lambda (e1 e2) (< (car e1) (car e2)))))) - ;; 2. Eventually delete extra copy of the item and clean marker. - (prog1 - (org-list-delete-item (marker-position item) struct) + ;; 2. Restore visibility. + (mapc (lambda (ov) + (move-overlay ov + (+ (overlay-start ov) (- (point) item)) + (+ (overlay-end ov) (- (point) item)))) + visibility) + ;; 3. Eventually delete extra copy of the item and clean marker. + (prog1 (org-list-delete-item (marker-position item) struct) (move-marker item nil))) (t struct)))) === modified file 'lisp/org/org-lparse.el' --- lisp/org/org-lparse.el 2012-04-01 09:49:25 +0000 +++ lisp/org/org-lparse.el 2012-05-25 07:39:32 +0000 @@ -1111,9 +1111,6 @@ (unless body-only (org-lparse-end 'DOCUMENT-CONTENT)) - (unless (plist-get opt-plist :buffer-will-be-killed) - (set-auto-mode t)) - (org-lparse-end 'EXPORT) ;; kill collection buffer === modified file 'lisp/org/org-odt.el' --- lisp/org/org-odt.el 2012-04-26 17:30:04 +0000 +++ lisp/org/org-odt.el 2012-05-25 21:09:08 +0000 @@ -2211,7 +2211,9 @@ (content-file (expand-file-name "content.xml" outdir))) ;; init conten.xml - (with-current-buffer (find-file-noselect content-file t)) + (require 'nxml-mode) + (let ((nxml-auto-insert-xml-declaration-flag nil)) + (find-file-noselect content-file t)) ;; reset variables (setq org-odt-manifest-file-entries nil @@ -2320,7 +2322,8 @@ (make-directory "META-INF") (let ((manifest-file (expand-file-name "META-INF/manifest.xml"))) (with-current-buffer - (find-file-noselect manifest-file t) + (let ((nxml-auto-insert-xml-declaration-flag nil)) + (find-file-noselect manifest-file t)) (insert " \n") === modified file 'lisp/org/org-protocol.el' --- lisp/org/org-protocol.el 2012-04-09 13:05:48 +0000 +++ lisp/org/org-protocol.el 2012-05-27 01:06:44 +0000 @@ -225,7 +225,7 @@ :type 'alist) (defcustom org-protocol-protocol-alist nil - " Register custom handlers for org-protocol. + "Register custom handlers for org-protocol. Each element of this list must be of the form: === modified file 'lisp/org/org-table.el' --- lisp/org/org-table.el 2012-04-26 17:30:04 +0000 +++ lisp/org/org-table.el 2012-05-16 17:33:50 +0000 @@ -2368,7 +2368,7 @@ (looking-at org-table-auto-recalculate-regexp)) (org-table-recalculate) t)) -(defvar org-table-modes) +(defvar org-tbl-calc-modes) ;; Dynamically bound in `org-table-eval-formula' (defsubst org-set-calc-mode (var &optional value) (if (stringp var) (setq var (assoc var '(("D" calc-angle-mode deg) @@ -2376,10 +2376,10 @@ ("F" calc-prefer-frac t) ("S" calc-symbolic-mode t))) value (nth 2 var) var (nth 1 var))) - (if (memq var org-table-modes) - (setcar (cdr (memq var org-table-modes)) value) - (cons var (cons value org-table-modes))) - org-table-modes) + (if (memq var org-tbl-calc-modes) + (setcar (cdr (memq var org-tbl-calc-modes)) value) + (cons var (cons value org-tbl-calc-modes))) + org-tbl-calc-modes) (defun org-table-eval-formula (&optional arg equation suppress-align suppress-const @@ -2437,7 +2437,7 @@ equation (org-table-get-formula equation (equal arg '(4))))) (n0 (org-table-current-column)) - (modes (copy-sequence org-calc-default-modes)) + (org-tbl-calc-modes (copy-sequence org-calc-default-modes)) (numbers nil) ; was a variable, now fixed default (keep-empty nil) n form form0 formrpl formrg bw fmt x ev orig c lispp literal @@ -2453,12 +2453,13 @@ (setq c (string-to-char (match-string 1 fmt)) n (string-to-number (match-string 2 fmt))) (if (= c ?p) - (setq modes (org-set-calc-mode 'calc-internal-prec n)) - (setq modes (org-set-calc-mode - 'calc-float-format - (list (cdr (assoc c '((?n . float) (?f . fix) - (?s . sci) (?e . eng)))) - n)))) + (setq org-tbl-calc-modes (org-set-calc-mode 'calc-internal-prec n)) + (setq org-tbl-calc-modes + (org-set-calc-mode + 'calc-float-format + (list (cdr (assoc c '((?n . float) (?f . fix) + (?s . sci) (?e . eng)))) + n)))) (setq fmt (replace-match "" t t fmt))) (if (string-match "T" fmt) (setq duration t numbers t @@ -2479,7 +2480,7 @@ (setq keep-empty t fmt (replace-match "" t t fmt))) (while (string-match "[DRFS]" fmt) - (setq modes (org-set-calc-mode (match-string 0 fmt))) + (setq org-tbl-calc-modes (org-set-calc-mode (match-string 0 fmt))) (setq fmt (replace-match "" t t fmt))) (unless (string-match "\\S-" fmt) (setq fmt nil)))) @@ -2588,7 +2589,7 @@ duration-output-format) ev)) (or (fboundp 'calc-eval) (error "Calc does not seem to be installed, and is needed to evaluate the formula")) - (setq ev (calc-eval (cons form modes) (if numbers 'num)) + (setq ev (calc-eval (cons form org-tbl-calc-modes) (if numbers 'num)) ev (if duration (org-table-time-seconds-to-string (string-to-number ev) duration-output-format) ev))) @@ -3309,15 +3310,18 @@ "Convert a number of seconds to a time string. If OUTPUT-FORMAT is non-nil, return a number of days, hours, minutes or seconds." - (cond ((eq output-format 'days) - (format "%.3f" (/ (float secs) 86400))) - ((eq output-format 'hours) - (format "%.2f" (/ (float secs) 3600))) - ((eq output-format 'minutes) - (format "%.1f" (/ (float secs) 60))) - ((eq output-format 'seconds) - (format "%d" secs)) - (t (org-format-seconds "%.2h:%.2m:%.2s" secs)))) + (let* ((secs0 (abs secs)) + (res + (cond ((eq output-format 'days) + (format "%.3f" (/ (float secs0) 86400))) + ((eq output-format 'hours) + (format "%.2f" (/ (float secs0) 3600))) + ((eq output-format 'minutes) + (format "%.1f" (/ (float secs0) 60))) + ((eq output-format 'seconds) + (format "%d" secs0)) + (t (org-format-seconds "%.2h:%.2m:%.2s" secs0))))) + (if (< secs 0) (concat "-" res) res))) (defun org-table-fedit-convert-buffer (function) "Convert all references in this buffer, using FUNCTION." === modified file 'lisp/org/org.el' --- lisp/org/org.el 2012-04-26 17:30:04 +0000 +++ lisp/org/org.el 2012-05-25 21:09:08 +0000 @@ -6,7 +6,7 @@ ;; Maintainer: Bastien Guerry ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.8.09 +;; Version: 7.8.11 ;; ;; This file is part of GNU Emacs. ;; @@ -206,7 +206,7 @@ ;;; Version -(defconst org-version "7.8.09" +(defconst org-version "7.8.11" "The version number of the file org.el.") ;;;###autoload @@ -4789,10 +4789,11 @@ "\\|" org-clock-string "\\)\\)?" " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?[]>]\\|<%%([^\r\n>]*>\\)") org-planning-or-clock-line-re - (concat "\\(?:^[ \t]*\\(" org-scheduled-string - "\\|" org-deadline-string - "\\|" org-closed-string "\\|" org-clock-string - "\\)\\>\\)") + (concat "^[ \t]*\\(" + org-scheduled-string "\\|" + org-deadline-string "\\|" + org-closed-string "\\|" + org-clock-string "\\)") org-all-time-keywords (mapcar (lambda (w) (substring w 0 -1)) (list org-scheduled-string org-deadline-string @@ -5916,16 +5917,19 @@ (when org-pretty-entities (catch 'match (while (re-search-forward - "\\\\\\(frac[13][24]\\|[a-zA-Z]+\\)\\($\\|[^[:alpha:]\n]\\)" + "\\\\\\(there4\\|sup[123]\\|frac[13][24]\\|[a-zA-Z]+\\)\\($\\|{}\\|[^[:alpha:]\n]\\)" limit t) (if (and (not (org-in-indented-comment-line)) (setq ee (org-entity-get (match-string 1))) (= (length (nth 6 ee)) 1)) - (progn + (let* + ((end (if (equal (match-string 2) "{}") + (match-end 2) + (match-end 1)))) (add-text-properties - (match-beginning 0) (match-end 1) + (match-beginning 0) end (list 'font-lock-fontified t)) - (compose-region (match-beginning 0) (match-end 1) + (compose-region (match-beginning 0) end (nth 6 ee) nil) (backward-char 1) (throw 'match t)))) @@ -5986,14 +5990,15 @@ (defun org-font-lock-add-priority-faces (limit) "Add the special priority faces." (while (re-search-forward "\\[#\\([A-Z0-9]\\)\\]" limit t) - (add-text-properties - (match-beginning 0) (match-end 0) - (list 'face (or (org-face-from-face-or-color - 'priority 'org-special-keyword - (cdr (assoc (char-after (match-beginning 1)) - org-priority-faces))) - 'org-special-keyword) - 'font-lock-fontified t)))) + (when (save-match-data (org-at-heading-p)) + (add-text-properties + (match-beginning 0) (match-end 0) + (list 'face (or (org-face-from-face-or-color + 'priority 'org-special-keyword + (cdr (assoc (char-after (match-beginning 1)) + org-priority-faces))) + 'org-special-keyword) + 'font-lock-fontified t))))) (defun org-get-tag-face (kwd) "Get the right face for a TODO keyword KWD. @@ -6255,34 +6260,36 @@ (defun org-cycle-internal-global () "Do the global cycling action." - (cond - ((and (eq last-command this-command) - (eq org-cycle-global-status 'overview)) - ;; We just created the overview - now do table of contents - ;; This can be slow in very large buffers, so indicate action - (run-hook-with-args 'org-pre-cycle-hook 'contents) - (message "CONTENTS...") - (org-content) - (message "CONTENTS...done") - (setq org-cycle-global-status 'contents) - (run-hook-with-args 'org-cycle-hook 'contents)) - - ((and (eq last-command this-command) - (eq org-cycle-global-status 'contents)) - ;; We just showed the table of contents - now show everything - (run-hook-with-args 'org-pre-cycle-hook 'all) - (show-all) - (message "SHOW ALL") - (setq org-cycle-global-status 'all) - (run-hook-with-args 'org-cycle-hook 'all)) - - (t - ;; Default action: go to overview - (run-hook-with-args 'org-pre-cycle-hook 'overview) - (org-overview) - (message "OVERVIEW") - (setq org-cycle-global-status 'overview) - (run-hook-with-args 'org-cycle-hook 'overview)))) + ;; Hack to avoid display of messages for .org attachments in Gnus + (let ((ga (string-match "\\*fontification" (buffer-name)))) + (cond + ((and (eq last-command this-command) + (eq org-cycle-global-status 'overview)) + ;; We just created the overview - now do table of contents + ;; This can be slow in very large buffers, so indicate action + (run-hook-with-args 'org-pre-cycle-hook 'contents) + (unless ga (message "CONTENTS...")) + (org-content) + (unless ga (message "CONTENTS...done")) + (setq org-cycle-global-status 'contents) + (run-hook-with-args 'org-cycle-hook 'contents)) + + ((and (eq last-command this-command) + (eq org-cycle-global-status 'contents)) + ;; We just showed the table of contents - now show everything + (run-hook-with-args 'org-pre-cycle-hook 'all) + (show-all) + (unless ga (message "SHOW ALL")) + (setq org-cycle-global-status 'all) + (run-hook-with-args 'org-cycle-hook 'all)) + + (t + ;; Default action: go to overview + (run-hook-with-args 'org-pre-cycle-hook 'overview) + (org-overview) + (unless ga (message "OVERVIEW")) + (setq org-cycle-global-status 'overview) + (run-hook-with-args 'org-cycle-hook 'overview))))) (defun org-cycle-internal-local () "Do the local cycling action." @@ -8574,7 +8581,7 @@ ;;; Link abbreviations (defun org-link-expand-abbrev (link) - "Apply replacements as defined in `org-link-abbrev-alist." + "Apply replacements as defined in `org-link-abbrev-alist'." (if (string-match "^\\([^:]*\\)\\(::?\\(.*\\)\\)?$" link) (let* ((key (match-string 1 link)) (as (or (assoc key org-link-abbrev-alist-local) @@ -9432,7 +9439,7 @@ (string-match "\\([a-zA-Z0-9]+\\):\\(.*\\)" s)) (progn (setq s (funcall org-link-translation-function - (match-string 1) (match-string 2))) + (match-string 1 s) (match-string 2 s))) (concat (car s) ":" (cdr s))) s)) @@ -12822,8 +12829,7 @@ org-outline-regexp) " *\\(\\<\\(" (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") - (org-re - "\\>\\)\\)? *\\(.*?\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*$"))) + (org-re "\\)\\>\\)? *\\(.*?\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*$"))) (props (list 'face 'default 'done-face 'org-agenda-done 'undone-face 'default === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-05-22 16:20:27 +0000 +++ nt/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,3 +1,9 @@ +2012-05-27 Eli Zaretskii + + * configure.bat: Ensure a space between %var% expansion and + redirection symbol '>', which breaks when %var% ends in a digit, + such as 1. + 2012-05-22 Paul Eggert Remove src/m/*. === modified file 'nt/configure.bat' --- nt/configure.bat 2012-04-07 13:57:36 +0000 +++ nt/configure.bat 2012-05-27 01:06:44 +0000 @@ -757,25 +757,25 @@ rem except when there is a preceding digit, when a space is required. rem echo # Start of settings from configure.bat >config.settings -echo COMPILER=%COMPILER%>>config.settings -if not "(%mf%)" == "()" echo MCPU_FLAG=%mf%>>config.settings -if not "(%dbginfo%)" == "()" echo DEBUG_INFO=%dbginfo%>>config.settings +echo COMPILER=%COMPILER% >>config.settings +if not "(%mf%)" == "()" echo MCPU_FLAG=%mf% >>config.settings +if not "(%dbginfo%)" == "()" echo DEBUG_INFO=%dbginfo% >>config.settings if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings if (%noopt%) == (Y) echo NOOPT=1 >>config.settings if (%enablechecking%) == (Y) echo ENABLECHECKS=1 >>config.settings if (%profile%) == (Y) echo PROFILE=1 >>config.settings if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings -if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings -if not "(%distfiles%)" == "()" echo DIST_FILES=%distfiles%>>config.settings +if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix% >>config.settings +if not "(%distfiles%)" == "()" echo DIST_FILES=%distfiles% >>config.settings rem We go thru docflags because usercflags could be "-DFOO=bar" -something rem and the if command cannot cope with this for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y -if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings -if (%docflags%)==(Y) echo ESC_USER_CFLAGS=%escusercflags%>>config.settings +if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags% >>config.settings +if (%docflags%)==(Y) echo ESC_USER_CFLAGS=%escusercflags% >>config.settings for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y -if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings +if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags% >>config.settings for %%v in (%extrauserlibs%) do if not (%%v)==() set doextralibs=Y -if (%doextralibs%)==(Y) echo USER_LIBS=%extrauserlibs%>>config.settings +if (%doextralibs%)==(Y) echo USER_LIBS=%extrauserlibs% >>config.settings echo # End of settings from configure.bat>>config.settings echo. >>config.settings @@ -784,8 +784,8 @@ echo /* Start of settings from configure.bat. */ >>config.tmp rem We write USER_CFLAGS and USER_LDFLAGS starting with a space to simplify rem processing of compiler options in w32.c:get_emacs_configuration_options -if (%docflags%) == (Y) echo #define USER_CFLAGS " %escusercflags%">>config.tmp -if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %escuserldflags%">>config.tmp +if (%docflags%) == (Y) echo #define USER_CFLAGS " %escusercflags%" >>config.tmp +if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %escuserldflags%" >>config.tmp if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp if not "(%HAVE_GNUTLS%)" == "()" echo #define HAVE_GNUTLS 1 >>config.tmp === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-26 22:27:21 +0000 +++ src/ChangeLog 2012-05-27 01:06:44 +0000 @@ -1,3 +1,34 @@ +2012-05-27 Ken Brown + + * callproc.c (Fcall_process): Restore a line that was accidentally + commented out in the 2011-02-13 change (bug#11547). + +2012-05-27 Eli Zaretskii + + * lisp.h [REL_ALLOC]: Add prototypes for external functions + defined on ralloc.c. + + * buffer.c [REL_ALLOC]: Remove prototypes of + r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free, + they are now on lisp.h. + + * ralloc.c (r_alloc_inhibit_buffer_relocation): New function. + + * search.c (search_buffer): Use it to inhibit relocation of buffer + text while re_search_2 is doing its job, because re_search_2 is + passed C pointers to buffer text. (Bug#11519) + + * msdos.c (internal_terminal_init) : + Update value to 24. + + * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator + state after an additional call to move_it_in_display_line_to, keep + the values of it->max_ascent and it->max_descent found for the + entire line. + (pos_visible_p): Revert the comparison against bottom_y to what it + was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb. + (Bug#11464) + 2012-05-26 Paul Eggert Fix coding-related core dumps with gcc -ftrapv. === modified file 'src/callproc.c' --- src/callproc.c 2012-04-09 22:54:59 +0000 +++ src/callproc.c 2012-05-27 01:06:44 +0000 @@ -652,7 +652,7 @@ /* GConf causes us to ignore SIGPIPE, make sure it is restored in the child. */ - //signal (SIGPIPE, SIG_DFL); + signal (SIGPIPE, SIG_DFL); #ifdef HAVE_WORKING_VFORK pthread_sigmask (SIG_SETMASK, &procmask, 0); #endif === modified file 'src/lisp.h' --- src/lisp.h 2012-05-25 18:19:24 +0000 +++ src/lisp.h 2012-05-27 01:06:44 +0000 @@ -3633,6 +3633,15 @@ /* Defined in msdos.c, w32.c */ extern char *emacs_root_dir (void); #endif /* DOS_NT */ + +#ifdef REL_ALLOC +/* Defined in ralloc.c */ +extern void r_alloc_reset_variable (POINTER_TYPE **, POINTER_TYPE **); +extern POINTER_TYPE *r_alloc (POINTER_TYPE **, size_t); +extern POINTER_TYPE *r_re_alloc (POINTER_TYPE **, size_t); +extern void r_alloc_free (POINTER_TYPE **ptr); +extern void r_alloc_inhibit_buffer_relocation (int); +#endif /* REL_ALLOC */ /* Nonzero means Emacs has already been initialized. Used during startup to detect startup of dumped Emacs. */ === modified file 'src/msdos.c' --- src/msdos.c 2012-04-09 13:05:48 +0000 +++ src/msdos.c 2012-05-27 01:06:44 +0000 @@ -1813,7 +1813,7 @@ } Vinitial_window_system = Qpc; - Vwindow_system_version = make_number (23); /* RE Emacs version */ + Vwindow_system_version = make_number (24); /* RE Emacs version */ tty->terminal->type = output_msdos_raw; /* If Emacs was dumped on DOS/V machine, forget the stale VRAM === modified file 'src/ralloc.c' --- src/ralloc.c 2012-05-21 15:36:54 +0000 +++ src/ralloc.c 2012-05-27 01:06:44 +0000 @@ -1139,6 +1139,12 @@ bloc->variable = new; } +void +r_alloc_inhibit_buffer_relocation (int inhibit) +{ + use_relocatable_buffers = !inhibit; +} + /*********************************************************************** Initialization === modified file 'src/search.c' --- src/search.c 2012-05-25 18:19:24 +0000 +++ src/search.c 2012-05-27 01:06:44 +0000 @@ -1159,12 +1159,25 @@ while (n < 0) { ptrdiff_t val; + +#ifdef REL_ALLOC + /* re_search_2 below is passed C pointers to buffer text. + If some code called by it causes memory (re)allocation, + buffer text could be relocated on platforms that use + REL_ALLOC, which invalidates those C pointers. So we + inhibit relocation of buffer text for as long as + re_search_2 runs. */ + r_alloc_inhibit_buffer_relocation (1); +#endif val = re_search_2 (bufp, (char *) p1, s1, (char *) p2, s2, pos_byte - BEGV_BYTE, lim_byte - pos_byte, (NILP (Vinhibit_changing_match_data) ? &search_regs : &search_regs_1), /* Don't allow match past current point */ pos_byte - BEGV_BYTE); +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif if (val == -2) { matcher_overflow (); @@ -1203,11 +1216,20 @@ while (n > 0) { ptrdiff_t val; + +#ifdef REL_ALLOC + /* See commentary above for the reasons for inhibiting + buffer text relocation here. */ + r_alloc_inhibit_buffer_relocation (1); +#endif val = re_search_2 (bufp, (char *) p1, s1, (char *) p2, s2, pos_byte - BEGV_BYTE, lim_byte - pos_byte, (NILP (Vinhibit_changing_match_data) ? &search_regs : &search_regs_1), lim_byte - BEGV_BYTE); +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif if (val == -2) { matcher_overflow (); === modified file 'src/xdisp.c' --- src/xdisp.c 2012-05-26 09:31:59 +0000 +++ src/xdisp.c 2012-05-27 01:06:44 +0000 @@ -8705,8 +8705,18 @@ { /* If TO_Y is in this line and TO_X was reached above, we scanned too far. We have to restore - IT's settings to the ones before skipping. */ + IT's settings to the ones before skipping. But + keep the more accurate values of max_ascent and + max_descent we've found while skipping the rest + of the line, for the sake of callers, such as + pos_visible_p, that need to know the line + height. */ + int max_ascent = it->max_ascent; + int max_descent = it->max_descent; + RESTORE_IT (it, &it_backup, backup_data); + it->max_ascent = max_ascent; + it->max_descent = max_descent; reached = 6; } else ------------------------------------------------------------ revno: 108385 fixes bug(s): http://debbugs.gnu.org/11527 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-05-26 16:14:36 -0700 message: Merge from gnulib. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-25 18:19:24 +0000 +++ ChangeLog 2012-05-26 23:14:36 +0000 @@ -1,3 +1,77 @@ +2012-05-26 Paul Eggert + + Merge from gnulib. (Bug#11527) + + The build procedure now creates and for + older hosts that lack a working or whose + does not define pid_t, size_t, ssize_t, mode_t. New + symbols such as WINDOWS_64_BIT_OFF_T may require attention in the + msdos and nt builds. + + Here is a precis of gnulib changes that seem relevant; please see + the gnulib ChangeLog for details. + + 2012-05-18 crypto: fix bug in large buffer handling + 2012-05-14 ignore-value.h: remove unused _GL_ATTRIBUTE_DEPRECATED + 2012-05-10 _Noreturn: port config.h to gcc -Wundef + 2012-05-08 warnings.m4: give a means to specify the program to compile + 2012-05-07 stdint: be more consistent with glibc, SunOS libc + 2012-04-21 Large File Support for native Windows platforms. + 2012-04-14 stat: Bypass buggy override in mingw64. + 2012-03-29 stdio: don't assume gets any more + 2012-03-24 Enable common subexpression optimization in GCC. + 2012-02-09 maint: replace FSF snail-mail addresses with URLs + 2012-01-30 sys_stat: Fix support for mingw64 and MSVC. + 2012-01-28 strtoimax: eliminate need for stdint.h, inttypes.h checks + 2012-01-21 stdint: Add support for Android. + 2012-01-15 Improve support for MSVC 9. + 2012-01-08 mktime: Avoid compilation error on Solaris 11. + 2012-01-05 Use ', not `, for quoting output. + 2012-01-05 strtoimax: Don't replace systems where intmax_t is int. + 2012-01-05 strtoimax: Work around AIX 5.1 bug. + 2012-01-05 inttypes: Modernize. + 2011-12-13 inttypes, stdint: add C++11 support + 2011-11-26 Fix conflict between two instantiations of module 'unistd'. + 2011-11-21 _Noreturn: Check that _MSC_VER is defined + 2011-11-10 ptsname_r: Avoid compilation error on OSF/1 5.1. + 2011-11-09 raise: fix mingw handling of SIGPIPE + 2011-10-27 Add stdalign module and use it in other modules. + + * lib/stdalign.in.h, lib/sys_types.in.h, m4/off_t.m4, m4/stdalign.m4: + * m4/sys_types_h.m4: + New files. + * build-aux/move-if-change, build-aux/snippet/_Noreturn.h: + * build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h: + * build-aux/snippet/warn-on-use.h, doc/misc/texinfo.tex: + * lib/alloca.in.h, lib/allocator.h, lib/careadlinkat.c: + * lib/careadlinkat.h, lib/dosname.h, lib/dup2.c, lib/filemode.c: + * lib/filemode.h, lib/ftoastr.c, lib/ftoastr.h, lib/getloadavg.c: + * lib/getopt.c, lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h: + * lib/gettext.h, lib/gnulib.mk, lib/ignore-value.h, lib/intprops.h: + * lib/inttypes.in.h, lib/lstat.c, lib/md5.c, lib/md5.h, lib/mktime.c: + * lib/pathmax.h, lib/pthread_sigmask.c, lib/readlink.c, lib/sha1.c: + * lib/sha1.h, lib/sha256.c, lib/sha256.h, lib/sha512.c, lib/sha512.h: + * lib/signal.in.h, lib/sigprocmask.c, lib/stat.c, lib/stdarg.in.h: + * lib/stdbool.in.h, lib/stddef.in.h, lib/stdint.in.h, lib/stdio.in.h: + * lib/stdlib.in.h, lib/strftime.c, lib/strftime.h, lib/strtoimax.c: + * lib/strtol.c, lib/strtoll.c, lib/strtoul.c, lib/strtoull.c: + * lib/symlink.c, lib/sys_stat.in.h, lib/time.in.h, lib/time_r.c: + * lib/u64.h, lib/unistd.in.h, lib/verify.h, m4/00gnulib.m4: + * m4/alloca.m4, m4/c-strtod.m4, m4/dup2.m4, m4/extensions.m4: + * m4/filemode.m4, m4/getloadavg.m4, m4/getopt.m4, m4/gl-comp.m4: + * m4/gnulib-common.m4, m4/gnulib-tool.m4, m4/include_next.m4: + * m4/inttypes.m4, m4/largefile.m4, m4/longlong.m4, m4/lstat.m4: + * m4/md5.m4, m4/mktime.m4, m4/multiarch.m4, m4/nocrash.m4: + * m4/pathmax.m4, m4/pthread_sigmask.m4, m4/readlink.m4, m4/sha1.m4: + * m4/sha256.m4, m4/sha512.m4, m4/signal_h.m4, m4/signalblocking.m4: + * m4/socklen.m4, m4/ssize_t.m4, m4/st_dm_mode.m4, m4/stat.m4: + * m4/stdarg.m4, m4/stdbool.m4, m4/stddef_h.m4, m4/stdint.m4: + * m4/stdio_h.m4, m4/stdlib_h.m4, m4/strftime.m4, m4/strtoimax.m4: + * m4/strtoll.m4, m4/strtoull.m4, m4/strtoumax.m4, m4/symlink.m4: + * m4/sys_stat_h.m4, m4/time_h.m4, m4/time_r.m4, m4/tm_gmtoff.m4: + * m4/unistd_h.m4, m4/warnings.m4, m4/wchar_t.m4: + Update from gnulib. + 2012-05-22 Paul Eggert Remove src/m/*. === modified file 'build-aux/move-if-change' --- build-aux/move-if-change 2011-09-07 18:26:41 +0000 +++ build-aux/move-if-change 2012-05-26 23:14:36 +0000 @@ -2,13 +2,13 @@ # Like mv $1 $2, but if the files are the same, just delete $1. # Status is zero if successful, nonzero otherwise. -VERSION='2011-01-28 20:09'; # UTC +VERSION='2012-01-06 07:23'; # 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. +# Copyright (C) 2002-2012 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 @@ -32,7 +32,7 @@ --help display this help and exit --version output version information and exit -The variable CMPPROG can be used to specify an alternative to \`cmp'. +The variable CMPPROG can be used to specify an alternative to 'cmp'. Report bugs to ." === modified file 'build-aux/snippet/_Noreturn.h' --- build-aux/snippet/_Noreturn.h 2011-07-24 22:15:47 +0000 +++ build-aux/snippet/_Noreturn.h 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -#ifndef _Noreturn +#if !defined _Noreturn && __STDC_VERSION__ < 201112 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) === modified file 'build-aux/snippet/arg-nonnull.h' --- build-aux/snippet/arg-nonnull.h 2011-07-24 22:15:47 +0000 +++ build-aux/snippet/arg-nonnull.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 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 === modified file 'build-aux/snippet/c++defs.h' --- build-aux/snippet/c++defs.h 2011-07-24 22:15:47 +0000 +++ build-aux/snippet/c++defs.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* C++ compatible function declaration macros. - Copyright (C) 2010-2011 Free Software Foundation, Inc. + Copyright (C) 2010-2012 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 === modified file 'build-aux/snippet/warn-on-use.h' --- build-aux/snippet/warn-on-use.h 2011-07-24 22:15:47 +0000 +++ build-aux/snippet/warn-on-use.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2011 Free Software Foundation, Inc. + Copyright (C) 2010-2012 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 === modified file 'doc/misc/texinfo.tex' --- doc/misc/texinfo.tex 2011-09-26 21:30:18 +0000 +++ doc/misc/texinfo.tex 2012-05-26 23:14:36 +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{2011-09-23.09} +\def\texinfoversion{2012-05-16.16} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +% 2007, 2008, 2009, 2010, 2011, 2012 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 @@ -28,9 +28,9 @@ % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: -% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or -% ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org). +% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or +% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or +% http://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % @@ -116,6 +116,7 @@ % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi +\ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi @@ -229,6 +230,13 @@ \errorcontextlines16 }% +% @errormsg{MSG}. Do the index-like expansions on MSG, but if things +% aren't perfect, it's not the end of the world, being an error message, +% after all. +% +\def\errormsg{\begingroup \indexnofonts \doerrormsg} +\def\doerrormsg#1{\errmessage{#1}} + % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % @@ -879,7 +887,7 @@ \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} - +% \def\thisfile{} % @center line @@ -887,36 +895,46 @@ % \parseargdef\center{% \ifhmode - \let\next\centerH + \let\centersub\centerH \else - \let\next\centerV + \let\centersub\centerV \fi - \next{\hfil \ignorespaces#1\unskip \hfil}% -} -\def\centerH#1{% - {% - \hfil\break - \advance\hsize by -\leftskip - \advance\hsize by -\rightskip - \line{#1}% - \break - }% -} -\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} + \centersub{\hfil \ignorespaces#1\unskip \hfil}% + \let\centersub\relax % don't let the definition persist, just in case +} +\def\centerH#1{{% + \hfil\break + \advance\hsize by -\leftskip + \advance\hsize by -\rightskip + \line{#1}% + \break +}} +% +\newcount\centerpenalty +\def\centerV#1{% + % The idea here is the same as in \startdefun, \cartouche, etc.: if + % @center is the first thing after a section heading, we need to wipe + % out the negative parskip inserted by \sectionheading, but still + % prevent a page break here. + \centerpenalty = \lastpenalty + \ifnum\centerpenalty>10000 \vskip\parskip \fi + \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi + \line{\kern\leftskip #1\kern\rightskip}% +} % @sp n outputs n lines of vertical space - +% \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment - +% \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} - +% \let\c=\comment % @paragraphindent NCHARS @@ -1089,50 +1107,24 @@ % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. -% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html -% (and related messages, the final outcome is that it is up to the TeX -% user to double the backslashes and otherwise make the string valid, so -% that's what we do). - -% double active backslashes. -% -{\catcode`\@=0 \catcode`\\=\active - @gdef@activebackslashdouble{% - @catcode`@\=@active - @let\=@doublebackslash} -} - -% To handle parens, we must adopt a different approach, since parens are -% not active characters. hyperref.dtx (which has the same problem as -% us) handles it with this amazing macro to replace tokens, with minor -% changes for Texinfo. It is included here under the GPL by permission -% from the author, Heiko Oberdiek. -% -% #1 is the tokens to replace. -% #2 is the replacement. -% #3 is the control sequence with the string. -% -\def\HyPsdSubst#1#2#3{% - \def\HyPsdReplace##1#1##2\END{% - ##1% - \ifx\\##2\\% - \else - #2% - \HyReturnAfterFi{% - \HyPsdReplace##2\END - }% - \fi - }% - \xdef#3{\expandafter\HyPsdReplace#3#1\END}% -} -\long\def\HyReturnAfterFi#1\fi{\fi#1} - -% #1 is a control sequence in which to do the replacements. -\def\backslashparens#1{% - \xdef#1{#1}% redefine it as its expansion; the definition is simply - % \lastnode when called from \setref -> \pdfmkdest. - \HyPsdSubst{(}{\realbackslash(}{#1}% - \HyPsdSubst{)}{\realbackslash)}{#1}% +% +% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and +% related messages. The final outcome is that it is up to the TeX user +% to double the backslashes and otherwise make the string valid, so +% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to +% do this reliably, so we use it. + +% #1 is a control sequence in which to do the replacements, +% which we \xdef. +\def\txiescapepdf#1{% + \ifx\pdfescapestring\relax + % No primitive available; should we give a warning or log? + % Many times it won't matter. + \else + % The expandable \pdfescapestring primitive escapes parentheses, + % backslashes, and other special chars. + \xdef#1{\pdfescapestring{#1}}% + \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images @@ -1191,32 +1183,34 @@ % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% - \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% + \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % - % pdftex (and the PDF format) support .png, .jpg, .pdf (among - % others). Let's try in that order. + % pdftex (and the PDF format) support .pdf, .png, .jpg (among + % others). Let's try in that order, PDF first since if + % someone has a scalable image, presumably better to use that than a + % bitmap. \let\pdfimgext=\empty \begingroup - \openin 1 #1.png \ifeof 1 - \openin 1 #1.jpg \ifeof 1 - \openin 1 #1.jpeg \ifeof 1 - \openin 1 #1.JPG \ifeof 1 - \openin 1 #1.pdf \ifeof 1 - \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% - \else \gdef\pdfimgext{PDF}% + \else \gdef\pdfimgext{JPG}% \fi - \else \gdef\pdfimgext{pdf}% + \else \gdef\pdfimgext{jpeg}% \fi - \else \gdef\pdfimgext{JPG}% + \else \gdef\pdfimgext{jpg}% \fi - \else \gdef\pdfimgext{jpeg}% + \else \gdef\pdfimgext{png}% \fi - \else \gdef\pdfimgext{jpg}% + \else \gdef\pdfimgext{PDF}% \fi - \else \gdef\pdfimgext{png}% + \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup @@ -1228,8 +1222,8 @@ \else \immediate\pdfximage \fi - \ifdim \wd0 >0pt width \imagewidth \fi - \ifdim \wd2 >0pt height \imageheight \fi + \ifdim \wd0 >0pt width \pdfimagewidth \fi + \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else @@ -1244,10 +1238,9 @@ % such as \, aren't expanded when present in a section title. \indexnofonts \turnoffactive - \activebackslashdouble \makevalueexpandable \def\pdfdestname{#1}% - \backslashparens\pdfdestname + \txiescapepdf\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % @@ -1279,28 +1272,22 @@ % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. - \def\pdfoutlinedest{#3}% + \edef\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else - % Doubled backslashes in the name. - {\activebackslashdouble \xdef\pdfoutlinedest{#3}% - \backslashparens\pdfoutlinedest}% + \txiescapepdf\pdfoutlinedest \fi % - % Also double the backslashes in the display string. - {\activebackslashdouble \xdef\pdfoutlinetext{#1}% - \backslashparens\pdfoutlinetext}% + % Also escape PDF chars in the display string. + \edef\pdfoutlinetext{#1}% + \txiescapepdf\pdfoutlinetext % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup - % Thanh's hack / proper braces in bookmarks - \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace - \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{% @@ -1356,25 +1343,41 @@ % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % - % xx to do this right, we have to translate 8-bit characters to - % their "best" equivalent, based on the @documentencoding. Right - % now, I guess we'll just let the pdf reader have its way. + % TODO this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Too + % much work for too little return. Just use the ASCII equivalents + % we use for the index sort strings. + % \indexnofonts \setupdatafile + % We can have normal brace characters in the PDF outlines, unlike + % Texinfo index files. So set that up. + \def\{{\lbracecharliteral}% + \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } + {\catcode`[=1 \catcode`]=2 + \catcode`{=\other \catcode`}=\other + \gdef\lbracecharliteral[{]% + \gdef\rbracecharliteral[}]% + ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces - \ifx\p\space\else\addtokens{\filename}{\PP}% - \advance\filenamelength by 1 - \fi + \addtokens{\filename}{\PP}% + \advance\filenamelength by 1 \fi \nextsp} - \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} + \def\getfilename#1{% + \filenamelength=0 + % If we don't expand the argument now, \skipspaces will get + % snagged on things like "@value{foo}". + \edef\temp{#1}% + \expandafter\skipspaces\temp|\relax + } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else @@ -1471,9 +1474,6 @@ \def\ttsl{\setfontstyle{ttsl}} -% Default leading. -\newdimen\textleading \textleading = 13.2pt - % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. @@ -1485,6 +1485,7 @@ % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % +\newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 @@ -1757,18 +1758,24 @@ \fi\fi -% Set the font macro #1 to the font named #2, adding on the -% specified font prefix (normally `cm'). +% Set the font macro #1 to the font named \fontprefix#2. % #3 is the font's design size, #4 is a scale factor, #5 is the CMap -% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass -% empty to omit). +% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). +% Example: +% #1 = \textrm +% #2 = \rmshape +% #3 = 10 +% #4 = \mainmagstep +% #5 = OT1 +% \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble -% emacs-page end of cmaps +% +% (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -1778,7 +1785,7 @@ \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} -\def\rmbshape{bx} %where the normal face is bold +\def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} @@ -1793,8 +1800,7 @@ \def\scshape{csc} \def\scbshape{csc} -% Definitions for a main text size of 11pt. This is the default in -% Texinfo. +% Definitions for a main text size of 11pt. (The default in Texinfo.) % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). @@ -1919,7 +1925,7 @@ \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm -} % end of 11pt text font size definitions +} % end of 11pt text font size definitions, \definetextfontsizexi % Definitions to make the main text be 10pt Computer Modern, with @@ -2051,7 +2057,7 @@ \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm -} % end of 10pt text font size definitions +} % end of 10pt text font size definitions, \definetextfontsizex % We provide the user-level command @@ -2372,7 +2378,9 @@ \else\ifx\next-% \else\ifx\next.% \else\ptexslash - \fi\fi\fi} + \fi\fi\fi + \aftersmartic +} % like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. @@ -2382,9 +2390,15 @@ % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} +\def\aftersmartic{} +\def\var#1{% + \let\saveaftersmartic = \aftersmartic + \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% + \smartslanted{#1}% +} + \let\i=\smartitalic \let\slanted=\smartslanted -\def\var#1{\smartslanted{#1}} \let\dfn=\smartslanted \let\emph=\smartitalic @@ -2480,7 +2494,7 @@ \plainfrenchspacing #1% }% - \null + \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. @@ -2762,6 +2776,7 @@ \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi + \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. @@ -2774,6 +2789,7 @@ \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi + \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. @@ -2838,20 +2854,48 @@ } } +% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. +% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, +% except specified as a normal braced arg, so no newlines to worry about. +% +\def\outfmtnametex{tex} +% +\long\def\inlinefmt#1{\doinlinefmt #1,\finish} +\long\def\doinlinefmt#1,#2,\finish{% + \def\inlinefmtname{#1}% + \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi +} +% For raw, must switch into @tex before parsing the argument, to avoid +% setting catcodes prematurely. Doing it this way means that, for +% example, @inlineraw{html, foo{bar} gets a parse error instead of being +% ignored. But this isn't important because if people want a literal +% *right* brace they would have to use a command anyway, so they may as +% well use a command to get a left brace too. We could re-use the +% delimiter character idea from \verb, but it seems like overkill. +% +\long\def\inlineraw{\tex \doinlineraw} +\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} +\def\doinlinerawtwo#1,#2,\finish{% + \def\inlinerawname{#1}% + \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi + \endgroup % close group opened by \tex. +} + \message{glyphs,} % and logos. -% @@ prints an @. +% @@ prints an @, as does @atchar{}. \def\@{\char64 } +\let\atchar=\@ -% 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. +% @{ @} @lbracechar{} @rbracechar{} all generate brace characters. +% 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 +\let\{=\mylbrace \let\lbracechar=\{ +\let\}=\myrbrace \let\rbracechar=\} \begingroup % Definitions to produce \{ and \} commands for indices, % and @{ and @} for the aux/toc files. @@ -2979,7 +3023,7 @@ {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} +\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -4409,6 +4453,7 @@ \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright + \definedummyword\lbracechar \definedummyword\leq \definedummyword\minus \definedummyword\ogonek @@ -4421,6 +4466,7 @@ \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase + \definedummyword\rbracechar \definedummyword\result \definedummyword\textdegree % @@ -4472,7 +4518,9 @@ \definedummyword\t % % Commands that take arguments. + \definedummyword\abbr \definedummyword\acronym + \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command @@ -4482,7 +4530,9 @@ \definedummyword\emph \definedummyword\env \definedummyword\file + \definedummyword\image \definedummyword\indicateurl + \definedummyword\inforef \definedummyword\kbd \definedummyword\key \definedummyword\math @@ -4529,7 +4579,10 @@ % 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\lbracechar{|a}% + % \def\}{|b}% + \def\rbracechar{|b}% % % Non-English letters. \def\AA{AA}% @@ -4705,10 +4758,9 @@ % % ..., ready, GO: % -\def\safewhatsit#1{% -\ifhmode +\def\safewhatsit#1{\ifhmode #1% -\else + \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% @@ -4732,7 +4784,6 @@ % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: - % % @deffn deffn-whatever % @vindex index-whatever % Description. @@ -4745,8 +4796,7 @@ % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi -\fi -} +\fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} @@ -5849,14 +5899,15 @@ % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a - % discardable item.) + % discardable item.) However, when a paragraph is not started next + % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out + % or the negative glue will cause weirdly wrong output, typically + % obscuring the section heading with something else. \vskip-\parskip % - % This is purely so the last item on the list is a known \penalty > - % 10000. This is so \startdefun can avoid allowing breakpoints after - % section headings. Otherwise, it would insert a valid breakpoint between: - % @section sec-whatever - % @deffn def-whatever + % This is so the last item on the main vertical list is a known + % \penalty > 10000, so \startdefun, etc., can recognize the situation + % and do the needful. \penalty 10001 } @@ -6276,7 +6327,7 @@ % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. - \ifnum\lastpenalty>10000 \vskip\parskip \fi + \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt @@ -7766,7 +7817,7 @@ \fi\fi } - +% % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed @@ -7775,26 +7826,41 @@ \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} +% +\newbox\toprefbox +\newbox\printedrefnamebox +\newbox\infofilenamebox +\newbox\printedmanualbox +% \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces + % + % Get args without leading/trailing spaces. + \def\printedrefname{\ignorespaces #3}% + \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% + % + \def\infofilename{\ignorespaces #4}% + \setbox\infofilenamebox = \hbox{\infofilename\unskip}% + % \def\printedmanual{\ignorespaces #5}% - \def\printedrefname{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual\unskip}% - \setbox0=\hbox{\printedrefname\unskip}% - \ifdim \wd0 = 0pt + \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% + % + % If the printed reference name (arg #3) was not explicitly given in + % the @xref, figure out what we want to use. + \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax - % Use the node name inside the square brackets. + % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else - % Use the actual chapter/section title appear inside - % the square brackets. Use the real section title if we have it. - \ifdim \wd1 > 0pt - % It is in another manual, so we don't have it. + % Auto section-title: use chapter/section title inside + % the square brackets if we have it. + \ifdim \wd\printedmanualbox > 0pt + % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs - % We know the real title if we have the xref values. + % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. @@ -7808,13 +7874,20 @@ \ifpdf {\indexnofonts \turnoffactive + \makevalueexpandable % This expands tokens, so do it after making catcode changes, so _ - % etc. don't get their TeX definitions. + % etc. don't get their TeX definitions. This ignores all spaces in + % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % - % See comments at \activebackslashdouble. - {\activebackslashdouble \xdef\pdfxrefdest{#1}% - \backslashparens\pdfxrefdest}% + % This (wrongly) does not take account of leading or trailing + % spaces in #1, which should be ignored. + \edef\pdfxrefdest{#1}% + \ifx\pdfxrefdest\empty + \def\pdfxrefdest{Top}% no empty targets + \else + \txiescapepdf\pdfxrefdest % escape PDF special chars + \fi % \leavevmode \startlink attr{/Border [0 0 0]}% @@ -7841,29 +7914,42 @@ \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". - \ifdim\wd0 = 0pt + \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}{}% \else \printedrefname \fi % - % if the user also gave the printed manual name (fifth arg), append + % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". - \ifdim \wd1 > 0pt + \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. - % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. - \ifdim \wd1 > 0pt - \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% + % + % If we use \unhbox to print the node names, TeX does not insert + % empty discretionaries after hyphens, which means that it will not + % find a line break at a hyphen in a node names. Since some manuals + % are best written with fairly long node names, containing hyphens, + % this is a loss. Therefore, we give the text of the node name + % again, so it is as if TeX is seeing it for the first time. + % + \ifdim \wd\printedmanualbox > 0pt + % Cross-manual reference with a printed manual name. + % + \crossmanualxref{\cite{\printedmanual\unskip}}% + % + \else\ifdim \wd\infofilenamebox > 0pt + % Cross-manual reference with only an info filename (arg 4), no + % printed manual name (arg 5). This is essentially the same as + % the case above; we output the filename, since we have nothing else. + % + \crossmanualxref{\code{\infofilename\unskip}}% + % \else + % Reference within this manual. + % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of @@ -7875,7 +7961,7 @@ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% - % output the `[mynode]' via a macro so it can be overridden. + % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: @@ -7883,11 +7969,37 @@ % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% - \fi + \fi\fi \fi \endlink \endgroup} +% Output a cross-manual xref to #1. Used just above (twice). +% +% Only include the text "Section ``foo'' in" if the foo is neither +% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply +% "see The Foo Manual", the idea being to refer to the whole manual. +% +% But, this being TeX, we can't easily compare our node name against the +% string "Top" while ignoring the possible spaces before and after in +% the input. By adding the arbitrary 7sp below, we make it much less +% likely that a real node name would have the same width as "Top" (e.g., +% in a monospaced font). Hopefully it will never happen in practice. +% +% For the same basic reason, we retypeset the "Top" at every +% reference, since the current font is indeterminate. +% +\def\crossmanualxref#1{% + \setbox\toprefbox = \hbox{Top\kern7sp}% + \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% + \ifdim \wd2 > 7sp % nonempty? + \ifdim \wd2 = \wd\toprefbox \else % same as Top? + \putwordSection{} ``\printedrefname'' \putwordin{}\space + \fi + \fi + #1% +} + % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly @@ -8103,7 +8215,7 @@ % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } -% @footnotestyle is meaningful for info output only. +% @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 @@ -8166,6 +8278,8 @@ % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut + % + % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 @@ -8253,7 +8367,7 @@ it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% - \ifx\epsfbox\thisiundefined + \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% @@ -8277,6 +8391,13 @@ % If the image is by itself, center it. \ifvmode \imagevmodetrue + \else \ifx\centersub\centerV + % for @center @image, we need a vbox so we can have our vertical space + \imagevmodetrue + \vbox\bgroup % vbox has better behavior than vtop herev + \fi\fi + % + \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space @@ -8286,9 +8407,13 @@ \fi % % Leave vertical mode so that indentation from an enclosing - % environment such as @quotation is respected. On the other hand, if - % it's at the top level, we don't want the normal paragraph indentation. - \noindent + % environment such as @quotation is respected. + % However, if we're at the top level, we don't want the + % normal paragraph indentation. + % On the other hand, if we are in the case of @center @image, we don't + % want to start a paragraph, which will create a hsize-width box and + % eradicate the centering. + \ifx\centersub\centerV\else \noindent \fi % % Output the image. \ifpdf @@ -8300,7 +8425,10 @@ \epsfbox{#1.eps}% \fi % - \ifimagevmode \medskip \fi % space after the standalone image + \ifimagevmode + \medskip % space after a standalone image + \fi + \ifx\centersub\centerV \egroup \fi \endgroup} @@ -9781,14 +9909,24 @@ % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. -\catcode`\\=\active -@def@normalbackslash{{@tt@backslashcurfont}} +\catcode`\\=\active % @ for escape char from now on. + +% The story here is that in math mode, the \char of \backslashcurfont +% ends up printing the roman \ from the math symbol font (because \char +% in math mode uses the \mathcode, and plain.tex sets +% \mathcode`\\="026E). It seems better for @backslashchar{} to always +% print a typewriter backslash, hence we use an explicit \mathchar, +% which is the decimal equivalent of "715c (class 7, e.g., use \fam; +% ignored family value; char position "5C). We can't use " for the +% usual hex value because it has already been made active. +@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} +@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. + % On startup, @fixbackslash assigns: % @let \ = @normalbackslash - % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. +% catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} @@ -9844,10 +9982,13 @@ @def@normalslash{/} % These look ok in all fonts, so just make them not special. +% @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} +@let @hashchar = @normalhash + @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. === modified file 'lib/alloca.in.h' --- lib/alloca.in.h 2011-06-21 16:15:07 +0000 +++ lib/alloca.in.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2004, 2006-2011 Free Software Foundation, + Copyright (C) 1995, 1999, 2001-2004, 2006-2012 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it @@ -14,9 +14,9 @@ General Public License for more details. You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ + License along with this program; if not, see + . + */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ === modified file 'lib/allocator.h' --- lib/allocator.h 2011-06-02 08:25:28 +0000 +++ lib/allocator.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Memory allocators such as malloc+free. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2012 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 === modified file 'lib/careadlinkat.c' --- lib/careadlinkat.c 2011-06-06 19:53:44 +0000 +++ lib/careadlinkat.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Read symbolic links into a buffer without size limitation, relative to fd. - Copyright (C) 2001, 2003-2004, 2007, 2009-2011 Free Software Foundation, + Copyright (C) 2001, 2003-2004, 2007, 2009-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify === modified file 'lib/careadlinkat.h' --- lib/careadlinkat.h 2011-06-06 19:53:44 +0000 +++ lib/careadlinkat.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Read symbolic links into a buffer without size limitation, relative to fd. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2012 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 === modified file 'lib/dosname.h' --- lib/dosname.h 2011-02-25 20:05:36 +0000 +++ lib/dosname.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* File names on MS-DOS/Windows systems. - Copyright (C) 2000-2001, 2004-2006, 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2000-2001, 2004-2006, 2009-2012 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 === modified file 'lib/dup2.c' --- lib/dup2.c 2011-09-26 21:30:18 +0000 +++ lib/dup2.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Duplicate an open file descriptor to a specified file descriptor. - Copyright (C) 1999, 2004-2007, 2009-2011 Free Software Foundation, Inc. + Copyright (C) 1999, 2004-2007, 2009-2012 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 @@ -31,7 +31,7 @@ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -/* Get declarations of the Win32 API functions. */ +/* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include === modified file 'lib/filemode.c' --- lib/filemode.c 2012-01-19 07:21:25 +0000 +++ lib/filemode.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* filemode.c -- make a string describing file modes - Copyright (C) 1985, 1990, 1993, 1998-2000, 2004, 2006, 2009-2011 Free + Copyright (C) 1985, 1990, 1993, 1998-2000, 2004, 2006, 2009-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -21,8 +21,8 @@ #include "filemode.h" /* The following is for Cray DMF (Data Migration Facility), which is a - HSM file system. A migrated file has a `st_dm_mode' that is - different from the normal `st_mode', so any tests for migrated + HSM file system. A migrated file has a 'st_dm_mode' that is + different from the normal 'st_mode', so any tests for migrated files should use the former. */ #if HAVE_ST_DM_MODE # define IS_MIGRATED_FILE(statp) \ === modified file 'lib/filemode.h' --- lib/filemode.h 2011-02-20 10:51:50 +0000 +++ lib/filemode.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Make a string describing file modes. - Copyright (C) 1998-1999, 2003, 2006, 2009-2011 Free Software Foundation, + Copyright (C) 1998-1999, 2003, 2006, 2009-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify === modified file 'lib/ftoastr.c' --- lib/ftoastr.c 2011-06-15 18:50:18 +0000 +++ lib/ftoastr.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* floating point to accurate string - Copyright (C) 2010-2011 Free Software Foundation, Inc. + Copyright (C) 2010-2012 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 @@ -29,7 +29,6 @@ #include "ftoastr.h" -#include "intprops.h" #include #include #include === modified file 'lib/ftoastr.h' --- lib/ftoastr.h 2011-02-06 22:13:03 +0000 +++ lib/ftoastr.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* floating point to accurate string - Copyright (C) 2010-2011 Free Software Foundation, Inc. + Copyright (C) 2010-2012 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 @@ -58,7 +58,7 @@ FTOASTR_ALWAYS_SIGNED = 2, /* Output " " before positive numbers; ignored if - FTOASTER_ALWAYS_SIGNED is also given. */ + FTOASTR_ALWAYS_SIGNED is also given. */ FTOASTR_SPACE_POSITIVE = 4, /* Pad with zeros instead of spaces; ignored if FTOASTR_LEFT_JUSTIFY === modified file 'lib/getloadavg.c' --- lib/getloadavg.c 2011-02-18 07:44:39 +0000 +++ lib/getloadavg.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Get the system load averages. - Copyright (C) 1985-1989, 1991-1995, 1997, 1999-2000, 2003-2011 Free Software + Copyright (C) 1985-1989, 1991-1995, 1997, 1999-2000, 2003-2012 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with gnulib. @@ -46,7 +46,7 @@ NLIST_STRUCT Include nlist.h, not a.out.h. N_NAME_POINTER The nlist n_name element is a pointer, not an array. - HAVE_STRUCT_NLIST_N_UN_N_NAME `n_un.n_name' is member of `struct nlist'. + HAVE_STRUCT_NLIST_N_UN_N_NAME 'n_un.n_name' is member of 'struct nlist'. LINUX_LDAV_FILE [__linux__, __CYGWIN__]: File containing load averages. @@ -794,7 +794,7 @@ # define LDAV_DONE /* This call can return -1 for an error, but with good args it's not supposed to fail. The first argument is for no - apparent reason of type `long int *'. */ + apparent reason of type 'long int *'. */ dg_sys_info ((long int *) &load_info, DG_SYS_INFO_LOAD_INFO_TYPE, DG_SYS_INFO_LOAD_VERSION_0); === modified file 'lib/getopt.c' --- lib/getopt.c 2011-07-08 20:22:17 +0000 +++ lib/getopt.c 2012-05-26 23:14:36 +0000 @@ -2,7 +2,7 @@ NOTE: getopt is part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! - Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2011 Free Software + Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -41,15 +41,15 @@ # include #endif -/* This version of `getopt' appears to the caller like standard Unix `getopt' +/* This version of 'getopt' appears to the caller like standard Unix 'getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. - As `getopt_long' works, it permutes the elements of ARGV so that, + As 'getopt_long' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. - Using `getopt' or setting the environment variable POSIXLY_CORRECT + Using 'getopt' or setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. @@ -58,24 +58,24 @@ #include "getopt_int.h" -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, +/* For communication from 'getopt' to the caller. + When 'getopt' finds an option that takes an argument, the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, + Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the + and for communication between successive calls to 'getopt'. + + On entry to 'getopt', zero means this is the first call; initialize. + + When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. - Otherwise, `optind' communicates from one call to the next + Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ @@ -137,7 +137,7 @@ The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. - `first_nonopt' and `last_nonopt' are relocated so that they describe + 'first_nonopt' and 'last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ static void @@ -154,7 +154,7 @@ but it consists of two parts that need to be swapped next. */ #if defined _LIBC && defined USE_NONOPTION_FLAGS - /* First make sure the handling of the `__getopt_nonoption_flags' + /* First make sure the handling of the '__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) @@ -291,48 +291,48 @@ If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' + (aside from the initial '-') are option characters. If 'getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can + If 'getopt' finds another option character, it returns that character, + updating 'optind' and 'nextchar' so that the next call to 'getopt' can resume the scan with the following option character or ARGV-element. - If there are no more option characters, `getopt' returns -1. - Then `optind' is the index in ARGV of the first ARGV-element + If there are no more option characters, 'getopt' returns -1. + Then 'optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to + return '?' after printing an error message. If you set 'opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that + ARGV-element, is returned in 'optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. + it is returned in 'optarg', otherwise 'optarg' is set to zero. - If OPTSTRING starts with `-' or `+', it requests different methods of + If OPTSTRING starts with '-' or '+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - Long-named options begin with `--' instead of `-'. + Long-named options begin with '--' instead of '-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. + from the option name by a '=', or else the in next ARGV-element. + When 'getopt' finds a long-named option, it returns 0 if that option's + 'flag' field is nonzero, the value of the option's 'val' field + if the 'flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. - LONGOPTS is a vector of `struct option' terminated by an + LONGOPTS is a vector of 'struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. @@ -409,7 +409,7 @@ d->__last_nonopt = d->optind; } - /* The special ARGV-element `--' means premature end of options. + /* The special ARGV-element '--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ @@ -788,7 +788,7 @@ char c = *d->__nextchar++; const char *temp = strchr (optstring, c); - /* Increment `optind' when we start to process its last character. */ + /* Increment 'optind' when we start to process its last character. */ if (*d->__nextchar == '\0') ++d->optind; @@ -887,7 +887,7 @@ return c; } else - /* We already incremented `d->optind' once; + /* We already incremented 'd->optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; @@ -1114,7 +1114,7 @@ c = '?'; } else - /* We already incremented `optind' once; + /* We already incremented 'optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; d->__nextchar = NULL; @@ -1177,7 +1177,7 @@ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ + the above definition of 'getopt'. */ int main (int argc, char **argv) === modified file 'lib/getopt.in.h' --- lib/getopt.in.h 2011-05-29 21:52:18 +0000 +++ lib/getopt.in.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Declarations for getopt. - Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2011 Free Software + Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -82,7 +82,7 @@ getopt_long_only can permute argv; this is required for backward compatibility (e.g., for LSB 2.0.1). - This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt', + This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt', but it caused redefinition warnings if both unistd.h and getopt.h were included, since unistd.h includes getopt.h having previously defined __need_getopt. @@ -128,29 +128,29 @@ extern "C" { #endif -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, +/* For communication from 'getopt' to the caller. + When 'getopt' finds an option that takes an argument, the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, + Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the + and for communication between successive calls to 'getopt'. + + On entry to 'getopt', zero means this is the first call; initialize. + + When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. - Otherwise, `optind' communicates from one call to the next + Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; -/* Callers store zero here to inhibit the error message `getopt' prints +/* Callers store zero here to inhibit the error message 'getopt' prints for unrecognized options. */ extern int opterr; @@ -162,24 +162,24 @@ #ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is + of 'struct option' terminated by an element containing a name which is zero. - The field `has_arg' is: + The field 'has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but + If the field 'flag' is not NULL, it points to a variable that is set + to the value given in the field 'val' when the option is found, but left unchanged if the option is not found. - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero + To have a long-named option do something other than set an 'int' to + a compiled-in constant, such as set a value from 'optarg', set the + option's 'flag' field to zero and its 'val' field to a nonzero value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ + one). For long options that have a zero 'flag' field, 'getopt' + returns the contents of the 'val' field. */ # if !GNULIB_defined_struct_option struct option @@ -194,7 +194,7 @@ # define GNULIB_defined_struct_option 1 # endif -/* Names for the values of the `has_arg' field of `struct option'. */ +/* Names for the values of the 'has_arg' field of 'struct option'. */ # define no_argument 0 # define required_argument 1 @@ -208,23 +208,23 @@ Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options - missing arguments, `optopt' is set to the option letter, and '?' is + missing arguments, 'optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in `optarg'. + takes an argument, to be placed in 'optarg'. If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU `getopt'. + optional. This behavior is specific to the GNU 'getopt'. - The argument `--' causes premature termination of argument - scanning, explicitly telling `getopt' that there are no more + The argument '--' causes premature termination of argument + scanning, explicitly telling 'getopt' that there are no more options. - If OPTS begins with `-', then non-option arguments are treated as + If OPTS begins with '-', then non-option arguments are treated as arguments to the option '\1'. This behavior is specific to the GNU - `getopt'. If OPTS begins with `+', or POSIXLY_CORRECT is set in + 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in the environment, then do not permute arguments. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) === modified file 'lib/getopt1.c' --- lib/getopt1.c 2011-01-09 07:33:50 +0000 +++ lib/getopt1.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2011 Free Software + Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -141,11 +141,11 @@ break; case 'c': - printf ("option c with value `%s'\n", optarg); + printf ("option c with value '%s'\n", optarg); break; case 'd': - printf ("option d with value `%s'\n", optarg); + printf ("option d with value '%s'\n", optarg); break; case '?': === modified file 'lib/getopt_int.h' --- lib/getopt_int.h 2011-02-25 07:23:41 +0000 +++ lib/getopt_int.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Internal declarations for getopt. - Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2011 Free Software + Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -40,7 +40,7 @@ stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character + variable POSIXLY_CORRECT, or using '+' as the first character of the list of option characters, or by calling getopt. PERMUTE is the default. We permute the contents of ARGV as we @@ -52,12 +52,12 @@ written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option - with character code 1. Using `-' as the first character of the + with character code 1. Using '-' as the first character of the list of option characters selects this mode of operation. - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return -1 with `optind' != ARGC. */ + The special argument '--' forces an end of option-scanning regardless + of the value of 'ordering'. In the case of RETURN_IN_ORDER, only + '--' can cause 'getopt' to return -1 with 'optind' != ARGC. */ enum __ord { @@ -99,8 +99,8 @@ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first - of them; `last_nonopt' is the index after the last of them. */ + been skipped. 'first_nonopt' is the index in ARGV of the first + of them; 'last_nonopt' is the index after the last of them. */ int __first_nonopt; int __last_nonopt; === modified file 'lib/gettext.h' --- lib/gettext.h 2011-02-15 04:53:29 +0000 +++ lib/gettext.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2011 Free Software + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2012 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 @@ -185,7 +184,7 @@ #include #define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ - (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \ + (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ /* || __STDC_VERSION__ >= 199901L */ ) #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS === modified file 'lib/gnulib.mk' --- lib/gnulib.mk 2012-04-21 17:15:03 +0000 +++ lib/gnulib.mk 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ ## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -204,7 +204,7 @@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. -inttypes.h: inttypes.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H) +inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @@ -225,10 +225,12 @@ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ + -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ @@ -430,6 +432,29 @@ ## end gnulib module stat +## begin gnulib module stdalign + +BUILT_SOURCES += $(STDALIGN_H) + +# We need the following in order to create when the system +# doesn't have one that works. +if GL_GENERATE_STDALIGN_H +stdalign.h: stdalign.in.h $(top_builddir)/config.status + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/stdalign.in.h; \ + } > $@-t && \ + mv $@-t $@ +else +stdalign.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += stdalign.h stdalign.h-t + +EXTRA_DIST += stdalign.in.h + +## end gnulib module stdalign + ## begin gnulib module stdarg BUILT_SOURCES += $(STDARG_H) @@ -599,7 +624,6 @@ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ - -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ @@ -719,8 +743,11 @@ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ + -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ + -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ + -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ @@ -745,7 +772,10 @@ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ + -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ + -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ + -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ @@ -763,7 +793,9 @@ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ @@ -854,6 +886,7 @@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ + -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ @@ -900,6 +933,31 @@ ## end gnulib module sys_stat +## begin gnulib module sys_types + +BUILT_SOURCES += sys/types.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +sys/types.h: sys_types.in.h $(top_builddir)/config.status + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + < $(srcdir)/sys_types.in.h; \ + } > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += sys/types.h sys/types.h-t + +EXTRA_DIST += sys_types.in.h + +## end gnulib module sys_types + ## begin gnulib module time BUILT_SOURCES += time.h @@ -973,6 +1031,7 @@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ @@ -997,6 +1056,7 @@ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ + -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ @@ -1009,11 +1069,12 @@ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ + -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ - -e 's/@''GNULIB_UNISTD_H_GETOPT''@/$(GNULIB_UNISTD_H_GETOPT)/g' \ + -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ @@ -1046,6 +1107,7 @@ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ + -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ @@ -1058,6 +1120,7 @@ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ + -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ @@ -1067,11 +1130,13 @@ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ + -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ === modified file 'lib/ignore-value.h' --- lib/ignore-value.h 2011-02-15 04:53:29 +0000 +++ lib/ignore-value.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* ignore a function return without a compiler warning - Copyright (C) 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2008-2012 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 @@ -35,16 +35,6 @@ #ifndef _GL_IGNORE_VALUE_H # define _GL_IGNORE_VALUE_H -# ifndef _GL_ATTRIBUTE_DEPRECATED -/* The __attribute__((__deprecated__)) feature - is available in gcc versions 3.1 and newer. */ -# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1) -# define _GL_ATTRIBUTE_DEPRECATED /* empty */ -# else -# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) -# endif -# endif - /* The __attribute__((__warn_unused_result__)) feature is available in gcc versions 3.4 and newer, while the typeof feature has been available since 2.7 at least. */ @@ -54,9 +44,4 @@ # define ignore_value(x) (({ __typeof__ (x) __x = (x); (void) __x; })) # endif -/* ignore_value works for scalars, pointers and aggregates; - deprecate ignore_ptr. */ -static inline void _GL_ATTRIBUTE_DEPRECATED -ignore_ptr (void *p) { (void) p; } /* deprecated: use ignore_value */ - #endif === modified file 'lib/intprops.h' --- lib/intprops.h 2011-05-29 21:52:18 +0000 +++ lib/intprops.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* intprops.h -- properties of integer types - Copyright (C) 2001-2005, 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2001-2005, 2009-2012 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 === modified file 'lib/inttypes.in.h' --- lib/inttypes.in.h 2011-04-22 23:53:21 +0000 +++ lib/inttypes.in.h 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2011 Free Software Foundation, Inc. +/* Copyright (C) 2006-2012 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. @@ -31,6 +31,12 @@ The include_next requires a split double-inclusion guard. */ #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H # if @HAVE_INTTYPES_H@ + + /* Some pre-C++11 implementations need this. */ +# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS +# define __STDC_FORMAT_MACROS 1 +# endif + # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ # endif #endif @@ -50,994 +56,992 @@ # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." #endif +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* 7.8.1 Macros for format specifiers */ -#if ! defined __cplusplus || defined __STDC_FORMAT_MACROS - -# if defined _TNS_R_TARGET +#if defined _TNS_R_TARGET /* Tandem NonStop R series and compatible platforms released before July 2005 support %Ld but not %lld. */ -# define _LONG_LONG_FORMAT_PREFIX "L" -# else -# define _LONG_LONG_FORMAT_PREFIX "ll" -# endif - -# if !defined PRId8 || @PRI_MACROS_BROKEN@ -# undef PRId8 -# ifdef INT8_MAX -# define PRId8 "d" -# endif -# endif -# if !defined PRIi8 || @PRI_MACROS_BROKEN@ -# undef PRIi8 -# ifdef INT8_MAX -# define PRIi8 "i" -# endif -# endif -# if !defined PRIo8 || @PRI_MACROS_BROKEN@ -# undef PRIo8 -# ifdef UINT8_MAX -# define PRIo8 "o" -# endif -# endif -# if !defined PRIu8 || @PRI_MACROS_BROKEN@ -# undef PRIu8 -# ifdef UINT8_MAX -# define PRIu8 "u" -# endif -# endif -# if !defined PRIx8 || @PRI_MACROS_BROKEN@ -# undef PRIx8 -# ifdef UINT8_MAX -# define PRIx8 "x" -# endif -# endif -# if !defined PRIX8 || @PRI_MACROS_BROKEN@ -# undef PRIX8 -# ifdef UINT8_MAX -# define PRIX8 "X" -# endif -# endif -# if !defined PRId16 || @PRI_MACROS_BROKEN@ -# undef PRId16 -# ifdef INT16_MAX -# define PRId16 "d" -# endif -# endif -# if !defined PRIi16 || @PRI_MACROS_BROKEN@ -# undef PRIi16 -# ifdef INT16_MAX -# define PRIi16 "i" -# endif -# endif -# if !defined PRIo16 || @PRI_MACROS_BROKEN@ -# undef PRIo16 -# ifdef UINT16_MAX -# define PRIo16 "o" -# endif -# endif -# if !defined PRIu16 || @PRI_MACROS_BROKEN@ -# undef PRIu16 -# ifdef UINT16_MAX -# define PRIu16 "u" -# endif -# endif -# if !defined PRIx16 || @PRI_MACROS_BROKEN@ -# undef PRIx16 -# ifdef UINT16_MAX -# define PRIx16 "x" -# endif -# endif -# if !defined PRIX16 || @PRI_MACROS_BROKEN@ -# undef PRIX16 -# ifdef UINT16_MAX -# define PRIX16 "X" -# endif -# endif -# if !defined PRId32 || @PRI_MACROS_BROKEN@ -# undef PRId32 -# ifdef INT32_MAX -# define PRId32 "d" -# endif -# endif -# if !defined PRIi32 || @PRI_MACROS_BROKEN@ -# undef PRIi32 -# ifdef INT32_MAX -# define PRIi32 "i" -# endif -# endif -# if !defined PRIo32 || @PRI_MACROS_BROKEN@ -# undef PRIo32 -# ifdef UINT32_MAX -# define PRIo32 "o" -# endif -# endif -# if !defined PRIu32 || @PRI_MACROS_BROKEN@ -# undef PRIu32 -# ifdef UINT32_MAX -# define PRIu32 "u" -# endif -# endif -# if !defined PRIx32 || @PRI_MACROS_BROKEN@ -# undef PRIx32 -# ifdef UINT32_MAX -# define PRIx32 "x" -# endif -# endif -# if !defined PRIX32 || @PRI_MACROS_BROKEN@ -# undef PRIX32 -# ifdef UINT32_MAX -# define PRIX32 "X" -# endif -# endif -# ifdef INT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) -# define _PRI64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRI64_PREFIX "I64" -# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 -# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRId64 || @PRI_MACROS_BROKEN@ -# undef PRId64 -# define PRId64 _PRI64_PREFIX "d" -# endif -# if !defined PRIi64 || @PRI_MACROS_BROKEN@ -# undef PRIi64 -# define PRIi64 _PRI64_PREFIX "i" -# endif -# endif -# ifdef UINT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) -# define _PRIu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRIu64_PREFIX "I64" -# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 -# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRIo64 || @PRI_MACROS_BROKEN@ -# undef PRIo64 -# define PRIo64 _PRIu64_PREFIX "o" -# endif -# if !defined PRIu64 || @PRI_MACROS_BROKEN@ -# undef PRIu64 -# define PRIu64 _PRIu64_PREFIX "u" -# endif -# if !defined PRIx64 || @PRI_MACROS_BROKEN@ -# undef PRIx64 -# define PRIx64 _PRIu64_PREFIX "x" -# endif -# if !defined PRIX64 || @PRI_MACROS_BROKEN@ -# undef PRIX64 -# define PRIX64 _PRIu64_PREFIX "X" -# endif -# endif - -# if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ -# undef PRIdLEAST8 -# define PRIdLEAST8 "d" -# endif -# if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ -# undef PRIiLEAST8 -# define PRIiLEAST8 "i" -# endif -# if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ -# undef PRIoLEAST8 -# define PRIoLEAST8 "o" -# endif -# if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ -# undef PRIuLEAST8 -# define PRIuLEAST8 "u" -# endif -# if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ -# undef PRIxLEAST8 -# define PRIxLEAST8 "x" -# endif -# if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ -# undef PRIXLEAST8 -# define PRIXLEAST8 "X" -# endif -# if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ -# undef PRIdLEAST16 -# define PRIdLEAST16 "d" -# endif -# if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ -# undef PRIiLEAST16 -# define PRIiLEAST16 "i" -# endif -# if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ -# undef PRIoLEAST16 -# define PRIoLEAST16 "o" -# endif -# if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ -# undef PRIuLEAST16 -# define PRIuLEAST16 "u" -# endif -# if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ -# undef PRIxLEAST16 -# define PRIxLEAST16 "x" -# endif -# if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ -# undef PRIXLEAST16 -# define PRIXLEAST16 "X" -# endif -# if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ -# undef PRIdLEAST32 -# define PRIdLEAST32 "d" -# endif -# if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ -# undef PRIiLEAST32 -# define PRIiLEAST32 "i" -# endif -# if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ -# undef PRIoLEAST32 -# define PRIoLEAST32 "o" -# endif -# if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ -# undef PRIuLEAST32 -# define PRIuLEAST32 "u" -# endif -# if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ -# undef PRIxLEAST32 -# define PRIxLEAST32 "x" -# endif -# if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ -# undef PRIXLEAST32 -# define PRIXLEAST32 "X" -# endif -# ifdef INT64_MAX -# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ -# undef PRIdLEAST64 -# define PRIdLEAST64 PRId64 -# endif -# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ -# undef PRIiLEAST64 -# define PRIiLEAST64 PRIi64 -# endif -# endif -# ifdef UINT64_MAX -# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ -# undef PRIoLEAST64 -# define PRIoLEAST64 PRIo64 -# endif -# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ -# undef PRIuLEAST64 -# define PRIuLEAST64 PRIu64 -# endif -# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ -# undef PRIxLEAST64 -# define PRIxLEAST64 PRIx64 -# endif -# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ -# undef PRIXLEAST64 -# define PRIXLEAST64 PRIX64 -# endif -# endif - -# if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ -# undef PRIdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIdFAST8 PRId64 -# else -# define PRIdFAST8 "d" -# endif -# endif -# if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ -# undef PRIiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIiFAST8 PRIi64 -# else -# define PRIiFAST8 "i" -# endif -# endif -# if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ -# undef PRIoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIoFAST8 PRIo64 -# else -# define PRIoFAST8 "o" -# endif -# endif -# if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ -# undef PRIuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIuFAST8 PRIu64 -# else -# define PRIuFAST8 "u" -# endif -# endif -# if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ -# undef PRIxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIxFAST8 PRIx64 -# else -# define PRIxFAST8 "x" -# endif -# endif -# if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ -# undef PRIXFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIXFAST8 PRIX64 -# else -# define PRIXFAST8 "X" -# endif -# endif -# if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ -# undef PRIdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIdFAST16 PRId64 -# else -# define PRIdFAST16 "d" -# endif -# endif -# if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ -# undef PRIiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIiFAST16 PRIi64 -# else -# define PRIiFAST16 "i" -# endif -# endif -# if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ -# undef PRIoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIoFAST16 PRIo64 -# else -# define PRIoFAST16 "o" -# endif -# endif -# if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ -# undef PRIuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIuFAST16 PRIu64 -# else -# define PRIuFAST16 "u" -# endif -# endif -# if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ -# undef PRIxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIxFAST16 PRIx64 -# else -# define PRIxFAST16 "x" -# endif -# endif -# if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ -# undef PRIXFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIXFAST16 PRIX64 -# else -# define PRIXFAST16 "X" -# endif -# endif -# if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ -# undef PRIdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIdFAST32 PRId64 -# else -# define PRIdFAST32 "d" -# endif -# endif -# if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ -# undef PRIiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIiFAST32 PRIi64 -# else -# define PRIiFAST32 "i" -# endif -# endif -# if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ -# undef PRIoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIoFAST32 PRIo64 -# else -# define PRIoFAST32 "o" -# endif -# endif -# if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ -# undef PRIuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIuFAST32 PRIu64 -# else -# define PRIuFAST32 "u" -# endif -# endif -# if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ -# undef PRIxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIxFAST32 PRIx64 -# else -# define PRIxFAST32 "x" -# endif -# endif -# if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ -# undef PRIXFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIXFAST32 PRIX64 -# else -# define PRIXFAST32 "X" -# endif -# endif -# ifdef INT64_MAX -# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ -# undef PRIdFAST64 -# define PRIdFAST64 PRId64 -# endif -# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ -# undef PRIiFAST64 -# define PRIiFAST64 PRIi64 -# endif -# endif -# ifdef UINT64_MAX -# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ -# undef PRIoFAST64 -# define PRIoFAST64 PRIo64 -# endif -# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ -# undef PRIuFAST64 -# define PRIuFAST64 PRIu64 -# endif -# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ -# undef PRIxFAST64 -# define PRIxFAST64 PRIx64 -# endif -# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ -# undef PRIXFAST64 -# define PRIXFAST64 PRIX64 -# endif -# endif - -# if !defined PRIdMAX || @PRI_MACROS_BROKEN@ -# undef PRIdMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define PRIdMAX PRId64 -# else -# define PRIdMAX "ld" -# endif -# endif -# if !defined PRIiMAX || @PRI_MACROS_BROKEN@ -# undef PRIiMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define PRIiMAX PRIi64 -# else -# define PRIiMAX "li" -# endif -# endif -# if !defined PRIoMAX || @PRI_MACROS_BROKEN@ -# undef PRIoMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIoMAX PRIo64 -# else -# define PRIoMAX "lo" -# endif -# endif -# if !defined PRIuMAX || @PRI_MACROS_BROKEN@ -# undef PRIuMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIuMAX PRIu64 -# else -# define PRIuMAX "lu" -# endif -# endif -# if !defined PRIxMAX || @PRI_MACROS_BROKEN@ -# undef PRIxMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIxMAX PRIx64 -# else -# define PRIxMAX "lx" -# endif -# endif -# if !defined PRIXMAX || @PRI_MACROS_BROKEN@ -# undef PRIXMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIXMAX PRIX64 -# else -# define PRIXMAX "lX" -# endif -# endif - -# if !defined PRIdPTR || @PRI_MACROS_BROKEN@ -# undef PRIdPTR -# ifdef INTPTR_MAX -# define PRIdPTR @PRIPTR_PREFIX@ "d" -# endif -# endif -# if !defined PRIiPTR || @PRI_MACROS_BROKEN@ -# undef PRIiPTR -# ifdef INTPTR_MAX -# define PRIiPTR @PRIPTR_PREFIX@ "i" -# endif -# endif -# if !defined PRIoPTR || @PRI_MACROS_BROKEN@ -# undef PRIoPTR -# ifdef UINTPTR_MAX -# define PRIoPTR @PRIPTR_PREFIX@ "o" -# endif -# endif -# if !defined PRIuPTR || @PRI_MACROS_BROKEN@ -# undef PRIuPTR -# ifdef UINTPTR_MAX -# define PRIuPTR @PRIPTR_PREFIX@ "u" -# endif -# endif -# if !defined PRIxPTR || @PRI_MACROS_BROKEN@ -# undef PRIxPTR -# ifdef UINTPTR_MAX -# define PRIxPTR @PRIPTR_PREFIX@ "x" -# endif -# endif -# if !defined PRIXPTR || @PRI_MACROS_BROKEN@ -# undef PRIXPTR -# ifdef UINTPTR_MAX -# define PRIXPTR @PRIPTR_PREFIX@ "X" -# endif -# endif - -# if !defined SCNd8 || @PRI_MACROS_BROKEN@ -# undef SCNd8 -# ifdef INT8_MAX -# define SCNd8 "hhd" -# endif -# endif -# if !defined SCNi8 || @PRI_MACROS_BROKEN@ -# undef SCNi8 -# ifdef INT8_MAX -# define SCNi8 "hhi" -# endif -# endif -# if !defined SCNo8 || @PRI_MACROS_BROKEN@ -# undef SCNo8 -# ifdef UINT8_MAX -# define SCNo8 "hho" -# endif -# endif -# if !defined SCNu8 || @PRI_MACROS_BROKEN@ -# undef SCNu8 -# ifdef UINT8_MAX -# define SCNu8 "hhu" -# endif -# endif -# if !defined SCNx8 || @PRI_MACROS_BROKEN@ -# undef SCNx8 -# ifdef UINT8_MAX -# define SCNx8 "hhx" -# endif -# endif -# if !defined SCNd16 || @PRI_MACROS_BROKEN@ -# undef SCNd16 -# ifdef INT16_MAX -# define SCNd16 "hd" -# endif -# endif -# if !defined SCNi16 || @PRI_MACROS_BROKEN@ -# undef SCNi16 -# ifdef INT16_MAX -# define SCNi16 "hi" -# endif -# endif -# if !defined SCNo16 || @PRI_MACROS_BROKEN@ -# undef SCNo16 -# ifdef UINT16_MAX -# define SCNo16 "ho" -# endif -# endif -# if !defined SCNu16 || @PRI_MACROS_BROKEN@ -# undef SCNu16 -# ifdef UINT16_MAX -# define SCNu16 "hu" -# endif -# endif -# if !defined SCNx16 || @PRI_MACROS_BROKEN@ -# undef SCNx16 -# ifdef UINT16_MAX -# define SCNx16 "hx" -# endif -# endif -# if !defined SCNd32 || @PRI_MACROS_BROKEN@ -# undef SCNd32 -# ifdef INT32_MAX -# define SCNd32 "d" -# endif -# endif -# if !defined SCNi32 || @PRI_MACROS_BROKEN@ -# undef SCNi32 -# ifdef INT32_MAX -# define SCNi32 "i" -# endif -# endif -# if !defined SCNo32 || @PRI_MACROS_BROKEN@ -# undef SCNo32 -# ifdef UINT32_MAX -# define SCNo32 "o" -# endif -# endif -# if !defined SCNu32 || @PRI_MACROS_BROKEN@ -# undef SCNu32 -# ifdef UINT32_MAX -# define SCNu32 "u" -# endif -# endif -# if !defined SCNx32 || @PRI_MACROS_BROKEN@ -# undef SCNx32 -# ifdef UINT32_MAX -# define SCNx32 "x" -# endif -# endif -# ifdef INT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) -# define _SCN64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCN64_PREFIX "I64" -# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 -# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNd64 || @PRI_MACROS_BROKEN@ -# undef SCNd64 -# define SCNd64 _SCN64_PREFIX "d" -# endif -# if !defined SCNi64 || @PRI_MACROS_BROKEN@ -# undef SCNi64 -# define SCNi64 _SCN64_PREFIX "i" -# endif -# endif -# ifdef UINT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) -# define _SCNu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCNu64_PREFIX "I64" -# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 -# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNo64 || @PRI_MACROS_BROKEN@ -# undef SCNo64 -# define SCNo64 _SCNu64_PREFIX "o" -# endif -# if !defined SCNu64 || @PRI_MACROS_BROKEN@ -# undef SCNu64 -# define SCNu64 _SCNu64_PREFIX "u" -# endif -# if !defined SCNx64 || @PRI_MACROS_BROKEN@ -# undef SCNx64 -# define SCNx64 _SCNu64_PREFIX "x" -# endif -# endif - -# if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ -# undef SCNdLEAST8 -# define SCNdLEAST8 "hhd" -# endif -# if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ -# undef SCNiLEAST8 -# define SCNiLEAST8 "hhi" -# endif -# if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ -# undef SCNoLEAST8 -# define SCNoLEAST8 "hho" -# endif -# if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ -# undef SCNuLEAST8 -# define SCNuLEAST8 "hhu" -# endif -# if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ -# undef SCNxLEAST8 -# define SCNxLEAST8 "hhx" -# endif -# if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ -# undef SCNdLEAST16 -# define SCNdLEAST16 "hd" -# endif -# if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ -# undef SCNiLEAST16 -# define SCNiLEAST16 "hi" -# endif -# if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ -# undef SCNoLEAST16 -# define SCNoLEAST16 "ho" -# endif -# if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ -# undef SCNuLEAST16 -# define SCNuLEAST16 "hu" -# endif -# if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ -# undef SCNxLEAST16 -# define SCNxLEAST16 "hx" -# endif -# if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ -# undef SCNdLEAST32 -# define SCNdLEAST32 "d" -# endif -# if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ -# undef SCNiLEAST32 -# define SCNiLEAST32 "i" -# endif -# if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ -# undef SCNoLEAST32 -# define SCNoLEAST32 "o" -# endif -# if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ -# undef SCNuLEAST32 -# define SCNuLEAST32 "u" -# endif -# if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ -# undef SCNxLEAST32 -# define SCNxLEAST32 "x" -# endif -# ifdef INT64_MAX -# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ -# undef SCNdLEAST64 -# define SCNdLEAST64 SCNd64 -# endif -# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ -# undef SCNiLEAST64 -# define SCNiLEAST64 SCNi64 -# endif -# endif -# ifdef UINT64_MAX -# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ -# undef SCNoLEAST64 -# define SCNoLEAST64 SCNo64 -# endif -# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ -# undef SCNuLEAST64 -# define SCNuLEAST64 SCNu64 -# endif -# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ -# undef SCNxLEAST64 -# define SCNxLEAST64 SCNx64 -# endif -# endif - -# if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ -# undef SCNdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNdFAST8 SCNd64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNdFAST8 "hd" -# elif INT_FAST8_MAX == 0x7f -# define SCNdFAST8 "hhd" -# else -# define SCNdFAST8 "d" -# endif -# endif -# if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ -# undef SCNiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNiFAST8 SCNi64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNiFAST8 "hi" -# elif INT_FAST8_MAX == 0x7f -# define SCNiFAST8 "hhi" -# else -# define SCNiFAST8 "i" -# endif -# endif -# if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ -# undef SCNoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNoFAST8 SCNo64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNoFAST8 "ho" -# elif UINT_FAST8_MAX == 0xff -# define SCNoFAST8 "hho" -# else -# define SCNoFAST8 "o" -# endif -# endif -# if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ -# undef SCNuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNuFAST8 SCNu64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNuFAST8 "hu" -# elif UINT_FAST8_MAX == 0xff -# define SCNuFAST8 "hhu" -# else -# define SCNuFAST8 "u" -# endif -# endif -# if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ -# undef SCNxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNxFAST8 SCNx64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNxFAST8 "hx" -# elif UINT_FAST8_MAX == 0xff -# define SCNxFAST8 "hhx" -# else -# define SCNxFAST8 "x" -# endif -# endif -# if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ -# undef SCNdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNdFAST16 SCNd64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNdFAST16 "hd" -# else -# define SCNdFAST16 "d" -# endif -# endif -# if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ -# undef SCNiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNiFAST16 SCNi64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNiFAST16 "hi" -# else -# define SCNiFAST16 "i" -# endif -# endif -# if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ -# undef SCNoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNoFAST16 SCNo64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNoFAST16 "ho" -# else -# define SCNoFAST16 "o" -# endif -# endif -# if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ -# undef SCNuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNuFAST16 SCNu64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNuFAST16 "hu" -# else -# define SCNuFAST16 "u" -# endif -# endif -# if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ -# undef SCNxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNxFAST16 SCNx64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNxFAST16 "hx" -# else -# define SCNxFAST16 "x" -# endif -# endif -# if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ -# undef SCNdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNdFAST32 SCNd64 -# else -# define SCNdFAST32 "d" -# endif -# endif -# if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ -# undef SCNiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNiFAST32 SCNi64 -# else -# define SCNiFAST32 "i" -# endif -# endif -# if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ -# undef SCNoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNoFAST32 SCNo64 -# else -# define SCNoFAST32 "o" -# endif -# endif -# if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ -# undef SCNuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNuFAST32 SCNu64 -# else -# define SCNuFAST32 "u" -# endif -# endif -# if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ -# undef SCNxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNxFAST32 SCNx64 -# else -# define SCNxFAST32 "x" -# endif -# endif -# ifdef INT64_MAX -# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ -# undef SCNdFAST64 -# define SCNdFAST64 SCNd64 -# endif -# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ -# undef SCNiFAST64 -# define SCNiFAST64 SCNi64 -# endif -# endif -# ifdef UINT64_MAX -# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ -# undef SCNoFAST64 -# define SCNoFAST64 SCNo64 -# endif -# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ -# undef SCNuFAST64 -# define SCNuFAST64 SCNu64 -# endif -# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ -# undef SCNxFAST64 -# define SCNxFAST64 SCNx64 -# endif -# endif - -# if !defined SCNdMAX || @PRI_MACROS_BROKEN@ -# undef SCNdMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define SCNdMAX SCNd64 -# else -# define SCNdMAX "ld" -# endif -# endif -# if !defined SCNiMAX || @PRI_MACROS_BROKEN@ -# undef SCNiMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define SCNiMAX SCNi64 -# else -# define SCNiMAX "li" -# endif -# endif -# if !defined SCNoMAX || @PRI_MACROS_BROKEN@ -# undef SCNoMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define SCNoMAX SCNo64 -# else -# define SCNoMAX "lo" -# endif -# endif -# if !defined SCNuMAX || @PRI_MACROS_BROKEN@ -# undef SCNuMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define SCNuMAX SCNu64 -# else -# define SCNuMAX "lu" -# endif -# endif -# if !defined SCNxMAX || @PRI_MACROS_BROKEN@ -# undef SCNxMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define SCNxMAX SCNx64 -# else -# define SCNxMAX "lx" -# endif -# endif - -# if !defined SCNdPTR || @PRI_MACROS_BROKEN@ -# undef SCNdPTR -# ifdef INTPTR_MAX -# define SCNdPTR @PRIPTR_PREFIX@ "d" -# endif -# endif -# if !defined SCNiPTR || @PRI_MACROS_BROKEN@ -# undef SCNiPTR -# ifdef INTPTR_MAX -# define SCNiPTR @PRIPTR_PREFIX@ "i" -# endif -# endif -# if !defined SCNoPTR || @PRI_MACROS_BROKEN@ -# undef SCNoPTR -# ifdef UINTPTR_MAX -# define SCNoPTR @PRIPTR_PREFIX@ "o" -# endif -# endif -# if !defined SCNuPTR || @PRI_MACROS_BROKEN@ -# undef SCNuPTR -# ifdef UINTPTR_MAX -# define SCNuPTR @PRIPTR_PREFIX@ "u" -# endif -# endif -# if !defined SCNxPTR || @PRI_MACROS_BROKEN@ -# undef SCNxPTR -# ifdef UINTPTR_MAX -# define SCNxPTR @PRIPTR_PREFIX@ "x" -# endif -# endif - +# define _LONG_LONG_FORMAT_PREFIX "L" +#else +# define _LONG_LONG_FORMAT_PREFIX "ll" +#endif + +#if !defined PRId8 || @PRI_MACROS_BROKEN@ +# undef PRId8 +# ifdef INT8_MAX +# define PRId8 "d" +# endif +#endif +#if !defined PRIi8 || @PRI_MACROS_BROKEN@ +# undef PRIi8 +# ifdef INT8_MAX +# define PRIi8 "i" +# endif +#endif +#if !defined PRIo8 || @PRI_MACROS_BROKEN@ +# undef PRIo8 +# ifdef UINT8_MAX +# define PRIo8 "o" +# endif +#endif +#if !defined PRIu8 || @PRI_MACROS_BROKEN@ +# undef PRIu8 +# ifdef UINT8_MAX +# define PRIu8 "u" +# endif +#endif +#if !defined PRIx8 || @PRI_MACROS_BROKEN@ +# undef PRIx8 +# ifdef UINT8_MAX +# define PRIx8 "x" +# endif +#endif +#if !defined PRIX8 || @PRI_MACROS_BROKEN@ +# undef PRIX8 +# ifdef UINT8_MAX +# define PRIX8 "X" +# endif +#endif +#if !defined PRId16 || @PRI_MACROS_BROKEN@ +# undef PRId16 +# ifdef INT16_MAX +# define PRId16 "d" +# endif +#endif +#if !defined PRIi16 || @PRI_MACROS_BROKEN@ +# undef PRIi16 +# ifdef INT16_MAX +# define PRIi16 "i" +# endif +#endif +#if !defined PRIo16 || @PRI_MACROS_BROKEN@ +# undef PRIo16 +# ifdef UINT16_MAX +# define PRIo16 "o" +# endif +#endif +#if !defined PRIu16 || @PRI_MACROS_BROKEN@ +# undef PRIu16 +# ifdef UINT16_MAX +# define PRIu16 "u" +# endif +#endif +#if !defined PRIx16 || @PRI_MACROS_BROKEN@ +# undef PRIx16 +# ifdef UINT16_MAX +# define PRIx16 "x" +# endif +#endif +#if !defined PRIX16 || @PRI_MACROS_BROKEN@ +# undef PRIX16 +# ifdef UINT16_MAX +# define PRIX16 "X" +# endif +#endif +#if !defined PRId32 || @PRI_MACROS_BROKEN@ +# undef PRId32 +# ifdef INT32_MAX +# define PRId32 "d" +# endif +#endif +#if !defined PRIi32 || @PRI_MACROS_BROKEN@ +# undef PRIi32 +# ifdef INT32_MAX +# define PRIi32 "i" +# endif +#endif +#if !defined PRIo32 || @PRI_MACROS_BROKEN@ +# undef PRIo32 +# ifdef UINT32_MAX +# define PRIo32 "o" +# endif +#endif +#if !defined PRIu32 || @PRI_MACROS_BROKEN@ +# undef PRIu32 +# ifdef UINT32_MAX +# define PRIu32 "u" +# endif +#endif +#if !defined PRIx32 || @PRI_MACROS_BROKEN@ +# undef PRIx32 +# ifdef UINT32_MAX +# define PRIx32 "x" +# endif +#endif +#if !defined PRIX32 || @PRI_MACROS_BROKEN@ +# undef PRIX32 +# ifdef UINT32_MAX +# define PRIX32 "X" +# endif +#endif +#ifdef INT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) +# define _PRI64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _PRI64_PREFIX "I64" +# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 +# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined PRId64 || @PRI_MACROS_BROKEN@ +# undef PRId64 +# define PRId64 _PRI64_PREFIX "d" +# endif +# if !defined PRIi64 || @PRI_MACROS_BROKEN@ +# undef PRIi64 +# define PRIi64 _PRI64_PREFIX "i" +# endif +#endif +#ifdef UINT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) +# define _PRIu64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _PRIu64_PREFIX "I64" +# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 +# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined PRIo64 || @PRI_MACROS_BROKEN@ +# undef PRIo64 +# define PRIo64 _PRIu64_PREFIX "o" +# endif +# if !defined PRIu64 || @PRI_MACROS_BROKEN@ +# undef PRIu64 +# define PRIu64 _PRIu64_PREFIX "u" +# endif +# if !defined PRIx64 || @PRI_MACROS_BROKEN@ +# undef PRIx64 +# define PRIx64 _PRIu64_PREFIX "x" +# endif +# if !defined PRIX64 || @PRI_MACROS_BROKEN@ +# undef PRIX64 +# define PRIX64 _PRIu64_PREFIX "X" +# endif +#endif + +#if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ +# undef PRIdLEAST8 +# define PRIdLEAST8 "d" +#endif +#if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ +# undef PRIiLEAST8 +# define PRIiLEAST8 "i" +#endif +#if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ +# undef PRIoLEAST8 +# define PRIoLEAST8 "o" +#endif +#if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ +# undef PRIuLEAST8 +# define PRIuLEAST8 "u" +#endif +#if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ +# undef PRIxLEAST8 +# define PRIxLEAST8 "x" +#endif +#if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ +# undef PRIXLEAST8 +# define PRIXLEAST8 "X" +#endif +#if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ +# undef PRIdLEAST16 +# define PRIdLEAST16 "d" +#endif +#if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ +# undef PRIiLEAST16 +# define PRIiLEAST16 "i" +#endif +#if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ +# undef PRIoLEAST16 +# define PRIoLEAST16 "o" +#endif +#if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ +# undef PRIuLEAST16 +# define PRIuLEAST16 "u" +#endif +#if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ +# undef PRIxLEAST16 +# define PRIxLEAST16 "x" +#endif +#if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ +# undef PRIXLEAST16 +# define PRIXLEAST16 "X" +#endif +#if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ +# undef PRIdLEAST32 +# define PRIdLEAST32 "d" +#endif +#if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ +# undef PRIiLEAST32 +# define PRIiLEAST32 "i" +#endif +#if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ +# undef PRIoLEAST32 +# define PRIoLEAST32 "o" +#endif +#if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ +# undef PRIuLEAST32 +# define PRIuLEAST32 "u" +#endif +#if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ +# undef PRIxLEAST32 +# define PRIxLEAST32 "x" +#endif +#if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ +# undef PRIXLEAST32 +# define PRIXLEAST32 "X" +#endif +#ifdef INT64_MAX +# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ +# undef PRIdLEAST64 +# define PRIdLEAST64 PRId64 +# endif +# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ +# undef PRIiLEAST64 +# define PRIiLEAST64 PRIi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ +# undef PRIoLEAST64 +# define PRIoLEAST64 PRIo64 +# endif +# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ +# undef PRIuLEAST64 +# define PRIuLEAST64 PRIu64 +# endif +# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ +# undef PRIxLEAST64 +# define PRIxLEAST64 PRIx64 +# endif +# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ +# undef PRIXLEAST64 +# define PRIXLEAST64 PRIX64 +# endif +#endif + +#if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ +# undef PRIdFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define PRIdFAST8 PRId64 +# else +# define PRIdFAST8 "d" +# endif +#endif +#if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ +# undef PRIiFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define PRIiFAST8 PRIi64 +# else +# define PRIiFAST8 "i" +# endif +#endif +#if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ +# undef PRIoFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIoFAST8 PRIo64 +# else +# define PRIoFAST8 "o" +# endif +#endif +#if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ +# undef PRIuFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIuFAST8 PRIu64 +# else +# define PRIuFAST8 "u" +# endif +#endif +#if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ +# undef PRIxFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIxFAST8 PRIx64 +# else +# define PRIxFAST8 "x" +# endif +#endif +#if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ +# undef PRIXFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIXFAST8 PRIX64 +# else +# define PRIXFAST8 "X" +# endif +#endif +#if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ +# undef PRIdFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define PRIdFAST16 PRId64 +# else +# define PRIdFAST16 "d" +# endif +#endif +#if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ +# undef PRIiFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define PRIiFAST16 PRIi64 +# else +# define PRIiFAST16 "i" +# endif +#endif +#if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ +# undef PRIoFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIoFAST16 PRIo64 +# else +# define PRIoFAST16 "o" +# endif +#endif +#if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ +# undef PRIuFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIuFAST16 PRIu64 +# else +# define PRIuFAST16 "u" +# endif +#endif +#if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ +# undef PRIxFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIxFAST16 PRIx64 +# else +# define PRIxFAST16 "x" +# endif +#endif +#if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ +# undef PRIXFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIXFAST16 PRIX64 +# else +# define PRIXFAST16 "X" +# endif +#endif +#if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ +# undef PRIdFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define PRIdFAST32 PRId64 +# else +# define PRIdFAST32 "d" +# endif +#endif +#if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ +# undef PRIiFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define PRIiFAST32 PRIi64 +# else +# define PRIiFAST32 "i" +# endif +#endif +#if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ +# undef PRIoFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIoFAST32 PRIo64 +# else +# define PRIoFAST32 "o" +# endif +#endif +#if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ +# undef PRIuFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIuFAST32 PRIu64 +# else +# define PRIuFAST32 "u" +# endif +#endif +#if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ +# undef PRIxFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIxFAST32 PRIx64 +# else +# define PRIxFAST32 "x" +# endif +#endif +#if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ +# undef PRIXFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIXFAST32 PRIX64 +# else +# define PRIXFAST32 "X" +# endif +#endif +#ifdef INT64_MAX +# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ +# undef PRIdFAST64 +# define PRIdFAST64 PRId64 +# endif +# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ +# undef PRIiFAST64 +# define PRIiFAST64 PRIi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ +# undef PRIoFAST64 +# define PRIoFAST64 PRIo64 +# endif +# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ +# undef PRIuFAST64 +# define PRIuFAST64 PRIu64 +# endif +# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ +# undef PRIxFAST64 +# define PRIxFAST64 PRIx64 +# endif +# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ +# undef PRIXFAST64 +# define PRIXFAST64 PRIX64 +# endif +#endif + +#if !defined PRIdMAX || @PRI_MACROS_BROKEN@ +# undef PRIdMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define PRIdMAX PRId64 +# else +# define PRIdMAX "ld" +# endif +#endif +#if !defined PRIiMAX || @PRI_MACROS_BROKEN@ +# undef PRIiMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define PRIiMAX PRIi64 +# else +# define PRIiMAX "li" +# endif +#endif +#if !defined PRIoMAX || @PRI_MACROS_BROKEN@ +# undef PRIoMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIoMAX PRIo64 +# else +# define PRIoMAX "lo" +# endif +#endif +#if !defined PRIuMAX || @PRI_MACROS_BROKEN@ +# undef PRIuMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIuMAX PRIu64 +# else +# define PRIuMAX "lu" +# endif +#endif +#if !defined PRIxMAX || @PRI_MACROS_BROKEN@ +# undef PRIxMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIxMAX PRIx64 +# else +# define PRIxMAX "lx" +# endif +#endif +#if !defined PRIXMAX || @PRI_MACROS_BROKEN@ +# undef PRIXMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIXMAX PRIX64 +# else +# define PRIXMAX "lX" +# endif +#endif + +#if !defined PRIdPTR || @PRI_MACROS_BROKEN@ +# undef PRIdPTR +# ifdef INTPTR_MAX +# define PRIdPTR @PRIPTR_PREFIX@ "d" +# endif +#endif +#if !defined PRIiPTR || @PRI_MACROS_BROKEN@ +# undef PRIiPTR +# ifdef INTPTR_MAX +# define PRIiPTR @PRIPTR_PREFIX@ "i" +# endif +#endif +#if !defined PRIoPTR || @PRI_MACROS_BROKEN@ +# undef PRIoPTR +# ifdef UINTPTR_MAX +# define PRIoPTR @PRIPTR_PREFIX@ "o" +# endif +#endif +#if !defined PRIuPTR || @PRI_MACROS_BROKEN@ +# undef PRIuPTR +# ifdef UINTPTR_MAX +# define PRIuPTR @PRIPTR_PREFIX@ "u" +# endif +#endif +#if !defined PRIxPTR || @PRI_MACROS_BROKEN@ +# undef PRIxPTR +# ifdef UINTPTR_MAX +# define PRIxPTR @PRIPTR_PREFIX@ "x" +# endif +#endif +#if !defined PRIXPTR || @PRI_MACROS_BROKEN@ +# undef PRIXPTR +# ifdef UINTPTR_MAX +# define PRIXPTR @PRIPTR_PREFIX@ "X" +# endif +#endif + +#if !defined SCNd8 || @PRI_MACROS_BROKEN@ +# undef SCNd8 +# ifdef INT8_MAX +# define SCNd8 "hhd" +# endif +#endif +#if !defined SCNi8 || @PRI_MACROS_BROKEN@ +# undef SCNi8 +# ifdef INT8_MAX +# define SCNi8 "hhi" +# endif +#endif +#if !defined SCNo8 || @PRI_MACROS_BROKEN@ +# undef SCNo8 +# ifdef UINT8_MAX +# define SCNo8 "hho" +# endif +#endif +#if !defined SCNu8 || @PRI_MACROS_BROKEN@ +# undef SCNu8 +# ifdef UINT8_MAX +# define SCNu8 "hhu" +# endif +#endif +#if !defined SCNx8 || @PRI_MACROS_BROKEN@ +# undef SCNx8 +# ifdef UINT8_MAX +# define SCNx8 "hhx" +# endif +#endif +#if !defined SCNd16 || @PRI_MACROS_BROKEN@ +# undef SCNd16 +# ifdef INT16_MAX +# define SCNd16 "hd" +# endif +#endif +#if !defined SCNi16 || @PRI_MACROS_BROKEN@ +# undef SCNi16 +# ifdef INT16_MAX +# define SCNi16 "hi" +# endif +#endif +#if !defined SCNo16 || @PRI_MACROS_BROKEN@ +# undef SCNo16 +# ifdef UINT16_MAX +# define SCNo16 "ho" +# endif +#endif +#if !defined SCNu16 || @PRI_MACROS_BROKEN@ +# undef SCNu16 +# ifdef UINT16_MAX +# define SCNu16 "hu" +# endif +#endif +#if !defined SCNx16 || @PRI_MACROS_BROKEN@ +# undef SCNx16 +# ifdef UINT16_MAX +# define SCNx16 "hx" +# endif +#endif +#if !defined SCNd32 || @PRI_MACROS_BROKEN@ +# undef SCNd32 +# ifdef INT32_MAX +# define SCNd32 "d" +# endif +#endif +#if !defined SCNi32 || @PRI_MACROS_BROKEN@ +# undef SCNi32 +# ifdef INT32_MAX +# define SCNi32 "i" +# endif +#endif +#if !defined SCNo32 || @PRI_MACROS_BROKEN@ +# undef SCNo32 +# ifdef UINT32_MAX +# define SCNo32 "o" +# endif +#endif +#if !defined SCNu32 || @PRI_MACROS_BROKEN@ +# undef SCNu32 +# ifdef UINT32_MAX +# define SCNu32 "u" +# endif +#endif +#if !defined SCNx32 || @PRI_MACROS_BROKEN@ +# undef SCNx32 +# ifdef UINT32_MAX +# define SCNx32 "x" +# endif +#endif +#ifdef INT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) +# define _SCN64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _SCN64_PREFIX "I64" +# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 +# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined SCNd64 || @PRI_MACROS_BROKEN@ +# undef SCNd64 +# define SCNd64 _SCN64_PREFIX "d" +# endif +# if !defined SCNi64 || @PRI_MACROS_BROKEN@ +# undef SCNi64 +# define SCNi64 _SCN64_PREFIX "i" +# endif +#endif +#ifdef UINT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) +# define _SCNu64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _SCNu64_PREFIX "I64" +# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 +# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined SCNo64 || @PRI_MACROS_BROKEN@ +# undef SCNo64 +# define SCNo64 _SCNu64_PREFIX "o" +# endif +# if !defined SCNu64 || @PRI_MACROS_BROKEN@ +# undef SCNu64 +# define SCNu64 _SCNu64_PREFIX "u" +# endif +# if !defined SCNx64 || @PRI_MACROS_BROKEN@ +# undef SCNx64 +# define SCNx64 _SCNu64_PREFIX "x" +# endif +#endif + +#if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ +# undef SCNdLEAST8 +# define SCNdLEAST8 "hhd" +#endif +#if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ +# undef SCNiLEAST8 +# define SCNiLEAST8 "hhi" +#endif +#if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ +# undef SCNoLEAST8 +# define SCNoLEAST8 "hho" +#endif +#if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ +# undef SCNuLEAST8 +# define SCNuLEAST8 "hhu" +#endif +#if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ +# undef SCNxLEAST8 +# define SCNxLEAST8 "hhx" +#endif +#if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ +# undef SCNdLEAST16 +# define SCNdLEAST16 "hd" +#endif +#if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ +# undef SCNiLEAST16 +# define SCNiLEAST16 "hi" +#endif +#if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ +# undef SCNoLEAST16 +# define SCNoLEAST16 "ho" +#endif +#if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ +# undef SCNuLEAST16 +# define SCNuLEAST16 "hu" +#endif +#if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ +# undef SCNxLEAST16 +# define SCNxLEAST16 "hx" +#endif +#if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ +# undef SCNdLEAST32 +# define SCNdLEAST32 "d" +#endif +#if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ +# undef SCNiLEAST32 +# define SCNiLEAST32 "i" +#endif +#if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ +# undef SCNoLEAST32 +# define SCNoLEAST32 "o" +#endif +#if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ +# undef SCNuLEAST32 +# define SCNuLEAST32 "u" +#endif +#if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ +# undef SCNxLEAST32 +# define SCNxLEAST32 "x" +#endif +#ifdef INT64_MAX +# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ +# undef SCNdLEAST64 +# define SCNdLEAST64 SCNd64 +# endif +# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ +# undef SCNiLEAST64 +# define SCNiLEAST64 SCNi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ +# undef SCNoLEAST64 +# define SCNoLEAST64 SCNo64 +# endif +# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ +# undef SCNuLEAST64 +# define SCNuLEAST64 SCNu64 +# endif +# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ +# undef SCNxLEAST64 +# define SCNxLEAST64 SCNx64 +# endif +#endif + +#if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ +# undef SCNdFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define SCNdFAST8 SCNd64 +# elif INT_FAST8_MAX == 0x7fff +# define SCNdFAST8 "hd" +# elif INT_FAST8_MAX == 0x7f +# define SCNdFAST8 "hhd" +# else +# define SCNdFAST8 "d" +# endif +#endif +#if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ +# undef SCNiFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define SCNiFAST8 SCNi64 +# elif INT_FAST8_MAX == 0x7fff +# define SCNiFAST8 "hi" +# elif INT_FAST8_MAX == 0x7f +# define SCNiFAST8 "hhi" +# else +# define SCNiFAST8 "i" +# endif +#endif +#if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ +# undef SCNoFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define SCNoFAST8 SCNo64 +# elif UINT_FAST8_MAX == 0xffff +# define SCNoFAST8 "ho" +# elif UINT_FAST8_MAX == 0xff +# define SCNoFAST8 "hho" +# else +# define SCNoFAST8 "o" +# endif +#endif +#if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ +# undef SCNuFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define SCNuFAST8 SCNu64 +# elif UINT_FAST8_MAX == 0xffff +# define SCNuFAST8 "hu" +# elif UINT_FAST8_MAX == 0xff +# define SCNuFAST8 "hhu" +# else +# define SCNuFAST8 "u" +# endif +#endif +#if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ +# undef SCNxFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define SCNxFAST8 SCNx64 +# elif UINT_FAST8_MAX == 0xffff +# define SCNxFAST8 "hx" +# elif UINT_FAST8_MAX == 0xff +# define SCNxFAST8 "hhx" +# else +# define SCNxFAST8 "x" +# endif +#endif +#if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ +# undef SCNdFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define SCNdFAST16 SCNd64 +# elif INT_FAST16_MAX == 0x7fff +# define SCNdFAST16 "hd" +# else +# define SCNdFAST16 "d" +# endif +#endif +#if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ +# undef SCNiFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define SCNiFAST16 SCNi64 +# elif INT_FAST16_MAX == 0x7fff +# define SCNiFAST16 "hi" +# else +# define SCNiFAST16 "i" +# endif +#endif +#if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ +# undef SCNoFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define SCNoFAST16 SCNo64 +# elif UINT_FAST16_MAX == 0xffff +# define SCNoFAST16 "ho" +# else +# define SCNoFAST16 "o" +# endif +#endif +#if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ +# undef SCNuFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define SCNuFAST16 SCNu64 +# elif UINT_FAST16_MAX == 0xffff +# define SCNuFAST16 "hu" +# else +# define SCNuFAST16 "u" +# endif +#endif +#if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ +# undef SCNxFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define SCNxFAST16 SCNx64 +# elif UINT_FAST16_MAX == 0xffff +# define SCNxFAST16 "hx" +# else +# define SCNxFAST16 "x" +# endif +#endif +#if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ +# undef SCNdFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define SCNdFAST32 SCNd64 +# else +# define SCNdFAST32 "d" +# endif +#endif +#if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ +# undef SCNiFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define SCNiFAST32 SCNi64 +# else +# define SCNiFAST32 "i" +# endif +#endif +#if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ +# undef SCNoFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define SCNoFAST32 SCNo64 +# else +# define SCNoFAST32 "o" +# endif +#endif +#if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ +# undef SCNuFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define SCNuFAST32 SCNu64 +# else +# define SCNuFAST32 "u" +# endif +#endif +#if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ +# undef SCNxFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define SCNxFAST32 SCNx64 +# else +# define SCNxFAST32 "x" +# endif +#endif +#ifdef INT64_MAX +# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ +# undef SCNdFAST64 +# define SCNdFAST64 SCNd64 +# endif +# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ +# undef SCNiFAST64 +# define SCNiFAST64 SCNi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ +# undef SCNoFAST64 +# define SCNoFAST64 SCNo64 +# endif +# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ +# undef SCNuFAST64 +# define SCNuFAST64 SCNu64 +# endif +# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ +# undef SCNxFAST64 +# define SCNxFAST64 SCNx64 +# endif +#endif + +#if !defined SCNdMAX || @PRI_MACROS_BROKEN@ +# undef SCNdMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define SCNdMAX SCNd64 +# else +# define SCNdMAX "ld" +# endif +#endif +#if !defined SCNiMAX || @PRI_MACROS_BROKEN@ +# undef SCNiMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define SCNiMAX SCNi64 +# else +# define SCNiMAX "li" +# endif +#endif +#if !defined SCNoMAX || @PRI_MACROS_BROKEN@ +# undef SCNoMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define SCNoMAX SCNo64 +# else +# define SCNoMAX "lo" +# endif +#endif +#if !defined SCNuMAX || @PRI_MACROS_BROKEN@ +# undef SCNuMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define SCNuMAX SCNu64 +# else +# define SCNuMAX "lu" +# endif +#endif +#if !defined SCNxMAX || @PRI_MACROS_BROKEN@ +# undef SCNxMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define SCNxMAX SCNx64 +# else +# define SCNxMAX "lx" +# endif +#endif + +#if !defined SCNdPTR || @PRI_MACROS_BROKEN@ +# undef SCNdPTR +# ifdef INTPTR_MAX +# define SCNdPTR @PRIPTR_PREFIX@ "d" +# endif +#endif +#if !defined SCNiPTR || @PRI_MACROS_BROKEN@ +# undef SCNiPTR +# ifdef INTPTR_MAX +# define SCNiPTR @PRIPTR_PREFIX@ "i" +# endif +#endif +#if !defined SCNoPTR || @PRI_MACROS_BROKEN@ +# undef SCNoPTR +# ifdef UINTPTR_MAX +# define SCNoPTR @PRIPTR_PREFIX@ "o" +# endif +#endif +#if !defined SCNuPTR || @PRI_MACROS_BROKEN@ +# undef SCNuPTR +# ifdef UINTPTR_MAX +# define SCNuPTR @PRIPTR_PREFIX@ "u" +# endif +#endif +#if !defined SCNxPTR || @PRI_MACROS_BROKEN@ +# undef SCNxPTR +# ifdef UINTPTR_MAX +# define SCNxPTR @PRIPTR_PREFIX@ "x" +# endif #endif /* 7.8.2 Functions for greatest-width integer types */ @@ -1075,10 +1079,23 @@ #endif #if @GNULIB_STRTOIMAX@ -# if !@HAVE_DECL_STRTOIMAX@ -# undef strtoimax -extern intmax_t strtoimax (const char *, char **, int) _GL_ARG_NONNULL ((1)); +# if @REPLACE_STRTOIMAX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtoimax +# define strtoimax rpl_strtoimax +# endif +_GL_FUNCDECL_RPL (strtoimax, intmax_t, + (const char *, char **, int) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int)); +# else +# if !@HAVE_DECL_STRTOIMAX@ +# undef strtoimax +_GL_FUNCDECL_SYS (strtoimax, intmax_t, + (const char *, char **, int) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int)); # endif +_GL_CXXALIASWARN (strtoimax); #elif defined GNULIB_POSIXCHECK # undef strtoimax # if HAVE_RAW_DECL_STRTOIMAX @@ -1090,8 +1107,11 @@ #if @GNULIB_STRTOUMAX@ # if !@HAVE_DECL_STRTOUMAX@ # undef strtoumax -extern uintmax_t strtoumax (const char *, char **, int) _GL_ARG_NONNULL ((1)); +_GL_FUNCDECL_SYS (strtoumax, uintmax_t, + (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif +_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); +_GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax # if HAVE_RAW_DECL_STRTOUMAX === modified file 'lib/lstat.c' --- lib/lstat.c 2011-09-11 16:52:58 +0000 +++ lib/lstat.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Work around a bug of lstat on some systems - Copyright (C) 1997-2006, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 1997-2006, 2008-2012 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 @@ -51,11 +51,11 @@ # include /* lstat works differently on Linux and Solaris systems. POSIX (see - `pathname resolution' in the glossary) requires that programs like - `ls' take into consideration the fact that FILE has a trailing slash + "pathname resolution" in the glossary) requires that programs like + 'ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux and Solaris 10 systems, the lstat function already has the desired semantics (in treating - `lstat ("symlink/", sbuf)' just like `lstat ("symlink/.", sbuf)', + 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)', but on Solaris 9 and earlier it does not. If FILE has a trailing slash and specifies a symbolic link, === modified file 'lib/md5.c' --- lib/md5.c 2011-02-19 07:28:29 +0000 +++ lib/md5.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Functions to compute MD5 message digest of files or memory blocks. according to the definition of MD5 in RFC 1321 from April 1992. - Copyright (C) 1995-1997, 1999-2001, 2005-2006, 2008-2011 Free Software + Copyright (C) 1995-1997, 1999-2001, 2005-2006, 2008-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -15,8 +15,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ /* Written by Ulrich Drepper , 1995. */ @@ -24,7 +23,8 @@ #include "md5.h" -#include +#include +#include #include #include #include @@ -254,8 +254,7 @@ if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { @@ -313,13 +312,13 @@ uint32_t B = ctx->B; uint32_t C = ctx->C; uint32_t D = ctx->D; + uint32_t lolen = len; /* First increment the byte count. RFC 1321 specifies the possible length of the file up to 2^64 bits. Here we only compute the number of bytes. Do a double word increment. */ - ctx->total[0] += len; - if (ctx->total[0] < len) - ++ctx->total[1]; + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); /* Process all bytes in the buffer with 64 bytes in each round of the loop. */ === modified file 'lib/md5.h' --- lib/md5.h 2011-02-19 07:28:29 +0000 +++ lib/md5.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Declaration of functions and data types used for MD5 sum computing library functions. - Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2011 Free Software + Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -15,8 +15,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #ifndef _MD5_H #define _MD5_H 1 @@ -73,7 +72,7 @@ /* * The following three functions are build up the low level used in - * the functions `md5_stream' and `md5_buffer'. + * the functions 'md5_stream' and 'md5_buffer'. */ /* Initialize structure containing state of computation. === modified file 'lib/mktime.c' --- lib/mktime.c 2011-01-30 19:22:02 +0000 +++ lib/mktime.c 2012-05-26 23:14:36 +0000 @@ -1,21 +1,21 @@ -/* Convert a `struct tm' to a time_t value. - Copyright (C) 1993-1999, 2002-2007, 2009-2011 Free Software Foundation, Inc. +/* Convert a 'struct tm' to a time_t value. + Copyright (C) 1993-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert . - 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, or (at your option) - any later version. + The GNU C Library 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, + The GNU C Library 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. + 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public + License along with the GNU C Library; if not, see + . */ /* Define this to have a standalone program to test this implementation of mktime. */ @@ -25,26 +25,8 @@ # include #endif -/* Some of the code in this file assumes that signed integer overflow - silently wraps around. This assumption can't easily be programmed - around, nor can it be checked for portably at compile-time or - easily eliminated at run-time. - - Define WRAPV to 1 if the assumption is valid. Otherwise, define it - to 0; this forces the use of slower code that, while not guaranteed - by the C Standard, works on all production platforms that we know - about. */ -#ifndef WRAPV -# if (__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__ -# pragma GCC optimize ("wrapv") -# define WRAPV 1 -# else -# define WRAPV 0 -# endif -#endif - /* Assume that leap seconds are possible, unless told otherwise. - If the host has a `zic' command with a `-L leapsecondfilename' option, + If the host has a 'zic' command with a '-L leapsecondfilename' option, then it supports leap seconds; otherwise it probably doesn't. */ #ifndef LEAP_SECONDS_POSSIBLE # define LEAP_SECONDS_POSSIBLE 1 @@ -54,7 +36,7 @@ #include -#include /* For the real memcpy prototype. */ +#include /* For the real memcpy prototype. */ #if DEBUG # include @@ -64,6 +46,28 @@ # define mktime my_mktime #endif /* DEBUG */ +/* Some of the code in this file assumes that signed integer overflow + silently wraps around. This assumption can't easily be programmed + around, nor can it be checked for portably at compile-time or + easily eliminated at run-time. + + Define WRAPV to 1 if the assumption is valid and if + #pragma GCC optimize ("wrapv") + does not trigger GCC bug 51793 + . + Otherwise, define it to 0; this forces the use of slower code that, + while not guaranteed by the C Standard, works on all production + platforms that we know about. */ +#ifndef WRAPV +# if (((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) \ + && defined __GLIBC__) +# pragma GCC optimize ("wrapv") +# define WRAPV 1 +# else +# define WRAPV 0 +# endif +#endif + /* Verify a requirement at compile-time (unlike assert, which is runtime). */ #define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } @@ -112,12 +116,12 @@ your host. */ #define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : ~ TYPE_MAXIMUM (t))) + ? (t) 0 \ + : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) + ? (t) -1 \ + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) #ifndef TIME_T_MIN # define TIME_T_MIN TYPE_MINIMUM (time_t) @@ -129,9 +133,9 @@ verify (time_t_is_integer, TYPE_IS_INTEGER (time_t)); verify (twos_complement_arithmetic, - (TYPE_TWOS_COMPLEMENT (int) - && TYPE_TWOS_COMPLEMENT (long_int) - && TYPE_TWOS_COMPLEMENT (time_t))); + (TYPE_TWOS_COMPLEMENT (int) + && TYPE_TWOS_COMPLEMENT (long_int) + && TYPE_TWOS_COMPLEMENT (time_t))); #define EPOCH_YEAR 1970 #define TM_YEAR_BASE 1900 @@ -146,7 +150,7 @@ return ((year & 3) == 0 && (year % 100 != 0 - || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3))); + || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3))); } /* How many days come before each month (0-12). */ @@ -178,7 +182,7 @@ static int isdst_differ (int a, int b) { - return (!a != !b) & (0 <= a) & (0 <= b); + return (!a != !b) && (0 <= a) && (0 <= b); } /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) - @@ -194,7 +198,7 @@ static inline time_t ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, - int year0, int yday0, int hour0, int min0, int sec0) + int year0, int yday0, int hour0, int min0, int sec0) { verify (C99_integer_division, -1 / 2 == 0); @@ -275,15 +279,15 @@ yield a value equal to *T. */ static time_t guess_time_tm (long_int year, long_int yday, int hour, int min, int sec, - const time_t *t, const struct tm *tp) + const time_t *t, const struct tm *tp) { if (tp) { time_t d = ydhms_diff (year, yday, hour, min, sec, - tp->tm_year, tp->tm_yday, - tp->tm_hour, tp->tm_min, tp->tm_sec); + tp->tm_year, tp->tm_yday, + tp->tm_hour, tp->tm_min, tp->tm_sec); if (time_t_add_ok (*t, d)) - return *t + d; + return *t + d; } /* Overflow occurred one way or another. Return the nearest result @@ -292,8 +296,8 @@ match; and don't oscillate between two values, as that would confuse the spring-forward gap detector. */ return (*t < TIME_T_MIDPOINT - ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN) - : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX)); + ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN) + : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX)); } /* Use CONVERT to convert *T to a broken down time in *TP. @@ -301,7 +305,7 @@ it is the nearest in-range value and then convert that. */ static struct tm * ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), - time_t *t, struct tm *tp) + time_t *t, struct tm *tp) { struct tm *r = convert (t, tp); @@ -311,25 +315,25 @@ time_t ok = 0; /* BAD is a known unconvertible time_t, and OK is a known good one. - Use binary search to narrow the range between BAD and OK until - they differ by 1. */ + Use binary search to narrow the range between BAD and OK until + they differ by 1. */ while (bad != ok + (bad < 0 ? -1 : 1)) - { - time_t mid = *t = time_t_avg (ok, bad); - r = convert (t, tp); - if (r) - ok = mid; - else - bad = mid; - } + { + time_t mid = *t = time_t_avg (ok, bad); + r = convert (t, tp); + if (r) + ok = mid; + else + bad = mid; + } if (!r && ok) - { - /* The last conversion attempt failed; - revert to the most recent successful attempt. */ - *t = ok; - r = convert (t, tp); - } + { + /* The last conversion attempt failed; + revert to the most recent successful attempt. */ + *t = ok; + r = convert (t, tp); + } } return r; @@ -344,8 +348,8 @@ This function is external because it is used also by timegm.c. */ time_t __mktime_internal (struct tm *tp, - struct tm *(*convert) (const time_t *, struct tm *), - time_t *offset) + struct tm *(*convert) (const time_t *, struct tm *), + time_t *offset) { time_t t, gt, t0, t1, t2; struct tm tm; @@ -384,8 +388,8 @@ /* Calculate day of year from year, month, and day of month. The result need not be in range. */ int mon_yday = ((__mon_yday[leapyear (year)] - [mon_remainder + 12 * negative_mon_remainder]) - - 1); + [mon_remainder + 12 * negative_mon_remainder]) + - 1); long_int lmday = mday; long_int yday = mon_yday + lmday; @@ -396,33 +400,33 @@ if (LEAP_SECONDS_POSSIBLE) { /* Handle out-of-range seconds specially, - since ydhms_tm_diff assumes every minute has 60 seconds. */ + since ydhms_tm_diff assumes every minute has 60 seconds. */ if (sec < 0) - sec = 0; + sec = 0; if (59 < sec) - sec = 59; + sec = 59; } /* Invert CONVERT by probing. First assume the same offset as last time. */ t0 = ydhms_diff (year, yday, hour, min, sec, - EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset); + EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset); if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3) { /* time_t isn't large enough to rule out overflows, so check - for major overflows. A gross check suffices, since if t0 - has overflowed, it is off by a multiple of TIME_T_MAX - - TIME_T_MIN + 1. So ignore any component of the difference - that is bounded by a small value. */ + for major overflows. A gross check suffices, since if t0 + has overflowed, it is off by a multiple of TIME_T_MAX - + TIME_T_MIN + 1. So ignore any component of the difference + that is bounded by a small value. */ /* Approximate log base 2 of the number of time units per - biennium. A biennium is 2 years; use this unit instead of - years to avoid integer overflow. For example, 2 average - Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds, - which is 63113904 seconds, and rint (log2 (63113904)) is - 26. */ + biennium. A biennium is 2 years; use this unit instead of + years to avoid integer overflow. For example, 2 average + Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds, + which is 63113904 seconds, and rint (log2 (63113904)) is + 26. */ int ALOG2_SECONDS_PER_BIENNIUM = 26; int ALOG2_MINUTES_PER_BIENNIUM = 20; int ALOG2_HOURS_PER_BIENNIUM = 14; @@ -430,64 +434,64 @@ int LOG2_YEARS_PER_BIENNIUM = 1; int approx_requested_biennia = - (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM) - - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM) - + SHR (mday, ALOG2_DAYS_PER_BIENNIUM) - + SHR (hour, ALOG2_HOURS_PER_BIENNIUM) - + SHR (min, ALOG2_MINUTES_PER_BIENNIUM) - + (LEAP_SECONDS_POSSIBLE - ? 0 - : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM))); + (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM) + - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM) + + SHR (mday, ALOG2_DAYS_PER_BIENNIUM) + + SHR (hour, ALOG2_HOURS_PER_BIENNIUM) + + SHR (min, ALOG2_MINUTES_PER_BIENNIUM) + + (LEAP_SECONDS_POSSIBLE + ? 0 + : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM))); int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM); int diff = approx_biennia - approx_requested_biennia; - int abs_diff = diff < 0 ? -1 - diff : diff; + int approx_abs_diff = diff < 0 ? -1 - diff : diff; /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously - gives a positive value of 715827882. Setting a variable - first then doing math on it seems to work. - (ghazi@caip.rutgers.edu) */ + gives a positive value of 715827882. Setting a variable + first then doing math on it seems to work. + (ghazi@caip.rutgers.edu) */ time_t time_t_max = TIME_T_MAX; time_t time_t_min = TIME_T_MIN; time_t overflow_threshold = - (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM; + (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM; - if (overflow_threshold < abs_diff) - { - /* Overflow occurred. Try repairing it; this might work if - the time zone offset is enough to undo the overflow. */ - time_t repaired_t0 = -1 - t0; - approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM); - diff = approx_biennia - approx_requested_biennia; - abs_diff = diff < 0 ? -1 - diff : diff; - if (overflow_threshold < abs_diff) - return -1; - guessed_offset += repaired_t0 - t0; - t0 = repaired_t0; - } + if (overflow_threshold < approx_abs_diff) + { + /* Overflow occurred. Try repairing it; this might work if + the time zone offset is enough to undo the overflow. */ + time_t repaired_t0 = -1 - t0; + approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM); + diff = approx_biennia - approx_requested_biennia; + approx_abs_diff = diff < 0 ? -1 - diff : diff; + if (overflow_threshold < approx_abs_diff) + return -1; + guessed_offset += repaired_t0 - t0; + t0 = repaired_t0; + } } /* Repeatedly use the error to improve the guess. */ for (t = t1 = t2 = t0, dst2 = 0; (gt = guess_time_tm (year, yday, hour, min, sec, &t, - ranged_convert (convert, &t, &tm)), - t != gt); + ranged_convert (convert, &t, &tm)), + t != gt); t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0) if (t == t1 && t != t2 - && (tm.tm_isdst < 0 - || (isdst < 0 - ? dst2 <= (tm.tm_isdst != 0) - : (isdst != 0) != (tm.tm_isdst != 0)))) + && (tm.tm_isdst < 0 + || (isdst < 0 + ? dst2 <= (tm.tm_isdst != 0) + : (isdst != 0) != (tm.tm_isdst != 0)))) /* We can't possibly find a match, as we are oscillating - between two values. The requested time probably falls - within a spring-forward gap of size GT - T. Follow the common - practice in this case, which is to return a time that is GT - T - away from the requested time, preferring a time whose - tm_isdst differs from the requested value. (If no tm_isdst - was requested and only one of the two values has a nonzero - tm_isdst, prefer that value.) In practice, this is more - useful than returning -1. */ + between two values. The requested time probably falls + within a spring-forward gap of size GT - T. Follow the common + practice in this case, which is to return a time that is GT - T + away from the requested time, preferring a time whose + tm_isdst differs from the requested value. (If no tm_isdst + was requested and only one of the two values has a nonzero + tm_isdst, prefer that value.) In practice, this is more + useful than returning -1. */ goto offset_found; else if (--remaining_probes == 0) return -1; @@ -497,50 +501,50 @@ if (isdst_differ (isdst, tm.tm_isdst)) { /* tm.tm_isdst has the wrong value. Look for a neighboring - time with the right value, and use its UTC offset. + time with the right value, and use its UTC offset. - Heuristic: probe the adjacent timestamps in both directions, - looking for the desired isdst. This should work for all real - time zone histories in the tz database. */ + Heuristic: probe the adjacent timestamps in both directions, + looking for the desired isdst. This should work for all real + time zone histories in the tz database. */ /* Distance between probes when looking for a DST boundary. In - tzdata2003a, the shortest period of DST is 601200 seconds - (e.g., America/Recife starting 2000-10-08 01:00), and the - shortest period of non-DST surrounded by DST is 694800 - seconds (Africa/Tunis starting 1943-04-17 01:00). Use the - minimum of these two values, so we don't miss these short - periods when probing. */ + tzdata2003a, the shortest period of DST is 601200 seconds + (e.g., America/Recife starting 2000-10-08 01:00), and the + shortest period of non-DST surrounded by DST is 694800 + seconds (Africa/Tunis starting 1943-04-17 01:00). Use the + minimum of these two values, so we don't miss these short + periods when probing. */ int stride = 601200; /* The longest period of DST in tzdata2003a is 536454000 seconds - (e.g., America/Jujuy starting 1946-10-01 01:00). The longest - period of non-DST is much longer, but it makes no real sense - to search for more than a year of non-DST, so use the DST - max. */ + (e.g., America/Jujuy starting 1946-10-01 01:00). The longest + period of non-DST is much longer, but it makes no real sense + to search for more than a year of non-DST, so use the DST + max. */ int duration_max = 536454000; /* Search in both directions, so the maximum distance is half - the duration; add the stride to avoid off-by-1 problems. */ + the duration; add the stride to avoid off-by-1 problems. */ int delta_bound = duration_max / 2 + stride; int delta, direction; for (delta = stride; delta < delta_bound; delta += stride) - for (direction = -1; direction <= 1; direction += 2) - if (time_t_int_add_ok (t, delta * direction)) - { - time_t ot = t + delta * direction; - struct tm otm; - ranged_convert (convert, &ot, &otm); - if (! isdst_differ (isdst, otm.tm_isdst)) - { - /* We found the desired tm_isdst. - Extrapolate back to the desired time. */ - t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); - ranged_convert (convert, &t, &tm); - goto offset_found; - } - } + for (direction = -1; direction <= 1; direction += 2) + if (time_t_int_add_ok (t, delta * direction)) + { + time_t ot = t + delta * direction; + struct tm otm; + ranged_convert (convert, &ot, &otm); + if (! isdst_differ (isdst, otm.tm_isdst)) + { + /* We found the desired tm_isdst. + Extrapolate back to the desired time. */ + t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); + ranged_convert (convert, &t, &tm); + goto offset_found; + } + } } offset_found: @@ -549,16 +553,16 @@ if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec) { /* Adjust time to reflect the tm_sec requested, not the normalized value. - Also, repair any damage from a false match due to a leap second. */ + Also, repair any damage from a false match due to a leap second. */ int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec; if (! time_t_int_add_ok (t, sec_requested)) - return -1; + return -1; t1 = t + sec_requested; if (! time_t_int_add_ok (t1, sec_adjustment)) - return -1; + return -1; t2 = t1 + sec_adjustment; if (! convert (&t2, &tm)) - return -1; + return -1; t = t2; } @@ -579,7 +583,7 @@ { #ifdef _LIBC /* POSIX.1 8.1.1 requires that whenever mktime() is called, the - time zone names contained in the external variable `tzname' shall + time zone names contained in the external variable 'tzname' shall be set as if the tzset() function had been called. */ __tzset (); #endif @@ -602,13 +606,13 @@ not_equal_tm (const struct tm *a, const struct tm *b) { return ((a->tm_sec ^ b->tm_sec) - | (a->tm_min ^ b->tm_min) - | (a->tm_hour ^ b->tm_hour) - | (a->tm_mday ^ b->tm_mday) - | (a->tm_mon ^ b->tm_mon) - | (a->tm_year ^ b->tm_year) - | (a->tm_yday ^ b->tm_yday) - | isdst_differ (a->tm_isdst, b->tm_isdst)); + | (a->tm_min ^ b->tm_min) + | (a->tm_hour ^ b->tm_hour) + | (a->tm_mday ^ b->tm_mday) + | (a->tm_mon ^ b->tm_mon) + | (a->tm_year ^ b->tm_year) + | (a->tm_yday ^ b->tm_yday) + | isdst_differ (a->tm_isdst, b->tm_isdst)); } static void @@ -616,9 +620,9 @@ { if (tp) printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d", - tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, - tp->tm_hour, tp->tm_min, tp->tm_sec, - tp->tm_yday, tp->tm_wday, tp->tm_isdst); + tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, + tp->tm_hour, tp->tm_min, tp->tm_sec, + tp->tm_yday, tp->tm_wday, tp->tm_isdst); else printf ("0"); } @@ -650,11 +654,11 @@ if ((argc == 3 || argc == 4) && (sscanf (argv[1], "%d-%d-%d%c", - &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) - == 3) + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) + == 3) && (sscanf (argv[2], "%d:%d:%d%c", - &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) - == 3)) + &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) + == 3)) { tm.tm_year -= TM_YEAR_BASE; tm.tm_mon--; @@ -663,10 +667,10 @@ tl = mktime (&tmk); lt = localtime (&tl); if (lt) - { - tml = *lt; - lt = &tml; - } + { + tml = *lt; + lt = &tml; + } printf ("mktime returns %ld == ", (long int) tl); print_tm (&tmk); printf ("\n"); @@ -679,51 +683,51 @@ time_t to = atol (argv[3]); if (argc == 4) - for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) - { - lt = localtime (&tl); - if (lt) - { - tmk = tml = *lt; - tk = mktime (&tmk); - status |= check_result (tk, tmk, tl, &tml); - } - else - { - printf ("localtime (%ld) yields 0\n", (long int) tl); - status = 1; - } - tl1 = tl + by; - if ((tl1 < tl) != (by < 0)) - break; - } + for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) + { + lt = localtime (&tl); + if (lt) + { + tmk = tml = *lt; + tk = mktime (&tmk); + status |= check_result (tk, tmk, tl, &tml); + } + else + { + printf ("localtime (%ld) yields 0\n", (long int) tl); + status = 1; + } + tl1 = tl + by; + if ((tl1 < tl) != (by < 0)) + break; + } else - for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) - { - /* Null benchmark. */ - lt = localtime (&tl); - if (lt) - { - tmk = tml = *lt; - tk = tl; - status |= check_result (tk, tmk, tl, &tml); - } - else - { - printf ("localtime (%ld) yields 0\n", (long int) tl); - status = 1; - } - tl1 = tl + by; - if ((tl1 < tl) != (by < 0)) - break; - } + for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) + { + /* Null benchmark. */ + lt = localtime (&tl); + if (lt) + { + tmk = tml = *lt; + tk = tl; + status |= check_result (tk, tmk, tl, &tml); + } + else + { + printf ("localtime (%ld) yields 0\n", (long int) tl); + status = 1; + } + tl1 = tl + by; + if ((tl1 < tl) != (by < 0)) + break; + } } else printf ("Usage:\ \t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\ \t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\ \t%s FROM BY TO - # Do not test those values (for benchmark).\n", - argv[0], argv[0], argv[0]); + argv[0], argv[0], argv[0]); return status; } === modified file 'lib/pathmax.h' --- lib/pathmax.h 2012-02-01 06:04:34 +0000 +++ lib/pathmax.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2011 Free Software + Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2012 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #ifndef _PATHMAX_H # define _PATHMAX_H === modified file 'lib/pthread_sigmask.c' --- lib/pthread_sigmask.c 2011-07-24 22:15:47 +0000 +++ lib/pthread_sigmask.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* POSIX compatible signal blocking for threads. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2012 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 === modified file 'lib/readlink.c' --- lib/readlink.c 2011-02-22 19:30:07 +0000 +++ lib/readlink.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Stub for readlink(). - Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2009-2012 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 === modified file 'lib/sha1.c' --- lib/sha1.c 2011-05-24 08:12:52 +0000 +++ lib/sha1.c 2012-05-26 23:14:36 +0000 @@ -1,7 +1,7 @@ /* sha1.c - Functions to compute SHA1 message digest of files or memory blocks according to the NIST specification FIPS-180-1. - Copyright (C) 2000-2001, 2003-2006, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2000-2001, 2003-2006, 2008-2012 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 @@ -14,8 +14,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ /* Written by Scott G. Miller Credits: @@ -26,7 +25,8 @@ #include "sha1.h" -#include +#include +#include #include #include @@ -241,8 +241,7 @@ if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { @@ -306,13 +305,13 @@ uint32_t c = ctx->C; uint32_t d = ctx->D; uint32_t e = ctx->E; + uint32_t lolen = len; /* First increment the byte count. RFC 1321 specifies the possible length of the file up to 2^64 bits. Here we only compute the number of bytes. Do a double word increment. */ - ctx->total[0] += len; - if (ctx->total[0] < len) - ++ctx->total[1]; + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); #define rol(x, n) (((x) << (n)) | ((uint32_t) (x) >> (32 - (n)))) === modified file 'lib/sha1.h' --- lib/sha1.h 2011-05-24 08:12:52 +0000 +++ lib/sha1.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Declarations of functions and data types used for SHA1 sum library functions. - Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2011 Free Software + Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2012 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it @@ -14,8 +14,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #ifndef SHA1_H # define SHA1_H 1 === modified file 'lib/sha256.c' --- lib/sha256.c 2011-11-20 03:48:53 +0000 +++ lib/sha256.c 2012-05-26 23:14:36 +0000 @@ -1,7 +1,7 @@ /* sha256.c - Functions to compute SHA256 and SHA224 message digest of files or memory blocks according to the NIST specification FIPS-180-2. - Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2012 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 @@ -24,7 +24,8 @@ #include "sha256.h" -#include +#include +#include #include #include @@ -373,8 +374,7 @@ if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { @@ -454,13 +454,13 @@ uint32_t f = ctx->state[5]; uint32_t g = ctx->state[6]; uint32_t h = ctx->state[7]; + uint32_t lolen = len; /* First increment the byte count. FIPS PUB 180-2 specifies the possible length of the file up to 2^64 bits. Here we only compute the number of bytes. Do a double word increment. */ - ctx->total[0] += len; - if (ctx->total[0] < len) - ++ctx->total[1]; + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); #define rol(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) #define S0(x) (rol(x,25)^rol(x,14)^(x>>3)) === modified file 'lib/sha256.h' --- lib/sha256.h 2011-06-21 08:45:39 +0000 +++ lib/sha256.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Declarations of functions and data types used for SHA256 and SHA224 sum library functions. - Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2012 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 === modified file 'lib/sha512.c' --- lib/sha512.c 2011-11-20 03:48:53 +0000 +++ lib/sha512.c 2012-05-26 23:14:36 +0000 @@ -1,7 +1,7 @@ /* sha512.c - Functions to compute SHA512 and SHA384 message digest of files or memory blocks according to the NIST specification FIPS-180-2. - Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2012 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 @@ -24,7 +24,8 @@ #include "sha512.h" -#include +#include +#include #include #include @@ -381,8 +382,7 @@ if (len >= 128) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (u64) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (u64) != 0) if (UNALIGNED_P (buffer)) while (len > 128) { @@ -485,13 +485,15 @@ u64 f = ctx->state[5]; u64 g = ctx->state[6]; u64 h = ctx->state[7]; + u64 lolen = u64size (len); /* First increment the byte count. FIPS PUB 180-2 specifies the possible length of the file up to 2^128 bits. Here we only compute the number of bytes. Do a double word increment. */ - ctx->total[0] = u64plus (ctx->total[0], u64lo (len)); - if (u64lt (ctx->total[0], u64lo (len))) - ctx->total[1] = u64plus (ctx->total[1], u64lo (1)); + ctx->total[0] = u64plus (ctx->total[0], lolen); + ctx->total[1] = u64plus (ctx->total[1], + u64plus (u64size (len >> 31 >> 31 >> 2), + u64lo (u64lt (ctx->total[0], lolen)))); #define S0(x) u64xor (u64rol(x, 63), u64xor (u64rol (x, 56), u64shr (x, 7))) #define S1(x) u64xor (u64rol (x, 45), u64xor (u64rol (x, 3), u64shr (x, 6))) === modified file 'lib/sha512.h' --- lib/sha512.h 2011-06-21 08:45:39 +0000 +++ lib/sha512.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Declarations of functions and data types used for SHA512 and SHA384 sum library functions. - Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2012 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 === modified file 'lib/signal.in.h' --- lib/signal.in.h 2011-10-07 21:15:00 +0000 +++ lib/signal.in.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2006-2012 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 === modified file 'lib/sigprocmask.c' --- lib/sigprocmask.c 2011-10-07 21:15:00 +0000 +++ lib/sigprocmask.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* POSIX compatible signal blocking. - Copyright (C) 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2006-2012 Free Software Foundation, Inc. Written by Bruno Haible , 2006. This program is free software: you can redistribute it and/or modify @@ -32,7 +32,7 @@ also does not have the POSIX sigaction() function, only the signal() function. We also assume signal() has SysV semantics, where any handler is uninstalled prior to being invoked. This is - true for Woe32 platforms. */ + true for native Windows platforms. */ /* We use raw signal(), but also provide a wrapper rpl_signal() so that applications can query or change a blocked signal. */ @@ -344,5 +344,6 @@ else if (handler != SIG_IGN) (*handler) (SIGPIPE); } + return 0; } #endif === modified file 'lib/stat.c' --- lib/stat.c 2011-09-26 21:30:18 +0000 +++ lib/stat.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Work around platform bugs in stat. - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 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 @@ -27,6 +27,20 @@ #include #undef __need_system_sys_stat_h +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if _GL_WINDOWS_64_BIT_ST_SIZE +# define stat _stati64 +# define REPLACE_FUNC_STAT_DIR 1 +# undef REPLACE_FUNC_STAT_FILE +# elif REPLACE_FUNC_STAT_FILE +/* mingw64 has a broken stat() function, based on _stat(), in libmingwex.a. + Bypass it. */ +# define stat _stat +# define REPLACE_FUNC_STAT_DIR 1 +# undef REPLACE_FUNC_STAT_FILE +# endif +#endif + static inline int orig_stat (const char *filename, struct stat *buf) { === added file 'lib/stdalign.in.h' --- lib/stdalign.in.h 1970-01-01 00:00:00 +0000 +++ lib/stdalign.in.h 2012-05-26 23:14:36 +0000 @@ -0,0 +1,90 @@ +/* A substitute for ISO C11 . + + Copyright 2011-2012 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, 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 . */ + +/* Written by Paul Eggert and Bruno Haible. */ + +#ifndef _GL_STDALIGN_H +#define _GL_STDALIGN_H + +/* ISO C11 for platforms that lack it. + + References: + ISO C11 (latest free draft + ) + sections 6.5.3.4, 6.7.5, 7.15. + C++11 (latest free draft + ) + section 18.10. */ + +/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment + requirement of a structure member (i.e., slot or field) that is of + type TYPE, as an integer constant expression. + + This differs from GCC's __alignof__ operator, which can yield a + better-performing alignment for an object of that type. For + example, on x86 with GCC, __alignof__ (double) and __alignof__ + (long long) are 8, whereas alignof (double) and alignof (long long) + are 4 unless the option '-malign-double' is used. + + The result cannot be used as a value for an 'enum' constant, if you + want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ +#include +#if defined __cplusplus + template struct __alignof_helper { char __a; __t __b; }; +# define _Alignof(type) offsetof (__alignof_helper, __b) +#else +# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) +#endif +#define alignof _Alignof +#define __alignof_is_defined 1 + +/* alignas (A), also known as _Alignas (A), aligns a variable or type + to the alignment A, where A is an integer constant expression. For + example: + + int alignas (8) foo; + struct s { int a; int alignas (8) bar; }; + + aligns the address of FOO and the offset of BAR to be multiples of 8. + + A should be a power of two that is at least the type's alignment + and at most the implementation's alignment limit. This limit is + 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable + to MSVC through at least version 10.0, A should be an integer + constant, as MSVC does not support expressions such as 1 << 3. + To be portable to Sun C 5.11, do not align auto variables to + anything stricter than their default alignment. + + The following C11 requirements are not supported here: + + - If A is zero, alignas has no effect. + - alignas can be used multiple times; the strictest one wins. + - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). + + */ + +#if __GNUC__ || __IBMC__ || __IBMCPP__ || 0x5110 <= __SUNPRO_C +# define _Alignas(a) __attribute__ ((__aligned__ (a))) +#elif 1300 <= _MSC_VER +# define _Alignas(a) __declspec (align (a)) +#endif +#ifdef _Alignas +# define alignas _Alignas +# define __alignas_is_defined 1 +#endif + +#endif /* _GL_STDALIGN_H */ === modified file 'lib/stdarg.in.h' --- lib/stdarg.in.h 2011-05-29 21:52:18 +0000 +++ lib/stdarg.in.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Substitute for and wrapper around . - Copyright (C) 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2008-2012 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 @@ -12,8 +12,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STDARG_H === modified file 'lib/stdbool.in.h' --- lib/stdbool.in.h 2011-02-06 22:13:03 +0000 +++ lib/stdbool.in.h 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2003, 2006-2011 Free Software Foundation, Inc. +/* Copyright (C) 2001-2003, 2006-2012 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify @@ -12,8 +12,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H === modified file 'lib/stddef.in.h' --- lib/stddef.in.h 2011-05-29 21:52:18 +0000 +++ lib/stddef.in.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* A substitute for POSIX 2008 , for platforms that have issues. - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 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 @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ /* Written by Eric Blake. */ === modified file 'lib/stdint.in.h' --- lib/stdint.in.h 2011-07-09 22:03:22 +0000 +++ lib/stdint.in.h 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2002, 2004-2011 Free Software Foundation, Inc. +/* Copyright (C) 2001-2002, 2004-2012 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. @@ -34,6 +33,16 @@ . */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H +/* On Android (Bionic libc), includes this file before + having defined 'time_t'. Therefore in this case avoid including + other system header files; just include the system's . + Ideally we should test __BIONIC__ here, but it is only defined after + has been included; hence test __ANDROID__ instead. */ +#if defined __ANDROID__ \ + && defined _SYS_TYPES_H_ && !defined _SSIZE_T_DEFINED_ +# @INCLUDE_NEXT@ @NEXT_STDINT_H@ +#else + /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef @@ -49,6 +58,17 @@ diagnostics. */ # define __STDINT_H__ # endif + + /* Some pre-C++11 implementations need this. */ +# ifdef __cplusplus +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS 1 +# endif +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS 1 +# endif +# endif + /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because @@ -70,7 +90,8 @@ # include #endif -/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */ +/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, + LONG_MIN, LONG_MAX, ULONG_MAX. */ #include #if @HAVE_INTTYPES_H@ @@ -226,8 +247,9 @@ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types - are taken from the same list of types. Assume that 'long int' - is fast enough for all narrower integers. */ + are taken from the same list of types. The following code normally + uses types consistent with glibc, as that lessens the chance of + incompatibility with older GNU hosts. */ #undef int_fast8_t #undef uint_fast8_t @@ -237,12 +259,21 @@ #undef uint_fast32_t #undef int_fast64_t #undef uint_fast64_t -typedef long int gl_int_fast8_t; -typedef unsigned long int gl_uint_fast8_t; -typedef long int gl_int_fast16_t; -typedef unsigned long int gl_uint_fast16_t; +typedef signed char gl_int_fast8_t; +typedef unsigned char gl_uint_fast8_t; + +#ifdef __sun +/* Define types compatible with SunOS 5.10, so that code compiled under + earlier SunOS versions works with code compiled under SunOS 5.10. */ +typedef int gl_int_fast32_t; +typedef unsigned int gl_uint_fast32_t; +#else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; +#endif +typedef gl_int_fast32_t gl_int_fast16_t; +typedef gl_uint_fast32_t gl_uint_fast16_t; + #define int_fast8_t gl_int_fast8_t #define uint_fast8_t gl_uint_fast8_t #define int_fast16_t gl_int_fast16_t @@ -313,8 +344,6 @@ /* 7.18.2. Limits of specified-width integer types */ -#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS - /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer @@ -400,23 +429,29 @@ #undef INT_FAST8_MIN #undef INT_FAST8_MAX #undef UINT_FAST8_MAX -#define INT_FAST8_MIN LONG_MIN -#define INT_FAST8_MAX LONG_MAX -#define UINT_FAST8_MAX ULONG_MAX +#define INT_FAST8_MIN SCHAR_MIN +#define INT_FAST8_MAX SCHAR_MAX +#define UINT_FAST8_MAX UCHAR_MAX #undef INT_FAST16_MIN #undef INT_FAST16_MAX #undef UINT_FAST16_MAX -#define INT_FAST16_MIN LONG_MIN -#define INT_FAST16_MAX LONG_MAX -#define UINT_FAST16_MAX ULONG_MAX +#define INT_FAST16_MIN INT_FAST32_MIN +#define INT_FAST16_MAX INT_FAST32_MAX +#define UINT_FAST16_MAX UINT_FAST32_MAX #undef INT_FAST32_MIN #undef INT_FAST32_MAX #undef UINT_FAST32_MAX -#define INT_FAST32_MIN LONG_MIN -#define INT_FAST32_MAX LONG_MAX -#define UINT_FAST32_MAX ULONG_MAX +#ifdef __sun +# define INT_FAST32_MIN INT_MIN +# define INT_FAST32_MAX INT_MAX +# define UINT_FAST32_MAX UINT_MAX +#else +# define INT_FAST32_MIN LONG_MIN +# define INT_FAST32_MAX LONG_MAX +# define UINT_FAST32_MAX ULONG_MAX +#endif #undef INT_FAST64_MIN #undef INT_FAST64_MAX @@ -534,12 +569,8 @@ #define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) -#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */ - /* 7.18.4. Macros for integer constants */ -#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS - /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ @@ -600,7 +631,6 @@ # endif #endif -#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ - #endif /* _@GUARD_PREFIX@_STDINT_H */ +#endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ === modified file 'lib/stdio.in.h' --- lib/stdio.in.h 2011-09-26 21:30:18 +0000 +++ lib/stdio.in.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 2004, 2007-2011 Free Software Foundation, Inc. + Copyright (C) 2004, 2007-2012 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 @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -53,7 +52,8 @@ #include /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 - and eglibc 2.11.2. */ + and eglibc 2.11.2. + May also define off_t to a 64-bit type on native Windows. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. @@ -186,7 +186,7 @@ #elif defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ -_GL_WARN_ON_USE (fdopen, "fdopen on Win32 platforms is not POSIX compatible - " +_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); #endif @@ -259,7 +259,7 @@ #elif defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ -_GL_WARN_ON_USE (fopen, "fopen on Win32 platforms is not POSIX compatible - " +_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); #endif @@ -387,7 +387,7 @@ # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, - "freopen on Win32 platforms is not POSIX compatible - " + "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif @@ -699,22 +699,11 @@ # endif #endif -#if @GNULIB_GETS@ -# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gets -# define gets rpl_gets -# endif -_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (gets, char *, (char *s)); -# else -_GL_CXXALIAS_SYS (gets, char *, (char *s)); -# undef gets -# endif -_GL_CXXALIASWARN (gets); /* It is very rare that the developer ever has full control of stdin, - so any use of gets warrants an unconditional warning. Assume it is - always declared, since it is required by C89. */ + so any use of gets warrants an unconditional warning; besides, C11 + removed it. */ +#undef gets +#if HAVE_RAW_DECL_GETS _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif @@ -779,7 +768,7 @@ #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE -_GL_WARN_ON_USE (pclose, "popen is unportable - " +_GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif @@ -1054,9 +1043,9 @@ # endif #endif -/* Some people would argue that sprintf should be handled like gets - (for example, OpenBSD issues a link warning for both functions), - since both can cause security holes due to buffer overruns. +/* Some people would argue that all sprintf uses should be warned about + (for example, OpenBSD issues a link warning for it), + since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header === modified file 'lib/stdlib.in.h' --- lib/stdlib.in.h 2011-07-24 22:15:47 +0000 +++ lib/stdlib.in.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 1995, 2001-2004, 2006-2011 Free Software Foundation, Inc. + Copyright (C) 1995, 2001-2004, 2006-2012 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 @@ -49,6 +49,11 @@ # include #endif +/* Native Windows platforms declare mktemp() in . */ +#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +# include +#endif + #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in , which is included @@ -58,7 +63,7 @@ # include # endif -# if !@HAVE_STRUCT_RANDOM_DATA@ || !@HAVE_RANDOM_R@ +# if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include # endif @@ -89,6 +94,14 @@ # include #endif +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The attribute __pure__ was added in gcc 2.96. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ +#endif + /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ @@ -133,7 +146,9 @@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ -_GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (atoll, long long, (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); @@ -247,7 +262,7 @@ #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT -_GL_WARN_ON_USE (ptsname, "grantpt is not portable - " +_GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif @@ -423,6 +438,22 @@ # endif #endif +#if @GNULIB_POSIX_OPENPT@ +/* Return an FD open to the master side of a pseudo-terminal. Flags should + include O_RDWR, and may also include O_NOCTTY. */ +# if !@HAVE_POSIX_OPENPT@ +_GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); +# endif +_GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); +_GL_CXXALIASWARN (posix_openpt); +#elif defined GNULIB_POSIXCHECK +# undef posix_openpt +# if HAVE_RAW_DECL_POSIX_OPENPT +_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " + "use gnulib module posix_openpt for portability"); +# endif +#endif + #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ @@ -439,6 +470,32 @@ # endif #endif +#if @GNULIB_PTSNAME_R@ +/* Set the pathname of the pseudo-terminal slave associated with + the master FD is open on and return 0, or set errno and return + non-zero on errors. */ +# if @REPLACE_PTSNAME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ptsname_r +# define ptsname_r rpl_ptsname_r +# endif +_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); +_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); +# else +# if !@HAVE_PTSNAME_R@ +_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); +# endif +_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); +# endif +_GL_CXXALIASWARN (ptsname_r); +#elif defined GNULIB_POSIXCHECK +# undef ptsname_r +# if HAVE_RAW_DECL_PTSNAME_R +_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " + "use gnulib module ptsname_r for portability"); +# endif +#endif + #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -462,12 +519,83 @@ # endif #endif + +#if @GNULIB_RANDOM@ +# if !@HAVE_RANDOM@ +_GL_FUNCDECL_SYS (random, long, (void)); +# endif +_GL_CXXALIAS_SYS (random, long, (void)); +_GL_CXXALIASWARN (random); +#elif defined GNULIB_POSIXCHECK +# undef random +# if HAVE_RAW_DECL_RANDOM +_GL_WARN_ON_USE (random, "random is unportable - " + "use gnulib module random for portability"); +# endif +#endif + +#if @GNULIB_RANDOM@ +# if !@HAVE_RANDOM@ +_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); +# endif +_GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); +_GL_CXXALIASWARN (srandom); +#elif defined GNULIB_POSIXCHECK +# undef srandom +# if HAVE_RAW_DECL_SRANDOM +_GL_WARN_ON_USE (srandom, "srandom is unportable - " + "use gnulib module random for portability"); +# endif +#endif + +#if @GNULIB_RANDOM@ +# if !@HAVE_RANDOM@ +_GL_FUNCDECL_SYS (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size)); +_GL_CXXALIASWARN (initstate); +#elif defined GNULIB_POSIXCHECK +# undef initstate +# if HAVE_RAW_DECL_INITSTATE_R +_GL_WARN_ON_USE (initstate, "initstate is unportable - " + "use gnulib module random for portability"); +# endif +#endif + +#if @GNULIB_RANDOM@ +# if !@HAVE_RANDOM@ +_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); +_GL_CXXALIASWARN (setstate); +#elif defined GNULIB_POSIXCHECK +# undef setstate +# if HAVE_RAW_DECL_SETSTATE_R +_GL_WARN_ON_USE (setstate, "setstate is unportable - " + "use gnulib module random for portability"); +# endif +#endif + + #if @GNULIB_RANDOM_R@ -# if !@HAVE_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef random_r +# define random_r rpl_random_r +# endif +_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); +# else +# if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); -# endif +# endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); +# endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r @@ -478,13 +606,25 @@ #endif #if @GNULIB_RANDOM_R@ -# if !@HAVE_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef srandom_r +# define srandom_r rpl_srandom_r +# endif +_GL_FUNCDECL_RPL (srandom_r, int, + (unsigned int seed, struct random_data *rand_state) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (srandom_r, int, + (unsigned int seed, struct random_data *rand_state)); +# else +# if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); -# endif +# endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); +# endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r @@ -495,15 +635,29 @@ #endif #if @GNULIB_RANDOM_R@ -# if !@HAVE_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef initstate_r +# define initstate_r rpl_initstate_r +# endif +_GL_FUNCDECL_RPL (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state) + _GL_ARG_NONNULL ((2, 4))); +_GL_CXXALIAS_RPL (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state)); +# else +# if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); -# endif +# endif _GL_CXXALIAS_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); +# endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r @@ -514,13 +668,25 @@ #endif #if @GNULIB_RANDOM_R@ -# if !@HAVE_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef setstate_r +# define setstate_r rpl_setstate_r +# endif +_GL_FUNCDECL_RPL (setstate_r, int, + (char *arg_state, struct random_data *rand_state) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (setstate_r, int, + (char *arg_state, struct random_data *rand_state)); +# else +# if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); -# endif +# endif _GL_CXXALIAS_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state)); +# endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r === modified file 'lib/strftime.c' --- lib/strftime.c 2011-03-31 04:24:03 +0000 +++ lib/strftime.c 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc. +/* Copyright (C) 1991-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. @@ -40,7 +40,7 @@ extern char *tzname[]; #endif -/* Do multibyte processing if multibytes are supported, unless +/* Do multibyte processing if multibyte encodings are supported, unless multibyte sequences are safe in formats. Multibyte sequences are safe if they cannot contain byte sequences that look like format conversion specifications. The multibyte encodings used by the @@ -289,7 +289,7 @@ # define TOLOWER(Ch, L) tolower (Ch) # endif #endif -/* We don't use `isdigit' here since the locale dependent +/* We don't use 'isdigit' here since the locale dependent interpretation is not what we want here. We only need to accept the arabic digits in the ASCII range. One day there is perhaps a more reliable way to accept other sets of digits. */ @@ -437,7 +437,7 @@ #ifdef _NL_CURRENT /* We cannot make the following values variables since we must delay the evaluation of these values until really needed since some - expressions might not be valid in every situation. The `struct tm' + expressions might not be valid in every situation. The 'struct tm' might be generated by a strptime() call that initialized only a few elements. Dereference the pointers only if the format requires this. Then it is ok to fail if the pointers are invalid. */ @@ -896,7 +896,7 @@ goto do_number_body; do_number_spacepad: - /* Force `_' flag unless overridden by `0' or `-' flag. */ + /* Force '_' flag unless overridden by '0' or '-' flag. */ if (pad != L_('0') && pad != L_('-')) pad = L_('_'); === modified file 'lib/strftime.h' --- lib/strftime.h 2011-01-30 23:34:18 +0000 +++ lib/strftime.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* declarations for strftime.c - Copyright (C) 2002, 2004, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2008-2012 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 === modified file 'lib/strtoimax.c' --- lib/strtoimax.c 2011-04-21 19:12:13 +0000 +++ lib/strtoimax.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Convert string representation of a number into an intmax_t value. - Copyright (C) 1999, 2001-2004, 2006, 2009-2011 Free Software Foundation, + Copyright (C) 1999, 2001-2004, 2006, 2009-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify === modified file 'lib/strtol.c' --- lib/strtol.c 2011-04-22 07:33:37 +0000 +++ lib/strtol.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Convert string representation of a number into an integer value. - Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2011 Free Software + Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2012 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C @@ -40,7 +40,7 @@ # include "../locale/localeinfo.h" #endif -/* Nonzero if we are defining `strtoul' or `strtoull', operating on +/* Nonzero if we are defining 'strtoul' or 'strtoull', operating on unsigned integers. */ #ifndef UNSIGNED # define UNSIGNED 0 @@ -110,8 +110,8 @@ # endif #endif -/* If QUAD is defined, we are defining `strtoll' or `strtoull', - operating on `long long int's. */ +/* If QUAD is defined, we are defining 'strtoll' or 'strtoull', + operating on 'long long int's. */ #ifdef QUAD # define LONG long long # define STRTOL_LONG_MIN LLONG_MIN @@ -227,7 +227,7 @@ -/* Convert NPTR to an `unsigned long int' or `long int' in base BASE. +/* Convert NPTR to an 'unsigned long int' or 'long int' in base BASE. If BASE is 0 the base is determined by the presence of a leading zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal. If BASE is < 2 or > 36, it is reset to 10. @@ -380,7 +380,7 @@ #if !UNSIGNED /* Check for a value that is within the range of - `unsigned LONG int', but outside the range of `LONG int'. */ + 'unsigned LONG int', but outside the range of 'LONG int'. */ if (overflow == 0 && i > (negative ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 @@ -405,7 +405,7 @@ /* We must handle a special case here: the base is 0 or 16 and the first two characters are '0' and 'x', but the rest are no hexadecimal digits. This is no error case. We return 0 and - ENDPTR points to the `x`. */ + ENDPTR points to the 'x'. */ if (endptr != NULL) { if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X') === modified file 'lib/strtoll.c' --- lib/strtoll.c 2011-07-09 00:18:49 +0000 +++ lib/strtoll.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -/* Function to parse a `long long int' from text. - Copyright (C) 1995-1997, 1999, 2001, 2009-2011 Free Software Foundation, +/* Function to parse a 'long long int' from text. + Copyright (C) 1995-1997, 1999, 2001, 2009-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. === modified file 'lib/strtoul.c' --- lib/strtoul.c 2011-04-21 19:12:13 +0000 +++ lib/strtoul.c 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997, 2009-2011 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1997, 2009-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify === modified file 'lib/strtoull.c' --- lib/strtoull.c 2011-04-21 19:12:13 +0000 +++ lib/strtoull.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -/* Function to parse an `unsigned long long int' from text. - Copyright (C) 1995-1997, 1999, 2009-2011 Free Software Foundation, Inc. +/* Function to parse an 'unsigned long long int' from text. + Copyright (C) 1995-1997, 1999, 2009-2012 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. === modified file 'lib/symlink.c' --- lib/symlink.c 2011-02-22 19:30:07 +0000 +++ lib/symlink.c 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Stub for symlink(). - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 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 === modified file 'lib/sys_stat.in.h' --- lib/sys_stat.in.h 2011-09-26 21:30:18 +0000 +++ lib/sys_stat.in.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Provide a more complete sys/stat header file. - Copyright (C) 2005-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2012 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 @@ -12,8 +12,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ @@ -36,7 +35,8 @@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H -/* Get nlink_t. */ +/* Get nlink_t. + May also define off_t to a 64-bit type on native Windows. */ #include /* Get struct timespec. */ @@ -62,6 +62,16 @@ # include /* mingw64, MSVC 9 */ #endif +/* Native Windows platforms declare umask() in . */ +#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +# include +#endif + +/* Large File Support on native Windows. */ +#if @WINDOWS_64_BIT_ST_SIZE@ +# define stat _stati64 +#endif + #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO @@ -331,6 +341,9 @@ _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif _GL_CXXALIASWARN (fstat); +#elif @WINDOWS_64_BIT_ST_SIZE@ +/* Above, we define stat to _stati64. */ +# define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT @@ -611,14 +624,55 @@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ -# undef stat -# ifdef _LARGE_FILES +# if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ -# define stat stat64 # undef stat64 # define stat64(name, st) rpl_stat (name, st) -# else /* !_LARGE_FILES */ +# elif @WINDOWS_64_BIT_ST_SIZE@ + /* Above, we define stat to _stati64. */ +# if defined __MINGW32__ && defined _stati64 +# ifndef _USE_32BIT_TIME_T + /* The system headers define _stati64 to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# elif defined _MSC_VER && defined _stati64 +# ifdef _USE_32BIT_TIME_T + /* The system headers define _stati64 to _stat32i64. */ +# undef _stat32i64 +# define _stat32i64(name, st) rpl_stat (name, st) +# else + /* The system headers define _stati64 to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# else +# undef _stati64 +# define _stati64(name, st) rpl_stat (name, st) +# endif +# elif defined __MINGW32__ && defined stat +# ifdef _USE_32BIT_TIME_T + /* The system headers define stat to _stat32i64. */ +# undef _stat32i64 +# define _stat32i64(name, st) rpl_stat (name, st) +# else + /* The system headers define stat to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# elif defined _MSC_VER && defined stat +# ifdef _USE_32BIT_TIME_T + /* The system headers define stat to _stat32. */ +# undef _stat32 +# define _stat32(name, st) rpl_stat (name, st) +# else + /* The system headers define stat to _stat64i32. */ +# undef _stat64i32 +# define _stat64i32(name, st) rpl_stat (name, st) +# endif +# else /* !(_AIX ||__MINGW32__ || _MSC_VER) */ +# undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ _GL_EXTERN_C int stat (const char *name, struct stat *buf) === added file 'lib/sys_types.in.h' --- lib/sys_types.in.h 1970-01-01 00:00:00 +0000 +++ lib/sys_types.in.h 2012-05-26 23:14:36 +0000 @@ -0,0 +1,51 @@ +/* Provide a more complete sys/types.h. + + Copyright (C) 2011-2012 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, 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 . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#ifndef _@GUARD_PREFIX@_SYS_TYPES_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ + +#ifndef _@GUARD_PREFIX@_SYS_TYPES_H +#define _@GUARD_PREFIX@_SYS_TYPES_H + +/* Override off_t if Large File Support is requested on native Windows. */ +#if @WINDOWS_64_BIT_OFF_T@ +/* Same as int64_t in . */ +# if defined _MSC_VER +# define off_t __int64 +# else +# define off_t long long int +# endif +/* Indicator, for gnulib internal purposes. */ +# define _GL_WINDOWS_64_BIT_OFF_T 1 +#endif + +/* MSVC 9 defines size_t in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && ! defined __GLIBC__ +# include +#endif + +#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ +#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ === modified file 'lib/time.in.h' --- lib/time.in.h 2011-05-29 21:52:18 +0000 +++ lib/time.in.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* A more-standard . - Copyright (C) 2007-2011 Free Software Foundation, Inc. + Copyright (C) 2007-2012 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 @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ === modified file 'lib/time_r.c' --- lib/time_r.c 2011-01-09 06:57:07 +0000 +++ lib/time_r.c 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Reentrant time functions like localtime_r. - Copyright (C) 2003, 2006-2007, 2010-2011 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2007, 2010-2012 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 @@ -13,8 +13,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + with this program; if not, see . */ /* Written by Paul Eggert. */ === modified file 'lib/u64.h' --- lib/u64.h 2011-06-21 08:45:39 +0000 +++ lib/u64.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* uint64_t-like operations that work even on hosts lacking uint64_t - Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2012 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 @@ -30,6 +30,7 @@ # define u64hilo(hi, lo) ((u64) (((u64) (hi) << 32) + (lo))) # define u64init(hi, lo) u64hilo (hi, lo) # define u64lo(x) ((u64) (x)) +# define u64size(x) u64lo (x) # define u64lt(x, y) ((x) < (y)) # define u64and(x, y) ((x) & (y)) # define u64or(x, y) ((x) | (y)) @@ -72,6 +73,16 @@ return r; } +/* Return a u64 value representing SIZE. */ +static inline u64 +u64size (size_t size) +{ + u64 r; + r.hi = size >> 31 >> 1; + r.lo = size; + return r; +} + /* Return X < Y. */ static inline int u64lt (u64 x, u64 y) === modified file 'lib/unistd.in.h' --- lib/unistd.in.h 2011-09-26 21:30:18 +0000 +++ lib/unistd.in.h 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ /* Substitute for and wrapper around . - Copyright (C) 2003-2011 Free Software Foundation, Inc. + Copyright (C) 2003-2012 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 @@ -12,8 +12,7 @@ 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -84,12 +83,19 @@ #endif /* Native Windows platforms declare chdir, getcwd, rmdir in - and/or , not in . */ + and/or , not in . + They also declare access(), chmod(), close(), dup(), dup2(), isatty(), + lseek(), read(), unlink(), write() in . */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ +#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ + || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ + || defined GNULIB_POSIXCHECK) \ + && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +# include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . @@ -101,8 +107,9 @@ # include #endif -/* MSVC defines off_t in . */ -#if !@HAVE_UNISTD_H@ +/* MSVC defines off_t in . + May also define off_t to a 64-bit type on native Windows. */ +#if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ /* Get off_t. */ # include #endif @@ -556,10 +563,19 @@ Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ -# if !@HAVE_FTRUNCATE@ +# if @REPLACE_FTRUNCATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ftruncate +# define ftruncate rpl_ftruncate +# endif +_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); +_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); +# else +# if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); -# endif +# endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); +# endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate @@ -935,6 +951,27 @@ #endif +#if @GNULIB_ISATTY@ +# if @REPLACE_ISATTY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef isatty +# define isatty rpl_isatty +# endif +_GL_FUNCDECL_RPL (isatty, int, (int fd)); +_GL_CXXALIAS_RPL (isatty, int, (int fd)); +# else +_GL_CXXALIAS_SYS (isatty, int, (int fd)); +# endif +_GL_CXXALIASWARN (isatty); +#elif defined GNULIB_POSIXCHECK +# undef isatty +# if HAVE_RAW_DECL_ISATTY +_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " + "use gnulib module isatty for portability"); +# endif +#endif + + #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. @@ -1268,6 +1305,33 @@ #endif +#if @GNULIB_SETHOSTNAME@ +/* Set the host name of the machine. + The host name may or may not be fully qualified. + + Put LEN bytes of NAME into the host name. + Return 0 if successful, otherwise, set errno and return -1. + + Platforms with no ability to set the hostname return -1 and set + errno = ENOSYS. */ +# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ +_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Solaris 11 2011-10, MacOS X 10.5, IRIX 6.5 + and FreeBSD 6.4 the second parameter is int. On Solaris 11 + 2011-10, the first parameter is not const. */ +_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); +_GL_CXXALIASWARN (sethostname); +#elif defined GNULIB_POSIXCHECK +# undef sethostname +# if HAVE_RAW_DECL_SETHOSTNAME +_GL_WARN_ON_USE (sethostname, "sethostname is unportable - " + "use gnulib module sethostname for portability"); +# endif +#endif + + #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. === modified file 'lib/verify.h' --- lib/verify.h 2011-06-15 18:50:18 +0000 +++ lib/verify.h 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ /* Compile-time assert-like macros. - Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2012 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 @@ -21,13 +21,11 @@ # define _GL_VERIFY_H -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per the - C1X draft N1548 section 6.7.10. This is supported by GCC 4.6.0 and - later, in C mode, and its use here generates easier-to-read diagnostics - when verify (R) fails. +/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. + This is supported by GCC 4.6.0 and later, in C mode, and its use + here generates easier-to-read diagnostics when verify (R) fails. - Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per the - C++0X draft N3242 section 7.(4). + Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. This will likely be supported by future GCC versions, in C++ mode. Use this only with GCC. If we were willing to slow 'configure' @@ -188,7 +186,7 @@ trailing ';'. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. - Unfortunately, unlike C1X, this implementation must appear as an + Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ # ifdef _GL_HAVE__STATIC_ASSERT @@ -205,7 +203,7 @@ # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert -# define static_assert _Static_assert /* Draft C1X requires this #define. */ +# define static_assert _Static_assert /* C11 requires this #define. */ # endif # endif === modified file 'm4/00gnulib.m4' --- m4/00gnulib.m4 2011-01-08 21:19:44 +0000 +++ m4/00gnulib.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # 00gnulib.m4 serial 2 -dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/alloca.m4' --- m4/alloca.m4 2011-07-06 16:19:38 +0000 +++ m4/alloca.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# alloca.m4 serial 13 -dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation, +# alloca.m4 serial 14 +dnl Copyright (C) 2002-2004, 2006-2007, 2009-2012 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -53,8 +53,8 @@ # _AC_LIBOBJ_ALLOCA # ----------------- -# Set up the LIBOBJ replacement of `alloca'. Well, not exactly -# AC_LIBOBJ since we actually set the output variable `ALLOCA'. +# Set up the LIBOBJ replacement of 'alloca'. Well, not exactly +# AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions @@ -63,9 +63,9 @@ # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl -AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using `alloca.c'.]) +AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) -AC_CACHE_CHECK(whether `alloca.c' needs Cray hooks, ac_cv_os_cray, +AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray, [AC_EGREP_CPP(webecray, [#if defined CRAY && ! defined CRAY2 webecray @@ -77,10 +77,10 @@ for ac_func in _getb67 GETB67 getb67; do AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, - [Define to one of `_getb67', `GETB67', - `getb67' for Cray-2 and Cray-YMP + [Define to one of '_getb67', 'GETB67', + 'getb67' for Cray-2 and Cray-YMP systems. This function is required for - `alloca.c' support on those systems.]) + 'alloca.c' support on those systems.]) break]) done fi === modified file 'm4/c-strtod.m4' --- m4/c-strtod.m4 2011-06-15 22:27:54 +0000 +++ m4/c-strtod.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # c-strtod.m4 serial 14 -# Copyright (C) 2004-2006, 2009-2011 Free Software Foundation, Inc. +# Copyright (C) 2004-2006, 2009-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. === modified file 'm4/dup2.m4' --- m4/dup2.m4 2011-09-26 21:30:18 +0000 +++ m4/dup2.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -#serial 16 -dnl Copyright (C) 2002, 2005, 2007, 2009-2011 Free Software Foundation, Inc. +#serial 18 +dnl Copyright (C) 2002, 2005, 2007, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -45,29 +45,34 @@ [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success - gl_cv_func_dup2_works=no;; + gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 - gl_cv_func_dup2_works=no;; + gl_cv_func_dup2_works="guessing no" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. - gl_cv_func_dup2_works=no;; + gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. - gl_cv_func_dup2_works=no;; + gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. - gl_cv_func_dup2_works=no;; - *) gl_cv_func_dup2_works=yes;; + gl_cv_func_dup2_works="guessing no" ;; + *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) - if test "$gl_cv_func_dup2_works" = no; then - REPLACE_DUP2=1 - fi + case "$gl_cv_func_dup2_works" in + *yes) ;; + *) + REPLACE_DUP2=1 + ;; + esac fi dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then - REPLACE_DUP2=1 + if test $HAVE_DUP2 = 1; then + REPLACE_DUP2=1 + fi fi ]) ]) === modified file 'm4/extensions.m4' --- m4/extensions.m4 2011-07-24 22:15:47 +0000 +++ m4/extensions.m4 2012-05-26 23:14:36 +0000 @@ -1,7 +1,7 @@ -# serial 10 -*- Autoconf -*- +# serial 11 -*- Autoconf -*- # Enable extensions on systems that normally disable them. -# Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc. +# Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -43,7 +43,7 @@ AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) if test "$MINIX" = yes; then AC_DEFINE([_POSIX_SOURCE], [1], - [Define to 1 if you need to in order for `stat' and other + [Define to 1 if you need to in order for 'stat' and other things to work.]) AC_DEFINE([_POSIX_1_SOURCE], [2], [Define to 2 if the system does not provide POSIX.1 features === modified file 'm4/filemode.m4' --- m4/filemode.m4 2011-06-15 22:27:54 +0000 +++ m4/filemode.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # filemode.m4 serial 8 -dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/getloadavg.m4' --- m4/getloadavg.m4 2011-09-26 21:30:18 +0000 +++ m4/getloadavg.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # Check for getloadavg. -# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2011 Free Software +# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2012 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation @@ -100,7 +100,7 @@ # gl_PREREQ_GETLOADAVG # -------------------- -# Set up the AC_LIBOBJ replacement of `getloadavg'. +# Set up the AC_LIBOBJ replacement of 'getloadavg'. AC_DEFUN([gl_PREREQ_GETLOADAVG], [ # Figure out what our getloadavg.c needs. === modified file 'm4/getopt.m4' --- m4/getopt.m4 2011-07-24 22:15:47 +0000 +++ m4/getopt.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# getopt.m4 serial 38 -dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. +# getopt.m4 serial 39 +dnl Copyright (C) 2002-2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -25,8 +25,6 @@ if test $REPLACE_GETOPT = 1; then dnl Arrange for getopt.h to be created. gl_GETOPT_SUBSTITUTE_HEADER - dnl Arrange for unistd.h to include getopt.h. - GNULIB_UNISTD_H_GETOPT=1 fi ]) === modified file 'm4/gnulib-common.m4' --- m4/gnulib-common.m4 2011-10-07 21:15:00 +0000 +++ m4/gnulib-common.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# gnulib-common.m4 serial 31 -dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. +# gnulib-common.m4 serial 32 +dnl Copyright (C) 2007-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -13,12 +13,13 @@ ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], -[/* The _Noreturn keyword of draft C1X. */ -#ifndef _Noreturn +[/* The _Noreturn keyword of C11. */ +#if ! (defined _Noreturn \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= _MSC_VER +# elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -224,7 +225,7 @@ # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options # to CC twice # . -# - AC_PROG_CC_STDC is likely to change when C1X is an ISO standard. +# - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ dnl Change that version number to the minimum Autoconf version that supports === modified file 'm4/gnulib-comp.m4' --- m4/gnulib-comp.m4 2012-05-21 19:04:11 +0000 +++ m4/gnulib-comp.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -78,6 +78,7 @@ # Code from module socklen: # Code from module ssize_t: # Code from module stat: + # Code from module stdalign: # Code from module stdarg: dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode dnl for the builtin va_copy to work. With Autoconf 2.60 or later, @@ -96,6 +97,7 @@ # Code from module strtoumax: # Code from module symlink: # Code from module sys_stat: + # Code from module sys_types: # Code from module time: # Code from module time_r: # Code from module u64: @@ -145,16 +147,23 @@ AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT + dnl Arrange for unistd.h to include getopt.h. + GNULIB_GL_UNISTD_H_GETOPT=1 fi +AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) gl_FUNC_GETOPT_POSIX if test $REPLACE_GETOPT = 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT + dnl Arrange for unistd.h to include getopt.h. + GNULIB_GL_UNISTD_H_GETOPT=1 fi +AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) AC_REQUIRE([AC_C_INLINE]) gl_INTTYPES_INCOMPLETE +AC_REQUIRE([gl_LARGEFILE]) gl_FUNC_LSTAT if test $REPLACE_LSTAT = 1; then AC_LIBOBJ([lstat]) @@ -183,6 +192,7 @@ gl_SIGNAL_H gl_TYPE_SOCKLEN_T gt_TYPE_SSIZE_T +gl_STDALIGN_H gl_STDARG_H AM_STDBOOL_H gl_STDDEF_H @@ -191,7 +201,7 @@ gl_STDLIB_H gl_FUNC_GNU_STRFTIME gl_FUNC_STRTOIMAX -if test $ac_cv_func_strtoimax = no; then +if test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then AC_LIBOBJ([strtoimax]) gl_PREREQ_STRTOIMAX fi @@ -209,6 +219,8 @@ gl_UNISTD_MODULE_INDICATOR([symlink]) gl_HEADER_SYS_STAT_H AC_PROG_MKDIR_P +gl_SYS_TYPES_H +AC_PROG_MKDIR_P gl_HEADER_TIME_H gl_TIME_R if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then @@ -218,7 +230,6 @@ gl_TIME_MODULE_INDICATOR([time_r]) AC_REQUIRE([AC_C_INLINE]) gl_UNISTD_H -AC_SUBST([WARN_CFLAGS]) gl_gnulib_enabled_dosname=false gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false gl_gnulib_enabled_pathmax=false @@ -326,18 +337,18 @@ if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then func_gl_gnulib_m4code_stat fi - if test $ac_cv_func_strtoimax = no; then - func_gl_gnulib_m4code_verify - fi - if test $ac_cv_func_strtoimax = no && test $ac_cv_type_long_long_int = yes; then + if { test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes; then func_gl_gnulib_m4code_strtoll fi - if test $ac_cv_func_strtoumax = no; then + if test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then func_gl_gnulib_m4code_verify fi if test $ac_cv_func_strtoumax = no && test $ac_cv_type_unsigned_long_long_int = yes; then func_gl_gnulib_m4code_strtoull fi + if test $ac_cv_func_strtoumax = no; then + func_gl_gnulib_m4code_verify + fi m4_pattern_allow([^gl_GNULIB_ENABLED_]) AM_CONDITIONAL([gl_GNULIB_ENABLED_dosname], [$gl_gnulib_enabled_dosname]) AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], [$gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36]) @@ -530,6 +541,7 @@ lib/signal.in.h lib/sigprocmask.c lib/stat.c + lib/stdalign.in.h lib/stdarg.in.h lib/stdbool.in.h lib/stddef.in.h @@ -546,6 +558,7 @@ lib/strtoumax.c lib/symlink.c lib/sys_stat.in.h + lib/sys_types.in.h lib/time.in.h lib/time_r.c lib/u64.h @@ -570,6 +583,7 @@ m4/mktime.m4 m4/multiarch.m4 m4/nocrash.m4 + m4/off_t.m4 m4/pathmax.m4 m4/pthread_sigmask.m4 m4/readlink.m4 @@ -582,6 +596,7 @@ m4/ssize_t.m4 m4/st_dm_mode.m4 m4/stat.m4 + m4/stdalign.m4 m4/stdarg.m4 m4/stdbool.m4 m4/stddef_h.m4 @@ -595,6 +610,7 @@ m4/strtoumax.m4 m4/symlink.m4 m4/sys_stat_h.m4 + m4/sys_types_h.m4 m4/time_h.m4 m4/time_r.m4 m4/tm_gmtoff.m4 === modified file 'm4/gnulib-tool.m4' --- m4/gnulib-tool.m4 2011-01-08 21:19:44 +0000 +++ m4/gnulib-tool.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # gnulib-tool.m4 serial 2 -dnl Copyright (C) 2004-2005, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2005, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/include_next.m4' --- m4/include_next.m4 2011-09-26 21:30:18 +0000 +++ m4/include_next.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# include_next.m4 serial 22 -dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. +# include_next.m4 serial 23 +dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -143,7 +143,7 @@ # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". -# Use `""', not `<>', so that the /// cannot be confused with a C99 comment. +# Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. @@ -219,12 +219,17 @@ gl_dirsep_regex='[/\\]' ;; *) - gl_dirsep_regex='/' + gl_dirsep_regex='\/' ;; esac + dnl A sed expression that turns a string into a basic regular + dnl expression, for use within "/.../". + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' changequote([,]) - gl_absolute_header_sed='\|'"${gl_dirsep_regex}"']m4_defn([gl_HEADER_NAME])[|{ - s|.*"\(.*'"${gl_dirsep_regex}"']m4_defn([gl_HEADER_NAME])[\)".*|\1| + gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ changequote(,)dnl s|^/[^/]|//&| changequote([,])dnl === modified file 'm4/inttypes.m4' --- m4/inttypes.m4 2011-05-18 00:32:16 +0000 +++ m4/inttypes.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# inttypes.m4 serial 24 -dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. +# inttypes.m4 serial 26 +dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -24,22 +24,6 @@ AC_REQUIRE([gl_MULTIARCH]) - dnl Ensure that defines the limit macros, since gnulib's - dnl relies on them. This macro is only needed when a - dnl C++ compiler is in use; it has no effect for a C compiler. - dnl Also be careful to define __STDC_LIMIT_MACROS only when gnulib's - dnl is going to be created, and to avoid redefinition warnings - dnl if the __STDC_LIMIT_MACROS is already defined through the CPPFLAGS. - AC_DEFINE([GL_TRIGGER_STDC_LIMIT_MACROS], [1], - [Define to make the limit macros in visible.]) - AH_VERBATIM([__STDC_LIMIT_MACROS_ZZZ], -[/* Ensure that defines the limit macros, since gnulib's - relies on them. */ -#if defined __cplusplus && !defined __STDC_LIMIT_MACROS && GL_TRIGGER_STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS 1 -#endif -]) - dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include @@ -163,6 +147,7 @@ HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) + REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN]) === modified file 'm4/largefile.m4' --- m4/largefile.m4 2011-09-03 23:08:32 +0000 +++ m4/largefile.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # Enable large files on systems where this is not the default. -# Copyright 1992-1996, 1998-2011 Free Software Foundation, Inc. +# Copyright 1992-1996, 1998-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -102,3 +102,48 @@ ])# AC_SYS_LARGEFILE ])# m4_version_prereq 2.69 + +# Enable large files on systems where this is implemented by Gnulib, not by the +# system headers. +# Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib +# overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. +AC_DEFUN([gl_LARGEFILE], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + dnl Native Windows. + dnl mingw64 defines off_t to a 64-bit type already, if + dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. + AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; + ]], + [[]])], + [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) + ]) + if test $gl_cv_type_off_t_64 = no; then + WINDOWS_64_BIT_OFF_T=1 + else + WINDOWS_64_BIT_OFF_T=0 + fi + dnl But all native Windows platforms (including mingw64) have a 32-bit + dnl st_size member in 'struct stat'. + WINDOWS_64_BIT_ST_SIZE=1 + ;; + *) + dnl Nothing to do on gnulib's side. + dnl A 64-bit off_t is + dnl - already the default on MacOS X, FreeBSD, NetBSD, OpenBSD, IRIX, + dnl OSF/1, Cygwin, + dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on + dnl glibc, HP-UX, Solaris, + dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, + dnl - impossible to achieve on Minix 3.1.8. + WINDOWS_64_BIT_OFF_T=0 + WINDOWS_64_BIT_ST_SIZE=0 + ;; + esac +]) === modified file 'm4/longlong.m4' --- m4/longlong.m4 2011-02-19 07:28:29 +0000 +++ m4/longlong.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# longlong.m4 serial 16 -dnl Copyright (C) 1999-2007, 2009-2011 Free Software Foundation, Inc. +# longlong.m4 serial 17 +dnl Copyright (C) 1999-2007, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -51,7 +51,7 @@ fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], - [Define to 1 if the system has the type `long long int'.]) + [Define to 1 if the system has the type 'long long int'.]) fi ]) @@ -77,7 +77,7 @@ fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], - [Define to 1 if the system has the type `unsigned long long int'.]) + [Define to 1 if the system has the type 'unsigned long long int'.]) fi ]) === modified file 'm4/lstat.m4' --- m4/lstat.m4 2011-06-16 23:10:17 +0000 +++ m4/lstat.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ -# serial 23 +# serial 25 -# Copyright (C) 1997-2001, 2003-2011 Free Software Foundation, Inc. +# Copyright (C) 1997-2001, 2003-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,9 +16,11 @@ AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) - if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then - REPLACE_LSTAT=1 - fi + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *no) + REPLACE_LSTAT=1 + ;; + esac else HAVE_LSTAT=0 fi @@ -51,20 +53,25 @@ ]])], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], - [# When cross-compiling, be pessimistic so we will end up using the - # replacement version of lstat that checks for trailing slashes and - # calls lstat a second time when necessary. - gl_cv_func_lstat_dereferences_slashed_symlink=no + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; + esac ]) else # If the 'ln -s' command failed, then we probably don't even # have an lstat function. - gl_cv_func_lstat_dereferences_slashed_symlink=no + gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" fi rm -f conftest.sym conftest.file ]) - test $gl_cv_func_lstat_dereferences_slashed_symlink = yes && - AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], - [Define to 1 if `lstat' dereferences a symlink specified - with a trailing slash.]) + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *yes) + AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], + [Define to 1 if 'lstat' dereferences a symlink specified + with a trailing slash.]) + ;; + esac ]) === modified file 'm4/md5.m4' --- m4/md5.m4 2011-06-15 22:27:54 +0000 +++ m4/md5.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # md5.m4 serial 12 -dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/mktime.m4' --- m4/mktime.m4 2011-06-15 22:27:54 +0000 +++ m4/mktime.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # serial 21 -dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2012 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, === modified file 'm4/multiarch.m4' --- m4/multiarch.m4 2011-01-22 00:12:10 +0000 +++ m4/multiarch.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # multiarch.m4 serial 6 -dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/nocrash.m4' --- m4/nocrash.m4 2011-09-11 16:52:58 +0000 +++ m4/nocrash.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # nocrash.m4 serial 3 -dnl Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === added file 'm4/off_t.m4' --- m4/off_t.m4 1970-01-01 00:00:00 +0000 +++ m4/off_t.m4 2012-05-26 23:14:36 +0000 @@ -0,0 +1,18 @@ +# off_t.m4 serial 1 +dnl Copyright (C) 2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Check whether to override the 'off_t' type. +dnl Set WINDOWS_64_BIT_OFF_T. + +AC_DEFUN([gl_TYPE_OFF_T], +[ + m4_ifdef([gl_LARGEFILE], [ + AC_REQUIRE([gl_LARGEFILE]) + ], [ + WINDOWS_64_BIT_OFF_T=0 + ]) + AC_SUBST([WINDOWS_64_BIT_OFF_T]) +]) === modified file 'm4/pathmax.m4' --- m4/pathmax.m4 2012-02-01 06:04:34 +0000 +++ m4/pathmax.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # pathmax.m4 serial 10 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, === modified file 'm4/pthread_sigmask.m4' --- m4/pthread_sigmask.m4 2011-09-03 23:08:32 +0000 +++ m4/pthread_sigmask.m4 2012-05-26 23:14:36 +0000 @@ -1,11 +1,13 @@ -# pthread_sigmask.m4 serial 12 -dnl Copyright (C) 2011 Free Software Foundation, Inc. +# pthread_sigmask.m4 serial 13 +dnl Copyright (C) 2011-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK], [ + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([pthread_sigmask]) LIB_PTHREAD_SIGMASK= === modified file 'm4/readlink.m4' --- m4/readlink.m4 2011-06-15 22:27:54 +0000 +++ m4/readlink.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# readlink.m4 serial 11 -dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc. +# readlink.m4 serial 12 +dnl Copyright (C) 2003, 2007, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,6 +7,7 @@ AC_DEFUN([gl_FUNC_READLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([readlink]) if test $ac_cv_func_readlink = no; then HAVE_READLINK=0 @@ -32,15 +33,26 @@ ]], [[char buf[20]; return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], [gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=no], - [gl_cv_func_readlink_works="guessing no"]) + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_readlink_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_readlink_works="guessing no" ;; + esac + ]) rm -f conftest.link conftest.lnk2]) - if test "$gl_cv_func_readlink_works" != yes; then - AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink - fails to recognize a trailing slash.]) - REPLACE_READLINK=1 - elif test "$gl_cv_decl_readlink_works" != yes; then - REPLACE_READLINK=1 - fi + case "$gl_cv_func_readlink_works" in + *yes) + if test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + fi + ;; + *) + AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink + fails to recognize a trailing slash.]) + REPLACE_READLINK=1 + ;; + esac fi ]) === modified file 'm4/sha1.m4' --- m4/sha1.m4 2011-06-15 22:27:54 +0000 +++ m4/sha1.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # sha1.m4 serial 10 -dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/sha256.m4' --- m4/sha256.m4 2011-06-21 08:45:39 +0000 +++ m4/sha256.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # sha256.m4 serial 5 -dnl Copyright (C) 2005, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/sha512.m4' --- m4/sha512.m4 2011-06-21 08:45:39 +0000 +++ m4/sha512.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # sha512.m4 serial 6 -dnl Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2005-2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/signal_h.m4' --- m4/signal_h.m4 2011-09-26 21:30:18 +0000 +++ m4/signal_h.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # signal_h.m4 serial 18 -dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/signalblocking.m4' --- m4/signalblocking.m4 2011-09-26 21:30:18 +0000 +++ m4/signalblocking.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # signalblocking.m4 serial 13 -dnl Copyright (C) 2001-2002, 2006-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2002, 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/socklen.m4' --- m4/socklen.m4 2011-03-20 16:28:22 +0000 +++ m4/socklen.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # socklen.m4 serial 10 -dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/ssize_t.m4' --- m4/ssize_t.m4 2011-04-01 06:28:48 +0000 +++ m4/ssize_t.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # ssize_t.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2001-2003, 2006, 2010-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2003, 2006, 2010-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/st_dm_mode.m4' --- m4/st_dm_mode.m4 2011-02-20 10:51:50 +0000 +++ m4/st_dm_mode.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # serial 6 -# Copyright (C) 1998-1999, 2001, 2009-2011 Free Software Foundation, Inc. +# Copyright (C) 1998-1999, 2001, 2009-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. === modified file 'm4/stat.m4' --- m4/stat.m4 2011-06-15 22:27:54 +0000 +++ m4/stat.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ -# serial 8 +# serial 10 -# Copyright (C) 2009-2011 Free Software Foundation, Inc. +# Copyright (C) 2009-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -23,8 +23,9 @@ mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac])]) - dnl AIX 7.1, Solaris 9 mistakenly succeed on stat("file/") - dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/") + dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). + dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) + dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp @@ -46,7 +47,13 @@ return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], - [gl_cv_func_stat_file_slash="guessing no"]) + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_stat_file_slash="guessing no" ;; + esac + ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 === added file 'm4/stdalign.m4' --- m4/stdalign.m4 1970-01-01 00:00:00 +0000 +++ m4/stdalign.m4 2012-05-26 23:14:36 +0000 @@ -0,0 +1,51 @@ +# Check for stdalign.h that conforms to C11. + +dnl Copyright 2011-2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prepare for substituting if it is not supported. + +AC_DEFUN([gl_STDALIGN_H], +[ + AC_CACHE_CHECK([for working stdalign.h], + [gl_cv_header_working_stdalign_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + + /* Test that alignof yields a result consistent with offsetof. + This catches GCC bug 52023 + . */ + #ifdef __cplusplus + template struct alignof_helper { char a; t b; }; + # define ao(type) offsetof (alignof_helper, b) + #else + # define ao(type) offsetof (struct { char a; type b; }, b) + #endif + char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; + char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; + char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; + + /* Test _Alignas only on platforms where gnulib can help. */ + #if \ + (__GNUC__ || __IBMC__ || __IBMCPP__ \ + || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER) + int alignas (8) alignas_int = 1; + char test_alignas[_Alignof (alignas_int) == 8 ? 1 : -1]; + #endif + ]])], + [gl_cv_header_working_stdalign_h=yes], + [gl_cv_header_working_stdalign_h=no])]) + + if test $gl_cv_header_working_stdalign_h = yes; then + STDALIGN_H='' + else + STDALIGN_H='stdalign.h' + fi + + AC_SUBST([STDALIGN_H]) + AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"]) +]) === modified file 'm4/stdarg.m4' --- m4/stdarg.m4 2011-05-04 07:19:21 +0000 +++ m4/stdarg.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # stdarg.m4 serial 6 -dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/stdbool.m4' --- m4/stdbool.m4 2011-04-06 07:04:00 +0000 +++ m4/stdbool.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # Check for stdbool.h that conforms to C99. -dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/stddef_h.m4' --- m4/stddef_h.m4 2011-04-06 07:04:00 +0000 +++ m4/stddef_h.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ dnl A placeholder for POSIX 2008 , for platforms that have issues. # stddef_h.m4 serial 4 -dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/stdint.m4' --- m4/stdint.m4 2011-09-26 21:30:18 +0000 +++ m4/stdint.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# stdint.m4 serial 41 -dnl Copyright (C) 2001-2011 Free Software Foundation, Inc. +# stdint.m4 serial 43 +dnl Copyright (C) 2001-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -69,8 +69,6 @@ [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ -#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ -#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ @@ -219,8 +217,6 @@ dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ -#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ -#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include ] === modified file 'm4/stdio_h.m4' --- m4/stdio_h.m4 2011-09-26 21:30:18 +0000 +++ m4/stdio_h.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# stdio_h.m4 serial 40 -dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. +# stdio_h.m4 serial 41 +dnl Copyright (C) 2007-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -18,7 +18,6 @@ GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 - GNULIB_GETS=1 GNULIB_FREAD=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is @@ -72,10 +71,10 @@ dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not - dnl guaranteed by C89. + dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include - ]], [dprintf fpurge fseeko ftello getdelim getline pclose popen renameat - snprintf tmpfile vdprintf vsnprintf]) + ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen + renameat snprintf tmpfile vdprintf vsnprintf]) ]) AC_DEFUN([gl_STDIO_MODULE_INDICATOR], @@ -113,7 +112,6 @@ GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) - GNULIB_GETS=0; AC_SUBST([GNULIB_GETS]) GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) === modified file 'm4/stdlib_h.m4' --- m4/stdlib_h.m4 2011-02-25 07:36:37 +0000 +++ m4/stdlib_h.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# stdlib_h.m4 serial 37 -dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. +# stdlib_h.m4 serial 41 +dnl Copyright (C) 2007-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -19,10 +19,11 @@ #if HAVE_RANDOM_H # include #endif - ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp - mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r - setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt - unsetenv]) + ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt + initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps + posix_openpt ptsname ptsname_r random random_r realpath rpmatch + setenv setstate setstate_r srandom srandom_r + strtod strtoll strtoull unlockpt unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], @@ -50,8 +51,11 @@ GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) + GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) + GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) + GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) @@ -76,7 +80,10 @@ HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) + HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) + HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) + HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) @@ -95,7 +102,9 @@ REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) + REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) + REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) === modified file 'm4/strftime.m4' --- m4/strftime.m4 2011-06-15 22:27:54 +0000 +++ m4/strftime.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # serial 33 -# Copyright (C) 1996-1997, 1999-2007, 2009-2011 Free Software Foundation, Inc. +# Copyright (C) 1996-1997, 1999-2007, 2009-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, === modified file 'm4/strtoimax.m4' --- m4/strtoimax.m4 2011-09-03 23:08:32 +0000 +++ m4/strtoimax.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# strtoimax.m4 serial 11 -dnl Copyright (C) 2002-2004, 2006, 2009-2011 Free Software Foundation, Inc. +# strtoimax.m4 serial 13 +dnl Copyright (C) 2002-2004, 2006, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -14,6 +14,66 @@ if test "$ac_cv_have_decl_strtoimax" != yes; then HAVE_DECL_STRTOIMAX=0 fi + + if test $ac_cv_func_strtoimax = yes; then + HAVE_STRTOIMAX=1 + dnl On AIX 5.1, strtoimax() fails for values outside the 'int' range. + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether strtoimax works], [gl_cv_func_strtoimax], + [AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +#include +int main () +{ + if (sizeof (intmax_t) > sizeof (int)) + { + const char *s = "4294967295"; + char *p; + intmax_t res; + errno = 0; + res = strtoimax (s, &p, 10); + if (p != s + strlen (s)) + return 1; + if (errno != 0) + return 2; + if (res != (intmax_t) 65535 * (intmax_t) 65537) + return 3; + } + else + { + const char *s = "2147483647"; + char *p; + intmax_t res; + errno = 0; + res = strtoimax (s, &p, 10); + if (p != s + strlen (s)) + return 1; + if (errno != 0) + return 2; + if (res != 2147483647) + return 3; + } + return 0; +} +]])], + [gl_cv_func_strtoimax=yes], + [gl_cv_func_strtoimax=no], + [case "$host_os" in + # Guess no on AIX 5. + aix5*) gl_cv_func_strtoimax="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_strtoimax="guessing yes" ;; + esac + ]) + ]) + case "$gl_cv_func_strtoimax" in + *no) REPLACE_STRTOIMAX=1 ;; + esac + else + HAVE_STRTOIMAX=0 + fi ]) # Prerequisites of lib/strtoimax.c. === modified file 'm4/strtoll.m4' --- m4/strtoll.m4 2011-07-09 00:18:49 +0000 +++ m4/strtoll.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # strtoll.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2006, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004, 2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/strtoull.m4' --- m4/strtoull.m4 2011-06-15 22:27:54 +0000 +++ m4/strtoull.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # strtoull.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2006, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004, 2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/strtoumax.m4' --- m4/strtoumax.m4 2011-09-03 23:08:32 +0000 +++ m4/strtoumax.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # strtoumax.m4 serial 11 -dnl Copyright (C) 2002-2004, 2006, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2006, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/symlink.m4' --- m4/symlink.m4 2011-06-15 22:27:54 +0000 +++ m4/symlink.m4 2012-05-26 23:14:36 +0000 @@ -1,7 +1,7 @@ -# serial 5 +# serial 6 # See if we need to provide symlink replacement. -dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,6 +11,7 @@ AC_DEFUN([gl_FUNC_SYMLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([symlink]) dnl The best we can do on mingw is provide a dummy that always fails, so dnl that compilation can proceed with fewer ifdefs. On FreeBSD 7.2, AIX 7.1, @@ -34,10 +35,19 @@ return result; ]])], [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no], - [gl_cv_func_symlink_works="guessing no"]) + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_symlink_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_symlink_works="guessing no" ;; + esac + ]) rm -f conftest.f conftest.link conftest.lnk2]) - if test "$gl_cv_func_symlink_works" != yes; then - REPLACE_SYMLINK=1 - fi + case "$gl_cv_func_symlink_works" in + *yes) ;; + *) + REPLACE_SYMLINK=1 + ;; + esac fi ]) === modified file 'm4/sys_stat_h.m4' --- m4/sys_stat_h.m4 2011-09-26 21:30:18 +0000 +++ m4/sys_stat_h.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# sys_stat_h.m4 serial 26 -*- Autoconf -*- -dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. +# sys_stat_h.m4 serial 27 -*- Autoconf -*- +dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -22,6 +22,19 @@ dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) + dnl Whether to override 'struct stat'. + m4_ifdef([gl_LARGEFILE], [ + AC_REQUIRE([gl_LARGEFILE]) + ], [ + WINDOWS_64_BIT_ST_SIZE=0 + ]) + AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) + if test $WINDOWS_64_BIT_ST_SIZE = 1; then + AC_DEFINE([_GL_WINDOWS_64_BIT_ST_SIZE], [1], + [Define to 1 if Gnulib overrides 'struct stat' on Windows so that + struct stat.st_size becomes 64-bit.]) + fi + dnl Define types that are supposed to be defined in or dnl . AC_CHECK_TYPE([nlink_t], [], === added file 'm4/sys_types_h.m4' --- m4/sys_types_h.m4 1970-01-01 00:00:00 +0000 +++ m4/sys_types_h.m4 2012-05-26 23:14:36 +0000 @@ -0,0 +1,24 @@ +# sys_types_h.m4 serial 4 +dnl Copyright (C) 2011-2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_SYS_TYPES_H], +[ + AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) + gl_NEXT_HEADERS([sys/types.h]) + + dnl Ensure the type pid_t gets defined. + AC_REQUIRE([AC_TYPE_PID_T]) + + dnl Ensure the type mode_t gets defined. + AC_REQUIRE([AC_TYPE_MODE_T]) + + dnl Whether to override the 'off_t' type. + AC_REQUIRE([gl_TYPE_OFF_T]) +]) + +AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], +[ +]) === modified file 'm4/time_h.m4' --- m4/time_h.m4 2011-09-26 21:30:18 +0000 +++ m4/time_h.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ # Configure a more-standard replacement for . -# Copyright (C) 2000-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc. # serial 6 @@ -25,7 +25,7 @@ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) ]) -dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared +dnl Define HAVE_STRUCT_TIMESPEC if 'struct timespec' is declared dnl in time.h, sys/time.h, or pthread.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], === modified file 'm4/time_r.m4' --- m4/time_r.m4 2011-06-15 22:27:54 +0000 +++ m4/time_r.m4 2012-05-26 23:14:36 +0000 @@ -1,6 +1,6 @@ dnl Reentrant time functions: localtime_r, gmtime_r. -dnl Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/tm_gmtoff.m4' --- m4/tm_gmtoff.m4 2011-01-30 23:34:18 +0000 +++ m4/tm_gmtoff.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # tm_gmtoff.m4 serial 3 -dnl Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. === modified file 'm4/unistd_h.m4' --- m4/unistd_h.m4 2011-09-26 21:30:18 +0000 +++ m4/unistd_h.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ -# unistd_h.m4 serial 61 -dnl Copyright (C) 2006-2011 Free Software Foundation, Inc. +# unistd_h.m4 serial 65 +dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -24,6 +24,9 @@ dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) + dnl Determine WINDOWS_64_BIT_OFF_T. + AC_REQUIRE([gl_TYPE_OFF_T]) + dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ @@ -41,10 +44,11 @@ #endif ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups - gethostname getlogin getlogin_r getpagesize getusershell setusershell - endusershell group_member lchown link linkat lseek pipe pipe2 pread pwrite - readlink readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat - usleep]) + gethostname getlogin getlogin_r getpagesize + getusershell setusershell endusershell + group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite + readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r + unlink unlinkat usleep]) ]) AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], @@ -82,6 +86,7 @@ GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) + GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) @@ -94,11 +99,11 @@ GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) + GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) - GNULIB_UNISTD_H_GETOPT=0; AC_SUBST([GNULIB_UNISTD_H_GETOPT]) GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) @@ -131,6 +136,7 @@ HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) + HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) @@ -143,6 +149,7 @@ HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) + HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) @@ -151,11 +158,13 @@ REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) + REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) + REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) === modified file 'm4/warnings.m4' --- m4/warnings.m4 2012-04-09 07:45:59 +0000 +++ m4/warnings.m4 2012-05-26 23:14:36 +0000 @@ -1,4 +1,4 @@ -# warnings.m4 serial 6 +# warnings.m4 serial 7 dnl Copyright (C) 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -15,28 +15,47 @@ [AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])]) -# gl_WARN_ADD(PARAMETER, [VARIABLE = WARN_CFLAGS]) -# ------------------------------------------------ -# Adds parameter to WARN_CFLAGS if the compiler supports it. For example, -# gl_WARN_ADD([-Wparentheses]). +# gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED], +# [PROGRAM = AC_LANG_PROGRAM()]) +# ----------------------------------------------------------------- +# Check if the compiler supports OPTION when compiling PROGRAM. # -# If VARIABLE is a variable name, AC_SUBST it. -AC_DEFUN([gl_WARN_ADD], -dnl FIXME: gl_Warn must be used unquoted until we can assume -dnl autoconf 2.64 or newer. +# FIXME: gl_Warn must be used unquoted until we can assume Autoconf +# 2.64 or newer. +AC_DEFUN([gl_COMPILER_OPTION_IF], [AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [ gl_save_compiler_FLAGS="$gl_Flags" - gl_Flags="$gl_Flags $1" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $1"]) + AC_COMPILE_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])], [AS_VAR_SET(gl_Warn, [yes])], [AS_VAR_SET(gl_Warn, [no])]) gl_Flags="$gl_save_compiler_FLAGS" ]) -AS_VAR_IF(gl_Warn, [yes], - [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])]) +AS_VAR_IF(gl_Warn, [yes], [$2], [$3]) AS_VAR_POPDEF([gl_Flags])dnl AS_VAR_POPDEF([gl_Warn])dnl -m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])], [])])dnl -]) +]) + + +# gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS], +# [PROGRAM = AC_LANG_PROGRAM()]) +# --------------------------------------------- +# Adds parameter to WARN_CFLAGS if the compiler supports it when +# compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]). +# +# If VARIABLE is a variable name, AC_SUBST it. +AC_DEFUN([gl_WARN_ADD], +[gl_COMPILER_OPTION_IF([$1], + [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])], + [], + [$3]) +m4_ifval([$2], + [AS_LITERAL_IF([$2], [AC_SUBST([$2])])], + [AC_SUBST([WARN_CFLAGS])])dnl +]) + +# Local Variables: +# mode: autoconf +# End: === modified file 'm4/wchar_t.m4' --- m4/wchar_t.m4 2011-01-09 06:57:07 +0000 +++ m4/wchar_t.m4 2012-05-26 23:14:36 +0000 @@ -1,5 +1,5 @@ # wchar_t.m4 serial 4 (gettext-0.18.2) -dnl Copyright (C) 2002-2003, 2008-2011 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. ------------------------------------------------------------ revno: 108384 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 15:38:19 -0700 message: * lib-src/Makefile.in (INSTALL_DATA): Remove; unused. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-05-22 16:20:27 +0000 +++ lib-src/ChangeLog 2012-05-26 22:38:19 +0000 @@ -1,3 +1,7 @@ +2012-05-26 Glenn Morris + + * Makefile.in (INSTALL_DATA): Remove; unused. + 2012-05-22 Paul Eggert Remove src/m/*. === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2012-05-22 00:58:17 +0000 +++ lib-src/Makefile.in 2012-05-26 22:38:19 +0000 @@ -106,7 +106,6 @@ # ../configure figures out the correct values for these. INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ # By default, we uphold the dignity of our programs. INSTALL_STRIP = ------------------------------------------------------------ revno: 108383 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-05-26 15:27:21 -0700 message: Fix coding-related core dumps with gcc -ftrapv. The code was computing A - B, where A and B are pointers, and B is random garbage. This can lead to core dumps on platforms that have special pointer registers, and it also leads to core dumps on x86-64 when compiled with gcc -ftrapv. The fix is to compute A - B only when B is initialized properly. * coding.c (coding_set_source, coding_set_destination): Return void. (coding_change_source, coding_change_destinations): New functions, with the old behaviors of coding_set_source and coding_set_destination. All callers that need an offset changed to use these new functions. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-26 21:23:28 +0000 +++ src/ChangeLog 2012-05-26 22:27:21 +0000 @@ -1,3 +1,16 @@ +2012-05-26 Paul Eggert + + Fix coding-related core dumps with gcc -ftrapv. + The code was computing A - B, where A and B are pointers, and B is + random garbage. This can lead to core dumps on platforms that + have special pointer registers, and it also leads to core dumps on + x86-64 when compiled with gcc -ftrapv. The fix is to compute + A - B only when B is initialized properly. + * coding.c (coding_set_source, coding_set_destination): Return void. + (coding_change_source, coding_change_destinations): New functions, + with the old behaviors of coding_set_source and coding_set_destination. + All callers that need an offset changed to use these new functions. + 2012-05-26 Glenn Morris * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791) === modified file 'src/coding.c' --- src/coding.c 2012-02-10 18:58:48 +0000 +++ src/coding.c 2012-05-26 22:27:21 +0000 @@ -847,8 +847,10 @@ static void decode_coding_raw_text (struct coding_system *); static int encode_coding_raw_text (struct coding_system *); -static ptrdiff_t coding_set_source (struct coding_system *); -static ptrdiff_t coding_set_destination (struct coding_system *); +static void coding_set_source (struct coding_system *); +static ptrdiff_t coding_change_source (struct coding_system *); +static void coding_set_destination (struct coding_system *); +static ptrdiff_t coding_change_destination (struct coding_system *); static void coding_alloc_by_realloc (struct coding_system *, ptrdiff_t); static void coding_alloc_by_making_gap (struct coding_system *, ptrdiff_t, ptrdiff_t); @@ -927,7 +929,7 @@ charset_map_loaded = 0; \ c = DECODE_CHAR (charset, code); \ if (charset_map_loaded \ - && (offset = coding_set_source (coding))) \ + && (offset = coding_change_source (coding))) \ { \ src += offset; \ src_base += offset; \ @@ -942,7 +944,7 @@ charset_map_loaded = 0; \ code = ENCODE_CHAR (charset, c); \ if (charset_map_loaded \ - && (offset = coding_set_destination (coding))) \ + && (offset = coding_change_destination (coding))) \ { \ dst += offset; \ dst_end += offset; \ @@ -956,7 +958,7 @@ charset_map_loaded = 0; \ charset = char_charset (c, charset_list, code_return); \ if (charset_map_loaded \ - && (offset = coding_set_destination (coding))) \ + && (offset = coding_change_destination (coding))) \ { \ dst += offset; \ dst_end += offset; \ @@ -970,7 +972,7 @@ charset_map_loaded = 0; \ result = CHAR_CHARSET_P (c, charset); \ if (charset_map_loaded \ - && (offset = coding_set_destination (coding))) \ + && (offset = coding_change_destination (coding))) \ { \ dst += offset; \ dst_end += offset; \ @@ -1056,14 +1058,11 @@ | ((p)[-1] & 0x3F)))) -/* Update coding->source from coding->src_object, and return how many - bytes coding->source was changed. */ +/* Set coding->source from coding->src_object. */ -static ptrdiff_t +static void coding_set_source (struct coding_system *coding) { - const unsigned char *orig = coding->source; - if (BUFFERP (coding->src_object)) { struct buffer *buf = XBUFFER (coding->src_object); @@ -1082,18 +1081,26 @@ /* Otherwise, the source is C string and is never relocated automatically. Thus we don't have to update anything. */ } +} + + +/* Set coding->source from coding->src_object, and return how many + bytes coding->source was changed. */ + +static ptrdiff_t +coding_change_source (struct coding_system *coding) +{ + const unsigned char *orig = coding->source; + coding_set_source (coding); return coding->source - orig; } -/* Update coding->destination from coding->dst_object, and return how - many bytes coding->destination was changed. */ +/* Set coding->destination from coding->dst_object. */ -static ptrdiff_t +static void coding_set_destination (struct coding_system *coding) { - const unsigned char *orig = coding->destination; - if (BUFFERP (coding->dst_object)) { if (BUFFERP (coding->src_object) && coding->src_pos < 0) @@ -1118,6 +1125,17 @@ /* Otherwise, the destination is C string and is never relocated automatically. Thus we don't have to update anything. */ } +} + + +/* Set coding->destination from coding->dst_object, and return how + many bytes coding->destination was changed. */ + +static ptrdiff_t +coding_change_destination (struct coding_system *coding) +{ + const unsigned char *orig = coding->destination; + coding_set_destination (coding); return coding->destination - orig; } @@ -4452,7 +4470,7 @@ nbytes = encode_designation_at_bol (coding, charbuf, charbuf_end, desig_buf); if (charset_map_loaded - && (offset = coding_set_destination (coding))) + && (offset = coding_change_destination (coding))) { dst += offset; dst_end += offset; ------------------------------------------------------------ revno: 108382 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 14:58:01 -0700 message: Replace w32-init-info through the magic of custom-initialize-delay * lisp/w32-fns.el (w32-init-info): Remove. * lisp/paths.el (Info-default-directory-list): Add w32-init-info equivalent. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 21:23:28 +0000 +++ lisp/ChangeLog 2012-05-26 21:58:01 +0000 @@ -1,6 +1,8 @@ 2012-05-26 Glenn Morris - * paths.el (Info-default-directory-list): + * w32-fns.el (w32-init-info): Remove. + * paths.el (Info-default-directory-list): Add w32-init-info equivalent. + * info.el (info-initialize): For self-contained NS builds, put the included info/ directory at the front. (Bug#2791) === modified file 'lisp/paths.el' --- lisp/paths.el 2012-05-26 21:23:28 +0000 +++ lisp/paths.el 2012-05-26 21:58:01 +0000 @@ -62,16 +62,27 @@ (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) - prefixes)))) - ;; If $(prefix)/share/info is not one of the standard info - ;; directories, they are probably installing an experimental - ;; version of Emacs, so make sure that experimental version's Info - ;; files override the ones in standard directories. - (if (member config-dir standard-info-dirs) - ;; FIXME? What is the point of adding it again at the end - ;; when it is already present earlier in the list? - (nconc standard-info-dirs (list config-dir)) - (cons config-dir standard-info-dirs))) + prefixes))) + ;; If $(prefix)/share/info is not one of the standard info + ;; directories, they are probably installing an experimental + ;; version of Emacs, so make sure that experimental version's Info + ;; files override the ones in standard directories. + (dirs + (if (member config-dir standard-info-dirs) + ;; FIXME? What is the point of adding it again at the end + ;; when it is already present earlier in the list? + (nconc standard-info-dirs (list config-dir)) + (cons config-dir standard-info-dirs)))) + (if (not (eq system-type 'windows-nt)) + dirs + ;; Include the info directory near where Emacs executable was installed. + (let* ((instdir (file-name-directory invocation-directory)) + (dir1 (expand-file-name "../info/" instdir)) + (dir2 (expand-file-name "../../../info/" instdir))) + (cond ((file-exists-p dir1) (append dirs (list dir1))) + ((file-exists-p dir2) (append dirs (list dir2))) + (t dirs))))) + "Default list of directories to search for Info documentation files. They are searched in the order they are given in the list. Therefore, the directory of Info files that come with Emacs === modified file 'lisp/w32-fns.el' --- lisp/w32-fns.el 2012-02-28 08:17:21 +0000 +++ lisp/w32-fns.el 2012-05-26 21:58:01 +0000 @@ -192,24 +192,6 @@ (w32-get-locale-info locale) (w32-get-locale-info locale t)))))) -;; Setup Info-default-directory-list to include the info directory -;; near where Emacs executable was installed. We used to set INFOPATH, -;; but when this is set Info-default-directory-list is ignored. We -;; also cannot rely upon what is set in paths.el because they assume -;; that configuration during build time is correct for runtime. -(defun w32-init-info () - (let* ((instdir (file-name-directory invocation-directory)) - (dir1 (expand-file-name "../info/" instdir)) - (dir2 (expand-file-name "../../../info/" instdir))) - (if (file-exists-p dir1) - (setq Info-default-directory-list - (append Info-default-directory-list (list dir1))) - (if (file-exists-p dir2) - (setq Info-default-directory-list - (append Info-default-directory-list (list dir2))))))) - -(add-hook 'before-init-hook 'w32-init-info) - ;; The variable source-directory is used to initialize Info-directory-list. ;; However, the common case is that Emacs is being used from a binary ;; distribution, and the value of source-directory is meaningless in that ------------------------------------------------------------ revno: 108381 fixes bug(s): http://debbugs.gnu.org/2791 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 14:23:28 -0700 message: Don't mess with INFOPATH in ns builds It's not necessary, and would break if INFOPATH was already set (bug#2791). Ref also http://lists.gnu.org/archive/html/emacs-devel/2009-05/msg00035.html http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg00064.html * lisp/paths.el (Info-default-directory-list): * lisp/info.el (info-initialize): For self-contained NS builds, put the included info/ directory at the front. * src/nsterm.m (ns_init_paths): Don't mess with INFOPATH. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 21:17:06 +0000 +++ lisp/ChangeLog 2012-05-26 21:23:28 +0000 @@ -1,5 +1,9 @@ 2012-05-26 Glenn Morris + * paths.el (Info-default-directory-list): + * info.el (info-initialize): For self-contained NS builds, put the + included info/ directory at the front. (Bug#2791) + * paths.el (Info-default-directory-list): Make it a defcustom, mainly so that we can use custom-initialize-delay. === modified file 'lisp/info.el' --- lisp/info.el 2012-05-22 03:31:34 +0000 +++ lisp/info.el 2012-05-26 21:23:28 +0000 @@ -618,7 +618,19 @@ (append (split-string (substring path 0 -1) sep) (Info-default-dirs)) (split-string path sep)) - (Info-default-dirs))))))) + (Info-default-dirs)))) + ;; For a self-contained (ie relocatable) NS build, AFAICS we + ;; always want the included info directory to be at the head of + ;; the search path, unless it's already in INFOPATH somewhere. + ;; It's at the head of Info-default-directory-list, + ;; but there's no way to get it at the head of Info-directory-list + ;; except by doing it here. + (and path + (featurep 'ns) + (let ((dir (expand-file-name "../info" data-directory))) + (and (file-directory-p dir) + (not (member dir (split-string path ":" t))) + (push dir Info-directory-list))))))) ;;;###autoload (defun info-other-window (&optional file-or-node) === modified file 'lisp/paths.el' --- lisp/paths.el 2012-05-26 21:17:06 +0000 +++ lisp/paths.el 2012-05-26 21:23:28 +0000 @@ -37,7 +37,12 @@ ;; call custom-initialize-delay on it. (defcustom Info-default-directory-list (let* ((config-dir - (file-name-as-directory configure-info-directory)) + (file-name-as-directory + ;; Self-contained NS build with info/ in the app-bundle. + (or (and (featurep 'ns) + (let ((dir (expand-file-name "../info" data-directory))) + (if (file-directory-p dir) dir))) + configure-info-directory))) (prefixes ;; Directory trees in which to look for info subdirectories (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-26 12:14:56 +0000 +++ src/ChangeLog 2012-05-26 21:23:28 +0000 @@ -1,3 +1,7 @@ +2012-05-26 Glenn Morris + + * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791) + 2012-05-26 Eli Zaretskii Extend mouse support on W32 text-mode console. === modified file 'src/nsterm.m' --- src/nsterm.m 2012-05-14 16:33:11 +0000 +++ src/nsterm.m 2012-05-26 21:23:28 +0000 @@ -379,16 +379,6 @@ setenv ("EMACSDOC", [resourcePath UTF8String], 1); } } - - if (!getenv ("INFOPATH")) - { - resourcePath = [resourceDir stringByAppendingPathComponent: @"info"]; - if ([fileManager fileExistsAtPath: resourcePath isDirectory: &isDir]) - if (isDir) - setenv ("INFOPATH", [[resourcePath stringByAppendingString: @":"] - UTF8String], 1); - /* Note, extra colon needed to cause merge w/later user additions. */ - } } ------------------------------------------------------------ revno: 108380 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 14:17:06 -0700 message: * lisp/paths.el (Info-default-directory-list): Make it a defcustom. This is mainly so that we can use custom-initialize-delay, which means we do not have to worry about "unpruned" directories. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 19:55:07 +0000 +++ lisp/ChangeLog 2012-05-26 21:17:06 +0000 @@ -1,3 +1,8 @@ +2012-05-26 Glenn Morris + + * paths.el (Info-default-directory-list): Make it a defcustom, + mainly so that we can use custom-initialize-delay. + 2012-05-26 Stefan Monnier * subr.el (buffer-has-markers-at): Mark obsolete. === modified file 'lisp/paths.el' --- lisp/paths.el 2012-05-26 20:57:31 +0000 +++ lisp/paths.el 2012-05-26 21:17:06 +0000 @@ -31,22 +31,22 @@ ;;; Code: -(defvar Info-default-directory-list +;; This is a defcustom largely so that we can get the benefit +;; of custom-initialize-delay. Perhaps it would work to make it a +;; defvar and explicitly give it a standard-value property, and +;; call custom-initialize-delay on it. +(defcustom Info-default-directory-list (let* ((config-dir (file-name-as-directory configure-info-directory)) - (config - (list config-dir)) - (unpruned-prefixes - ;; Directory trees that may not exist at installation time, and - ;; so shouldn't be pruned based on existence. - '("/usr/local/")) (prefixes ;; Directory trees in which to look for info subdirectories - (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/") - unpruned-prefixes)) + (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) (suffixes ;; Subdirectories in each directory tree that may contain info - ;; directories. + ;; directories. Most of these are rather outdated. + ;; It ought to be fine to stop checking the "emacs" ones now, + ;; since this is Emacs and we have not installed info files + ;; into such directories for a looong time... '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs @@ -56,16 +56,16 @@ (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) - (if (member pfx unpruned-prefixes) - dirs - (prune-directory-list dirs config)))) + (prune-directory-list dirs))) prefixes)))) ;; If $(prefix)/share/info is not one of the standard info ;; directories, they are probably installing an experimental ;; version of Emacs, so make sure that experimental version's Info ;; files override the ones in standard directories. (if (member config-dir standard-info-dirs) - (nconc standard-info-dirs config) + ;; FIXME? What is the point of adding it again at the end + ;; when it is already present earlier in the list? + (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs))) "Default list of directories to search for Info documentation files. They are searched in the order they are given in the list. @@ -79,7 +79,14 @@ comes from the variable `Info-directory-list'. This variable `Info-default-directory-list' is used as the default for initializing `Info-directory-list' when Info is started, unless -the environment variable INFOPATH is set.") +the environment variable INFOPATH is set. + +Although this is a customizable variable, that is mainly for technical +reasons. Normally, you should either set INFOPATH or customize +`Info-additional-directory-list', rather than changing this variable." + :initialize 'custom-initialize-delay + :type '(repeat directory) + :group 'info) ;;; paths.el ends here ------------------------------------------------------------ revno: 108379 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-05-26 13:57:31 -0700 message: Comment diff: === modified file 'lisp/paths.el' --- lisp/paths.el 2012-05-25 22:13:24 +0000 +++ lisp/paths.el 2012-05-26 20:57:31 +0000 @@ -31,10 +31,6 @@ ;;; Code: -;; Docstrings in this file should, where reasonable, follow the -;; conventions described in make-docfile, so that they get put in the -;; DOC file rather than in memory. - (defvar Info-default-directory-list (let* ((config-dir (file-name-as-directory configure-info-directory)) ------------------------------------------------------------ revno: 108378 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2012-05-26 15:55:07 -0400 message: * lisp/subr.el (buffer-has-markers-at): Mark obsolete. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-05-26 12:14:56 +0000 +++ etc/NEWS 2012-05-26 19:55:07 +0000 @@ -305,6 +305,7 @@ by the underlying C implementation. ** `automount-dir-prefix' is obsolete. +** `buffer-has-markers-at' is obsolete. * Changes in Emacs 24.2 on non-free operating systems === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 15:52:27 +0000 +++ lisp/ChangeLog 2012-05-26 19:55:07 +0000 @@ -1,6 +1,9 @@ 2012-05-26 Stefan Monnier + * subr.el (buffer-has-markers-at): Mark obsolete. + * subr.el (lambda): Use declare. + * emacs-lisp/lisp-mode.el (lambda): * emacs-lisp/edebug.el (lambda): Move properties to its definition. === modified file 'lisp/subr.el' --- lisp/subr.el 2012-05-26 15:52:27 +0000 +++ lisp/subr.el 2012-05-26 19:55:07 +0000 @@ -1154,6 +1154,7 @@ (define-obsolete-function-alias 'string-to-int 'string-to-number "22.1") (make-obsolete 'forward-point "use (+ (point) N) instead." "23.1") +(make-obsolete 'buffer-has-markers-at nil "24.2") (defun insert-string (&rest args) "Mocklisp-compatibility insert function. ------------------------------------------------------------ revno: 108377 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2012-05-26 11:52:27 -0400 message: Use `declare' in `lambda' and mis minor changes. * lisp/subr.el (lambda): Use declare. * lisp/emacs-lisp/lisp-mode.el (lambda): * lisp/emacs-lisp/edebug.el (lambda): Move properties to its definition. * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unhook-expire-days): * lisp/gnus/gnus-demon.el (gnus-demon-init): Don't bother with type-of. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 02:40:47 +0000 +++ lisp/ChangeLog 2012-05-26 15:52:27 +0000 @@ -1,3 +1,9 @@ +2012-05-26 Stefan Monnier + + * subr.el (lambda): Use declare. + * emacs-lisp/lisp-mode.el (lambda): + * emacs-lisp/edebug.el (lambda): Move properties to its definition. + 2012-05-26 Aaron S. Hawley * thingatpt.el (forward-same-syntax): Handle no ARG case. (Bug#11560) === modified file 'lisp/emacs-lisp/edebug.el' --- lisp/emacs-lisp/edebug.el 2012-05-22 16:45:44 +0000 +++ lisp/emacs-lisp/edebug.el 2012-05-26 15:52:27 +0000 @@ -2010,12 +2010,6 @@ ;; A macro is allowed by Emacs. (def-edebug-spec function (&or symbolp lambda-expr)) -;; lambda is a macro in emacs 19. -(def-edebug-spec lambda (&define lambda-list - [&optional stringp] - [&optional ("interactive" interactive)] - def-body)) - ;; A macro expression is a lambda expression with "macro" prepended. (def-edebug-spec macro (&define "lambda" lambda-list def-body)) === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2012-05-18 01:46:20 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2012-05-26 15:52:27 +0000 @@ -140,7 +140,6 @@ (put 'defvar 'doc-string-elt 3) (put 'defconst 'doc-string-elt 3) (put 'defmacro 'doc-string-elt 3) -(put 'lambda 'doc-string-elt 2) (put 'defalias 'doc-string-elt 3) (put 'defvaralias 'doc-string-elt 3) (put 'define-category 'doc-string-elt 2) @@ -1213,7 +1212,6 @@ ;; like defun if the first form is placed on the next line, otherwise ;; it is indented like any other form (i.e. forms line up under first). -(put 'lambda 'lisp-indent-function 'defun) (put 'autoload 'lisp-indent-function 'defun) (put 'progn 'lisp-indent-function 0) (put 'prog1 'lisp-indent-function 1) === modified file 'lisp/emacs-lisp/pcase.el' --- lisp/emacs-lisp/pcase.el 2012-05-17 21:40:47 +0000 +++ lisp/emacs-lisp/pcase.el 2012-05-26 15:52:27 +0000 @@ -39,12 +39,15 @@ ;; - along these lines, provide patterns to match CL structs. ;; - provide something like (setq VAR) so a var can be set rather than ;; let-bound. -;; - provide a way to fallthrough to subsequent cases. +;; - provide a way to fallthrough to subsequent cases (not sure what I meant by +;; this :-() ;; - try and be more clever to reduce the size of the decision tree, and ;; to reduce the number of leaves that need to be turned into function: ;; - first, do the tests shared by all remaining branches (it will have -;; to be performed anyway, so better so it first so it's shared). +;; to be performed anyway, so better do it first so it's shared). ;; - then choose the test that discriminates more (?). +;; - provide Agda's `with' (along with its `...' companion). +;; - implement (not UPAT). This might require a significant redesign. ;; - ideally we'd want (pcase s ((re RE1) E1) ((re RE2) E2)) to be able to ;; generate a lex-style DFA to decide whether to run E1 or E2. === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-05-25 14:58:17 +0000 +++ lisp/gnus/ChangeLog 2012-05-26 15:52:27 +0000 @@ -1,3 +1,8 @@ +2012-05-26 Stefan Monnier + + * legacy-gnus-agent.el (gnus-agent-unhook-expire-days): + * gnus-demon.el (gnus-demon-init): Don't bother with type-of. + 2012-05-25 Stefan Monnier * gnus-win.el (gnus-configure-frame): Don't signal an error when === modified file 'lisp/gnus/gnus-demon.el' --- lisp/gnus/gnus-demon.el 2012-02-19 23:55:16 +0000 +++ lisp/gnus/gnus-demon.el 2012-05-26 15:52:27 +0000 @@ -116,7 +116,6 @@ ;; Set up the timer. (let* ((func (nth 0 handler)) (time (nth 1 handler)) - (time-type (type-of time)) (idle (nth 2 handler)) ;; Compute time according with timestep. ;; If t, replace by 1 @@ -140,10 +139,10 @@ (run-with-idle-timer idle t 'gnus-demon-run-callback func)) ;; (func number any) ;; Call every `time' - ((eq time-type 'integer) + ((integerp time) (run-with-timer time time 'gnus-demon-run-callback func idle)) ;; (func string any) - ((eq time-type 'string) + ((stringp time) (run-with-timer time (* 24 60 60) 'gnus-demon-run-callback func idle))))) (when timer (add-to-list 'gnus-demon-timers timer))))) === modified file 'lisp/gnus/legacy-gnus-agent.el' --- lisp/gnus/legacy-gnus-agent.el 2012-01-19 07:21:25 +0000 +++ lisp/gnus/legacy-gnus-agent.el 2012-05-26 15:52:27 +0000 @@ -206,29 +206,31 @@ (gnus-convert-mark-converter-prompt 'gnus-agent-unlist-expire-days t) (defun gnus-agent-unhook-expire-days (converting-to) - "Remove every lambda from gnus-group-prepare-hook that mention the -symbol gnus-agent-do-once in their definition. This should NOT be + "Remove every lambda from `gnus-group-prepare-hook' that mention the +symbol `gnus-agent-do-once' in their definition. This should NOT be necessary as gnus-agent.el no longer adds them. However, it is possible that the hook was persistently saved." - (let ((h t)) ; iterate from bgn of hook + (let ((h t)) ; Iterate from bgn of hook. (while h (let ((func (progn (when (eq h t) - ;; init h to list of functions + ;; Init h to list of functions. (setq h (cond ((listp gnus-group-prepare-hook) gnus-group-prepare-hook) ((boundp 'gnus-group-prepare-hook) (list gnus-group-prepare-hook))))) (pop h)))) - (when (cond ((eq (type-of func) 'compiled-function) - ;; Search def. of compiled function for gnus-agent-do-once string + (when (cond ((byte-code-function-p func) + ;; Search def. of compiled function for + ;; gnus-agent-do-once string. (let* (definition print-level print-length (standard-output (lambda (char) (setq definition (cons char definition))))) - (princ func) ; populates definition with reversed list of characters + (princ func) ; Populates definition with reversed list + ; of characters. (let* ((i (length definition)) (s (make-string i 0))) (while definition @@ -236,7 +238,7 @@ (string-match "\\bgnus-agent-do-once\\b" s)))) ((listp func) - (eq (cadr (nth 2 func)) 'gnus-agent-do-once) ; handles eval'd lambda + (eq (cadr (nth 2 func)) 'gnus-agent-do-once) ; Handles eval'd lambda. )) (remove-hook 'gnus-group-prepare-hook func) === modified file 'lisp/subr.el' --- lisp/subr.el 2012-05-08 14:11:47 +0000 +++ lisp/subr.el 2012-05-26 15:52:27 +0000 @@ -112,6 +112,11 @@ BODY should be a list of Lisp expressions. \(fn ARGS [DOCSTRING] [INTERACTIVE] BODY)" + (declare (doc-string 2) (indent defun) + (debug (&define lambda-list + [&optional stringp] + [&optional ("interactive" interactive)] + def-body))) ;; Note that this definition should not use backquotes; subr.el should not ;; depend on backquote.el. (list 'function (cons 'lambda cdr))) === modified file 'src/print.c' --- src/print.c 2012-05-25 18:19:24 +0000 +++ src/print.c 2012-05-26 15:52:27 +0000 @@ -1086,9 +1086,7 @@ if (HASH_TABLE_P (Vprint_number_table)) { /* Remove unnecessary objects, which appear only once in OBJ; - that is, whose status is Qt. - Maybe a better way to do that is to copy elements to - a new hash table. */ + that is, whose status is Qt. */ struct Lisp_Hash_Table *h = XHASH_TABLE (Vprint_number_table); ptrdiff_t i; ------------------------------------------------------------ revno: 108376 [merge] committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-05-26 15:14:56 +0300 message: Extend mouse support on W32 text-mode console. src/xdisp.c (draw_row_with_mouse_face): Call tty_draw_row_with_mouse_face for WINDOWSNT as well. src/w32console.c: Include window.h. (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face): New functions. (initialize_w32_display): Initialize mouse-highlight data. src/w32inevt.c: Include termchar.h and window.h. (do_mouse_event): Support mouse-autoselect-window. When the mouse moves, call note_mouse_highlight. If help_echo changed, call gen_help_event to produce help-echo message in the echo area. Call clear_mouse_face if mouse_face_hidden is set in the mouse highlight info. etc/NEWS: Describe the changes. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-05-25 20:24:58 +0000 +++ etc/NEWS 2012-05-26 12:14:56 +0000 @@ -313,6 +313,10 @@ *** --without-libxml2 omits support for libxml2, even if its presence is detected. +** When invoked with the -nw switch to run on the Windows text-mode terminal, +Emacs now supports mouse highlight, help-echo (in the echo area), and +mouse-autoselect-window. + * Installation Changes in Emacs 24.1 === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-26 08:30:49 +0000 +++ src/ChangeLog 2012-05-26 12:14:56 +0000 @@ -1,3 +1,21 @@ +2012-05-26 Eli Zaretskii + + Extend mouse support on W32 text-mode console. + * xdisp.c (draw_row_with_mouse_face): Call + tty_draw_row_with_mouse_face for WINDOWSNT as well. + + * w32console.c: Include window.h. + (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face): New + functions. + (initialize_w32_display): Initialize mouse-highlight data. + + * w32inevt.c: Include termchar.h and window.h. + (do_mouse_event): Support mouse-autoselect-window. When the mouse + moves, call note_mouse_highlight. If help_echo changed, call + gen_help_event to produce help-echo message in the echo area. + Call clear_mouse_face if mouse_face_hidden is set in the mouse + highlight info. + 2012-05-26 Paul Eggert * lread.c (read1): Simplify slightly to avoid an overflow warning === modified file 'src/w32console.c' --- src/w32console.c 2012-01-19 07:21:25 +0000 +++ src/w32console.c 2012-05-26 09:31:59 +0000 @@ -33,6 +33,7 @@ #include "coding.h" #include "disptab.h" #include "frame.h" +#include "window.h" #include "termhooks.h" #include "termchar.h" #include "dispextern.h" @@ -339,6 +340,84 @@ } } +/* Used for mouse highlight. */ +static void +w32con_write_glyphs_with_face (struct frame *f, register int x, register int y, + register struct glyph *string, register int len, + register int face_id) +{ + unsigned char *conversion_buffer; + struct coding_system *coding; + + if (len <= 0) + return; + + /* If terminal_coding does any conversion, use it, otherwise use + safe_terminal_coding. We can't use CODING_REQUIRE_ENCODING here + because it always return 1 if the member src_multibyte is 1. */ + coding = (FRAME_TERMINAL_CODING (f)->common_flags & CODING_REQUIRE_ENCODING_MASK + ? FRAME_TERMINAL_CODING (f) : &safe_terminal_coding); + /* We are going to write the entire block of glyphs in one go, as + they all have the same face. So this _is_ the last block. */ + coding->mode |= CODING_MODE_LAST_BLOCK; + + conversion_buffer = encode_terminal_code (string, len, coding); + if (coding->produced > 0) + { + DWORD filled, written; + /* Compute the character attributes corresponding to the face. */ + DWORD char_attr = w32_face_attributes (f, face_id); + COORD start_coords; + + start_coords.X = x; + start_coords.Y = y; + /* Set the attribute for these characters. */ + if (!FillConsoleOutputAttribute (cur_screen, char_attr, + coding->produced, start_coords, + &filled)) + DebPrint (("Failed writing console attributes: %d\n", GetLastError ())); + else + { + /* Write the characters. */ + if (!WriteConsoleOutputCharacter (cur_screen, conversion_buffer, + filled, start_coords, &written)) + DebPrint (("Failed writing console characters: %d\n", + GetLastError ())); + } + } +} + +/* Implementation of draw_row_with_mouse_face for W32 console. */ +void +tty_draw_row_with_mouse_face (struct window *w, struct glyph_row *row, + int start_hpos, int end_hpos, + enum draw_glyphs_face draw) +{ + int nglyphs = end_hpos - start_hpos; + struct frame *f = XFRAME (WINDOW_FRAME (w)); + struct tty_display_info *tty = FRAME_TTY (f); + int face_id = tty->mouse_highlight.mouse_face_face_id; + int pos_x, pos_y; + + if (end_hpos >= row->used[TEXT_AREA]) + nglyphs = row->used[TEXT_AREA] - start_hpos; + + pos_y = row->y + WINDOW_TOP_EDGE_Y (w); + pos_x = row->used[LEFT_MARGIN_AREA] + start_hpos + WINDOW_LEFT_EDGE_X (w); + + if (draw == DRAW_MOUSE_FACE) + w32con_write_glyphs_with_face (f, pos_x, pos_y, + row->glyphs[TEXT_AREA] + start_hpos, + nglyphs, face_id); + else if (draw == DRAW_NORMAL_TEXT) + { + COORD save_coords = cursor_coords; + + w32con_move_cursor (f, pos_y, pos_x); + write_glyphs (f, row->glyphs[TEXT_AREA] + start_hpos, nglyphs); + w32con_move_cursor (f, save_coords.Y, save_coords.X); + } +} static void w32con_delete_glyphs (struct frame *f, int n) @@ -570,6 +649,7 @@ initialize_w32_display (struct terminal *term) { CONSOLE_SCREEN_BUFFER_INFO info; + Mouse_HLInfo *hlinfo; term->rif = 0; /* No window based redisplay on the console. */ term->cursor_to_hook = w32con_move_cursor; @@ -600,6 +680,15 @@ term->judge_scroll_bars_hook = 0; term->frame_up_to_date_hook = 0; + /* Initialize the mouse-highlight data. */ + hlinfo = &term->display_info.tty->mouse_highlight; + hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1; + hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1; + hlinfo->mouse_face_face_id = DEFAULT_FACE_ID; + hlinfo->mouse_face_mouse_frame = NULL; + hlinfo->mouse_face_window = Qnil; + hlinfo->mouse_face_hidden = 0; + /* Initialize interrupt_handle. */ init_crit (); === modified file 'src/w32inevt.c' --- src/w32inevt.c 2012-01-19 07:21:25 +0000 +++ src/w32inevt.c 2012-05-26 11:58:19 +0000 @@ -35,8 +35,10 @@ #include "keyboard.h" #include "frame.h" #include "dispextern.h" +#include "window.h" #include "blockinput.h" #include "termhooks.h" +#include "termchar.h" #include "w32heap.h" #include "w32term.h" @@ -566,7 +568,7 @@ static void mouse_moved_to (int x, int y) { - /* If we're in the same place, ignore it */ + /* If we're in the same place, ignore it. */ if (x != movement_pos.X || y != movement_pos.Y) { SELECTED_FRAME ()->mouse_moved = 1; @@ -599,14 +601,63 @@ struct input_event *emacs_ev) { static DWORD button_state = 0; + static Lisp_Object last_mouse_window; DWORD but_change, mask; int i; if (event->dwEventFlags == MOUSE_MOVED) { - /* For movement events we just note that the mouse has moved - so that emacs will generate drag events. */ - mouse_moved_to (event->dwMousePosition.X, event->dwMousePosition.Y); + FRAME_PTR f = SELECTED_FRAME (); + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + int mx = event->dwMousePosition.X, my = event->dwMousePosition.Y; + + mouse_moved_to (mx, my); + + if (f->mouse_moved) + { + if (hlinfo->mouse_face_hidden) + { + hlinfo->mouse_face_hidden = 0; + clear_mouse_face (hlinfo); + } + + /* Generate SELECT_WINDOW_EVENTs when needed. */ + if (!NILP (Vmouse_autoselect_window)) + { + Lisp_Object mouse_window = window_from_coordinates (f, mx, my, + 0, 0); + /* A window will be selected only when it is not + selected now, and the last mouse movement event was + not in it. A minibuffer window will be selected iff + it is active. */ + if (WINDOWP (mouse_window) + && !EQ (mouse_window, last_mouse_window) + && !EQ (mouse_window, selected_window)) + { + struct input_event event; + + EVENT_INIT (event); + event.kind = SELECT_WINDOW_EVENT; + event.frame_or_window = mouse_window; + event.arg = Qnil; + event.timestamp = movement_time; + kbd_buffer_store_event (&event); + } + last_mouse_window = mouse_window; + } + else + last_mouse_window = Qnil; + + previous_help_echo_string = help_echo_string; + help_echo_string = help_echo_object = help_echo_window = Qnil; + help_echo_pos = -1; + note_mouse_highlight (f, mx, my); + /* If the contents of the global variable help_echo has + changed (inside note_mouse_highlight), generate a HELP_EVENT. */ + if (!NILP (help_echo_string) || !NILP (previous_help_echo_string)) + gen_help_event (help_echo_string, selected_frame, help_echo_window, + help_echo_object, help_echo_pos); + } return 0; } === modified file 'src/xdisp.c' --- src/xdisp.c 2012-05-25 18:19:24 +0000 +++ src/xdisp.c 2012-05-26 09:31:59 +0000 @@ -25832,7 +25832,7 @@ return; } #endif -#if defined (HAVE_GPM) || defined (MSDOS) +#if defined (HAVE_GPM) || defined (MSDOS) || defined (WINDOWSNT) tty_draw_row_with_mouse_face (w, row, start_hpos, end_hpos, draw); #endif } ------------------------------------------------------------ revno: 108375 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-05-26 01:30:49 -0700 message: * lread.c (read1): Simplify slightly to avoid an overflow warning with GCC 4.7.0 on x86-64. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-26 07:03:39 +0000 +++ src/ChangeLog 2012-05-26 08:30:49 +0000 @@ -1,3 +1,8 @@ +2012-05-26 Paul Eggert + + * lread.c (read1): Simplify slightly to avoid an overflow warning + with GCC 4.7.0 on x86-64. + 2012-05-26 Eli Zaretskii * bidi.c (bidi_mirror_char): Revert last change: an int is === modified file 'src/lread.c' --- src/lread.c 2012-05-25 19:27:58 +0000 +++ src/lread.c 2012-05-26 08:30:49 +0000 @@ -2986,19 +2986,14 @@ if (!NILP (Vpurify_flag) && NILP (Vdoc_file_name) && cancel) return make_number (0); - if (force_multibyte) - /* READ_BUFFER already contains valid multibyte forms. */ - ; - else if (force_singlebyte) + if (! force_multibyte && force_singlebyte) { + /* READ_BUFFER contains raw 8-bit bytes and no multibyte + forms. Convert it to unibyte. */ nchars = str_as_unibyte ((unsigned char *) read_buffer, p - read_buffer); p = read_buffer + nchars; } - else - { - /* Otherwise, READ_BUFFER contains only ASCII. */ - } return make_specified_string (read_buffer, nchars, p - read_buffer, (force_multibyte ------------------------------------------------------------ revno: 108374 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-05-26 10:03:39 +0300 message: Revert last change in bidi.c. src/bidi.c (bidi_mirror_char): Revert last change: an int is definitely wide enough here. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-25 20:30:19 +0000 +++ src/ChangeLog 2012-05-26 07:03:39 +0000 @@ -1,3 +1,8 @@ +2012-05-26 Eli Zaretskii + + * bidi.c (bidi_mirror_char): Revert last change: an int is + definitely wide enough here. + 2012-05-25 Paul Eggert Fix integer width and related bugs (Bug#9874). === modified file 'src/bidi.c' --- src/bidi.c 2012-04-09 22:54:59 +0000 +++ src/bidi.c 2012-05-26 07:03:39 +0000 @@ -204,7 +204,7 @@ val = CHAR_TABLE_REF (bidi_mirror_table, c); if (INTEGERP (val)) { - EMACS_INT v = XINT (val); + int v = XINT (val); if (v < 0 || v > MAX_CHAR) abort (); ------------------------------------------------------------ revno: 108373 fixes bug(s): http://debbugs.gnu.org/11560 author: Aaron S. Hawley committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-25 19:40:47 -0700 message: * lisp/thingatpt.el (forward-same-syntax): Handle no ARG case. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-26 02:34:16 +0000 +++ lisp/ChangeLog 2012-05-26 02:40:47 +0000 @@ -1,3 +1,7 @@ +2012-05-26 Aaron S. Hawley + + * thingatpt.el (forward-same-syntax): Handle no ARG case. (Bug#11560) + 2012-05-26 Glenn Morris * progmodes/cc-mode.el (auto-mode-alist): Fix typo. === modified file 'lisp/thingatpt.el' --- lisp/thingatpt.el 2012-01-19 07:21:25 +0000 +++ lisp/thingatpt.el 2012-05-26 02:40:47 +0000 @@ -457,6 +457,7 @@ With prefix argument ARG, do it ARG times if positive, or move backwards ARG times if negative." (interactive "p") + (or arg (setq arg 1)) (while (< arg 0) (skip-syntax-backward (char-to-string (char-syntax (char-before)))) ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.