diff options
98 files changed, 2007 insertions, 795 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index ad427397524..f53b74e98c4 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -61,7 +61,7 @@ sk Miroslav Vaško ** Consider bumping customize-changed-options-previous-release. -** cusver-check from admin.el cam help find new defcustoms missing +** cusver-check from admin.el can help find new defcustoms missing :version tags. * BUGS @@ -229,7 +229,7 @@ syntax.texi cyd text.texi cyd tips.texi rgm variables.texi cyd -windows.texi +windows.texi rgm (skimmed) Local variables: diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 63ccb880d40..50c3d868eb3 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,24 @@ +2012-04-27 Glenn Morris <rgm@gnu.org> + + * emacs.texi: Some fixes for detailed menu. + +2012-04-26 Glenn Morris <rgm@gnu.org> + + * emacs.texi: Add "et al." to authors. + + * ack.texi, basic.texi, buffers.texi, building.texi: + * calendar.texi, cmdargs.texi, commands.texi, custom.texi: + * dired.texi, display.texi, emerge-xtra.texi, files.texi: + * fortran-xtra.texi, help.texi, kmacro.texi, mini.texi, misc.texi: + * msdog-xtra.texi, picture-xtra.texi, programs.texi, rmail.texi: + * search.texi, trouble.texi, windows.texi: + Use Texinfo recommended convention for quotes+punctuation. + +2012-04-25 Eli Zaretskii <eliz@gnu.org> + + * mule.texi (Bidirectional Editing): Improve indexing. Minor + wording tweaks. + 2012-04-15 Chong Yidong <cyd@gnu.org> * misc.texi (emacsclient Options): More clarifications. diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi index 51f6d70bd90..eafd38155f2 100644 --- a/doc/emacs/ack.texi +++ b/doc/emacs/ack.texi @@ -240,7 +240,7 @@ for compiled Emacs Lisp code. @item Mathias Dahl wrote @file{image-dired.el}, a package for viewing image -files as ``thumbnails.'' +files as ``thumbnails''. @item Julien Danjou wrote an implementation of ``Desktop Notifications'' @@ -1027,7 +1027,7 @@ Together with Dmitry Dzhus, he wrote @file{gdb-mi.el}, the successor to @item Danny Roozendaal implemented @file{handwrite.el}, which converts text -into ``handwriting.'' +into ``handwriting''. @item Markus Rost wrote @file{cus-test.el}, a testing framework for customize. @@ -1224,7 +1224,7 @@ the keyboard. @item Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing -image files as ``thumbnails.'' +image files as ``thumbnails''. @item Spencer Thomas wrote the original @file{dabbrev.el}, providing a command diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi index 5ad48eb48ef..2650b55811f 100644 --- a/doc/emacs/basic.texi +++ b/doc/emacs/basic.texi @@ -668,7 +668,7 @@ those two positions are the accessible ones. @xref{Narrowing}. @cindex arguments to commands In the terminology of mathematics and computing, @dfn{argument} -means ``data provided to a function or operation.'' You can give any +means ``data provided to a function or operation''. You can give any Emacs command a @dfn{numeric argument} (also called a @dfn{prefix argument}). Some commands interpret the argument as a repetition count. For example, giving @kbd{C-f} an argument of ten causes it to @@ -762,7 +762,7 @@ described when they come up; they exist to make an individual command more convenient, and they are documented in that command's documentation string. - We use the term ``prefix argument'' as well as ``numeric argument,'' + We use the term ``prefix argument'' as well as ``numeric argument'', to emphasize that you type these argument before the command, and to distinguish them from minibuffer arguments that come after the command. diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi index d2783bcb0ba..90d5084e3d9 100644 --- a/doc/emacs/buffers.texi +++ b/doc/emacs/buffers.texi @@ -180,7 +180,7 @@ buffers that were current most recently come first. @samp{.} in the first field of a line indicates that the buffer is current. @samp{%} indicates a read-only buffer. @samp{*} indicates -that the buffer is ``modified.'' If several buffers are modified, it +that the buffer is ``modified''. If several buffers are modified, it may be time to save some with @kbd{C-x s} (@pxref{Save Commands}). Here is an example of a buffer list: @@ -392,7 +392,7 @@ line: @table @kbd @item ~ -Mark the buffer ``unmodified.'' The command @kbd{~} does this +Mark the buffer ``unmodified''. The command @kbd{~} does this immediately when you type it. @item % Toggle the buffer's read-only flag. The command @kbd{%} does @@ -590,7 +590,7 @@ rule or another is easier for you to remember and apply quickly. Iswitchb global minor mode provides convenient switching between buffers using substrings of their names. It replaces the normal definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x -4 C-o} with alternative commands that are somewhat ``smarter.'' +4 C-o} with alternative commands that are somewhat ``smarter''. When one of these commands prompts you for a buffer name, you can type in just a substring of the name you want to choose. As you enter diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index fef7d2b2828..4b92376b8a9 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi @@ -331,7 +331,7 @@ you can do anything else in Emacs). @xref{MS-DOS}. Just as you can run a compiler from Emacs and then visit the lines with compilation errors, you can also run @command{grep} and then visit the lines on which matches were found. This works by treating -the matches reported by @command{grep} as if they were ``errors.'' +the matches reported by @command{grep} as if they were ``errors''. The output buffer uses Grep mode, which is a variant of Compilation mode (@pxref{Compilation Mode}). diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index c2851d4abd3..a1e98bfcb92 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -624,7 +624,7 @@ for all users in a @file{default.el} file. @xref{Init File}. These calendar commands display the dates and times of the phases of the moon (new moon, first quarter, full moon, last quarter). This feature is useful for debugging problems that ``depend on the phase of -the moon.'' +the moon''. @table @kbd @item M @@ -822,7 +822,7 @@ Display Mayan date for selected day (@code{calendar-mayan-print-date}). Otherwise, move point to the date you want to convert, then type the appropriate command starting with @kbd{p} from the table above. The -prefix @kbd{p} is a mnemonic for ``print,'' since Emacs ``prints'' the +prefix @kbd{p} is a mnemonic for ``print'', since Emacs ``prints'' the equivalent date in the echo area. @kbd{p o} displays the date in all forms known to Emacs. You can also use @kbd{Mouse-3} and then choose @kbd{Other calendars} from the menu that appears. This @@ -901,7 +901,7 @@ Islamic, or French names. @findex calendar-hebrew-list-yahrzeits @cindex yahrzeits One common issue concerning the Hebrew calendar is the computation -of the anniversary of a date of death, called a ``yahrzeit.'' The Emacs +of the anniversary of a date of death, called a ``yahrzeit''. The Emacs calendar includes a facility for such calculations. If you are in the calendar, the command @kbd{M-x calendar-hebrew-list-yahrzeits} asks you for a range of years and then displays a list of the yahrzeit dates for those @@ -1426,8 +1426,8 @@ that applies to the fourth Thursday in November: @noindent The 11 specifies November (the eleventh month), the 4 specifies Thursday (the fourth day of the week, where Sunday is numbered zero), and the -second 4 specifies the fourth Thursday (1 would mean ``first,'' 2 would -mean ``second,'' @minus{}2 would mean ``second-to-last,'' and so on). +second 4 specifies the fourth Thursday (1 would mean ``first'', 2 would +mean ``second'', @minus{}2 would mean ``second-to-last'', and so on). The month can be a single month or a list of months. Thus you could change the 11 above to @samp{'(1 2 3)} and have the entry apply to the last Thursday of January, February, and March. If the month is @code{t}, the @@ -1681,7 +1681,7 @@ timeclock-change}. Once you've collected data from a number of time intervals, you can use @kbd{M-x timeclock-workday-remaining} to see how much time is left to work today (assuming a typical average of 8 hours a day), and @kbd{M-x -timeclock-when-to-leave} which will calculate when you're ``done.'' +timeclock-when-to-leave} which will calculate when you're ``done''. @vindex timeclock-modeline-display @findex timeclock-modeline-display diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 4c6d6ef7bad..222aa0f8434 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi @@ -442,7 +442,7 @@ Directory for the documentation string file, which is used to initialize the Lisp variable @code{doc-directory}. @item EMACSLOADPATH A colon-separated list of directories@footnote{ Here and below, -whenever we say ``colon-separated list of directories,'' it pertains +whenever we say ``colon-separated list of directories'', it pertains to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the directories are separated by semi-colons instead, since DOS/Windows file names might include a colon after a drive letter.} to search for diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi index 3285b65e57b..9678adfe87f 100644 --- a/doc/emacs/commands.texi +++ b/doc/emacs/commands.texi @@ -166,7 +166,7 @@ commands, even though strictly speaking the key is bound to a command. Usually we state the name of the command which really does the work in parentheses after mentioning the key that runs it. For example, we will say that ``The command @kbd{C-n} (@code{next-line}) moves point -vertically down,'' meaning that the command @code{next-line} moves +vertically down'', meaning that the command @code{next-line} moves vertically down, and the key @kbd{C-n} is normally bound to it. Since we are discussing customization, we should tell you about diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 72b4961e209..cfd45de6aca 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1922,7 +1922,7 @@ single click definition has run when the first click was received. This constrains what you can do with double clicks, but user interface designers say that this constraint ought to be followed in any case. A double click should do something similar to the single click, only -``more so.'' The command for the double-click event should perform the +``more so''. The command for the double-click event should perform the extra work for the double click. If a double-click event has no binding, it changes to the @@ -1970,7 +1970,7 @@ or @samp{triple-}, which always precede @samp{drag-} or @samp{down-}. A frame includes areas that don't show text from the buffer, such as the mode line and the scroll bar. You can tell whether a mouse button comes from a special area of the screen by means of dummy ``prefix -keys.'' For example, if you click the mouse in the mode line, you get +keys''. For example, if you click the mouse in the mode line, you get the prefix key @code{mode-line} before the ordinary mouse-button symbol. Thus, here is how to define the command for clicking the first button in a mode line to run @code{scroll-up-command}: diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 301f8a76477..f3a1ae2fc99 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -14,7 +14,7 @@ optionally some of its subdirectories as well. You can use the normal Emacs commands to move around in this buffer, and special Dired commands to operate on the listed files. - The Dired buffer is ``read-only,'' and inserting text in it is not + The Dired buffer is ``read-only'', and inserting text in it is not allowed. Ordinary printing characters such as @kbd{d} and @kbd{x} are redefined for special Dired commands. Some Dired commands @dfn{mark} or @dfn{flag} the @dfn{current file} (that is, the file on the current @@ -1252,7 +1252,7 @@ and erases all flags and marks. @findex wdired-change-to-wdired-mode Wdired is a special mode that allows you to perform file operations by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands -for ``writable.'') To enter Wdired mode, type @kbd{C-x C-q} +for ``writable''.) To enter Wdired mode, type @kbd{C-x C-q} (@code{dired-toggle-read-only}) while in a Dired buffer. Alternatively, use the @samp{Immediate / Edit File Names} menu item. @@ -1297,7 +1297,7 @@ buffer containing image-dired, corresponding to the marked files. You can also enter Image-Dired directly by typing @kbd{M-x image-dired}. This prompts for a directory; specify one that has image files. This creates thumbnails for all the images in that -directory, and displays them all in the ``thumbnail buffer.'' This +directory, and displays them all in the ``thumbnail buffer''. This takes a long time if the directory contains many image files, and it asks for confirmation if the number of image files exceeds @code{image-dired-show-all-from-dir-max-files}. @@ -1408,7 +1408,7 @@ the current buffer. The default comparison method (used if you type @key{RET} at the prompt) is to compare just the file names---each file name that does -not appear in the other directory is ``different.'' You can specify +not appear in the other directory is ``different''. You can specify more stringent comparisons by entering a Lisp expression, which can refer to the variables @code{size1} and @code{size2}, the respective file sizes; @code{mtime1} and @code{mtime2}, the last modification @@ -1416,7 +1416,7 @@ times in seconds, as floating point numbers; and @code{fa1} and @code{fa2}, the respective file attribute lists (as returned by the function @code{file-attributes}). This expression is evaluated for each pair of like-named files, and if the expression's value is -non-@code{nil}, those files are considered ``different.'' +non-@code{nil}, those files are considered ``different''. For instance, the sequence @code{M-x dired-compare-directories @key{RET} (> mtime1 mtime2) @key{RET}} marks files newer in this diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index da33d352698..84e81f565cc 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -448,7 +448,7 @@ and visits it with View mode enabled. @cindex synchronizing windows @dfn{Follow mode} is a minor mode that makes two windows, both -showing the same buffer, scroll as a single tall ``virtual window.'' +showing the same buffer, scroll as a single tall ``virtual window''. To use Follow mode, go to a frame with just one window, split it into two side-by-side windows using @kbd{C-x 3}, and then type @kbd{M-x follow-mode}. From then on, you can edit the buffer in either of the @@ -982,15 +982,15 @@ fringes on the selected frame only, use @kbd{M-x set-fringe-style}. line (@pxref{Continuation Lines}). When one line of text is split into multiple screen lines, the left fringe shows a curving arrow for each screen line except the first, indicating that ``this is not the -real beginning.'' The right fringe shows a curving arrow for each +real beginning''. The right fringe shows a curving arrow for each screen line except the last, indicating that ``this is not the real -end.'' If the line's direction is right-to-left (@pxref{Bidirectional +end''. If the line's direction is right-to-left (@pxref{Bidirectional Editing}), the meanings of the curving arrows in the fringes are swapped. The fringes indicate line truncation with short horizontal arrows meaning ``there's more text on this line which is scrolled -horizontally out of view.'' Clicking the mouse on one of the arrows +horizontally out of view''. Clicking the mouse on one of the arrows scrolls the display horizontally in the direction of the arrow. The fringes can also indicate other things, such as buffer diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 25e5bb2af0d..13f60e8cfdf 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -72,7 +72,7 @@ developing GNU and promoting software freedom.'' @sp 4 @center @value{EDITION} Edition, Updated for Emacs Version @value{EMACSVER}. @sp 5 -@center Richard Stallman +@center Richard Stallman et al. @page @vskip 0pt plus 1filll @insertcopying @@ -288,11 +288,11 @@ The Mark and the Region Killing and Moving Text * Deletion and Killing:: Commands that remove text. -* Yanking:: Recovering killed text. Moving text. (Pasting.) +* Yanking:: Commands that insert text. * Cut and Paste:: Clipboard and selections on graphical displays. -* Accumulating Text:: Other ways of copying text. +* Accumulating Text:: Other methods to add text to the buffer. * Rectangles:: Operating on text in rectangular areas. -* CUA Bindings:: Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} to kill and yank. +* CUA Bindings:: Using @kbd{C-x}/@kbd{C-c}/@kbd{C-v} to kill and yank. Deletion and Killing @@ -309,9 +309,9 @@ Yanking * Earlier Kills:: Yanking something killed some time ago. * Appending Kills:: Several kills in a row all yank together. -Killing and Yanking on Graphical Displays +"Cut and Paste" Operations on Graphical Displays -* Clipboard:: How Emacs interacts with the system clipboard. +* Clipboard:: How Emacs uses the system clipboard. * Primary Selection:: The temporarily selected text selection. * Secondary Selection:: Cutting without altering point and mark. @@ -328,7 +328,7 @@ Registers Controlling the Display * Scrolling:: Commands to move text up and down in a window. -* Recentering:: A scrolling command that centers the current line. +* Recentering:: A scroll command that centers the current line. * Auto Scrolling:: Redisplay scrolls text automatically when needed. * Horizontal Scrolling:: Moving text left and right in a window. * Narrowing:: Restricting display and editing to a portion @@ -486,7 +486,7 @@ Multiple Windows * Displaying Buffers:: How Emacs picks a window for displaying a buffer. * Window Convenience:: Convenience functions for window handling. -Displaying Buffers +Displaying a Buffer in a Window * Window Choice:: How @code{display-buffer} works. @@ -509,7 +509,7 @@ Frames and Graphical Displays * Tool Bars:: Enabling and disabling the tool bar. * Dialog Boxes:: Controlling use of dialog boxes. * Tooltips:: Displaying information at the current mouse position. -* Mouse Avoidance:: Moving the mouse pointer out of the way. +* Mouse Avoidance:: Preventing the mouse pointer from obscuring text. * Non-Window Terminals:: Multiple frames on terminals that show only one. * Text-Only Mouse:: Using the mouse in text terminals. @@ -540,7 +540,7 @@ International Character Set Support * Charsets:: How Emacs groups its internal character codes. * Bidirectional Editing:: Support for right-to-left scripts. -Modes +Major and Minor Modes * Major Modes:: Text mode vs. Lisp mode vs. C mode... * Minor Modes:: Each minor mode is a feature you can turn on @@ -600,7 +600,7 @@ Org Mode * TeX Print:: Commands for printing part of a file with TeX. * TeX Misc:: Customization of TeX mode, and related features. -Editing Enriched Text +Enriched Text * Enriched Mode:: Entering and exiting Enriched mode. * Hard and Soft Newlines:: There are two different kinds of newlines. @@ -783,7 +783,7 @@ Introduction to Version Control * Version Control Systems:: Supported version control back-end systems. * VCS Concepts:: Words and concepts related to version control. * VCS Merging:: How file conflicts are handled. -* VCS Changesets:: Changesets in version control. +* VCS Changesets:: How changes are grouped. * VCS Repositories:: Where version control repositories are stored. * Types of Log File:: The VCS log in contrast to the ChangeLog. @@ -798,10 +798,10 @@ VC Directory Mode * VC Directory Buffer:: What the buffer looks like and means. * VC Directory Commands:: Commands to use in a VC directory buffer. -Multiple Branches of a File +Version Control Branches * Switching Branches:: How to get to another existing branch. -* VC Pull:: Updating a branch from another branch. +* VC Pull:: Updating the contents of a branch. * Merging:: Transferring changes between branches. * Creating Branches:: How to start a new branch. @@ -828,12 +828,12 @@ Change Logs Tags Tables * Tag Syntax:: Tag syntax for various types of code and text files. -* Create Tags Table:: Creating a tags table with @code{etags}. +* Create Tags Table:: Creating a tags table with @command{etags}. * Etags Regexps:: Create arbitrary tags using regular expressions. * Select Tags Table:: How to visit a tags table. * Find Tag:: Commands to find the definition of a specific tag. * Tags Search:: Using a tags table for searching and replacing. -* List Tags:: Listing and finding tags defined in a file. +* List Tags:: Using tags for completion, and listing them. @ifnottex Merging Files with Emerge @@ -952,16 +952,9 @@ Customizing the Calendar and Diary * Sexp Diary Entries:: More flexible diary entries. @end ifnottex -Document Viewing - -* DocView Navigation:: Navigating DocView buffers. -* DocView Searching:: Searching inside documents. -* DocView Slicing:: Specifying which part of a page is displayed. -* DocView Conversion:: Influencing and triggering conversion. - Sending Mail -* Mail Format:: Format of the mail being composed. +* Mail Format:: Format of a mail message. * Mail Headers:: Details of some standard mail header fields. * Mail Aliases:: Abbreviating and grouping mail addresses. * Mail Commands:: Special commands for editing mail being composed. @@ -1012,6 +1005,13 @@ Gnus * Gnus Group Buffer:: A short description of Gnus group commands. * Gnus Summary Buffer:: A short description of Gnus summary commands. +Document Viewing + +* DocView Navigation:: Navigating DocView buffers. +* DocView Searching:: Searching inside documents. +* DocView Slicing:: Specifying which part of a page is displayed. +* DocView Conversion:: Influencing and triggering conversion. + Running Shell Commands from Emacs * Single Shell:: How to run one shell command and return. @@ -1061,10 +1061,10 @@ Customization * Variables:: Many Emacs commands examine Emacs variables to decide what to do; by setting variables, you can control their functioning. -* Key Bindings:: Keymaps say what command each key runs. +* Key Bindings:: The keymaps say what command each key runs. By changing them, you can "redefine" keys. * Init File:: How to write common customizations in the - @file{.emacs} file. + initialization file. Easy Customization Interface @@ -1098,7 +1098,7 @@ Customizing Key Bindings * Local Keymaps:: Major and minor modes have their own keymaps. * Minibuffer Maps:: The minibuffer uses its own local keymaps. * Rebinding:: How to redefine one key's meaning conveniently. -* Init Rebinding:: Rebinding keys with your init file, @file{.emacs}. +* Init Rebinding:: Rebinding keys with your initialization file. * Modifier Keys:: Using modifier keys in key bindings. * Function Keys:: Rebinding terminal function keys. * Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. @@ -1107,7 +1107,7 @@ Customizing Key Bindings before it can be executed. This is done to protect beginners from surprises. -The Init File, @file{~/.emacs} +The Emacs Initialization File * Init Syntax:: Syntax of constants in Emacs Lisp. * Init Examples:: How to do some things with an init file. @@ -1167,7 +1167,7 @@ GTK resources * GTK Resource Basics:: Basic usage of GTK+ resources. * GTK Widget Names:: How GTK+ widgets are named. -* GTK Names in Emacs:: GTK+ widgets used by Emacs. +* GTK Names in Emacs:: GTK widgets used by Emacs. * GTK styles:: What can be customized in a GTK widget. Emacs and Mac OS / GNUstep @@ -1183,7 +1183,8 @@ Emacs and Microsoft Windows/MS-DOS * Text and Binary:: Text files use CRLF to terminate lines. * Windows Files:: File-name conventions on Windows. * ls in Lisp:: Emulation of @code{ls} for Dired. -* Windows HOME:: Where Emacs looks for your @file{.emacs}. +* Windows HOME:: Where Emacs looks for your @file{.emacs} and + where it starts up. * Windows Keyboard:: Windows-specific keyboard features. * Windows Mouse:: Windows-specific mouse features. * Windows Processes:: Running subprocesses on Windows. diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi index 72e0b36b704..552580ef851 100644 --- a/doc/emacs/emerge-xtra.texi +++ b/doc/emacs/emerge-xtra.texi @@ -151,7 +151,7 @@ input. The mode line indicates Auto Advance mode with @samp{A}. If Skip Prefers mode is in effect, the @kbd{n} and @kbd{p} commands skip over differences in states ``prefer-A'' and ``prefer-B'' (@pxref{State of Difference}). Thus you see only differences for -which neither version is presumed ``correct.'' The mode line +which neither version is presumed ``correct''. The mode line indicates Skip Prefers mode with @samp{S}. This mode is only relevant when there is an ancestor. diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 10ba9ed1fa6..31883a1f5cc 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -97,7 +97,7 @@ minibuffer, with a directory omitted, specifies the file When typing a file name into the minibuffer, you can make use of a couple of shortcuts: a double slash is interpreted as ``ignore -everything before the second slash in the pair,'' and @samp{~/} is +everything before the second slash in the pair'', and @samp{~/} is interpreted as your home directory. @xref{Minibuffer File}. @cindex environment variables in file names @@ -1340,7 +1340,7 @@ correct the line numbers in the hunk headers, to ensure that the diff remains ``correct''. To disable automatic line number correction, change the variable @code{diff-update-on-the-fly} to @code{nil}. - Diff mode treats each hunk as an ``error message,'' similar to + Diff mode treats each hunk as an ``error message'', similar to Compilation mode. Thus, you can use commands such as @kbd{C-x '} to visit the corresponding source locations. @xref{Compilation Mode}. diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi index 0dc99034ae6..43e2e63863e 100644 --- a/doc/emacs/fortran-xtra.texi +++ b/doc/emacs/fortran-xtra.texi @@ -207,7 +207,7 @@ the Fortran standard counts from 1.) The variable @code{fortran-continuation-string} specifies what character to put in column 5. A line that starts with a tab character followed by any digit except @samp{0} is also a continuation line. We call this style of -continuation @dfn{tab format}. (Fortran 90 introduced ``free form,'' +continuation @dfn{tab format}. (Fortran 90 introduced ``free form'', with another style of continuation lines). @vindex indent-tabs-mode @r{(Fortran mode)} diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index eef38136583..e8c5614ff58 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -96,7 +96,7 @@ of the major mode, then global bindings (@code{describe-bindings}). @item C-h c @var{key} Show the name of the command that the key sequence @var{key} is bound to (@code{describe-key-briefly}). Here @kbd{c} stands for -``character.'' For more extensive information on @var{key}, use +``character''. For more extensive information on @var{key}, use @kbd{C-h k}. @item C-h d @var{topics} @key{RET} Display the commands and variables whose documentation matches diff --git a/doc/emacs/kmacro.texi b/doc/emacs/kmacro.texi index 766470e514b..e7522a9db43 100644 --- a/doc/emacs/kmacro.texi +++ b/doc/emacs/kmacro.texi @@ -225,7 +225,7 @@ desired macro is at the head of the ring. To execute the new macro ring head immediately, just type @kbd{C-k}. Note that Emacs treats the head of the macro ring as the ``last -defined keyboard macro.'' For instance, @key{F4} will execute that +defined keyboard macro''. For instance, @key{F4} will execute that macro, and @kbd{C-x C-k n} will give it a name. @vindex kmacro-ring-max diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index e498516ae7f..f50e3085f2d 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -88,7 +88,7 @@ Find file: /u2/emacs/src//etc/termcap @cindex slashes repeated in file name @findex file-name-shadow-mode Emacs interprets a double slash as ``ignore everything before the -second slash in the pair.'' In the example above, +second slash in the pair''. In the example above, @file{/u2/emacs/src/} is ignored, so the argument you supplied is @file{/etc/termcap}. The ignored part of the file name is dimmed if the terminal allows it. (To disable this dimming, turn off File Name diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 50b68767991..b91763116b8 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1191,7 +1191,7 @@ that buffer. line mode, Term basically acts like Shell mode (@pxref{Shell Mode}). In char mode, each character is sent directly to the subshell, as -``terminal input.'' Any ``echoing'' of your input is the +``terminal input''. Any ``echoing'' of your input is the responsibility of the subshell. The sole exception is the terminal escape character, which by default is @kbd{C-c} (@pxref{Term Mode}). Any ``terminal output'' from the subshell goes into the buffer, @@ -2076,10 +2076,10 @@ Insert a byte with a code typed in octal. Insert a byte with a code typed in hex. @item C-x [ -Move to the beginning of a 1k-byte ``page.'' +Move to the beginning of a 1k-byte ``page''. @item C-x ] -Move to the end of a 1k-byte ``page.'' +Move to the end of a 1k-byte ``page''. @item M-g Move to an address specified in hex. @@ -2149,7 +2149,7 @@ usually turned on. However, this may be slow if there are a lot of buffers in the desktop. You can specify the maximum number of buffers to restore immediately with the variable @code{desktop-restore-eager}; the -remaining buffers are restored ``lazily,'' when Emacs is idle. +remaining buffers are restored ``lazily'', when Emacs is idle. @findex desktop-clear @vindex desktop-globals-to-clear diff --git a/doc/emacs/msdog-xtra.texi b/doc/emacs/msdog-xtra.texi index af8882a1fd4..0d05c8ac9c6 100644 --- a/doc/emacs/msdog-xtra.texi +++ b/doc/emacs/msdog-xtra.texi @@ -548,7 +548,7 @@ when invoked with the @samp{-nw} option. @cindex inferior processes under MS-DOS @findex compile @r{(MS-DOS)} @findex grep @r{(MS-DOS)} - Because MS-DOS is a single-process ``operating system,'' + Because MS-DOS is a single-process ``operating system'', asynchronous subprocesses are not available. In particular, Shell mode and its variants do not work. Most Emacs features that use asynchronous subprocesses also don't work on MS-DOS, including diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index df2d687114b..9c1d908f882 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -1337,6 +1337,7 @@ fontset}, the @dfn{startup fontset} and the @dfn{default fontset}. @c FIXME? The doc of *standard*-fontset-spec says: @c "You have the biggest chance to display international characters @c with correct glyphs by using the *standard* fontset." (my emphasis) +@c See http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00430.html The default fontset is most likely to have fonts for a wide variety of non-@acronym{ASCII} characters, and is the default fallback for the other two fontsets, and if you set a default font rather than fontset. @@ -1762,15 +1763,17 @@ non-@code{nil}, Emacs reorders characters that have right-to-left directionality when they are displayed. The default value is @code{t}. +@cindex base direction of paragraphs +@cindex paragraph, base direction Each paragraph of bidirectional text can have its own @dfn{base direction}, either right-to-left or left-to-right. (Paragraph @c paragraph-separate etc have no influence on this? boundaries are empty lines, i.e.@: lines consisting entirely of -whitespace characters.) Text in left-to-right paragraphs begins at -the left margin of the window and is truncated or continued when it -reaches the right margin. By contrast, text in right-to-left -paragraphs begins at the right margin and is continued or truncated at -the left margin. +whitespace characters.) Text in left-to-right paragraphs begins on +the screen at the left margin of the window and is truncated or +continued when it reaches the right margin. By contrast, text in +right-to-left paragraphs is displayed starting at the right margin and +is continued or truncated at the left margin. @vindex bidi-paragraph-direction Emacs determines the base direction of each paragraph dynamically, diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi index 5a10bf2c31c..edf75f078d5 100644 --- a/doc/emacs/picture-xtra.texi +++ b/doc/emacs/picture-xtra.texi @@ -199,7 +199,7 @@ C-b} (@code{picture-motion-reverse}) moves in the opposite direction. With no argument, it moves to a point underneath the next ``interesting'' character that follows whitespace in the previous nonblank line. ``Next'' here means ``appearing at a horizontal position -greater than the one point starts out at.'' With an argument, as in +greater than the one point starts out at''. With an argument, as in @kbd{C-u M-@key{TAB}}, this command moves to the next such interesting character in the current line. @kbd{M-@key{TAB}} does not change the text; it only moves point. ``Interesting'' characters are defined by diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 5f7abcf3881..23f808b93ea 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -1109,7 +1109,7 @@ You can also use @kbd{M-x info-lookup-file} to look for documentation for a file name. If you use @kbd{C-h S} in a major mode that does not support it, -it asks you to specify the ``symbol help mode.'' You should enter +it asks you to specify the ``symbol help mode''. You should enter a command such as @code{c-mode} that would select a major mode which @kbd{C-h S} does support. @@ -1451,7 +1451,7 @@ with the Foldout package (@pxref{Foldout}). This section gives a brief description of the special features available in C, C++, Objective-C, Java, CORBA IDL, Pike and AWK modes. -(These are called ``C mode and related modes.'') +(These are called ``C mode and related modes''.) @ifinfo @xref{Top,, CC Mode, ccmode, CC Mode}, for more details. @end ifinfo diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi index 3b3605f800c..6221bbac1a8 100644 --- a/doc/emacs/rmail.texi +++ b/doc/emacs/rmail.texi @@ -1355,7 +1355,7 @@ your Rmail file (@pxref{Rmail Inbox}). When loaded for the first time, Rmail attempts to locate the @code{movemail} program and determine its version. There are two versions of the @code{movemail} program: the native one, shipped with GNU Emacs (the ``emacs version'') and the one -included in GNU mailutils (the ``mailutils version,'' +included in GNU mailutils (the ``mailutils version'', @pxref{movemail,,,mailutils,GNU mailutils}). They support the same command line syntax and the same basic subset of options. However, the Mailutils version offers additional features. diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 38f00f03532..9d30c6f4caf 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi @@ -146,7 +146,7 @@ you don't like this feature, you can disable it by setting After exiting a search, you can search for the same string again by typing just @kbd{C-s C-s}. The first @kbd{C-s} is the key that invokes incremental search, and the second @kbd{C-s} means ``search -again.'' Similarly, @kbd{C-r C-r} searches backward for the last +again''. Similarly, @kbd{C-r C-r} searches backward for the last search string. In determining the last search string, it doesn't matter whether the string was searched for with @kbd{C-s} or @kbd{C-r}. @@ -552,7 +552,7 @@ therefore @samp{f} is a regular expression that matches the string @samp{ff}.) Likewise, @samp{o} is a regular expression that matches only @samp{o}. (When case distinctions are being ignored, these regexps also match @samp{F} and @samp{O}, but we consider this a generalization -of ``the same string,'' rather than an exception.) +of ``the same string'', rather than an exception.) Any two regular expressions @var{a} and @var{b} can be concatenated. The result is a regular expression which matches a string if @var{a} @@ -801,7 +801,7 @@ After the end of a @samp{\( @dots{} \)} construct, the matcher remembers the beginning and end of the text matched by that construct. Then, later on in the regular expression, you can use @samp{\} followed by the digit @var{d} to mean ``match the same text matched the @var{d}th time -by the @samp{\( @dots{} \)} construct.'' +by the @samp{\( @dots{} \)} construct''. The strings matching the first nine @samp{\( @dots{} \)} constructs appearing in a regular expression are assigned numbers 1 through 9 in @@ -1030,7 +1030,7 @@ it can refer to all or part of what is matched by the @var{regexp}. @samp{\&} in @var{newstring} stands for the entire match being replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a digit, stands for whatever matched the @var{d}th parenthesized -grouping in @var{regexp}. (This is called a ``back reference.'') +grouping in @var{regexp}. (This is called a ``back reference''.) @samp{\#} refers to the count of replacements already made in this command, as a decimal number. In the first replacement, @samp{\#} stands for @samp{0}; in the second, for @samp{1}; and so on. For diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index b118295ab1a..3bbdecc0176 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -534,16 +534,16 @@ large, and Emacs displays @samp{I feel pretty today}. The bug report would need to provide all that information. You should not assume that the problem is due to the size of the file and say, ``I visited a large file, and Emacs displayed @samp{I feel pretty today}.'' This is -what we mean by ``guessing explanations.'' The problem might be due +what we mean by ``guessing explanations''. The problem might be due to the fact that there is a @samp{z} in the file name. If this is so, then when we got your report, we would try out the problem with some -``large file,'' probably with no @samp{z} in its name, and not see any +``large file'', probably with no @samp{z} in its name, and not see any problem. There is no way we could guess that we should try visiting a file with a @samp{z} in its name. You should not even say ``visit a file'' instead of @kbd{C-x C-f}. Similarly, rather than saying ``if I have three characters on the -line,'' say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if +line'', say ``after I type @kbd{@key{RET} A B C @key{RET} C-p}'', if that is the way you entered the text. If possible, try quickly to reproduce the bug by invoking Emacs with @@ -731,7 +731,7 @@ you can copy its output from the @file{*Messages*} buffer. @item A description of what behavior you observe that you believe is -incorrect. For example, ``The Emacs process gets a fatal signal,'' or, +incorrect. For example, ``The Emacs process gets a fatal signal'', or, ``The resulting text is as follows, which I think is wrong.'' Of course, if the bug is that Emacs gets a fatal signal, then one can't @@ -872,7 +872,7 @@ More detailed advice and other useful techniques for debugging Emacs are available in the file @file{etc/DEBUG} in the Emacs distribution. That file also includes instructions for investigating problems whereby Emacs stops responding (many people assume that Emacs is -``hung,'' whereas in fact it might be in an infinite loop). +``hung'', whereas in fact it might be in an infinite loop). To find the file @file{etc/DEBUG} in your Emacs installation, use the directory name stored in the variable @code{data-directory}. diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index ee0f0027454..72e01a368a1 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -151,7 +151,7 @@ selects the window without moving point in it. @kindex C-x o @findex other-window With the keyboard, you can switch windows by typing @kbd{C-x o} -(@code{other-window}). That is an @kbd{o}, for ``other,'' not a zero. +(@code{other-window}). That is an @kbd{o}, for ``other'', not a zero. When there are more than two windows, this command moves through all the windows in a cyclic order, generally top to bottom and left to right. After the rightmost and bottommost window, it goes back to the one at @@ -452,7 +452,7 @@ buffer. @xref{Follow Mode}. The Windmove package defines commands for moving directionally between neighboring windows in a frame. @kbd{M-x windmove-right} selects the window immediately to the right of the currently selected -one, and similarly for the ``left,'' ``up,'' and ``down'' +one, and similarly for the ``left'', ``up'', and ``down'' counterparts. @kbd{M-x windmove-default-keybindings} binds these commands to @kbd{S-right} etc.; doing so disables shift selection for those keys (@pxref{Shift Selection}). diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 5333e3af3df..9c323d7937f 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,54 @@ +2012-04-27 Glenn Morris <rgm@gnu.org> + + * elisp.texi, vol1.texi, vol2.texi: Some fixes for detailed menu. + * modes.texi (Major Modes, Auto-Indentation): + * buffers.texi (Buffers): Some fixes for menu descriptions. + +2012-04-27 Stefan Monnier <monnier@iro.umontreal.ca> + * functions.texi (Simple Lambda, Argument List): + * eval.texi (Function Indirection): Avoid deprecated form. + +2012-04-27 Glenn Morris <rgm@gnu.org> + + * book-spine.texi, elisp.texi, vol1.texi, vol2.texi: + Add "et al." to authors. + + * buffers.texi, commands.texi, compile.texi, control.texi: + * customize.texi, display.texi, eval.texi, files.texi, frames.texi: + * hash.texi, help.texi, intro.texi, keymaps.texi, lists.texi: + * modes.texi, numbers.texi, objects.texi, streams.texi: + * symbols.texi, syntax.texi, text.texi, tips.texi, variables.texi: + Use Texinfo recommended convention for quotes+punctuation. + +2012-04-27 Chong Yidong <cyd@gnu.org> + + * keymaps.texi (Scanning Keymaps): Fix description of NO-REMAP arg + to where-is-internal (Bug#10872). + +2012-04-27 Glenn Morris <rgm@gnu.org> + + * macros.texi (Indenting Macros): Fix typo. + + * windows.texi (Basic Windows, Windows and Frames, Window Sizes) + (Resizing Windows, Deleting Windows, Selecting Windows) + (Choosing Window Options, Horizontal Scrolling) + (Cyclic Window Ordering, Window History, Dedicated Windows) + (Quitting Windows, Window Configurations, Textual Scrolling): + (Coordinates and Windows, Window Configurations) + (Window Parameters, Window Hooks): Copyedits. + (Splitting Windows, Deleting Windows): + Fix ignore-window-parameters logic. + (Selecting Windows, Choosing Window Options): Markup fixes. + (Window Start and End): Remove pointless example. + Remove cross-reference to deleted count-lines content. + (Textual Scrolling): Mention recenter-redisplay, recenter-top-bottom, + and recenter-positions. Remove recenter example. + + * elisp.texi, vol1.texi, vol2.texi: Bump VERSION and DATE. + + * minibuf.texi (Intro to Minibuffers): + Tweak discussion of resizing minibuffer window. + 2012-04-26 Glenn Morris <rgm@gnu.org> * elisp-covers.texi, front-cover-1.texi: Remove files. diff --git a/doc/lispref/book-spine.texi b/doc/lispref/book-spine.texi index 270def6d8b3..721416316d2 100644 --- a/doc/lispref/book-spine.texi +++ b/doc/lispref/book-spine.texi @@ -20,8 +20,8 @@ @center by @center Bil Lewis, @center Dan LaLiberte, -@center and the -@center GNU Manual Group +@center the GNU Manual Group, +@center et al. @sp 5 @center Free Software Foundation @bye diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index 844b6423a52..165faf32b09 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -23,7 +23,7 @@ not be displayed in any windows. * Buffer File Name:: The buffer file name indicates which file is visited. * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - ``behind Emacs's back''. + "behind Emacs's back". * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * The Buffer List:: How to look at all the existing buffers. * Creating Buffers:: Functions that create buffers. @@ -481,7 +481,7 @@ correspond to the new file name, unless the new name is already in use. If @var{filename} is @code{nil} or the empty string, that stands for -``no visited file.'' In this case, @code{set-visited-file-name} marks +``no visited file''. In this case, @code{set-visited-file-name} marks the buffer as having no visited file, without changing the buffer's modified flag. diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index bf26d83b7bf..dea838462bb 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -718,7 +718,7 @@ We use @code{"p"} because the numeric prefix argument is never message when called from a keyboard macro. The above method with the additional argument is usually best, -because it allows callers to say ``treat this call as interactive.'' +because it allows callers to say ``treat this call as interactive''. But you can also do the job by testing @code{called-interactively-p}. @defun called-interactively-p kind @@ -2325,7 +2325,7 @@ same symbol that would normally represent that combination of mouse button and modifier keys. The information about the window part is kept elsewhere in the event---in the coordinates. But @code{read-key-sequence} translates this information into imaginary -``prefix keys,'' all of which are symbols: @code{header-line}, +``prefix keys'', all of which are symbols: @code{header-line}, @code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line}, @code{vertical-line}, and @code{vertical-scroll-bar}. You can define meanings for mouse clicks in special window parts by defining key @@ -2705,7 +2705,7 @@ individual events, which you can put in @code{unread-command-events}. @defvar unread-command-char This variable holds a character to be read as command input. -A value of -1 means ``empty.'' +A value of -1 means ``empty''. This variable is mostly obsolete now that you can use @code{unread-command-events} instead; it exists only to support programs @@ -3195,7 +3195,7 @@ using the minibuffer. Usually it is more convenient for the user if you change the major mode of the current buffer temporarily to a special major mode, which should have a command to go back to the previous mode. (The @kbd{e} command in Rmail uses this technique.) Or, if you wish to -give the user different text to edit ``recursively,'' create and select +give the user different text to edit ``recursively'', create and select a new buffer in a special mode. In this mode, define a command to complete the processing and go back to the previous buffer. (The @kbd{m} command in Rmail does this.) diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index ead75942b24..8cebd9fade6 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -274,7 +274,7 @@ reloading each file after recompiling it. use a special Lisp reader construct, @samp{#@@@var{count}}. This construct skips the next @var{count} characters. It also uses the @samp{#$} construct, which stands for ``the name of this file, as a -string.'' It is usually best not to use these constructs in Lisp source +string''. It is usually best not to use these constructs in Lisp source files, since they are not designed to be clear to humans reading the file. diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index aa24291d892..d6dee7ecf91 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -220,7 +220,7 @@ non-@code{nil}, the clause ``succeeds''; then @code{cond} evaluates its @var{body-forms}, and the value of the last of @var{body-forms} becomes the value of the @code{cond}. The remaining clauses are ignored. -If the value of @var{condition} is @code{nil}, the clause ``fails,'' so +If the value of @var{condition} is @code{nil}, the clause ``fails'', so the @code{cond} moves on to the following clause, trying its @var{condition}. @@ -622,7 +622,7 @@ error is signaled with data @code{(@var{tag} @var{value})}. @subsection Examples of @code{catch} and @code{throw} One way to use @code{catch} and @code{throw} is to exit from a doubly -nested loop. (In most languages, this would be done with a ``goto.'') +nested loop. (In most languages, this would be done with a ``goto''.) Here we compute @code{(foo @var{i} @var{j})} for @var{i} and @var{j} varying from 0 to 9: diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 04b3cdd11f0..c8e60fd84f4 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -817,7 +817,7 @@ For example, @noindent describes a variable for which @code{t} means yes, @code{nil} means no, -and @code{foo} means ``ask.'' +and @code{foo} means ``ask''. @item (other @var{value}) This alternative can match any Lisp value, but if the user chooses this @@ -834,7 +834,7 @@ For example, @noindent describes a variable for which @code{t} means yes, @code{nil} means no, -and anything else means ``ask.'' If the user chooses @samp{Ask} from +and anything else means ``ask''. If the user chooses @samp{Ask} from the menu of alternatives, that specifies the value @code{foo}; but any other value (not @code{t}, @code{nil} or @code{foo}) displays as @samp{Ask}, just like @code{foo}. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 0113ae86358..4ec3b8bf08a 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -155,7 +155,7 @@ boundary. @xref{Filling}. indicate truncated and continued lines (@pxref{Fringes}). On a text terminal, a @samp{$} in the rightmost column of the window indicates truncation; a @samp{\} on the rightmost column indicates a line that -``wraps.'' (The display table can specify alternate characters to use +``wraps''. (The display table can specify alternate characters to use for this; @pxref{Display Tables}). @defopt truncate-lines @@ -451,7 +451,7 @@ prints the message of @var{reporter} followed by word ``done'' in the echo area. You should always call this function and not hope for -@code{progress-reporter-update} to print ``100%.'' Firstly, it may +@code{progress-reporter-update} to print ``100%''. Firstly, it may never print it, there are many good reasons for this not to happen. Secondly, ``done'' is more explicit. @end defun @@ -1308,7 +1308,7 @@ The return value is @var{overlay}. This is the only valid way to change the endpoints of an overlay. Do not try modifying the markers in the overlay by hand, as that fails to update other vital data structures and can cause some overlays to be -``lost.'' +``lost''. @end defun @defun remove-overlays &optional start end name value @@ -1385,7 +1385,7 @@ foo @end example Emacs stores the overlays of each buffer in two lists, divided -around an arbitrary ``center position.'' One list extends backwards +around an arbitrary ``center position''. One list extends backwards through the buffer from that center position, and the other extends forwards from that center position. The center position can be anywhere in the buffer. @@ -4359,7 +4359,7 @@ $$\pmatrix{ 2 & -1 & 0 \cr @end ifnottex @item disabled -Specifies transforming the image so that it looks ``disabled.'' +Specifies transforming the image so that it looks ``disabled''. @end table @item :mask @var{mask} @@ -5531,7 +5531,7 @@ Any @var{args} are passed to @var{map-function}. @subsection Abstract Display Example Here is a simple example using functions of the ewoc package to -implement a ``color components display,'' an area in a buffer that +implement a ``color components display'', an area in a buffer that represents a vector of three integers (itself representing a 24-bit RGB value) in various ways. @@ -5842,7 +5842,7 @@ display the character @var{c} as those glyphs; @pxref{Glyphs}). @strong{Warning:} if you use the display table to change the display of newline characters, the whole buffer will be displayed as one long -``line.'' +``line''. The display table also has six ``extra slots'' which serve special purposes. Here is a table of their meanings; @code{nil} in any slot @@ -6153,7 +6153,7 @@ capability (@samp{vb}). @defvar ring-bell-function If this is non-@code{nil}, it specifies how Emacs should ``ring the -bell.'' Its value should be a function of no arguments. If this is +bell''. Its value should be a function of no arguments. If this is non-@code{nil}, it takes precedence over the @code{visible-bell} variable. @end defvar @@ -6162,7 +6162,7 @@ variable. @section Window Systems Emacs works with several window systems, most notably the X Window -System. Both Emacs and X use the term ``window,'' but use it +System. Both Emacs and X use the term ``window'', but use it differently. An Emacs frame is a single window as far as X is concerned; the individual Emacs windows are not known to X at all. diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 4319d5eddda..9c5ae73f718 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -5,11 +5,10 @@ @c %**end of header @c Version of the manual and of Emacs. -@c Please remember to update the edition number in README as well. -@c And also the copies in vol1.texi and vol2.texi. -@set VERSION 3.0 +@c Please remember to update these in vol1.texi and vol2.texi as well. +@set VERSION 3.1 @include emacsver.texi -@set DATE July 2009 +@set DATE July 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 @@ -73,8 +72,8 @@ developing GNU and promoting software freedom.'' @subtitle For Emacs Version @value{EMACSVER} @subtitle Revision @value{VERSION}, @value{DATE} -@author by Bil Lewis, Dan LaLiberte, Richard Stallman -@author and the GNU Manual Group +@author by Bil Lewis, Dan LaLiberte, Richard Stallman, +@author the GNU Manual Group, et al. @page @vskip 0pt plus 1filll @insertcopying @@ -460,7 +459,7 @@ Functions * Closures:: Functions that enclose a lexical environment. * Obsolete Functions:: Declaring functions obsolete. * Inline Functions:: Defining functions that the compiler - will open code. + will expand inline. * Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives @@ -493,7 +492,7 @@ Common Problems Using Macros * Eval During Expansion:: Don't evaluate them; put them in the expansion. * Repeated Expansion:: Avoid depending on how many times expansion is done. -Writing Customization Definitions +Customization Settings * Common Keywords:: Common keyword arguments for all kinds of customization declarations. @@ -754,6 +753,7 @@ Defining Menus various features. * Menu Separators:: Drawing a horizontal line through a menu. * Alias Menu Items:: Using command aliases in menu items. +* Toolkit Differences:: Not all toolkits provide the same features. Major and Minor Modes @@ -824,6 +824,21 @@ Multiline Font Lock Constructs * Region to Refontify:: Controlling which region gets refontified after a buffer change. +Automatic Indentation of code + +* SMIE:: A simple minded indentation engine. + +Simple Minded Indentation Engine + +* SMIE setup:: SMIE setup and features. +* Operator Precedence Grammars:: A very simple parsing technique. +* SMIE Grammar:: Defining the grammar of a language. +* SMIE Lexer:: Defining tokens. +* SMIE Tricks:: Working around the parser's limitations. +* SMIE Indentation:: Specifying indentation rules. +* SMIE Indentation Helpers:: Helper functions for indentation rules. +* SMIE Indentation Example:: Sample indentation rules. + Documentation * Documentation Basics:: Where doc strings are defined and stored. @@ -1220,8 +1235,7 @@ Processes * Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. -* Misc Network:: Additional relevant functions for - network connections. +* Misc Network:: Additional relevant functions for net connections. * Serial Ports:: Communicating with serial ports. * Byte Packing:: Using bindat to pack and unpack binary data. @@ -1341,6 +1355,7 @@ Images * GIF Images:: Special features for GIF format. * TIFF Images:: Special features for TIFF format. * PostScript Images:: Special features for PostScript format. +* ImageMagick Images:: Special features available through ImageMagick. * Other Image Types:: Various other formats are supported. * Defining Images:: Convenient ways to define an image for later use. * Showing Images:: Convenient ways to display an image once @@ -1396,13 +1411,6 @@ Operating System Interface * Notifications:: Desktop notifications. * Dynamic Libraries:: On-demand loading of support libraries. -Preparing Lisp code for distribution - -* Packaging Basics:: The basic concepts of Emacs Lisp packages. -* Simple Packages:: How to package a single .el file. -* Multi-file Packages:: How to package multiple files. -* Package Archives:: Maintaining package archives. - Starting Up Emacs * Startup Summary:: Sequence of actions Emacs performs at startup. @@ -1421,6 +1429,13 @@ Terminal Input * Input Modes:: Options for how input is processed. * Recording Input:: Saving histories of recent or all input events. +Preparing Lisp code for distribution + +* Packaging Basics:: The basic concepts of Emacs Lisp packages. +* Simple Packages:: How to package a single .el file. +* Multi-file Packages:: How to package multiple files. +* Package Archives:: Maintaining package archives. + Tips and Conventions * Coding Conventions:: Conventions for clean and robust programs. diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 4c1150d1a51..76059079ca1 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -103,7 +103,7 @@ interpretation. @xref{Command Loop}. @dfn{form} (or an @dfn{expression}). How Emacs evaluates a form depends on its data type. Emacs has three different kinds of form that are evaluated differently: symbols, lists, and ``all other -types.'' This section describes all three kinds, one by one, starting +types''. This section describes all three kinds, one by one, starting with the ``all other types'' which are self-evaluating forms. @menu @@ -304,6 +304,22 @@ function, not a symbol. Executing the function itself evaluates its body; this does involve symbol function indirection when calling @code{erste}. + This form is rarely used and is now deprecated. Instead, you should write it +as: + +@smallexample +@group +(funcall (lambda (arg) (erste arg)) + '(1 2 3)) +@end group +@end smallexample +or just +@smallexample +@group +(let ((arg '(1 2 3))) (erste arg)) +@end group +@end smallexample + The built-in function @code{indirect-function} provides an easy way to perform symbol function indirection explicitly. diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 3597d9f80c4..1af904aff41 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -71,8 +71,8 @@ back into the file. In spite of the distinction between files and buffers, people often refer to a file when they mean a buffer and vice-versa. Indeed, we say, -``I am editing a file,'' rather than, ``I am editing a buffer that I -will soon save as a file of the same name.'' Humans do not usually need +``I am editing a file'', rather than, ``I am editing a buffer that I +will soon save as a file of the same name''. Humans do not usually need to make the distinction explicit. When dealing with a computer program, however, it is good to keep the distinction in mind. @@ -688,7 +688,7 @@ The file lock is really a file, a symbolic link with a special name, stored in the same directory as the file you are editing. When you access files using NFS, there may be a small probability that -you and another user will both lock the same file ``simultaneously.'' +you and another user will both lock the same file ``simultaneously''. If this happens, it is possible for the two users to make changes simultaneously, but Emacs will still warn the user who saves second. Also, the detection of modification of a buffer visiting a file changed @@ -1806,7 +1806,7 @@ return value, but backup version numbers are kept. @end defun @defun file-name-extension filename &optional period -This function returns @var{filename}'s final ``extension,'' if any, +This function returns @var{filename}'s final ``extension'', if any, after applying @code{file-name-sans-versions} to remove any version/backup part. The extension, in a file name, is the part that follows the last @samp{.} in the last name component (minus any @@ -2798,7 +2798,7 @@ unlocking the buffer if it is locked. possibly others to be added in the future. It need not implement all these operations itself---when it has nothing special to do for a certain operation, it can reinvoke the primitive, to handle the -operation ``in the usual way.'' It should always reinvoke the primitive +operation ``in the usual way''. It should always reinvoke the primitive for an operation it does not recognize. Here's one way to do this: @smallexample diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index d824f51e47e..869f03e2273 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -882,7 +882,7 @@ This variable specifies how to blink the cursor. Each element has the form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor type equals @var{on-state} (comparing using @code{equal}), the corresponding @var{off-state} specifies what the cursor looks like -when it blinks ``off.'' Both @var{on-state} and @var{off-state} +when it blinks ``off''. Both @var{on-state} and @var{off-state} should be suitable values for the @code{cursor-type} frame parameter. There are various defaults for how to blink each type of cursor, if @@ -1069,7 +1069,7 @@ characters rather than pixels. These values include the internal borders, and windows' scroll bars and fringes (which belong to individual windows, not to the frame itself). The exact value of the heights depends on the window-system -and toolkit in use. With Gtk+, the height does not include any tool +and toolkit in use. With GTK+, the height does not include any tool bar or menu bar. With the Motif or Lucid toolkits, it includes the tool bar but not the menu bar. In a graphical version with no toolkit, it includes both the tool bar and menu bar. For a text @@ -1532,7 +1532,7 @@ track of such changes. @xref{Misc Events}. Most window systems use a desktop metaphor. Part of this metaphor is the idea that windows are stacked in a notional third dimension perpendicular to the screen surface, and thus ordered from ``highest'' -to ``lowest.'' Where two windows overlap, the one higher up covers +to ``lowest''. Where two windows overlap, the one higher up covers the one underneath. Even a window at the bottom of the stack can be seen if no other window overlaps it. @@ -1540,7 +1540,7 @@ seen if no other window overlaps it. @cindex lowering a frame A window's place in this ordering is not fixed; in fact, users tend to change the order frequently. @dfn{Raising} a window means moving -it ``up,'' to the top of the stack. @dfn{Lowering} a window means +it ``up'', to the top of the stack. @dfn{Lowering} a window means moving it to the bottom of the stack. This motion is in the notional third dimension only, and does not change the position of the window on the screen. @@ -1814,7 +1814,7 @@ the menu keymap as necessary. A dialog box is a variant of a pop-up menu---it looks a little different, it always appears in the center of a frame, and it has just one level and one or more buttons. The main use of dialog boxes is -for asking questions that the user can answer with ``yes,'' ``no,'' +for asking questions that the user can answer with ``yes'', ``no'', and a few other alternatives. With a single button, they can also force the user to acknowledge important information. The functions @code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the @@ -2028,7 +2028,7 @@ colors.) These functions provide a way to determine which color names are valid, and what they look like. In some cases, the value depends on the @dfn{selected frame}, as described below; see @ref{Input Focus}, for the -meaning of the term ``selected frame.'' +meaning of the term ``selected frame''. To read user input of color names with completion, use @code{read-color} (@pxref{High-Level Completion, read-color}). @@ -2425,7 +2425,7 @@ software (as a string). Really this means whoever distributes the X server. When the developers of X labeled software distributors as -``vendors,'' they showed their false assumption that no system could +``vendors'', they showed their false assumption that no system could ever be developed and distributed noncommercially. @end defun diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 73bdefe19fc..b5cf38ed6f2 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -266,13 +266,12 @@ function is the value returned by the last element of the body. @end example @noindent -We can call this function by writing it as the @sc{car} of an -expression, like this: +We can call this function by passing it to @code{funcall}, like this: @example @group -((lambda (a b c) (+ a b c)) - 1 2 3) +(funcall (lambda (a b c) (+ a b c)) + 1 2 3) @end group @end example @@ -287,8 +286,8 @@ this example: @example @group -((lambda (a b c) (+ a b c)) - 1 (* 2 3) (- 5 4)) +(funcall (lambda (a b c) (+ a b c)) + 1 (* 2 3) (- 5 4)) @end group @end example @@ -399,16 +398,16 @@ after a @code{&rest} argument. Here are some examples of argument lists and proper calls: @smallexample -((lambda (n) (1+ n)) ; @r{One required:} - 1) ; @r{requires exactly one argument.} +(funcall (lambda (n) (1+ n)) ; @r{One required:} + 1) ; @r{requires exactly one argument.} @result{} 2 -((lambda (n &optional n1) ; @r{One required and one optional:} - (if n1 (+ n n1) (1+ n))) ; @r{1 or 2 arguments.} - 1 2) +(funcall (lambda (n &optional n1) ; @r{One required and one optional:} + (if n1 (+ n n1) (1+ n))) ; @r{1 or 2 arguments.} + 1 2) @result{} 3 -((lambda (n &rest ns) ; @r{One required and one rest:} - (+ n (apply '+ ns))) ; @r{1 or more arguments.} - 1 2 3 4 5) +(funcall (lambda (n &rest ns) ; @r{One required and one rest:} + (+ n (apply '+ ns))) ; @r{1 or more arguments.} + 1 2 3 4 5) @result{} 15 @end smallexample diff --git a/doc/lispref/hash.texi b/doc/lispref/hash.texi index 0ca4c915a65..1aa6004b3a6 100644 --- a/doc/lispref/hash.texi +++ b/doc/lispref/hash.texi @@ -74,13 +74,13 @@ alternatives: Keys which are numbers are ``the same'' if they are @code{equal}, that is, if they are equal in value and either both are integers or both are floating point numbers; otherwise, two distinct objects are never -``the same.'' +``the same''. @item eq Any two distinct Lisp objects are ``different'' as keys. @item equal -Two Lisp objects are ``the same,'' as keys, if they are equal +Two Lisp objects are ``the same'', as keys, if they are equal according to @code{equal}. @end table @@ -128,7 +128,7 @@ doing that takes some extra time. The default size is 65. @item :rehash-size @var{rehash-size} -When you add an association to a hash table and the table is ``full,'' +When you add an association to a hash table and the table is ``full'', it grows automatically. This value specifies how to make the hash table larger, at that time. @@ -262,7 +262,7 @@ will use @var{test-fn} to compare key values, and @var{hash-fn} to compute a ``hash code'' from a key value. The function @var{test-fn} should accept two arguments, two keys, and -return non-@code{nil} if they are considered ``the same.'' +return non-@code{nil} if they are considered ``the same''. The function @var{hash-fn} should accept one argument, a key, and return an integer that is the ``hash code'' of that key. For good results, the diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 5dfb2b05ff8..762b42113f2 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -599,7 +599,7 @@ subcommands of the prefix key. @defopt help-event-list The value of this variable is a list of event types that serve as -alternative ``help characters.'' These events are handled just like the +alternative ``help characters''. These events are handled just like the event specified by @code{help-char}. @end defopt diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index d3a5b253162..37d2cc55a9e 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi @@ -146,7 +146,7 @@ printer'' refer to those routines in Lisp that convert textual representations of Lisp objects into actual Lisp objects, and vice versa. @xref{Printed Representation}, for more details. You, the person reading this manual, are thought of as ``the programmer'' and are -addressed as ``you.'' ``The user'' is the person who uses Lisp +addressed as ``you''. ``The user'' is the person who uses Lisp programs, including those you write. @cindex typographic conventions @@ -219,7 +219,7 @@ the examples in this manual, this is indicated with @samp{@result{}}: @end example @noindent -You can read this as ``@code{(car '(1 2))} evaluates to 1.'' +You can read this as ``@code{(car '(1 2))} evaluates to 1''. When a form is a macro call, it expands into a new form for Lisp to evaluate. We show the result of the expansion with diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index b12752fdeea..337364cb2ce 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -1032,7 +1032,7 @@ binding of @var{othertype} in @var{othermap} and uses that. This feature permits you to define one key as an alias for another key. For example, an entry whose @sc{car} is the keymap called @code{esc-map} and whose @sc{cdr} is 32 (the code for @key{SPC}) means, ``Use the global -binding of @kbd{Meta-@key{SPC}}, whatever that may be.'' +binding of @kbd{Meta-@key{SPC}}, whatever that may be''. @end itemize @item @var{symbol} @@ -1887,9 +1887,9 @@ maps searched are @var{keymap} and the global keymap. If @var{keymap} is a list of keymaps, only those keymaps are searched. Usually it's best to use @code{overriding-local-map} as the expression -for @var{keymap}. Then @code{where-is-internal} searches precisely the -keymaps that are active. To search only the global map, pass -@code{(keymap)} (an empty keymap) as @var{keymap}. +for @var{keymap}. Then @code{where-is-internal} searches precisely +the keymaps that are active. To search only the global map, pass the +value @code{(keymap)} (an empty keymap) as @var{keymap}. If @var{firstonly} is @code{non-ascii}, then the value is a single vector representing the first key sequence found, rather than a list of @@ -1903,20 +1903,24 @@ If @var{noindirect} is non-@code{nil}, @code{where-is-internal} doesn't follow indirect keymap bindings. This makes it possible to search for an indirect definition itself. -When command remapping is in effect (@pxref{Remapping Commands}), -@code{where-is-internal} figures out when a command will be run due to -remapping and reports keys accordingly. It also returns @code{nil} if -@var{command} won't really be run because it has been remapped to some -other command. However, if @var{no-remap} is non-@code{nil}. -@code{where-is-internal} ignores remappings. +The fifth argument, @var{no-remap}, determines how this function +treats command remappings (@pxref{Remapping Commands}). There are two +cases of interest: -@smallexample -@group -(where-is-internal 'describe-function) - @result{} ([8 102] [f1 102] [help 102] - [menu-bar help-menu describe describe-function]) -@end group -@end smallexample +@table @asis +@item If a command @var{other-command} is remapped to @var{command}: +If @var{no-remap} is @code{nil}, find the bindings for +@var{other-command} and treat them as though they are also bindings +for @var{command}. If @var{no-remap} is non-@code{nil}, include the +vector @code{[remap @var{other-command}]} in the list of possible key +sequences, instead of finding those bindings. + +@item If @var{command} is remapped to @var{other-command}: +If @var{no-remap} is @code{nil}, return the bindings for +@var{other-command} rather than @var{command}. If @var{no-remap} is +non-@code{nil}, return the bindings for @var{command}, ignoring the +fact that it is remapped. +@end table @end defun @deffn Command describe-bindings &optional prefix buffer-or-name @@ -2147,7 +2151,7 @@ This works because @code{toggle-debug-on-error} is defined as a command which toggles the variable @code{debug-on-error}. @dfn{Radio buttons} are a group of menu items, in which at any time one -and only one is ``selected.'' There should be a variable whose value +and only one is ``selected''. There should be a variable whose value says which one is selected at any time. The @var{selected} form for each radio button in the group should check whether the variable has the right value for selecting that button. Clicking on the button should @@ -2424,7 +2428,7 @@ Next we define the menu items: Note the symbols which the bindings are ``made for''; these appear inside square brackets, in the key sequence being defined. In some cases, this symbol is the same as the command name; sometimes it is -different. These symbols are treated as ``function keys,'' but they are +different. These symbols are treated as ``function keys'', but they are not real function keys on the keyboard. They do not affect the functioning of the menu itself, but they are ``echoed'' in the echo area when the user selects from the menu, and they appear in the output of diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi index 2325915d76a..423bc7b6d8a 100644 --- a/doc/lispref/lists.texi +++ b/doc/lispref/lists.texi @@ -34,12 +34,12 @@ object that represents an ordered pair. That is, it has two slots, and each slot @dfn{holds}, or @dfn{refers to}, some Lisp object. One slot is known as the @sc{car}, and the other is known as the @sc{cdr}. (These names are traditional; see @ref{Cons Cell Type}.) @sc{cdr} is -pronounced ``could-er.'' +pronounced ``could-er''. We say that ``the @sc{car} of this cons cell is'' whatever object its @sc{car} slot currently holds, and likewise for the @sc{cdr}. - A list is a series of cons cells ``chained together,'' so that each + A list is a series of cons cells ``chained together'', so that each cell refers to the next one. There is one cons cell for each element of the list. By convention, the @sc{car}s of the cons cells hold the elements of the list, and the @sc{cdr}s are used to chain the list @@ -1632,7 +1632,7 @@ a @sc{cdr} @code{equal} to @var{value}. @code{rassoc} is like @code{assoc} except that it compares the @sc{cdr} of each @var{alist} association instead of the @sc{car}. You can think of -this as ``reverse @code{assoc},'' finding the key for a given value. +this as ``reverse @code{assoc}'', finding the key for a given value. @end defun @defun assq key alist @@ -1673,7 +1673,7 @@ a @sc{cdr} @code{eq} to @var{value}. @code{rassq} is like @code{assq} except that it compares the @sc{cdr} of each @var{alist} association instead of the @sc{car}. You can think of -this as ``reverse @code{assq},'' finding the key for a given value. +this as ``reverse @code{assq}'', finding the key for a given value. For example: diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi index bc4cec3307d..3984e5c03aa 100644 --- a/doc/lispref/macros.texi +++ b/doc/lispref/macros.texi @@ -604,7 +604,7 @@ either. @section Indenting Macros Within a macro definition, you can use the @code{declare} form -(@pxref{Defining Macros}) to specify how to @key{TAB} should indent +(@pxref{Defining Macros}) to specify how @key{TAB} should indent calls to the macro. An indentation specification is written like this: @example diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index c840eb6ded0..8ce7e0d4686 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -57,16 +57,17 @@ including @code{beginning-of-line}, @code{forward-word}, @code{forward-sentence}, and @code{forward-paragraph}, stop at the boundary between the prompt and the actual text. +@c See http://debbugs.gnu.org/11276 The minibuffer's window is normally a single line; it grows -automatically if the contents require more space. You can explicitly -@c FIXME? Works in 23.4, not 24.0.95. (Bug#11276) -resize it temporarily with the window sizing commands; it reverts to -its normal size when the minibuffer is exited. You can resize it -@c FIXME? Doesn't work in any version of Emacs? +automatically if the contents require more space. Whilst it is +active, you can explicitly resize it temporarily with the window +sizing commands; it reverts to its normal size when the minibuffer is +exited. When the minibuffer is not active, you can resize it permanently by using the window sizing commands in the frame's other -window, when the minibuffer is not active. If the frame contains just -a minibuffer, you can change the minibuffer's size by changing the -frame's size. +window, or dragging the mode line with the mouse. (Due to details of +the current implementation, for this to work @code{resize-mini-windows} +must be @code{nil}.) If the frame contains just a minibuffer, you can +change the minibuffer's size by changing the frame's size. Use of the minibuffer reads input events, and that alters the values of variables such as @code{this-command} and @code{last-command} diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index aa089aec36b..00cd43d7b71 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -283,7 +283,7 @@ buffer is put in Fundamental mode (@pxref{Major Mode Conventions}). * Derived Modes:: Defining a new major mode based on another major mode. * Basic Major Modes:: Modes that other modes are often derived from. -* Mode Hooks:: Hooks run at the end of major mode commands. +* Mode Hooks:: Hooks run at the end of major mode functions. * Tabulated List Mode:: Parent mode for buffers containing tabulated data. * Generic Modes:: Defining a simple major mode that supports comment syntax and Font Lock mode. @@ -384,7 +384,7 @@ reserved for users. A major mode can also rebind the keys @kbd{M-n}, @kbd{M-p} and @kbd{M-s}. The bindings for @kbd{M-n} and @kbd{M-p} should normally -be some kind of ``moving forward and backward,'' but this does not +be some kind of ``moving forward and backward'', but this does not necessarily mean cursor motion. It is legitimate for a major mode to rebind a standard key sequence if @@ -938,7 +938,7 @@ such a major mode, please correct it to follow these conventions. When you defined a major mode using @code{define-derived-mode}, it automatically makes sure these conventions are followed. If you -define a major mode ``by hand,'' not using @code{define-derived-mode}, +define a major mode ``by hand'', not using @code{define-derived-mode}, use the following functions to handle these conventions automatically. @defun run-mode-hooks &rest hookvars @@ -1122,8 +1122,8 @@ documentation for the mode command. If you do not supply it, The argument @var{comment-list} is a list in which each element is either a character, a string of one or two characters, or a cons cell. A character or a string is set up in the mode's syntax table as a -``comment starter.'' If the entry is a cons cell, the @sc{car} is set -up as a ``comment starter'' and the @sc{cdr} as a ``comment ender.'' +``comment starter''. If the entry is a cons cell, the @sc{car} is set +up as a ``comment starter'' and the @sc{cdr} as a ``comment ender''. (Use @code{nil} for the latter if you want comments to end at the end of the line.) Note that the syntax table mechanism has limitations about what comment starters and enders are actually possible. @@ -1648,7 +1648,7 @@ See the command \\[hungry-electric-delete]." @end smallexample @noindent -This defines a minor mode named ``Hungry mode,'' a command named +This defines a minor mode named ``Hungry mode'', a command named @code{hungry-mode} to toggle it, a variable named @code{hungry-mode} which indicates whether the mode is enabled, and a variable named @code{hungry-mode-map} which holds the keymap that is active when the @@ -3374,7 +3374,7 @@ Another one is SMIE which takes an approach in the spirit of Lisp sexps and adapts it to non-Lisp languages. @menu -* SMIE:: A simple minded indentation engine +* SMIE:: A simple minded indentation engine. @end menu @node SMIE @@ -3400,14 +3400,14 @@ languages cannot be parsed correctly using SMIE, at least not without resorting to some special tricks (@pxref{SMIE Tricks}). @menu -* SMIE setup:: SMIE setup and features -* Operator Precedence Grammars:: A very simple parsing technique -* SMIE Grammar:: Defining the grammar of a language -* SMIE Lexer:: Defining tokens -* SMIE Tricks:: Working around the parser's limitations -* SMIE Indentation:: Specifying indentation rules -* SMIE Indentation Helpers:: Helper functions for indentation rules -* SMIE Indentation Example:: Sample indentation rules +* SMIE setup:: SMIE setup and features. +* Operator Precedence Grammars:: A very simple parsing technique. +* SMIE Grammar:: Defining the grammar of a language. +* SMIE Lexer:: Defining tokens. +* SMIE Tricks:: Working around the parser's limitations. +* SMIE Indentation:: Specifying indentation rules. +* SMIE Indentation Helpers:: Helper functions for indentation rules. +* SMIE Indentation Example:: Sample indentation rules. @end menu @node SMIE setup diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi index 66f491b7780..02d306b3f75 100644 --- a/doc/lispref/numbers.texi +++ b/doc/lispref/numbers.texi @@ -777,7 +777,7 @@ and returns that value as a floating point number. sequence of @dfn{bits} (digits which are either zero or one). A bitwise operation acts on the individual bits of such a sequence. For example, @dfn{shifting} moves the whole sequence left or right one or more places, -reproducing the same pattern ``moved over.'' +reproducing the same pattern ``moved over''. The bitwise operations in Emacs Lisp apply only to integers. diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 58ceeb02b76..b49d2bc05fe 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -675,7 +675,7 @@ not distinguish between a cons cell slot ``holding'' a value versus @cindex atoms Because cons cells are so central to Lisp, we also have a word for -``an object which is not a cons cell.'' These objects are called +``an object which is not a cons cell''. These objects are called @dfn{atoms}. @cindex parenthesis @@ -1289,7 +1289,7 @@ without qualification, we mean a Lisp macro, not a keyboard macro. A @dfn{primitive function} is a function callable from Lisp but written in the C programming language. Primitive functions are also called @dfn{subrs} or @dfn{built-in functions}. (The word ``subr'' is -derived from ``subroutine.'') Most primitive functions evaluate all +derived from ``subroutine''.) Most primitive functions evaluate all their arguments when they are called. A primitive function that does not evaluate all its arguments is called a @dfn{special form} (@pxref{Special Forms}).@refill diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi index 7028b6e4e3f..66df1f34eda 100644 --- a/doc/lispref/streams.texi +++ b/doc/lispref/streams.texi @@ -114,7 +114,7 @@ When it is called with one argument (always a character), @var{function} should save the argument and arrange to return it on the next call. This is called @dfn{unreading} the character; it happens when the Lisp reader reads one character too many and wants to ``put it back where it -came from.'' In this case, it makes no difference what value +came from''. In this case, it makes no difference what value @var{function} returns. @end itemize @@ -618,7 +618,7 @@ spacing between calls. @defun terpri &optional stream @cindex newline in print This function outputs a newline to @var{stream}. The name stands -for ``terminate print.'' +for ``terminate print''. @end defun @defun write-char character &optional stream diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index ac2cea02040..1e749b8c3bb 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi @@ -140,7 +140,7 @@ act correctly if it is evaluated with lexical scoping enabled @code{defun} defines a symbol as a function, creating a lambda expression and storing it in the function cell of the symbol. This lambda expression thus becomes the function definition of the symbol. -(The term ``function definition,'' meaning the contents of the function +(The term ``function definition'', meaning the contents of the function cell, is derived from the idea that @code{defun} gives the symbol its definition as a function.) @code{defsubst} and @code{defalias} are two other ways of defining a function. @xref{Functions}. diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi index 830ceeedefd..4a860657444 100644 --- a/doc/lispref/syntax.texi +++ b/doc/lispref/syntax.texi @@ -56,7 +56,7 @@ Modes}, for an example of how to set up a syntax table. A syntax table can inherit the data for some characters from the standard syntax table, while specifying other characters itself. The ``inherit'' syntax class means ``inherit this character's syntax from -the standard syntax table.'' Just changing the standard syntax for a +the standard syntax table''. Just changing the standard syntax for a character affects all syntax tables that inherit from it. @defun syntax-table-p object @@ -617,7 +617,7 @@ higher-level functions for moving over balanced expressions. A character's syntax controls how it changes the state of the parser, rather than describing the state itself. For example, a string delimiter character toggles the parser state between -``in-string'' and ``in-code,'' but the syntax of characters does not +``in-string'' and ``in-code'', but the syntax of characters does not directly say whether they are inside a string. For example (note that 15 is the syntax code for generic string delimiters), diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index a9c51fead1b..d794ddc385b 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -555,7 +555,7 @@ error; if some of the text in it is read-only, it signals a asking for any confirmation. It returns @code{nil}. Normally, deleting a large amount of text from a buffer inhibits further -auto-saving of that buffer ``because it has shrunk.'' However, +auto-saving of that buffer ``because it has shrunk''. However, @code{erase-buffer} does not do this, the idea being that the future text is not really related to the former text, and its size should not be compared with that of the former text. @@ -806,7 +806,7 @@ that treat it as a ring. Some people think this use of the word ``kill'' is unfortunate, since it refers to operations that specifically @emph{do not} destroy the -entities ``killed.'' This is in sharp contrast to ordinary life, in +entities ``killed''. This is in sharp contrast to ordinary life, in which death is permanent and ``killed'' entities do not come back to life. Therefore, other metaphors have been proposed. For example, the term ``cut ring'' makes sense to people who, in pre-computer days, used @@ -845,7 +845,7 @@ the entry made by the first one. For yanking, one entry in the kill ring is designated the ``front'' of the ring. Some yank commands ``rotate'' the ring by designating a -different element as the ``front.'' But this virtual rotation doesn't +different element as the ``front''. But this virtual rotation doesn't change the list itself---the most recent entry always comes first in the list. @@ -1093,8 +1093,8 @@ programs, when you are using a window system. Its value should be @code{nil} or a function of no arguments. If the value is a function, @code{current-kill} calls it to get the -``most recent kill.'' If the function returns a non-@code{nil} value, -then that value is used as the ``most recent kill.'' If it returns +``most recent kill''. If the function returns a non-@code{nil} value, +then that value is used as the ``most recent kill''. If it returns @code{nil}, then the front of the kill ring is used. To facilitate support for window systems that support multiple @@ -3504,7 +3504,7 @@ once for the same part of the buffer, you can use the variable If this variable's value is non-@code{nil}, it is a symbol which is used as a text property name. A non-@code{nil} value for that text property means, ``the other text properties for this character have already been -computed.'' +computed''. If all the characters in the range specified for @code{buffer-substring} have a non-@code{nil} value for this property, @code{buffer-substring} @@ -3808,7 +3808,7 @@ after @var{old-pos}.) If @var{escape-from-edge} is non-@code{nil}, @var{new-pos} can be anywhere in the two adjacent fields. Additionally, if two fields are separated by another field with the special value @code{boundary}, then any point within this special -field is also considered to be ``on the boundary.'' +field is also considered to be ``on the boundary''. Commands like @kbd{C-a} with no argument, that normally move backward to a specific kind of location and stay there once there, probably diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 4ba7dd9dfe9..0e58373119f 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -640,7 +640,7 @@ have the form (KEY . VALUE). Here, KEY is ... @item Never change the case of a Lisp symbol when you mention it in a doc -string. If the symbol's name is @code{foo}, write ``foo,'' not +string. If the symbol's name is @code{foo}, write ``foo'', not ``Foo'' (which is a different symbol). This might appear to contradict the policy of writing function @@ -772,9 +772,9 @@ is indicative and has a proper subject. @item The documentation string for a function that is a yes-or-no predicate -should start with words such as ``Return t if,'' to indicate -explicitly what constitutes ``truth.'' The word ``return'' avoids -starting the sentence with lower-case ``t,'' which could be somewhat +should start with words such as ``Return t if'', to indicate +explicitly what constitutes ``truth''. The word ``return'' avoids +starting the sentence with lower-case ``t'', which could be somewhat distracting. @item @@ -797,8 +797,8 @@ returned.'' @item Avoid using the word ``cause'' (or its equivalents) unnecessarily. -Instead of, ``Cause Emacs to display text in boldface,'' write just -``Display text in boldface.'' +Instead of, ``Cause Emacs to display text in boldface'', write just +``Display text in boldface''. @item Avoid using ``iff'' (a mathematics term meaning ``if and only if''), @@ -821,7 +821,7 @@ to set, use @code{defcustom}. @xref{Defining Variables}. @item The documentation string for a variable that is a yes-or-no flag should -start with words such as ``Non-nil means,'' to make it clear that +start with words such as ``Non-nil means'', to make it clear that all non-@code{nil} values are equivalent and indicate explicitly what @code{nil} and non-@code{nil} mean. @end itemize diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index e0e629ec9d3..4e622231645 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -670,7 +670,7 @@ symbol is changed. @code{setq} does not evaluate @var{symbol}; it sets the symbol that you write. We say that this argument is @dfn{automatically quoted}. The -@samp{q} in @code{setq} stands for ``quoted.'' +@samp{q} in @code{setq} stands for ``quoted''. The value of the @code{setq} form is the value of the last @var{form}. diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi index 25ea8577467..2687cd57d5a 100644 --- a/doc/lispref/vol1.texi +++ b/doc/lispref/vol1.texi @@ -24,10 +24,9 @@ @end tex @c Version of the manual and of Emacs. -@c Please remember to update the edition number in README as well. -@set VERSION 3.0 +@set VERSION 3.1 @include emacsver.texi -@set DATE July 2009 +@set DATE May 2012 @dircategory Emacs @direntry @@ -90,8 +89,8 @@ developing GNU and promoting software freedom.'' @subtitle For Emacs Version @value{EMACSVER} @subtitle Revision @value{VERSION}, @value{DATE} -@author by Bil Lewis, Dan LaLiberte, Richard Stallman -@author and the GNU Manual Group +@author by Bil Lewis, Dan LaLiberte, Richard Stallman, +@author the GNU Manual Group, et al. @page @vskip 0pt plus 1filll @insertcopying @@ -480,7 +479,7 @@ Functions * Closures:: Functions that enclose a lexical environment. * Obsolete Functions:: Declaring functions obsolete. * Inline Functions:: Defining functions that the compiler - will open code. + will expand inline. * Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives @@ -513,7 +512,7 @@ Common Problems Using Macros * Eval During Expansion:: Don't evaluate them; put them in the expansion. * Repeated Expansion:: Avoid depending on how many times expansion is done. -Writing Customization Definitions +Customization Settings * Common Keywords:: Common keyword arguments for all kinds of customization declarations. @@ -776,6 +775,7 @@ Defining Menus various features. * Menu Separators:: Drawing a horizontal line through a menu. * Alias Menu Items:: Using command aliases in menu items. +* Toolkit Differences:: Not all toolkits provide the same features. Major and Minor Modes @@ -802,7 +802,7 @@ Major Modes * Derived Modes:: Defining a new major mode based on another major mode. * Basic Major Modes:: Modes that other modes are often derived from. -* Mode Hooks:: Hooks run at the end of major mode commands. +* Mode Hooks:: Hooks run at the end of major mode functions. * Tabulated List Mode:: Parent mode for buffers containing tabulated data. * Generic Modes:: Defining a simple major mode that supports comment syntax and Font Lock mode. @@ -846,6 +846,21 @@ Multiline Font Lock Constructs * Region to Refontify:: Controlling which region gets refontified after a buffer change. +Automatic Indentation of code + +* SMIE:: A simple minded indentation engine. + +Simple Minded Indentation Engine + +* SMIE setup:: SMIE setup and features. +* Operator Precedence Grammars:: A very simple parsing technique. +* SMIE Grammar:: Defining the grammar of a language. +* SMIE Lexer:: Defining tokens. +* SMIE Tricks:: Working around the parser's limitations. +* SMIE Indentation:: Specifying indentation rules. +* SMIE Indentation Helpers:: Helper functions for indentation rules. +* SMIE Indentation Example:: Sample indentation rules. + Documentation * Documentation Basics:: Where doc strings are defined and stored. @@ -1242,8 +1257,7 @@ Processes * Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. -* Misc Network:: Additional relevant functions for - network connections. +* Misc Network:: Additional relevant functions for net connections. * Serial Ports:: Communicating with serial ports. * Byte Packing:: Using bindat to pack and unpack binary data. @@ -1363,6 +1377,7 @@ Images * GIF Images:: Special features for GIF format. * TIFF Images:: Special features for TIFF format. * PostScript Images:: Special features for PostScript format. +* ImageMagick Images:: Special features available through ImageMagick. * Other Image Types:: Various other formats are supported. * Defining Images:: Convenient ways to define an image for later use. * Showing Images:: Convenient ways to display an image once @@ -1418,12 +1433,6 @@ Operating System Interface * Notifications:: Desktop notifications. * Dynamic Libraries:: On-demand loading of support libraries. -Preparing Lisp code for distribution - -* Packaging Basics:: The basic concepts of Emacs Lisp packages. -* Simple Packages:: How to package a single .el file. -* Multi-file Packages:: How to package multiple files. - Starting Up Emacs * Startup Summary:: Sequence of actions Emacs performs at startup. @@ -1442,6 +1451,13 @@ Terminal Input * Input Modes:: Options for how input is processed. * Recording Input:: Saving histories of recent or all input events. +Preparing Lisp code for distribution + +* Packaging Basics:: The basic concepts of Emacs Lisp packages. +* Simple Packages:: How to package a single .el file. +* Multi-file Packages:: How to package multiple files. +* Package Archives:: Maintaining package archives. + Tips and Conventions * Coding Conventions:: Conventions for clean and robust programs. diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi index 2fd2a8d8224..c74e7c438b4 100644 --- a/doc/lispref/vol2.texi +++ b/doc/lispref/vol2.texi @@ -24,10 +24,9 @@ @end tex @c Version of the manual and of Emacs. -@c Please remember to update the edition number in README as well. -@set VERSION 3.0 +@set VERSION 3.1 @include emacsver.texi -@set DATE July 2009 +@set DATE May 2012 @dircategory Emacs @direntry @@ -90,8 +89,8 @@ developing GNU and promoting software freedom.'' @subtitle For Emacs Version @value{EMACSVER} @subtitle Revision @value{VERSION}, @value{DATE} -@author by Bil Lewis, Dan LaLiberte, Richard Stallman -@author and the GNU Manual Group +@author by Bil Lewis, Dan LaLiberte, Richard Stallman, +@author the GNU Manual Group, et al. @page @vskip 0pt plus 1filll @insertcopying @@ -479,7 +478,7 @@ Functions * Closures:: Functions that enclose a lexical environment. * Obsolete Functions:: Declaring functions obsolete. * Inline Functions:: Defining functions that the compiler - will open code. + will expand inline. * Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives @@ -512,7 +511,7 @@ Common Problems Using Macros * Eval During Expansion:: Don't evaluate them; put them in the expansion. * Repeated Expansion:: Avoid depending on how many times expansion is done. -Writing Customization Definitions +Customization Settings * Common Keywords:: Common keyword arguments for all kinds of customization declarations. @@ -775,6 +774,7 @@ Defining Menus various features. * Menu Separators:: Drawing a horizontal line through a menu. * Alias Menu Items:: Using command aliases in menu items. +* Toolkit Differences:: Not all toolkits provide the same features. Major and Minor Modes @@ -801,7 +801,7 @@ Major Modes * Derived Modes:: Defining a new major mode based on another major mode. * Basic Major Modes:: Modes that other modes are often derived from. -* Mode Hooks:: Hooks run at the end of major mode commands. +* Mode Hooks:: Hooks run at the end of major mode functions. * Tabulated List Mode:: Parent mode for buffers containing tabulated data. * Generic Modes:: Defining a simple major mode that supports comment syntax and Font Lock mode. @@ -845,6 +845,21 @@ Multiline Font Lock Constructs * Region to Refontify:: Controlling which region gets refontified after a buffer change. +Automatic Indentation of code + +* SMIE:: A simple minded indentation engine. + +Simple Minded Indentation Engine + +* SMIE setup:: SMIE setup and features. +* Operator Precedence Grammars:: A very simple parsing technique. +* SMIE Grammar:: Defining the grammar of a language. +* SMIE Lexer:: Defining tokens. +* SMIE Tricks:: Working around the parser's limitations. +* SMIE Indentation:: Specifying indentation rules. +* SMIE Indentation Helpers:: Helper functions for indentation rules. +* SMIE Indentation Example:: Sample indentation rules. + Documentation * Documentation Basics:: Where doc strings are defined and stored. @@ -1362,6 +1377,7 @@ Images * GIF Images:: Special features for GIF format. * TIFF Images:: Special features for TIFF format. * PostScript Images:: Special features for PostScript format. +* ImageMagick Images:: Special features available through ImageMagick. * Other Image Types:: Various other formats are supported. * Defining Images:: Convenient ways to define an image for later use. * Showing Images:: Convenient ways to display an image once @@ -1417,12 +1433,6 @@ Operating System Interface * Notifications:: Desktop notifications. * Dynamic Libraries:: On-demand loading of support libraries. -Preparing Lisp code for distribution - -* Packaging Basics:: The basic concepts of Emacs Lisp packages. -* Simple Packages:: How to package a single .el file. -* Multi-file Packages:: How to package multiple files. - Starting Up Emacs * Startup Summary:: Sequence of actions Emacs performs at startup. @@ -1441,6 +1451,12 @@ Terminal Input * Input Modes:: Options for how input is processed. * Recording Input:: Saving histories of recent or all input events. +Preparing Lisp code for distribution + +* Packaging Basics:: The basic concepts of Emacs Lisp packages. +* Simple Packages:: How to package a single .el file. +* Multi-file Packages:: How to package multiple files. + Tips and Conventions * Coding Conventions:: Conventions for clean and robust programs. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index a9a25d8e867..094729033b1 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -49,7 +49,7 @@ is displayed in windows. @section Basic Concepts of Emacs Windows @cindex window -A @dfn{window} is a area of the screen which is used to display a +A @dfn{window} is a area of the screen that is used to display a buffer (@pxref{Buffers}). In Emacs Lisp, windows are represented by a special Lisp object type. @@ -297,8 +297,8 @@ child of its parent. The functions @code{window-next-sibling} and @code{window-prev-sibling} should not be confused with the functions -@code{next-window} and @code{previous-window} which respectively -return the next and previous window in the cyclic ordering of windows +@code{next-window} and @code{previous-window}, which return the next +and previous window, respectively, in the cyclic ordering of windows (@pxref{Cyclic Window Ordering}). You can use the following functions to find the first live window on @@ -376,7 +376,7 @@ line (@pxref{Mode Line Format}). Emacs provides several functions for finding the height and width of a window. Except where noted, Emacs reports window heights and widths -as integer numbers of lines and columns respectively. On a graphical +as integer numbers of lines and columns, respectively. On a graphical display, each ``line'' and ``column'' actually corresponds to the height and width of a ``default'' character specified by the frame's default font. Thus, if a window is displaying text with a different @@ -619,7 +619,7 @@ window. The optional argument @var{max-height}, if non-@code{nil}, specifies the maximum total height that this function can give @var{window}. -The optional argument @var{min-height}, if no-@code{nil}, specifies +The optional argument @var{min-height}, if non-@code{nil}, specifies the minimum total height that it can give, which overrides the variable @code{window-min-height}. @@ -723,7 +723,7 @@ properties of the window selected within @var{window}'s frame. The behavior of this function may be altered by the window parameters of @var{window}, so long as the variable -@code{ignore-window-parameters} is non-@code{nil}. If the value of +@code{ignore-window-parameters} is @code{nil}. If the value of the @code{split-window} window parameter is @code{t}, this function ignores all other window parameters. Otherwise, if the value of the @code{split-window} window parameter is a function, that function is @@ -1062,7 +1062,7 @@ combination. @xref{Splitting Windows}. The behavior of this function may be altered by the window parameters of @var{window}, so long as the variable -@code{ignore-window-parameters} is non-@code{nil}. If the value of +@code{ignore-window-parameters} is @code{nil}. If the value of the @code{delete-window} window parameter is @code{t}, this function ignores all other window parameters. Otherwise, if the value of the @code{delete-window} window parameter is a function, that function is @@ -1079,7 +1079,7 @@ defaults to the selected window. The return value is @code{nil}. The behavior of this function may be altered by the window parameters of @var{window}, so long as the variable -@code{ignore-window-parameters} is non-@code{nil}. If the value of +@code{ignore-window-parameters} is @code{nil}. If the value of the @code{delete-other-windows} window parameter is @code{t}, this function ignores all other window parameters. Otherwise, if the value of the @code{delete-other-windows} window parameter is a function, @@ -1119,8 +1119,8 @@ means operate on that frame. Note that this argument does not have the same meaning as in other functions which scan all live windows (@pxref{Cyclic Window -Ordering}). Specifically, the values @code{t} and @code{nil} have the -opposite of their meanings in those other functions. +Ordering}). Specifically, the meanings of @code{t} and @code{nil} here +are the opposite of what they are in those other functions. @end deffn @node Selecting Windows @@ -1171,11 +1171,11 @@ the buffer list. This macro selects @var{window}, executes @var{forms} in sequence, then restores the previously selected window and current buffer. The ordering of recently selected windows and the buffer list remain unchanged unless -you deliberately change them within @var{forms}, for example, by calling +you deliberately change them within @var{forms}; for example, by calling @code{select-window} with argument @var{norecord} @code{nil}. -The order of recently selected windows and the buffer list are not -changed by this macro. +This macro does not change the order of recently selected windows or +the buffer list. @end defmac @defun frame-selected-window &optional frame @@ -1185,7 +1185,7 @@ within that frame. @var{frame} should be a live frame; if omitted or @end defun @defun set-frame-selected-window frame window &optional norecord -This function makes @code{window} the window selected within the frame +This function makes @var{window} the window selected within the frame @var{frame}. @var{frame} should be a live frame; if omitted or @code{nil}, it defaults to the selected frame. @var{window} should be a live window; if omitted or @code{nil}, it defaults to the selected @@ -1223,7 +1223,7 @@ the cyclic ordering of windows. @var{window} should be a live window; if omitted or @code{nil}, it defaults to the selected window. The optional argument @var{minibuf} specifies whether minibuffer windows -shall be included in the cyclic ordering. Normally, when @var{minibuf} +should be included in the cyclic ordering. Normally, when @var{minibuf} is @code{nil}, a minibuffer window is included only if it is currently ``active''; this matches the behavior of @kbd{C-x o}. (Note that a minibuffer window is active as long as its minibuffer is in use; see @@ -1805,14 +1805,14 @@ desired buffer) or @code{nil} (which means the splitting failed). @end defopt @defun split-window-sensibly window -This function tries to split @code{window}, and return the newly -created window. If @code{window} cannot be split, it returns +This function tries to split @var{window}, and return the newly +created window. If @var{window} cannot be split, it returns @code{nil}. This function obeys the usual rules that determine when a window may be split (@pxref{Splitting Windows}). It first tries to split by placing the new window below, subject to the restriction imposed by -@code{split-height-threshold} (see below) in addition to any other +@code{split-height-threshold} (see below), in addition to any other restrictions. If that fails, it tries to split by placing the new window to the right, subject to @code{split-width-threshold} (see below). If that fails, and the window is the only window on its @@ -1944,7 +1944,7 @@ to display @var{buffer}. If @var{args} is an alist, it specifies frame parameters for the new frame. If @var{args} is a list whose @sc{car} is a symbol, then -@code{(car @var{args})} is called as a function to actually create and +@code{(car @var{args})} is a function to actually create and set up the frame; it is called with @var{buffer} as first argument, and @code{(cdr @var{args})} as additional arguments. @@ -1962,7 +1962,7 @@ This variable holds frame parameters for @defopt same-window-buffer-names A list of buffer names for buffers that should be displayed in the -selected window. If the buffer's name is in this list, +selected window. If a buffer's name is in this list, @code{display-buffer} handles the buffer by switching to it in the selected window. @end defopt @@ -1997,8 +1997,8 @@ above. @section Window History @cindex window history -Each window remembers the buffers it has displayed earlier and the order -in which these buffers have been removed from it. This history is used, +Each window remembers the buffers it has previously displayed, and the order +in which these buffers were removed from it. This history is used, for example, by @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}). This list is automatically maintained by Emacs, but you can use the following functions to explicitly inspect or alter it: @@ -2061,41 +2061,41 @@ This command displays the previous buffer in @var{window}. The argument @var{window} should be a live window or @code{nil} (meaning the selected window). If the optional argument @var{bury-or-kill} is non-@code{nil}, this means that the buffer currently shown in -@var{window} is about to be buried or killed and consequently shall +@var{window} is about to be buried or killed and consequently should not be switched to in future invocations of this command. The previous buffer is usually the buffer shown before the buffer currently shown in @var{window}. However, a buffer that has been buried -or killed or has been already shown by a recent invocation of -@code{switch-to-prev-buffer} does not qualify as previous buffer. +or killed, or has been already shown by a recent invocation of +@code{switch-to-prev-buffer}, does not qualify as previous buffer. If repeated invocations of this command have already shown all buffers previously shown in @var{window}, further invocations will show buffers from the buffer list of the frame @var{window} appears on (@pxref{The -Buffer List}) trying to skip buffers that are already shown in another +Buffer List}), trying to skip buffers that are already shown in another window on that frame. @end deffn @deffn Command switch-to-next-buffer &optional window -This command switches to the next buffer in @var{window} thus undoing +This command switches to the next buffer in @var{window}, thus undoing the effect of the last @code{switch-to-prev-buffer} command in @var{window}. The argument @var{window} must be a live window and defaults to the selected one. -If there is no recent invocation of a @code{switch-to-prev-buffer} that +If there is no recent invocation of @code{switch-to-prev-buffer} that can be undone, this function tries to show a buffer from the buffer list of the frame @var{window} appears on (@pxref{The Buffer List}). @end deffn By default @code{switch-to-prev-buffer} and @code{switch-to-next-buffer} can switch to a buffer that is already shown in another window on the -same frame. The following option can be used to override that behavior. +same frame. The following option can be used to override this behavior. @defopt switch-to-visible-buffer If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and @code{switch-to-next-buffer} may switch to a buffer that is already -visible on the same frame, provided the buffer was shown in the argument -window before. If it's @code{nil}, @code{switch-to-prev-buffer} and +visible on the same frame, provided the buffer was shown in the relevant +window before. If it is @code{nil}, @code{switch-to-prev-buffer} and @code{switch-to-next-buffer} always try to avoid switching to a buffer that is already visible in another window on the same frame. @end defopt @@ -2137,7 +2137,7 @@ another buffer in it and iconifies the frame. This function returns non-@code{nil} if @var{window} is dedicated to its buffer and @code{nil} otherwise. More precisely, the return value is the value assigned by the last call of @code{set-window-dedicated-p} for -@var{window} or @code{nil} if that function was never called with +@var{window}, or @code{nil} if that function was never called with @var{window} as its argument. The default for @var{window} is the selected window. @end defun @@ -2158,20 +2158,20 @@ non-@code{nil} value. @node Quitting Windows @section Quitting Windows -When you want to get rid of a window used for displaying a buffer you +When you want to get rid of a window used for displaying a buffer, you can call @code{delete-window} or @code{delete-windows-on} (@pxref{Deleting Windows}) to remove that window from its frame. If the buffer is shown on a separate frame, you might want to call @code{delete-frame} (@pxref{Deleting Frames}) instead. If, on the other hand, a window has been reused for displaying the buffer, you might -prefer showing the buffer previously shown in that window by calling the +prefer showing the buffer previously shown in that window, by calling the function @code{switch-to-prev-buffer} (@pxref{Window History}). Finally, you might want to either bury (@pxref{The Buffer List}) or kill (@pxref{Killing Buffers}) the window's buffer. The following function uses information on how the window for -displaying the buffer was obtained in the first place thus attempting to -automatize the above decisions for you. +displaying the buffer was obtained in the first place, thus attempting to +automate the above decisions for you. @deffn Command quit-window &optional kill window This command quits @var{window} and buries its buffer. The argument @@ -2199,39 +2199,39 @@ restore the original height of @var{window}. The three cases described so far require that the buffer shown in @var{window} is still the buffer displayed by the last buffer display function for this window. If another buffer has been shown in the -meantime or the buffer previously shown no longer exists, this command +meantime, or the buffer previously shown no longer exists, this command calls @code{switch-to-prev-buffer} (@pxref{Window History}) to show some other buffer instead. @end deffn The function @code{quit-window} bases its decisions on information stored in @var{window}'s @code{quit-restore} window parameter -(@pxref{Window Parameters}) and resets that parameter to @code{nil} +(@pxref{Window Parameters}), and resets that parameter to @code{nil} after it's done. The following option specifies how to deal with a frame containing just -one window that shall be either quit or whose buffer shall be buried. +one window that should be either quit, or whose buffer should be buried. @defopt frame-auto-hide-function The function specified by this option is called to automatically hide -frames. This function is called with one argument - a frame. +frames. This function is called with one argument---a frame. The function specified here is called by @code{bury-buffer} (@pxref{The Buffer List}) when the selected window is dedicated and shows the buffer -that shall be buried. It is also called by @code{quit-window} (see -above) when the frame of the window that shall be quit has been +that should be buried. It is also called by @code{quit-window} (see +above) when the frame of the window that should be quit has been specially created for displaying that window's buffer and the buffer -shall be buried. +should be buried. The default is to call @code{iconify-frame} (@pxref{Visibility of -Frames}). Alternatively, you may either specify @code{delete-frame} +Frames}). Alternatively, you may specify either @code{delete-frame} (@pxref{Deleting Frames}) to remove the frame from its display, @code{ignore} to leave the frame unchanged, or any other function that can take a frame as its sole argument. Note that the function specified by this option is called if and only if -there's at least one other frame on the terminal of the frame it's -supposed to handle and that frame contains only one live window. +there is at least one other frame on the terminal of the frame it's +supposed to handle, and that frame contains only one live window. @end defopt @@ -2321,14 +2321,7 @@ command to a key. @cindex window top line This function returns the display-start position of window @var{window}. If @var{window} is @code{nil}, the selected window is -used. For example, - -@example -@group -(window-start) - @result{} 7058 -@end group -@end example +used. When you create a window, or display a different buffer in it, the display-start position is set to a display-start position recently used @@ -2340,9 +2333,6 @@ it explicitly since the previous redisplay)---to make sure point appears on the screen. Nothing except redisplay automatically changes the window-start position; if you move point, do not expect the window-start position to change in response until after the next redisplay. - -For a realistic example of using @code{window-start}, see the -description of @code{count-lines}. @xref{Definition of count-lines}. @end defun @cindex window end position @@ -2516,12 +2506,16 @@ commands move the paper up and down. Thus, if you are looking at the middle of a buffer and repeatedly call @code{scroll-down}, you will eventually see the beginning of the buffer. - Some people have urged that the opposite convention be used: they + Unfortunately, this sometimes causes confusion, because some people +tend to think in terms of the opposite convention: they imagine the window moving over text that remains in place, so that ``down'' commands take you to the end of the buffer. This convention is consistent with fact that such a command is bound to a key named -@key{PageDown} on modern keyboards. We have not switched to this -convention as that is likely to break existing Emacs Lisp code. +@key{PageDown} on modern keyboards. +@ignore +We have not switched to this convention as that is likely to break +existing Emacs Lisp code. +@end ignore Textual scrolling functions (aside from @code{scroll-other-window}) have unpredictable results if the current buffer is not the one @@ -2551,13 +2545,8 @@ signals an error. Otherwise, it returns @code{nil}. This function scrolls backward by @var{count} lines in the selected window. -If @var{count} is negative, it scrolls forward instead. If -@var{count} is omitted or @code{nil}, the distance scrolled is -@code{next-screen-context-lines} lines less than the height of the -window's text area. - -If the selected window cannot be scrolled any further, this function -signals an error. Otherwise, it returns @code{nil}. +If @var{count} is negative, it scrolls forward instead. In other +respects, it behaves the same way as @code{scroll-up} does. @end deffn @deffn Command scroll-up-command &optional count @@ -2587,8 +2576,8 @@ already displayed, @code{scroll-other-window} displays it in some window. When the selected window is the minibuffer, the next window is normally -the one at the top left corner. You can specify a different window to -scroll, when the minibuffer is selected, by setting the variable +the leftmost one immediately above it. You can specify a different +window to scroll, when the minibuffer is selected, by setting the variable @code{minibuffer-scroll-window}. This variable has no effect when any other window is selected. When it is non-@code{nil} and the minibuffer is selected, it takes precedence over @@ -2600,7 +2589,7 @@ window is the one at the bottom right corner. In this case, @code{scroll-other-window} attempts to scroll the minibuffer. If the minibuffer contains just one line, it has nowhere to scroll to, so the line reappears after the echo area momentarily displays the message -@samp{Beginning of buffer}. +@samp{End of buffer}. @end deffn @defvar other-window-scroll-buffer @@ -2699,12 +2688,12 @@ If @var{count} is a non-negative number, that puts the line containing point @var{count} lines down from the top of the window. If @var{count} is a negative number, then it counts upward from the bottom of the window, so that @minus{}1 stands for the last usable -line in the window. If @var{count} is a non-@code{nil} list, then it -stands for the line in the middle of the window. +line in the window. -If @var{count} is @code{nil}, @code{recenter} puts the line containing -point in the middle of the window, then clears and redisplays the entire -selected frame. +If @var{count} is @code{nil} (or a non-@code{nil} list), +@code{recenter} puts the line containing point in the middle of the +window. If @var{count} is @code{nil}, this function may redraw the +frame, according to the value of @code{recenter-redisplay}. When @code{recenter} is called interactively, @var{count} is the raw prefix argument. Thus, typing @kbd{C-u} as the prefix sets the @@ -2713,22 +2702,32 @@ prefix argument. Thus, typing @kbd{C-u} as the prefix sets the top. With an argument of zero, @code{recenter} positions the current line at -the top of the window. This action is so handy that some people make a -separate key binding to do this. For example, +the top of the window. The command @code{recenter-top-bottom} offers +a more convenient way to achieve this. +@end deffn -@example -@group -(defun line-to-top-of-window () - "Scroll current line to top of window. -Replaces three keystroke sequence C-u 0 C-l." - (interactive) - (recenter 0)) +@defopt recenter-redisplay +If this variable is non-@code{nil}, calling @code{recenter} with a +@code{nil} argument redraws the frame. The default value is +@code{tty}, which means only redraw the frame if it is a tty frame. +@end defopt -(global-set-key [kp-multiply] 'line-to-top-of-window) -@end group -@end example +@deffn Command recenter-top-bottom &optional count +This command, which is the default binding for @kbd{C-l}, acts like +@code{recenter}, except if called with no argument. In that case, +successive calls place point according to the cycling order defined +by the variable @code{recenter-positions}. @end deffn +@defopt recenter-positions +This variable controls how @code{recenter-top-bottom} behaves when +called with no argument. The default value is @code{(middle top +bottom)}, which means that successive calls of +@code{recenter-top-bottom} with no argument cycle between placing +point at the middle, top, and bottom of the window. +@end defopt + + @node Vertical Scrolling @section Vertical Fractional Scrolling @cindex vertical fractional scrolling @@ -2817,8 +2816,8 @@ times the normal character width. How many characters actually disappear off to the left depends on their width, and could vary from line to line. - Because we read from side to side in the ``inner loop,'' and from top -to bottom in the ``outer loop,'' the effect of horizontal scrolling is + Because we read from side to side in the ``inner loop'', and from top +to bottom in the ``outer loop'', the effect of horizontal scrolling is not like that of textual or vertical scrolling. Textual scrolling involves selection of a portion of text to display, and vertical scrolling moves the window contents contiguously; but horizontal @@ -3014,7 +3013,7 @@ frame. @defun coordinates-in-window-p coordinates window This function checks whether a window @var{window} occupies the -frame-relative coordinates @var{coordinates}, and if so which part of +frame-relative coordinates @var{coordinates}, and if so, which part of the window that is. @var{window} should be a live window. @var{coordinates} should be a cons cell of the form @code{(@var{x} . @var{y})}, where @var{x} and @var{y} are frame-relative coordinates. @@ -3112,14 +3111,14 @@ for the current buffer. You can bring back an entire frame layout by restoring a previously saved window configuration. If you want to record the layout of all frames instead of just one, use a frame configuration instead of a -window configuration; see @ref{Frame Configurations}. +window configuration. @xref{Frame Configurations}. @defun current-window-configuration &optional frame This function returns a new object representing @var{frame}'s current window configuration. The default for @var{frame} is the selected frame. The variable @code{window-persistent-parameters} specifies -whether and which window parameters are saved by this function, see -@ref{Window Parameters} for details. +which window parameters (if any) are saved by this function. +@xref{Window Parameters}. @end defun @defun set-window-configuration configuration @@ -3136,9 +3135,9 @@ change and triggers execution of the @code{window-size-change-functions} know how to tell whether the new configuration actually differs from the old one. -If the frame which @var{configuration} was saved from is dead, all this +If the frame from which @var{configuration} was saved is dead, all this function does is restore the three variables @code{window-min-height}, -@code{window-min-width} and @code{minibuffer-scroll-window}. In this +@code{window-min-width} and @code{minibuffer-scroll-window}. In this case, the function returns @code{nil}. Otherwise, it returns @code{t}. Here is a way of using this function to get the same effect @@ -3221,8 +3220,8 @@ configurations. The objects returned by @code{current-window-configuration} die together with the Emacs process. In order to store a window -configuration on disk and read it back in another Emacs session, the -functions described next can be used. These functions are also useful +configuration on disk and read it back in another Emacs session, you +can use the functions described next. These functions are also useful to clone the state of a frame into an arbitrary live window (@code{set-window-configuration} effectively clones the windows of a frame into the root window of that very frame only). @@ -3235,17 +3234,17 @@ of the selected frame. If the optional argument @var{writable} is non-@code{nil}, this means to not use markers for sampling positions like @code{window-point} or @code{window-start}. This argument should be non-@code{nil} when the -state shall be written to disk and read back in another session. +state will be written to disk and read back in another session. Together, the argument @var{writable} and the variable @code{window-persistent-parameters} specify which window parameters are -saved by this function, see @ref{Window Parameters} for details. +saved by this function. @xref{Window Parameters}. @end defun The value returned by @code{window-state-get} can be used in the same session to make a clone of a window in another window. It can be also written to disk and read back in another session. In either case, use -the function described next to restore the state of the window. +the following function to restore the state of the window. @defun window-state-put state &optional window ignore This function puts the window state @var{state} into @var{window}. The @@ -3254,9 +3253,9 @@ earlier invocation of @code{window-state-get}, see above. The optional argument @var{window} must specify a live window and defaults to the selected one. -The optional argument @var{ignore} non-@code{nil} means to ignore -minimum window sizes and fixed size restrictions. If @var{ignore} -equals @code{safe}, this means windows can get as small as one line +If the optional argument @var{ignore} is non-@code{nil}, it means to ignore +minimum window sizes and fixed-size restrictions. If @var{ignore} +is @code{safe}, this means windows can get as small as one line and/or two columns. @end defun @@ -3276,8 +3275,8 @@ setting for @var{parameter}, this function returns @code{nil}. @defun window-parameters &optional window This function returns all parameters of @var{window} and their values. -The default for @var{window} is the selected window. The return value, -if non-@code{nil} is an association list whose elements have the form +The default for @var{window} is the selected window. The return value +is either @code{nil}, or an association list whose elements have the form @code{(@var{parameter} . @var{value})}. @end defun @@ -3287,34 +3286,34 @@ This function sets @var{window}'s value of @var{parameter} to is the selected window. @end defun -By default, functions saving and restoring window configurations or the +By default, the functions that save and restore window configurations or the states of windows (@pxref{Window Configurations}) do not care about -window parameters. This means, that when you change the value of a +window parameters. This means that when you change the value of a parameter within the body of a @code{save-window-excursion}, the -previous value is not restored upon exit of that macro. It also means +previous value is not restored when that macro exits. It also means that when you restore via @code{window-state-put} a window state saved earlier by @code{window-state-get}, all cloned windows have their -parameters reset to @code{nil}. The following variable allows to -override the standard behavior. +parameters reset to @code{nil}. The following variable allows you to +override the standard behavior: @defvar window-persistent-parameters This variable is an alist specifying which parameters get saved by -@code{current-window-configuration} and @code{window-state-get} and +@code{current-window-configuration} and @code{window-state-get}, and subsequently restored by @code{set-window-configuration} and -@code{window-state-put}, see @ref{Window Configurations}. +@code{window-state-put}. @xref{Window Configurations}. -The @sc{car} of each entry of this alist is the symbol specifying the +The @sc{car} of each entry of this alist is a symbol specifying the parameter. The @sc{cdr} should be one of the following: @table @asis @item @code{nil} -This value means the parameter is neither saved by +This value means the parameter is saved neither by @code{window-state-get} nor by @code{current-window-configuration}. @item @code{t} This value specifies that the parameter is saved by -@code{current-window-configuration} and, provided its @var{writable} -argument is @code{nil}, by @code{window-state-get}. +@code{current-window-configuration} and (provided its @var{writable} +argument is @code{nil}) by @code{window-state-get}. @item @code{writable} This means that the parameter is saved unconditionally by both @@ -3325,8 +3324,8 @@ may fail with an @code{invalid-read-syntax} error. @end table @end defvar -Some functions, notably @code{delete-window}, -@code{delete-other-windows} and @code{split-window} may behave specially +Some functions (notably @code{delete-window}, +@code{delete-other-windows} and @code{split-window}), may behave specially when their @var{window} argument has a parameter set. You can override such special behavior by binding the following variable to a non-@code{nil} value: @@ -3334,7 +3333,7 @@ non-@code{nil} value: @defvar ignore-window-parameters If this variable is non-@code{nil}, some standard functions do not process window parameters. The functions currently affected by this are -@code{split-window}, @code{delete-window}, @code{delete-other-windows} +@code{split-window}, @code{delete-window}, @code{delete-other-windows}, and @code{other-window}. An application can bind this variable to a non-@code{nil} value around @@ -3368,18 +3367,19 @@ This parameter marks the window as not selectable by @code{other-window} (@pxref{Cyclic Window Ordering}). @item @code{clone-of} -This parameter specifies the window this one has been cloned from and is -installed by @code{window-state-get}, see @ref{Window Configurations}. +This parameter specifies the window that this one has been cloned +from. It is installed by @code{window-state-get} (@pxref{Window +Configurations}). @item @code{quit-restore} -This parameter tells how to proceed with a window when the buffer it -shows is no more needed. It is installed by the buffer display -functions (@pxref{Choosing Window}) and consulted by the function +This parameter specifies what to do with a window when the buffer it +shows is not needed any more. It is installed by the buffer display +functions (@pxref{Choosing Window}), and consulted by the function @code{quit-window} (@pxref{Quitting Windows}). @end table -In addition, the parameters @code{window-atom} and @code{window-side} -are reserved and should not be used by applications. +There are additional parameters @code{window-atom} and @code{window-side}; +these are reserved and should not be used by applications. @node Window Hooks @@ -3401,7 +3401,7 @@ the window also runs these functions. This variable is not a normal hook, because each function is called with two arguments: the window, and its new display-start position. -These functions must be careful in using @code{window-end} +These functions must take care when using @code{window-end} (@pxref{Window Start and End}); if you need an up-to-date value, you must use the @var{update} argument to ensure you get it. @@ -3439,7 +3439,7 @@ of an existing frame. This includes splitting or deleting windows, changing the sizes of windows, or displaying a different buffer in a window. -The buffer-local part of this hook is run once per each window on the +The buffer-local part of this hook is run once for each window on the affected frame, with the relevant window selected and its buffer current. The global part is run once for the modified frame, with that frame selected. diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 834a8f2c47f..3d0900db9e4 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,13 @@ +2012-04-27 Ippei Furuhashi <top.tuna+orgmode@gmail.com> (tiny change) + + * org.texi (Agenda commands): Fix two typos: give corresponding + function names, according to `org-agenda-view-mode-dispatch'. + +2012-04-27 Glenn Morris <rgm@gnu.org> + + * faq.texi (Major packages and programs): Remove section. + There is no point listing 6 packages (cf etc/MORE.STUFF). + (Finding Emacs and related packages): Move "Spell-checkers" here. 2012-04-22 Michael Albinus <michael.albinus@gmx.de> * dbus.texi (Version): New node. diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi index 0f20c41c8eb..34005bcb9a0 100644 --- a/doc/misc/faq.texi +++ b/doc/misc/faq.texi @@ -91,7 +91,6 @@ Emacs, the Emacs manual is often the best starting point. * Bugs and problems:: * Compiling and installing Emacs:: * Finding Emacs and related packages:: -* Major packages and programs:: * Key bindings:: * Alternate character sets:: * Mail and news:: @@ -1050,7 +1049,7 @@ A new command @kbd{customize-themes} allows you to easily change the appearance of your Emacs. @item -Emacs can be compiled with the Gtk+ 3 toolkit. +Emacs can be compiled with the GTK+ 3 toolkit. @item Support for several new external libraries can be included at compile @@ -3242,6 +3241,7 @@ problem (@pxref{Reporting bugs}). * Finding Emacs on the Internet:: * Finding a package with particular functionality:: * Packages that do not come with Emacs:: +* Spell-checkers:: * Current GNU distributions:: * Difference between Emacs and XEmacs:: * Emacs for minimalists:: @@ -3323,6 +3323,29 @@ Several packages are stored in Read the file @file{etc/MORE.STUFF} for more information about external packages. +@node Spell-checkers +@section Spell-checkers +@cindex Spell-checker +@cindex Checking spelling +@cindex Ispell +@cindex Aspell +@cindex Hunspell + +Various spell-checkers are compatible with Emacs, including: + +@table @b + +@item GNU Aspell +@uref{http://aspell.net/} + +@item Ispell +@uref{http://fmg-www.cs.ucla.edu/geoff/ispell.html} + +@item Hunspell +@uref{http://hunspell.sourceforge.net/} + +@end table + @node Current GNU distributions @section Where can I get other up-to-date GNU stuff? @cindex Current GNU distributions @@ -3443,124 +3466,6 @@ Beginning with version 22.1, Emacs supports Mac OS X natively. See the file @file{nextstep/INSTALL} in the distribution. @c ------------------------------------------------------------ -@node Major packages and programs -@chapter Major packages and programs -@cindex Major packages and programs - -@menu -* VM:: -* AUCTeX:: -* BBDB:: -* Spell-checkers:: -* Emacs/W3:: -* EDB:: -* JDEE:: -@end menu - -@node VM -@section VM (View Mail) --- another mail reader within Emacs, with MIME support -@cindex VM -@cindex Alternative mail software -@cindex View Mail -@cindex E-mail reader, VM - -@table @b - -@item Web site -@uref{http://launchpad.net/vm} -(was @uref{http://www.nongnu.org/viewmail/}) - -@item Informational newsgroup -@uref{news:gnu.emacs.vm.info}@* - -@item Bug reports newsgroup -@uref{news:gnu.emacs.vm.bug}@* -@end table - -VM was originally written by @uref{http://www.wonderworks.com/vm/,Kyle Jones}. -@uref{ftp://ftp.wonderworks.com/pub/vm/,Older versions} of VM remain -available. - - -@node AUCTeX -@section AUC@TeX{} --- enhanced @TeX{} modes with debugging facilities -@cindex Mode for @TeX{} -@cindex @TeX{} mode -@cindex AUC@TeX{} mode for editing @TeX{} -@cindex Writing and debugging @TeX{} - -AUC@TeX{} is a set of sophisticated major modes for @TeX{}, LaTeX, -ConTeXt, and Texinfo offering context-sensitive syntax highlighting, -indentation, formatting and folding, macro completion, @TeX{} shell -functionality, and debugging. Be also sure to check out -@ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{} User Manual}. -Current versions of AUC@TeX{} include the -@uref{http://www.gnu.org/software/auctex/preview-latex.html,preview-latex} -package for WYSIWYG previews of various LaTeX constructs in the Emacs -source buffer. - -@uref{http://www.gnu.org/software/auctex/, AUCTeX} - -@node BBDB -@section BBDB --- personal Info Rolodex integrated with mail/news readers -@cindex BBDB -@cindex Rolodex-like functionality -@cindex Integrated contact database -@cindex Contact database -@cindex Big Brother Database -@cindex Address book - -@uref{http://bbdb.sourceforge.net/, The Insidious Big Brother Database} - -@node Spell-checkers -@section Spell-checkers -@cindex Spell-checker -@cindex Checking spelling -@cindex Ispell -@cindex Aspell -@cindex Hunspell - -Various spell-checkers are compatible with Emacs, including: - -@table @b - -@item GNU Aspell -@uref{http://aspell.net/} - -@item Ispell -@uref{http://fmg-www.cs.ucla.edu/geoff/ispell.html} - -@item Hunspell -@uref{http://hunspell.sourceforge.net/} - -@end table - -@node Emacs/W3 -@section Emacs/W3 --- A World Wide Web browser inside of Emacs -@cindex WWW browser -@cindex Web browser -@cindex HTML browser in Emacs -@cindex @code{w3-mode} - -@uref{http://www.gnu.org/software/w3/, Emacs/W3} - -@node EDB -@section EDB --- Database program for Emacs; replaces forms editing modes -@cindex EDB -@cindex Database -@cindex Forms mode - -@uref{http://gnuvola.org/software/edb/, The Emacs Database} - -@node JDEE -@section JDEE --- Integrated development environment for Java -@cindex Java development environment -@cindex Integrated Java development environment -@cindex JDEE - -@uref{http://jdee.sourceforge.net/, A Java Development Environment for Emacs} - -@c ------------------------------------------------------------ @node Key bindings @chapter Key bindings @cindex Key bindings diff --git a/etc/ChangeLog b/etc/ChangeLog index f2cdfb83c44..1200b991597 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,9 @@ +2012-04-26 Jambunathan K <kjambunathan@gmail.com> + + * org/OrgOdtStyles.xml (OrgDescriptionList): Modify style. With + this change, in a description list, if the description paragraph + spawns multiple lines then it will correctly indented. + 2012-04-20 Glenn Morris <rgm@gnu.org> * CONTRIBUTE: Expand a bit on copyright assignments. @@ -833,7 +833,7 @@ by default. (Its name is misleading, since it has nothing to do with MIME attachments.) The old name is now an obsolete alias to the new name. -** MH-E has been upgraded to MH-E version 8.3.1. +** MH-E has been updated to MH-E version 8.3.1. See MH-E-NEWS for details. ** Modula-2 mode provides auto-indentation. @@ -845,6 +845,9 @@ Completion is now performed via `completion-at-point', bound to C-M-i or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the default), this performs tag completion. +** Org mode has been updated to version 7.8.09. +See ORG-NEWS for details. + ** Prolog mode has been completely revamped, with lots of additional functionality such as more intelligent indentation, electricity, support for more variants, including Mercury, and a lot more. @@ -1228,6 +1231,8 @@ So do `defcustom' and other forms that call `defvar' as a subroutine. *** New function `special-variable-p' to check whether a variable is declared as dynamically bound. +*** The form ((lambda ...) ...) is deprecated. + ** An Emacs Lisp testing tool is now included. Emacs Lisp developers can use this tool to write automated tests for their code. See the ERT info manual for details. diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS new file mode 100644 index 00000000000..a6b31cf1249 --- /dev/null +++ b/etc/ORG-NEWS @@ -0,0 +1,948 @@ +ORG NEWS -- history of user-visible changes. -*- org -*- + +Copyright (C) 2012 Free Software Foundation, Inc. +See the end of the file for license conditions. + +Please send Org bug reports to emacs-orgmode@gnu.org. + +* Incompatible changes + +** New keys for TODO sparse trees + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + The key =C-c C-v= is now reserved for Org Babel action. TODO sparse + trees can still be made with =C-c / t= (all not-done states) and =C-c / + T= (specific states). + +** The Agenda =org-agenda-ndays= is now obsolete + :PROPERTIES: + :OrgVersion: 7.4 + :END: + + The variable =org-agenda-ndays= is obsolete - please use + =org-agenda-span= instead. + + Thanks to Julien Danjou for this. + +** Changes to the intended use of =org-export-latex-classes= + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + So far this variable has been used to specify the complete header of the + LaTeX document, including all the =\usepackage= calls necessary for the + document. This setup makes it difficult to maintain the list of + packages that Org itself would like to call, for example for the special + symbol support it needs. + + First of all, you can *opt out of this change* in the following way: You + can say: /I want to have full control over headers, and I will take + responsibility to include the packages Org needs/. If that is what you + want, add this to your configuration and skip the rest of this section + (except maybe for the description of the =[EXTRA]= place holder): + + #+begin_src emacs-lisp + (setq org-export-latex-default-packages-alist nil + org-export-latex-packages-alist nil) + #+end_src + + /Continue to read here if you want to go along with the modified setup./ + + There are now two variables that should be used to list the LaTeX + packages that need to be included in all classes. The header definition + in =org-export-latex-classes= should then not contain the corresponding + =\usepackage= calls (see below). + + The two new variables are: + + 1. =org-export-latex-default-packages-alist= :: This is the variable + where Org-mode itself puts the packages it needs. Normally you + should not change this variable. The only reason to change it + anyway is when one of these packages causes a conflict with another + package you want to use. Then you can remove that packages and + hope that you are not using Org-mode functionality that needs it. + + 2. =org-export-latex-packages-alist= :: This is the variable where you + can put the packages that you'd like to use across all classes. + + The sequence how these customizations will show up in the LaTeX + document are: + + 1. Header from =org-export-latex-classes= + 2. =org-export-latex-default-packages-alist= + 3. =org-export-latex-packages-alist= + 4. Buffer-specific things set with =#+LaTeX_HEADER:= + + If you want more control about which segment is placed where, or if you + want, for a specific class, have full control over the header and + exclude some of the automatic building blocks, you can put the following + macro-like place holders into the header: + + #+begin_example + [DEFAULT-PACKAGES] \usepackage statements for default packages + [NO-DEFAULT-PACKAGES] do not include any of the default packages + [PACKAGES] \usepackage statements for packages + [NO-PACKAGES] do not include the packages + [EXTRA] the stuff from #+LaTeX_HEADER + [NO-EXTRA] do not include #+LaTeX_HEADER stuff + #+end_example + + If you have currently customized =org-export-latex-classes=, you should + revise that customization and remove any package calls that are covered + by =org-export-latex-default-packages-alist=. This applies to the + following packages: + + - inputenc + - fontenc + - fixltx2e + - graphicx + - longtable + - float + - wrapfig + - soul + - t1enc + - textcomp + - marvosym + - wasysym + - latexsym + - amssymb + - hyperref + + If one of these packages creates a conflict with another package you are + using, you can remove it from =org-export-latex-default-packages-alist=. + But then you risk that some of the advertised export features of Org + will not work properly. + + You can also consider moving packages that you use in all classes to + =org-export-latex-packages-alist=. If necessary, put the place holders + so that the packages get loaded in the right sequence. As said above, + for backward compatibility, if you omit the place holders, all the + variables will dump their content at the end of the header. + +** The constant =org-html-entities= is obsolete + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + Its content is now part of the new constant =org-entities=, which is + defined in the file org-entities.el. =org-html-entities= was an internal + variable, but it is possible that some users did write code using it. + +** `org-bbdb-anniversary-format-alist' has changed + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + Please check the docstring and update your settings accordingly. + +** Deleted =org-mode-p= + :PROPERTIES: + :OrgVersion: 7.8 + :END: + + This function has been deleted: please update your code. + +* Important new features + +** New Org to ODT exporter + :PROPERTIES: + :OrgVersion: 7.8 + :END: + + Jambunathan's Org to ODT exporter is now part of Org. + + To use it, it `C-c C-e o' in an Org file. See the documentation for more + information on how to customize it. + +** org-capture.el is now the default capture system + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + This replaces the earlier system org-remember. The manual only describes + org-capture, but for people who prefer to continue to use org-remember, + we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about + remember]]. + + The new system has a technically cleaner implementation and more + possibilities for capturing different types of data. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's + announcement]] for more details. + + To switch over to the new system: + + 1. Run + + : M-x org-capture-import-remember-templates RET + + to get a translated version of your remember templates into the + new variable =org-capture-templates=. This will "mostly" work, + but maybe not for all cases. At least it will give you a good + place to modify your templates. After running this command, + enter the customize buffer for this variable with + + : M-x customize-variable RET org-capture-templates RET + + and convince yourself that everything is OK. Then save the + customization. + + 2. Bind the command =org-capture= to a key, similar to what you did + with org-remember: + + : (define-key global-map "\C-cc" 'org-capture) + + If your fingers prefer =C-c r=, you can also use this key once + you have decided to move over completely to the new + implementation. During a test time, there is nothing wrong + with using both system in parallel. + +* New libraries + +** New Org libraries +*** org-eshell.el (Konrad Hinsen) + :PROPERTIES: + :OrgVersion: 7.8 + :END: + + Implement links to eshell buffers. + +*** org-special-blocks (Carsten Dominik) + :PROPERTIES: + :OrgVersion: 7.8 + :END: + +This package generalizes the #+begin_foo and #+end_foo tokens. + +To use, put the following in your init file: + +#+BEGIN_EXAMPLE +(require 'org-special-blocks) +#+END_EXAMPLE + +The tokens #+begin_center, #+begin_verse, etc. existed previously. This +package generalizes them (at least for the LaTeX and html exporters). When +a #+begin_foo token is encountered by the LaTeX exporter, it is expanded +into \begin{foo}. The text inside the environment is not protected, as +text inside environments generally is. When #+begin_foo is encountered by +the html exporter, a div with class foo is inserted into the HTML file. It +is up to the user to add this class to his or her stylesheet if this div is +to mean anything. + +*** org-taskjuggler.el (Christian Egli) + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + Christian Egli's /org-taskjuggler.el/ module is now part of Org. He + also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it. + +*** org-ctags.el (Paul Sexton) + :PROPERTIES: + :OrgVersion: 6.34 + :END: + + Targets like =<<my target>>= can now be found by Emacs' etag + functionality, and Org-mode links can be used to to link to etags, also + in non-Org-mode files. For details, see the file /org-ctags.el/. + + This feature uses a new hook =org-open-link-functions= which will call + function to do something special with text links. + + Thanks to Paul Sexton for this contribution. + +*** org-docview.el (Jan Böcker) + :PROPERTIES: + :OrgVersion: 6.34 + :END: + + This new module allows links to various file types using docview, where + Emacs displays images of document pages. Docview link types can point + to a specific page in a document, for example to page 131 of the + Org-mode manual: + + : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]] + + Thanks to Jan Böcker for this contribution. + +** New Babel libraries + +- ob-picolisp.el (Thorsten Jolitz) +- ob-fortran.el (Sergey Litvinov) +- ob-shen.el (Eric Schulte) +- ob-maxima.el (Eric S Fraga) +- ob-java.el (Eric Schulte) +- ob-lilypond.el (Martyn Jago) +- ob-awk.el (Eric Schulte) + +* Other new features and various enhancements + +** Hyperlinks + +*** Org-Bibtex -- major improvements + :PROPERTIES: + :OrgVersion: 7.6 + :END: + + Provides support for managing bibtex bibliographical references + data in headline properties. Each headline corresponds to a + single reference and the relevant bibliographic meta-data is + stored in headline properties, leaving the body of the headline + free to hold notes and comments. Org-bibtex is aware of all + standard bibtex reference types and fields. + + The key new functions are + +- org-bibtex-check :: queries the user to flesh out all required + (and with prefix argument optional) bibtex fields available + for the specific reference =type= of the current headline. + +- org-bibtex-create :: Create a new entry at the given level, + using org-bibtex-check to flesh out the relevant fields. + +- org-bibtex-yank :: Yank a bibtex entry on the kill ring as a + formatted Org-mode headline into the current buffer + +- org-bibtex-export-to-kill-ring :: Export the current headline + to the kill ring as a formatted bibtex entry. + + + +*** org-gnus.el now allows link creation from messages + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + You can now create links from messages. This is particularily + useful when the user wants to stored messages that he sends, for + later check. Thanks to Ulf Stegemann for the patch. + + + +*** Modified link escaping + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]: + +: Percent escaping is used in Org mode to escape certain characters +: in links that would either break the parser (e.g. square brackets +: in link target oder description) or are not allowed to appear in +: a particular link type (e.g. non-ascii characters in a http: +: link). +: +: With this change in place Org will apply percent escaping and +: unescaping more consistently especially for non-ascii characters. +: Additionally some of the outstanding bugs or glitches concerning +: percent escaped links are solved. + + Thanks a lot to David for this work. + + + +*** Make =org-store-link= point to directory in a dired buffer + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + When, in a dired buffer, the cursor is not in a line listing a + file, `org-store-link' will store a link to the directory. + + Patch by Stephen Eglen. + + + +*** Allow regexps in =org-file-apps= to capture link parameters + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + The way extension regexps in =org-file-apps= are handled has + changed. Instead of matching against the file name, the regexps + are now matched against the whole link, and you can use grouping + to extract link parameters which you can then use in a command + string to be executed. + + For example, to allow linking to PDF files using the syntax + =file:/doc.pdf::<page number>=, you can add the following entry to + org-file-apps: + + #+begin_example + Extension: \.pdf::\([0-9]+\)\' + Command: evince "%s" -p %1 + #+end_example + + Thanks to Jan Böcker for a patch to this effect. + +** Dates and time + +*** Allow relative time when scheduling/adding a deadline + :PROPERTIES: + :OrgVersion: 7.7 + :END: + + You can now use relative duration strings like "-2d" or "++3w" + when calling =org-schedule= or =org-deadline=: it will schedule + (or set the deadline for) the item respectively two days before + today and three weeks after the current timestamp, if any. + + You can use this programmatically: =(org-schedule nil "+2d")= + will work on the current entry. + + You can also use this while (bulk-)rescheduling and + (bulk-)resetting the deadline of (several) items from the agenda. + + Thanks to Memnon Anon for a heads up about this! + + + + +*** American-style dates are now understood by =org-read-date= + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + So when you are prompted for a date, you can now answer like this + + #+begin_example + 2/5/3 --> 2003-02-05 + 2/5 --> <CURRENT-YEAR>-02-05 + #+end_example + +** Agenda + +*** =org-agenda-custom-commands= has a default value + :PROPERTIES: + :OrgVersion: 7.8 + :END: + + This option used to be `nil' by default. This now has a default + value, displaying an agenda and all TODOs. See the docstring for + details. Thanks to Carsten for this. + + +*** Improved filtering through =org-agenda-to-appt= + :PROPERTIES: + :OrgVersion: 7.8 + :END: + + The new function allows the user to refine the scope of entries + to pass to =org-agenda-get-day-entries= and allows to filter out + entries using a function. + + Thanks to Peter Münster for raising a related issue and to + Tassilo Horn for this idea. Also thanks to Peter Münster for + [[git:68ffb7a7][fixing a small bug]] in the final implementation. + + + +*** Allow ap/pm times in agenda time grid + :PROPERTIES: + :OrgVersion: 7.4 + :END: + + Times in the agenda can now be displayed in am/pm format. See the new + variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for + a patch to this effect. + + + +*** Agenda: Added a bulk "scattering" command + :PROPERTIES: + :OrgVersion: 7.4 + :END: + + =B S= in the agenda buffer will cause tasks to be rescheduled a random + number of days into the future, with 7 as the default. This is useful + if you've got a ton of tasks scheduled for today, you realize you'll + never deal with them all, and you just want them to be distributed + across the next N days. When called with a prefix arg, rescheduling + will avoid weekend days. + + Thanks to John Wiegley for this. + +** Exporting + +*** Simplification of org-export-html-preamble/postamble + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + When set to `t', export the preamble/postamble as usual, honoring the + =org-export-email/author/creator-info= variables. + + When set to a formatting string, insert this string. See the docstring + of these variable for details about available %-sequences. + + You can set =:html-preamble= in publishing project in the same way: `t' + means to honor =:email/creator/author-info=, and a formatting string + will insert a string. + +*** New exporters to Latin-1 and UTF-8 + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + While Ulf Stegemann was going through the entities list to improve the + LaTeX export, he had the great idea to provide representations for many + of the entities in Latin-1, and for all of them in UTF-8. This means + that we can now export files rich in special symbols to Latin-1 and to + UTF-8 files. These new exporters can be reached with the commands =C-c + C-e n= and =C-c C-e u=, respectively. + + When there is no representation for a given symbol in the targeted + coding system, you can choose to keep the TeX-macro-like + representation, or to get an "explanatory" representation. For + example, =\simeq= could be represented as "[approx. equal to]". Please + use the variable =org-entities-ascii-explanatory= to state your + preference. + +*** HTML export: Add class to outline containers using property + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + The =HTML_CONTAINER_CLASS= property can now be used to add a class name + to the outline container of a node in HTML export. + +*** Throw an error when creating an image from a LaTeX snippet fails + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + This behavior can be configured with the new option variable + =org-format-latex-signal-error=. + +*** Support for creating BEAMER presentations from Org-mode documents + :PROPERTIES: + :OrgVersion: 6.34 + :END: + + Org-mode documents or subtrees can now be converted directly in to + BEAMER presentation. Turning a tree into a simple presentations is + straight forward, and there is also quite some support to make richer + presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more + details. + + Thanks to everyone who has contributed to the discussion about BEAMER + support and how it should work. This was a great example for how this + community can achieve a much better result than any individual could. + +** Refiling + +*** Refile targets can now be cached + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + You can turn on caching of refile targets by setting the variable + =org-refile-use-cache=. This should speed up refiling if you have many + eligible targets in many files. If you need to update the cache + because Org misses a newly created entry or still offers a deleted one, + press =C-0 C-c C-w=. + +*** New logging support for refiling + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + Whenever you refile an item, a time stamp and even a note can be added + to this entry. For details, see the new option =org-log-refile=. + + Thanks to Charles Cave for this idea. + +** Completion + +*** In-buffer completion is now done using John Wiegleys pcomplete.el + :PROPERTIES: + :OrgVersion: 7.4 + :END: + + Thanks to John Wiegley for much of this code. + +** Tables + +*** New command =org-table-transpose-table-at-point= + :PROPERTIES: + :OrgVersion: 7.8 + :END: + + See the docstring. This hack from Juan Pechiar is now part of Org's + core. Thanks to Juan! + +*** Display field's coordinates when editing it with =C-c `= + :PROPERTIES: + :OrgVersion: 7.7 + :END: + + When editing a field with =C-c `=, the field's coordinate will the + displayed in the buffer. + + Thanks to Michael Brand for a patch to this effect. + +*** Spreadsheet computation of durations and time values + :PROPERTIES: + :OrgVersion: 7.6 + :END: + + If you want to compute time values use the =T= flag, either in Calc + formulas or Elisp formulas: + + | Task 1 | Task 2 | Total | + |--------+--------+---------| + | 35:00 | 35:00 | 1:10:00 | + #+TBLFM: @2$3=$1+$2;T + + Values must be of the form =[HH:]MM:SS=, where hours are optional. + + Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback + on this. + +*** Implement formulas applying to field ranges + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + Carsten implemented this field-ranges formulas. + + : A frequently requested feature for tables has been to be able to define + : row formulas in a way similar to column formulas. The patch below allows + : things like + : + : @3= + : @2$2..@5$7= + : @I$2..@II$4= + : + : as the left hand side for table formulas in order to write a formula that + : is valid for an entire column or for a rectangular section in a + : table. + + Thanks a lot to Carsten for this. + +*** Sending radio tables from org buffers is now allowed + :PROPERTIES: + :OrgVersion: 7.4 + :END: + + Org radio tables can no also be sent inside Org buffers. Also, there + is a new hook which get called after a table has been sent. + + Thanks to Seweryn Kokot. + +** Lists + +*** Improved handling of lists + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + Nicolas Goaziou extended and improved the way Org handles lists. + + 1. Indentation of text determines again end of items in lists. So, some + text less indented than the previous item doesn't close the whole + list anymore, only all items more indented than it. + + 2. Alphabetical bullets are implemented, through the use of the + variable `org-alphabetical-lists'. This also adds alphabetical + counters like [@c] or [@W]. + + 3. Lists can now safely contain drawers, inline tasks, or various + blocks, themselves containing lists. Two variables are controlling + this: `org-list-forbidden-blocks', and `org-list-export-context'. + + 4. Improve `newline-and-indent' (C-j): used in an item, it will keep + text from moving at column 0. This allows to split text and make + paragraphs and still not break the list. + + 5. Improve `org-toggle-item' (C-c -): used on a region with standard + text, it will change the region into one item. With a prefix + argument, it will fallback to the previous behavior and make every + line in region an item. It permits to easily integrate paragraphs + inside a list. + + 6. `fill-paragraph' (M-q) now understands lists. It can freely be used + inside items, or on text just after a list, even with no blank line + around, without breaking list structure. + + Thanks a lot to Nicolas for all this! + +** Inline display of linked images + :PROPERTIES: + :OrgVersion: 6.36 + :END: + + Images can now be displayed inline. The key C-c C-x C-v does toggle the + display of such images. Note that only image links that have no + description part will be inlined. + +** Implement offsets for ordered lists + :PROPERTIES: + :OrgVersion: 6.36 + :END: + + If you want to start an ordered plain list with a number different from + 1, you can now do it like this: + + : 1. [@start:12] will star a lit a number 12 + +** Babel: code block body expansion for table and preview + :PROPERTIES: + :OrgVersion: 6.36 + :END: + + In org-babel, code is "expanded" prior to evaluation. I.e. the code that + is actually evaluated comprises the code block contents, augmented with + the extra code which assigns the referenced data to variables. It is now + possible to preview expanded contents, and also to expand code during + during tangling. This expansion takes into account all header arguments, + and variables. + + A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can + be used from inside of a source code block to preview its expanded + contents (which can be very useful for debugging). tangling + + The expanded body can now be tangled, this includes variable values + which may be the results of other source-code blocks, or stored in + headline properties or tables. One possible use for this is to allow + those using org-babel for their emacs initialization to store values + (e.g. usernames, passwords, etc...) in headline properties or in tables. + + Org-babel now supports three new header arguments, and new default + behavior for handling horizontal lines in tables (hlines), column names, + and rownames across all languages. + +** Editing Convenience and Appearance + +*** New command =org-copy-visible= (=C-c C-x v=) + :PROPERTIES: + :OrgVersion: 7.7 + :END: + + This command will copy the visible text in the region into the kill + ring. Thanks to Florian Beck for this function and to Carsten for + adding it to org.el and documenting it! + +*** Make it possible to protect hidden subtrees from being killed by =C-k= + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + See the new variable =org-ctrl-k-protect-subtree=. This was a request + by Scott Otterson. + +*** Implement pretty display of entities, sub-, and superscripts. + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + The command =C-c C-x \= toggles the display of Org's special entities + like =\alpha= as pretty unicode characters. Also, sub and superscripts + are displayed in a pretty way (raised/lower display, in a smaller + font). If you want to exclude sub- and superscripts, see the variable + =org-pretty-entities-include-sub-superscripts=. + + Thanks to Eric Schulte and Ulf Stegeman for making this possible. + +*** New faces for title, date, author and email address lines + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + The keywords in these lines are now dimmed out, and the title is + displayed in a larger font, and a special font is also used for author, + date, and email information. This is implemented by the following new + faces: + + =org-document-title= + =org-document-info= + =org-document-info-keyword= + + In addition, the variable =org-hidden-keywords= can be used to make the + corresponding keywords disappear. + + Thanks to Dan Davison for this feature. + +*** Simpler way to specify faces for tags and todo keywords + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + The variables =org-todo-keyword-faces=, =org-tag-faces=, and + =org-priority-faces= now accept simple color names as specifications. + The colors will be used as either foreground or background color for + the corresponding keyword. See also the variable + =org-faces-easy-properties=, which governs which face property is + affected by this setting. + + This is really a great simplification for setting keyword faces. The + change is based on an idea and patch by Ryan Thompson. + +*** <N> in tables now means fixed width, not maximum width + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + Requested by Michael Brand. + +*** Better level cycling function + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + =TAB= in an empty headline cycles the level of that headline through + likely states. Ryan Thompson implemented an improved version of this + function, which does not depend upon when exactly this command is used. + Thanks to Ryan for this improvement. + +*** Adaptive filling + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + For paragraph text, =org-adaptive-fill-function= did not handle the + base case of regular text which needed to be filled. This is now + fixed. Among other things, it allows email-style ">" comments to be + filled correctly. + + Thanks to Dan Hackney for this patch. + +*** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el) + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + Thanks to Richard Riley for triggering this change. + +*** Better automatic letter selection for TODO keywords + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + When all first letters of keywords have been used, Org now assigns more + meaningful characters based on the keywords. + + Thanks to Mikael Fornius for this patch. + +** Clocking + +*** Clock: Allow synchronous update of timestamps in CLOCK log + :PROPERTIES: + :OrgVersion: 7.7 + :END: + + Using =S-M-<up/down>= on CLOCK log timestamps will increase/decrease + the two timestamps on this line so that duration will keep the same. + Note that duration can still be slightly modified in case a timestamp + needs some rounding. + + Thanks to Rainer Stengele for this idea. + +*** Localized clock tables + :PROPERTIES: + :OrgVersion: 7.5 + :END: + + Clock tables now support a new new =:lang= parameter, allowing the user + to customize the localization of the table headers. See the variable + =org-clock-clocktable-language-setup= which controls available + translated strings. + +*** Show clock overruns in mode line + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + When clocking an item with a planned effort, overrunning the planned + time is now made visible in the mode line, for example using the new + face =org-mode-line-clock-overrun=, or by adding an extra string given + by =org-task-overrun-text=. + + Thanks to Richard Riley for a patch to this effect. + +*** Clock reports can now include the running, incomplete clock + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + If you have a clock running, and the entry being clocked falls into the + scope when creating a clock table, the time so far spent can be added + to the total. This behavior depends on the setting of + =org-clock-report-include-clocking-task=. The default is =nil=. + + Thanks to Bernt Hansen for this useful addition. + +** Misc + +*** Improvements with inline tasks and indentation + :PROPERTIES: + :OrgVersion: 7.4 + :END: + + There is now a configurable way on how to export inline tasks. See the + new variable =org-inlinetask-export-templates=. + + Thanks to Nicolas Goaziou for coding these changes. + +*** A property value of "nil" now means to unset a property + :PROPERTIES: + :OrgVersion: 7.01 + :END: + + This can be useful in particular with property inheritance, if some + upper level has the property, and some grandchild of it would like to + have the default settings (i.e. not overruled by a property) back. + + Thanks to Robert Goldman and Bernt Hansen for suggesting this change. + +*** New helper functions in org-table.el + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + There are new functions to access and write to a specific table field. + This is for hackers, and maybe for the org-babel people. + + #+begin_example + org-table-get + org-table-put + org-table-current-line + org-table-goto-line + #+end_example + +*** Archiving: Allow to reverse order in target node + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + The new option =org-archive-reversed-order= allows to have archived + entries inserted in a last-on-top fashion in the target node. + + This was requested by Tom. + +*** Org-reveal: Double prefix arg shows the entire subtree of the parent + :PROPERTIES: + :OrgVersion: 6.35 + :END: + + This can help to get out of an inconsistent state produced for example + by viewing from the agenda. + + This was a request by Matt Lundin. + +* License + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. diff --git a/etc/org/OrgOdtStyles.xml b/etc/org/OrgOdtStyles.xml index 470b7b134a7..84125c96d8a 100644 --- a/etc/org/OrgOdtStyles.xml +++ b/etc/org/OrgOdtStyles.xml @@ -649,34 +649,34 @@ <!-- Description List --> <text:list-style style:name="OrgDescriptionList"> <text:list-level-style-number text:level="1" style:num-format=""> - <style:list-level-properties text:space-before="0.635cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="0.635cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="2" style:num-format=""> - <style:list-level-properties text:space-before="1.27cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="1.27cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="3" style:num-format=""> - <style:list-level-properties text:space-before="1.905cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="1.905cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="4" style:num-format=""> - <style:list-level-properties text:space-before="2.54cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="2.54cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="5" style:num-format=""> - <style:list-level-properties text:space-before="3.175cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="3.175cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="6" style:num-format=""> - <style:list-level-properties text:space-before="3.81cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="3.81cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="7" style:num-format=""> - <style:list-level-properties text:space-before="4.445cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="4.445cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="8" style:num-format=""> - <style:list-level-properties text:space-before="5.08cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="5.08cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="9" style:num-format=""> - <style:list-level-properties text:space-before="5.715cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="5.715cm"/> </text:list-level-style-number> <text:list-level-style-number text:level="10" style:num-format=""> - <style:list-level-properties text:space-before="6.35cm" text:min-label-width="0.635cm"/> + <style:list-level-properties text:space-before="6.35cm"/> </text:list-level-style-number> </text:list-style> diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0b0065f520e..f88a386178f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,57 @@ 2012-04-27 Chong Yidong <cyd@gnu.org> + * subr.el (read-key): Avoid running filter function when setting + up temporary tool bar entries (Bug#9922). + +2012-04-27 Andreas Schwab <schwab@linux-m68k.org> + + * vc/vc-git.el (vc-git-state): Fix regexp matching diff output. + (Bug#11344) + +2012-04-27 Chong Yidong <cyd@gnu.org> + + * select.el (xselect--encode-string): New function, split from + xselect-convert-to-string. + (xselect-convert-to-string): Use it. + (xselect-convert-to-filename, xselect-convert-to-os) + (xselect-convert-to-host, xselect-convert-to-user): Ensure that + returned strings are properly encoded (Bug#11315). + +2012-04-27 Chong Yidong <cyd@gnu.org> + + * simple.el (delete-active-region): Move to killing custom group. + +2012-04-27 Andreas Schwab <schwab@linux-m68k.org> + + * progmodes/which-func.el (which-func-current): Quote % + characters for mode-line processing. + +2012-04-21 Chong Yidong <cyd@gnu.org> + + * xml.el (xml-parse-region, xml-parse-tag): Avoid errors due to + reaching eob (Bug#11286). + +2012-04-27 Eli Zaretskii <eliz@gnu.org> + + * progmodes/gdb-mi.el (gdb-control-level): New variable. + (gdb): Make it buffer-local and init to zero. + (gdb-control-commands-regexp): New variable. + (gdb-send): Don't wrap in "-interpreter-exec console" if + gdb-control-level is positive. Increment gdb-control-level + whenever the command matches gdb-control-commands-regexp, and + decrement it each time the command is "end". (Bug#11279) + +2012-04-27 Martin Rudalics <rudalics@gmx.at> + + * window.el (adjust-window-trailing-edge, enlarge-window) + (shrink-window, window-resize): + * mouse.el (mouse-drag-line): Fix resizing of minibuffer + windows (Bug#11276). + +2012-04-27 Chong Yidong <cyd@gnu.org> + * progmodes/pascal.el (pascal--extra-indent): Rename from ind, to - fix "missig prefix" warning. All callers changed. + fix "missing prefix" warning. All callers changed. 2012-04-27 Stefan Monnier <monnier@iro.umontreal.ca> diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el index 3135b9b5827..d4213899ef6 100644 --- a/lisp/emacs-lisp/check-declare.el +++ b/lisp/emacs-lisp/check-declare.el @@ -1,6 +1,6 @@ ;;; check-declare.el --- Check declare-function statements -;; Copyright (C) 2007-2012 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Glenn Morris <rgm@gnu.org> ;; Keywords: lisp, tools, maint @@ -28,7 +28,7 @@ ;; checks that all such statements in a file or directory are accurate. ;; The entry points are `check-declare-file' and `check-declare-directory'. -;; For more information, see Info node `elisp(Declaring Functions)'. +;; For more information, see Info node `(elisp)Declaring Functions'. ;;; TODO: diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index e25ffd933e6..556094ca614 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,7 @@ +2012-04-27 Andreas Schwab <schwab@linux-m68k.org> + + * gnus.el (debbugs-gnu): Don't override existing autoload definition. + 2012-04-26 Daiki Ueno <ueno@unixuser.org> * plstore.el (plstore-called-interactively-p): New compat macro copied diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index cc4f2eb1e7a..635bb6fc96f 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -4397,7 +4397,9 @@ prompt the user for the name of an NNTP server to use." (gnus-1 arg dont-connect slave) (gnus-final-warning))) -(autoload 'debbugs-gnu "debbugs-gnu") +(eval-and-compile + (unless (fboundp 'debbugs-gnu) + (autoload 'debbugs-gnu "debbugs-gnu" "List all outstanding Emacs bugs." t))) (defun gnus-list-debbugs () "List all open Gnus bug reports." (interactive) diff --git a/lisp/mouse.el b/lisp/mouse.el index 8e08f89f22c..46e50ed9508 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -403,13 +403,16 @@ must be one of the symbols header, mode, or vertical." (or mouse-1-click-in-non-selected-windows (eq window (selected-window))) (mouse-on-link-p start))) - (enlarge-minibuffer + (resize-minibuffer + ;; Resize the minibuffer window if it's on the same frame as + ;; and immediately below the position window and it's either + ;; active or `resize-mini-windows' is nil. (and (eq line 'mode) - (not resize-mini-windows) (eq (window-frame minibuffer-window) frame) - (not (one-window-p t frame)) (= (nth 1 (window-edges minibuffer-window)) - (nth 3 (window-edges window))))) + (nth 3 (window-edges window))) + (or (not resize-mini-windows) + (eq minibuffer-window (active-minibuffer-window))))) (which-side (and (eq line 'vertical) (or (cdr (assq 'vertical-scroll-bars (frame-parameters frame))) @@ -424,7 +427,7 @@ must be one of the symbols header, mode, or vertical." ((eq line 'mode) ;; Check whether mode-line can be dragged at all. (when (and (window-at-side-p window 'bottom) - (not enlarge-minibuffer)) + (not resize-minibuffer)) (setq done t))) ((eq line 'vertical) ;; Get the window to adjust for the vertical case. @@ -498,13 +501,9 @@ must be one of the symbols header, mode, or vertical." ;; Remember that we dragged. (setq dragged t)) - (cond - (enlarge-minibuffer - (adjust-window-trailing-edge window growth)) - ((eq line 'mode) - (adjust-window-trailing-edge window growth)) - (t - (adjust-window-trailing-edge window (- growth))))))) + (if (eq line 'mode) + (adjust-window-trailing-edge window growth) + (adjust-window-trailing-edge window (- growth)))))) ;; Presumably, if this was just a click, the last event should be ;; `mouse-1', whereas if this did move the mouse, it should be a diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 86f493a0a5b..c340fd45df3 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog @@ -1,3 +1,67 @@ +2012-04-27 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-table.el (org-table-number-fraction): Fix typo. + +2012-04-27 Eric Schulte <eric.schulte@gmx.com> + + * ob-python.el (org-babel-execute:python): Ensure newline precedes + automatically-added returns. + +2012-04-27 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-mouse.el (org-mode-hook): Do not move point when clicking on + a footnote reference. + +2012-04-27 Bastien Guerry <bzg@gnu.org> + + * org-faces.el (org-date-selected): Fix docstring. + +2012-04-27 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-list-struct-indent): Follow + `org-list-demote-modify-bullet' specifications for ordered + bullets. + (org-list-indent-item-generic, org-indent-item-tree) + (org-outdent-item-tree): Fix bug when operating on a region. + (org-outdent-item, org-indent-item): Allow to operate on a region. + + * org.el (org-shiftmetaleft, org-shiftmetaright): Allow to operate + on a region. + +2012-04-27 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-normalize): Fix positioning in + HTML export without a footnote section. + +2012-04-27 Madan Ramakrishnan <madanr79@gmail.com> (tiny change) + + * org-agenda.el (org-agenda-bulk-mark): Truly make arg optional as + advertised by the function. + +2012-04-27 Zachary Kanfer <zkanfer@gmail.com> (tiny change) + + * org.el (org-read-date-display): Fix bug when displaying the + overlay. + +2012-04-27 Bastien Guerry <bzg@gnu.org> + + * org.el (org-mode): Don't use `buffer-face-mode' by default. + +2012-04-27 Bastien Guerry <bzg@gnu.org> + + * org-faces.el (org-date-selected): New face. + +2012-04-27 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-odt-format-org-link): Pay no heed to whether the + internal links destined for headlines provide a description or + not. In fact, the `org-store-link' and `org-insert-link' create + internal links which do have a description. + +2012-04-27 Bastien Guerry <bzg@gnu.org> + + * org-clock.el (org-program-exists): Fix docstring. + 2012-04-14 Bastien Guerry <bzg@gnu.org> * org.el (org-point-at-end-of-empty-headline): Only try to match @@ -438,11 +502,6 @@ * org-attach.el (org-attach-store-link-p): Remove spurious quote in customization form choice. -2012-04-01 Tassilo Horn <tassilo@member.fsf.org> - - * org-contacts.el (org-contacts-check-mail-address): Add missing - word to `y-or-n-p' question. - 2012-04-01 Eric Schulte <eric.schulte@gmx.com> * ob-sh.el (org-babel-execute:sh): Pass all params to subroutine. @@ -934,11 +993,6 @@ * org-footnote.el (org-footnote-normalize): Make sure that footnotes are moved to a single place during export. -2012-04-01 Bastien Guerry <bzg@gnu.org> - - * org.el (org-cycle-internal-global): Prevent the display of - messages when cycling from with a Gnus article buffer. - 2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com> * org-footnote.el (org-footnote-normalize): Ensure footnote @@ -1807,11 +1861,6 @@ 2012-01-03 Bastien Guerry <bzg@gnu.org> - * org-drill.el (org-drill-leech-method, org-drill-scope) - (org-drill-spaced-repetition-algorithm): Fix wrong :type spec. - -2012-01-03 Bastien Guerry <bzg@gnu.org> - * org.el (org-property-re): Also match cumulating properties like ":prop+:". @@ -5929,10 +5978,6 @@ * ob-exp.el (org-babel-exp-in-export-file): Bind `org-link-search-inhibit-query' to t to inhibit prompts. -2011-07-28 Julien Danjou <julien@danjou.info> - - * org-contacts.el: Merge org-contacts-wl.el. - 2011-07-28 Carsten Dominik <carsten.dominik@gmail.com> * org-exp.el (org-export-add-options-to-plist): Use the right @@ -5967,10 +6012,6 @@ * org-agenda.el (org-agenda-open-link): Pass entire text of agenda line to `org-offer-links-in-entry'. -2011-07-28 Michael Markert <markert.michael@googlemail.com> - - * org-contacts-wl.el: New file. - 2011-07-28 Matt Lundin <mdl@imapmail.org> * org-bibtex.el (org-bibtex-search): New function. @@ -6736,9 +6777,6 @@ (org-agenda-open-link): Stop using prefix-length. (org-agenda-change-all-lines): Stop using prefix-length. - * org-colview-xemacs.el (org-columns-display-here): Stop using - prefix-length. Always return claned items. - * org-colview.el (org-columns-display-here): Stop using prefix-length. Always return claned items. @@ -13095,16 +13133,6 @@ * org-capture.el (org-capture-templates): Fix customize type. -2010-11-11 Carsten Dominik <carsten.dominik@gmail.com> - - * org-colview-xemacs.el (org-columns-compile-map): - (org-columns-number-to-string): - (org-columns-string-to-number): Handle estimate ranges. - (org-estimate-mean-and-var): New function. - (org-estimate-combine): New function. - (org-estimate-print): New function. - (org-string-to-estimate): New function. - 2010-09-25 Juanma Barranquero <lekktu@gmail.com> * org.el (org-refile-targets): @@ -14132,9 +14160,6 @@ * org-src.el (org-edit-src-find-region-and-lang): Test for table.el as late as possible. - * org-colview-xemacs.el: Make sure this file is never loaded into - Emacs. Remove all tests for XEmacs. - * org-colview.el: Make sure this file is never loaded into XEmacs. * org-agenda.el (org-highlight, org-unhighlight): Use direct @@ -15497,9 +15522,6 @@ * org-exp.el (org-export): Use "1" as a sign to export only the subtree. - * org-colview-xemacs.el (org-columns-edit-value): - Use org-unrestricted property. - * org-colview.el (org-columns-edit-value): Use org-unrestricted property. @@ -15898,13 +15920,6 @@ (org-agenda-colview-summarize): Handle extended summary types properly. - * org-colview-xemacs.el (org-columns-display-here): Don't try to - calculate values if the underlying property is not set. - (org-columns-string-to-number): Convert age strings back into - fractional days. - (org-agenda-colview-summarize): Handle extended summary types - properly. - 2009-11-13 Carsten Dominik <carsten.dominik@gmail.com> * org-exp.el (org-export-format-drawer-function): New variable. @@ -16083,10 +16098,6 @@ org-return-follows-link' is set and there is nothing else to do in this line. -2009-11-13 James TD Smith <ahktenzero@mohorovi.cc> - - * org-colview-xemacs.el: Add in changes from org-colview.el. - 2009-11-13 Dan Davison <davison@stats.ox.ac.uk> * org-exp-blocks.el: Modify split separator regexp to avoid empty @@ -17212,9 +17223,6 @@ * org-colview.el (org-columns, org-columns-redo) (org-agenda-columns): Don't use `goto-line'. - * org-colview-xemacs.el (org-columns, org-agenda-columns): - Don't use `goto-line'. - * org-agenda.el (org-agenda-mode): Force visual line motion off. (org-agenda-add-entry-text-maxlines): Improve docstring. (org-agenda-start-with-entry-text-mode): New option. @@ -17319,10 +17327,6 @@ * org-colview.el (org-columns-edit-value, org-columns-new) (org-insert-columns-dblock): Use org-icompleting-read. - * org-colview-xemacs.el (org-columns-edit-value) - (org-columns-new, org-insert-columns-dblock): - Use org-icompleting-read. - * org-attach.el (org-attach-delete-one, org-attach-open): Use org-icompleting-read. @@ -18017,10 +18021,6 @@ in column values. (org-columns-capture-view): Exclude comment and archived trees. - * org-colview-xemacs.el (org-columns-capture-view): - Protect vertical bars in column values. - (org-columns-capture-view): Exclude comment and archived trees. - * org.el (org-quote-vert): New function. * org-latex.el (org-export-latex-verbatim-wrap): New option. @@ -18209,9 +18209,6 @@ * org-colview.el (org-dblock-write:columnview): Allow indented #+TBLFM line. - * org-colview-xemacs.el (org-dblock-write:columnview): - Allow indented #+TBLFM line. - * org-clock.el (org-dblock-write:clocktable): Allow indented #+TBLFM line. @@ -18288,9 +18285,6 @@ * org.el (org-enable-priority-commands): New option. - * org-colview-xemacs.el (org-columns-compute) - (org-columns-number-to-string): Fix problems with empty fields. - * org-colview.el (org-columns-compute) (org-columns-number-to-string): Fix problems with empty fields. @@ -18493,9 +18487,6 @@ (org-export-region-as-latex): Use the property list. (org-export-as-latex): ???? - * org-colview-xemacs.el (org-columns-remove-overlays) - (org-columns): Fix call to `local-variable-p'. - 2009-08-06 Carsten Dominik <carsten.dominik@gmail.com> * org-latex.el (org-export-latex-after-blockquotes-hook): New hook. @@ -18931,12 +18922,6 @@ (org-columns-remove-overlays): Restore the value of `truncate-lines'. (org-columns): Remember the value of `truncate-lines'. - * org-colview-xemacs.el (org-colview-initial-truncate-line-value): - New variable. - (org-columns-remove-overlays): Restore the value of - `truncate-lines'. - (org-columns): Remember the value of `truncate-lines'. - * org.el (org-columns-skip-arrchived-trees): New option. * org-agenda.el (org-agenda-export-html-style): Define color for @@ -19678,10 +19663,6 @@ Better error catching when a date/time property does not have allowed values defined. - * org-colview-xemacs.el (org-colview-construct-allowed-dates): - Better error catching when a date/time property does not have - allowed values defined. - 2009-01-25 Carsten Dominik <carsten.dominik@gmail.com> * org.el (org-map-entries): Restore point and restriction after @@ -20429,10 +20410,6 @@ * org-colview.el (org-columns-edit-value, org-columns-new) (org-insert-columns-dblock): Use `org-ido-completing-read'. - * org-colview-xemacs.el (org-columns-edit-value) - (org-columns-new, org-insert-columns-dblock): - Use `org-ido-completing-read'. - * org-attach.el (org-attach-delete-one, org-attach-open): Use `org-ido-completing-read'. @@ -21011,9 +20988,6 @@ * org-colview.el (org-columns-get-format-and-top-level): Remove resetting the marker. - * org-colview-xemacs.el (org-columns-get-format-and-top-level): - Remove resetting the marker. - * org.el (org-entry-property-inherited-from): Improve docstring. (org-entry-get-with-inheritance): Reset marker before starting the search. @@ -21188,11 +21162,6 @@ (org-columns-next-allowed-value): Use `org-colview-construct-allowed-dates'. - * org-colview-xemacs.el (org-colview-construct-allowed-dates): - New function. - (org-columns-next-allowed-value): - Use `org-colview-construct-allowed-dates'. - * org.el (org-protect-slash): New function. (org-get-refile-targets): Use `org-protect-slash'. @@ -21322,9 +21291,6 @@ * org-colview.el (org-columns-display-here): Use `org-columns-modify-value-for-display-function'. - * org-colview-xemacs.el (org-columns-display-here): - Use `org-columns-modify-value-for-display-function'. - * org.el (org-columns-modify-value-for-display-function): New option. * org-publish.el (org-publish-file): Make sure the directory match @@ -21515,8 +21481,6 @@ * org-colview.el (org-columns-next-allowed-value): Bug fix. - * org-colview-xemacs.el (org-columns-next-allowed-value): Bug fix. - * org-agenda.el (org-agenda-get-closed): Get the end time into the agenda prefix as well. @@ -21637,9 +21601,6 @@ * org-colview.el (org-columns-next-allowed-value): Handle next argument NTH to directly select a value. - * org-colview-xemacs.el (org-columns-next-allowed-value): Handle next - argument NTH to directly select a value. - 2008-06-17 Carsten Dominik <dominik@science.uva.nl> * org-agenda.el (org-agenda-scheduled-leaders): Fix docstring. @@ -21783,9 +21744,6 @@ * org-clock.el (org-clock-display, org-clock-out) (org-update-mode-line): Use `org-time-clocksum-format'. - * org-colview-xemacs.el (org-columns-number-to-string): - Use `org-time-clocksum-format'. - * org-colview.el (org-columns-number-to-string): Use `org-time-clocksum-format'. diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el index 0dc744aaa73..348248f35cf 100644 --- a/lisp/org/ob-python.el +++ b/lisp/org/ob-python.el @@ -64,7 +64,7 @@ This function is called by `org-babel-execute-src-block'." (preamble (cdr (assoc :preamble params))) (full-body (org-babel-expand-body:generic - (concat body (if return-val (format "return %s" return-val) "")) + (concat body (if return-val (format "\nreturn %s" return-val) "")) params (org-babel-variable-assignments:python params))) (result (org-babel-python-evaluate session full-body result-type result-params preamble))) diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 3bb0fc84897..ddb56ca4bac 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -8294,7 +8294,7 @@ This is a command that has to be installed in `calendar-mode-map'." (defun org-agenda-bulk-mark (&optional arg) "Mark the entry at point for future bulk action." (interactive "p") - (dotimes (i (max arg 1)) + (dotimes (i (or arg 1)) (unless (org-get-at-bol 'org-agenda-diary-link) (let* ((m (org-get-at-bol 'org-hd-marker)) ov) diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index 434f6a1d5f6..aabcfc187db 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el @@ -664,7 +664,7 @@ Use alsa's aplay tool if available." (error (beep t) (beep t))))))))) (defun org-program-exists (program-name) - "Checks whenever we can locate program and launch it." + "Checks whenever we can locate PROGRAM-NAME using the `which' executable." (if (member system-type '(gnu/linux darwin)) (= 0 (call-process "which" nil nil nil program-name)))) diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index 481d662eca1..58f879dd51a 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -285,6 +285,16 @@ column view defines special faces for each outline level. See the file "Face for date/time stamps." :group 'org-faces) +(defface org-date-selected + (org-compatible-face nil + '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold nil)) + (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :bold nil)) + (((class color) (min-colors 8) (background light)) (:foreground "red" :bold nil)) + (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold nil)) + (t (:inverse-video t)))) + "Face for highlighting the calendar day when using `org-read-date'." + :group 'org-faces) + (defface org-sexp-date '((((class color) (background light)) (:foreground "Purple")) (((class color) (background dark)) (:foreground "Cyan")) diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el index 9319e0813c0..a9ba8d7510b 100644 --- a/lisp/org/org-footnote.el +++ b/lisp/org/org-footnote.el @@ -716,8 +716,8 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': ((and org-footnote-section (eq major-mode 'org-mode)) (goto-char (point-min)) (if (re-search-forward - (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) - "[ \t]*$") nil t) + (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) + "[ \t]*$") nil t) (delete-region (match-beginning 0) (org-end-of-subtree t t))) ;; A new footnote section is inserted by default at the end of ;; the buffer. @@ -727,7 +727,14 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': (unless (bolp) (newline))) ;; No footnote section set: Footnotes will be added at the end ;; of the section containing their first reference. - ((eq major-mode 'org-mode)) + ;; Nevertheless, in an export situation, set insertion point to + ;; `point-max' by default. + ((eq major-mode 'org-mode) + (when export-props + (goto-char (point-max)) + (skip-chars-backward " \r\t\n") + (forward-line) + (delete-region (point) (point-max)))) (t ;; Remove any left-over tag in the buffer, if one is set up. (when org-footnote-tag-for-non-org-mode-files diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el index c3775888325..4498280ac77 100644 --- a/lisp/org/org-list.el +++ b/lisp/org/org-list.el @@ -1484,8 +1484,19 @@ bullets between START and END." (change-bullet-maybe (function (lambda (item) - (let* ((bul (org-trim (org-list-get-bullet item struct))) - (new-bul-p (cdr (assoc bul org-list-demote-modify-bullet)))) + (let ((new-bul-p + (cdr (assoc + ;; Normalize ordered bullets. + (let ((bul (org-trim + (org-list-get-bullet item struct)))) + (cond ((string-match "[A-Z]\\." bul) "A.") + ((string-match "[A-Z])" bul) "A)") + ((string-match "[a-z]\\." bul) "a.") + ((string-match "[a-z])" bul) "a)") + ((string-match "[0-9]\\." bul) "1.") + ((string-match "[0-9])" bul) "1)") + (t bul))) + org-list-demote-modify-bullet)))) (when new-bul-p (org-list-set-bullet item struct new-bul-p)))))) (ind (lambda (cell) @@ -2500,7 +2511,6 @@ STRUCT is the list structure. Return t if successful." (save-excursion - (beginning-of-line) (let* ((regionp (org-region-active-p)) (rbeg (and regionp (region-beginning))) (rend (and regionp (region-end))) @@ -2509,7 +2519,8 @@ Return t if successful." (prevs (org-list-prevs-alist struct)) ;; Are we going to move the whole list? (specialp - (and (= top (point)) + (and (not regionp) + (= top (point-at-bol)) (cdr (assq 'indent org-list-automatic-rules)) (if no-subtree (error @@ -2523,12 +2534,12 @@ Return t if successful." (progn (set-marker org-last-indent-begin-marker rbeg) (set-marker org-last-indent-end-marker rend)) - (set-marker org-last-indent-begin-marker (point)) + (set-marker org-last-indent-begin-marker (point-at-bol)) (set-marker org-last-indent-end-marker (cond (specialp (org-list-get-bottom-point struct)) - (no-subtree (1+ (point))) - (t (org-list-get-item-end (point) struct)))))) + (no-subtree (1+ (point-at-bol))) + (t (org-list-get-item-end (point-at-bol) struct)))))) (let* ((beg (marker-position org-last-indent-begin-marker)) (end (marker-position org-last-indent-end-marker))) (cond @@ -2583,19 +2594,35 @@ Return t if successful." "Outdent a local list item, but not its children. If a region is active, all items inside will be moved." (interactive) - (if (org-at-item-p) - (let ((struct (org-list-struct))) - (org-list-indent-item-generic -1 t struct)) - (error "Not at an item"))) + (let ((regionp (org-region-active-p))) + (cond + ((or (org-at-item-p) + (and regionp + (save-excursion (goto-char (region-beginning)) + (org-at-item-p)))) + (let ((struct (if (not regionp) (org-list-struct) + (save-excursion (goto-char (region-beginning)) + (org-list-struct))))) + (org-list-indent-item-generic -1 t struct))) + (regionp (error "Region not starting at an item")) + (t (error "Not at an item"))))) (defun org-indent-item () "Indent a local list item, but not its children. If a region is active, all items inside will be moved." (interactive) - (if (org-at-item-p) - (let ((struct (org-list-struct))) - (org-list-indent-item-generic 1 t struct)) - (error "Not at an item"))) + (let ((regionp (org-region-active-p))) + (cond + ((or (org-at-item-p) + (and regionp + (save-excursion (goto-char (region-beginning)) + (org-at-item-p)))) + (let ((struct (if (not regionp) (org-list-struct) + (save-excursion (goto-char (region-beginning)) + (org-list-struct))))) + (org-list-indent-item-generic 1 t struct))) + (regionp (error "Region not starting at an item")) + (t (error "Not at an item"))))) (defun org-outdent-item-tree () "Outdent a local list item including its children. @@ -2604,10 +2631,12 @@ If a region is active, all items inside will be moved." (let ((regionp (org-region-active-p))) (cond ((or (org-at-item-p) - (and (org-region-active-p) - (goto-char (region-beginning)) - (org-at-item-p))) - (let ((struct (org-list-struct))) + (and regionp + (save-excursion (goto-char (region-beginning)) + (org-at-item-p)))) + (let ((struct (if (not regionp) (org-list-struct) + (save-excursion (goto-char (region-beginning)) + (org-list-struct))))) (org-list-indent-item-generic -1 nil struct))) (regionp (error "Region not starting at an item")) (t (error "Not at an item"))))) @@ -2619,10 +2648,12 @@ If a region is active, all items inside will be moved." (let ((regionp (org-region-active-p))) (cond ((or (org-at-item-p) - (and (org-region-active-p) - (goto-char (region-beginning)) - (org-at-item-p))) - (let ((struct (org-list-struct))) + (and regionp + (save-excursion (goto-char (region-beginning)) + (org-at-item-p)))) + (let ((struct (if (not regionp) (org-list-struct) + (save-excursion (goto-char (region-beginning)) + (org-list-struct))))) (org-list-indent-item-generic 1 nil struct))) (regionp (error "Region not starting at an item")) (t (error "Not at an item"))))) diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el index 5a87bd64697..b467064b888 100644 --- a/lisp/org/org-mouse.el +++ b/lisp/org/org-mouse.el @@ -915,6 +915,7 @@ This means, between the beginning of line and the point." ((assq :checkbox context) (org-toggle-checkbox)) ((assq :item-bullet context) (let ((org-cycle-include-plain-lists t)) (org-cycle))) + ((org-footnote-at-reference-p) nil) (t ad-do-it)))))) (defun org-mouse-move-tree-start (event) diff --git a/lisp/org/org-odt.el b/lisp/org/org-odt.el index 234272a378d..2e984a575bd 100644 --- a/lisp/org/org-odt.el +++ b/lisp/org/org-odt.el @@ -1689,7 +1689,6 @@ ATTR is a string of other attributes of the a element." (or (not thefile) (string= thefile "")) (plist-get org-lparse-opt-plist :section-numbers) (setq sec-frag fragment) - (org-find-text-property-in-string 'org-no-description fragment) (or (string-match "\\`sec\\(\\(-[0-9]+\\)+\\)" sec-frag) (and (setq sec-frag (loop for alias in org-export-target-aliases do diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 08981b57e49..37e5c4f91a6 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -135,8 +135,8 @@ Other options offered by the customize interface are more restrictive." (defcustom org-table-number-fraction 0.5 "Fraction of numbers in a column required to make the column align right. -In a column all non-white fields are considered. If at least this -fraction of fields is matched by `org-table-number-fraction', +In a column all non-white fields are considered. If at least +this fraction of fields is matched by `org-table-number-regexp', alignment to the right border applies." :group 'org-table-settings :type 'number) diff --git a/lisp/org/org.el b/lisp/org/org.el index c2cc2354439..838a9a18ad4 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -5057,8 +5057,7 @@ The following commands are available: 'org-parse-arguments) (set (make-local-variable 'pcomplete-termination-string) "") (when (>= emacs-major-version 23) - (set (make-local-variable 'buffer-face-mode-face) 'org-default) - (buffer-face-mode)) + (set (make-local-variable 'buffer-face-mode-face) 'org-default)) ;; If empty file that did not turn on org-mode automatically, make it to. (if (and org-insert-mode-line-in-empty-file @@ -14915,7 +14914,7 @@ So these are more for recording a certain time/date." (org-time-stamp arg 'inactive)) (defvar org-date-ovl (make-overlay 1 1)) -(overlay-put org-date-ovl 'face 'org-warning) +(overlay-put org-date-ovl 'face 'org-date-selected) (org-detach-overlay org-date-ovl) (defvar org-ans1) ; dynamically scoped parameter @@ -15131,35 +15130,35 @@ user." (when org-read-date-display-live (when org-read-date-overlay (delete-overlay org-read-date-overlay)) - (let ((p (point))) - (end-of-line 1) - (while (not (equal (buffer-substring - (max (point-min) (- (point) 4)) (point)) - " ")) - (insert " ")) - (goto-char p)) - (let* ((ans (concat (buffer-substring (point-at-bol) (point-max)) - " " (or org-ans1 org-ans2))) - (org-end-time-was-given nil) - (f (org-read-date-analyze ans org-def org-defdecode)) - (fmts (if org-dcst - org-time-stamp-custom-formats - org-time-stamp-formats)) - (fmt (if (or org-with-time - (and (boundp 'org-time-was-given) org-time-was-given)) - (cdr fmts) - (car fmts))) - (txt (concat "=> " (format-time-string fmt (apply 'encode-time f))))) - (when (and org-end-time-was-given - (string-match org-plain-time-of-day-regexp txt)) - (setq txt (concat (substring txt 0 (match-end 0)) "-" - org-end-time-was-given - (substring txt (match-end 0))))) - (when org-read-date-analyze-futurep - (setq txt (concat txt " (=>F)"))) - (setq org-read-date-overlay - (make-overlay (1- (point-at-eol)) (point-at-eol))) - (org-overlay-display org-read-date-overlay txt 'secondary-selection)))) + (when (minibufferp (current-buffer)) + (save-excursion + (end-of-line 1) + (while (not (equal (buffer-substring + (max (point-min) (- (point) 4)) (point)) + " ")) + (insert " "))) + (let* ((ans (concat (buffer-substring (point-at-bol) (point-max)) + " " (or org-ans1 org-ans2))) + (org-end-time-was-given nil) + (f (org-read-date-analyze ans org-def org-defdecode)) + (fmts (if org-dcst + org-time-stamp-custom-formats + org-time-stamp-formats)) + (fmt (if (or org-with-time + (and (boundp 'org-time-was-given) org-time-was-given)) + (cdr fmts) + (car fmts))) + (txt (concat "=> " (format-time-string fmt (apply 'encode-time f))))) + (when (and org-end-time-was-given + (string-match org-plain-time-of-day-regexp txt)) + (setq txt (concat (substring txt 0 (match-end 0)) "-" + org-end-time-was-given + (substring txt (match-end 0))))) + (when org-read-date-analyze-futurep + (setq txt (concat txt " (=>F)"))) + (setq org-read-date-overlay + (make-overlay (1- (point-at-eol)) (point-at-eol))) + (org-overlay-display org-read-date-overlay txt 'secondary-selection))))) (defun org-read-date-analyze (ans org-def org-defdecode) "Analyze the combined answer of the date prompt." @@ -17969,28 +17968,34 @@ See the individual commands for more information." (defun org-shiftmetaleft () "Promote subtree or delete table column. -Calls `org-promote-subtree', `org-outdent-item', -or `org-table-delete-column', depending on context. -See the individual commands for more information." +Calls `org-promote-subtree', `org-outdent-item-tree', or +`org-table-delete-column', depending on context. See the +individual commands for more information." (interactive) (cond ((run-hook-with-args-until-success 'org-shiftmetaleft-hook)) ((org-at-table-p) (call-interactively 'org-table-delete-column)) ((org-at-heading-p) (call-interactively 'org-promote-subtree)) - ((org-at-item-p) (call-interactively 'org-outdent-item-tree)) + ((if (not (org-region-active-p)) (org-at-item-p) + (save-excursion (goto-char (region-beginning)) + (org-at-item-p))) + (call-interactively 'org-outdent-item-tree)) (t (org-modifier-cursor-error)))) (defun org-shiftmetaright () "Demote subtree or insert table column. -Calls `org-demote-subtree', `org-indent-item', -or `org-table-insert-column', depending on context. -See the individual commands for more information." +Calls `org-demote-subtree', `org-indent-item-tree', or +`org-table-insert-column', depending on context. See the +individual commands for more information." (interactive) (cond ((run-hook-with-args-until-success 'org-shiftmetaright-hook)) ((org-at-table-p) (call-interactively 'org-table-insert-column)) ((org-at-heading-p) (call-interactively 'org-demote-subtree)) - ((org-at-item-p) (call-interactively 'org-indent-item-tree)) + ((if (not (org-region-active-p)) (org-at-item-p) + (save-excursion (goto-char (region-beginning)) + (org-at-item-p))) + (call-interactively 'org-indent-item-tree)) (t (org-modifier-cursor-error)))) (defun org-shiftmetaup (&optional arg) diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 9f9551cc5d8..0cc5de90573 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -603,6 +603,8 @@ NOARG must be t when this macro is used outside `gud-def'" (set (make-local-variable 'gud-marker-filter) #'gud-gdb-marker-filter)) (funcall filter proc string)))) +(defvar gdb-control-level 0) + ;;;###autoload (defun gdb (command-line) "Run gdb on program FILE in buffer *gud-FILE*. @@ -677,6 +679,7 @@ detailed description of this mode. (set-process-filter proc #'gdb--check-interpreter)) (set (make-local-variable 'gud-minor-mode) 'gdbmi) + (set (make-local-variable 'gdb-control-level) 0) (setq comint-input-sender 'gdb-send) (when (ring-empty-p comint-input-ring) ; cf shell-mode (let ((hfile (expand-file-name (or (getenv "GDBHISTFILE") @@ -1705,6 +1708,16 @@ static char *magick[] = { :group 'gdb) +(defvar gdb-control-commands-regexp + (concat + "^\\(" + "commands\\|if\\|while\\|define\\|document\\|python\\|" + "while-stepping\\|stepping\\|ws\\|actions" + "\\)\\([[:blank:]]+.*\\)?$") + "Regexp matching GDB commands that enter a recursive reading loop. +As long as GDB is in the recursive reading loop, it does not expect +commands to be prefixed by \"-interpreter-exec console\".") + (defun gdb-send (proc string) "A comint send filter for gdb." (with-current-buffer gud-comint-buffer @@ -1714,11 +1727,15 @@ static char *magick[] = { (if (not (string= "" string)) (setq gdb-last-command string) (if gdb-last-command (setq string gdb-last-command))) - (if (string-match "^-" string) - ;; MI command + (if (or (string-match "^-" string) + (> gdb-control-level 0)) + ;; Either MI command or we are feeding GDB's recursive reading loop. (progn (setq gdb-first-done-or-error t) - (process-send-string proc (concat string "\n"))) + (process-send-string proc (concat string "\n")) + (if (and (string-match "^end$" string) + (> gdb-control-level 0)) + (setq gdb-control-level (1- gdb-control-level)))) ;; CLI command (if (string-match "\\\\$" string) (setq gdb-continuation (concat gdb-continuation string "\n")) @@ -1729,7 +1746,12 @@ static char *magick[] = { (if gdb-enable-debug (push (cons 'mi-send to-send) gdb-debug-log)) (process-send-string proc to-send)) - (setq gdb-continuation nil)))) + (if (and (string-match "^end$" string) + (> gdb-control-level 0)) + (setq gdb-control-level (1- gdb-control-level))) + (setq gdb-continuation nil))) + (if (string-match gdb-control-commands-regexp string) + (setq gdb-control-level (1+ gdb-control-level)))) (defun gdb-mi-quote (string) "Return STRING quoted properly as an MI argument. diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index cdaeadde906..d57a3128a16 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el @@ -179,7 +179,9 @@ and you want to simplify them for the mode line (defvar which-func-table (make-hash-table :test 'eq :weakness 'key)) (defconst which-func-current - '(:eval (gethash (selected-window) which-func-table which-func-unknown))) + '(:eval (replace-regexp-in-string + "%" "%%" + (gethash (selected-window) which-func-table which-func-unknown)))) ;;;###autoload (put 'which-func-current 'risky-local-variable t) (defvar which-func-mode nil diff --git a/lisp/select.el b/lisp/select.el index 0260eba4682..3948fcc5456 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -213,30 +213,25 @@ two markers or an overlay. Otherwise, it is nil." (defun xselect--int-to-cons (n) (cons (ash n -16) (logand n 65535))) -(defun xselect-convert-to-string (_selection type value) - (let (str coding) - ;; Get the actual string from VALUE. - (cond ((stringp value) - (setq str value)) - ((setq value (xselect--selection-bounds value)) - (with-current-buffer (nth 2 value) - (setq str (buffer-substring (nth 0 value) - (nth 1 value)))))) - (when str - ;; If TYPE is nil, this is a local request, thus return STR as - ;; is. Otherwise, encode STR. - (if (not type) - str - (setq coding (or next-selection-coding-system selection-coding-system)) +(defun xselect--encode-string (type str &optional can-modify) + (when str + ;; If TYPE is nil, this is a local request; return STR as-is. + (if (null type) + str + ;; Otherwise, encode STR. + (let ((coding (or next-selection-coding-system + selection-coding-system))) (if coding (setq coding (coding-system-base coding))) (let ((inhibit-read-only t)) ;; Suppress producing escape sequences for compositions. + ;; 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) - ;; TEXT is a polymorphic target. We must select the - ;; actual type from `UTF8_STRING', `COMPOUND_TEXT', - ;; `STRING', and `C_STRING'. (if (not (multibyte-string-p str)) (setq type 'C_STRING) (let (non-latin-1 non-unicode eight-bit) @@ -279,6 +274,14 @@ two markers or an overlay. Otherwise, it is nil." (setq next-selection-coding-system nil) (cons type str)))) +(defun xselect-convert-to-string (_selection type value) + (let ((str (cond ((stringp value) value) + ((setq value (xselect--selection-bounds value)) + (with-current-buffer (nth 2 value) + (buffer-substring (nth 0 value) + (nth 1 value))))))) + (xselect--encode-string type str t))) + (defun xselect-convert-to-length (_selection _type value) (let ((len (cond ((stringp value) (length value)) @@ -311,7 +314,7 @@ two markers or an overlay. Otherwise, it is nil." (defun xselect-convert-to-filename (_selection _type value) (when (setq value (xselect--selection-bounds value)) - (buffer-file-name (nth 2 value)))) + (xselect--encode-string 'TEXT (buffer-file-name (nth 2 value))))) (defun xselect-convert-to-charpos (_selection _type value) (when (setq value (xselect--selection-bounds value)) @@ -337,13 +340,13 @@ two markers or an overlay. Otherwise, it is nil." (xselect--int-to-cons (max beg end)))))))) (defun xselect-convert-to-os (_selection _type _size) - (symbol-name system-type)) + (xselect--encode-string 'TEXT (symbol-name system-type))) (defun xselect-convert-to-host (_selection _type _size) - (system-name)) + (xselect--encode-string 'TEXT (system-name))) (defun xselect-convert-to-user (_selection _type _size) - (user-full-name)) + (xselect--encode-string 'TEXT (user-full-name))) (defun xselect-convert-to-class (_selection _type _size) "Convert selection to class. diff --git a/lisp/simple.el b/lisp/simple.el index 67f6e4eedf7..55f7d1261ee 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -817,7 +817,7 @@ instead of deleted." :type '(choice (const :tag "Delete active region" t) (const :tag "Kill active region" kill) (const :tag "Do ordinary deletion" nil)) - :group 'editing + :group 'killing :version "24.1") (defun delete-backward-char (n &optional killflag) diff --git a/lisp/startup.el b/lisp/startup.el index 4a8af55af2f..d6e73023699 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -41,7 +41,7 @@ (defcustom initial-buffer-choice nil "Buffer to show after starting Emacs. If the value is nil and `inhibit-startup-screen' is nil, show the -startup screen. If the value is string, visit the specified file +startup screen. If the value is a string, visit the specified file or directory using `find-file'. If t, open the `*scratch*' buffer." :type '(choice diff --git a/lisp/subr.el b/lisp/subr.el index 2404f6a56d2..b548f82ca5a 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2023,7 +2023,10 @@ some sort of escape sequence, the ambiguity is resolved via `read-key-delay'." (let ((map (make-sparse-keymap))) ;; Don't hide the menu-bar and tool-bar entries. (define-key map [menu-bar] (lookup-key global-map [menu-bar])) - (define-key map [tool-bar] (lookup-key global-map [tool-bar])) + (define-key map [tool-bar] + ;; This hack avoids evaluating the :filter (Bug#9922). + (or (cdr (assq 'tool-bar global-map)) + (lookup-key global-map [tool-bar]))) map)) (aref (catch 'read-key (read-key-sequence-vector prompt nil t)) 0)) (cancel-timer timer) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index c185c4e8fab..ebaec2494ac 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -220,7 +220,7 @@ matching the resulting Git log output, and KEYWORDS is a list of (let ((diff (vc-git--run-command-string file "diff-index" "-p" "--raw" "-z" "HEAD" "--"))) (if (and diff - (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.\\)?" + (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.*\n.\\)?" diff)) (let ((diff-letter (match-string 1 diff))) (if (not (match-beginning 2)) diff --git a/lisp/window.el b/lisp/window.el index b8f1bf3456d..d57bd4e2300 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -1482,12 +1482,24 @@ edge of WINDOW consider using `adjust-window-trailing-edge' instead." (setq window (window-normalize-window window)) (let* ((frame (window-frame window)) + (minibuffer-window (minibuffer-window frame)) sibling) (cond ((eq window (frame-root-window frame)) (error "Cannot resize the root window of a frame")) ((window-minibuffer-p window) - (window--resize-mini-window window delta)) + (if horizontal + (error "Cannot resize minibuffer window horizontally") + (window--resize-mini-window window delta))) + ((and (not horizontal) + (window-full-height-p window) + (eq (window-frame minibuffer-window) frame) + (or (not resize-mini-windows) + (eq minibuffer-window (active-minibuffer-window)))) + ;; If WINDOW is full height and either `resize-mini-windows' is + ;; nil or the minibuffer window is active, resize the minibuffer + ;; window. + (window--resize-mini-window minibuffer-window (- delta))) ((window--resizable-p window delta horizontal ignore) (window--resize-reset frame horizontal) (window--resize-this-window window delta horizontal ignore t) @@ -2002,17 +2014,25 @@ right. If DELTA is less than zero, move the edge upwards or to the left. If the edge can't be moved by DELTA lines or columns, move it as far as possible in the desired direction." (setq window (window-normalize-window window)) - (let ((frame (window-frame window)) - (right window) - left this-delta min-delta max-delta) + (let* ((frame (window-frame window)) + (minibuffer-window (minibuffer-window frame)) + (right window) + left this-delta min-delta max-delta) ;; Find the edge we want to move. (while (and (or (not (window-combined-p right horizontal)) (not (window-right right))) (setq right (window-parent right)))) (cond - ((and (not right) (not horizontal) (not resize-mini-windows) - (eq (window-frame (minibuffer-window frame)) frame)) - (window--resize-mini-window (minibuffer-window frame) (- delta))) + ((and (not right) (not horizontal) + ;; Resize the minibuffer window if it's on the same frame as + ;; and immediately below WINDOW and it's either active or + ;; `resize-mini-windows' is nil. + (eq (window-frame minibuffer-window) frame) + (= (nth 1 (window-edges minibuffer-window)) + (nth 3 (window-edges window))) + (or (not resize-mini-windows) + (eq minibuffer-window (active-minibuffer-window)))) + (window--resize-mini-window minibuffer-window (- delta))) ((or (not (setq left right)) (not (setq right (window-right right)))) (if horizontal (error "No window on the right of this one") @@ -2109,18 +2129,30 @@ make selected window wider by DELTA columns. If DELTA is negative, shrink selected window by -DELTA lines or columns. Return nil." (interactive "p") - (cond - ((zerop delta)) - ((window-size-fixed-p nil horizontal) - (error "Selected window has fixed size")) - ((window--resizable-p nil delta horizontal) - (window-resize nil delta horizontal)) - (t - (window-resize - nil (if (> delta 0) - (window-max-delta nil horizontal) - (- (window-min-delta nil horizontal))) - horizontal)))) + (let ((minibuffer-window (minibuffer-window))) + (cond + ((zerop delta)) + ((window-size-fixed-p nil horizontal) + (error "Selected window has fixed size")) + ((window-minibuffer-p) + (if horizontal + (error "Cannot resize minibuffer window horizontally") + (window--resize-mini-window (selected-window) delta))) + ((and (not horizontal) + (window-full-height-p) + (eq (window-frame minibuffer-window) (selected-frame)) + (not resize-mini-windows)) + ;; If the selected window is full height and `resize-mini-windows' + ;; is nil, resize the minibuffer window. + (window--resize-mini-window minibuffer-window (- delta))) + ((window--resizable-p nil delta horizontal) + (window-resize nil delta horizontal)) + (t + (window-resize + nil (if (> delta 0) + (window-max-delta nil horizontal) + (- (window-min-delta nil horizontal))) + horizontal))))) (defun shrink-window (delta &optional horizontal) "Make the selected window DELTA lines smaller. @@ -2131,18 +2163,30 @@ negative, enlarge selected window by -DELTA lines or columns. Also see the `window-min-height' variable. Return nil." (interactive "p") - (cond - ((zerop delta)) - ((window-size-fixed-p nil horizontal) - (error "Selected window has fixed size")) - ((window--resizable-p nil (- delta) horizontal) - (window-resize nil (- delta) horizontal)) - (t - (window-resize - nil (if (> delta 0) - (- (window-min-delta nil horizontal)) - (window-max-delta nil horizontal)) - horizontal)))) + (let ((minibuffer-window (minibuffer-window))) + (cond + ((zerop delta)) + ((window-size-fixed-p nil horizontal) + (error "Selected window has fixed size")) + ((window-minibuffer-p) + (if horizontal + (error "Cannot resize minibuffer window horizontally") + (window--resize-mini-window (selected-window) (- delta)))) + ((and (not horizontal) + (window-full-height-p) + (eq (window-frame minibuffer-window) (selected-frame)) + (not resize-mini-windows)) + ;; If the selected window is full height and `resize-mini-windows' + ;; is nil, resize the minibuffer window. + (window--resize-mini-window minibuffer-window delta)) + ((window--resizable-p nil (- delta) horizontal) + (window-resize nil (- delta) horizontal)) + (t + (window-resize + nil (if (> delta 0) + (- (window-min-delta nil horizontal)) + (window-max-delta nil horizontal)) + horizontal))))) (defun maximize-window (&optional window) "Maximize WINDOW. diff --git a/lisp/xml.el b/lisp/xml.el index 39a8da0f337..cb56f023af0 100644 --- a/lisp/xml.el +++ b/lisp/xml.el @@ -323,7 +323,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded." (cond ((null result) ;; Not looking at an xml start tag. - (forward-char 1)) + (unless (eobp) + (forward-char 1))) ((and xml (not xml-sub-parser)) ;; Translation of rule [1] of XML specifications (error "XML: (Not Well-Formed) Only one root tag allowed")) @@ -422,7 +423,8 @@ Returns one of: ((looking-at "<!--") (search-forward "-->") (skip-syntax-forward " ") - (xml-parse-tag parse-dtd xml-ns)) + (unless (eobp) + (xml-parse-tag parse-dtd xml-ns))) ;; end tag ((looking-at "</") '()) diff --git a/src/ChangeLog b/src/ChangeLog index df0e6135498..55caf3c607c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,30 @@ +2012-04-27 Chong Yidong <cyd@gnu.org> + + * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315). + +2012-04-27 Eli Zaretskii <eliz@gnu.org> + + * xdisp.c (pos_visible_p): If the window start position is beyond + ZV, start the display from buffer beginning. Prevents assertion + violation in init_iterator when the minibuffer window is scrolled + via the scroll bar. + + * window.c (window_scroll_pixel_based): Likewise. + +2012-04-27 Chong Yidong <cyd@gnu.org> + + * keymap.c (where_is_internal): Doc fix (Bug#10872). + +2012-04-27 Glenn Morris <rgm@gnu.org> + + * fileio.c (Fcopy_file, Fset_file_selinux_context): + Ignore ENOTSUP failures from setfilecon functions. (Bug#11245) + +2012-04-27 Eli Zaretskii <eliz@gnu.org> + + * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't + overrun array limits of glyph row's used[] array. (Bug#11288) + 2012-04-26 Eli Zaretskii <eliz@gnu.org> * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded diff --git a/src/dispnew.c b/src/dispnew.c index 02d6de53bbf..b313852efe2 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -1085,12 +1085,16 @@ swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) for (i = 0; i < LAST_AREA + 1; ++i) { struct glyph *temp = a->glyphs[i]; - short used_tem = a->used[i]; a->glyphs[i] = b->glyphs[i]; b->glyphs[i] = temp; - a->used[i] = b->used[i]; - b->used[i] = used_tem; + if (i < LAST_AREA) + { + short used_tem = a->used[i]; + + a->used[i] = b->used[i]; + b->used[i] = used_tem; + } } a->hash = b->hash; b->hash = hash_tem; @@ -1105,7 +1109,7 @@ static inline void copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) { struct glyph *pointers[1 + LAST_AREA]; - short used[1 + LAST_AREA]; + short used[LAST_AREA]; unsigned hashval; /* Save glyph pointers of TO. */ diff --git a/src/fileio.c b/src/fileio.c index 3a74672b9a6..69b2c9cb0f2 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1,6 +1,6 @@ /* File IO for GNU Emacs. -Copyright (C) 1985-1988, 1993-2012 Free Software Foundation, Inc. +Copyright (C) 1985-1988, 1993-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2044,9 +2044,10 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */) #if HAVE_LIBSELINUX if (conlength > 0) { - /* Set the modified context back to the file. */ + /* Set the modified context back to the file. */ fail = fsetfilecon (ofd, con); - if (fail) + /* See http://debbugs.gnu.org/11245 for ENOTSUP. */ + if (fail && errno != ENOTSUP) report_file_error ("Doing fsetfilecon", Fcons (newname, Qnil)); freecon (con); @@ -2917,10 +2918,11 @@ compiled with SELinux support. */) error ("Doing context_range_set"); } - /* Set the modified context back to the file. */ + /* Set the modified context back to the file. */ fail = lsetfilecon (SSDATA (encoded_absname), context_str (parsed_con)); - if (fail) + /* See http://debbugs.gnu.org/11245 for ENOTSUP. */ + if (fail && errno != ENOTSUP) report_file_error ("Doing lsetfilecon", Fcons (absname, Qnil)); context_free (parsed_con); diff --git a/src/keymap.c b/src/keymap.c index ecaeb32896e..9f82175edc0 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -2553,7 +2553,8 @@ where_is_internal (Lisp_Object definition, Lisp_Object keymaps, DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0, doc: /* Return list of keys that invoke DEFINITION. If KEYMAP is a keymap, search only KEYMAP and the global keymap. -If KEYMAP is nil, search all the currently active keymaps. +If KEYMAP is nil, search all the currently active keymaps, except + for `overriding-local-map' (which is ignored). If KEYMAP is a list of keymaps, search only those keymaps. If optional 3rd arg FIRSTONLY is non-nil, return the first key sequence found, @@ -2568,9 +2569,17 @@ If optional 4th arg NOINDIRECT is non-nil, don't follow indirections to other keymaps or slots. This makes it possible to search for an indirect definition itself. -If optional 5th arg NO-REMAP is non-nil, don't search for key sequences -that invoke a command which is remapped to DEFINITION, but include the -remapped command in the returned list. */) +The optional 5th arg NO-REMAP alters how command remapping is handled: + +- If another command OTHER-COMMAND is remapped to DEFINITION, normally + search for the bindings of OTHER-COMMAND and include them in the + returned list. But if NO-REMAP is non-nil, include the vector + [remap OTHER-COMMAND] in the returned list instead, without + searching for those other bindings. + +- If DEFINITION is remapped to OTHER-COMMAND, normally return the + bindings for OTHER-COMMAND. But if NO-REMAP is non-nil, return the + bindings for DEFINITION instead, ignoring its remapping. */) (Lisp_Object definition, Lisp_Object keymap, Lisp_Object firstonly, Lisp_Object noindirect, Lisp_Object no_remap) { /* The keymaps in which to search. */ diff --git a/src/window.c b/src/window.c index 1f27cba444b..048779d6830 100644 --- a/src/window.c +++ b/src/window.c @@ -4221,6 +4221,11 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror) void *itdata = NULL; SET_TEXT_POS_FROM_MARKER (start, w->start); + /* Scrolling a minibuffer window via scroll bar when the echo area + shows long text sometimes resets the minibuffer contents behind + our backs. */ + if (CHARPOS (start) > ZV) + SET_TEXT_POS (start, BEGV, BEGV_BYTE); /* If PT is not visible in WINDOW, move back one half of the screen. Allow PT to be partially visible, otherwise diff --git a/src/xdisp.c b/src/xdisp.c index f2700bd6d25..307331627f5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1275,6 +1275,11 @@ pos_visible_p (struct window *w, EMACS_INT charpos, int *x, int *y, } SET_TEXT_POS_FROM_MARKER (top, w->start); + /* Scrolling a minibuffer window via scroll bar when the echo area + shows long text sometimes resets the minibuffer contents behind + our backs. */ + if (CHARPOS (top) > ZV) + SET_TEXT_POS (top, BEGV, BEGV_BYTE); /* Compute exact mode line heights. */ if (WINDOW_WANTS_MODELINE_P (w)) diff --git a/src/xselect.c b/src/xselect.c index 173cf78bdaa..15ce8d487fa 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -931,6 +931,7 @@ x_convert_selection (struct input_event *event, Lisp_Object selection_symbol, /* Otherwise, record the converted selection to binary. */ cs = xmalloc (sizeof (struct selection_data)); + cs->data = NULL; cs->nofree = 1; cs->property = property; cs->wait_object = NULL; |