Now on revision 108131. ------------------------------------------------------------ revno: 108131 [merge] committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-05-05 12:35:47 +0800 message: Merge from emacs-24; up to r107969 diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-05-04 23:16:47 +0000 +++ doc/emacs/ChangeLog 2012-05-05 04:32:58 +0000 @@ -1,3 +1,44 @@ +2012-05-05 Glenn Morris + + * custom.texi (Customization Groups, Custom Themes, Examining): + Improve page breaks. + + * rmail.texi (Rmail Display): Use example rather than smallexample. + + * calendar.texi: Convert inforefs to refs. + + * dired.texi (Dired Enter): Improve page break. + + * abbrevs.texi (Abbrev Concepts): Copyedits. + + * maintaining.texi (Registering, Tag Syntax): + Tweak line and page breaks. + + * programs.texi (Programs, Electric C): Copyedits. + (Program Modes): Add xref to Fortran. + (Left Margin Paren): Remove what was (oddly enough) the only use + of defvar in the entire Emacs manual. + (Hungry Delete): Remove footnote about ancient Emacs version. + (Other C Commands): Use example rather than smallexample. + + * text.texi (Pages, Filling, Foldout, Org Mode, HTML Mode) + (Nroff Mode, Enriched Indentation, Table Rows and Columns): + Tweak line and page breaks. + + * modes.texi (Major Modes, Minor Modes): Reword to improve page-breaks. + (Major Modes): Use example rather than smallexample. + + * mule.texi (Output Coding): Reword to improve page-breaks. + + * frames.texi (Fonts): Tweak line and page breaks. + Use example rather than smallexample. Change cross-reference. + (Text-Only Mouse): Fix xref. + + * buffers.texi (Buffers, Kill Buffer, Several Buffers) + (Indirect Buffers): Tweak line- and page-breaks. + + * fixit.texi (Fixit, Undo): Reword to improve page-breaks. + 2012-05-04 Glenn Morris * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. === modified file 'doc/emacs/abbrevs.texi' --- doc/emacs/abbrevs.texi 2012-04-10 06:54:43 +0000 +++ doc/emacs/abbrevs.texi 2012-05-05 04:32:58 +0000 @@ -37,12 +37,12 @@ @node Abbrev Concepts @section Abbrev Concepts - An @dfn{abbrev} is a word which has been defined to @dfn{expand} into + An @dfn{abbrev} is a word that has been defined to @dfn{expand} into a specified @dfn{expansion}. When you insert a word-separator character following the abbrev, that expands the abbrev---replacing the abbrev with its expansion. For example, if @samp{foo} is defined as an abbrev -expanding to @samp{find outer otter}, then you can insert @samp{find -outer otter.} into the buffer by typing @kbd{f o o .}. +expanding to @samp{find outer otter}, then typing @kbd{f o o .} will +insert @samp{find outer otter.}. @findex abbrev-mode @cindex Abbrev mode @@ -61,10 +61,9 @@ definition for the current major mode overrides a global definition. You can define abbrevs interactively during the editing session, -irrespective of whether Abbrev mode is enabled. You -can also save lists of abbrev definitions in files for use in later -sessions. Some users keep extensive lists of abbrevs that they load -in every session. +irrespective of whether Abbrev mode is enabled. You can also save +lists of abbrev definitions in files, which you can the reload for use +in later sessions. @node Defining Abbrevs @section Defining Abbrevs === modified file 'doc/emacs/arevert-xtra.texi' --- doc/emacs/arevert-xtra.texi 2012-04-10 06:54:43 +0000 +++ doc/emacs/arevert-xtra.texi 2012-05-05 04:32:58 +0000 @@ -109,6 +109,7 @@ In addition, it @emph{must} have a @code{buffer-stale-function}. +@c FIXME only defvar in all of doc/emacs! @defvar buffer-stale-function The value of this variable is a function to check whether a non-file buffer needs reverting. This should be a function with one optional === modified file 'doc/emacs/buffers.texi' --- doc/emacs/buffers.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/buffers.texi 2012-05-05 04:32:58 +0000 @@ -46,7 +46,7 @@ For typical 64-bit machines, this maximum buffer size is @math{2^61 - 2} bytes, or about 2 EiB. For typical 32-bit machines, the maximum is usually @math{2^29 - 2} bytes, or about 512 MiB. Buffer sizes are -also limited by the amount of memory present in the system. +also limited by the amount of memory in the system. @menu * Select Buffer:: Creating a new buffer or reselecting an old one. @@ -326,8 +326,8 @@ @cindex Midnight mode @vindex midnight-mode @vindex midnight-hook - You can also have this buffer purging done for you, every day at -midnight, by enabling Midnight mode. Midnight mode operates each day + You can also have this buffer purging done for you, once a day, +by enabling Midnight mode. Midnight mode operates each day at midnight; at that time, it runs @code{clean-buffer-list}, or whichever functions you have placed in the normal hook @code{midnight-hook} (@pxref{Hooks}). To enable Midnight mode, use @@ -361,7 +361,7 @@ The buffer menu is a read-only buffer, and can be changed only through the special commands described in this section. The usual -Emacs cursor motion commands can be used in this buffer. The +cursor motion commands can be used in this buffer. The following commands apply to the buffer described on the current line: @table @kbd @@ -476,13 +476,13 @@ An @dfn{indirect buffer} shares the text of some other buffer, which is called the @dfn{base buffer} of the indirect buffer. In some ways it -is the analogue, for buffers, of a symbolic link between files. +is a buffer analogue of a symbolic link between files. @table @kbd @findex make-indirect-buffer @item M-x make-indirect-buffer @key{RET} @var{base-buffer} @key{RET} @var{indirect-name} @key{RET} -Create an indirect buffer named @var{indirect-name} whose base buffer -is @var{base-buffer}. +Create an indirect buffer named @var{indirect-name} with base buffer +@var{base-buffer}. @findex clone-indirect-buffer @item M-x clone-indirect-buffer @key{RET} Create an indirect buffer that is a twin copy of the current buffer. @@ -520,10 +520,9 @@ @code{clone-indirect-buffer-hook} after creating the indirect buffer. The more general way to make an indirect buffer is with the command -@kbd{M-x make-indirect-buffer}. It creates an indirect buffer from -buffer @var{base-buffer}, under the name @var{indirect-name}. It -prompts for both @var{base-buffer} and @var{indirect-name} using the -minibuffer. +@kbd{M-x make-indirect-buffer}. It creates an indirect buffer +named @var{indirect-name} from a buffer @var{base-buffer}, prompting for +both using the minibuffer. @node Buffer Convenience @section Convenience Features and Customization of Buffer Handling === modified file 'doc/emacs/calendar.texi' --- doc/emacs/calendar.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/calendar.texi 2012-05-05 04:32:58 +0000 @@ -26,8 +26,8 @@ @iftex This chapter describes the basic calendar features. -@inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information -about more specialized features. +For more advanced topics, +@pxref{Advanced Calendar/Diary Usage,,, emacs-xtra, Specialized Emacs Features}. @end iftex @menu @@ -489,7 +489,7 @@ calendar, use the @kbd{x} command. This displays the dates that are holidays in a different face. @iftex -@inforef{Calendar Customizing, calendar-holiday-marker, emacs-xtra}. +@xref{Calendar Customizing,,, emacs-xtra, Specialized Emacs Features}. @end iftex @ifnottex @xref{Calendar Customizing, calendar-holiday-marker}. @@ -1102,7 +1102,7 @@ the @kbd{m} command. This marks the dates that have diary entries in a different face. @iftex -@inforef{Calendar Customizing, diary-entry-marker, emacs-xtra}. +@xref{Calendar Customizing,,, emacs-xtra, Specialized Emacs Features}. @end iftex @ifnottex @xref{Calendar Customizing, diary-entry-marker}. @@ -1126,7 +1126,7 @@ few days as well; the variable @code{diary-number-of-entries} specifies how many days to include. @iftex -@inforef{Diary Customizing,, emacs-xtra}. +@xref{Diary Customizing,,, emacs-xtra, Specialized Emacs Features}. @end iftex @ifnottex @xref{Diary Customizing, diary-number-of-entries}. @@ -1270,7 +1270,7 @@ commands are in the next section (@pxref{Special Diary Entries}). Entries can also be based on non-Gregorian calendars. @iftex -@inforef{Non-Gregorian Diary,, emacs-xtra}. +@xref{Non-Gregorian Diary,,, emacs-xtra, Specialized Emacs Features}. @end iftex @ifnottex @xref{Non-Gregorian Diary}. @@ -1438,7 +1438,7 @@ marking the entry in the calendar. Most generally, sexp diary entries can perform arbitrary computations to determine when they apply. @iftex -@inforef{Sexp Diary Entries,, emacs-xtra}. +@xref{Sexp Diary Entries,,, emacs-xtra, Specialized Emacs Features}. @end iftex @ifnottex @xref{Sexp Diary Entries}. @@ -1512,7 +1512,7 @@ @code{appt-display-diary} to @code{nil}. The appointments list is also updated whenever the diary file (or a file it includes; see @iftex -@inforef{Fancy Diary Display,, emacs-xtra}) +@ref{Fancy Diary Display,,, emacs-xtra, Specialized Emacs Features}) @end iftex @ifnottex @ref{Fancy Diary Display}) @@ -1576,7 +1576,7 @@ You can use an @code{#include} directive to add the import file contents to the main diary file, if these are different files. @iftex -@inforef{Fancy Diary Display,, emacs-xtra}. +@xref{Fancy Diary Display,,, emacs-xtra, Specialized Emacs Features}. @end iftex @ifnottex @xref{Fancy Diary Display}. === modified file 'doc/emacs/custom.texi' --- doc/emacs/custom.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/custom.texi 2012-05-05 04:32:58 +0000 @@ -79,7 +79,7 @@ @c we want the buffer example to all be on one page, but unfortunately @c that's quite a bit of text, so force all space to the bottom. -@page +@c @page @smallexample @group To apply changes, use the Save or Set buttons. @@ -628,7 +628,7 @@ @findex disable-theme You can enable a specific Custom theme in the current Emacs session by typing @kbd{M-x load-theme}. This prompts for a theme name, loads -the theme from the theme file, and enables the theme. If a theme file +the theme from the theme file, and enables it. If a theme file has been loaded before, you can enable the theme without loading its file by typing @kbd{M-x enable-theme}. To disable a Custom theme, type @kbd{M-x disable-theme}. @@ -636,7 +636,7 @@ @findex describe-theme To see a description of a Custom theme, type @kbd{?} on its line in the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme} -anywhere in Emacs and enter the theme name in the minibuffer. +anywhere in Emacs and enter the theme name. @node Creating Custom Themes @subsection Creating Custom Themes @@ -762,7 +762,7 @@ @noindent displays something like this: -@smallexample +@example fill-column is a variable defined in `C source code'. fill-column's value is 70 Local in buffer custom.texi; global value is 70 @@ -777,7 +777,7 @@ Interactively, you can set the buffer local value using C-x f. You can customize this variable. -@end smallexample +@end example @noindent The line that says ``You can customize the variable'' indicates that === modified file 'doc/emacs/dired.texi' --- doc/emacs/dired.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/dired.texi 2012-05-05 04:32:58 +0000 @@ -104,7 +104,7 @@ @findex dired-other-frame @kindex C-x 5 d To display the Dired buffer in another window, use @kbd{C-x 4 d} -(@code{dired-other-window}) instead of @kbd{C-x d}. @kbd{C-x 5 d} +(@code{dired-other-window}). @kbd{C-x 5 d} (@code{dired-other-frame}) displays the Dired buffer in a separate frame. === modified file 'doc/emacs/fixit.texi' --- doc/emacs/fixit.texi 2012-04-14 08:25:06 +0000 +++ doc/emacs/fixit.texi 2012-05-05 04:32:58 +0000 @@ -8,9 +8,9 @@ @cindex mistakes, correcting In this chapter we describe commands that are useful when you catch -a mistake while editing. The most fundamental command for correcting -erroneous editing is the undo command @kbd{C-/} (which is also bound -to @kbd{C-x u} and @kbd{C-_}). This undoes a single command, or a +a mistake while editing. The most fundamental of these commands is +the undo command @kbd{C-/} (also bound to @kbd{C-x u} and @kbd{C-_}). +This undoes a single command, or a part of a command (as in the case of @code{query-replace}), or several consecutive character insertions. Consecutive repetitions of @kbd{C-/} undo earlier and earlier changes, back to the limit of the @@ -60,7 +60,6 @@ to @kbd{C-_} because typing @kbd{C-/} on some text terminals actually enters @kbd{C-_}.}. This undoes the most recent change in the buffer, and moves point back to where it was before that change. - Consecutive repetitions of @kbd{C-/} (or its aliases) undo earlier and earlier changes in the current buffer. If all the recorded changes have already been undone, the undo command signals an error. @@ -75,7 +74,7 @@ harmlessly breaks the sequence of undoing; then type @kbd{C-/} to undo the undo command. - On the other hand, if you want to resume undoing, without redoing + Alternatively, if you want to resume undoing, without redoing previous undo commands, use @kbd{M-x undo-only}. This is like @code{undo}, but will not redo changes you have just undone. === modified file 'doc/emacs/frames.texi' --- doc/emacs/frames.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/frames.texi 2012-05-05 04:32:58 +0000 @@ -492,13 +492,13 @@ @samp{Options} menu. @item -Add a line to your init file (@pxref{Init File}), modifying the -variable @code{default-frame-alist} to specify the @code{font} -parameter (@pxref{Creating Frames}), like this: +Add a line to your init file, modifying the variable +@code{default-frame-alist} to specify the @code{font} parameter +(@pxref{Frame Parameters}), like this: -@smallexample +@example (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10")) -@end smallexample +@end example @cindex X defaults file @cindex X resources file @@ -506,14 +506,14 @@ Add an @samp{emacs.font} X resource setting to your X resource file, like this: -@smallexample +@example emacs.font: DejaVu Sans Mono-12 -@end smallexample +@end example @noindent You must restart X, or use the @command{xrdb} command, for the X -resources file to take effect. @xref{Resources}. When specifying a -font in your X resources file, you should not quote it. +resources file to take effect. @xref{Resources}. Do not quote +font names in X resource files. @item If you are running Emacs on the GNOME desktop, you can tell Emacs to @@ -535,9 +535,9 @@ first is to use a @dfn{Fontconfig pattern}. Fontconfig patterns have the following form: -@smallexample +@example @var{fontname}[-@var{fontsize}][:@var{name1}=@var{values1}][:@var{name2}=@var{values2}]... -@end smallexample +@end example @noindent Within this format, any of the elements in braces may be omitted. @@ -577,13 +577,13 @@ @noindent Here are some examples of Fontconfig patterns: -@smallexample +@example Monospace Monospace-12 Monospace-12:bold DejaVu Sans Mono:bold:italic Monospace-12:weight=bold:slant=italic -@end smallexample +@end example For a more detailed description of Fontconfig patterns, see the Fontconfig manual, which is distributed with Fontconfig and available @@ -593,9 +593,9 @@ The second way to specify a font is to use a @dfn{GTK font pattern}. These have the syntax -@smallexample +@example @var{fontname} [@var{properties}] [@var{fontsize}] -@end smallexample +@end example @noindent where @var{fontname} is the family name, @var{properties} is a list of @@ -619,10 +619,10 @@ @noindent Here are some examples of GTK font patterns: -@smallexample +@example Monospace 12 Monospace Bold Italic 12 -@end smallexample +@end example @cindex XLFD @cindex X Logical Font Description @@ -631,9 +631,9 @@ specifying fonts under X. Each XLFD consists of fourteen words or numbers, separated by dashes, like this: -@smallexample +@example -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1 -@end smallexample +@end example @noindent A wildcard character (@samp{*}) in an XLFD matches any sequence of @@ -644,10 +644,10 @@ Case is insignificant in an XLFD. The syntax for an XLFD is as follows: -@smallexample +@example -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{} @dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding} -@end smallexample +@end example @noindent The entries have the following meanings: @@ -706,9 +706,9 @@ instead of a normal font specification. For instance, @samp{6x13} is equivalent to -@smallexample +@example -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1 -@end smallexample +@end example @cindex client-side fonts @cindex server-side fonts @@ -1160,9 +1160,9 @@ running on your system in order for this to work. @iftex -@pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}, +@xref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}, @end iftex @ifnottex -@pxref{MS-DOS Mouse}, +@xref{MS-DOS Mouse}, @end ifnottex for information about mouse support on MS-DOS. === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/maintaining.texi 2012-05-05 04:32:58 +0000 @@ -711,7 +711,7 @@ On a locking-based version control system (@pxref{VCS Merging}), registering a file leaves it unlocked and read-only. Type @kbd{C-x v -v} if you wish to start editing it. +v} to start editing it. @node Old Revisions @subsection Examining And Comparing Old Revisions @@ -1729,7 +1729,7 @@ @code{bidule}. @item -In assembler code, labels appearing at the beginning of a line, +In assembler code, labels appearing at the start of a line, followed by a colon, are tags. @item === modified file 'doc/emacs/modes.texi' --- doc/emacs/modes.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/modes.texi 2012-05-05 04:32:58 +0000 @@ -65,8 +65,7 @@ first visit a file or create a buffer (@pxref{Choosing Modes}). You can explicitly select a new major mode by using an @kbd{M-x} command. Take the name of the mode and add @code{-mode} to get the name of the -command to select that mode. Thus, you can enter Lisp mode with -@kbd{M-x lisp-mode}. +command to select that mode (e.g., @kbd{M-x lisp-mode} enters Lisp mode). @vindex major-mode The value of the buffer-local variable @code{major-mode} is a symbol @@ -81,9 +80,9 @@ Customization}), or by adding a line like this to your init file (@pxref{Init File}): -@smallexample +@example (setq-default major-mode 'text-mode) -@end smallexample +@end example @noindent If the default value of @code{major-mode} is @code{nil}, the major @@ -216,8 +215,7 @@ @findex linum-mode @cindex Linum mode @item -Linum mode displays each line's line number in the window's left -margin. Its mode command is @code{linum-mode}. +Linum mode displays each line's line number in the window's left margin. @item Outline minor mode provides similar facilities to the major mode === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2012-04-28 07:45:03 +0000 +++ doc/emacs/mule.texi 2012-05-05 04:32:58 +0000 @@ -991,12 +991,11 @@ behaves a bit differently. It additionally checks whether the @c What determines this? most-preferred coding system is recommended for use in MIME messages; -if not, Emacs tells you that the most-preferred coding system is not -recommended and prompts you for another coding system. This is so you -won't inadvertently send a message encoded in a way that your -recipient's mail software will have difficulty decoding. (You can -still use an unsuitable coding system if you type its name in response -to the question.) +if not, it informs you of this fact and prompts you for another coding +system. This is so you won't inadvertently send a message encoded in +a way that your recipient's mail software will have difficulty +decoding. (You can still use an unsuitable coding system if you enter +its name at the prompt.) @c It seems that select-message-coding-system does this. @c Both sendmail.el and smptmail.el call it; i.e. smtpmail.el still === modified file 'doc/emacs/programs.texi' --- doc/emacs/programs.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/programs.texi 2012-05-05 04:32:58 +0000 @@ -9,7 +9,7 @@ @cindex program editing This chapter describes Emacs features for facilitating editing -programs. Some of these features can: +programs. Some of the things these features can do are: @itemize @bullet @item @@ -128,8 +128,7 @@ @ifnotinfo The Emacs distribution contains Info manuals for the major modes for Ada, C/C++/Objective C/Java/Corba IDL/Pike/AWK, and IDLWAVE. For -Fortran mode, see the ``Fortran'' section in the Info version of the -Emacs manual, which is not included in this printed version. +Fortran mode, @pxref{Fortran,,, emacs-xtra, Specialized Emacs Features}. @end ifnotinfo @node Defuns @@ -186,15 +185,13 @@ highlights confusing opening delimiters (those that ought to be quoted) in bold red. +@vindex open-paren-in-column-0-is-defun-start If you need to override this convention, you can do so by setting -this user option: - -@defvar open-paren-in-column-0-is-defun-start +the variable @code{open-paren-in-column-0-is-defun-start}. If this user option is set to @code{t} (the default), opening -parentheses or braces at column zero always start defuns. When it's +parentheses or braces at column zero always start defuns. When it is @code{nil}, defuns are found by searching for parens or braces at the outermost level. -@end defvar Usually, you should leave this option at its default value of @code{t}. If your buffer contains parentheses or braces in column @@ -1553,8 +1550,8 @@ @kindex C-c C-l @r{(C mode)} @findex c-toggle-electric-state Toggle electric action (@code{c-toggle-electric-state}). With a -prefix argument, this command enables electric action if the argument -is positive, disables it if it is negative. +positive prefix argument, this command enables electric action, with a +negative one it disables it. @end table Electric characters insert newlines only when, in addition to the @@ -1591,8 +1588,7 @@ @findex c-hungry-delete-backwards @kindex C-c C-@key{DEL} (C Mode) @kindex C-c @key{DEL} (C Mode) -@code{c-hungry-delete-backwards}---Delete the entire block of whitespace -preceding point. +Delete the entire block of whitespace preceding point (@code{c-hungry-delete-backwards}). @item C-c C-d @itemx C-c C-@key{DELETE} @@ -1601,8 +1597,7 @@ @kindex C-c C-d (C Mode) @kindex C-c C-@key{DELETE} (C Mode) @kindex C-c @key{DELETE} (C Mode) -@code{c-hungry-delete-forward}---Delete the entire block of whitespace -following point. +Delete the entire block of whitespace after point (@code{c-hungry-delete-forward}). @end table As an alternative to the above commands, you can enable @dfn{hungry @@ -1615,9 +1610,7 @@ @item M-x c-toggle-hungry-state @findex c-toggle-hungry-state Toggle the hungry-delete feature -(@code{c-toggle-hungry-state})@footnote{This command had the binding -@kbd{C-c C-d} in earlier versions of Emacs. @kbd{C-c C-d} is now -bound to @code{c-hungry-delete-forward}.}. With a prefix argument, +(@code{c-toggle-hungry-state}). With a prefix argument, this command turns the hungry-delete feature on if the argument is positive, and off if it is negative. @end table @@ -1656,11 +1649,11 @@ @kbd{C-j}. We use @code{c-initialization-hook} here to make sure the keymap is loaded before we try to change it. -@smallexample +@example (defun my-bind-clb () (define-key c-mode-base-map "\C-j" 'c-context-line-break)) (add-hook 'c-initialization-hook 'my-bind-clb) -@end smallexample +@end example @item C-M-h Put mark at the end of a function definition, and put point at the === modified file 'doc/emacs/rmail.texi' --- doc/emacs/rmail.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/rmail.texi 2012-05-05 04:32:58 +0000 @@ -1232,9 +1232,9 @@ Address mode: @c FIXME goto-addr.el commentary says to use goto-address instead. -@smallexample +@example (add-hook 'rmail-show-message-hook 'goto-address-mode) -@end smallexample +@end example @noindent Then you can browse these URLs by clicking on them with @kbd{Mouse-2} === modified file 'doc/emacs/text.texi' --- doc/emacs/text.texi 2012-04-10 06:54:43 +0000 +++ doc/emacs/text.texi 2012-05-05 04:32:58 +0000 @@ -379,8 +379,8 @@ following page delimiter in the region is to ensure that. A numeric argument to @kbd{C-x C-p} specifies which page to go to, -relative to the current one. Zero means the current page. One means -the next page, and @minus{}1 means the previous one. +relative to the current one. Zero means the current page, one +the next page, and @minus{}1 the previous one. @kindex C-x l @findex count-lines-page @@ -412,7 +412,7 @@ specified width. Emacs does filling in two ways. In Auto Fill mode, inserting text with self-inserting characters also automatically fills it. There are also explicit fill commands that you can use when editing -text leaves it unfilled. +text. @menu * Auto Fill:: Auto Fill mode breaks long lines automatically. @@ -1240,6 +1240,7 @@ @end itemize @end table +@c FIXME not marked as a user variable @vindex foldout-mouse-modifiers You can specify different modifier keys (instead of @kbd{Control-Meta-}) by setting @code{foldout-mouse-modifiers}; but if @@ -1248,7 +1249,7 @@ To use the Foldout package, you can type @kbd{M-x load-library @key{RET} foldout @key{RET}}; or you can arrange for to do that -automatically by putting this in your init file (@pxref{Init File}): +automatically by putting the following in your init file: @example (eval-after-load "outline" '(require 'foldout)) @@ -1307,8 +1308,8 @@ if invoked on a body line. The following subsections give basic instructions for using Org mode -as an organizer and as an authoring system. @xref{Top,The Org Mode -Manual,,org, The Org Manual}, for details. +as an organizer and as an authoring system. For details, @pxref{Top, +The Org Mode Manual, Introduction, org, The Org Manual}. @menu * Org Organizer:: Managing TODO lists and agendas. @@ -1886,8 +1887,8 @@ @kindex C-c / @r{(SGML mode)} @findex sgml-close-tag Insert a close tag for the innermost unterminated tag -(@code{sgml-close-tag}). If called from within a tag or a comment, -close this element instead of inserting a close tag. +(@code{sgml-close-tag}). If called within a tag or a comment, +close it instead of inserting a close tag. @item C-c 8 @kindex C-c 8 @r{(SGML mode)} @@ -1948,10 +1949,10 @@ @cindex nroff @findex nroff-mode @vindex nroff-mode-hook - Nroff mode is a major mode derived from Text mode, which is + Nroff mode, a major mode derived from Text mode, is specialized for editing nroff files (e.g.@: Unix man pages). Type @kbd{M-x nroff-mode} to enter this mode. Entering Nroff mode runs the -hook @code{text-mode-hook}, followed by @code{nroff-mode-hook} +hook @code{text-mode-hook}, then @code{nroff-mode-hook} (@pxref{Hooks}). In Nroff mode, nroff command lines are treated as paragraph @@ -2209,7 +2210,7 @@ These margins also affect fill commands such as @kbd{M-q} (@pxref{Filling}). - The Indentation submenu of Text Properties provides four commands + The Indentation submenu of Text Properties offers commands for specifying indentation: @table @code @@ -2292,10 +2293,9 @@ still indent the left margin. @end table +@vindex default-justification You can also specify justification styles using the Justification submenu in the Text Properties menu. - -@vindex default-justification The default justification style is specified by the per-buffer variable @code{default-justification}. Its value should be one of the symbols @code{left}, @code{right}, @code{full}, @code{center}, or @@ -2578,10 +2578,12 @@ @findex table-insert-row @kbd{M-x table-insert-row} inserts a row of cells before the current table row. The current row, together with point, is pushed down past -the new row. To insert rows after the last row at the bottom of a +the new row. To insert a row after the last row at the bottom of a table, invoke this command with point below the table, just below the -bottom edge. A numeric prefix argument specifies the number of rows -to insert. +bottom edge. You can insert more than one row at a time by using a +numeric prefix argument. + +@c A numeric prefix argument specifies the number of rows to insert. @findex table-insert-column Similarly, @kbd{M-x table-insert-column} inserts a column of cells === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2012-05-04 06:45:03 +0000 +++ doc/lispintro/ChangeLog 2012-05-05 04:32:58 +0000 @@ -1,3 +1,12 @@ +2012-05-05 Glenn Morris + + * emacs-lisp-intro.texi (Making Errors): Don't mention Emacs 20. + (Void Function, Wrong Type of Argument, Recursion with list) + (Simple Extension): Assume a non-ancient Emacs. + (Void Variable, Switching Buffers): Improve page breaks. + + * emacs-lisp-intro.texi: Update GNU Press contact details. + 2012-05-04 Glenn Morris * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2012-04-28 18:26:17 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2012-05-05 04:32:58 +0000 @@ -234,27 +234,27 @@ @iftex Published by the:@* -GNU Press, @hfill @uref{http://www.gnupress.org}@* -a division of the @hfill General: @email{press@@gnu.org}@* -Free Software Foundation, Inc. @hfill Orders:@w{ } @email{sales@@gnu.org}@* -51 Franklin Street, Fifth Floor @hfill Tel: +1 (617) 542-5942@* -Boston, MA 02110-1301 USA @hfill Fax: +1 (617) 542-2652@* +GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@* +a division of the @hfill email: @email{sales@@fsf.org}@* +Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* +51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* +Boston, MA 02110-1301 USA @end iftex @ifnottex Published by the: @example -GNU Press, Website: http://www.gnupress.org -a division of the General: press@@gnu.org -Free Software Foundation, Inc. Orders: sales@@gnu.org -51 Franklin Street, Fifth Floor Tel: +1 (617) 542-5942 -Boston, MA 02110-1301 USA Fax: +1 (617) 542-2652 +GNU Press, http://www.fsf.org/campaigns/gnu-press/ +a division of the email: sales@@fsf.org +Free Software Foundation, Inc. Tel: +1 (617) 542-5942 +51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 +Boston, MA 02110-1301 USA @end example @end ifnottex @sp 1 -@c Printed copies are available for $30 each.@* +@c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@* ISBN 1-882114-43-4 Permission is granted to copy, distribute and/or modify this document @@ -1426,6 +1426,7 @@ (this is an unquoted list) @end smallexample +@ignore @noindent What you see depends on which version of Emacs you are running. GNU Emacs version 22 provides more information than version 20 and before. @@ -1436,6 +1437,10 @@ @noindent In GNU Emacs version 22, a @file{*Backtrace*} window will open up and you will see the following in it: +@end ignore + +A @file{*Backtrace*} window will open up and you should see the +following in it: @smallexample @group @@ -1514,19 +1519,24 @@ have a set of instructions for the computer to obey and those instructions must be to add the numbers that follow the @code{+}. -@need 1250 -In GNU Emacs version 20, and in earlier versions, you will see only -one line of error message; it will appear in the echo area and look -like this: +It is possible to prevent Emacs entering the debugger in cases like +this. We do not explain how to do that here, but we will mention what +the result looks like, because you may encounter a similar situation +if there is a bug in some Emacs code that you are using. In such +cases, you will see only one line of error message; it will appear in +the echo area and look like this: @smallexample Symbol's function definition is void:@: this @end smallexample @noindent +@ignore (Also, your terminal may beep at you---some do, some don't; and others -blink. This is just a device to get your attention.) The message goes -away as soon as you type another key, even just to move the cursor. +blink. This is just a device to get your attention.) +@end ignore +The message goes away as soon as you type a key, even just to +move the cursor. We know the meaning of the word @samp{Symbol}. It refers to the first atom of the list, the word @samp{this}. The word @samp{function} @@ -1862,8 +1872,7 @@ @need 1250 @noindent -In GNU Emacs version 22, you will create a @file{*Backtrace*} buffer -that says: +You will create a @file{*Backtrace*} buffer that says: @smallexample @group @@ -1929,7 +1938,7 @@ @end smallexample @noindent -(As with the other times we entered the debugger, you can quit by +(Again, you can quit the debugger by typing @kbd{q} in the @file{*Backtrace*} buffer.) This backtrace is different from the very first error message we saw, @@ -1943,7 +1952,7 @@ variable instead of the function definition. We did this by placing the cursor right after the symbol rather than after the parenthesis of the enclosing list as we did before. As a consequence, the Lisp interpreter -evaluated the preceding s-expression, which in this case was the +evaluated the preceding s-expression, which in this case was @code{+} by itself. Since @code{+} does not have a value bound to it, just the function @@ -2183,8 +2192,7 @@ could not carry out its addition. @need 1250 -In GNU Emacs version 22, you will create and enter a -@file{*Backtrace*} buffer that says: +You will create and enter a @file{*Backtrace*} buffer that says: @noindent @smallexample @@ -2912,7 +2920,7 @@ default buffer was @file{*scratch*}, or if it was different, then you typed just part of the name, such as @code{*sc}, pressed your @kbd{TAB} key to cause it to expand to the full name, and then typed -your @kbd{RET} key.} when prompted in the minibuffer for the name of +@kbd{RET}.} when prompted in the minibuffer for the name of the buffer to which you wanted to switch. The keystrokes, @kbd{C-x b}, cause the Lisp interpreter to evaluate the interactive function @code{switch-to-buffer}. As we said before, this is how Emacs works: @@ -2922,10 +2930,7 @@ By writing @code{switch-to-buffer} in an expression, and giving it a buffer to switch to, we can switch buffers just the way @kbd{C-x b} -does. - -@need 1000 -Here is the Lisp expression: +does: @smallexample (switch-to-buffer (other-buffer)) @@ -7722,6 +7727,7 @@ @section @code{zap-to-char} @findex zap-to-char +@c FIXME remove obsolete stuff The @code{zap-to-char} function changed little between GNU Emacs version 19 and GNU Emacs version 22. However, @code{zap-to-char} calls another function, @code{kill-region}, which enjoyed a major @@ -11508,9 +11514,10 @@ of numbers can be written recursively. Here is the code, including an expression to set the value of the variable @code{animals} to a list. -If you are using GNU Emacs 20 or before, this example must be copied -to the @file{*scratch*} buffer and each expression must be evaluated -there. Use @kbd{C-u C-x C-e} to evaluate the +If you are reading this in Info in Emacs, you can evaluate this +expression directly in Info. Otherwise, you must copy the example +to the @file{*scratch*} buffer and evaluate each expression there. +Use @kbd{C-u C-x C-e} to evaluate the @code{(print-elements-recursively animals)} expression so that the results are printed in the buffer; otherwise the Lisp interpreter will try to squeeze the results into the one line of the echo area. @@ -11519,9 +11526,6 @@ of the @code{print-elements-recursively} function, before the comment. Otherwise, the Lisp interpreter will try to evaluate the comment. -If you are using a more recent version of Emacs, you can evaluate this -expression directly in Info. - @findex print-elements-recursively @smallexample @group @@ -17949,7 +17953,7 @@ @end group @end smallexample -For example, in contrast to version 20, more recent versions blink +For example, recent versions blink their cursors by default. I hate such blinking, as well as other features, so I placed the following in my @file{.emacs} file@footnote{When I start instances of Emacs that do not load my === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-04 06:45:03 +0000 +++ doc/lispref/ChangeLog 2012-05-05 04:32:58 +0000 @@ -1,3 +1,24 @@ +2012-05-05 Glenn Morris + + * objects.texi (Process Type, Overlay Type): Tweak page-breaks. + + * intro.texi (Caveats): Copyedit. + (Lisp History): Convert inforef to xref. + (Lisp History, Printing Notation, Version Info): Improve page-breaks. + + * text.texi (Auto Filling): Don't mention Emacs 19. + + * commands.texi (Event Input Misc): Don't mention unread-command-char. + * numbers.texi (Predicates on Numbers): Don't mention Emacs 18. + + * elisp.texi (DATE): Forgot to change the month in 2012-04-21 change. + +2012-05-04 Glenn Morris + + * lists.texi (List-related Predicates, List Variables): + Tweak page-breaks. + (Sets And Lists): Convert inforef to xref. + 2012-05-04 Glenn Morris * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. === modified file 'doc/lispref/commands.texi' --- doc/lispref/commands.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/commands.texi 2012-05-05 04:32:58 +0000 @@ -2703,6 +2703,7 @@ individual events, which you can put in @code{unread-command-events}. @end defun +@ignore @defvar unread-command-char This variable holds a character to be read as command input. A value of -1 means ``empty''. @@ -2711,6 +2712,7 @@ @code{unread-command-events} instead; it exists only to support programs written for Emacs versions 18 and earlier. @end defvar +@end ignore @defun input-pending-p @cindex waiting for command key input === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-05-01 07:38:15 +0000 +++ doc/lispref/elisp.texi 2012-05-05 04:32:58 +0000 @@ -9,7 +9,7 @@ @c (See comments for EDITION in emacs.texi) @set VERSION 3.1 @include emacsver.texi -@set DATE July 2012 +@set DATE May 2012 @c in general, keep the following line commented out, unless doing a @c copy of this manual that will be published. The manual should go === modified file 'doc/lispref/intro.texi' --- doc/lispref/intro.texi 2012-05-02 07:20:29 +0000 +++ doc/lispref/intro.texi 2012-05-05 04:32:58 +0000 @@ -73,7 +73,7 @@ effort to write it up and send it in. Please reference any comments to the chapter name, section name, and function name, as appropriate, since page numbers and chapter and section numbers will change and we may have -trouble finding the text you are talking about. Also state the number +trouble finding the text you are talking about. Also state the version of the edition you are criticizing. @end iftex @ifnottex @@ -120,10 +120,10 @@ @pindex cl A certain amount of Common Lisp emulation is available via the -@file{cl} library. @inforef{Top, Overview, cl}. +@file{cl} library. @xref{Top,, Overview, cl, Common Lisp Extensions}. Emacs Lisp is not at all influenced by Scheme; but the GNU project has -an implementation of Scheme, called Guile. We use Guile in all new GNU +an implementation of Scheme, called Guile. We use it in all new GNU software that calls for extensibility. @node Conventions @@ -257,7 +257,7 @@ Examples in this manual indicate printed text with @samp{@print{}}, irrespective of where that text goes. The value returned by -evaluating the form (here @code{bar}) follows on a separate line with +evaluating the form follows on a separate line with @samp{@result{}}. @example @@ -510,8 +510,6 @@ unreleased test version. @end defvar - The following two variables have existed since Emacs version 19.23: - @defvar emacs-major-version The major version number of Emacs, as an integer. For Emacs version 23.1, the value is 23. === modified file 'doc/lispref/lists.texi' --- doc/lispref/lists.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/lists.texi 2012-05-05 04:32:58 +0000 @@ -87,7 +87,7 @@ whether it is a cons cell or is a list, or whether it is the distinguished object @code{nil}. (Many of these predicates can be defined in terms of the others, but they are used so often that it is -worth having all of them.) +worth having them.) @defun consp object This function returns @code{t} if @var{object} is a cons cell, @code{nil} @@ -763,8 +763,7 @@ The argument @var{symbol} is not implicitly quoted; @code{add-to-ordered-list} is an ordinary function, like @code{set} -and unlike @code{setq}. Quote the argument yourself if that is what -you want. +and unlike @code{setq}. Quote the argument yourself if necessary. The ordering information is stored in a hash table on @var{symbol}'s @code{list-order} property. @@ -1269,7 +1268,7 @@ @b{Common Lisp note:} Common Lisp has functions @code{union} (which avoids duplicate elements) and @code{intersection} for set operations. Although standard GNU Emacs Lisp does not have them, the @file{cl} -library provides versions. @inforef{Top, Overview, cl}. +library provides versions. @xref{Top,, Overview, cl, Common Lisp Extensions}. @end quotation @defun memq object list === modified file 'doc/lispref/numbers.texi' --- doc/lispref/numbers.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/numbers.texi 2012-05-05 04:32:58 +0000 @@ -267,8 +267,6 @@ @defun floatp object This predicate tests whether its argument is a floating point number and returns @code{t} if so, @code{nil} otherwise. - -@code{floatp} does not exist in Emacs versions 18 and earlier. @end defun @defun integerp object === modified file 'doc/lispref/objects.texi' --- doc/lispref/objects.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/objects.texi 2012-05-05 04:32:58 +0000 @@ -1567,7 +1567,6 @@ Lisp object that designates a subprocess created by the Emacs process. Programs such as shells, GDB, ftp, and compilers, running in subprocesses of Emacs, extend the capabilities of Emacs. - An Emacs subprocess takes textual input from Emacs and returns textual output to Emacs for further manipulation. Emacs can also send signals to the subprocess. @@ -1631,7 +1630,7 @@ syntax, and print in hash notation, giving the buffer name and range of positions. - @xref{Overlays}, for how to create and use overlays. + @xref{Overlays}, for information on how you can create and use overlays. @node Font Type @subsection Font Type === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2012-05-02 07:20:29 +0000 +++ doc/lispref/text.texi 2012-05-05 04:32:58 +0000 @@ -1799,12 +1799,6 @@ The value of @code{auto-fill-function} is @code{do-auto-fill} when Auto-Fill mode is enabled. That is a function whose sole purpose is to implement the usual strategy for breaking a line. - -@quotation -In older Emacs versions, this variable was named @code{auto-fill-hook}, -but since it is not called with the standard convention for hooks, it -was renamed to @code{auto-fill-function} in version 19. -@end quotation @end defvar @defvar normal-auto-fill-function === modified file 'etc/refcards/README' --- etc/refcards/README 2012-01-19 07:21:25 +0000 +++ etc/refcards/README 2012-05-05 04:32:58 +0000 @@ -1,8 +1,11 @@ -Some of the *.tex files need special versions of TeX to typeset them. -The files cs-*.tex and sk-*.tex need csTeX, a special version of TeX -tailored to typesetting Czech and Slovak documents. We provide -generated files for these documents, so that you could print them -without installing the modified TeX versions. +To generate these refcards, you need to install the TeX document +production system. For example, http://www.tug.org/texlive/ . + +All modern GNU/Linux distributions provide TeX packages, so the +easiest way is just to install those. Your distribution may have +split some of the files needed to process non-English output into +separate, optional packages such as: texlive-lang-cyrillic, +texlive-lang-czechslovak, texlive-lang-german, and texlive-lang-polish. COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES @@ -12,5 +15,5 @@ File: gnus-logo.eps, gnus-logo.pdf Author: Luis Fernandes - Copyright (C) 2001-2012 Free Software Foundation, Inc. + Copyright (C) 2001-2012 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING) === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-05-02 11:43:14 +0000 +++ lib-src/ChangeLog 2012-05-05 04:32:58 +0000 @@ -1,3 +1,8 @@ +2012-05-05 Jim Meyering + + * lib-src/pop.c (pop_stat, pop_list, pop_multi_first, pop_last): + NUL-terminate the error buffer (Bug#11372). + 2012-05-02 Juanma Barranquero * emacsclient.c (min): Undef before redefining it. === modified file 'lib-src/pop.c' --- lib-src/pop.c 2012-01-19 07:21:25 +0000 +++ lib-src/pop.c 2012-05-02 10:12:13 +0000 @@ -346,6 +346,7 @@ if (0 == strncmp (fromserver, "-ERR", 4)) { strncpy (pop_error, fromserver, ERROR_MAX); + pop_error[ERROR_MAX-1] = '\0'; } else { @@ -447,7 +448,10 @@ if (strncmp (fromserver, "+OK ", 4)) { if (! strncmp (fromserver, "-ERR", 4)) - strncpy (pop_error, fromserver, ERROR_MAX); + { + strncpy (pop_error, fromserver, ERROR_MAX); + pop_error[ERROR_MAX-1] = '\0'; + } else { strcpy (pop_error, @@ -687,6 +691,7 @@ if (0 == strncmp (*response, "-ERR", 4)) { strncpy (pop_error, *response, ERROR_MAX); + pop_error[ERROR_MAX-1] = '\0'; return (-1); } else if (0 == strncmp (*response, "+OK", 3)) @@ -860,6 +865,7 @@ if (! strncmp (fromserver, "-ERR", 4)) { strncpy (pop_error, fromserver, ERROR_MAX); + pop_error[ERROR_MAX-1] = '\0'; return (-1); } else if (strncmp (fromserver, "+OK ", 4)) === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-05 03:21:47 +0000 +++ lisp/ChangeLog 2012-05-05 04:32:58 +0000 @@ -1,3 +1,8 @@ +2012-05-04 Chong Yidong + + * select.el (xselect--encode-string): Always use utf-8 for TEXT on + Nextstep. + 2012-05-05 Ransom Williams (tiny change) * files.el (file-auto-mode-skip): New var. === modified file 'lisp/select.el' --- lisp/select.el 2012-04-24 05:34:50 +0000 +++ lisp/select.el 2012-05-05 04:32:58 +0000 @@ -228,24 +228,30 @@ ;; But avoid modifying the string if it's a buffer name etc. (unless can-modify (setq str (substring str 0))) (remove-text-properties 0 (length str) '(composition nil) str) - ;; TEXT is a polymorphic target. Select the actual type - ;; from `UTF8_STRING', `COMPOUND_TEXT', `STRING', and - ;; `C_STRING'. - (if (eq type 'TEXT) - (if (not (multibyte-string-p str)) - (setq type 'C_STRING) - (let (non-latin-1 non-unicode eight-bit) - (mapc #'(lambda (x) - (if (>= x #x100) - (if (< x #x110000) - (setq non-latin-1 t) - (if (< x #x3FFF80) - (setq non-unicode t) - (setq eight-bit t))))) - str) - (setq type (if non-unicode 'COMPOUND_TEXT - (if non-latin-1 'UTF8_STRING - (if eight-bit 'C_STRING 'STRING))))))) + ;; For X selections, TEXT is a polymorphic target; choose + ;; the actual type from `UTF8_STRING', `COMPOUND_TEXT', + ;; `STRING', and `C_STRING'. On Nextstep, always use UTF-8 + ;; (see ns_string_to_pasteboard_internal in nsselect.m). + (when (eq type 'TEXT) + (cond + ((featurep 'ns) + (setq type 'UTF8_STRING)) + ((not (multibyte-string-p str)) + (setq type 'C_STRING)) + (t + (let (non-latin-1 non-unicode eight-bit) + (mapc #'(lambda (x) + (if (>= x #x100) + (if (< x #x110000) + (setq non-latin-1 t) + (if (< x #x3FFF80) + (setq non-unicode t) + (setq eight-bit t))))) + str) + (setq type (if non-unicode 'COMPOUND_TEXT + (if non-latin-1 'UTF8_STRING + (if eight-bit 'C_STRING + 'STRING)))))))) (cond ((eq type 'UTF8_STRING) (if (or (not coding) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-04 23:16:47 +0000 +++ src/ChangeLog 2012-05-05 04:32:58 +0000 @@ -1,3 +1,7 @@ +2012-05-05 Jim Meyering + + * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372). + 2012-05-04 Stefan Monnier * data.c (PUT_ERROR): New macro. === modified file 'src/w32font.c' --- src/w32font.c 2012-01-19 07:21:25 +0000 +++ src/w32font.c 2012-05-02 10:12:13 +0000 @@ -2045,8 +2045,11 @@ /* Font families are interned, but allow for strings also in case of user input. */ else if (SYMBOLP (tmp)) - strncpy (logfont->lfFaceName, - SDATA (ENCODE_SYSTEM (SYMBOL_NAME (tmp))), LF_FACESIZE); + { + strncpy (logfont->lfFaceName, + SDATA (ENCODE_SYSTEM (SYMBOL_NAME (tmp))), LF_FACESIZE); + logfont->lfFaceName[LF_FACESIZE-1] = '\0'; + } } tmp = AREF (font_spec, FONT_ADSTYLE_INDEX); ------------------------------------------------------------ revno: 108130 author: Ransom Williams committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 23:21:47 -0400 message: * lisp/files.el (file-auto-mode-skip): New var. (set-auto-mode-1): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-05 02:50:20 +0000 +++ lisp/ChangeLog 2012-05-05 03:21:47 +0000 @@ -1,3 +1,8 @@ +2012-05-05 Ransom Williams (tiny change) + + * files.el (file-auto-mode-skip): New var. + (set-auto-mode-1): Use it. + 2012-05-05 Stefan Monnier * repeat.el: Use lexical-binding. === modified file 'lisp/files.el' --- lisp/files.el 2012-05-04 23:16:47 +0000 +++ lisp/files.el 2012-05-05 03:21:47 +0000 @@ -2782,6 +2782,11 @@ (funcall mode) mode))) +(defvar file-auto-mode-skip "^\\(#!\\|'\\\\\"\\)" + "Regexp of lines to skip when looking for file-local settings. +If the first line matches this regular expression, then the -*-...-*- file- +local settings will be consulted on the second line instead of the first.") + (defun set-auto-mode-1 () "Find the -*- spec in the buffer. Call with point at the place to start searching from. @@ -2804,7 +2809,7 @@ ;; interpreter invocation. The same holds ;; for '\" in man pages (preprocessor ;; magic for the `man' program). - (and (looking-at "^\\(#!\\|'\\\\\"\\)") 2)) t) + (and (looking-at file-auto-mode-skip) 2)) t) (progn (skip-chars-forward " \t") (setq beg (point)) ------------------------------------------------------------ revno: 108129 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 22:50:20 -0400 message: Use set-temporary-overlay-map. * lisp/repeat.el: Use lexical-binding. (repeat-last-self-insert, repeat-num-input-keys-at-self-insert) (repeat-undo-count): Remove. (repeat): * lisp/progmodes/octave-mod.el (octave-abbrev-start): * lisp/progmodes/f90.el (f90-abbrev-start): * lisp/face-remap.el (text-scale-adjust): * lisp/kmacro.el (kmacro-call-macro): Use set-temporary-overlay-map. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-05 02:05:49 +0000 +++ lisp/ChangeLog 2012-05-05 02:50:20 +0000 @@ -1,5 +1,14 @@ 2012-05-05 Stefan Monnier + * repeat.el: Use lexical-binding. + (repeat-last-self-insert, repeat-num-input-keys-at-self-insert) + (repeat-undo-count): Remove. + (repeat): + * progmodes/octave-mod.el (octave-abbrev-start): + * progmodes/f90.el (f90-abbrev-start): + * face-remap.el (text-scale-adjust): + * kmacro.el (kmacro-call-macro): Use set-temporary-overlay-map. + * emacs-lisp/pcase.el (pcase--let*): New function. (pcase--expand, pcase-codegen, pcase--q1): Use it to reduce nesting a bit more. === modified file 'lisp/face-remap.el' --- lisp/face-remap.el 2012-03-21 07:02:13 +0000 +++ lisp/face-remap.el 2012-05-05 02:50:20 +0000 @@ -303,26 +303,29 @@ `text-scale-decrease' may be more appropriate." (interactive "p") (let ((first t) - (step t) (ev last-command-event) (echo-keystrokes nil)) - (while step - (let ((base (event-basic-type ev))) - (cond ((or (eq base ?+) (eq base ?=)) - (setq step inc)) - ((eq base ?-) - (setq step (- inc))) - ((eq base ?0) - (setq step 0)) - (first - (setq step inc)) - (t - (setq step nil)))) - (when step - (text-scale-increase step) - (setq inc 1 first nil) - (setq ev (read-event "+,-,0 for further adjustment: ")))) - (push ev unread-command-events))) + (let* ((base (event-basic-type ev)) + (step + (pcase base + ((or `?+ `?=) inc) + (`?- (- inc)) + (`?0 0) + (t inc)))) + (text-scale-increase step) + ;; FIXME: do it after everu "iteration of the loop". + (message "+,-,0 for further adjustment: ") + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (dolist (mods '(() (control))) + (define-key map (vector (append mods '(?-))) 'text-scale-decrease) + (define-key map (vector (append mods '(?+))) 'text-scale-increase) + ;; = is unshifted + on most keyboards. + (define-key map (vector (append mods '(?=))) 'text-scale-increase) + (define-key map (vector (append mods '(?0))) + (lambda () (interactive) (text-scale-increase 0)))) + map) + t)))) ;; ---------------------------------------------------------------- === modified file 'lisp/kmacro.el' --- lisp/kmacro.el 2012-04-09 13:05:48 +0000 +++ lisp/kmacro.el 2012-05-05 02:50:20 +0000 @@ -625,8 +625,10 @@ To make a macro permanent so you can call it even after defining others, use \\[kmacro-name-last-macro]." (interactive "p") - (let ((repeat-key (and (null no-repeat) - (> (length (this-single-command-keys)) 1) + (let ((repeat-key (and (or (and (null no-repeat) + (> (length (this-single-command-keys)) 1)) + ;; Used when we're in the process of repeating. + (eq no-repeat 'repeating)) last-input-event)) repeat-key-str) (if end-macro @@ -640,24 +642,16 @@ repeat-key kmacro-call-repeat-key))) (setq repeat-key-str (format-kbd-macro (vector repeat-key) nil)) - (while repeat-key - ;; Issue a hint to the user, if the echo area isn't in use. - (unless (current-message) - (message "(Type %s to repeat macro%s)" - repeat-key-str - (if (and kmacro-call-repeat-with-arg - arg (> arg 1)) - (format " %d times" arg) ""))) - (if (equal repeat-key (read-event)) - (progn - (clear-this-command-keys t) - (call-last-kbd-macro (and kmacro-call-repeat-with-arg arg) - #'kmacro-loop-setup-function) - (setq last-input-event nil)) - (setq repeat-key nil))) - (when last-input-event - (clear-this-command-keys t) - (setq unread-command-events (list last-input-event)))))) + ;; Can't use the `keep-pred' arg because this overlay keymap needs to be + ;; removed during the next run of the kmacro (i.e. we need to add&remove + ;; this overlay-map at each repetition). + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (define-key map (vector repeat-key) + `(lambda () (interactive) + (kmacro-call-macro ,(and kmacro-call-repeat-with-arg arg) + 'repeating))) + map))))) ;;; Combined function key bindings: === modified file 'lisp/progmodes/f90.el' --- lisp/progmodes/f90.el 2012-04-09 13:05:48 +0000 +++ lisp/progmodes/f90.el 2012-05-05 02:50:20 +0000 @@ -2204,18 +2204,13 @@ "Typing `\\[help-command] or `? lists all the F90 abbrevs. Any other key combination is executed normally." (interactive "*") - (insert last-command-event) - (let (char event) - (if (fboundp 'next-command-event) ; XEmacs - (setq event (next-command-event) - char (and (fboundp 'event-to-character) - (event-to-character event))) - (setq event (read-event) - char event)) - ;; Insert char if not equal to `?', or if abbrev-mode is off. - (if (and abbrev-mode (memq char (list ?? help-char))) - (f90-abbrev-help) - (setq unread-command-events (list event))))) + (self-insert-command 1) + (when abbrev-mode + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (define-key map [??] 'f90-abbrev-help) + (define-key map (vector help-char) 'f90-abbrev-help) + map)))) (defun f90-abbrev-help () "List the currently defined abbrevs in F90 mode." === modified file 'lisp/progmodes/octave-mod.el' --- lisp/progmodes/octave-mod.el 2012-02-20 20:24:24 +0000 +++ lisp/progmodes/octave-mod.el 2012-05-05 02:50:20 +0000 @@ -989,18 +989,13 @@ executed normally. Note that all Octave mode abbrevs start with a grave accent." (interactive) - (if (not abbrev-mode) - (self-insert-command 1) - (let (c) - (insert last-command-event) - (if (if (featurep 'xemacs) - (or (eq (event-to-character (setq c (next-event))) ??) - (eq (event-to-character c) help-char)) - (or (eq (setq c (read-event)) ??) - (eq c help-char))) - (let ((abbrev-table-name-list '(octave-abbrev-table))) - (list-abbrevs)) - (setq unread-command-events (list c)))))) + (self-insert-command 1) + (when abbrev-mode + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (define-key map [??] 'list-abbrevs) + (define-key map (vector help-char) 'list-abbrevs) + map)))) (define-skeleton octave-insert-defun "Insert an Octave function skeleton. === modified file 'lisp/repeat.el' --- lisp/repeat.el 2012-01-19 07:21:25 +0000 +++ lisp/repeat.el 2012-05-05 02:50:20 +0000 @@ -1,4 +1,4 @@ -;;; repeat.el --- convenient way to repeat the previous command +;;; repeat.el --- convenient way to repeat the previous command -*- lexical-binding: t -*- ;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. @@ -156,15 +156,6 @@ ;; `repeat' now repeats that command instead of `real-last-command' to ;; avoid a "... must be bound to an event with parameters" error. -(defvar repeat-last-self-insert nil - "If last repeated command was `self-insert-command', it inserted this.") - -;; That'll require another keystroke count so we know we're in a string of -;; repetitions of self-insert commands: - -(defvar repeat-num-input-keys-at-self-insert -1 - "# key sequences read in Emacs session when `self-insert-command' repeated.") - ;;;;; *************** ANALOGOUS HACKS TO `repeat' ITSELF **************** ;;;;; ;; That mechanism of checking num-input-keys to figure out what's really @@ -199,14 +190,6 @@ (defvar repeat-previous-repeated-command nil "The previous repeated command.") -;; The following variable counts repeated self-insertions. The idea is -;; that repeating a self-insertion command and subsequently undoing it -;; should have almost the same effect as if the characters were inserted -;; manually. The basic difference is that we leave in one undo-boundary -;; between the original insertion and its first repetition. -(defvar repeat-undo-count nil - "Number of self-insertions since last `undo-boundary'.") - ;;;###autoload (defun repeat (repeat-arg) "Repeat most recently executed command. @@ -254,7 +237,7 @@ (let ((repeat-repeat-char (if (eq repeat-on-final-keystroke t) last-command-event - ;; allow only specified final keystrokes + ;; Allow only specified final keystrokes. (car (memq last-command-event (listify-key-sequence repeat-on-final-keystroke)))))) @@ -269,90 +252,45 @@ (setq current-prefix-arg repeat-arg) (repeat-message "Repeating command %S %S" repeat-arg last-repeatable-command)) - (if (eq last-repeatable-command 'self-insert-command) - (let ((insertion - (if (<= (- num-input-keys - repeat-num-input-keys-at-self-insert) - 1) - repeat-last-self-insert - (let ((range (nth 1 buffer-undo-list))) - (condition-case nil - (setq repeat-last-self-insert - (buffer-substring (car range) - (cdr range))) - (error (error "%s %s %s" ;Danger, Will Robinson! - "repeat can't intuit what you" - "inserted before auto-fill" - "clobbered it, sorry"))))))) - (setq repeat-num-input-keys-at-self-insert num-input-keys) - ;; If the self-insert had a repeat count, INSERTION - ;; includes that many copies of the same character. - ;; So use just the first character - ;; and repeat it the right number of times. - (setq insertion (substring insertion -1)) - (let ((count (prefix-numeric-value repeat-arg)) - (i 0)) - ;; Run pre- and post-command hooks for self-insertion too. - (run-hooks 'pre-command-hook) - (cond - ((not repeat-undo-count)) - ((< repeat-undo-count 20) - ;; Don't make an undo-boundary here. - (setq repeat-undo-count (1+ repeat-undo-count))) - (t - ;; Make an undo-boundary after 20 repetitions only. - (undo-boundary) - (setq repeat-undo-count 1))) - (while (< i count) - (repeat-self-insert insertion) - (setq i (1+ i))) - (run-hooks 'post-command-hook))) - (let ((indirect (indirect-function last-repeatable-command))) - ;; Make each repetition undo separately. - (undo-boundary) - (if (or (stringp indirect) - (vectorp indirect)) - ;; Bind real-last-command so that executing the macro does - ;; not alter it. Do the same for last-repeatable-command. - (let ((real-last-command real-last-command) - (last-repeatable-command last-repeatable-command)) - (execute-kbd-macro last-repeatable-command)) - (run-hooks 'pre-command-hook) - (call-interactively last-repeatable-command) - (run-hooks 'post-command-hook))))) + (when (eq last-repeatable-command 'self-insert-command) + ;; We used to use a much more complex code to try and figure out + ;; what key was used to run that self-insert-command: + ;; (if (<= (- num-input-keys + ;; repeat-num-input-keys-at-self-insert) + ;; 1) + ;; repeat-last-self-insert + ;; (let ((range (nth 1 buffer-undo-list))) + ;; (condition-case nil + ;; (setq repeat-last-self-insert + ;; (buffer-substring (car range) + ;; (cdr range))) + ;; (error (error "%s %s %s" ;Danger, Will Robinson! + ;; "repeat can't intuit what you" + ;; "inserted before auto-fill" + ;; "clobbered it, sorry"))))) + (setq last-command-event (char-before))) + (let ((indirect (indirect-function last-repeatable-command))) + (if (or (stringp indirect) + (vectorp indirect)) + ;; Bind last-repeatable-command so that executing the macro does + ;; not alter it. + (let ((last-repeatable-command last-repeatable-command)) + (execute-kbd-macro last-repeatable-command)) + (call-interactively last-repeatable-command)))) (when repeat-repeat-char - ;; A simple recursion here gets into trouble with max-lisp-eval-depth - ;; on long sequences of repetitions of a command like `forward-word' - ;; (only 32 repetitions are possible given the default value of 200 for - ;; max-lisp-eval-depth), but if I now locally disable the repeat char I - ;; can iterate indefinitely here around a single level of recursion. - (let (repeat-on-final-keystroke - ;; Bind `undo-inhibit-record-point' to t in order to avoid - ;; recording point in `buffer-undo-list' here. We have to - ;; do this since the command loop does not set the last - ;; position of point thus confusing the point recording - ;; mechanism when inserting or deleting text. - (undo-inhibit-record-point t)) - (setq real-last-command 'repeat) - (setq repeat-undo-count 1) - (unwind-protect - (while (let ((evt (read-key))) - ;; For clicks, we need to strip the meta-data to - ;; check the underlying event name. - (eq (or (car-safe evt) evt) - (or (car-safe repeat-repeat-char) - repeat-repeat-char))) - (repeat repeat-arg)) - ;; Make sure `repeat-undo-count' is reset. - (setq repeat-undo-count nil)) - (setq unread-command-events (list last-input-event)))))) - -(defun repeat-self-insert (string) - (let ((i 0)) - (while (< i (length string)) - (let ((last-command-event (aref string i))) - (self-insert-command 1)) - (setq i (1+ i))))) + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (define-key map (vector repeat-repeat-char) + (if (null repeat-message-function) 'repeat + ;; If repeat-message-function is let-bound, preserve it for the + ;; next "iterations of the loop". + (let ((fun repeat-message-function)) + (lambda () + (interactive) + (let ((repeat-message-function fun)) + (setq this-command 'repeat) + (call-interactively 'repeat)))))) + map))))) (defun repeat-message (format &rest args) "Like `message' but displays with `repeat-message-function' if non-nil." ------------------------------------------------------------ revno: 108128 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 22:05:49 -0400 message: * lisp/emacs-lisp/pcase.el (pcase--let*): New function. (pcase--expand, pcase-codegen, pcase--q1): Use it to reduce nesting a bit more. (pcase--split-pred): Be more clever about ruling out overlap between a predicate and some constant pattern. (pcase--q1): Use `null' instead of (eq foo nil). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-05 01:47:04 +0000 +++ lisp/ChangeLog 2012-05-05 02:05:49 +0000 @@ -1,5 +1,12 @@ 2012-05-05 Stefan Monnier + * emacs-lisp/pcase.el (pcase--let*): New function. + (pcase--expand, pcase-codegen, pcase--q1): Use it to reduce nesting + a bit more. + (pcase--split-pred): Be more clever about ruling out overlap between + a predicate and some constant pattern. + (pcase--q1): Use `null' instead of (eq foo nil). + * subr.el (setq-local, defvar-local): New macros. (kbd): Redefine as an alias. (with-selected-window): Leave unrelated frames alone. === modified file 'lisp/emacs-lisp/pcase.el' --- lisp/emacs-lisp/pcase.el 2012-01-05 09:46:05 +0000 +++ lisp/emacs-lisp/pcase.el 2012-05-05 02:05:49 +0000 @@ -148,6 +148,7 @@ `(let ,(nreverse bindings) (pcase-let* ,matches ,@body))))) (defmacro pcase-dolist (spec &rest body) + (declare (indent 1)) (if (pcase--trivial-upat-p (car spec)) `(dolist ,spec ,@body) (let ((tmpvar (make-symbol "x"))) @@ -217,10 +218,10 @@ (cdr case)))) cases)))) (if (null defs) main - `(let ,defs ,main)))) + (pcase--let* defs main)))) (defun pcase-codegen (code vars) - `(let ,(mapcar (lambda (b) (list (car b) (cdr b))) vars) + `(let* ,(mapcar (lambda (b) (list (car b) (cdr b))) vars) ,@code)) (defun pcase--small-branch-p (code) @@ -255,6 +256,13 @@ ((memq (car-safe then) '(if cond)) (pcase--if `(not ,test) else then)) (t `(if ,test ,then ,else)))) +;; Again, try and reduce nesting. +(defun pcase--let* (binders body) + (if (eq (car-safe body) 'let*) + `(let* ,(append binders (nth 1 body)) + ,@(nthcdr 2 body)) + `(let* ,binders ,body))) + (defun pcase--upat (qpattern) (cond ((eq (car-safe qpattern) '\,) (cadr qpattern)) @@ -433,26 +441,26 @@ (defun pcase--split-pred (upat pat) ;; FIXME: For predicates like (pred (> a)), two such predicates may ;; actually refer to different variables `a'. - (cond - ((equal upat pat) (cons :pcase--succeed :pcase--fail)) - ((and (eq 'pred (car upat)) - (eq 'pred (car-safe pat)) - (or (member (cons (cadr upat) (cadr pat)) - pcase-mutually-exclusive-predicates) - (member (cons (cadr pat) (cadr upat)) - pcase-mutually-exclusive-predicates))) - (cons :pcase--fail nil)) - ;; ((and (eq 'pred (car upat)) - ;; (eq '\` (car-safe pat)) - ;; (symbolp (cadr upat)) - ;; (or (symbolp (cadr pat)) (stringp (cadr pat)) (numberp (cadr pat))) - ;; (get (cadr upat) 'side-effect-free) - ;; (progn (message "Trying predicate %S" (cadr upat)) - ;; (ignore-errors - ;; (funcall (cadr upat) (cadr pat))))) - ;; (message "Simplify pred %S against %S" upat pat) - ;; (cons nil :pcase--fail)) - )) + (let (test) + (cond + ((equal upat pat) (cons :pcase--succeed :pcase--fail)) + ((and (eq 'pred (car upat)) + (eq 'pred (car-safe pat)) + (or (member (cons (cadr upat) (cadr pat)) + pcase-mutually-exclusive-predicates) + (member (cons (cadr pat) (cadr upat)) + pcase-mutually-exclusive-predicates))) + (cons :pcase--fail nil)) + ((and (eq 'pred (car upat)) + (eq '\` (car-safe pat)) + (symbolp (cadr upat)) + (or (symbolp (cadr pat)) (stringp (cadr pat)) (numberp (cadr pat))) + (get (cadr upat) 'side-effect-free) + (ignore-errors + (setq test (list (funcall (cadr upat) (cadr pat)))))) + (if (car test) + (cons nil :pcase--fail) + (cons :pcase--fail nil)))))) (defun pcase--fgrep (vars sexp) "Check which of the symbols VARS appear in SEXP." @@ -673,16 +681,22 @@ ;; The byte-compiler could do that for us, but it would have to pay ;; attention to the `consp' test in order to figure out that car/cdr ;; can't signal errors and our byte-compiler is not that clever. - `(let (,@(if (get syma 'pcase-used) `((,syma (car ,sym)))) + ;; FIXME: Some of those let bindings occur too early (they are used in + ;; `then-body', but only within some sub-branch). + (pcase--let* + `(,@(if (get syma 'pcase-used) `((,syma (car ,sym)))) ,@(if (get symd 'pcase-used) `((,symd (cdr ,sym))))) - ,then-body) + then-body) (pcase--u else-rest)))) ((or (integerp qpat) (symbolp qpat) (stringp qpat)) (let* ((splitrest (pcase--split-rest sym (apply-partially 'pcase--split-equal qpat) rest)) (then-rest (car splitrest)) (else-rest (cdr splitrest))) - (pcase--if `(,(if (stringp qpat) #'equal #'eq) ,sym ',qpat) + (pcase--if (cond + ((stringp qpat) `(equal ,sym ,qpat)) + ((null qpat) `(null ,sym)) + (t `(eq ,sym ',qpat))) (pcase--u1 matches code vars then-rest) (pcase--u else-rest)))) (t (error "Unknown QPattern %s" qpat)))) ------------------------------------------------------------ revno: 108127 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 21:47:04 -0400 message: New function set-temporary-overlay-map and macros (defvar|setq)-local. * lisp/subr.el (setq-local, defvar-local): New macros. (kbd): Redefine as an alias. (with-selected-window): Leave unrelated frames alone. (set-temporary-overlay-map): New function. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-05-04 23:16:47 +0000 +++ etc/NEWS 2012-05-05 01:47:04 +0000 @@ -199,7 +199,12 @@ * Lisp changes in Emacs 24.2 +** New function `set-temporary-overlay-map'. + +** New macros `setq-local' and `defvar-local'. + ** New error type and new function `user-error'. Doesn't trigger the debugger. + ** Completion *** New function `completion-table-with-quoting' to handle completion === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 23:16:47 +0000 +++ lisp/ChangeLog 2012-05-05 01:47:04 +0000 @@ -1,3 +1,10 @@ +2012-05-05 Stefan Monnier + + * subr.el (setq-local, defvar-local): New macros. + (kbd): Redefine as an alias. + (with-selected-window): Leave unrelated frames alone. + (set-temporary-overlay-map): New function. + 2012-05-04 Stefan Monnier * subr.el (user-error): New function. === modified file 'lisp/subr.el' --- lisp/subr.el 2012-05-04 23:16:47 +0000 +++ lisp/subr.el 2012-05-05 01:47:04 +0000 @@ -116,6 +116,19 @@ ;; depend on backquote.el. (list 'function (cons 'lambda cdr))) +(defmacro setq-local (var val) + "Set variable VAR to value VAL in current buffer." + ;; Can't use backquote here, it's too early in the bootstrap. + (list 'set (list 'make-local-variable (list 'quote var)) val)) + +(defmacro defvar-local (var val &optional docstring) + "Define VAR as a buffer-local variable with default value VAL. +Like `defvar' but additionally marks the variable as being automatically +buffer-local wherever it is set." + ;; Can't use backquote here, it's too early in the bootstrap. + (list 'progn (list 'defvar var val docstring) + (list 'make-variable-buffer-local (list 'quote var)))) + (defun apply-partially (fun &rest args) "Return a function that is a partial application of FUN to ARGS. ARGS is a list of the first N arguments to pass to FUN. @@ -506,11 +519,8 @@ ;;;; Keymap support. -(defmacro kbd (keys) - "Convert KEYS to the internal Emacs key representation. -KEYS should be a string constant in the format used for -saving keyboard macros (see `edmacro-mode')." - (read-kbd-macro keys)) +(defalias 'kbd 'read-kbd-macro) +(put 'kbd 'pure t) (defun undefined () "Beep to tell the user this binding is undefined." @@ -2986,21 +2996,26 @@ the buffer list ordering." (declare (indent 1) (debug t)) ;; Most of this code is a copy of save-selected-window. - `(let ((save-selected-window-window (selected-window)) - ;; It is necessary to save all of these, because calling - ;; select-window changes frame-selected-window for whatever - ;; frame that window is in. - (save-selected-window-alist - (mapcar (lambda (frame) (list frame (frame-selected-window frame))) - (frame-list)))) + `(let* ((save-selected-window-destination ,window) + (save-selected-window-window (selected-window)) + ;; Selecting a window on another frame changes not only the + ;; selected-window but also the frame-selected-window of the + ;; destination frame. So we need to save&restore it. + (save-selected-window-other-frame + (unless (eq (selected-frame) + (window-frame save-selected-window-destination)) + (frame-selected-window + (window-frame save-selected-window-destination))))) (save-current-buffer (unwind-protect - (progn (select-window ,window 'norecord) + (progn (select-window save-selected-window-destination 'norecord) ,@body) - (dolist (elt save-selected-window-alist) - (and (frame-live-p (car elt)) - (window-live-p (cadr elt)) - (set-frame-selected-window (car elt) (cadr elt) 'norecord))) + ;; First reset frame-selected-window. + (if (window-live-p save-selected-window-other-frame) + ;; We don't use set-frame-selected-window because it does not + ;; pass the `norecord' argument to Fselect_window. + (select-window save-selected-window-other-frame 'norecord)) + ;; Then reset the actual selected-window. (when (window-live-p save-selected-window-window) (select-window save-selected-window-window 'norecord)))))) @@ -3808,6 +3823,29 @@ (put symbol 'abortfunc (or abortfunc 'kill-buffer)) (put symbol 'hookvar (or hookvar 'mail-send-hook))) +(defun set-temporary-overlay-map (map &optional keep-pred) + (let* ((clearfunsym (make-symbol "clear-temporary-overlay-map")) + (overlaysym (make-symbol "t")) + (alist (list (cons overlaysym map))) + (clearfun + ;; FIXME: Use lexical-binding. + `(lambda () + (unless ,(cond ((null keep-pred) nil) + ((eq t keep-pred) + `(eq this-command + (lookup-key ',map + (this-command-keys-vector)))) + (t `(funcall ',keep-pred))) + (remove-hook 'pre-command-hook ',clearfunsym) + (setq emulation-mode-map-alists + (delq ',alist emulation-mode-map-alists)))))) + (set overlaysym overlaysym) + (fset clearfunsym clearfun) + (add-hook 'pre-command-hook clearfunsym) + ;; FIXME: That's the keymaps with highest precedence, except for + ;; the `keymap' text-property ;-( + (push alist emulation-mode-map-alists))) + ;;;; Progress reporters. ;; Progress reporter has the following structure: ------------------------------------------------------------ revno: 108126 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 19:16:47 -0400 message: Add new error and function `user-error'. * lisp/subr.el (user-error): New function. * lisp/window.el (switch-to-buffer): * lisp/vc/smerge-mode.el (smerge-resolve-function, smerge-resolve) (smerge-match-conflict): * lisp/simple.el (previous-matching-history-element) (next-matching-history-element, goto-history-element, undo-more) (undo-start): * lisp/progmodes/etags.el (visit-tags-table-buffer, find-tag-tag) (find-tag-noselect, find-tag-in-order, etags-goto-tag-location) (next-file, tags-loop-scan, list-tags, complete-tag): * lisp/progmodes/compile.el (compilation-loop): * lisp/mouse.el (mouse-minibuffer-check): * lisp/man.el (Man-bgproc-sentinel, Man-goto-page): * lisp/info.el (Info-find-node-2, Info-extract-pointer, Info-history-back) (Info-history-forward, Info-follow-reference, Info-menu) (Info-extract-menu-item, Info-extract-menu-counting) (Info-forward-node, Info-backward-node, Info-next-menu-item) (Info-last-menu-item, Info-next-preorder, Info-last-preorder) (Info-next-reference, Info-prev-reference, Info-index) (Info-index-next, Info-follow-nearest-node) (Info-copy-current-node-name): * lisp/imenu.el (imenu--make-index-alist) (imenu-default-create-index-function, imenu-add-to-menubar): * lisp/files.el (basic-save-buffer, recover-file): * lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): * lisp/emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments) (checkdoc-message-text, checkdoc-defun): * lisp/dabbrev.el (dabbrev-completion, dabbrev--abbrev-at-point): * lisp/cus-edit.el (customize-changed-options, customize-rogue) (customize-saved, custom-variable-set, custom-variable-mark-to-save) (custom-variable-mark-to-reset-standard) (custom-variable-reset-backup, custom-face-mark-to-reset-standard) (custom-file): * lisp/completion.el (check-completion-length): * lisp/comint.el (comint-search-arg) (comint-previous-matching-input-string-position) (comint-previous-matching-input) (comint-replace-by-expanded-history-before-point, comint-send-input) (comint-copy-old-input, comint-backward-matching-input) (comint-goto-process-mark, comint-set-process-mark): * lisp/calendar/calendar.el (calendar-cursor-to-date): Use it. * lisp/bindings.el (debug-ignored-errors): Remove regexps, add `user-error'. * src/data.c (PUT_ERROR): New macro. (syms_of_data): Use it. Add new error type `user-error'. * src/undo.c (user_error): New function. (Fprimitive_undo): Use it. * src/print.c (print_error_message): Adjust print style for `user-error'. * src/keyboard.c (user_error): New function. (Fexit_recursive_edit, Fabort_recursive_edit): Use it. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-05-04 06:45:03 +0000 +++ doc/emacs/ChangeLog 2012-05-04 23:16:47 +0000 @@ -438,7 +438,7 @@ 2012-01-09 Chong Yidong - * custom.texi (Custom Themes): Switched custom-safe-themes to use + * custom.texi (Custom Themes): Switch custom-safe-themes to use SHA-256. 2012-01-07 Chong Yidong @@ -455,8 +455,8 @@ (Screen Garbled): Don't refer to terminal "manufacturers". (Total Frustration): Node deleted. Eliza is documented in Amusements now. - (Known Problems): More info about using the bug tracker. Mention - debbugs package. + (Known Problems): More info about using the bug tracker. + Mention debbugs package. (Bug Criteria): Copyedits. (Understanding Bug Reporting): Mention emacs -Q. @@ -519,8 +519,8 @@ Document browse-url-mailto-function. (Goto Address mode): Add index entries. Add xref to Browse-URL. (FFAP): FFAP is not a minor mode. - (Amusements): M-x lm was renamed to M-x landmark. Document - nato-region. + (Amusements): M-x lm was renamed to M-x landmark. + Document nato-region. 2012-01-01 Chong Yidong @@ -558,8 +558,8 @@ 2011-12-26 Chong Yidong - * dired.texi (Dired Enter, Misc Dired Features): Document - dired-use-ls-dired changes. Mention quit-window. + * dired.texi (Dired Enter, Misc Dired Features): + Document dired-use-ls-dired changes. Mention quit-window. (Dired Navigation): Add index entries. (Dired Visiting): Fix View Mode xref. (Marks vs Flags): Prefer C-/ binding for undo. @@ -602,8 +602,8 @@ * vc1-xtra.texi (Version Headers): Note that these are for Subversion, CVS, etc. only. - (General VC Options): De-document vc-keep-workfiles. Fix - RCS-isms. + (General VC Options): De-document vc-keep-workfiles. + Fix RCS-isms. 2011-12-22 Eli Zaretskii @@ -619,8 +619,8 @@ * vc1-xtra.texi (Remote Repositories): Update introduction. (Local Version Control): Node deleted (obsolete with DVCSes). - (Remote Repositories, Version Backups): Node deleted. Move - documentation of vc-cvs-stay-local to CVS Options. + (Remote Repositories, Version Backups): Node deleted. + Move documentation of vc-cvs-stay-local to CVS Options. (CVS Options): Reduce verbosity of description of obscure CVS locking feature. (Making Revision Tags, Revision Tag Caveats): Merge into Revision @@ -673,11 +673,11 @@ less CVS-specific. (VC With A Merging VCS, VC With A Locking VCS): Add xref to Registering node. - (Secondary VC Commands): Deleted. Promote subnodes. + (Secondary VC Commands): Delete. Promote subnodes. (Log Buffer): Add command name for C-c C-c. Fix the name of the log buffer. Add index entries. - (VCS Changesets, Types of Log File, VC With A Merging VCS): Use - "commit" terminology. + (VCS Changesets, Types of Log File, VC With A Merging VCS): + Use "commit" terminology. (Old Revisions): Move it to just before VC Change Log. "Tag" here doesn't refer to tags tables. Note other possible forms of the revision ID. C-x v = does not save. @@ -702,8 +702,8 @@ (Lisp Eval): Note that listed commands are available globally. Explain the meaning of "defun" in the C-M-x context. (Lisp Interaction): Copyedits. - (External Lisp): Fix name of inferior Lisp buffer. Mention - Scheme. + (External Lisp): Fix name of inferior Lisp buffer. + Mention Scheme. (Compilation): Define "inferior process". 2011-12-10 Eli Zaretskii @@ -718,8 +718,8 @@ (Compilation Mode): Add xref for grep, occur, and mouse references. Define "locus". (Grep Searching): Use @command. - (Debuggers, Commands of GUD, GDB Graphical Interface): Clarify - intro. + (Debuggers, Commands of GUD, GDB Graphical Interface): + Clarify intro. (Starting GUD): Clarify how arguments are specified. (Debugger Operation): Index entry for "GUD interaction buffer", and move basic description here from Commands of GUD node. @@ -727,8 +727,8 @@ (Source Buffers): Remove gdb-find-source-frame, which is not in gdb-mi.el. (Other GDB Buffers): Remove gdb-use-separate-io-buffer and - toggle-gdb-all-registers, which are not in gdb-mi.el. Don't - re-document GUD interaction buffers. + toggle-gdb-all-registers, which are not in gdb-mi.el. + Don't re-document GUD interaction buffers. * programs.texi (Symbol Completion): M-TAB can now use Semantic. (Semantic): Add cindex entries for Semantic. @@ -758,8 +758,8 @@ * programs.texi (Program Modes): Mention modes that are not included with Emacs. Fix references to other manuals for tex. - Add index entry for backward-delete-char-untabify. Mention - prog-mode-hook. + Add index entry for backward-delete-char-untabify. + Mention prog-mode-hook. (Which Function): Use "global minor mode" terminology. (Basic Indent, Multi-line Indent): Refer to previous descriptions in Indentation chapter to avoid duplication. @@ -791,12 +791,12 @@ (TeX Editing): Add xref to documentation for Occur. (LaTeX Editing): Add xref to Completion node. (TeX Print): Fix description of tex-directory. - (Enriched Text): Renamed from Formatted Text. Make this node and + (Enriched Text): Rename from Formatted Text. Make this node and its subnodes less verbose, since text/enriched files are practically unused. - (Enriched Mode): Renamed from Requesting Formatted Text. + (Enriched Mode): Rename from Requesting Formatted Text. (Format Colors): Node deleted. - (Enriched Faces): Renamed from Format Faces. Describe commands + (Enriched Faces): Rename from Format Faces. Describe commands for applying colors too. (Forcing Enriched Mode): Node deleted; merged into Enriched Mode. @@ -1031,12 +1031,12 @@ 2011-10-18 Chong Yidong * display.texi (Faces): Simplify discussion. Move documentation - of list-faces-display here, from Standard Faces node. Note - special role of `default' background. - (Standard Faces): Note special role of `default' background. Note - that region face may be taken fom GTK. Add xref to Text Display. - (Text Scale): Rename from "Temporary Face Changes". Callers - changed. Don't bother documenting variable-pitch-mode. + of list-faces-display here, from Standard Faces node. + Note special role of `default' background. + (Standard Faces): Note special role of `default' background. + Note that region face may be taken fom GTK. Add xref to Text Display. + (Text Scale): Rename from "Temporary Face Changes". + Callers changed. Don't bother documenting variable-pitch-mode. (Font Lock): Copyedits. Remove font-lock-maximum-size. (Useless Whitespace): Simplify description of delete-trailing-whitespace. Note active region case. @@ -1058,8 +1058,8 @@ 2011-10-13 Chong Yidong - * killing.texi (Deletion): Add xref to Using Region. Document - delete-forward-char. + * killing.texi (Deletion): Add xref to Using Region. + Document delete-forward-char. (Yanking): Move yank-excluded-properties to Lisp manual. Move C-y description here. Recommend C-u C-SPC for jumping to mark. (Kill Ring): Move kill ring variable documentation here. @@ -1079,10 +1079,10 @@ selection changes. Mention that commands like C-y set the mark. (Marking Objects): Add xref to Words node. Note that mark-word and mark-sexp also have the "extend region" behavior. - (Using Region): Mention M-$ in the table. Document - mark-even-if-inactive here instead of in Mark Ring. - (Mark Ring): Move mark-even-if-inactive to Using Region. Take - note of the "Mark Set" behavior. + (Using Region): Mention M-$ in the table. + Document mark-even-if-inactive here instead of in Mark Ring. + (Mark Ring): Move mark-even-if-inactive to Using Region. + Take note of the "Mark Set" behavior. (Disabled Transient Mark): Rename from "Persistent Mark" (Bug#9688). Callers changed. @@ -1097,8 +1097,8 @@ (Name Help): Remove an over-long joke. (Apropos): Document prefix args. Remove duplicated descriptions. (Help Mode): Add C-c C-b to table. Update TAB binding. - (Package Keywords): Rename from "Library by Keyword". Describe - new package menu interface. + (Package Keywords): Rename from "Library by Keyword". + Describe new package menu interface. (Help Files, Help Echo): Tweak description. * mini.texi (Completion Options): Add completion-cycle-threshold. @@ -1110,8 +1110,8 @@ 2011-10-08 Chong Yidong - * basic.texi (Position Info): Omit page commands. Document - count-words-region and count-words. + * basic.texi (Position Info): Omit page commands. + Document count-words-region and count-words. * text.texi (Pages): Move what-page documentation here. @@ -1134,8 +1134,8 @@ 2011-10-07 Chong Yidong - * basic.texi (Inserting Text): Add xref to Completion. Add - ucs-insert example, and document prefix argument. + * basic.texi (Inserting Text): Add xref to Completion. + Add ucs-insert example, and document prefix argument. (Moving Point): Fix introduction; C-f/C-b are no longer equivalent to left/right. Tweak left-char and right-char descriptions. M-left and M-right are now bound to left-word/right-word. @@ -1539,8 +1539,8 @@ 2011-04-24 Chong Yidong - * maintaining.texi (List Tags): Document next-file. Suggested by - Uday S Reddy. + * maintaining.texi (List Tags): Document next-file. + Suggested by Uday S Reddy. 2011-04-23 Juanma Barranquero === modified file 'etc/NEWS' --- etc/NEWS 2012-05-04 19:14:42 +0000 +++ etc/NEWS 2012-05-04 23:16:47 +0000 @@ -199,6 +199,7 @@ * Lisp changes in Emacs 24.2 +** New error type and new function `user-error'. Doesn't trigger the debugger. ** Completion *** New function `completion-table-with-quoting' to handle completion === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 19:17:01 +0000 +++ lisp/ChangeLog 2012-05-04 23:16:47 +0000 @@ -1,5 +1,50 @@ 2012-05-04 Stefan Monnier + * subr.el (user-error): New function. + * window.el (switch-to-buffer): + * vc/smerge-mode.el (smerge-resolve-function, smerge-resolve) + (smerge-match-conflict): + * simple.el (previous-matching-history-element) + (next-matching-history-element, goto-history-element, undo-more) + (undo-start): + * progmodes/etags.el (visit-tags-table-buffer, find-tag-tag) + (find-tag-noselect, find-tag-in-order, etags-goto-tag-location) + (next-file, tags-loop-scan, list-tags, complete-tag): + * progmodes/compile.el (compilation-loop): + * mouse.el (mouse-minibuffer-check): + * man.el (Man-bgproc-sentinel, Man-goto-page): + * info.el (Info-find-node-2, Info-extract-pointer, Info-history-back) + (Info-history-forward, Info-follow-reference, Info-menu) + (Info-extract-menu-item, Info-extract-menu-counting) + (Info-forward-node, Info-backward-node, Info-next-menu-item) + (Info-last-menu-item, Info-next-preorder, Info-last-preorder) + (Info-next-reference, Info-prev-reference, Info-index) + (Info-index-next, Info-follow-nearest-node) + (Info-copy-current-node-name): + * imenu.el (imenu--make-index-alist) + (imenu-default-create-index-function, imenu-add-to-menubar): + * files.el (basic-save-buffer, recover-file): + * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): + * emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments) + (checkdoc-message-text, checkdoc-defun): + * dabbrev.el (dabbrev-completion, dabbrev--abbrev-at-point): + * cus-edit.el (customize-changed-options, customize-rogue) + (customize-saved, custom-variable-set, custom-variable-mark-to-save) + (custom-variable-mark-to-reset-standard) + (custom-variable-reset-backup, custom-face-mark-to-reset-standard) + (custom-file): + * completion.el (check-completion-length): + * comint.el (comint-search-arg) + (comint-previous-matching-input-string-position) + (comint-previous-matching-input) + (comint-replace-by-expanded-history-before-point, comint-send-input) + (comint-copy-old-input, comint-backward-matching-input) + (comint-goto-process-mark, comint-set-process-mark): + * calendar/calendar.el (calendar-cursor-to-date): Use it. + * bindings.el (debug-ignored-errors): Remove regexps, add `user-error'. + +2012-05-04 Stefan Monnier + * dabbrev.el (dabbrev--ignore-case-p): New function. (dabbrev-completion, dabbrev-expand, dabbrev--substitute-expansion): Use it. === modified file 'lisp/bindings.el' --- lisp/bindings.el 2012-04-15 09:16:50 +0000 +++ lisp/bindings.el 2012-05-04 23:16:47 +0000 @@ -623,24 +623,13 @@ ;; Packages should add to this list appropriately when they are ;; loaded, rather than listing everything here. (setq debug-ignored-errors + ;; FIXME: Maybe beginning-of-line, beginning-of-buffer, end-of-line, + ;; end-of-buffer, end-of-file, buffer-read-only, and + ;; file-supersession should all be user-errors! `(beginning-of-line beginning-of-buffer end-of-line end-of-buffer end-of-file buffer-read-only file-supersession - ,(purecopy "^Previous command was not a yank$") - ,(purecopy "^Minibuffer window is not active$") - ,(purecopy "^No previous history search regexp$") - ,(purecopy "^No later matching history item$") - ,(purecopy "^No earlier matching history item$") - ,(purecopy "^End of history; no default available$") - ,(purecopy "^End of defaults; no next item$") - ,(purecopy "^Beginning of history; no preceding item$") - ,(purecopy "^No recursive edit is in progress$") - ,(purecopy "^Changes to be undone are outside visible portion of buffer$") - ,(purecopy "^No undo information in this buffer$") - ,(purecopy "^No further undo information") - ,(purecopy "^Save not confirmed$") - ,(purecopy "^Recover-file cancelled\\.$") - ,(purecopy "^Cannot switch buffers in a dedicated window$") + user-error ;; That's the main one! )) === modified file 'lisp/calendar/calendar.el' --- lisp/calendar/calendar.el 2012-03-31 20:03:59 +0000 +++ lisp/calendar/calendar.el 2012-05-04 23:16:47 +0000 @@ -1888,7 +1888,7 @@ ;; or on or before the digit of a 1-digit date. (if (not (and (looking-at "[ 0-9]?[0-9][^0-9]") (get-text-property (point) 'date))) - (if error (error "Not on a date!")) + (if error (user-error "Not on a date!")) ;; Convert segment to real month and year. (if (zerop month) (setq month 12)) ;; Go back to before the first date digit. @@ -1903,8 +1903,6 @@ ((and (= 1 month) (= segment 2)) (1+ displayed-year)) (t displayed-year)))))))) -(add-to-list 'debug-ignored-errors "Not on a date!") - ;; The following version of calendar-gregorian-from-absolute is preferred for ;; reasons of clarity, BUT it's much slower than the version that follows it. === modified file 'lisp/comint.el' --- lisp/comint.el 2012-05-01 13:37:56 +0000 +++ lisp/comint.el 2012-05-04 23:16:47 +0000 @@ -1076,10 +1076,10 @@ (defun comint-search-arg (arg) ;; First make sure there is a ring and that we are after the process mark (cond ((not (comint-after-pmark-p)) - (error "Not at command line")) + (user-error "Not at command line")) ((or (null comint-input-ring) (ring-empty-p comint-input-ring)) - (error "Empty input ring")) + (user-error "Empty input ring")) ((zerop arg) ;; arg of zero resets search from beginning, and uses arg of 1 (setq comint-input-ring-index nil) @@ -1146,7 +1146,7 @@ Moves relative to START, or `comint-input-ring-index'." (if (or (not (ring-p comint-input-ring)) (ring-empty-p comint-input-ring)) - (error "No history")) + (user-error "No history")) (let* ((len (ring-length comint-input-ring)) (motion (if (> arg 0) 1 -1)) (n (mod (- (or start (comint-search-start arg)) motion) len)) @@ -1186,7 +1186,7 @@ (let ((pos (comint-previous-matching-input-string-position regexp n))) ;; Has a match been found? (if (null pos) - (error "Not found") + (user-error "Not found") ;; If leaving the edit line, save partial input (if (null comint-input-ring-index) ;not yet on ring (setq comint-stored-incomplete-input @@ -1372,7 +1372,7 @@ (goto-char (match-beginning 0)) (if (not (search-forward old pos t)) (or silent - (error "Not found")) + (user-error "Not found")) (replace-match new t t) (message "History item: substituted")))) (t @@ -1777,7 +1777,7 @@ (interactive) ;; Note that the input string does not include its terminal newline. (let ((proc (get-buffer-process (current-buffer)))) - (if (not proc) (error "Current buffer has no process") + (if (not proc) (user-error "Current buffer has no process") (widen) (let* ((pmark (process-mark proc)) (intxt (if (>= (point) (marker-position pmark)) @@ -2201,7 +2201,7 @@ (let ((input (funcall comint-get-old-input)) (process (get-buffer-process (current-buffer)))) (if (not process) - (error "Current buffer has no process") + (user-error "Current buffer has no process") (goto-char (process-mark process)) (insert input)))) @@ -2508,7 +2508,7 @@ (save-excursion (while (/= n 0) (unless (re-search-backward regexp nil t dir) - (error "Not found")) + (user-error "Not found")) (unless (get-char-property (point) 'field) (setq n (- n dir)))) (field-beginning)))) @@ -3364,7 +3364,7 @@ from input that has not yet been sent." (interactive) (let ((proc (or (get-buffer-process (current-buffer)) - (error "Current buffer has no process")))) + (user-error "Current buffer has no process")))) (goto-char (process-mark proc)) (when (called-interactively-p 'interactive) (message "Point is now at the process mark")))) @@ -3389,7 +3389,7 @@ "Set the process mark at point." (interactive) (let ((proc (or (get-buffer-process (current-buffer)) - (error "Current buffer has no process")))) + (user-error "Current buffer has no process")))) (set-marker (process-mark proc) (point)) (message "Process mark set"))) @@ -3741,14 +3741,6 @@ (match-end regexp-group)) results)) results))) - -(dolist (x '("^Not at command line$" - "^Empty input ring$" - "^No history$" - "^Not found$" ; Too common? - "^Current buffer has no process$")) - (add-to-list 'debug-ignored-errors x)) - ;; Converting process modes to use comint mode ;; =========================================================================== === modified file 'lisp/completion.el' --- lisp/completion.el 2012-04-09 13:05:48 +0000 +++ lisp/completion.el 2012-05-04 23:16:47 +0000 @@ -1301,8 +1301,8 @@ (defun check-completion-length (string) (if (< (length string) completion-min-length) - (error "The string `%s' is too short to be saved as a completion" - string) + (user-error "The string `%s' is too short to be saved as a completion" + string) (list string))) (defun add-completion (string &optional num-uses last-use-time) @@ -2467,10 +2467,6 @@ (defvaralias 'cmpl-syntax-table 'completion-syntax-table) (defalias 'initialize-completions 'completion-initialize) -(dolist (x '("^To complete, the point must be after a symbol at least [0-9]* character long\\.$" - "^The string \".*\" is too short to be saved as a completion\\.$")) - (add-to-list 'debug-ignored-errors x)) - (provide 'completion) ;;; completion.el ends here === modified file 'lisp/cus-edit.el' --- lisp/cus-edit.el 2012-05-01 18:47:23 +0000 +++ lisp/cus-edit.el 2012-05-04 23:16:47 +0000 @@ -1254,8 +1254,8 @@ (if found (custom-buffer-create (custom-sort-items found t 'first) "*Customize Changed Options*") - (error "No user option defaults have been changed since Emacs %s" - since-version)))) + (user-error "No user option defaults have been changed since Emacs %s" + since-version)))) (defun customize-package-emacs-version (symbol package-version) "Return the Emacs version in which SYMBOL's meaning last changed. @@ -1386,7 +1386,7 @@ (default-value symbol)))) (push (list symbol 'custom-variable) found))))) (if (not found) - (error "No rogue user options") + (user-error "No rogue user options") (custom-buffer-create (custom-sort-items found t nil) "*Customize Rogue*")))) ;;;###autoload @@ -1403,8 +1403,8 @@ (get symbol 'saved-variable-comment)) (boundp symbol) (push (list symbol 'custom-variable) found)))) - (if (not found ) - (error "No saved user options") + (if (not found) + (user-error "No saved user options") (custom-buffer-create (custom-sort-items found t nil) "*Customize Saved*")))) @@ -2879,7 +2879,7 @@ (comment (widget-value comment-widget)) val) (cond ((eq state 'hidden) - (error "Cannot set hidden variable")) + (user-error "Cannot set hidden variable")) ((setq val (widget-apply child :validate)) (goto-char (widget-get val :from)) (error "%s" (widget-get val :error))) @@ -2921,7 +2921,7 @@ (comment (widget-value comment-widget)) val) (cond ((eq state 'hidden) - (error "Cannot set hidden variable")) + (user-error "Cannot set hidden variable")) ((setq val (widget-apply child :validate)) (goto-char (widget-get val :from)) (error "Saving %s: %s" symbol (widget-get val :error))) @@ -2995,7 +2995,7 @@ (let* ((symbol (widget-value widget))) (if (get symbol 'standard-value) (custom-variable-backup-value widget) - (error "No standard setting known for %S" symbol)) + (user-error "No standard setting known for %S" symbol)) (put symbol 'variable-comment nil) (put symbol 'customized-value nil) (put symbol 'customized-variable-comment nil) @@ -3057,7 +3057,7 @@ (condition-case nil (funcall set symbol (car value)) (error nil))) - (error "No backup value for %s" symbol)) + (user-error "No backup value for %s" symbol)) (put symbol 'customized-value (list (custom-quote (car value)))) (put symbol 'variable-comment comment) (put symbol 'customized-variable-comment comment) @@ -3795,7 +3795,7 @@ (value (get symbol 'face-defface-spec)) (comment-widget (widget-get widget :comment-widget))) (unless value - (error "No standard setting for this face")) + (user-error "No standard setting for this face")) (put symbol 'customized-face nil) (put symbol 'customized-face-comment nil) (custom-push-theme 'theme-face symbol 'user 'reset) @@ -4414,7 +4414,7 @@ ;; sense. (if no-error nil - (error "Saving settings from \"emacs -q\" would overwrite existing customizations")) + (user-error "Saving settings from \"emacs -q\" would overwrite existing customizations")) (file-chase-links (or custom-file user-init-file)))) ;; If recentf-mode is non-nil, this is defined. @@ -4875,18 +4875,7 @@ (put 'custom-mode 'mode-class 'special) (define-obsolete-variable-alias 'custom-mode-hook 'Custom-mode-hook "23.1") -(dolist (regexp - '("^No user option defaults have been changed since Emacs " - "^Invalid face:? " - "^No \\(?:customized\\|rogue\\|saved\\) user options" - "^No customizable items matching " - "^There are unset changes" - "^Cannot set hidden variable" - "^No \\(?:saved\\|backup\\) value for " - "^No standard setting known for " - "^No standard setting for this face" - "^Saving settings from \"emacs -q\" would overwrite existing customizations")) - (add-to-list 'debug-ignored-errors regexp)) +(add-to-list 'debug-ignored-errors "^Invalid face:? ") ;;; The End. === modified file 'lisp/dabbrev.el' --- lisp/dabbrev.el 2012-05-04 19:17:01 +0000 +++ lisp/dabbrev.el 2012-05-04 23:16:47 +0000 @@ -406,10 +406,10 @@ (dabbrev--find-all-expansions abbrev ignore-case-p)) (completion-ignore-case ignore-case-p)) (or (consp completion-list) - (error "No dynamic expansion for \"%s\" found%s" - abbrev - (if dabbrev--check-other-buffers - "" " in this-buffer"))) + (user-error "No dynamic expansion for \"%s\" found%s" + abbrev + (if dabbrev--check-other-buffers + "" " in this-buffer"))) (setq list (cond ((not (and ignore-case-p dabbrev-case-replace)) @@ -585,7 +585,7 @@ "Extract the symbol at point to serve as abbreviation." ;; Check for error (if (bobp) - (error "No possible abbreviation preceding point")) + (user-error "No possible abbreviation preceding point")) ;; Return abbrev at point (save-excursion ;; Record the end of the abbreviation. @@ -603,7 +603,7 @@ "\\sw\\|\\s_") nil t) (forward-char 1) - (error "No possible abbreviation preceding point")))) + (user-error "No possible abbreviation preceding point")))) ;; Now find the beginning of that one. (dabbrev--goto-start-of-abbrev) (buffer-substring-no-properties @@ -974,11 +974,6 @@ (cons found-string dabbrev--last-table)) result))))) -(dolist (mess '("^No dynamic expansion for .* found" - "^No further dynamic expansion for .* found$" - "^No possible abbreviation preceding point$")) - (add-to-list 'debug-ignored-errors mess)) - (provide 'dabbrev) ;;; dabbrev.el ends here === modified file 'lisp/emacs-lisp/checkdoc.el' --- lisp/emacs-lisp/checkdoc.el 2012-01-19 07:21:25 +0000 +++ lisp/emacs-lisp/checkdoc.el 2012-05-04 23:16:47 +0000 @@ -916,7 +916,7 @@ (progn (goto-char wrong) (if (not take-notes) - (error "%s" (checkdoc-error-text msg))))) + (user-error "%s" (checkdoc-error-text msg))))) (checkdoc-show-diagnostics) (if (called-interactively-p 'interactive) (message "No style warnings.")))) @@ -949,7 +949,7 @@ (e (checkdoc-file-comments-engine)) (checkdoc-generate-compile-warnings-flag (or take-notes checkdoc-generate-compile-warnings-flag))) - (if e (error "%s" (checkdoc-error-text e))) + (if e (user-error "%s" (checkdoc-error-text e))) (checkdoc-show-diagnostics) e)) @@ -987,7 +987,7 @@ (if (not (called-interactively-p 'interactive)) e (if e - (error "%s" (checkdoc-error-text e)) + (user-error "%s" (checkdoc-error-text e)) (checkdoc-show-diagnostics))) (goto-char p)) (if (called-interactively-p 'interactive) @@ -1027,19 +1027,14 @@ (car (memq checkdoc-spellcheck-documentation-flag '(defun t)))) (beg (save-excursion (beginning-of-defun) (point))) - (end (save-excursion (end-of-defun) (point))) - (msg (checkdoc-this-string-valid))) - (if msg (if no-error - (message "%s" (checkdoc-error-text msg)) - (error "%s" (checkdoc-error-text msg))) - (setq msg (checkdoc-message-text-search beg end)) - (if msg (if no-error - (message "%s" (checkdoc-error-text msg)) - (error "%s" (checkdoc-error-text msg))) - (setq msg (checkdoc-rogue-space-check-engine beg end)) - (if msg (if no-error - (message "%s" (checkdoc-error-text msg)) - (error "%s" (checkdoc-error-text msg)))))) + (end (save-excursion (end-of-defun) (point)))) + (dolist (fun (list #'checkdoc-this-string-valid + (lambda () (checkdoc-message-text-search beg end)) + (lambda () (checkdoc-rogue-space-check-engine beg end)))) + (let ((msg (funcall fun))) + (if msg (if no-error + (message "%s" (checkdoc-error-text msg)) + (user-error "%s" (checkdoc-error-text msg)))))) (if (called-interactively-p 'interactive) (message "Checkdoc: done.")))))) @@ -2644,12 +2639,6 @@ (custom-add-option 'emacs-lisp-mode-hook 'checkdoc-minor-mode) -(add-to-list 'debug-ignored-errors - "Argument `.*' should appear (as .*) in the doc string") -(add-to-list 'debug-ignored-errors - "Lisp symbol `.*' should appear in quotes") -(add-to-list 'debug-ignored-errors "Disambiguate .* by preceding .*") - (provide 'checkdoc) ;;; checkdoc.el ends here === modified file 'lisp/emacs-lisp/easy-mmode.el' --- lisp/emacs-lisp/easy-mmode.el 2012-04-14 12:48:27 +0000 +++ lisp/emacs-lisp/easy-mmode.el 2012-05-04 23:16:47 +0000 @@ -572,8 +572,6 @@ (when was-narrowed (,narrowfun))))))) (unless name (setq name base-name)) `(progn - (add-to-list 'debug-ignored-errors - ,(concat "^No \\(previous\\|next\\) " (regexp-quote name))) (defun ,next-sym (&optional count) ,(format "Go to the next COUNT'th %s." name) (interactive "p") @@ -584,7 +582,7 @@ `(if (not (re-search-forward ,re nil t count)) (if (looking-at ,re) (goto-char (or ,(if endfun `(,endfun)) (point-max))) - (error "No next %s" ,name)) + (user-error "No next %s" ,name)) (goto-char (match-beginning 0)) (when (and (eq (current-buffer) (window-buffer (selected-window))) (called-interactively-p 'interactive)) @@ -603,7 +601,7 @@ (if (< count 0) (,next-sym (- count)) ,(funcall when-narrowed `(unless (re-search-backward ,re nil t count) - (error "No previous %s" ,name))) + (user-error "No previous %s" ,name))) ,@body)) (put ',prev-sym 'definition-name ',base)))) === modified file 'lisp/files.el' --- lisp/files.el 2012-05-04 19:14:42 +0000 +++ lisp/files.el 2012-05-04 23:16:47 +0000 @@ -4497,7 +4497,7 @@ (format "%s has changed since visited or saved. Save anyway? " (file-name-nondirectory buffer-file-name))) - (error "Save not confirmed")) + (user-error "Save not confirmed")) (save-restriction (widen) (save-excursion @@ -5364,7 +5364,7 @@ (insert-file-contents file-name nil) (set-buffer-file-coding-system coding-system)) (after-find-file nil nil t)) - (t (error "Recover-file cancelled"))))) + (t (user-error "Recover-file cancelled"))))) (defun recover-session () "Recover auto save files from a previous Emacs session. === modified file 'lisp/imenu.el' --- lisp/imenu.el 2012-04-19 21:34:49 +0000 +++ lisp/imenu.el 2012-05-04 23:16:47 +0000 @@ -579,7 +579,7 @@ (funcall imenu-create-index-function)))) (imenu--truncate-items imenu--index-alist))) (or imenu--index-alist noerror - (error "No items suitable for an index found in this buffer")) + (user-error "No items suitable for an index found in this buffer")) (or imenu--index-alist (setq imenu--index-alist (list nil))) ;; Add a rescan option to the index. @@ -695,7 +695,7 @@ ((and imenu-generic-expression) (imenu--generic-function imenu-generic-expression)) (t - (error "This buffer cannot use `imenu-default-create-index-function'")))) + (user-error "This buffer cannot use `imenu-default-create-index-function'")))) ;;; ;;; Generic index gathering function. @@ -968,8 +968,8 @@ `(menu-item ,name ,(make-sparse-keymap "Imenu"))) (use-local-map newmap) (add-hook 'menu-bar-update-hook 'imenu-update-menubar))) - (error "The mode `%s' does not support Imenu" - (format-mode-line mode-name)))) + (user-error "The mode `%s' does not support Imenu" + (format-mode-line mode-name)))) ;;;###autoload (defun imenu-add-menubar-index () @@ -1058,12 +1058,6 @@ (apply function (car index-item) position rest)) (run-hooks 'imenu-after-jump-hook))) -(dolist (mess - '("^No items suitable for an index found in this buffer$" - "^This buffer cannot use `imenu-default-create-index-function'$" - "^The mode `.*' does not support Imenu$")) - (add-to-list 'debug-ignored-errors mess)) - (provide 'imenu) ;;; imenu.el ends here === modified file 'lisp/info.el' --- lisp/info.el 2012-03-21 16:56:55 +0000 +++ lisp/info.el 2012-05-04 23:16:47 +0000 @@ -1071,7 +1071,7 @@ (throw 'foo t)) ;; No such anchor in tag table or node in tag table or file - (error "No such node or anchor: %s" nodename)) + (user-error "No such node or anchor: %s" nodename)) (Info-select-node) (goto-char (point-min)) @@ -2012,8 +2012,8 @@ (concat name ":" (Info-following-node-name-re)) bound t) (match-string-no-properties 1)) ((not (eq errorname t)) - (error "Node has no %s" - (capitalize (or errorname name))))))))) + (user-error "Node has no %s" + (capitalize (or errorname name))))))))) (defun Info-following-node-name-re (&optional allowedchars) "Return a regexp matching a node name. @@ -2082,7 +2082,7 @@ "Go back in the history to the last node visited." (interactive) (or Info-history - (error "This is the first Info node you looked at")) + (user-error "This is the first Info node you looked at")) (let ((history-forward (cons (list Info-current-file Info-current-node (point)) Info-history-forward)) @@ -2102,7 +2102,7 @@ "Go forward in the history of visited nodes." (interactive) (or Info-history-forward - (error "This is the last Info node you looked at")) + (user-error "This is the last Info node you looked at")) (let ((history-forward (cdr Info-history-forward)) filename nodename opoint) (setq filename (car (car Info-history-forward))) @@ -2388,7 +2388,7 @@ completions nil t))) (list (if (equal input "") default input) current-prefix-arg)) - (error "No cross-references in this node")))) + (user-error "No cross-references in this node")))) (unless footnotename (error "No reference was specified")) @@ -2419,7 +2419,8 @@ (abs (- prev-ref (point)))) next-ref prev-ref)) ((or next-ref prev-ref)) - ((error "No cross-reference named %s" footnotename)))) + ((user-error "No cross-reference named %s" + footnotename)))) (setq target (Info-extract-menu-node-name t)))) (while (setq i (string-match "[ \t\n]+" target i)) (setq target (concat (substring target 0 i) " " @@ -2564,7 +2565,7 @@ (save-excursion (goto-char (point-min)) (if (not (search-forward "\n* menu:" nil t)) - (error "No menu in this node")) + (user-error "No menu in this node")) (setq beg (point)) (and (< (point) p) (save-excursion @@ -2605,10 +2606,10 @@ (let ((case-fold-search t)) (goto-char (point-min)) (or (search-forward "\n* menu:" nil t) - (error "No menu in this node")) + (user-error "No menu in this node")) (or (re-search-forward (concat "\n\\* +" menu-item ":") nil t) (re-search-forward (concat "\n\\* +" menu-item) nil t) - (error "No such item in menu")) + (user-error "No such item in menu")) (beginning-of-line) (forward-char 2) (Info-extract-menu-node-name nil (Info-index-node)))))) @@ -2624,7 +2625,7 @@ (match-beginning 0)))) (goto-char (point-min)) (or (search-forward "\n* menu:" bound t) - (error "No menu in this node")) + (user-error "No menu in this node")) (if count (or (search-forward "\n* " bound t count) (error "Too few items in menu")) @@ -2696,7 +2697,7 @@ (if Info-history-skip-intermediate-nodes (setq Info-history old-history))))) (no-error nil) - (t (error "No pointer forward from this node"))))) + (t (user-error "No pointer forward from this node"))))) (defun Info-backward-node () "Go backward one node, considering all nodes as forming one sequence." @@ -2705,7 +2706,7 @@ (upnode (Info-extract-pointer "up" t)) (case-fold-search t)) (cond ((and upnode (string-match "(" upnode)) - (error "First node in file")) + (user-error "First node in file")) ((and upnode (or (null prevnode) ;; Use string-equal, not equal, ;; to ignore text properties. @@ -2723,7 +2724,7 @@ (if Info-history-skip-intermediate-nodes (setq Info-history old-history)))) (t - (error "No pointer backward from this node"))))) + (user-error "No pointer backward from this node"))))) (defun Info-exit () "Exit Info by selecting some other buffer." @@ -2744,7 +2745,7 @@ (and (search-forward "\n* " nil t) (Info-extract-menu-node-name))))) (if node (Info-goto-node node) - (error "No more items in menu")))) + (user-error "No more items in menu")))) (defun Info-last-menu-item () "Go to the node of the previous menu item." @@ -2757,7 +2758,7 @@ (and (search-backward "\n* menu:" nil t) (point))))) (or (and beg (search-backward "\n* " beg t)) - (error "No previous items in menu"))) + (user-error "No previous items in menu"))) (Info-goto-node (save-excursion (goto-char (match-end 0)) (Info-extract-menu-node-name))))) @@ -2782,7 +2783,7 @@ (if Info-history-skip-intermediate-nodes (setq Info-history old-history)))) (t - (error "No more nodes")))) + (user-error "No more nodes")))) (defun Info-last-preorder () "Go to the last node, popping up a level if there is none." @@ -2822,7 +2823,7 @@ (let ((case-fold-search t)) (or (search-forward "\n* Menu:" nil t) (goto-char (point-max))))) - (t (error "No previous nodes")))) + (t (user-error "No previous nodes")))) (defun Info-scroll-up () "Scroll one screenful forward in Info, considering all nodes as one sequence. @@ -2911,11 +2912,11 @@ (or (re-search-forward pat nil t) (progn (goto-char old-pt) - (error "No cross references in this node"))))) + (user-error "No cross references in this node"))))) (goto-char (or (match-beginning 1) (match-beginning 0))) (if (looking-at "\\* Menu:") (if recur - (error "No cross references in this node") + (user-error "No cross references in this node") (Info-next-reference t)) (if (looking-at "^\\* ") (forward-char 2))))) @@ -2932,11 +2933,11 @@ (or (re-search-backward pat nil t) (progn (goto-char old-pt) - (error "No cross references in this node"))))) + (user-error "No cross references in this node"))))) (goto-char (or (match-beginning 1) (match-beginning 0))) (if (looking-at "\\* Menu:") (if recur - (error "No cross references in this node") + (user-error "No cross references in this node") (Info-prev-reference t)) (if (looking-at "^\\* ") (forward-char 2))))) @@ -3107,7 +3108,7 @@ (or matches (progn (Info-goto-node orignode) - (error "No `%s' in index" topic))) + (user-error "No `%s' in index" topic))) ;; Here it is a feature that assoc is case-sensitive. (while (setq found (assoc topic matches)) (setq exact (cons found exact) @@ -3120,7 +3121,7 @@ "Go to the next matching index item from the last \\\\[Info-index] command." (interactive "p") (or Info-index-alternatives - (error "No previous `i' command")) + (user-error "No previous `i' command")) (while (< num 0) (setq num (+ num (length Info-index-alternatives)))) (while (> num 0) @@ -3640,7 +3641,7 @@ ;; Don't raise an error when mouse-1 is bound to this - it's ;; often used to simply select the window or frame. (eq 'mouse-1 (event-basic-type last-input-event))) - (error "Point neither on reference nor in menu item description"))) + (user-error "Point neither on reference nor in menu item description"))) ;; Common subroutine. (defun Info-try-follow-nearest-node (&optional fork) @@ -3907,7 +3908,7 @@ With a zero prefix arg, put the name inside a function call to `info'." (interactive "P") (unless Info-current-node - (error "No current Info node")) + (user-error "No current Info node")) (let ((node (if (stringp Info-current-file) (concat "(" (file-name-nondirectory Info-current-file) ") " Info-current-node)))) @@ -4899,25 +4900,8 @@ (erase-buffer)) (Info-speedbar-hierarchy-buttons nil 0)) -(dolist (mess '("^First node in file$" - "^No `.*' in index$" - "^No cross-reference named" - "^No cross.references in this node$" - "^No current Info node$" - "^No menu in this node$" - "^No more items in menu$" - "^No more nodes$" - "^No pointer \\(?:forward\\|backward\\) from this node$" - "^No previous `i' command$" - "^No previous items in menu$" - "^No previous nodes$" - "^No such item in menu$" - "^No such node or anchor" - "^Node has no" - "^Point neither on reference nor in menu item description$" - "^This is the \\(?:first\\|last\\) Info node you looked at$" - search-failed)) - (add-to-list 'debug-ignored-errors mess)) +;; FIXME: Really? Why here? +(add-to-list 'debug-ignored-errors 'search-failed) ;;;; Desktop support === modified file 'lisp/man.el' --- lisp/man.el 2012-04-28 21:59:08 +0000 +++ lisp/man.el 2012-05-04 23:16:47 +0000 @@ -1273,8 +1273,8 @@ (if (not Man-page-list) (let ((args Man-arguments)) (kill-buffer (current-buffer)) - (error "Can't find the %s manpage" - (Man-page-from-arguments args))) + (user-error "Can't find the %s manpage" + (Man-page-from-arguments args))) (set-buffer-modified-p nil)))) ;; Restore case-fold-search before calling ;; Man-notify-when-ready because it may switch buffers. @@ -1649,7 +1649,7 @@ (when Man-page-list (if (or (< page 1) (> page (length Man-page-list))) - (error "No manpage %d found" page)) + (user-error "No manpage %d found" page)) (let* ((page-range (nth (1- page) Man-page-list)) (page-start (car page-range)) (page-end (car (cdr page-range)))) @@ -1742,9 +1742,6 @@ ;; Init the man package variables, if not already done. (Man-init-defvars) -(add-to-list 'debug-ignored-errors "^No manpage [0-9]* found$") -(add-to-list 'debug-ignored-errors "^Can't find the .* manpage$") - (provide 'man) ;;; man.el ends here === modified file 'lisp/mouse.el' --- lisp/mouse.el 2012-04-27 03:10:38 +0000 +++ lisp/mouse.el 2012-05-04 23:16:47 +0000 @@ -298,7 +298,7 @@ (let ((w (posn-window (event-start event)))) (and (window-minibuffer-p w) (not (minibuffer-window-active-p w)) - (error "Minibuffer window is not active"))) + (user-error "Minibuffer window is not active"))) ;; Give temporary modes such as isearch a chance to turn off. (run-hooks 'mouse-leave-buffer-hook)) === modified file 'lisp/progmodes/compile.el' --- lisp/progmodes/compile.el 2012-04-09 13:05:48 +0000 +++ lisp/progmodes/compile.el 2012-05-04 23:16:47 +0000 @@ -2132,14 +2132,14 @@ (if (or (eq (get-text-property ,limit 'compilation-message) (get-text-property opt 'compilation-message)) (eq pt opt)) - (error ,error compilation-error) + (user-error ,error compilation-error) (setq pt ,limit))) ;; prop 'compilation-message usually has 2 changes, on and off, so ;; re-search if off (or (setq msg (get-text-property pt 'compilation-message)) (if (setq pt (,property-change pt 'compilation-message nil ,limit)) (setq msg (get-text-property pt 'compilation-message))) - (error ,error compilation-error)) + (user-error ,error compilation-error)) (or (< (compilation--message->type msg) compilation-skip-threshold) (if different-file (eq (prog1 last @@ -2660,9 +2660,6 @@ (if (eq v fs) (remhash k compilation-locs))) compilation-locs))) -(add-to-list 'debug-ignored-errors "\\`No more [-a-z ]+s yet\\'") -(add-to-list 'debug-ignored-errors "\\`Moved past last .*") - ;;; Compatibility with the old compile.el. (defvaralias 'compilation-last-buffer 'next-error-last-buffer) === modified file 'lisp/progmodes/etags.el' --- lisp/progmodes/etags.el 2012-04-26 12:43:28 +0000 +++ lisp/progmodes/etags.el 2012-05-04 23:16:47 +0000 @@ -554,11 +554,10 @@ (cond ((eq cont 'same) ;; Use the ambient value of tags-file-name. (or tags-file-name - (error "%s" - (substitute-command-keys - (concat "No tags table in use; " - "use \\[visit-tags-table] to select one"))))) - + (user-error "%s" + (substitute-command-keys + (concat "No tags table in use; " + "use \\[visit-tags-table] to select one"))))) ((eq t cont) ;; Find the next table. (if (tags-next-table) @@ -566,7 +565,6 @@ (while (and (not (or (get-file-buffer tags-file-name) (file-exists-p tags-file-name))) (tags-next-table))))) - (t ;; Pick a table out of our hat. (tags-table-check-computed-list) ;Get it up to date, we might use it. @@ -706,7 +704,8 @@ (kill-local-variable 'tags-file-name) (if (eq local-tags-file-name tags-file-name) (setq tags-file-name nil)) - (error "File %s is not a valid tags table" local-tags-file-name))))) + (user-error "File %s is not a valid tags table" + local-tags-file-name))))) (defun tags-reset-tags-tables () "Reset tags state to cancel effect of any previous \\[visit-tags-table] or \\[find-tag]." @@ -831,7 +830,7 @@ (tags-lazy-completion-table) nil nil nil nil default))) (if (equal spec "") - (or default (error "There is no default tag")) + (or default (user-error "There is no default tag")) spec))) (defvar last-tag nil @@ -886,7 +885,7 @@ (if (eq '- next-p) ;; Pop back to a previous location. (if (ring-empty-p tags-location-ring) - (error "No previous tag locations") + (user-error "No previous tag locations") (let ((marker (ring-remove tags-location-ring 0))) (prog1 ;; Move to the saved location. @@ -1150,8 +1149,8 @@ (set-marker (car tag-lines-already-matched) nil nil) (setq tag-lines-already-matched (cdr tag-lines-already-matched))) (set-marker match-marker nil nil) - (error "No %stags %s %s" (if first-search "" "more ") - matching pattern)) + (user-error "No %stags %s %s" (if first-search "" "more ") + matching pattern)) ;; Found a tag; extract location info. (beginning-of-line) @@ -1391,8 +1390,8 @@ offset (* 3 offset))) ; expand search window (or found (re-search-forward pat nil t) - (error "Rerun etags: `%s' not found in %s" - pat buffer-file-name))) + (user-error "Rerun etags: `%s' not found in %s" + pat buffer-file-name))) ;; Position point at the right place ;; if the search string matched an extra Ctrl-m at the beginning. (and (eq selective-display t) @@ -1742,7 +1741,7 @@ (and novisit (get-buffer " *next-file*") (kill-buffer " *next-file*")) - (error "All files processed")) + (user-error "All files processed")) (let* ((next (car next-file-list)) (buffer (get-file-buffer next)) (new (not buffer))) @@ -1775,9 +1774,9 @@ "Form for `tags-loop-continue' to eval to change one file.") (defvar tags-loop-scan - '(error "%s" - (substitute-command-keys - "No \\[tags-search] or \\[tags-query-replace] in progress")) + '(user-error "%s" + (substitute-command-keys + "No \\[tags-search] or \\[tags-query-replace] in progress")) "Form for `tags-loop-continue' to eval to scan one file. If it returns non-nil, this file needs processing by evalling \`tags-loop-operate'. Otherwise, move on to the next file.") @@ -1937,7 +1936,7 @@ (if (funcall list-tags-function file) (setq gotany t))) (or gotany - (error "File %s not in current tags tables" file))))) + (user-error "File %s not in current tags tables" file))))) (with-current-buffer "*Tags List*" (require 'apropos) (with-no-warnings @@ -2067,28 +2066,15 @@ (interactive) (or tags-table-list tags-file-name - (error "%s" - (substitute-command-keys - "No tags table loaded; try \\[visit-tags-table]"))) + (user-error "%s" + (substitute-command-keys + "No tags table loaded; try \\[visit-tags-table]"))) (let ((comp-data (tags-completion-at-point-function))) (if (null comp-data) - (error "Nothing to complete") + (user-error "Nothing to complete") (completion-in-region (car comp-data) (cadr comp-data) (nth 2 comp-data) (plist-get (nthcdr 3 comp-data) :predicate))))) - -(dolist (x '("^No tags table in use; use .* to select one$" - "^There is no default tag$" - "^No previous tag locations$" - "^File .* is not a valid tags table$" - "^No \\(more \\|\\)tags \\(matching\\|containing\\) " - "^Rerun etags: `.*' not found in " - "^All files processed$" - "^No .* or .* in progress$" - "^File .* not in current tags tables$" - "^No tags table loaded" - "^Nothing to complete$")) - (add-to-list 'debug-ignored-errors x)) (provide 'etags) === modified file 'lisp/simple.el' --- lisp/simple.el 2012-05-01 16:10:02 +0000 +++ lisp/simple.el 2012-05-04 23:16:47 +0000 @@ -1465,7 +1465,7 @@ (list (if (string= regexp "") (if minibuffer-history-search-history (car minibuffer-history-search-history) - (error "No previous history search regexp")) + (user-error "No previous history search regexp")) regexp) (prefix-numeric-value current-prefix-arg)))) (unless (zerop n) @@ -1491,9 +1491,9 @@ (setq prevpos pos) (setq pos (min (max 1 (+ pos (if (< n 0) -1 1))) (length history))) (when (= pos prevpos) - (error (if (= pos 1) - "No later matching history item" - "No earlier matching history item"))) + (user-error (if (= pos 1) + "No later matching history item" + "No earlier matching history item"))) (setq match-string (if (eq minibuffer-history-sexp-flag (minibuffer-depth)) (let ((print-level nil)) @@ -1536,7 +1536,7 @@ (list (if (string= regexp "") (if minibuffer-history-search-history (car minibuffer-history-search-history) - (error "No previous history search regexp")) + (user-error "No previous history search regexp")) regexp) (prefix-numeric-value current-prefix-arg)))) (previous-matching-history-element regexp (- n))) @@ -1595,11 +1595,11 @@ (setq minibuffer-text-before-history (minibuffer-contents-no-properties))) (if (< nabs minimum) - (if minibuffer-default - (error "End of defaults; no next item") - (error "End of history; no default available"))) + (user-error (if minibuffer-default + "End of defaults; no next item" + "End of history; no default available"))) (if (> nabs (length (symbol-value minibuffer-history-variable))) - (error "Beginning of history; no preceding item")) + (user-error "Beginning of history; no preceding item")) (unless (memq last-command '(next-history-element previous-history-element)) (let ((prompt-end (minibuffer-prompt-end))) @@ -1945,8 +1945,8 @@ Call `undo-start' to get ready to undo recent changes, then call `undo-more' one or more times to undo them." (or (listp pending-undo-list) - (error (concat "No further undo information" - (and undo-in-region " for region")))) + (user-error (concat "No further undo information" + (and undo-in-region " for region")))) (let ((undo-in-progress t)) ;; Note: The following, while pulling elements off ;; `pending-undo-list' will call primitive change functions which @@ -1972,7 +1972,7 @@ that apply to text between BEG and END are used; other undo elements are ignored. If BEG and END are nil, all undo elements are used." (if (eq buffer-undo-list t) - (error "No undo information in this buffer")) + (user-error "No undo information in this buffer")) (setq pending-undo-list (if (and beg end (not (= beg end))) (undo-make-selective-list (min beg end) (max beg end)) @@ -3244,10 +3244,6 @@ :type 'boolean :group 'killing) -(put 'text-read-only 'error-conditions - '(text-read-only buffer-read-only error)) -(put 'text-read-only 'error-message (purecopy "Text is read-only")) - (defun kill-region (beg end &optional yank-handler) "Kill (\"cut\") text between point and mark. This deletes the text from the buffer and saves it in the kill ring. === modified file 'lisp/subr.el' --- lisp/subr.el 2012-05-02 21:34:57 +0000 +++ lisp/subr.el 2012-05-04 23:16:47 +0000 @@ -274,6 +274,17 @@ (signal 'error (list (apply 'format args))))) (set-advertised-calling-convention 'error '(string &rest args) "23.1") +(defun user-error (format &rest args) + "Signal a pilot error, making error message by passing all args to `format'. +In Emacs, the convention is that error messages start with a capital +letter but *do not* end with a period. Please follow this convention +for the sake of consistency. +This is just like `error' except that `user-error's are expected to be the +result of an incorrect manipulation on the part of the user, rather than the +result of an actual problem." + (while t + (signal 'user-error (list (apply #'format format args))))) + ;; We put this here instead of in frame.el so that it's defined even on ;; systems where frame.el isn't loaded. (defun frame-configuration-p (object) === modified file 'lisp/vc/smerge-mode.el' --- lisp/vc/smerge-mode.el 2012-02-08 02:12:24 +0000 +++ lisp/vc/smerge-mode.el 2012-05-04 23:16:47 +0000 @@ -342,12 +342,11 @@ )))) (defvar smerge-resolve-function - (lambda () (error "Don't know how to resolve")) + (lambda () (user-error "Don't know how to resolve")) "Mode-specific merge function. The function is called with zero or one argument (non-nil if the resolution function should only apply safe heuristics) and with the match data set according to `smerge-match-conflict'.") -(add-to-list 'debug-ignored-errors "Don't know how to resolve") (defvar smerge-text-properties `(help-echo "merge conflict: mouse-3 shows a menu" @@ -626,7 +625,7 @@ (set-match-data md) (smerge-keep-n choice)) (t - (error "Don't know how to resolve")))) + (user-error "Don't know how to resolve")))) (if (buffer-name buf) (kill-buffer buf)) (if m (delete-file m)) (if b (delete-file b)) @@ -810,9 +809,7 @@ (when base-start (1- base-start)) base-start (1- other-start) other-start)) t) - (search-failed (error "Point not in conflict region"))))) - -(add-to-list 'debug-ignored-errors "Point not in conflict region") + (search-failed (user-error "Point not in conflict region"))))) (defun smerge-conflict-overlay (pos) "Return the conflict overlay at POS if any." === modified file 'lisp/window.el' --- lisp/window.el 2012-05-02 07:20:29 +0000 +++ lisp/window.el 2012-05-04 23:16:47 +0000 @@ -5094,11 +5094,11 @@ ((eq buffer (window-buffer))) ((window-minibuffer-p) (if force-same-window - (error "Cannot switch buffers in minibuffer window") + (user-error "Cannot switch buffers in minibuffer window") (pop-to-buffer buffer norecord))) ((eq (window-dedicated-p) t) (if force-same-window - (error "Cannot switch buffers in a dedicated window") + (user-error "Cannot switch buffers in a dedicated window") (pop-to-buffer buffer norecord))) (t (set-window-buffer nil buffer))) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-03 20:04:29 +0000 +++ src/ChangeLog 2012-05-04 23:16:47 +0000 @@ -1,3 +1,13 @@ +2012-05-04 Stefan Monnier + + * data.c (PUT_ERROR): New macro. + (syms_of_data): Use it. Add new error type `user-error'. + * undo.c (user_error): New function. + (Fprimitive_undo): Use it. + * print.c (print_error_message): Adjust print style for `user-error'. + * keyboard.c (user_error): New function. + (Fexit_recursive_edit, Fabort_recursive_edit): Use it. + 2012-05-03 Paul Eggert Do not limit current-time-string to years 1000..9999. @@ -19,8 +29,8 @@ localtime/gmtime, but also accessing these functions' results including their tm_zone values if any, and any related TZ setting. (format_time_string): Last arg is now struct tm *, not struct tm **, - so that the struct tm is saved in the critical section. All - callers changed. Simplify allocation of initial buffer, partly + so that the struct tm is saved in the critical section. + All callers changed. Simplify allocation of initial buffer, partly motivated by the fact that memory allocation needs to be outside the critical section. === modified file 'src/data.c' --- src/data.c 2012-01-19 07:21:25 +0000 +++ src/data.c 2012-05-04 23:16:47 +0000 @@ -51,7 +51,7 @@ Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound; static Lisp_Object Qsubr; Lisp_Object Qerror_conditions, Qerror_message, Qtop_level; -Lisp_Object Qerror, Qquit, Qargs_out_of_range; +Lisp_Object Qerror, Quser_error, Qquit, Qargs_out_of_range; static Lisp_Object Qwrong_type_argument; Lisp_Object Qvoid_variable, Qvoid_function; static Lisp_Object Qcyclic_function_indirection; @@ -2937,6 +2937,7 @@ DEFSYM (Qtop_level, "top-level"); DEFSYM (Qerror, "error"); + DEFSYM (Quser_error, "user-error"); DEFSYM (Qquit, "quit"); DEFSYM (Qwrong_type_argument, "wrong-type-argument"); DEFSYM (Qargs_out_of_range, "args-out-of-range"); @@ -3004,102 +3005,42 @@ Fput (Qerror, Qerror_message, make_pure_c_string ("error")); - Fput (Qquit, Qerror_conditions, - pure_cons (Qquit, Qnil)); - Fput (Qquit, Qerror_message, - make_pure_c_string ("Quit")); - - Fput (Qwrong_type_argument, Qerror_conditions, - pure_cons (Qwrong_type_argument, error_tail)); - Fput (Qwrong_type_argument, Qerror_message, - make_pure_c_string ("Wrong type argument")); - - Fput (Qargs_out_of_range, Qerror_conditions, - pure_cons (Qargs_out_of_range, error_tail)); - Fput (Qargs_out_of_range, Qerror_message, - make_pure_c_string ("Args out of range")); - - Fput (Qvoid_function, Qerror_conditions, - pure_cons (Qvoid_function, error_tail)); - Fput (Qvoid_function, Qerror_message, - make_pure_c_string ("Symbol's function definition is void")); - - Fput (Qcyclic_function_indirection, Qerror_conditions, - pure_cons (Qcyclic_function_indirection, error_tail)); - Fput (Qcyclic_function_indirection, Qerror_message, - make_pure_c_string ("Symbol's chain of function indirections contains a loop")); - - Fput (Qcyclic_variable_indirection, Qerror_conditions, - pure_cons (Qcyclic_variable_indirection, error_tail)); - Fput (Qcyclic_variable_indirection, Qerror_message, - make_pure_c_string ("Symbol's chain of variable indirections contains a loop")); - +#define PUT_ERROR(sym, tail, msg) \ + Fput (sym, Qerror_conditions, pure_cons (sym, tail)); \ + Fput (sym, Qerror_message, make_pure_c_string (msg)) + + PUT_ERROR (Qquit, Qnil, "Quit"); + + PUT_ERROR (Quser_error, error_tail, ""); + PUT_ERROR (Qwrong_type_argument, error_tail, "Wrong type argument"); + PUT_ERROR (Qargs_out_of_range, error_tail, "Args out of range"); + PUT_ERROR (Qvoid_function, error_tail, + "Symbol's function definition is void"); + PUT_ERROR (Qcyclic_function_indirection, error_tail, + "Symbol's chain of function indirections contains a loop"); + PUT_ERROR (Qcyclic_variable_indirection, error_tail, + "Symbol's chain of variable indirections contains a loop"); DEFSYM (Qcircular_list, "circular-list"); - Fput (Qcircular_list, Qerror_conditions, - pure_cons (Qcircular_list, error_tail)); - Fput (Qcircular_list, Qerror_message, - make_pure_c_string ("List contains a loop")); - - Fput (Qvoid_variable, Qerror_conditions, - pure_cons (Qvoid_variable, error_tail)); - Fput (Qvoid_variable, Qerror_message, - make_pure_c_string ("Symbol's value as variable is void")); - - Fput (Qsetting_constant, Qerror_conditions, - pure_cons (Qsetting_constant, error_tail)); - Fput (Qsetting_constant, Qerror_message, - make_pure_c_string ("Attempt to set a constant symbol")); - - Fput (Qinvalid_read_syntax, Qerror_conditions, - pure_cons (Qinvalid_read_syntax, error_tail)); - Fput (Qinvalid_read_syntax, Qerror_message, - make_pure_c_string ("Invalid read syntax")); - - Fput (Qinvalid_function, Qerror_conditions, - pure_cons (Qinvalid_function, error_tail)); - Fput (Qinvalid_function, Qerror_message, - make_pure_c_string ("Invalid function")); - - Fput (Qwrong_number_of_arguments, Qerror_conditions, - pure_cons (Qwrong_number_of_arguments, error_tail)); - Fput (Qwrong_number_of_arguments, Qerror_message, - make_pure_c_string ("Wrong number of arguments")); - - Fput (Qno_catch, Qerror_conditions, - pure_cons (Qno_catch, error_tail)); - Fput (Qno_catch, Qerror_message, - make_pure_c_string ("No catch for tag")); - - Fput (Qend_of_file, Qerror_conditions, - pure_cons (Qend_of_file, error_tail)); - Fput (Qend_of_file, Qerror_message, - make_pure_c_string ("End of file during parsing")); + PUT_ERROR (Qcircular_list, error_tail, "List contains a loop"); + PUT_ERROR (Qvoid_variable, error_tail, "Symbol's value as variable is void"); + PUT_ERROR (Qsetting_constant, error_tail, + "Attempt to set a constant symbol"); + PUT_ERROR (Qinvalid_read_syntax, error_tail, "Invalid read syntax"); + PUT_ERROR (Qinvalid_function, error_tail, "Invalid function"); + PUT_ERROR (Qwrong_number_of_arguments, error_tail, + "Wrong number of arguments"); + PUT_ERROR (Qno_catch, error_tail, "No catch for tag"); + PUT_ERROR (Qend_of_file, error_tail, "End of file during parsing"); arith_tail = pure_cons (Qarith_error, error_tail); - Fput (Qarith_error, Qerror_conditions, - arith_tail); - Fput (Qarith_error, Qerror_message, - make_pure_c_string ("Arithmetic error")); - - Fput (Qbeginning_of_buffer, Qerror_conditions, - pure_cons (Qbeginning_of_buffer, error_tail)); - Fput (Qbeginning_of_buffer, Qerror_message, - make_pure_c_string ("Beginning of buffer")); - - Fput (Qend_of_buffer, Qerror_conditions, - pure_cons (Qend_of_buffer, error_tail)); - Fput (Qend_of_buffer, Qerror_message, - make_pure_c_string ("End of buffer")); - - Fput (Qbuffer_read_only, Qerror_conditions, - pure_cons (Qbuffer_read_only, error_tail)); - Fput (Qbuffer_read_only, Qerror_message, - make_pure_c_string ("Buffer is read-only")); - - Fput (Qtext_read_only, Qerror_conditions, - pure_cons (Qtext_read_only, error_tail)); - Fput (Qtext_read_only, Qerror_message, - make_pure_c_string ("Text is read-only")); + Fput (Qarith_error, Qerror_conditions, arith_tail); + Fput (Qarith_error, Qerror_message, make_pure_c_string ("Arithmetic error")); + + PUT_ERROR (Qbeginning_of_buffer, error_tail, "Beginning of buffer"); + PUT_ERROR (Qend_of_buffer, error_tail, "End of buffer"); + PUT_ERROR (Qbuffer_read_only, error_tail, "Buffer is read-only"); + PUT_ERROR (Qtext_read_only, pure_cons (Qbuffer_read_only, error_tail), + "Text is read-only"); DEFSYM (Qrange_error, "range-error"); DEFSYM (Qdomain_error, "domain-error"); @@ -3107,30 +3048,17 @@ DEFSYM (Qoverflow_error, "overflow-error"); DEFSYM (Qunderflow_error, "underflow-error"); - Fput (Qdomain_error, Qerror_conditions, - pure_cons (Qdomain_error, arith_tail)); - Fput (Qdomain_error, Qerror_message, - make_pure_c_string ("Arithmetic domain error")); - - Fput (Qrange_error, Qerror_conditions, - pure_cons (Qrange_error, arith_tail)); - Fput (Qrange_error, Qerror_message, - make_pure_c_string ("Arithmetic range error")); - - Fput (Qsingularity_error, Qerror_conditions, - pure_cons (Qsingularity_error, Fcons (Qdomain_error, arith_tail))); - Fput (Qsingularity_error, Qerror_message, - make_pure_c_string ("Arithmetic singularity error")); - - Fput (Qoverflow_error, Qerror_conditions, - pure_cons (Qoverflow_error, Fcons (Qdomain_error, arith_tail))); - Fput (Qoverflow_error, Qerror_message, - make_pure_c_string ("Arithmetic overflow error")); - - Fput (Qunderflow_error, Qerror_conditions, - pure_cons (Qunderflow_error, Fcons (Qdomain_error, arith_tail))); - Fput (Qunderflow_error, Qerror_message, - make_pure_c_string ("Arithmetic underflow error")); + PUT_ERROR (Qdomain_error, arith_tail, "Arithmetic domain error"); + + PUT_ERROR (Qrange_error, arith_tail, "Arithmetic range error"); + + PUT_ERROR (Qsingularity_error, Fcons (Qdomain_error, arith_tail), + "Arithmetic singularity error"); + + PUT_ERROR (Qoverflow_error, Fcons (Qdomain_error, arith_tail), + "Arithmetic overflow error"); + PUT_ERROR (Qunderflow_error, Fcons (Qdomain_error, arith_tail), + "Arithmetic underflow error"); staticpro (&Qnil); staticpro (&Qt); === modified file 'src/fileio.c' --- src/fileio.c 2012-04-27 03:10:38 +0000 +++ src/fileio.c 2012-05-04 23:16:47 +0000 @@ -87,17 +87,17 @@ #define FILE_SYSTEM_CASE(filename) (filename) #endif -/* Nonzero during writing of auto-save files */ +/* Nonzero during writing of auto-save files. */ static int auto_saving; -/* Nonzero umask during creation of auto-save directories */ +/* Nonzero umask during creation of auto-save directories. */ static int auto_saving_dir_umask; /* Set by auto_save_1 to mode of original file so Fwrite_region will create - a new file with the same mode as the original */ + a new file with the same mode as the original. */ static int auto_save_mode_bits; -/* Set by auto_save_1 if an error occurred during the last auto-save. */ +/* Set by auto_save_1 if an error occurred during the last auto-save. */ static int auto_save_error_occurred; /* The symbol bound to coding-system-for-read when @@ -111,7 +111,7 @@ which gives a list of operations it handles.. */ static Lisp_Object Qoperations; -/* Lisp functions for translating file formats */ +/* Lisp functions for translating file formats. */ static Lisp_Object Qformat_decode, Qformat_annotate_function; /* Lisp function for setting buffer-file-coding-system and the === modified file 'src/keyboard.c' --- src/keyboard.c 2012-05-01 16:10:02 +0000 +++ src/keyboard.c 2012-05-04 23:16:47 +0000 @@ -1200,6 +1200,12 @@ Fthrow (Qtop_level, Qnil); } +static void user_error (const char*) NO_RETURN; +static void user_error (const char *msg) +{ + xsignal1 (Quser_error, build_string (msg)); +} + static Lisp_Object Fexit_recursive_edit (void) NO_RETURN; DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "", doc: /* Exit from the innermost recursive edit or minibuffer. */) @@ -1208,7 +1214,7 @@ if (command_loop_level > 0 || minibuf_level > 0) Fthrow (Qexit, Qnil); - error ("No recursive edit is in progress"); + user_error ("No recursive edit is in progress"); } static Lisp_Object Fabort_recursive_edit (void) NO_RETURN; @@ -1219,7 +1225,7 @@ if (command_loop_level > 0 || minibuf_level > 0) Fthrow (Qexit, Qt); - error ("No recursive edit is in progress"); + user_error ("No recursive edit is in progress"); } #if defined (HAVE_MOUSE) || defined (HAVE_GPM) === modified file 'src/lisp.h' --- src/lisp.h 2012-04-16 01:10:42 +0000 +++ src/lisp.h 2012-05-04 23:16:47 +0000 @@ -2377,7 +2377,7 @@ extern Lisp_Object Qvoid_variable, Qvoid_function; extern Lisp_Object Qinvalid_read_syntax; extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch; -extern Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive; +extern Lisp_Object Quser_error, Qend_of_file, Qarith_error, Qmark_inactive; extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only; extern Lisp_Object Qtext_read_only; extern Lisp_Object Qinteractive_form; === modified file 'src/print.c' --- src/print.c 2012-04-20 13:02:20 +0000 +++ src/print.c 2012-05-04 23:16:47 +0000 @@ -865,7 +865,6 @@ { Lisp_Object errname, errmsg, file_error, tail; struct gcpro gcpro1; - int i; if (context != 0) write_string_1 (context, -1, stream); @@ -893,9 +892,8 @@ } else { - Lisp_Object error_conditions; + Lisp_Object error_conditions = Fget (errname, Qerror_conditions); errmsg = Fget (errname, Qerror_message); - error_conditions = Fget (errname, Qerror_conditions); file_error = Fmemq (Qfile_error, error_conditions); } @@ -909,22 +907,30 @@ if (!NILP (file_error) && CONSP (tail)) errmsg = XCAR (tail), tail = XCDR (tail); - if (STRINGP (errmsg)) - Fprinc (errmsg, stream); - else - write_string_1 ("peculiar error", -1, stream); - - for (i = 0; CONSP (tail); tail = XCDR (tail), i = 1) - { - Lisp_Object obj; - - write_string_1 (i ? ", " : ": ", 2, stream); - obj = XCAR (tail); - if (!NILP (file_error) || EQ (errname, Qend_of_file)) - Fprinc (obj, stream); - else - Fprin1 (obj, stream); - } + { + const char *sep = ": "; + + if (!STRINGP (errmsg)) + write_string_1 ("peculiar error", -1, stream); + else if (SCHARS (errmsg)) + Fprinc (errmsg, stream); + else + sep = NULL; + + for (; CONSP (tail); tail = XCDR (tail), sep = ", ") + { + Lisp_Object obj; + + if (sep) + write_string_1 (sep, 2, stream); + obj = XCAR (tail); + if (!NILP (file_error) + || EQ (errname, Qend_of_file) || EQ (errname, Quser_error)) + Fprinc (obj, stream); + else + Fprin1 (obj, stream); + } + } UNGCPRO; } === modified file 'src/undo.c' --- src/undo.c 2012-01-19 07:21:25 +0000 +++ src/undo.c 2012-05-04 23:16:47 +0000 @@ -436,6 +436,13 @@ unbind_to (count, Qnil); } + +static void user_error (const char*) NO_RETURN; +static void user_error (const char *msg) +{ + xsignal1 (Quser_error, build_string (msg)); +} + DEFUN ("primitive-undo", Fprimitive_undo, Sprimitive_undo, 2, 2, 0, doc: /* Undo N records from the front of the list LIST. @@ -528,7 +535,7 @@ end = Fcdr (cdr); if (XINT (beg) < BEGV || XINT (end) > ZV) - error ("Changes to be undone are outside visible portion of buffer"); + user_error ("Changes to be undone are outside visible portion of buffer"); Fput_text_property (beg, end, prop, val, Qnil); } else if (INTEGERP (car) && INTEGERP (cdr)) @@ -537,7 +544,7 @@ if (XINT (car) < BEGV || XINT (cdr) > ZV) - error ("Changes to be undone are outside visible portion of buffer"); + user_error ("Changes to be undone are outside visible portion of buffer"); /* Set point first thing, so that undoing this undo does not send point back to where it is now. */ Fgoto_char (car); @@ -588,14 +595,14 @@ if (pos < 0) { if (-pos < BEGV || -pos > ZV) - error ("Changes to be undone are outside visible portion of buffer"); + user_error ("Changes to be undone are outside visible portion of buffer"); SET_PT (-pos); Finsert (1, &membuf); } else { if (pos < BEGV || pos > ZV) - error ("Changes to be undone are outside visible portion of buffer"); + user_error ("Changes to be undone are outside visible portion of buffer"); SET_PT (pos); /* Now that we record marker adjustments ------------------------------------------------------------ revno: 108125 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-04 16:53:03 -0400 message: * doc/misc/Makefile.in (info): Make it the first target again. diff: === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2012-05-04 06:45:03 +0000 +++ doc/misc/Makefile.in 2012-05-04 20:53:03 +0000 @@ -215,12 +215,13 @@ .PHONY: info dvi pdf echo-info +# Default. +info: $(INFO_TARGETS) + ## Used by top-level Makefile. echo-info: @echo $(INFO_TARGETS) | sed 's|[^ ]*/||g' -info: $(INFO_TARGETS) - # please modify this for all the web manual targets webhack: clean $(MAKE) pdf MAKEINFO_OPTS="-DWEBHACKDEVEL $(MAKEINFO_OPTS)" ------------------------------------------------------------ revno: 108124 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 15:17:01 -0400 message: * lisp/dabbrev.el (dabbrev--ignore-case-p): New function. (dabbrev-completion, dabbrev-expand, dabbrev--substitute-expansion): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 19:14:42 +0000 +++ lisp/ChangeLog 2012-05-04 19:17:01 +0000 @@ -1,5 +1,9 @@ 2012-05-04 Stefan Monnier + * dabbrev.el (dabbrev--ignore-case-p): New function. + (dabbrev-completion, dabbrev-expand, dabbrev--substitute-expansion): + Use it. + * files.el (automount-dir-prefix): Mark as obsolete. 2012-05-04 Glenn Morris === modified file 'lisp/dabbrev.el' --- lisp/dabbrev.el 2012-03-12 20:07:45 +0000 +++ lisp/dabbrev.el 2012-05-04 19:17:01 +0000 @@ -361,6 +361,13 @@ ;;??? Do we want this? ;;;###autoload (define-key esc-map [?\C-/] 'dabbrev-completion) +(defun dabbrev--ignore-case-p (abbrev) + (and (if (eq dabbrev-case-fold-search 'case-fold-search) + case-fold-search + dabbrev-case-fold-search) + (or (not dabbrev-upcase-means-case-search) + (string= abbrev (downcase abbrev))))) + ;;;###autoload (defun dabbrev-completion (&optional arg) "Completion on current word. @@ -381,12 +388,7 @@ (abbrev (dabbrev--abbrev-at-point)) (beg (progn (search-backward abbrev) (point))) (end (progn (search-forward abbrev) (point))) - (ignore-case-p - (and (if (eq dabbrev-case-fold-search 'case-fold-search) - case-fold-search - dabbrev-case-fold-search) - (or (not dabbrev-upcase-means-case-search) - (string= abbrev (downcase abbrev))))) + (ignore-case-p (dabbrev--ignore-case-p abbrev)) (list 'uninitialized) (table (lambda (s p a) @@ -514,11 +516,7 @@ (setq expansion (dabbrev--find-expansion abbrev direction - (and (if (eq dabbrev-case-fold-search 'case-fold-search) - case-fold-search - dabbrev-case-fold-search) - (or (not dabbrev-upcase-means-case-search) - (string= abbrev (downcase abbrev)))))))) + (dabbrev--ignore-case-p abbrev))))) (cond ((not expansion) (dabbrev--reset-global-variables) @@ -820,11 +818,7 @@ to record whether we upcased the expansion, downcased it, or did neither." ;;(undo-boundary) (let ((use-case-replace - (and (if (eq dabbrev-case-fold-search 'case-fold-search) - case-fold-search - dabbrev-case-fold-search) - (or (not dabbrev-upcase-means-case-search) - (string= abbrev (downcase abbrev))) + (and (dabbrev--ignore-case-p abbrev) (if (eq dabbrev-case-replace 'case-replace) case-replace dabbrev-case-replace)))) ------------------------------------------------------------ revno: 108123 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-04 15:14:42 -0400 message: * lisp/files.el (automount-dir-prefix): Mark as obsolete. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-05-04 06:38:36 +0000 +++ etc/NEWS 2012-05-04 19:14:42 +0000 @@ -212,6 +212,8 @@ *** `current-time-string' no longer requires that its argument's year must be in the range 1000..9999. It now works with any year supported by the underlying C implementation. + +** `automount-dir-prefix' is obsolete. * Changes in Emacs 24.2 on non-free operating systems === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 06:38:36 +0000 +++ lisp/ChangeLog 2012-05-04 19:14:42 +0000 @@ -1,3 +1,7 @@ +2012-05-04 Stefan Monnier + + * files.el (automount-dir-prefix): Mark as obsolete. + 2012-05-04 Glenn Morris * patcomp.el, play/bruce.el: Move to obsolete/. === modified file 'lisp/files.el' --- lisp/files.el 2012-04-26 03:18:47 +0000 +++ lisp/files.el 2012-05-04 19:14:42 +0000 @@ -1627,6 +1627,7 @@ "Regexp to match the automounter prefix in a directory name." :group 'files :type 'regexp) +(make-obsolete-variable 'automount-dir-prefix 'directory-abbrev-alist "24.2") (defvar abbreviated-home-dir nil "The user's homedir abbreviated according to `directory-abbrev-alist'.") ------------------------------------------------------------ revno: 108122 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-04 06:17:30 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2012-05-01 10:17:25 +0000 +++ autogen/Makefile.in 2012-05-04 10:17:30 +0000 @@ -473,6 +473,8 @@ IMAGEMAGICK_LIBS = @IMAGEMAGICK_LIBS@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INFO_EXT = @INFO_EXT@ +INFO_OPTS = @INFO_OPTS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INFO = @INSTALL_INFO@ === modified file 'autogen/configure' --- autogen/configure 2012-05-03 10:17:27 +0000 +++ autogen/configure 2012-05-04 10:17:30 +0000 @@ -1182,6 +1182,8 @@ C_SWITCH_MACHINE LD_SWITCH_SYSTEM CANNOT_DUMP +INFO_OPTS +INFO_EXT HAVE_MAKEINFO GZIP_PROG INSTALL_INFO @@ -8238,6 +8240,11 @@ fi +INFO_EXT=.info +INFO_OPTS=--no-split + + + if test x$GCC = xyes; then test "x$GCC_LINK_TEST_OPTIONS" != x && \ ------------------------------------------------------------ revno: 108121 committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-05-03 23:45:03 -0700 message: Give info files the .info extension Ref http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00354.html * configure.in (INFO_EXT, INFO_OPTS): New output variables. * doc/emacs/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (info, infoclean): Use $INFO_EXT. ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/emacs/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (INFO_TARGETS): Use $INFO_EXT. ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o. * doc/lispintro/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (info, infoclean): Use $INFO_EXT. (${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/lispintro/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (INFO_TARGETS, clean): Use $INFO_EXT. ($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/lispref/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (info, infoclean): Use $INFO_EXT. ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/lispref/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (info, maintainer-clean): Use $INFO_EXT. ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. * doc/misc/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. (INFO_TARGETS): Use $INFO_EXT. Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. * doc/misc/makefile.w32-in (INFO_EXT, INFO_OPTS): New. (INFO_TARGETS): Use $INFO_EXT. Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 16:55:00 +0000 +++ ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,7 @@ +2012-05-04 Glenn Morris + + * configure.in (INFO_EXT, INFO_OPTS): New output variables. + 2012-05-02 Glenn Morris * configure.in (LD_SWITCH_SYSTEM): Don't try to defeat === modified file 'Makefile.in' --- Makefile.in 2012-05-02 07:45:16 +0000 +++ Makefile.in 2012-05-04 06:45:03 +0000 @@ -129,7 +129,8 @@ # Where to install and expect the info files describing Emacs. infodir=@infodir@ # Info files not in the doc/misc directory (we get those via make echo-info). -INFO_NONMISC=emacs eintr elisp +INFO_EXT=@INFO_EXT@ +INFO_NONMISC=emacs$(INFO_EXT) eintr$(INFO_EXT) elisp$(INFO_EXT) # If no makeinfo was found and configured --without-makeinfo, "no"; else "yes". HAVE_MAKEINFO=@HAVE_MAKEINFO@ @@ -904,6 +905,7 @@ case $${file} in \ *-[0-9]*|COPYING|dir) continue ;; \ esac ; \ + file=`echo $${file} | sed 's/\.info//'` ; \ grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \ done ; \ if test -n "$${missing}"; then \ === modified file 'configure.in' --- configure.in 2012-05-02 16:55:00 +0000 +++ configure.in 2012-05-04 06:45:03 +0000 @@ -865,6 +865,12 @@ fi AC_SUBST(HAVE_MAKEINFO) +dnl Just so that there is only a single place we need to edit. +INFO_EXT=.info +INFO_OPTS=--no-split +AC_SUBST(INFO_EXT) +AC_SUBST(INFO_OPTS) + dnl Add our options to ac_link now, after it is set up. if test x$GCC = xyes; then === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-05-02 07:20:29 +0000 +++ doc/emacs/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (info, infoclean): Use $INFO_EXT. + ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (INFO_TARGETS): Use $INFO_EXT. + ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o. + 2012-05-02 Glenn Morris * emacs.texi (@copying): Only print EDITION in the TeX version. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2012-04-07 19:23:53 +0000 +++ doc/emacs/Makefile.in 2012-05-04 06:45:03 +0000 @@ -35,6 +35,13 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +# --no-split is only needed because of MS-DOS. +# For a possible alternative, see +# http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01182.html +INFO_OPTS=@INFO_OPTS@ + # The makeinfo program is part of the Texinfo distribution. # Use --force so that it generates output even if there are errors. MAKEINFO = @MAKEINFO@ @@ -118,7 +125,7 @@ .PHONY: info dvi html pdf ps -info: $(infodir)/emacs +info: $(infodir)/emacs$(INFO_EXT) dvi: emacs.dvi html: emacs.html pdf: emacs.pdf @@ -128,9 +135,9 @@ # There is no provision for Info files to exist in the build directory. # In a distribution of Emacs, the Info files should be up to date. # Note: "<" is not portable in ordinary make rules. -$(infodir)/emacs: ${EMACSSOURCES} +$(infodir)/emacs$(INFO_EXT): ${EMACSSOURCES} $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs.texi emacs.dvi: ${EMACSSOURCES} $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi @@ -171,7 +178,7 @@ ## In the standalone tarfile, the clean rule runs this. infoclean: - -cd $(infodir) && rm -f emacs emacs-[1-9] emacs-[1-9][0-9] + -cd $(infodir) && rm -f emacs$(INFO_EXT) emacs$(INFO_EXT)-[1-9] emacs$(INFO_EXT)-[1-9][0-9] maintainer-clean: distclean infoclean === modified file 'doc/emacs/makefile.w32-in' --- doc/emacs/makefile.w32-in 2012-01-19 07:21:25 +0000 +++ doc/emacs/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Manual -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -30,7 +30,9 @@ MAKEINFO = makeinfo MAKEINFO_OPTS = --force --enable-encoding -I$(srcdir) MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat -INFO_TARGETS = $(infodir)/emacs +INFO_EXT=.info +INFO_OPTS=--no-split +INFO_TARGETS = $(infodir)/emacs$(INFO_EXT) DVI_TARGETS = emacs.dvi INFOSOURCES = info.texi @@ -114,8 +116,8 @@ $(infodir)/dir: $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) -$(infodir)/emacs: $(EMACSSOURCES) - $(MAKEINFO) $(MAKEINFO_OPTS) emacs.texi +$(infodir)/emacs$(INFO_EXT): $(EMACSSOURCES) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs.texi emacs.dvi: $(EMACSSOURCES) $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi @@ -129,6 +131,7 @@ mostlyclean: - $(DEL) *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.* +## FIXME $(infodir)/emacs* deletes too much, eg emacs-mime. clean: mostlyclean - $(DEL) *.dvi - $(DEL) $(infodir)/emacs* === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2012-05-02 07:20:29 +0000 +++ doc/lispintro/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (info, infoclean): Use $INFO_EXT. + (${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (INFO_TARGETS, clean): Use $INFO_EXT. + ($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + 2012-05-02 Glenn Morris * emacs-lisp-intro.texi (Syntax): Reword to avoid underfull hbox. === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2012-04-07 19:23:53 +0000 +++ doc/lispintro/Makefile.in 2012-05-04 06:45:03 +0000 @@ -26,6 +26,10 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +INFO_OPTS=@INFO_OPTS@ + MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I $(srcdir) TEXI2DVI = texi2dvi @@ -39,7 +43,7 @@ .PHONY: info dvi html pdf ps -info: ${infodir}/eintr +info: ${infodir}/eintr$(INFO_EXT) dvi: emacs-lisp-intro.dvi html: emacs-lisp-intro.html @@ -49,9 +53,9 @@ # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing. # Note: "<" is not portable in ordinary make rules. -${infodir}/eintr: ${srcdir}/emacs-lisp-intro.texi +${infodir}/eintr$(INFO_EXT): ${srcdir}/emacs-lisp-intro.texi $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi @@ -79,7 +83,7 @@ distclean: clean infoclean: - -cd $(infodir) && rm -f eintr eintr-[1-9] + -cd $(infodir) && rm -f eintr$(INFO_EXT) eintr$(INFO_EXT)-[1-9] maintainer-clean: distclean infoclean === modified file 'doc/lispintro/makefile.w32-in' --- doc/lispintro/makefile.w32-in 2012-01-19 07:21:25 +0000 +++ doc/lispintro/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Lisp Introduction manual. -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -24,10 +24,12 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=.info +INFO_OPTS=--no-split INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing -INFO_TARGETS = $(infodir)/eintr +INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) DVI_TARGETS = emacs-lisp-intro.dvi MAKEINFO = makeinfo @@ -47,8 +49,8 @@ dvi: $(DVI_TARGETS) -$(infodir)/eintr: $(INFO_SOURCES) - $(MAKEINFO) -o $@ $(srcdir)/emacs-lisp-intro.texi +$(infodir)/eintr$(INFO_EXT): $(INFO_SOURCES) + $(MAKEINFO) $(INFO_OPTS) -o $@ $(srcdir)/emacs-lisp-intro.texi emacs-lisp-intro.dvi: $(INFO_SOURCES) $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi @@ -66,7 +68,7 @@ - $(DEL) *.log *.cp *.fn *.ky *.pg *.vr *.tp clean: mostlyclean - - $(DEL) *.dvi $(infodir)/eintr* + - $(DEL) *.dvi $(infodir)/eintr$(INFO_EXT)* distclean: clean - $(DEL) makefile === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-04 05:14:14 +0000 +++ doc/lispref/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (info, infoclean): Use $INFO_EXT. + ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (info, maintainer-clean): Use $INFO_EXT. + ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT. + 2012-05-04 Chong Yidong * os.texi (Timers): Use defopt for timer-max-repeats. === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2012-04-26 01:08:03 +0000 +++ doc/lispref/Makefile.in 2012-05-04 06:45:03 +0000 @@ -30,6 +30,10 @@ # Directory with emacsver.texi. emacsdir = $(srcdir)/../emacs +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +INFO_OPTS=@INFO_OPTS@ + MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir) TEXI2DVI = texi2dvi @@ -99,16 +103,16 @@ .PHONY: info dvi pdf ps -info: $(infodir)/elisp +info: $(infodir)/elisp$(INFO_EXT) dvi: elisp.dvi html: elisp.html pdf: elisp.pdf ps: elisp.ps ## Note: "<" is not portable in ordinary make rules. -$(infodir)/elisp: $(srcs) +$(infodir)/elisp$(INFO_EXT): $(srcs) $(mkinfodir) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $(srcdir)/elisp.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $(srcdir)/elisp.texi elisp.dvi: $(srcs) $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi @@ -138,7 +142,7 @@ distclean: clean infoclean: - -cd $(infodir) && rm -f elisp elisp-[1-9] elisp-[1-9][0-9] + -cd $(infodir) && rm -f elisp$(INFO_EXT) elisp$(INFO_EXT)-[1-9] elisp$(INFO_EXT)-[1-9][0-9] maintainer-clean: distclean infoclean === modified file 'doc/lispref/makefile.w32-in' --- doc/lispref/makefile.w32-in 2012-04-26 01:08:03 +0000 +++ doc/lispref/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -28,6 +28,9 @@ # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +INFO_EXT=.info +INFO_OPTS=--no-split + # Redefine `TEX' if `tex' does not invoke plain TeX. For example: # TEX=platex TEX=tex @@ -102,13 +105,13 @@ # The info file is named `elisp'. -info: $(infodir)/elisp +info: $(infodir)/elisp$(INFO_EXT) $(infodir)/dir: $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp -$(infodir)/elisp: $(srcs) - $(MAKEINFO) $(MAKEINFO_OPTS) -o $(infodir)/elisp $(srcdir)/elisp.texi +$(infodir)/elisp$(INFO_EXT): $(srcs) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $(srcdir)/elisp.texi elisp.dvi: $(srcs) $(texinputdir) $(TEX) $(srcdir)/elisp.texi @@ -123,4 +126,4 @@ - $(DEL) makefile maintainer-clean: distclean - - $(DEL) elisp elisp-? elisp-?? elisp.dvi elisp.oaux + - $(DEL) elisp$(INFO_EXT) elisp$(INFO_EXT)-? elisp$(INFO_EXT)-?? elisp.dvi elisp.oaux === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-02 07:45:16 +0000 +++ doc/misc/ChangeLog 2012-05-04 06:45:03 +0000 @@ -1,3 +1,12 @@ +2012-05-04 Glenn Morris + + * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure. + (INFO_TARGETS): Use $INFO_EXT. + Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. + * makefile.w32-in (INFO_EXT, INFO_OPTS): New. + (INFO_TARGETS): Use $INFO_EXT. + Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o. + 2012-05-02 Glenn Morris * Makefile.in (echo-info): New phony target, used by top-level. === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2012-05-02 07:45:16 +0000 +++ doc/misc/Makefile.in 2012-05-04 06:45:03 +0000 @@ -38,62 +38,66 @@ ## Currently only used by efaq and calc. emacsdir = $(srcdir)/../emacs +INFO_EXT=@INFO_EXT@ +# Options used only when making info output. +INFO_OPTS=@INFO_OPTS@ + # The makeinfo program is part of the Texinfo distribution. # Use --force so that it generates output even if there are errors. MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I$(emacsdir) INFO_TARGETS = \ - $(infodir)/ada-mode \ - $(infodir)/auth \ - $(infodir)/autotype \ - $(infodir)/calc \ - $(infodir)/ccmode \ - $(infodir)/cl \ - $(infodir)/dbus \ - $(infodir)/dired-x \ - $(infodir)/ebrowse \ - $(infodir)/ede \ - $(infodir)/ediff \ - $(infodir)/edt \ - $(infodir)/eieio \ - $(infodir)/emacs-mime \ - $(infodir)/epa \ - $(infodir)/erc \ - $(infodir)/ert \ - $(infodir)/eshell \ - $(infodir)/eudc \ - $(infodir)/efaq \ - $(infodir)/flymake \ - $(infodir)/forms \ - $(infodir)/gnus \ - $(infodir)/emacs-gnutls \ - $(infodir)/idlwave \ - $(infodir)/info \ - $(infodir)/mairix-el \ - $(infodir)/message \ - $(infodir)/mh-e \ - $(infodir)/newsticker \ - $(infodir)/nxml-mode \ - $(infodir)/org \ - $(infodir)/pcl-cvs \ - $(infodir)/pgg \ - $(infodir)/rcirc \ - $(infodir)/remember \ - $(infodir)/reftex \ - $(infodir)/sasl \ - $(infodir)/sc \ - $(infodir)/semantic \ - $(infodir)/ses \ - $(infodir)/sieve \ - $(infodir)/smtpmail \ - $(infodir)/speedbar \ - $(infodir)/tramp \ - $(infodir)/url \ - $(infodir)/vip \ - $(infodir)/viper \ - $(infodir)/widget \ - $(infodir)/woman + $(infodir)/ada-mode$(INFO_EXT) \ + $(infodir)/auth$(INFO_EXT) \ + $(infodir)/autotype$(INFO_EXT) \ + $(infodir)/calc$(INFO_EXT) \ + $(infodir)/ccmode$(INFO_EXT) \ + $(infodir)/cl$(INFO_EXT) \ + $(infodir)/dbus$(INFO_EXT) \ + $(infodir)/dired-x$(INFO_EXT) \ + $(infodir)/ebrowse$(INFO_EXT) \ + $(infodir)/ede$(INFO_EXT) \ + $(infodir)/ediff$(INFO_EXT) \ + $(infodir)/edt$(INFO_EXT) \ + $(infodir)/eieio$(INFO_EXT) \ + $(infodir)/emacs-mime$(INFO_EXT) \ + $(infodir)/epa$(INFO_EXT) \ + $(infodir)/erc$(INFO_EXT) \ + $(infodir)/ert$(INFO_EXT) \ + $(infodir)/eshell$(INFO_EXT) \ + $(infodir)/eudc$(INFO_EXT) \ + $(infodir)/efaq$(INFO_EXT) \ + $(infodir)/flymake$(INFO_EXT) \ + $(infodir)/forms$(INFO_EXT) \ + $(infodir)/gnus$(INFO_EXT) \ + $(infodir)/emacs-gnutls$(INFO_EXT) \ + $(infodir)/idlwave$(INFO_EXT) \ + $(infodir)/info$(INFO_EXT) \ + $(infodir)/mairix-el$(INFO_EXT) \ + $(infodir)/message$(INFO_EXT) \ + $(infodir)/mh-e$(INFO_EXT) \ + $(infodir)/newsticker$(INFO_EXT) \ + $(infodir)/nxml-mode$(INFO_EXT) \ + $(infodir)/org$(INFO_EXT) \ + $(infodir)/pcl-cvs$(INFO_EXT) \ + $(infodir)/pgg$(INFO_EXT) \ + $(infodir)/rcirc$(INFO_EXT) \ + $(infodir)/remember$(INFO_EXT) \ + $(infodir)/reftex$(INFO_EXT) \ + $(infodir)/sasl$(INFO_EXT) \ + $(infodir)/sc$(INFO_EXT) \ + $(infodir)/semantic$(INFO_EXT) \ + $(infodir)/ses$(INFO_EXT) \ + $(infodir)/sieve$(INFO_EXT) \ + $(infodir)/smtpmail$(INFO_EXT) \ + $(infodir)/speedbar$(INFO_EXT) \ + $(infodir)/tramp$(INFO_EXT) \ + $(infodir)/url$(INFO_EXT) \ + $(infodir)/vip$(INFO_EXT) \ + $(infodir)/viper$(INFO_EXT) \ + $(infodir)/widget$(INFO_EXT) \ + $(infodir)/woman$(INFO_EXT) DVI_TARGETS = \ ada-mode.dvi \ @@ -233,190 +237,211 @@ # Note: "<" is not portable in ordinary make rules. ## "short" target names for convenience, to just rebuild one manual. -ada-mode : $(infodir)/ada-mode -$(infodir)/ada-mode: ada-mode.texi +ada-mode : $(infodir)/ada-mode$(INFO_EXT) +$(infodir)/ada-mode$(INFO_EXT): ada-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ada-mode.texi ada-mode.dvi: ${srcdir}/ada-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi ada-mode.pdf: ${srcdir}/ada-mode.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi -auth : $(infodir)/auth -$(infodir)/auth: auth.texi +auth : $(infodir)/auth$(INFO_EXT) +$(infodir)/auth$(INFO_EXT): auth.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ auth.texi auth.dvi: ${srcdir}/auth.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi auth.pdf: ${srcdir}/auth.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi -autotype : $(infodir)/autotype -$(infodir)/autotype: autotype.texi +autotype : $(infodir)/autotype$(INFO_EXT) +$(infodir)/autotype$(INFO_EXT): autotype.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ autotype.texi autotype.dvi: ${srcdir}/autotype.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi autotype.pdf: ${srcdir}/autotype.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi -calc : $(infodir)/calc -$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi +calc : $(infodir)/calc$(INFO_EXT) +$(infodir)/calc$(INFO_EXT): calc.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ calc.texi calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi -ccmode : $(infodir)/ccmode -$(infodir)/ccmode: cc-mode.texi +ccmode : $(infodir)/ccmode$(INFO_EXT) +$(infodir)/ccmode$(INFO_EXT): cc-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cc-mode.texi cc-mode.dvi: ${srcdir}/cc-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi cc-mode.pdf: ${srcdir}/cc-mode.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi -cl : $(infodir)/cl -$(infodir)/cl: cl.texi +cl : $(infodir)/cl$(INFO_EXT) +$(infodir)/cl$(INFO_EXT): cl.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cl.texi cl.dvi: ${srcdir}/cl.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi cl.pdf: ${srcdir}/cl.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi -dbus : $(infodir)/dbus -$(infodir)/dbus: dbus.texi +dbus : $(infodir)/dbus$(INFO_EXT) +$(infodir)/dbus$(INFO_EXT): dbus.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dbus.texi dbus.dvi: ${srcdir}/dbus.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi dbus.pdf: ${srcdir}/dbus.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi -dired-x : $(infodir)/dired-x -$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi +dired-x : $(infodir)/dired-x$(INFO_EXT) +$(infodir)/dired-x$(INFO_EXT): dired-x.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dired-x.texi dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi -ebrowse : $(infodir)/ebrowse -$(infodir)/ebrowse: ebrowse.texi +ebrowse : $(infodir)/ebrowse$(INFO_EXT) +$(infodir)/ebrowse$(INFO_EXT): ebrowse.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ebrowse.texi ebrowse.dvi: ${srcdir}/ebrowse.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi ebrowse.pdf: ${srcdir}/ebrowse.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi -ede : $(infodir)/ede -$(infodir)/ede: ede.texi +ede : $(infodir)/ede$(INFO_EXT) +$(infodir)/ede$(INFO_EXT): ede.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ede.texi ede.dvi: ${srcdir}/ede.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi ede.pdf: ${srcdir}/ede.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi -ediff : $(infodir)/ediff -$(infodir)/ediff: ediff.texi +ediff : $(infodir)/ediff$(INFO_EXT) +$(infodir)/ediff$(INFO_EXT): ediff.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ediff.texi ediff.dvi: ${srcdir}/ediff.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi ediff.pdf: ${srcdir}/ediff.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi -edt : $(infodir)/edt -$(infodir)/edt: edt.texi +edt : $(infodir)/edt$(INFO_EXT) +$(infodir)/edt$(INFO_EXT): edt.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ edt.texi edt.dvi: ${srcdir}/edt.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi edt.pdf: ${srcdir}/edt.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi -eieio : $(infodir)/eieio -$(infodir)/eieio: eieio.texi +eieio : $(infodir)/eieio$(INFO_EXT) +$(infodir)/eieio$(INFO_EXT): eieio.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eieio.texi eieio.dvi: ${srcdir}/eieio.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi eieio.pdf: ${srcdir}/eieio.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi -emacs-gnutls : $(infodir)/emacs-gnutls -$(infodir)/emacs-gnutls: emacs-gnutls.texi +emacs-gnutls : $(infodir)/emacs-gnutls$(INFO_EXT) +$(infodir)/emacs-gnutls$(INFO_EXT): emacs-gnutls.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs-gnutls.texi emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi -emacs-mime : $(infodir)/emacs-mime -$(infodir)/emacs-mime: emacs-mime.texi +emacs-mime : $(infodir)/emacs-mime$(INFO_EXT) +$(infodir)/emacs-mime$(INFO_EXT): emacs-mime.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ emacs-mime.texi emacs-mime.dvi: ${srcdir}/emacs-mime.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi emacs-mime.pdf: ${srcdir}/emacs-mime.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi -epa : $(infodir)/epa -$(infodir)/epa: epa.texi +epa : $(infodir)/epa$(INFO_EXT) +$(infodir)/epa$(INFO_EXT): epa.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ epa.texi epa.dvi: ${srcdir}/epa.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi epa.pdf: ${srcdir}/epa.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi -erc : $(infodir)/erc -$(infodir)/erc: erc.texi +erc : $(infodir)/erc$(INFO_EXT) +$(infodir)/erc$(INFO_EXT): erc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ erc.texi erc.dvi: ${srcdir}/erc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi erc.pdf: ${srcdir}/erc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi -ert : $(infodir)/ert -$(infodir)/ert: ert.texi +ert : $(infodir)/ert$(INFO_EXT) +$(infodir)/ert$(INFO_EXT): ert.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ert.texi ert.dvi: ${srcdir}/ert.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi ert.pdf: ${srcdir}/ert.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi -eshell : $(infodir)/eshell -$(infodir)/eshell: eshell.texi +eshell : $(infodir)/eshell$(INFO_EXT) +$(infodir)/eshell$(INFO_EXT): eshell.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eshell.texi eshell.dvi: ${srcdir}/eshell.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi eshell.pdf: ${srcdir}/eshell.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi -eudc : $(infodir)/eudc -$(infodir)/eudc: eudc.texi +eudc : $(infodir)/eudc$(INFO_EXT) +$(infodir)/eudc$(INFO_EXT): eudc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eudc.texi eudc.dvi: ${srcdir}/eudc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi eudc.pdf: ${srcdir}/eudc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi -efaq : $(infodir)/efaq -$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi +efaq : $(infodir)/efaq$(INFO_EXT) +$(infodir)/efaq$(INFO_EXT): faq.texi $(emacsdir)/emacsver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ faq.texi faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi @@ -431,29 +456,32 @@ emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi -flymake : $(infodir)/flymake -$(infodir)/flymake: flymake.texi +flymake : $(infodir)/flymake$(INFO_EXT) +$(infodir)/flymake$(INFO_EXT): flymake.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ flymake.texi flymake.dvi: ${srcdir}/flymake.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi flymake.pdf: ${srcdir}/flymake.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi -forms : $(infodir)/forms -$(infodir)/forms: forms.texi +forms : $(infodir)/forms$(INFO_EXT) +$(infodir)/forms$(INFO_EXT): forms.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ forms.texi forms.dvi: ${srcdir}/forms.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi forms.pdf: ${srcdir}/forms.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi # gnus/message/emacs-mime/sieve/pgg are part of Gnus: -gnus : $(infodir)/gnus -$(infodir)/gnus: gnus.texi gnus-faq.texi +gnus : $(infodir)/gnus$(INFO_EXT) +$(infodir)/gnus$(INFO_EXT): gnus.texi gnus-faq.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ gnus.texi gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2DVI) gnustmp.texi @@ -465,240 +493,263 @@ cp gnustmp.pdf $@ rm gnustmp.* -# This is produced with --no-split to avoid making files whose -# names clash on DOS 8+3 filesystems -idlwave : $(infodir)/idlwave -$(infodir)/idlwave: idlwave.texi +# NB this one needs --no-split even without a .info extension. +idlwave : $(infodir)/idlwave$(INFO_EXT) +$(infodir)/idlwave$(INFO_EXT): idlwave.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ idlwave.texi idlwave.dvi: ${srcdir}/idlwave.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi idlwave.pdf: ${srcdir}/idlwave.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi -# The following target uses an explicit -o switch to work around -# the @setfilename directive in info.texi, which is required for -# the Texinfo distribution. -###info : $(infodir)/info # circular! -$(infodir)/info: info.texi +# NB this one needs --no-split even without a .info extension. +info : $(infodir)/info$(INFO_EXT) +$(infodir)/info$(INFO_EXT): info.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ info.texi info.dvi: ${srcdir}/info.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi info.pdf: ${srcdir}/info.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi -mairix-el : $(infodir)/mairix-el -$(infodir)/mairix-el: mairix-el.texi +mairix-el : $(infodir)/mairix-el$(INFO_EXT) +$(infodir)/mairix-el$(INFO_EXT): mairix-el.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mairix-el.texi mairix-el.dvi: ${srcdir}/mairix-el.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi mairix-el.pdf: ${srcdir}/mairix-el.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi -message : $(infodir)/message -$(infodir)/message: message.texi +message : $(infodir)/message$(INFO_EXT) +$(infodir)/message$(INFO_EXT): message.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) message.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ message.texi message.dvi: ${srcdir}/message.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi message.pdf: ${srcdir}/message.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi -mh-e : $(infodir)/mh-e -$(infodir)/mh-e: mh-e.texi +mh-e : $(infodir)/mh-e$(INFO_EXT) +$(infodir)/mh-e$(INFO_EXT): mh-e.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mh-e.texi mh-e.dvi: ${srcdir}/mh-e.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi mh-e.pdf: ${srcdir}/mh-e.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi -newsticker : $(infodir)/newsticker -$(infodir)/newsticker: newsticker.texi +newsticker : $(infodir)/newsticker$(INFO_EXT) +$(infodir)/newsticker$(INFO_EXT): newsticker.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ newsticker.texi newsticker.dvi: ${srcdir}/newsticker.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi newsticker.pdf: ${srcdir}/newsticker.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi -nxml-mode : $(infodir)/nxml-mode -$(infodir)/nxml-mode: nxml-mode.texi +nxml-mode : $(infodir)/nxml-mode$(INFO_EXT) +$(infodir)/nxml-mode$(INFO_EXT): nxml-mode.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ nxml-mode.texi nxml-mode.dvi: ${srcdir}/nxml-mode.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi nxml-mode.pdf: ${srcdir}/nxml-mode.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi -org : $(infodir)/org -$(infodir)/org: org.texi +org : $(infodir)/org$(INFO_EXT) +$(infodir)/org$(INFO_EXT): org.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) org.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ org.texi org.dvi: ${srcdir}/org.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi org.pdf: ${srcdir}/org.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi -pcl-cvs : $(infodir)/pcl-cvs -$(infodir)/pcl-cvs: pcl-cvs.texi +pcl-cvs : $(infodir)/pcl-cvs$(INFO_EXT) +$(infodir)/pcl-cvs$(INFO_EXT): pcl-cvs.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pcl-cvs.texi pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi -pgg : $(infodir)/pgg -$(infodir)/pgg: pgg.texi +pgg : $(infodir)/pgg$(INFO_EXT) +$(infodir)/pgg$(INFO_EXT): pgg.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pgg.texi pgg.dvi: ${srcdir}/pgg.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi pgg.pdf: ${srcdir}/pgg.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi -rcirc : $(infodir)/rcirc -$(infodir)/rcirc: rcirc.texi +rcirc : $(infodir)/rcirc$(INFO_EXT) +$(infodir)/rcirc$(INFO_EXT): rcirc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ rcirc.texi rcirc.dvi: ${srcdir}/rcirc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi rcirc.pdf: ${srcdir}/rcirc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi -reftex : $(infodir)/reftex -$(infodir)/reftex: reftex.texi +reftex : $(infodir)/reftex$(INFO_EXT) +$(infodir)/reftex$(INFO_EXT): reftex.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ reftex.texi reftex.dvi: ${srcdir}/reftex.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi reftex.pdf: ${srcdir}/reftex.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi -remember : $(infodir)/remember -$(infodir)/remember: remember.texi +remember : $(infodir)/remember$(INFO_EXT) +$(infodir)/remember$(INFO_EXT): remember.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ remember.texi remember.dvi: ${srcdir}/remember.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi remember.pdf: ${srcdir}/remember.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi -sasl : $(infodir)/sasl -$(infodir)/sasl: sasl.texi +sasl : $(infodir)/sasl$(INFO_EXT) +$(infodir)/sasl$(INFO_EXT): sasl.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sasl.texi sasl.dvi: ${srcdir}/sasl.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi sasl.pdf: ${srcdir}/sasl.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi -sc : $(infodir)/sc -$(infodir)/sc: sc.texi +sc : $(infodir)/sc$(INFO_EXT) +$(infodir)/sc$(INFO_EXT): sc.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sc.texi sc.dvi: ${srcdir}/sc.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi sc.pdf: ${srcdir}/sc.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi -semantic : $(infodir)/semantic -$(infodir)/semantic: semantic.texi sem-user.texi +semantic : $(infodir)/semantic$(INFO_EXT) +$(infodir)/semantic$(INFO_EXT): semantic.texi sem-user.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ semantic.texi semantic.dvi: ${srcdir}/semantic.texi sem-user.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi semantic.pdf: ${srcdir}/semantic.texi sem-user.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi -ses : $(infodir)/ses -$(infodir)/ses: ses.texi +ses : $(infodir)/ses$(INFO_EXT) +$(infodir)/ses$(INFO_EXT): ses.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ses.texi ses.dvi: ${srcdir}/ses.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi ses.pdf: ${srcdir}/ses.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi -sieve : $(infodir)/sieve -$(infodir)/sieve: sieve.texi +sieve : $(infodir)/sieve$(INFO_EXT) +$(infodir)/sieve$(INFO_EXT): sieve.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sieve.texi sieve.dvi: ${srcdir}/sieve.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi sieve.pdf: ${srcdir}/sieve.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi -smtpmail : $(infodir)/smtpmail -$(infodir)/smtpmail: smtpmail.texi +smtpmail : $(infodir)/smtpmail$(INFO_EXT) +$(infodir)/smtpmail$(INFO_EXT): smtpmail.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ smtpmail.texi smtpmail.dvi: ${srcdir}/smtpmail.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi smtpmail.pdf: ${srcdir}/smtpmail.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi -speedbar : $(infodir)/speedbar -$(infodir)/speedbar: speedbar.texi +speedbar : $(infodir)/speedbar$(INFO_EXT) +$(infodir)/speedbar$(INFO_EXT): speedbar.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ speedbar.texi speedbar.dvi: ${srcdir}/speedbar.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi speedbar.pdf: ${srcdir}/speedbar.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi -tramp : $(infodir)/tramp -$(infodir)/tramp: tramp.texi trampver.texi +tramp : $(infodir)/tramp$(INFO_EXT) +$(infodir)/tramp$(INFO_EXT): tramp.texi trampver.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs tramp.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs tramp.texi tramp.dvi: ${srcdir}/tramp.texi trampver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi tramp.pdf: ${srcdir}/tramp.texi trampver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi -url : $(infodir)/url -$(infodir)/url: url.texi +url : $(infodir)/url$(INFO_EXT) +$(infodir)/url$(INFO_EXT): url.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) url.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ url.texi url.dvi: ${srcdir}/url.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi url.pdf: ${srcdir}/url.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi -vip : $(infodir)/vip -$(infodir)/vip: vip.texi +vip : $(infodir)/vip$(INFO_EXT) +$(infodir)/vip$(INFO_EXT): vip.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ vip.texi vip.dvi: ${srcdir}/vip.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi vip.pdf: ${srcdir}/vip.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi -viper : $(infodir)/viper -$(infodir)/viper: viper.texi +viper : $(infodir)/viper$(INFO_EXT) +$(infodir)/viper$(INFO_EXT): viper.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ viper.texi viper.dvi: ${srcdir}/viper.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi viper.pdf: ${srcdir}/viper.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi -widget : $(infodir)/widget -$(infodir)/widget: widget.texi +widget : $(infodir)/widget$(INFO_EXT) +$(infodir)/widget$(INFO_EXT): widget.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ widget.texi widget.dvi: ${srcdir}/widget.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi widget.pdf: ${srcdir}/widget.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi -woman : $(infodir)/woman -$(infodir)/woman: woman.texi +woman : $(infodir)/woman$(INFO_EXT) +$(infodir)/woman$(INFO_EXT): woman.texi $(mkinfodir) - cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi + cd $(srcdir); \ + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ woman.texi woman.dvi: ${srcdir}/woman.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi woman.pdf: ${srcdir}/woman.texi === modified file 'doc/misc/makefile.w32-in' --- doc/misc/makefile.w32-in 2012-04-14 01:46:06 +0000 +++ doc/misc/makefile.w32-in 2012-05-04 06:45:03 +0000 @@ -1,6 +1,6 @@ #### -*- Makefile -*- for documentation other than the Emacs manual. -# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -30,28 +30,31 @@ ## Currently only used by efaq; could be added to MAKEINFO. emacsdir = $(srcdir)/../emacs +INFO_EXT=.info +INFO_OPTS=--no-split + # The makeinfo program is part of the Texinfo distribution. MAKEINFO = makeinfo MAKEINFO_OPTS = --force -I$(emacsdir) MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat -INFO_TARGETS = $(infodir)/ccmode \ - $(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \ - $(infodir)/ediff $(infodir)/forms $(infodir)/gnus \ - $(infodir)/message $(infodir)/sieve $(infodir)/pgg \ - $(infodir)/emacs-mime $(infodir)/info $(infodir)/mh-e \ - $(infodir)/reftex $(infodir)/sc $(infodir)/vip \ - $(infodir)/viper $(infodir)/widget $(infodir)/efaq \ - $(infodir)/ada-mode $(infodir)/autotype $(infodir)/calc \ - $(infodir)/idlwave $(infodir)/eudc $(infodir)/ebrowse \ - $(infodir)/pcl-cvs $(infodir)/woman $(infodir)/eshell \ - $(infodir)/org $(infodir)/url $(infodir)/speedbar \ - $(infodir)/tramp $(infodir)/ses $(infodir)/smtpmail \ - $(infodir)/flymake $(infodir)/newsticker $(infodir)/rcirc \ - $(infodir)/erc $(infodir)/ert \ - $(infodir)/remember $(infodir)/nxml-mode \ - $(infodir)/epa $(infodir)/mairix-el $(infodir)/sasl \ - $(infodir)/auth $(infodir)/eieio $(infodir)/ede \ - $(infodir)/semantic $(infodir)/edt $(infodir)/emacs-gnutls +INFO_TARGETS = $(infodir)/ccmode$(INFO_EXT) \ + $(infodir)/cl$(INFO_EXT) $(infodir)/dbus$(INFO_EXT) $(infodir)/dired-x$(INFO_EXT) \ + $(infodir)/ediff$(INFO_EXT) $(infodir)/forms$(INFO_EXT) $(infodir)/gnus$(INFO_EXT) \ + $(infodir)/message$(INFO_EXT) $(infodir)/sieve$(INFO_EXT) $(infodir)/pgg$(INFO_EXT) \ + $(infodir)/emacs-mime$(INFO_EXT) $(infodir)/info$(INFO_EXT) $(infodir)/mh-e$(INFO_EXT) \ + $(infodir)/reftex$(INFO_EXT) $(infodir)/sc$(INFO_EXT) $(infodir)/vip$(INFO_EXT) \ + $(infodir)/viper$(INFO_EXT) $(infodir)/widget$(INFO_EXT) $(infodir)/efaq$(INFO_EXT) \ + $(infodir)/ada-mode$(INFO_EXT) $(infodir)/autotype$(INFO_EXT) $(infodir)/calc$(INFO_EXT) \ + $(infodir)/idlwave$(INFO_EXT) $(infodir)/eudc$(INFO_EXT) $(infodir)/ebrowse$(INFO_EXT) \ + $(infodir)/pcl-cvs$(INFO_EXT) $(infodir)/woman$(INFO_EXT) $(infodir)/eshell$(INFO_EXT) \ + $(infodir)/org$(INFO_EXT) $(infodir)/url$(INFO_EXT) $(infodir)/speedbar$(INFO_EXT) \ + $(infodir)/tramp$(INFO_EXT) $(infodir)/ses$(INFO_EXT) $(infodir)/smtpmail$(INFO_EXT) \ + $(infodir)/flymake$(INFO_EXT) $(infodir)/newsticker$(INFO_EXT) $(infodir)/rcirc$(INFO_EXT) \ + $(infodir)/erc$(INFO_EXT) $(infodir)/ert$(INFO_EXT) \ + $(infodir)/remember$(INFO_EXT) $(infodir)/nxml-mode$(INFO_EXT) \ + $(infodir)/epa$(INFO_EXT) $(infodir)/mairix-el$(INFO_EXT) $(infodir)/sasl$(INFO_EXT) \ + $(infodir)/auth$(INFO_EXT) $(infodir)/eieio$(INFO_EXT) $(infodir)/ede$(INFO_EXT) \ + $(infodir)/semantic$(INFO_EXT) $(infodir)/edt$(INFO_EXT) $(infodir)/emacs-gnutls$(INFO_EXT) DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \ ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \ sieve.dvi pgg.dvi mh-e.dvi \ @@ -93,68 +96,68 @@ # Some Windows ports of makeinfo seem to require -o to come before the # texi filename, contrary to GNU standards. -$(infodir)/info: $(INFOSOURCES) - $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi +$(infodir)/info$(INFO_EXT): $(INFOSOURCES) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ info.texi info.dvi: $(INFOSOURCES) $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi -$(infodir)/ccmode: cc-mode.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi +$(infodir)/ccmode$(INFO_EXT): cc-mode.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cc-mode.texi cc-mode.dvi: cc-mode.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi -$(infodir)/ada-mode: ada-mode.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi +$(infodir)/ada-mode$(INFO_EXT): ada-mode.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ada-mode.texi ada-mode.dvi: ada-mode.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi -$(infodir)/pcl-cvs: pcl-cvs.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi +$(infodir)/pcl-cvs$(INFO_EXT): pcl-cvs.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pcl-cvs.texi pcl-cvs.dvi: pcl-cvs.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi -$(infodir)/eshell: eshell.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi +$(infodir)/eshell$(INFO_EXT): eshell.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eshell.texi eshell.dvi: eshell.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi -$(infodir)/cl: cl.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi +$(infodir)/cl$(INFO_EXT): cl.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cl.texi cl.dvi: cl.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi -$(infodir)/dbus: dbus.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi +$(infodir)/dbus$(INFO_EXT): dbus.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dbus.texi dbus.dvi: dbus.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi -$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi +$(infodir)/dired-x$(INFO_EXT): dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dired-x.texi dired-x.dvi: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi -$(infodir)/ediff: ediff.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi +$(infodir)/ediff$(INFO_EXT): ediff.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ediff.texi ediff.dvi: ediff.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi -$(infodir)/flymake: flymake.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi +$(infodir)/flymake$(INFO_EXT): flymake.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ flymake.texi flymake.dvi: flymake.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi -$(infodir)/forms: forms.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi +$(infodir)/forms$(INFO_EXT): forms.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ forms.texi forms.dvi: forms.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi # gnus/message/emacs-mime/sieve/pgg are part of Gnus: -$(infodir)/gnus: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ +$(infodir)/gnus$(INFO_EXT): gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \ doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ gnus.texi gnus.dvi: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \ sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \ doclicense.texi @@ -163,195 +166,195 @@ cp gnustmp.dvi $*.dvi rm gnustmp.* # -$(infodir)/message: message.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) message.texi +$(infodir)/message$(INFO_EXT): message.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ message.texi message.dvi: message.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi # -$(infodir)/emacs-mime: emacs-mime.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi +$(infodir)/emacs-mime$(INFO_EXT): emacs-mime.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ --enable-encoding emacs-mime.texi emacs-mime.dvi: emacs-mime.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi # -$(infodir)/sieve: sieve.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi +$(infodir)/sieve$(INFO_EXT): sieve.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sieve.texi sieve.dvi: sieve.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi # -$(infodir)/pgg: pgg.texi gnus-overrides.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi +$(infodir)/pgg$(INFO_EXT): pgg.texi gnus-overrides.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pgg.texi pgg.dvi: pgg.texi gnus-overrides.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi -$(infodir)/mh-e: mh-e.texi doclicense.texi gpl.texi - $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi +$(infodir)/mh-e$(INFO_EXT): mh-e.texi doclicense.texi gpl.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mh-e.texi mh-e.dvi: mh-e.texi doclicense.texi gpl.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi -$(infodir)/reftex: reftex.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi +$(infodir)/reftex$(INFO_EXT): reftex.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ reftex.texi reftex.dvi: reftex.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi -$(infodir)/remember: remember.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi +$(infodir)/remember$(INFO_EXT): remember.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ remember.texi remember.dvi: remember.texi doclicense.texix $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi -$(infodir)/sasl: sasl.texi gnus-overrides.texi - $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi +$(infodir)/sasl$(INFO_EXT): sasl.texi gnus-overrides.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sasl.texi sasl.dvi: sasl.texi gnus-overrides.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi -$(infodir)/sc: sc.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi +$(infodir)/sc$(INFO_EXT): sc.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sc.texi sc.dvi: sc.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi -$(infodir)/vip: vip.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi +$(infodir)/vip$(INFO_EXT): vip.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ vip.texi vip.dvi: vip.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi -$(infodir)/viper: viper.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi +$(infodir)/viper$(INFO_EXT): viper.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ viper.texi viper.dvi: viper.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi -$(infodir)/widget: widget.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi +$(infodir)/widget$(INFO_EXT): widget.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ widget.texi widget.dvi: widget.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi -$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi - $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi +$(infodir)/efaq$(INFO_EXT): faq.texi $(emacsdir)/emacsver.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ faq.texi faq.dvi: faq.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi -$(infodir)/autotype: autotype.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi +$(infodir)/autotype$(INFO_EXT): autotype.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ autotype.texi autotype.dvi: autotype.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi -$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi +$(infodir)/calc$(INFO_EXT): calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ calc.texi calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi # This is produced with --no-split to avoid making files whose # names clash on DOS 8+3 filesystems -$(infodir)/idlwave: idlwave.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi +$(infodir)/idlwave$(INFO_EXT): idlwave.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ idlwave.texi idlwave.dvi: idlwave.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi -$(infodir)/eudc: eudc.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi +$(infodir)/eudc$(INFO_EXT): eudc.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eudc.texi eudc.dvi: eudc.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi -$(infodir)/ebrowse: ebrowse.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi +$(infodir)/ebrowse$(INFO_EXT): ebrowse.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ebrowse.texi ebrowse.dvi: ebrowse.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi -$(infodir)/woman: woman.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi +$(infodir)/woman$(INFO_EXT): woman.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ woman.texi woman.dvi: woman.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi -$(infodir)/speedbar: speedbar.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi +$(infodir)/speedbar$(INFO_EXT): speedbar.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ speedbar.texi speedbar.dvi: speedbar.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi -$(infodir)/tramp: tramp.texi trampver.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi +$(infodir)/tramp$(INFO_EXT): tramp.texi trampver.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ tramp.texi tramp.dvi: tramp.texi trampver.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi -$(infodir)/ses: ses.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi +$(infodir)/ses$(INFO_EXT): ses.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ses.texi ses.dvi: ses.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi -$(infodir)/smtpmail: smtpmail.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi +$(infodir)/smtpmail$(INFO_EXT): smtpmail.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ smtpmail.texi smtpmail.dvi: smtpmail.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi -$(infodir)/org: org.texi - $(MAKEINFO) $(MAKEINFO_OPTS) org.texi +$(infodir)/org$(INFO_EXT): org.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ org.texi org.dvi: org.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi -$(infodir)/url: url.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) url.texi +$(infodir)/url$(INFO_EXT): url.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ url.texi url.dvi: url.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi -$(infodir)/newsticker: newsticker.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi +$(infodir)/newsticker$(INFO_EXT): newsticker.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ newsticker.texi newsticker.dvi: newsticker.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi -$(infodir)/nxml-mode: nxml-mode.texi - $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi +$(infodir)/nxml-mode$(INFO_EXT): nxml-mode.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ nxml-mode.texi nxml-mod.dvi: nxml-mode.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi -$(infodir)/rcirc: rcirc.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi +$(infodir)/rcirc$(INFO_EXT): rcirc.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ rcirc.texi rcirc.dvi: rcirc.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi -$(infodir)/erc: erc.texi gpl.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi +$(infodir)/erc$(INFO_EXT): erc.texi gpl.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ erc.texi erc.dvi: erc.texi gpl.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi -$(infodir)/ert: ert.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi +$(infodir)/ert$(INFO_EXT): ert.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ert.texi ert.dvi: ert.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ert.texi -$(infodir)/epa: epa.texi - $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi +$(infodir)/epa$(INFO_EXT): epa.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ epa.texi epa.dvi: epa.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/epa.texi -$(infodir)/mairix-el: mairix-el.texi - $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi +$(infodir)/mairix-el$(INFO_EXT): mairix-el.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mairix-el.texi mairix-el.dvi: mairix-el.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi -$(infodir)/auth: auth.texi gnus-overrides.texi - $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi +$(infodir)/auth$(INFO_EXT): auth.texi gnus-overrides.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ auth.texi auth.dvi: auth.texi gnus-overrides.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi -$(infodir)/eieio: eieio.texi - $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi +$(infodir)/eieio$(INFO_EXT): eieio.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eieio.texi eieio.dvi: eieio.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/eieio.texi -$(infodir)/ede: ede.texi - $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi +$(infodir)/ede$(INFO_EXT): ede.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ede.texi ede.dvi: ede.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi -$(infodir)/semantic: semantic.texi sem-user.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi +$(infodir)/semantic$(INFO_EXT): semantic.texi sem-user.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ semantic.texi semantic.dvi: semantic.texi sem-user.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi -$(infodir)/edt: edt.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi +$(infodir)/edt$(INFO_EXT): edt.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ edt.texi edt.dvi: edt.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi -$(infodir)/emacs-gnutls: emacs-gnutls.texi doclicense.texi - $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi +$(infodir)/emacs-gnutls$(INFO_EXT): emacs-gnutls.texi doclicense.texi + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs-gnutls.texi emacs-gnutls.dvi: emacs-gnutls.texi doclicense.texi $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-gnutls.texi ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.