Now on revision 110684. ------------------------------------------------------------ revno: 110684 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-10-27 13:03:52 +0800 message: More Emacs 24.3 documentation updates. * doc/emacs/building.texi (Compilation): Document compilation-always-kill. * doc/emacs/files.texi (Misc File Ops): Symbolic links on Windows only work on Vista and later. * doc/emacs/frames.texi (Mouse Avoidance): Mention new variable mouse-avoidance-banish-position. * doc/emacs/mule.texi (Recognize Coding): Remove an unreferenced vindex. * doc/emacs/package.texi (Package Menu): Document the "new" status. * doc/emacs/programs.texi (Which Function): Which Function mode now works in all major modes by default. * doc/emacs/search.texi (Symbol Search): New node. * doc/emacs/windows.texi (Window Choice): Don't refer to the obsolete special-display feature. * commands.texi (Event Input Misc): Remove last-input-char. (Command Loop Info): Remove last-command-char. * display.texi (Fringe Bitmaps): Add exclamation-mark bitmap. * frames.texi (Initial Parameters): Don't mention the obsolete special-display feature. * hooks.texi (Standard Hooks): Remove obsolete hooks. * markers.texi (Information from Markers): Remove obsolete function buffer-has-markers-at. * minibuf.texi (High-Level Completion): Don't mention removed function iswitchb-read-buffer. * text.texi (Yanking): Document yank-handled-properties. * windows.texi (Choosing Window): Don't mention the obsolete special display feature. (Choosing Window Options): Remove obsolete special-display variables, and the functions special-display-p and special-display-popup-frame. * subr.el (insert-buffer-substring-as-yank): Doc fix. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-10-24 14:38:49 +0000 +++ doc/emacs/ChangeLog 2012-10-27 05:03:52 +0000 @@ -1,3 +1,25 @@ +2012-10-27 Chong Yidong + + * frames.texi (Mouse Avoidance): Mention new variable + mouse-avoidance-banish-position. + + * programs.texi (Which Function): Which Function mode now works in + all major modes by default. + + * mule.texi (Recognize Coding): Remove an unreferenced vindex. + + * files.texi (Misc File Ops): Symbolic links on Windows only work + on Vista and later. + + * building.texi (Compilation): Document compilation-always-kill. + + * search.texi (Symbol Search): New node. + + * package.texi (Package Menu): Document the "new" status. + + * windows.texi (Window Choice): Don't refer to the obsolete + special-display feature. + 2012-10-24 Chong Yidong * mule.texi (Text Coding): set-buffer-file-coding-system can now === modified file 'doc/emacs/building.texi' --- doc/emacs/building.texi 2012-09-30 09:18:38 +0000 +++ doc/emacs/building.texi 2012-10-27 05:03:52 +0000 @@ -108,11 +108,14 @@ was started. @findex kill-compilation +@vindex compilation-always-kill Starting a new compilation also kills any compilation already running in @file{*compilation*}, as the buffer can only handle one compilation at any time. However, @kbd{M-x compile} asks for -confirmation before actually killing a compilation that is running. -You can also kill the compilation process with @kbd{M-x +confirmation before actually killing a compilation that is running; to +always automatically kill the compilation without asking, change the +variable @code{compilation-always-kill} to @code{t}. You can also +kill a compilation process with the command @kbd{M-x kill-compilation}. To run two compilations at once, start the first one, then rename === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2012-09-30 09:18:38 +0000 +++ doc/emacs/emacs.texi 2012-10-27 05:03:52 +0000 @@ -373,6 +373,7 @@ * Incremental Search:: Search happens as you type the string. * Nonincremental Search:: Specify entire string and then search. * Word Search:: Search for sequence of words. +* Symbol Search:: Search for a source code symbol. * Regexp Search:: Search for match for a regexp. * Regexps:: Syntax of regular expressions. * Regexp Backslash:: Regular expression constructs starting with `\'. === modified file 'doc/emacs/files.texi' --- doc/emacs/files.texi 2012-10-13 01:18:52 +0000 +++ doc/emacs/files.texi 2012-10-27 05:03:52 +0000 @@ -1564,9 +1564,8 @@ @var{target} at the time the opening is done, or will get an error if the name @var{target} is nonexistent at that time. This command does not expand the argument @var{target}, so that it allows you to specify -a relative name as the target of the link. Not all systems support -symbolic links; on systems that don't support them, this command is -not defined. +a relative name as the target of the link. On MS-Windows, this +command works only on MS Windows Vista and later. @kindex C-x i @findex insert-file === modified file 'doc/emacs/frames.texi' --- doc/emacs/frames.texi 2012-07-28 15:12:12 +0000 +++ doc/emacs/frames.texi 2012-10-27 05:03:52 +0000 @@ -1092,17 +1092,19 @@ @table @code @item banish -Move the mouse to the upper-right corner on any key-press; +Move the pointer to a corner of the frame on any key-press. You can +customize the variable @code{mouse-avoidance-banish-position} to +specify where the pointer goes when it is banished. @item exile -Move the mouse to the corner only if the cursor gets too close, -and allow it to return once the cursor is out of the way; +Banish the pointer only if the cursor gets too close, and allow it to +return once the cursor is out of the way. @item jump -If the cursor gets too close to the mouse, displace the mouse -a random distance & direction; +If the cursor gets too close to the pointer, displace the pointer by a +random distance and direction. @item animate -As @code{jump}, but shows steps along the way for illusion of motion; +As @code{jump}, but shows steps along the way for illusion of motion. @item cat-and-mouse -The same as @code{animate}; +The same as @code{animate}. @item proteus As @code{animate}, but changes the shape of the mouse pointer too. @end table === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2012-10-24 14:38:49 +0000 +++ doc/emacs/mule.texi 2012-10-27 05:03:52 +0000 @@ -920,7 +920,6 @@ @samp{-*-coding:-*-} tag. @c FIXME? This seems somewhat out of place. Move to the Rmail section? -@vindex rmail-decode-mime-charset @vindex rmail-file-coding-system When you get new mail in Rmail, each message is translated automatically from the coding system it is written in, as if it were a === modified file 'doc/emacs/package.texi' --- doc/emacs/package.texi 2012-04-10 06:54:43 +0000 +++ doc/emacs/package.texi 2012-10-27 05:03:52 +0000 @@ -62,8 +62,12 @@ downloaded from the package archive), @samp{installed}, or @samp{built-in} (included in Emacs by default). -In some instances, the status can be @samp{held}, @samp{disabled}, or -@samp{obsolete}. @xref{Package Installation}. +The status can also be @samp{new}. This is equivalent to +@samp{available}, except that it means the package became newly +available on the package archive after your last invocation of +@kbd{M-x list-packages}. In other instances, a package may have the +status @samp{held}, @samp{disabled}, or @samp{obsolete}. +@xref{Package Installation}. @item A short description of the package. === modified file 'doc/emacs/programs.texi' --- doc/emacs/programs.texi 2012-06-17 05:13:40 +0000 +++ doc/emacs/programs.texi 2012-10-27 05:03:52 +0000 @@ -326,12 +326,13 @@ @findex which-function-mode @vindex which-func-modes To either enable or disable Which Function mode, use the command -@kbd{M-x which-function-mode}. Although Which Function mode is a -global minor mode, it takes effect only in certain major modes: those -listed in the variable @code{which-func-modes}. If the value of -@code{which-func-modes} is @code{t} rather than a list of modes, then -Which Function mode applies to all major modes that know how to -support it---in other words, all the major modes that support Imenu. +@kbd{M-x which-function-mode}. Which Function mode is a global minor +mode. By default, it takes effect in all major modes major modes that +know how to support it (i.e.@: all the major modes that support +Imenu). You can restrict it to a specific list of major modes by +changing the value of the variable @code{which-func-modes} from +@code{t} (which means to support all available major modes) to a list +of major mode names. @node Program Indent @section Indentation for Programs === modified file 'doc/emacs/search.texi' --- doc/emacs/search.texi 2012-10-16 23:27:40 +0000 +++ doc/emacs/search.texi 2012-10-27 05:03:52 +0000 @@ -21,6 +21,7 @@ * Incremental Search:: Search happens as you type the string. * Nonincremental Search:: Specify entire string and then search. * Word Search:: Search for sequence of words. +* Symbol Search:: Search for a source code symbol. * Regexp Search:: Search for match for a regexp. * Regexps:: Syntax of regular expressions. * Regexp Backslash:: Regular expression constructs starting with `\'. @@ -467,6 +468,47 @@ proceeds incrementally as you type. This additional laxity does not apply to the lazy highlight, which always matches whole words. +@node Symbol Search +@section Symbol Search +@cindex symbol search + + A @dfn{symbol search} is much like an ordinary search, except that +the boundaries of the search must match the boundaries of a symbol. +The meaning of @dfn{symbol} in this context depends on the major mode, +and usually refers to a source code token, such as a Lisp symbol in +Emacs Lisp mode. For instance, if you perform an incremental symbol +search for the Lisp symbol @code{forward-word}, it would not match +@code{isearch-forward-word}. This feature is thus mainly useful for +searching source code. + +@table @kbd +@item M-s _ +If incremental search is active, toggle symbol search mode +(@code{isearch-toggle-symbol}); otherwise, begin an incremental +forward symbol search (@code{isearch-forward-symbol}). +@item M-s _ @key{RET} @var{symbol} @key{RET} +Search forward for @var{symbol}, nonincrementally. +@item M-s _ C-r @key{RET} @var{symbol} @key{RET} +Search backward for @var{symbol}, nonincrementally. +@end table + +@kindex M-s _ +@findex isearch-forward-symbol + To begin a forward incremental symbol search, type @kbd{M-s _}. If +incremental search is not already active, this runs the command +@code{isearch-forward-symbol}. If incremental search is already +active, @kbd{M-s _} switches to a symbol search, preserving the +direction of the search and the current search string; you can disable +symbol search by typing @kbd{M-s _} again. In incremental symbol +search, only the beginning of the search string is required to match +the beginning of a symbol. + + To begin a nonincremental symbol search, type @kbd{M-s _ @key{RET}} +for a forward search, or @kbd{M-s _ C-r @key{RET}} or a backward +search. In nonincremental symbol searches, the beginning and end of +the search string are required to match the beginning and end of a +symbol, respectively. + @node Regexp Search @section Regular Expression Search @cindex regexp search === modified file 'doc/emacs/windows.texi' --- doc/emacs/windows.texi 2012-09-07 10:27:11 +0000 +++ doc/emacs/windows.texi 2012-10-27 05:03:52 +0000 @@ -384,12 +384,6 @@ are considered, but windows on other frames are also reusable if you change @code{pop-up-frames} (see below) to @code{t}. -@item -Otherwise, if you specified that the buffer should be displayed in a -special frame by customizing @code{special-display-buffer-names} or -@code{special-display-regexps}, do so. @xref{Choosing Window -Options,,, elisp, The Emacs Lisp Reference Manual}. - @vindex pop-up-frames @item Otherwise, optionally create a new frame and display the buffer there. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-10-24 14:38:49 +0000 +++ doc/lispref/ChangeLog 2012-10-27 05:03:52 +0000 @@ -1,3 +1,29 @@ +2012-10-27 Chong Yidong + + * minibuf.texi (High-Level Completion): Don't mention removed + function iswitchb-read-buffer. + + * commands.texi (Event Input Misc): Remove last-input-char. + (Command Loop Info): Remove last-command-char. + + * frames.texi (Initial Parameters): Don't mention the obsolete + special-display feature. + + * windows.texi (Choosing Window): Don't mention the obsolete + special display feature. + (Choosing Window Options): Remove obsolete special-display + variables, and the functions special-display-p and + special-display-popup-frame. + + * display.texi (Fringe Bitmaps): Add exclamation-mark bitmap. + + * hooks.texi (Standard Hooks): Remove obsolete hooks. + + * markers.texi (Information from Markers): Remove obsolete + function buffer-has-markers-at. + + * text.texi (Yanking): Document yank-handled-properties. + 2012-10-24 Paul Eggert Update manual for new time stamp format (Bug#12706). === modified file 'doc/lispref/anti.texi' --- doc/lispref/anti.texi 2012-05-27 01:34:14 +0000 +++ doc/lispref/anti.texi 2012-10-27 05:03:52 +0000 @@ -71,9 +71,8 @@ related variables, as well as the @var{action} argument to @code{display-buffer} and other functions. The way to programmatically control how Emacs chooses a window to display a -buffer is to bind the right combination of -@code{special-display-regexps}, @code{pop-up-frames}, and other -variables. +buffer is to bind the right combination of @code{pop-up-frames} and +other variables. @item The standard completion interface has been simplified, eliminating the === modified file 'doc/lispref/commands.texi' --- doc/lispref/commands.texi 2012-10-05 05:57:24 +0000 +++ doc/lispref/commands.texi 2012-10-27 05:03:52 +0000 @@ -186,7 +186,6 @@ the name of an existing buffer, which becomes the second and final argument. -@c Emacs 19 feature The prompt string can use @samp{%} to include previous argument values (starting with the first argument) in the prompt. This is done using @code{format} (@pxref{Formatting Strings}). For example, here is how @@ -205,7 +204,6 @@ signaled if the buffer is read-only. @cindex @samp{@@} in @code{interactive} -@c Emacs 19 feature If @samp{@@} appears at the beginning of the string, and if the key sequence used to invoke the command includes any mouse events, then the window associated with the first of those events is selected @@ -910,7 +908,6 @@ @end defvar @defvar last-command-event -@defvarx last-command-char This variable is set to the last input event that was read by the command loop as part of a command. The principal use of this variable is in @code{self-insert-command}, which uses it to decide which @@ -926,11 +923,8 @@ @noindent The value is 5 because that is the @acronym{ASCII} code for @kbd{C-e}. - -The alias @code{last-command-char} is obsolete. @end defvar -@c Emacs 19 feature @defvar last-event-frame This variable records which frame the last input event was directed to. Usually this is the frame that was selected when the event was @@ -2386,7 +2380,6 @@ @end example @defvar num-input-keys -@c Emacs 19 feature This variable's value is the number of key sequences processed so far in this Emacs session. This includes key sequences read from the terminal and key sequences read from keyboard macros being executed. @@ -2539,7 +2532,6 @@ @code{keyboard-translate-table} (if applicable), before returning it from @code{read-event}. -@c Emacs 19 feature @defvar extra-keyboard-modifiers This variable lets Lisp programs ``press'' the modifier keys on the keyboard. The value is a character. Only the modifiers of the @@ -2755,7 +2747,6 @@ @end defun @defvar last-input-event -@defvarx last-input-char This variable records the last terminal input event read, whether as part of a command or explicitly by a Lisp program. @@ -2774,8 +2765,6 @@ @result{} 49 @end group @end example - -The alias @code{last-input-char} is obsolete. @end defvar @defmac while-no-input body@dots{} === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-10-23 02:39:13 +0000 +++ doc/lispref/display.texi 2012-10-27 05:03:52 +0000 @@ -3550,8 +3550,8 @@ @itemx @code{vertical-bar}, @code{horizontal-bar} Used for different types of fringe cursors. -@item @code{empty-line}, @code{question-mark}, @code{exclamation-mark} -Unused. +@item @code{empty-line}, @code{exclamation-mark}, @code{question-mark}, @code{exclamation-mark} +Not used by core Emacs features. @end table @noindent === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2012-09-30 09:18:38 +0000 +++ doc/lispref/frames.texi 2012-10-27 05:03:52 +0000 @@ -437,13 +437,11 @@ Window System, you can get the same results by means of X resources in many cases. -Setting this variable does not affect existing frames. +Setting this variable does not affect existing frames. Furthermore, +functions that display a buffer in a separate frame may override the +default parameters by supplying their own parameters. @end defopt -Functions that display a buffer in a separate frame can override the -default parameters by supplying their own parameters. @xref{Definition -of special-display-frame-alist}. - If you invoke Emacs with command-line options that specify frame appearance, those options take effect by adding elements to either @code{initial-frame-alist} or @code{default-frame-alist}. Options === modified file 'doc/lispref/hooks.texi' --- doc/lispref/hooks.texi 2012-10-23 15:06:07 +0000 +++ doc/lispref/hooks.texi 2012-10-27 05:03:52 +0000 @@ -120,14 +120,7 @@ @item delete-terminal-functions @xref{Multiple Terminals}. -@ignore -@item disabled-command-function -@xref{Disabling Commands}. -@end ignore - -@item display-buffer-function @itemx pop-up-frame-function -@itemx special-display-function @itemx split-window-preferred-function @xref{Choosing Window Options}. @@ -272,7 +265,6 @@ input-method-function load-read-function load-source-file-function -macro-declaration-function read-buffer-function ring-bell-function select-safe-coding-system-function === modified file 'doc/lispref/markers.texi' --- doc/lispref/markers.texi 2012-09-07 04:51:26 +0000 +++ doc/lispref/markers.texi 2012-10-27 05:03:52 +0000 @@ -307,11 +307,6 @@ @end example @end defun -@defun buffer-has-markers-at position -This function returns @code{t} if one or more markers -point at position @var{position} in the current buffer. -@end defun - @node Marker Insertion Types @section Marker Insertion Types === modified file 'doc/lispref/minibuf.texi' --- doc/lispref/minibuf.texi 2012-10-24 14:38:49 +0000 +++ doc/lispref/minibuf.texi 2012-10-27 05:03:52 +0000 @@ -1218,11 +1218,9 @@ @end defun @defopt read-buffer-function -This variable specifies how to read buffer names. The function is -called with the arguments passed to @code{read-buffer}. For example, -if you set this variable to @code{iswitchb-read-buffer}, all Emacs -commands that call @code{read-buffer} to read a buffer name will -actually use the @code{iswitchb} package to read it. +This variable, if non-@code{nil}, specifies a function for reading +buffer names. @code{read-buffer} calls this function instead of doing +its usual work, with the same arguments passed to @code{read-buffer}. @end defopt @defopt read-buffer-completion-ignore-case === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2012-10-23 07:57:42 +0000 +++ doc/lispref/text.texi 2012-10-27 05:03:52 +0000 @@ -899,31 +899,34 @@ @node Yanking @subsection Yanking - Yanking means inserting text from the kill ring, but it does -not insert the text blindly. Yank commands and some other commands -use @code{insert-for-yank} to perform special processing on the -text that they copy into the buffer. + Yanking means inserting text from the kill ring, but it does not +insert the text blindly. The @code{yank} command, and related +commands, use @code{insert-for-yank} to perform special processing on +the text before it is inserted. @defun insert-for-yank string -This function normally works like @code{insert} except that it doesn't -insert the text properties (@pxref{Text Properties}) in the list -variable @code{yank-excluded-properties}. However, if any part of -@var{string} has a non-@code{nil} @code{yank-handler} text property, -that property can do various special processing on that part of the -text being inserted. +This function works like @code{insert}, except that it processes the +text in @var{string} according to the @code{yank-handler} text +property, as well as the variables @code{yank-handled-properties} and +@code{yank-excluded-properties} (see below), before inserting the +result into the current buffer. @end defun @defun insert-buffer-substring-as-yank buf &optional start end -This function resembles @code{insert-buffer-substring} except that it -doesn't insert the text properties in the -@code{yank-excluded-properties} list. +This function resembles @code{insert-buffer-substring}, except that it +processes the text according to @code{yank-handled-properties} and +@code{yank-excluded-properties}. (It does not handle the +@code{yank-handler} property, which does not normally occur in buffer +text anyway.) @end defun - You can put a @code{yank-handler} text property on all or part of -the text to control how it will be inserted if it is yanked. The -@code{insert-for-yank} function looks for that property. The property -value must be a list of one to four elements, with the following -format (where elements after the first may be omitted): + If you put a @code{yank-handler} text property on all or part of a +string, that alters how @code{insert-for-yank} inserts the string. If +different parts of the string have different @code{yank-handler} +values (comparison being done with @code{eq}), each substring is +handled separately. The property value must be a list of one to four +elements, with the following format (where elements after the first +may be omitted): @example (@var{function} @var{param} @var{noexclude} @var{undo}) @@ -933,22 +936,21 @@ @table @var @item function -When @var{function} is present and non-@code{nil}, it is called instead of -@code{insert} to insert the string. @var{function} takes one -argument---the string to insert. +When @var{function} is non-@code{nil}, it is called instead of +@code{insert} to insert the string, with one argument---the string to +insert. @item param If @var{param} is present and non-@code{nil}, it replaces @var{string} -(or the part of @var{string} being processed) as the object passed to -@var{function} (or @code{insert}); for example, if @var{function} is -@code{yank-rectangle}, @var{param} should be a list of strings to -insert as a rectangle. +(or the substring of @var{string} being processed) as the object +passed to @var{function} (or @code{insert}). For example, if +@var{function} is @code{yank-rectangle}, @var{param} should be a list +of strings to insert as a rectangle. @item noexclude -If @var{noexclude} is present and non-@code{nil}, the normal removal of the -yank-excluded-properties is not performed; instead @var{function} is -responsible for removing those properties. This may be necessary -if @var{function} adjusts point before or after inserting the object. +If @var{noexclude} is present and non-@code{nil}, that disables the +normal action of @code{yank-handled-properties} and +@code{yank-excluded-properties} on the inserted string. @item undo If @var{undo} is present and non-@code{nil}, it is a function that will be @@ -959,14 +961,29 @@ @end table @cindex yanking and text properties +@defopt yank-handled-properties +This variable specifies special text property handling conditions for +yanked text. It takes effect after the text has been inserted (either +normally, or via the @code{yank-handler} property), and prior to +@code{yank-excluded-properties} taking effect. + +The value should be an alist of elements @code{(@var{prop} +. @var{fun})}. Each alist element is handled in order. The inserted +text is scanned for stretches of text having text properties @code{eq} +to @var{prop}; for each such stretch, @var{fun} is called with three +arguments: the value of the property, and the start and end positions +of the text. +@end defopt + @defopt yank-excluded-properties -Yanking discards certain text properties from the yanked text, as -described above. The value of this variable is the list of properties -to discard. Its default value contains properties that might lead to -annoying results, such as causing the text to respond to the mouse or -specifying key bindings. +The value of this variable is the list of properties to remove from +inserted text. Its default value contains properties that might lead +to annoying results, such as causing the text to respond to the mouse +or specifying key bindings. It takes effect after +@code{yank-handled-properties}. @end defopt + @node Yank Commands @subsection Functions for Yanking === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2012-09-07 13:53:21 +0000 +++ doc/lispref/windows.texi 2012-10-27 05:03:52 +0000 @@ -1632,11 +1632,6 @@ The user option @code{display-buffer-alist}. @item -A special action for handling @code{special-display-buffer-names} and -@code{special-display-regexps}, if either of those variables is -non-@code{nil}. @xref{Choosing Window Options}. - -@item The @var{action} argument. @item @@ -1864,91 +1859,6 @@ @code{nil}. @end defopt -@defopt special-display-buffer-names -A list of buffer names identifying buffers that should be displayed -specially. If the name of @var{buffer-or-name} is in this list, -@code{display-buffer} handles the buffer specially. By default, special -display means to give the buffer a dedicated frame. - -If an element is a list, instead of a string, then the @sc{car} of that -list is the buffer name, and the rest of that list says how to create -the frame. There are two possibilities for the rest of that list (its -@sc{cdr}): It can be an alist, specifying frame parameters, or it can -contain a function and arguments to give to it. (The function's first -argument is always the buffer to be displayed; the arguments from the -list come after that.) - -For example: - -@example -(("myfile" (minibuffer) (menu-bar-lines . 0))) -@end example - -@noindent -specifies to display a buffer named @samp{myfile} in a dedicated frame -with specified @code{minibuffer} and @code{menu-bar-lines} parameters. - -The list of frame parameters can also use the phony frame parameters -@code{same-frame} and @code{same-window}. If the specified frame -parameters include @code{(same-window . @var{value})} and @var{value} -is non-@code{nil}, that means to display the buffer in the current -selected window. Otherwise, if they include @code{(same-frame . -@var{value})} and @var{value} is non-@code{nil}, that means to display -the buffer in a new window in the currently selected frame. -@end defopt - -@defopt special-display-regexps -A list of regular expressions specifying buffers that should be -displayed specially. If the buffer's name matches any of the regular -expressions in this list, @code{display-buffer} handles the buffer -specially. By default, special display means to give the buffer a -dedicated frame. - -If an element is a list, instead of a string, then the @sc{car} of the -list is the regular expression, and the rest of the list says how to -create the frame. See @code{special-display-buffer-names} above. -@end defopt - -@defun special-display-p buffer-name -This function returns non-@code{nil} if displaying a buffer -named @var{buffer-name} with @code{display-buffer} would -create a special frame. The value is @code{t} if it would -use the default frame parameters, or else the specified list -of frame parameters. -@end defun - -@defopt special-display-function -This variable holds the function to call to display a buffer specially. -It receives the buffer as an argument, and should return the window in -which it is displayed. The default value of this variable is -@code{special-display-popup-frame}, see below. -@end defopt - -@defun special-display-popup-frame buffer &optional args -This function tries to make @var{buffer} visible in a frame of its own. -If @var{buffer} is already displayed in some window, it makes that -window's frame visible and raises it. Otherwise, it creates a frame -that is dedicated to @var{buffer}. The return value is the window used -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 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. - -This function always uses an existing window displaying @var{buffer}, -whether or not it is in a frame of its own; but if you set up the above -variables in your init file, before @var{buffer} was created, then -presumably the window was previously made by this function. -@end defun - -@defopt special-display-frame-alist -@anchor{Definition of special-display-frame-alist} -This variable holds frame parameters for -@code{special-display-popup-frame} to use when it creates a frame. -@end defopt - @defopt same-window-buffer-names A list of buffer names for buffers that should be displayed in the selected window. If a buffer's name is in this list, @@ -1969,19 +1879,6 @@ put it in the selected window. @end defun -@c Emacs 19 feature -@defopt display-buffer-function -This variable is the most flexible way to customize the behavior of -@code{display-buffer}. If it is non-@code{nil}, it should be a function -that @code{display-buffer} calls to do the work. The function should -accept two arguments, the first two arguments that @code{display-buffer} -received. It should choose or create a window, display the specified -buffer in it, and then return the window. - -This variable takes precedence over all the other options described -above. -@end defopt - @node Window History @section Window History @cindex window history === modified file 'etc/NEWS' --- etc/NEWS 2012-10-25 01:24:21 +0000 +++ etc/NEWS 2012-10-27 05:03:52 +0000 @@ -157,6 +157,7 @@ --- *** New option `server-auth-key' specifies a shared server key. ++++ ** In the Package Menu, newly-available packages are listed as "new", and sorted above the other "available" packages by default. @@ -229,7 +230,7 @@ *** New option `replace-lax-whitespace'. If non-nil, `query-replace' uses flexible whitespace matching too. The default is nil. - ++++ *** Global `M-s _' starts a symbol (identifier) incremental search, and `M-s _' in Isearch toggles symbol search mode. `M-s c' in Isearch toggles search case-sensitivity. @@ -263,6 +264,7 @@ ** New command `C-x r M-w' (copy-rectangle-as-kill). It copies the region-rectangle as the last rectangle kill. ++++ ** New option `yank-handled-properties' allows processing of text properties on yanked text, in more ways that are more general than just removing them, as done by `yank-excluded-properties'. @@ -327,7 +329,7 @@ rather than making them unbound. ** Compilation mode - ++++ *** New option `compilation-always-kill'. ** Customize @@ -441,9 +443,9 @@ The old binding for `/ M' (filter by used-mode) is now bound to `/ m'. ** Mouse Avoidance mode - -The new variable `mouse-avoidance-banish-position' can now be used to -customize Mouse Avoidance mode further. ++++ +*** New variable `mouse-avoidance-banish-position' specifies where the +`banish' mouse avoidance setting moves the mouse. +++ ** notifications.el supports now version 1.2 of the Notifications API. @@ -595,6 +597,7 @@ The `url-retrieve' function now uses this to encode its URL argument, in case that is not properly encoded. +--- ** VHDL mode *** The free software compiler GHDL is supported (and now the default). @@ -605,7 +608,10 @@ *** Accepts \r and \f as whitespace. -** which-function-mode now applies to all applicable major modes by default. +** Which Function mode ++++ +*** `which-func-modes' now defaults to t, so Which Function mode, when +enabled, applies to all applicable major modes. --- ** winner-mode-hook now runs when the mode is disabled, as well as when it is @@ -708,6 +714,7 @@ Some Lisp symbols have been renamed to avoid problems with spelling that is incorrect or inconsistent with how Emacs normally spells a word. +--- *** Renamed functions **** hangul-input-method-inactivate -> hangul-input-method-deactivate @@ -719,22 +726,22 @@ viper-deactivate-input-method-action **** ucs-input-inactivate -> ucs-input-deactivate +--- *** Renamed hooks The old hooks are still supported for backward compatibility, but they are deprecated and will be removed eventually. - **** input-method-inactivate-hook -> input-method-deactivate-hook **** robin-inactivate-hook -> robin-deactivate-hook **** quail-inactivate-hook -> quail-deactivate-hook +--- *** Renamed Lisp variables - **** follow-deactive-menu -> follow-inactive-menu **** inactivate-current-input-method-function -> deactivate-current-input-method-function ++++ ** Some obsolete functions, variables, and faces were removed: - *** `facemenu-unlisted-faces' *** `rmail-decode-mime-charset' *** `last-input-char', `last-command-char', `unread-command-char'. @@ -835,11 +842,17 @@ in Emacs 24.1: +++ **** `display-buffer-reuse-frames' ++++ **** `special-display-regexps' ++++ **** `special-display-frame-alist' ++++ **** `special-display-buffer-names' ++++ **** `special-display-function' ++++ **** `display-buffer-function' +--- **** `dired-shrink-to-fit' ** Time @@ -897,19 +910,26 @@ ** New macros `setq-local' and `defvar-local'. ++++ ** New fringe bitmap `exclamation-mark'. ** Face underlining can now use a wave. See the "Face Attributes" section of the Elisp manual. ** The following functions and variables are obsolete: - +--- *** `automount-dir-prefix' ++++ *** `buffer-has-markers-at' +--- *** `macro-declaration-function' (use `macro-declarations-alist') +--- *** `window-system-version' +--- *** `dired-pop-to-buffer' (use `dired-mark-pop-up') +--- *** `query-replace-interactive' +--- *** `font-list-limit' (has had no effect since Emacs < 23) @@ -928,6 +948,7 @@ Emacs now supports mouse highlight, help-echo (in the echo area), and `mouse-autoselect-window'. ++++ ** On MS Windows Vista and later Emacs now supports symbolic links. +++ === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 20:44:38 +0000 +++ lisp/ChangeLog 2012-10-27 05:03:52 +0000 @@ -1,3 +1,7 @@ +2012-10-27 Chong Yidong + + * subr.el (insert-buffer-substring-as-yank): Doc fix. + 2012-10-26 Jambunathan K * minibuffer.el (completion-category-overrides): New completion === modified file 'lisp/subr.el' --- lisp/subr.el 2012-10-23 15:06:07 +0000 +++ lisp/subr.el 2012-10-27 05:03:52 +0000 @@ -2949,8 +2949,8 @@ BUFFER may be a buffer or a buffer name. Arguments START and END are character positions specifying the substring. They default to the values of (point-min) and (point-max) in BUFFER. -Strip text properties from the inserted text according to -`yank-excluded-properties'." +Before insertion, process text properties according to +`yank-handled-properties' and `yank-excluded-properties'." ;; Since the buffer text should not normally have yank-handler properties, ;; there is no need to handle them here. (let ((opoint (point))) ------------------------------------------------------------ revno: 110683 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11131 author: Jambunathan K committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-10-26 16:44:38 -0400 message: * lisp/minibuffer.el (completion-category-overrides): New completion category `bookmark'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 18:01:30 +0000 +++ lisp/ChangeLog 2012-10-26 20:44:38 +0000 @@ -1,3 +1,8 @@ +2012-10-26 Jambunathan K + + * minibuffer.el (completion-category-overrides): New completion + category `bookmark' (bug#11131). + 2012-10-26 Stefan Monnier * emacs-lisp/advice.el (ad-assemble-advised-definition): === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2012-10-25 12:56:13 +0000 +++ lisp/minibuffer.el 2012-10-26 20:44:38 +0000 @@ -743,6 +743,7 @@ (const buffer) (const file) (const unicode-name) + (const bookmark) symbol) :value-type (set :tag "Properties to override" ------------------------------------------------------------ revno: 110682 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-10-26 14:35:36 -0400 message: * Makefile.in (EMACS_NAME): New variable. (EMACS, install-etc, uninstall): Use $EMACS_NAME. diff: === modified file 'ChangeLog' --- ChangeLog 2012-10-26 07:39:47 +0000 +++ ChangeLog 2012-10-26 18:35:36 +0000 @@ -1,5 +1,8 @@ 2012-10-26 Glenn Morris + * Makefile.in (EMACS_NAME): New variable. + (EMACS, install-etc, uninstall): Use $EMACS_NAME. + * Makefile.in (EMACS, EMACSFULL): Transformations should not be applied to $EXEEXT. === modified file 'Makefile.in' --- Makefile.in 2012-10-26 07:39:47 +0000 +++ Makefile.in 2012-10-26 18:35:36 +0000 @@ -259,7 +259,8 @@ TRANSFORM = @program_transform_name@ # What emacs should be called when installed. -EMACS = `echo emacs | sed '$(TRANSFORM)'`${EXEEXT} +EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'` +EMACS = ${EMACS_NAME}${EXEEXT} EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT} # Subdirectories to make recursively. @@ -633,12 +634,12 @@ ## Install those items from etc/ that need to end up elsewhere. install-etc: umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir} - dest=`echo emacs | sed '$(TRANSFORM)'`; \ tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \ - sed -e "/^Exec=emacs/ s/emacs/$${dest}/" \ - -e "/^Icon=emacs/ s/emacs/$${dest}/" \ + emacs_name=`echo emacs | sed '$(TRANSFORM)'`; \ + sed -e "/^Exec=emacs/ s/emacs/$${emacs_name}/" \ + -e "/^Icon=emacs/ s/emacs/$${emacs_name}/" \ ${srcdir}/etc/emacs.desktop > $${tmp}; \ - ${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/$${dest}.desktop; \ + ${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop; \ rm -f $${tmp} thisdir=`/bin/pwd`; \ cd ${iconsrcdir} || exit 1; umask 022 ; \ @@ -702,11 +703,11 @@ fi) (cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS) || true) (if cd $(DESTDIR)${icondir}; then \ - rm -f hicolor/*x*/apps/`echo emacs | sed '$(TRANSFORM)'`.png \ - hicolor/scalable/apps/`echo emacs | sed '$(TRANSFORM)'`.svg \ + rm -f hicolor/*x*/apps/${EMACS_NAME}.png \ + hicolor/scalable/apps/${EMACS_NAME}.svg \ hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \ fi) - -rm -f $(DESTDIR)${desktopdir}/`echo emacs | sed '$(TRANSFORM)'`.desktop + -rm -f $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop for file in snake-scores tetris-scores; do \ file=$(DESTDIR)${gamedir}/$${file}; \ [ -s $${file} ] || rm -f $$file; \ ------------------------------------------------------------ revno: 110681 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-10-26 14:01:30 -0400 message: * lisp/emacs-lisp/advice.el (ad-assemble-advised-definition): Silence bogus compiler warnings for ad-do-it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 17:20:54 +0000 +++ lisp/ChangeLog 2012-10-26 18:01:30 +0000 @@ -1,5 +1,8 @@ 2012-10-26 Stefan Monnier + * emacs-lisp/advice.el (ad-assemble-advised-definition): + Silence bogus compiler warnings for ad-do-it. + * bookmark.el (bookmark-completing-read): Set the completion category to `bookmark' (bug#11131). === modified file 'lisp/emacs-lisp/advice.el' --- lisp/emacs-lisp/advice.el 2012-10-18 15:37:57 +0000 +++ lisp/emacs-lisp/advice.el 2012-10-26 18:01:30 +0000 @@ -2897,8 +2897,11 @@ ORIG is a form that calls the body of the original unadvised function, and BEFORES, AROUNDS and AFTERS are the lists of advices with which ORIG should be modified. The assembled function will be returned." - - (let (before-forms around-form around-form-protected after-forms definition) + ;; The ad-do-it call should always have the right number of arguments, + ;; but the compiler might signal a bogus warning because it checks the call + ;; against the advertised calling convention. + (let ((around-form `(setq ad-return-value (with-no-warnings ,orig))) + before-forms around-form-protected after-forms definition) (dolist (advice befores) (cond ((and (ad-advice-protected advice) before-forms) @@ -2911,7 +2914,6 @@ (append before-forms (ad-body-forms (ad-advice-definition advice))))))) - (setq around-form `(setq ad-return-value ,orig)) (dolist (advice (reverse arounds)) ;; If any of the around advices is protected then we ;; protect the complete around advice onion: ------------------------------------------------------------ revno: 110680 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11131 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-10-26 13:20:54 -0400 message: * lisp/bookmark.el (bookmark-completing-read): Set the completion category to `bookmark'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 17:07:35 +0000 +++ lisp/ChangeLog 2012-10-26 17:20:54 +0000 @@ -1,3 +1,8 @@ +2012-10-26 Stefan Monnier + + * bookmark.el (bookmark-completing-read): Set the completion category + to `bookmark' (bug#11131). + 2012-10-26 Bastien Stefan Monnier === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2012-10-02 02:47:12 +0000 +++ lisp/bookmark.el 2012-10-26 17:20:54 +0000 @@ -433,7 +433,11 @@ ": "))) (str (completing-read prompt - bookmark-alist + (lambda (string pred action) + (if (eq action 'metadata) + '(metadata (category . bookmark)) + (complete-with-action + action bookmark-alist string pred))) nil 0 nil ------------------------------------------------------------ revno: 110679 author: Bastien committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-10-26 13:07:35 -0400 message: * lisp/face-remap.el: Use lexical-binding. (text-scale-adjust): Improve docstring. Use itself for the temporary overlay-map bindings, so as to repeat the "Use..." message each time. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 15:59:40 +0000 +++ lisp/ChangeLog 2012-10-26 17:07:35 +0000 @@ -1,3 +1,10 @@ +2012-10-26 Bastien + Stefan Monnier + + * face-remap.el: Use lexical-binding. + (text-scale-adjust): Improve docstring. Use itself for the temporary + overlay-map bindings, so as to repeat the "Use..." message each time. + 2012-10-26 Stefan Monnier * emacs-lisp/macroexp.el (macroexp--expand-all): === modified file 'lisp/face-remap.el' --- lisp/face-remap.el 2012-07-10 11:51:54 +0000 +++ lisp/face-remap.el 2012-10-26 17:07:35 +0000 @@ -1,4 +1,4 @@ -;;; face-remap.el --- Functions for managing `face-remapping-alist' +;;; face-remap.el --- Functions for managing `face-remapping-alist' -*- lexical-binding: t -*- ;; ;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; @@ -285,7 +285,9 @@ ;;;###autoload (define-key ctl-x-map [(control ?0)] 'text-scale-adjust) ;;;###autoload (defun text-scale-adjust (inc) - "Increase or decrease the height of the default face in the current buffer. + "Adjust the height of the default face by INC. + +INC may be passed as a numeric prefix argument. The actual adjustment made depends on the final component of the key-binding used to invoke the command, with all modifiers removed: @@ -294,9 +296,11 @@ - Decrease the default face height by one step 0 Reset the default face height to the global default -Then, continue to read input events and further adjust the face -height as long as the input event read (with all modifiers removed) -is one of the above. +When adjusting with `+' or `-', continue to read input events and +further adjust the face height as long as the input event read +\(with all modifiers removed) is `+' or `-'. + +When adjusting with `0', immediately finish. Each step scales the height of the default face by the variable `text-scale-mode-step' (a negative number of steps decreases the @@ -309,8 +313,7 @@ a top-level keymap, `text-scale-increase' or `text-scale-decrease' may be more appropriate." (interactive "p") - (let ((first t) - (ev last-command-event) + (let ((ev last-command-event) (echo-keystrokes nil)) (let* ((base (event-basic-type ev)) (step @@ -320,19 +323,15 @@ (?0 0) (t inc)))) (text-scale-increase step) - ;; FIXME: do it after every "iteration of the loop". - (message "+,-,0 for further adjustment: ") + ;; (unless (zerop step) + (message "Use +,-,0 for further adjustment") (set-temporary-overlay-map (let ((map (make-sparse-keymap))) (dolist (mods '(() (control))) - (define-key map (vector (append mods '(?-))) 'text-scale-decrease) - (define-key map (vector (append mods '(?+))) 'text-scale-increase) - ;; = is unshifted + on most keyboards. - (define-key map (vector (append mods '(?=))) 'text-scale-increase) - (define-key map (vector (append mods '(?0))) - (lambda () (interactive) (text-scale-increase 0)))) - map) - t)))) + (dolist (key '(?- ?+ ?= ?0)) ;; = is often unshifted +. + (define-key map (vector (append mods (list key))) + (lambda () (interactive) (text-scale-adjust (abs inc)))))) + map))))) ;; ) ;; ---------------------------------------------------------------- ------------------------------------------------------------ revno: 110678 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12486 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-10-26 11:59:40 -0400 message: * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Obey byte-compile-warning-enabled-p. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 15:51:42 +0000 +++ lisp/ChangeLog 2012-10-26 15:59:40 +0000 @@ -1,5 +1,8 @@ 2012-10-26 Stefan Monnier + * emacs-lisp/macroexp.el (macroexp--expand-all): + Obey byte-compile-warning-enabled-p (bug#12486). + * vc/diff-mode.el (diff-end-of-hunk): Also skip potential "no LF at eol". (diff-refine-hunk): Similarly, handle the "no LF at eol" (bug#12584). === modified file 'lisp/emacs-lisp/macroexp.el' --- lisp/emacs-lisp/macroexp.el 2012-09-20 13:46:36 +0000 +++ lisp/emacs-lisp/macroexp.el 2012-10-26 15:59:40 +0000 @@ -154,11 +154,16 @@ (if (and (not (eq form new-form)) ;It was a macro call. (car-safe form) (symbolp (car form)) - (get (car form) 'byte-obsolete-info)) + (get (car form) 'byte-obsolete-info) + (or (not (fboundp 'byte-compile-warning-enabled-p)) + (byte-compile-warning-enabled-p 'obsolete))) (let* ((fun (car form)) (obsolete (get fun 'byte-obsolete-info))) (macroexp--warn-and-return - (macroexp--obsolete-warning fun obsolete "macro") + (macroexp--obsolete-warning + fun obsolete + (if (symbolp (symbol-function fun)) + "alias" "macro")) new-form)) new-form))) (pcase form ------------------------------------------------------------ revno: 110677 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12584 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-10-26 11:51:42 -0400 message: * lisp/vc/diff-mode.el (diff-end-of-hunk): Also skip potential "no LF at eol". (diff-refine-hunk): Similarly, handle the "no LF at eol". diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-26 09:11:24 +0000 +++ lisp/ChangeLog 2012-10-26 15:51:42 +0000 @@ -1,3 +1,8 @@ +2012-10-26 Stefan Monnier + + * vc/diff-mode.el (diff-end-of-hunk): Also skip potential "no LF at eol". + (diff-refine-hunk): Similarly, handle the "no LF at eol" (bug#12584). + 2012-10-26 Martin Rudalics * mouse.el (mouse-drag-line): Move last form into preceding when @@ -8,7 +13,7 @@ 2012-10-25 David Engster * emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression): - Removed. This feature is already integrated in imenu. + Remove. This feature is already integrated in imenu. * emacs-lisp/eieio-opt.el: Remove require for `button' since it is always loaded. Require `speedbar' unconditionally. === modified file 'lisp/vc/diff-mode.el' --- lisp/vc/diff-mode.el 2012-10-23 18:40:23 +0000 +++ lisp/vc/diff-mode.el 2012-10-26 15:51:42 +0000 @@ -478,11 +478,13 @@ (let* ((nold (string-to-number (or (match-string 2) "1"))) (nnew (string-to-number (or (match-string 4) "1"))) (endold - (save-excursion - (re-search-forward (if diff-valid-unified-empty-line - "^[- \n]" "^[- ]") + (save-excursion + (re-search-forward (if diff-valid-unified-empty-line + "^[- \n]" "^[- ]") nil t nold) - (line-beginning-position 2))) + (line-beginning-position + ;; Skip potential "\ No newline at end of file". + (if (looking-at ".*\n\\\\") 3 2)))) (endnew ;; The hunk may end with a bunch of "+" lines, so the `end' is ;; then further than computed above. @@ -490,7 +492,9 @@ (re-search-forward (if diff-valid-unified-empty-line "^[+ \n]" "^[+ ]") nil t nnew) - (line-beginning-position 2)))) + (line-beginning-position + ;; Skip potential "\ No newline at end of file". + (if (looking-at ".*\n\\\\") 3 2))))) (setq end (max endold endnew))))) ;; We may have a first evaluation of `end' thanks to the hunk header. (unless end @@ -1972,8 +1976,13 @@ (goto-char beg) (pcase style (`unified - (while (re-search-forward "^\\(?:-.*\n\\)+\\(\\)\\(?:\\+.*\n\\)+" - end t) + (while (re-search-forward + (eval-when-compile + (let ((no-LF-at-eol-re "\\(?:\\\\.*\n\\)?")) + (concat "^\\(?:-.*\n\\)+" no-LF-at-eol-re + "\\(\\)" + "\\(?:\\+.*\n\\)+" no-LF-at-eol-re))) + end t) (smerge-refine-subst (match-beginning 0) (match-end 1) (match-end 1) (match-end 0) nil 'diff-refine-preproc props-r props-a))) ------------------------------------------------------------ revno: 110676 committer: Bastien Guerry branch nick: trunk timestamp: Fri 2012-10-26 17:27:29 +0200 message: Fix overwritten typos and Org version number. diff: === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2012-10-26 14:42:05 +0000 +++ doc/misc/org.texi 2012-10-26 15:27:29 +0000 @@ -947,7 +947,7 @@ Installing Info files is system dependent, because of differences in the @file{install-info} program. The Info documentation is installed together with the rest of Org mode. If you don't install Org mode, it is possible to -install the Info documentation seperately (you need to have +install the Info documentation separately (you need to have install-info@footnote{The output from install-info (if any) is system dependent. In particular Debian and its derivatives use two different versions of install-info and you may see the message: @@ -16693,7 +16693,7 @@ opened the doors for many new ideas and features. @item Jambunathan K -Jambunathan contributed the ODT exporter, definitly a killer feature of +Jambunathan contributed the ODT exporter, definitely a killer feature of Org mode. He also contributed the new HTML exporter, which is another core feature of Org. Here too, I knew I could rely on him to fix bugs in these areas and to patiently explain the users what was the problems and solutions. @@ -16701,7 +16701,7 @@ @item Achim Gratz Achim rewrote the building process of Org, turning some @emph{ad hoc} tools into a flexible and conceptually clean process. He patiently coped with the -many hicups that such a change can create for users. +many hiccups that such a change can create for users. @item Nick Dokos The Org mode mailing list would not be such a nice place without Nick, who === modified file 'lisp/org/org-version.el' --- lisp/org/org-version.el 2012-10-26 14:42:05 +0000 +++ lisp/org/org-version.el 2012-10-26 15:27:29 +0000 @@ -5,13 +5,13 @@ (defun org-release () "The release version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-release "7.9.2")) + (let ((org-release "7.9.2+")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-git-version "release_7.9.2-68-g7a9d34")) + (let ((org-git-version "7.9.2+-GNU-Emacs-24-3")) org-git-version)) ;;;###autoload (defvar org-odt-data-dir "/usr/share/emacs/etc/org" ------------------------------------------------------------ revno: 110675 committer: Bastien Guerry branch nick: trunk timestamp: Fri 2012-10-26 16:42:05 +0200 message: Merge upstream Org (from commit acbbe2) diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-10-25 12:08:44 +0000 +++ doc/misc/ChangeLog 2012-10-26 14:42:05 +0000 @@ -1,3 +1,9 @@ +2012-10-26 Bastien Guerry + + * org.texi (Installation): Update the link to Org's ELPA. Also + don't mention org-install.el anymore as the replacement file + org-loaddefs.el is now loaded by org.el. + 2012-10-25 Michael Albinus * tramp.texi (Frequently Asked Questions): Mention === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2012-10-05 05:57:24 +0000 +++ doc/misc/org.texi 2012-10-26 14:42:05 +0000 @@ -857,7 +857,7 @@ @b{Important:} @i{If you the version of Org that comes with Emacs or as a XEmacs package, please skip this section and go directly to @ref{Activation}. If you downloaded Org as an ELPA package, please read the instructions on the -@uref{http://orgmode.org/elpa/, Org ELPA page}. To see what version of Org +@uref{http://orgmode.org/elpa.html, Org ELPA page}. To see what version of Org (if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if your Emacs distribution does not come with Org, this function will not be defined).} @@ -947,7 +947,7 @@ Installing Info files is system dependent, because of differences in the @file{install-info} program. The Info documentation is installed together with the rest of Org mode. If you don't install Org mode, it is possible to -install the Info documentation separately (you need to have +install the Info documentation seperately (you need to have install-info@footnote{The output from install-info (if any) is system dependent. In particular Debian and its derivatives use two different versions of install-info and you may see the message: @@ -964,13 +964,6 @@ make install-info @end example -Then add the following line to @file{.emacs}. It is needed so that -Emacs can autoload functions that are located in files not immediately loaded -when Org mode starts. -@lisp -(require 'org-install) -@end lisp - Do not forget to activate Org as described in the following section. @page @@ -1092,9 +1085,6 @@ ;; add latest org-mode to load path (add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp")) (add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t)) - -;; activate org -(require 'org-install) @end example If an error occurs, a backtrace can be very useful (see below on how to @@ -3785,7 +3775,7 @@ extensions}). See also @ref{Conflicts}, for a discussion of the interaction with @code{shift-selection-mode}. See also the variable @code{org-treat-S-cursor-todo-selection-as-state-change}. -@orgcmd{C-c / t,org-show-todo-key} +@orgcmd{C-c / t,org-show-todo-tree} @cindex sparse tree, for TODO @vindex org-todo-keywords View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds the @@ -9386,16 +9376,16 @@ @item C-c ' Edit the source code example at point in its native mode. This works by switching to a temporary buffer with the source code. You need to exit by -pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*} -or @samp{#} will get a comma prepended, to keep them from being interpreted -by Org as outline nodes or special comments. These commas will be stripped -for editing with @kbd{C-c '}, and also for export.}. The edited version will -then replace the old version in the Org buffer. Fixed-width regions -(where each line starts with a colon followed by a space) will be edited -using @code{artist-mode}@footnote{You may select a different-mode with the -variable @code{org-edit-fixed-width-region-mode}.} to allow creating ASCII -drawings easily. Using this command in an empty line will create a new -fixed-width region. +pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*}, +@samp{,*}, @samp{#+} and @samp{,#+} will get a comma prepended, to keep them +from being interpreted by Org as outline nodes or special syntax. These +commas will be stripped for editing with @kbd{C-c '}, and also for export.}. +The edited version will then replace the old version in the Org buffer. +Fixed-width regions (where each line starts with a colon followed by a space) +will be edited using @code{artist-mode}@footnote{You may select +a different-mode with the variable @code{org-edit-fixed-width-region-mode}.} +to allow creating ASCII drawings easily. Using this command in an empty line +will create a new fixed-width region. @kindex C-c l @item C-c l Calling @code{org-store-link} while editing a source code example in a @@ -14523,14 +14513,13 @@ # DIR=`pwd` FILES="" -ORGINSTALL="~/src/org/lisp/org-install.el" # wrap each argument in the code required to call tangle on it for i in $@@; do FILES="$FILES \"$i\"" done -emacs -Q --batch -l $ORGINSTALL \ +emacs -Q --batch \ --eval "(progn (add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\")) (add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\" t)) @@ -16704,7 +16693,7 @@ opened the doors for many new ideas and features. @item Jambunathan K -Jambunathan contributed the ODT exporter, definitely a killer feature of +Jambunathan contributed the ODT exporter, definitly a killer feature of Org mode. He also contributed the new HTML exporter, which is another core feature of Org. Here too, I knew I could rely on him to fix bugs in these areas and to patiently explain the users what was the problems and solutions. @@ -16712,7 +16701,7 @@ @item Achim Gratz Achim rewrote the building process of Org, turning some @emph{ad hoc} tools into a flexible and conceptually clean process. He patiently coped with the -many hiccups that such a change can create for users. +many hicups that such a change can create for users. @item Nick Dokos The Org mode mailing list would not be such a nice place without Nick, who === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-10-23 07:57:42 +0000 +++ etc/ChangeLog 2012-10-26 14:42:05 +0000 @@ -1,3 +1,8 @@ +2012-10-26 Nicolas Goaziou + + * refcards/orgcard.tex: Fix keybindings about + `org-show-todo-tree'. + 2012-10-23 Paul Eggert Fix outdated timestamp documentation in Elisp manual (bug#12706). === modified file 'etc/refcards/orgcard.pdf' Binary files etc/refcards/orgcard.pdf 2012-09-30 15:14:59 +0000 and etc/refcards/orgcard.pdf 2012-10-26 14:42:05 +0000 differ === modified file 'etc/refcards/orgcard.tex' --- etc/refcards/orgcard.tex 2012-10-01 05:48:54 +0000 +++ etc/refcards/orgcard.tex 2012-10-26 14:42:05 +0000 @@ -484,9 +484,9 @@ \metax{select next/previous state}{S-LEFT/RIGHT} \metax{select next/previous set}{C-S-LEFT/RIGHT} \key{toggle ORDERED property}{C-c C-x o} -\key{view TODO items in a sparse tree}{C-c C-v} -\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v} +\key{view TODO items in a sparse tree}{C-c / t} +\key{view 3rd TODO keyword's sparse tree}{C-3 C-c / t} \key{set the priority of the current item}{C-c , [ABC]} \key{remove priority cookie from current item}{C-c , SPC} \key{raise/lower priority of current item}{S-UP/DOWN\notetwo} === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2012-10-24 18:16:41 +0000 +++ lisp/org/ChangeLog 2012-10-26 14:42:05 +0000 @@ -1,3 +1,300 @@ +2012-10-26 Achim Gratz + + * ob-ditaa.el: Needs to (require 'org-compat) for + org-find-library-dir. + + * org.el: Remove utf-8 codepoints in docstrings, bytecode doesn't + work when loaded from compressed files. + + * org-compat.el: Make sure that file-name-directory is getting a + stringp. This avoids a possible " (wrong-type-argument stringp + nil)" error when the library in question does not exist. + + * org-odt.el: Replace arc-mode.el by arc-mode. + + * org.el: Replace org-macs.el by org-macs. + + * org-install.el: Provide an empty file that prints a warning + about an outdated configuration. + +2012-10-26 Bastien Guerry + + * org-latex.el (org-export-as-latex): Remove obsolete argument + `hidden'. Also fix the docstring: using 'string as the value + for `to-buffer' outputs a string with no LaTeX header. + (org-export-as-latex-batch) + (org-export-as-latex-to-buffer, org-export-region-as-latex) + (org-export-as-pdf): Don't use the obsoleted argument. + + * ob-haskell.el (org-export-as-latex): Don't use the obsoleted + argument `hidden'. + + * org.el (org-refile): Run within `with-demoted-errors' so + that a corrupted bookmark file does not stop the refile + process. + + * org-capture.el (org-capture-bookmark-last-stored-position): + Ditto for the capture process. + + * org-src.el (org-edit-src-exit): Fix bug when saving an empty + source buffer. + + * org-lparse.el (org-lparse): Fix bug by returning the output + of `org-do-lparse'. + + * org.el (org-refile-check-position): Throw an error when the + refile target is the current buffer and is not a file. + (org-agenda-file-to-front, org-remove-file): Throw an error + when the current buffer is not a file. + (org-check-agenda-file): Enhance the message. + (org-element-type): Autoload. + (org-element-context, org-element-paragraph-parser): Don't + declare as these two functions are not used in org.el. + + * org-lparse.el (browse-url-file-url): Declare. + + * org.el (org-refile-check-position): Fix typo in docstring. + + * org-clock.el (org-clock-modeline-total): Make obsolete. + (org-clock-mode-line-total): Rename from + `org-clock-modeline-total'. + (org-clock-get-sum-start): Fix references to + `org-clock-modeline-total'. + + * org-faces.el (org-agenda-filter-tags) + (org-agenda-filter-category, mode-line): Use the 'mode-line + face instead of the obsolete 'modeline. + + * org-odt.el (org-odt-styles-dir): Try more directories. + Don't throw an error, just send a message. + + * org-odt.el (org-odt-lib-dir, org-odt-data-dir) + (org-odt-schema-dir-list, org-odt-styles-dir-list): Delete. + (org-export-odt-schema-dir, org-odt-styles-dir): Infer the + correct directories without requiring other variables. + + * org-fixup.el (org-make-org-version, org-make-autoloads): + Don't define `org-odt-data-dir' in org-version.el. + + * org-loaddefs.el: New file. + + * org.el ("org-loaddefs.el"): Don't throw an error if the file + cannot be fund. + (org-version): Use org-loaddefs.el instead of org-install.el. + + * org.el: Don't dynamically autoload already autoloaded + functions. + (org-clock-update-time-maybe): Move to org-clock.el. + + * org-exp.el (org-insert-export-options-template): Remove + autoload cookie. + + * org-clock.el (org-resolve-clocks, org-clock-in) + (org-clock-out, org-clock-cancel, org-clock-goto) + (org-clock-sum, org-clock-display, org-clock-report) + (org-dblock-write:clocktable): Add autoload cookie. + (org-clock-update-time-maybe): Moved from org.el. + + * org-beamer.el (org-beamer-sectioning, org-beamer-mode): Ditto. + + * org-ascii.el (org-export-ascii-preprocess): Ditto. + + * org-archive.el (org-archive-subtree) + (org-archive-to-archive-sibling, org-toggle-archive-tag): Add + autoload cookie. + + * org-colview.el (org-columns, org-dblock-write:columnview) + (org-insert-columns-dblock, org-agenda-columns): Ditto. + + * org-table.el (org-table-create-with-table.el) + (org-table-create-or-convert-from-region, org-table-create) + (org-table-convert-region, org-table-import) + (org-table-export, org-table-align) + (org-table-justify-field-maybe, org-table-next-field) + (org-table-previous-field, org-table-next-row) + (org-table-copy-down, org-table-field-info) + (org-table-current-dline, org-table-goto-column) + (org-table-insert-column, org-table-delete-column) + (org-table-move-column-right, org-table-move-column-left) + (org-table-move-column, org-table-move-row-down) + (org-table-move-row-up, org-table-move-row) + (org-table-insert-row, org-table-insert-hline) + (org-table-hline-and-move, org-table-kill-row) + (org-table-sort-lines, org-table-cut-region) + (org-table-copy-region, org-table-paste-rectangle) + (org-table-convert, org-table-wrap-region) + (org-table-edit-field, org-table-sum) + (org-table-get-stored-formulas) + (org-table-maybe-eval-formula) + (org-table-rotate-recalc-marks) + (org-table-maybe-recalculate-line, org-table-eval-formula) + (org-table-recalculate, org-table-iterate) + (org-table-edit-formulas) + (org-table-toggle-coordinate-overlays) + (org-table-toggle-formula-debugger, orgtbl-to-generic) + (orgtbl-to-tsv, orgtbl-to-csv, orgtbl-to-latex) + (orgtbl-to-html, orgtbl-to-texinfo, orgtbl-to-orgtbl): Ditto. + + * org.el (turn-on-orgtbl): Moved here from org-table.el. + (org-clock-persistence-insinuate): Moved here from org-clock.el. + (org-update-all-dblocks, org-map-entries) + (org-require-autoloaded-modules, org-forward-element) + (org-backward-element, org-up-element) + (org-element-greater-elements, org-drag-element-backward) + (org-drag-element-forward, org-mark-element) + (org-narrow-to-element, org-transpose-element) + (org-unindent-buffer): Don't autoload. + + * org-clock.el (org-clock-get-clocktable): Rename from + `org-get-clocktable'. + (org-clock-persistence-insinuate): Move to org.el. + + * org-capture.el: Do no set `generated-autoload-file' locally. + Minor code clean up. + + * org-agenda.el (org-agenda-list): Use + `org-clock-get-clocktable'. Do no set + `generated-autoload-file' locally. + + * org-table.el (org-table-iterate-buffer-tables): Minor + reformatting. + (turn-on-orgtbl): Move to org.el. + + * org-html.el (org-export-htmlize-generate-css): Don't autoload. + + * org-timer.el (org-timer-pause-or-continue, org-timer-stop): + Ditto. + + * ob-tangle.el (org-babel-tangle-lang-exts): Ditto. + + * ob-lob.el (org-babel-lob-ingest): Ditto. + + * org-id.el (org-id-copy) + (org-id-get-with-outline-path-completion) + (org-id-get-with-outline-drilling): Ditto. + + * org-lparse.el (org-lparse-and-open, org-lparse-batch) + (org-lparse-to-buffer, org-replace-region-by) + (org-lparse-region): Ditto. + + * org-mobile.el (org-mobile-create-sumo-agenda): Ditto. + + * org.el (org-cycle): Fix misplaced autoload cookie. + + * org-agenda.el (org-agenda-get-timestamps): Check if the item + is an habit when formatting it with `org-agenda-format-item'. + (org-agenda-get-blocks): Fix bug: don't assume the item is an + habit when formatting with `org-agenda-format-item'. + + * org.el (org-calendar-agenda-action-key): Delete an option. + (org-mode-map): Delete its keybinding. + (org-agenda-action-marker, org-mark-entry-for-agenda-action): + Delete. + + * org-agenda.el (org-agenda-diary-entry): Don't prevent from + being used outside of Org agendas, as it can be used in + calendar buffers too. + +2012-10-26 Caio Tiago Oliveira (tiny change) + + * ob-scala.el (org-babel-scala-wrapper-method): Use a Scala + block enclosing the submitted code. + +2012-10-26 Myles English (tiny change) + + * org-clock.el (org-clock-in): Moved the call to + org-clock-in-prepare-hook until the task's properties + can be accessed. + +2012-10-26 Nicolas Goaziou + + * org.el (org-auto-fill-function): Make sure `adaptive-fill-mode' + mode is nil when pre-computed `fill-prefix' is the empty string. + Otherwise filling functions from fill.el think it has to be computed + again and overwrite it. + + * org.el: Make `org-closest-date' aware of hours repeaters. + + * org.el (org-end-of-line): Do not call `end-of-visual-line' when + moving to the end of line. Also improve behaviour on elements that + can be hidden. + + * org.el (org-sparse-tree): Allow to call `org-show-todo-tree' + with an argument. + + * org-element.el (org-element--get-next-object-candidates): Fix + parsing of objects of the same type in a single paragraph. + + * org-element.el (org-element-sub/superscript-successor): Fix + parsing of sub/superscript at beginning of item. + (org-element-latex-or-entity-successor): Fix parsing of latex + fragments at beginning of item. + + * org-agenda.el (org-agenda-later): Fix function when span is + a number and an argument was provided. Also fix typo in docstring. + + * org.el (org-read-date-analyze): Fix analyzing for dates like + "29.03 16:40". + + * org-element.el (org-element-center-block-parser) + (org-element-drawer-parser, , org-element-footnote-definition-parser) + (org-element-inlinetask-parser, org-element-plain-list-parser) + (org-element-quote-block-parser, org-element-special-block-parser) + (org-element-babel-call-parser, org-element-clock-parser) + (org-element-comment-parser, org-element-comment-block-parser) + (org-element-example-block-parser, org-element-export-block-parser) + (org-element-fixed-width-parser, org-element-horizontal-rule-parser) + (org-element-keyword-parser, org-element-latex-environment-parser) + (org-element-paragraph-parser, org-element-planning-parser) + (org-element-property-drawer-parser, org-element-src-block-parser) + (org-element-table-parser) + (org-element-verse-block-parserorg-element-dynamic-block-parser): + Make sure element never ends at the end of a blank non-empty line. + + * org-element.el (org-element-context) + (org-element--get-next-object-candidates): Fix `org-element-context'. + In particular, the restrictions for an object may be different from + those of its container (i.e. table rows and table cells). + + * org-element.el (org-element-example-block-parser) + (org-element-src-block-parser): Store value of example-blocks and + src-blocks unescaped. + (org-element-example-block-interpreter) + (org-element-src-block-interpreter): Escape value again when storing + it. + + * org-src.el (org-escape-code-in-string) + (org-unescape-code-in-string, org-escape-code-in-region) + (org-unescape-code-in-region): New functions. + (org-edit-src-code, org-edit-src-exit): Use new functions. + + * org.el (org-strip-protective-commas): Removed function. + + * org-exp.el (org-export-select-backend-specific-text): Use new + function. + + * ob.el (org-babel-parse-src-block-match) + (org-babel-parse-inline-src-block-match, org-babel-insert-result): + Always escape produced blocks, independently on the language of the + block, if any. Use new functions. + + * org-element.el (org-element-paragraph-parser): Fix regexp + starting a block. + + * org-element.el (org-element-center-block-parser): + (org-element-drawer-parser, org-element-dynamic-block-parser) + (org-element-example-block-parser, org-element-export-block-parser) + (org-element-latex-environment-parser, org-element-paragraph-parser) + (org-element-property-drawer-parser, org-element-src-block-parser) + (org-element-verse-block-parser): Use stricter regexps for boundaries + of elements. + +2012-10-26 Toby S. Cubitt + + * org-agenda.el (org-agenda-get-sexps): Reset `extra' to nil at + beginning of re-search-forward loop, otherwise next iteration picks up + `extra' value from previous entry. + 2012-09-30 Abdó Roig-Maranges * org-html.el (org-export-html-preprocess) === modified file 'lisp/org/ob-ditaa.el' --- lisp/org/ob-ditaa.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-ditaa.el 2012-10-26 14:42:05 +0000 @@ -40,6 +40,7 @@ ;;; Code: (require 'ob) +(require 'org-compat) (defvar org-ditaa-jar-path) ;; provided by org-exp-blocks === modified file 'lisp/org/ob-haskell.el' --- lisp/org/ob-haskell.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-haskell.el 2012-10-26 14:42:05 +0000 @@ -147,6 +147,8 @@ (format "%S" var))) (defvar org-src-preserve-indentation) +(declare-function org-export-as-latex "org-latex" + (arg &optional ext-plist to-buffer body-only pub-dir)) (defun org-babel-haskell-export-to-lhs (&optional arg) "Export to a .lhs file with all haskell code blocks escaped. When called with a prefix argument the resulting === modified file 'lisp/org/ob-io.el' --- lisp/org/ob-io.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-io.el 2012-10-26 14:42:05 +0000 @@ -38,12 +38,12 @@ (require 'ob-eval) (eval-when-compile (require 'cl)) +(defvar org-babel-tangle-lang-exts) ;; Autoloaded (add-to-list 'org-babel-tangle-lang-exts '("io" . "io")) (defvar org-babel-default-header-args:io '()) (defvar org-babel-io-command "io" "Name of the command to use for executing Io code.") - (defun org-babel-execute:io (body params) "Execute a block of Io code with org-babel. This function is called by `org-babel-execute-src-block'" === modified file 'lisp/org/ob-keys.el' --- lisp/org/ob-keys.el 2012-01-04 14:14:29 +0000 +++ lisp/org/ob-keys.el 2012-10-26 14:42:05 +0000 @@ -98,6 +98,8 @@ (provide 'ob-keys) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob-keys.el ends here === modified file 'lisp/org/ob-lob.el' --- lisp/org/ob-lob.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-lob.el 2012-10-26 14:42:05 +0000 @@ -45,7 +45,6 @@ (defvar org-babel-default-lob-header-args '((:exports . "results")) "Default header arguments to use when exporting #+lob/call lines.") -;;;###autoload (defun org-babel-lob-ingest (&optional file) "Add all named source-blocks defined in FILE to `org-babel-library-of-babel'." @@ -143,6 +142,8 @@ (provide 'ob-lob) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob-lob.el ends here === modified file 'lisp/org/ob-picolisp.el' --- lisp/org/ob-picolisp.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-picolisp.el 2012-10-26 14:42:05 +0000 @@ -60,6 +60,7 @@ (eval-when-compile (require 'cl)) (declare-function run-picolisp "ext:inferior-picolisp" (cmd)) +(defvar org-babel-tangle-lang-exts) ;; Autoloaded ;; optionally define a file extension for this language (add-to-list 'org-babel-tangle-lang-exts '("picolisp" . "l")) === modified file 'lisp/org/ob-ref.el' --- lisp/org/ob-ref.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-ref.el 2012-10-26 14:42:05 +0000 @@ -59,6 +59,7 @@ (declare-function org-at-item-p "org-list" ()) (declare-function org-narrow-to-subtree "org" ()) (declare-function org-id-find-id-in-file "org-id" (id file &optional markerp)) +(declare-function org-id-find-id-file "org-id" (id)) (declare-function org-show-context "org" (&optional key)) (declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) === modified file 'lisp/org/ob-scala.el' --- lisp/org/ob-scala.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-scala.el 2012-10-26 14:42:05 +0000 @@ -36,12 +36,12 @@ (require 'ob-eval) (eval-when-compile (require 'cl)) +(defvar org-babel-tangle-lang-exts) ;; Autoloaded (add-to-list 'org-babel-tangle-lang-exts '("scala" . "scala")) (defvar org-babel-default-header-args:scala '()) (defvar org-babel-scala-command "scala" "Name of the command to use for executing Scala code.") - (defun org-babel-execute:scala (body params) "Execute a block of Scala code with org-babel. This function is called by `org-babel-execute-src-block'" @@ -72,9 +72,17 @@ (defvar org-babel-scala-wrapper-method - "( + +"var str_result :String = null; + +Console.withOut(new java.io.OutputStream() {def write(b: Int){ +}}) { + str_result = { %s -) asString print + }.toString +} + +print(str_result) ") === modified file 'lisp/org/ob-sql.el' --- lisp/org/ob-sql.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-sql.el 2012-10-26 14:42:05 +0000 @@ -47,7 +47,8 @@ (eval-when-compile (require 'cl)) (declare-function org-table-import "org-table" (file arg)) -(declare-function orgtbl-to-csv "org-table" (TABLE PARAMS)) +(declare-function orgtbl-to-csv "org-table" (table params)) +(declare-function org-table-to-lisp "org-table" (&optional txt)) (defvar org-babel-default-header-args:sql '()) === modified file 'lisp/org/ob-sqlite.el' --- lisp/org/ob-sqlite.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-sqlite.el 2012-10-26 14:42:05 +0000 @@ -33,7 +33,8 @@ (declare-function org-fill-template "org" (template alist)) (declare-function org-table-convert-region "org-table" (beg0 end0 &optional separator)) -(declare-function orgtbl-to-csv "org-table" (TABLE PARAMS)) +(declare-function orgtbl-to-csv "org-table" (table params)) +(declare-function org-table-to-lisp "org-table" (&optional txt)) (defvar org-babel-default-header-args:sqlite '()) === modified file 'lisp/org/ob-tangle.el' --- lisp/org/ob-tangle.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob-tangle.el 2012-10-26 14:42:05 +0000 @@ -38,7 +38,6 @@ (declare-function org-babel-update-block-body "org" (new-body)) (declare-function make-directory "files" (dir &optional parents)) -;;;###autoload (defcustom org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) "Alist mapping languages to their file extensions. @@ -514,6 +513,8 @@ (provide 'ob-tangle) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob-tangle.el ends here === modified file 'lisp/org/ob.el' --- lisp/org/ob.el 2012-09-30 15:14:59 +0000 +++ lisp/org/ob.el 2012-10-26 14:42:05 +0000 @@ -39,7 +39,6 @@ (declare-function show-all "outline" ()) (declare-function org-reduce "org" (CL-FUNC CL-SEQ &rest CL-KEYS)) (declare-function org-mark-ring-push "org" (&optional pos buffer)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function tramp-compat-make-temp-file "tramp-compat" (filename &optional dir-flag)) (declare-function tramp-dissect-file-name "tramp" (name &optional nodefault)) @@ -64,7 +63,6 @@ (declare-function org-cycle "org" (&optional arg)) (declare-function org-uniquify "org" (list)) (declare-function org-current-level "org" ()) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-table-import "org-table" (file arg)) (declare-function org-add-hook "org-compat" (hook function &optional append local)) @@ -87,10 +85,11 @@ (declare-function org-list-struct "org-list" ()) (declare-function org-list-prevs-alist "org-list" (struct)) (declare-function org-list-get-list-end "org-list" (item struct prevs)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-remove-if "org" (predicate seq)) (declare-function org-completing-read "org" (&rest args)) -(declare-function org-add-protective-commas "org-src" (beg end)) +(declare-function org-escape-code-in-region "org-src" (beg end)) +(declare-function org-unescape-code-in-string "org-src" (s)) +(declare-function org-table-to-lisp "org-table" (&optional txt)) (defgroup org-babel nil "Code block evaluation and management in `org-mode' documents." @@ -494,8 +493,8 @@ ;;; functions (defvar call-process-region) + ;;;###autoload - (defun org-babel-execute-src-block (&optional arg info params) "Execute the current source code block. Insert the results of execution into the buffer. Source code @@ -838,6 +837,7 @@ (key-binding (or key (read-key-sequence nil)))))) (defvar org-bracket-link-regexp) + ;;;###autoload (defun org-babel-open-src-block-result (&optional re-run) "If `point' is on a src block then open the results of the @@ -944,6 +944,7 @@ (def-edebug-spec org-babel-map-inline-src-blocks (form body)) (defvar org-babel-lob-one-liner-regexp) + ;;;###autoload (defmacro org-babel-map-call-lines (file &rest body) "Evaluate BODY forms on each call line in FILE. @@ -1241,7 +1242,7 @@ ;; get block body less properties, protective commas, and indentation (with-temp-buffer (save-match-data - (insert (org-babel-strip-protective-commas body lang)) + (insert (org-unescape-code-in-string body)) (unless preserve-indentation (org-do-remove-indentation)) (buffer-string))) (org-babel-merge-params @@ -1258,8 +1259,7 @@ (let* ((lang (org-no-properties (match-string 2))) (lang-headers (intern (concat "org-babel-default-header-args:" lang)))) (list lang - (org-babel-strip-protective-commas - (org-no-properties (match-string 5)) lang) + (org-unescape-code-in-string (org-no-properties (match-string 5))) (org-babel-merge-params org-babel-default-inline-header-args (org-babel-params-from-properties lang) @@ -1937,10 +1937,10 @@ ((member "prepend" result-params)))) ; already there (setq results-switches (if results-switches (concat " " results-switches) "")) - (let ((wrap (lambda (start finish &optional escape) + (let ((wrap (lambda (start finish) (goto-char end) (insert (concat finish "\n")) (goto-char beg) (insert (concat start "\n")) - (if escape (org-add-protective-commas (point) end)) + (org-escape-code-in-region (point) end) (goto-char end) (goto-char (point-at-eol)) (setq end (point-marker)))) (proper-list-p (lambda (it) (and (listp it) (null (cdr (last it))))))) @@ -1987,7 +1987,7 @@ ((member "latex" result-params) (funcall wrap "#+BEGIN_LaTeX" "#+END_LaTeX")) ((member "org" result-params) - (funcall wrap "#+BEGIN_SRC org" "#+END_SRC" 'escape)) + (funcall wrap "#+BEGIN_SRC org" "#+END_SRC")) ((member "code" result-params) (funcall wrap (format "#+BEGIN_SRC %s%s" (or lang "none") results-switches) "#+END_SRC")) @@ -2370,17 +2370,6 @@ (funcall nb-add (buffer-substring index (point-max)))) new-body)) -(defun org-babel-strip-protective-commas (body &optional lang) - "Strip protective commas from bodies of source blocks." - (with-temp-buffer - (insert body) - (if (and lang (string= lang "org")) - (progn (goto-char (point-min)) - (while (re-search-forward "^[ \t]*\\(,\\)" nil t) - (replace-match "" nil nil nil 1))) - (org-strip-protective-commas (point-min) (point-max))) - (buffer-string))) - (defun org-babel-script-escape (str &optional force) "Safely convert tables into elisp lists." (let (in-single in-double out) @@ -2599,6 +2588,8 @@ (provide 'ob) - +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; ob.el ends here === modified file 'lisp/org/org-agenda.el' --- lisp/org/org-agenda.el 2012-10-05 05:57:24 +0000 +++ lisp/org/org-agenda.el 2012-10-26 14:42:05 +0000 @@ -1871,6 +1871,7 @@ :version "24.3" :type 'boolean) + ;;;###autoload (defun org-toggle-sticky-agenda (&optional arg) "Toggle `org-agenda-sticky'." @@ -1888,6 +1889,11 @@ (message "Sticky agenda was %s" (if org-agenda-sticky "enabled" "disabled")))))) +(autoload 'org-toggle-sticky-agenda "org-agenda" "\ +Toggle `org-agenda-sticky'. + +\(fn &optional ARG)" t nil) + (defvar org-agenda-buffer nil "Agenda buffer currently being generated.") @@ -2563,6 +2569,43 @@ ((equal org-keys "!") (customize-variable 'org-stuck-projects)) (t (error "Invalid agenda key")))))) +(autoload 'org-agenda "org-agenda" "\ +Dispatch agenda commands to collect entries to the agenda buffer. +Prompts for a command to execute. Any prefix arg will be passed +on to the selected command. The default selections are: + +a Call `org-agenda-list' to display the agenda for current day or week. +t Call `org-todo-list' to display the global todo list. +T Call `org-todo-list' to display the global todo list, select only + entries with a specific TODO keyword (the user gets a prompt). +m Call `org-tags-view' to display headlines with tags matching + a condition (the user is prompted for the condition). +M Like `m', but select only TODO entries, no ordinary headlines. +L Create a timeline for the current buffer. +e Export views to associated files. +s Search entries for keywords. +S Search entries for keywords, only with TODO keywords. +/ Multi occur across all agenda files and also files listed + in `org-agenda-text-search-extra-files'. +< Restrict agenda commands to buffer, subtree, or region. + Press several times to get the desired effect. +> Remove a previous restriction. +# List \"stuck\" projects. +! Configure what \"stuck\" means. +C Configure custom agenda commands. + +More commands can be added by configuring the variable +`org-agenda-custom-commands'. In particular, specific tags and TODO keyword +searches can be pre-defined in this way. + +If the current buffer is in Org-mode and visiting a file, you can also +first press `<' once to indicate that the agenda should be temporarily +\(until the next use of \\[org-agenda]) restricted to the current file. +Pressing `<' twice means to restrict to the current subtree or region +\(if active). + +\(fn &optional ARG ORG-KEYS RESTRICTION)" t nil) + (defun org-agenda-append-agenda () "Append another agenda view to the current one. This function allows interactive building of block agendas. @@ -2857,6 +2900,16 @@ (org-agenda nil cmd-key))) (set-buffer org-agenda-buffer-name) (princ (buffer-string))) + +(autoload 'org-batch-agenda "org-agenda" "\ +Run an agenda command in batch mode and send the result to STDOUT. +If CMD-KEY is a string of length 1, it is used as a key in +`org-agenda-custom-commands' and triggers this command. If it is a +longer string it is used as a tags/todo match string. +Parameters are alternating variable names and values that will be bound +before running the agenda command. + +\(fn CMD-KEY &rest PARAMETERS)" nil t) (def-edebug-spec org-batch-agenda (form &rest sexp)) (defvar org-agenda-info nil) @@ -2915,6 +2968,43 @@ priority-letter priority agenda-day) ",")) (princ "\n"))))) + +(autoload 'org-batch-agenda-csv "org-agenda" "\ +Run an agenda command in batch mode and send the result to STDOUT. +If CMD-KEY is a string of length 1, it is used as a key in +`org-agenda-custom-commands' and triggers this command. If it is a +longer string it is used as a tags/todo match string. +Parameters are alternating variable names and values that will be bound +before running the agenda command. + +The output gives a line for each selected agenda item. Each +item is a list of comma-separated values, like this: + +category,head,type,todo,tags,date,time,extra,priority-l,priority-n + +category The category of the item +head The headline, without TODO kwd, TAGS and PRIORITY +type The type of the agenda entry, can be + todo selected in TODO match + tagsmatch selected in tags match + diary imported from diary + deadline a deadline on given date + scheduled scheduled on given date + timestamp entry has timestamp on given date + closed entry was closed on given date + upcoming-deadline warning about deadline + past-scheduled forwarded scheduled item + block entry has date block including g. date +todo The todo keyword, if any +tags All tags including inherited ones, separated by colons +date The relevant date, like 2007-2-14 +time The time, like 15:00-16:50 +extra Sting with extra planning info +priority-l The priority letter if any was given +priority-n The computed numerical priority +agenda-day The day in the agenda where this is listed + +\(fn CMD-KEY &rest PARAMETERS)" nil t) (def-edebug-spec org-batch-agenda-csv (form &rest sexp)) (defun org-fix-agenda-info (props) @@ -2964,6 +3054,11 @@ (interactive) (eval (list 'org-batch-store-agenda-views))) +(autoload 'org-store-agenda-views "org-agenda" "\ + + +\(fn &rest PARAMETERS)" t nil) + ;;;###autoload (defmacro org-batch-store-agenda-views (&rest parameters) "Run all custom agenda commands that have a file argument." @@ -2998,6 +3093,11 @@ (org-agenda-write (expand-file-name (pop files) dir) nil t bufname))) (and (get-buffer bufname) (kill-buffer bufname))))))) + +(autoload 'org-batch-store-agenda-views "org-agenda" "\ +Run all custom agenda commands that have a file argument. + +\(fn &rest PARAMETERS)" nil t) (def-edebug-spec org-batch-store-agenda-views (&rest sexp)) (defvar org-agenda-current-span nil @@ -4002,7 +4102,7 @@ "" x)) filter "")))) - (setq tbl (apply 'org-get-clocktable p)) + (setq tbl (apply 'org-clock-get-clocktable p)) (insert tbl))) (goto-char (point-min)) (or org-agenda-multi (org-agenda-fit-window-to-buffer)) @@ -4026,6 +4126,20 @@ (setq buffer-read-only t) (message "")))) +(autoload 'org-agenda-list "org-agenda" "\ +Produce a daily/weekly view from all files in variable `org-agenda-files'. +The view will be for the current day or week, but from the overview buffer +you will be able to go to other days/weeks. + +With a numeric prefix argument in an interactive call, the agenda will +span ARG days. Lisp programs should instead specify SPAN to change +the number of days. SPAN defaults to `org-agenda-span'. + +START-DAY defaults to TODAY, or to the most recent match for the weekday +given in `org-agenda-start-on-weekday'. + +\(fn &optional ARG START-DAY SPAN)" t nil) + (defun org-agenda-ndays-to-span (n) "Return a span symbol for a span of N days, or N if none matches." (cond ((symbolp n) n) @@ -4328,6 +4442,52 @@ (org-agenda-finalize) (setq buffer-read-only t)))) +(autoload 'org-search-view "org-agenda" "\ +Show all entries that contain a phrase or words or regular expressions. + +With optional prefix argument TODO-ONLY, only consider entries that are +TODO entries. The argument STRING can be used to pass a default search +string into this function. If EDIT-AT is non-nil, it means that the +user should get a chance to edit this string, with cursor at position +EDIT-AT. + +The search string can be viewed either as a phrase that should be found as +is, or it can be broken into a number of snippets, each of which must match +in a Boolean way to select an entry. The default depends on the variable +`org-agenda-search-view-always-boolean'. +Even if this is turned off (the default) you can always switch to +Boolean search dynamically by preceding the first word with \"+\" or \"-\". + +The default is a direct search of the whole phrase, where each space in +the search string can expand to an arbitrary amount of whitespace, +including newlines. + +If using a Boolean search, the search string is split on whitespace and +each snippet is searched separately, with logical AND to select an entry. +Words prefixed with a minus must *not* occur in the entry. Words without +a prefix or prefixed with a plus must occur in the entry. Matching is +case-insensitive. Words are enclosed by word delimiters (i.e. they must +match whole words, not parts of a word) if +`org-agenda-search-view-force-full-words' is set (default is nil). + +Boolean search snippets enclosed by curly braces are interpreted as +regular expressions that must or (when preceded with \"-\") must not +match in the entry. Snippets enclosed into double quotes will be taken +as a whole, to include whitespace. + +- If the search string starts with an asterisk, search only in headlines. +- If (possibly after the leading star) the search string starts with an + exclamation mark, this also means to look at TODO entries only, an effect + that can also be achieved with a prefix argument. +- If (possibly after star and exclamation mark) the search string starts + with a colon, this will mean that the (non-regexp) snippets of the + Boolean search must match as full words. + +This command searches the agenda files, and in addition the files listed +in `org-agenda-text-search-extra-files'. + +\(fn &optional TODO-ONLY STRING EDIT-AT)" t nil) + ;;; Agenda TODO list (defvar org-select-this-todo-keyword nil) @@ -4418,6 +4578,15 @@ (org-agenda-finalize) (setq buffer-read-only t)))) +(autoload 'org-todo-list "org-agenda" "\ +Show all (not done) TODO entries from all agenda file in a single list. +The prefix arg can be used to select a specific TODO keyword and limit +the list to these. When using \\[universal-argument], you will be prompted +for a keyword. A numeric prefix directly selects the Nth keyword in +`org-todo-keywords-1'. + +\(fn &optional ARG)" t nil) + ;;; Agenda tags match ;;;###autoload @@ -4503,6 +4672,12 @@ (org-agenda-finalize) (setq buffer-read-only t)))) +(autoload 'org-tags-view "org-agenda" "\ +Show all headlines for all `org-agenda-files' matching a TAGS criterion. +The prefix arg TODO-ONLY limits the search to TODO entries. + +\(fn &optional TODO-ONLY MATCH)" t nil) + ;;; Agenda Finding stuck projects (defvar org-agenda-skip-regexp nil @@ -4731,6 +4906,14 @@ (setq org-agenda-redo-command `(org-agenda-list-stuck-projects ,current-prefix-arg))))) +(autoload 'org-agenda-list-stuck-projects "org-agenda" "\ +Create agenda view for projects that are stuck. +Stuck projects are project that have no next actions. For the definitions +of what a project is and how to check if it stuck, customize the variable +`org-stuck-projects'. + +\(fn &rest IGNORE)" t nil) + ;;; Diary integration (defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param. @@ -4909,6 +5092,35 @@ (if results (concat (org-agenda-finalize-entries results) "\n")))) +(autoload 'org-diary "org-agenda" "\ +Return diary information from org files. +This function can be used in a \"sexp\" diary entry in the Emacs calendar. +It accesses org files and extracts information from those files to be +listed in the diary. The function accepts arguments specifying what +items should be listed. For a list of arguments allowed here, see the +variable `org-agenda-entry-types'. + +The call in the diary file should look like this: + + &%%(org-diary) ~/path/to/some/orgfile.org + +Use a separate line for each org file to check. Or, if you omit the file name, +all files listed in `org-agenda-files' will be checked automatically: + + &%%(org-diary) + +If you don't give any arguments (as in the example above), the default +arguments (:deadline :scheduled :timestamp :sexp) are used. +So the example above may also be written as + + &%%(org-diary :deadline :timestamp :sexp :scheduled) + +The function expects the lisp variables `entry' and `date' to be provided +by the caller, because this is how the calendar works. Don't use this +function from a program - use `org-agenda-get-day-entries' instead. + +\(fn &rest ARGS)" nil nil) + ;;; Agenda entry finders (defun org-agenda-get-day-entries (file date &rest args) @@ -5035,7 +5247,6 @@ (>= days n) (<= days n)))) -;;;###autoload (defun org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item (&optional end) "Do we have a reason to ignore this TODO entry because it has a time stamp?" @@ -5098,6 +5309,11 @@ (match-string 1) org-agenda-todo-ignore-timestamp)) (t)))))))))) +(autoload 'org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item "org-agenda" "\ +Do we have a reason to ignore this TODO entry because it has a time stamp? + +\(fn &optional END)" nil nil) + (defconst org-agenda-no-heading-message "No heading for this item in buffer or region.") @@ -5133,12 +5349,13 @@ "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) marker hdmarker deadlinep scheduledp clockp closedp inactivep donep tmp priority category category-pos ee txt timestr tags - b0 b3 e3 head todo-state end-of-match show-all warntime) + b0 b3 e3 head todo-state end-of-match show-all warntime habitp) (goto-char (point-min)) (while (setq end-of-match (re-search-forward regexp nil t)) (setq b0 (match-beginning 0) b3 (match-beginning 3) e3 (match-end 3) todo-state (save-match-data (ignore-errors (org-get-todo-state))) + habitp (and (functionp 'org-is-habit-p) (save-match-data (org-is-habit-p))) show-all (or (eq org-agenda-repeating-timestamp-show-all t) (member todo-state org-agenda-repeating-timestamp-show-all))) @@ -5190,7 +5407,7 @@ (setq txt (org-agenda-format-item (if inactivep org-agenda-inactive-leader nil) head category tags timestr - remove-re t))) + remove-re habitp))) (setq priority (org-get-priority txt)) (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker) @@ -5237,7 +5454,8 @@ tags (save-excursion (org-backward-heading-same-level 0) (org-get-tags-at)) todo-state (org-get-todo-state) - warntime (org-entry-get (point) "APPT_WARNTIME")) + warntime (org-entry-get (point) "APPT_WARNTIME") + extra nil) (dolist (r (if (stringp result) (list result) @@ -5848,7 +6066,7 @@ (concat "<" start-time ">")) ((= d2 d0) (concat "<" end-time ">"))) - remove-re t)))) + remove-re)))) (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker 'type "block" 'date date @@ -7059,7 +7277,7 @@ (move-beginning-of-line 1))))) (defun org-agenda-later (arg) - "Go forward in time by thee current span. + "Go forward in time by the current span. With prefix ARG, go forward that many times the current span." (interactive "p") (org-agenda-check-type t 'agenda) @@ -7071,7 +7289,7 @@ greg2) (cond ((numberp span) - (setq sd (+ span sd))) + (setq sd (+ (* span arg) sd))) ((eq span 'day) (setq sd (+ arg sd))) ((eq span 'week) @@ -8654,7 +8872,6 @@ `org-agenda-diary-entry-in-org-file' is called instead to create entries in that Org-mode file." (interactive) - (org-agenda-check-type t 'agenda 'timeline) (if (not (eq org-agenda-diary-file 'diary-file)) (org-agenda-diary-entry-in-org-file) (require 'diary-lib) @@ -8765,6 +8982,12 @@ (calendar-cursor-to-date)) nil)) +(autoload 'org-calendar-goto-agenda "org-agenda" "\ +Compute the Org-mode agenda for the calendar date displayed at the cursor. +This is a command that has to be installed in `calendar-mode-map'. + +\(fn)" t nil) + (defun org-agenda-convert-date () (interactive) (org-agenda-check-type t 'agenda 'timeline) @@ -9207,6 +9430,40 @@ (message "No event to add") (message "Added %d event%s for today" cnt (if (> cnt 1) "s" ""))))) +(autoload 'org-agenda-to-appt "org-agenda" "\ +Activate appointments found in `org-agenda-files'. +With a \\[universal-argument] prefix, refresh the list of +appointments. + +If FILTER is t, interactively prompt the user for a regular +expression, and filter out entries that don't match it. + +If FILTER is a string, use this string as a regular expression +for filtering entries out. + +If FILTER is a function, filter out entries against which +calling the function returns nil. This function takes one +argument: an entry from `org-agenda-get-day-entries'. + +FILTER can also be an alist with the car of each cell being +either 'headline or 'category. For example: + + '((headline \"IMPORTANT\") + (category \"Work\")) + +will only add headlines containing IMPORTANT or headlines +belonging to the \"Work\" category. + +ARGS are symbols indicating what kind of entries to consider. +By default `org-agenda-to-appt' will use :deadline, :scheduled +and :timestamp entries. See the docstring of `org-diary' for +details and examples. + +If an entry as a APPT_WARNTIME property, its value will be used +to override `appt-message-warning-time'. + +\(fn &optional REFRESH FILTER &rest ARGS)" t nil) + (defun org-agenda-todayp (date) "Does DATE mean today, when considering `org-extend-today-until'?" (let ((today (org-today)) === modified file 'lisp/org/org-archive.el' --- lisp/org/org-archive.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-archive.el 2012-10-26 14:42:05 +0000 @@ -181,6 +181,7 @@ (file-name-nondirectory (buffer-file-name (buffer-base-buffer)))))) +;;;###autoload (defun org-archive-subtree (&optional find-done) "Move the current subtree to the archive. The archive can be a certain top-level heading in the current file, or in @@ -369,6 +370,7 @@ (if (looking-at "^[ \t]*$") (outline-next-visible-heading 1)))) +;;;###autoload (defun org-archive-to-archive-sibling () "Archive the current heading by moving it under the archive sibling. The archive sibling is a sibling of the heading with the heading name @@ -483,6 +485,7 @@ (goto-char end))))) (message "%d trees archived" cntarch))) +;;;###autoload (defun org-toggle-archive-tag (&optional find-done) "Toggle the archive tag for the current headline. With prefix ARG, check all children of current headline and offer tagging @@ -537,4 +540,8 @@ (provide 'org-archive) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-archive.el ends here === modified file 'lisp/org/org-ascii.el' --- lisp/org/org-ascii.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-ascii.el 2012-10-26 14:42:05 +0000 @@ -553,6 +553,7 @@ (kill-buffer (current-buffer))) (current-buffer)))) +;;;###autoload (defun org-export-ascii-preprocess (parameters) "Do extra work for ASCII export." ;; @@ -726,4 +727,8 @@ (provide 'org-ascii) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-ascii.el ends here === modified file 'lisp/org/org-attach.el' --- lisp/org/org-attach.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-attach.el 2012-10-26 14:42:05 +0000 @@ -451,4 +451,8 @@ (provide 'org-attach) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-attach.el ends here === modified file 'lisp/org/org-bbdb.el' --- lisp/org/org-bbdb.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-bbdb.el 2012-10-26 14:42:05 +0000 @@ -338,7 +338,7 @@ (add-hook 'bbdb-after-change-hook 'org-bbdb-updated) ;;;###autoload -(defun org-bbdb-anniversaries() +(defun org-bbdb-anniversaries () "Extract anniversaries from BBDB for display in the agenda." (require 'bbdb) (require 'diary-lib) @@ -433,4 +433,8 @@ (provide 'org-bbdb) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-bbdb.el ends here === modified file 'lisp/org/org-beamer.el' --- lisp/org/org-beamer.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-beamer.el 2012-10-26 14:42:05 +0000 @@ -228,7 +228,7 @@ (org-entry-put nil "BEAMER_env" (match-string 1 tags))) (t (org-entry-delete nil "BEAMER_env")))))) - +;;;###autoload (defun org-beamer-sectioning (level text) "Return the sectioning entry for the current headline. LEVEL is the reduced level of the headline. @@ -370,6 +370,7 @@ "The keymap for `org-beamer-mode'.") (define-key org-beamer-mode-map "\C-c\C-b" 'org-beamer-select-environment) +;;;###autoload (define-minor-mode org-beamer-mode "Special support for editing Org-mode files made to export to beamer." nil " Bm" nil) === modified file 'lisp/org/org-capture.el' --- lisp/org/org-capture.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-capture.el 2012-10-26 14:42:05 +0000 @@ -434,9 +434,10 @@ ;;; The main commands -;;;###autoload (defvar org-capture-initial nil) (defvar org-capture-entry nil) + +;;;###autoload (defun org-capture-string (string &optional keys) (interactive "sInitial text: \n") (let ((org-capture-initial string) @@ -1249,7 +1250,8 @@ (save-restriction (widen) (goto-char pos) - (bookmark-set "org-capture-last-stored") + (with-demoted-errors + (bookmark-set "org-capture-last-stored")) (move-marker org-capture-last-stored-marker (point))))))) (defun org-capture-narrow (beg end) @@ -1280,7 +1282,7 @@ (goto-char pos))) (defvar org-clock-marker) ; Defined in org.el -;;;###autoload + (defun org-capture-insert-template-here () (let* ((template (org-capture-get :template)) (type (org-capture-get :type)) === modified file 'lisp/org/org-clock.el' --- lisp/org/org-clock.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-clock.el 2012-10-26 14:42:05 +0000 @@ -201,7 +201,10 @@ (const :tag "Standard beep" t) (file :tag "Play sound file"))) -(defcustom org-clock-modeline-total 'auto +(define-obsolete-variable-alias 'org-clock-modeline-total + 'org-clock-mode-line-total "24.3") + +(defcustom org-clock-mode-line-total 'auto "Default setting for the time included for the mode line clock. This can be overruled locally using the CLOCK_MODELINE_TOTAL property. Allowed values are: @@ -962,6 +965,7 @@ (not (memq ch '(?K ?G ?S ?C)))) fail-quietly))))) +;;;###autoload (defun org-resolve-clocks (&optional only-dangling-p prompt-fn last-valid) "Resolve all currently open org-mode clocks. If `only-dangling-p' is non-nil, only ask to resolve dangling @@ -1059,6 +1063,8 @@ (setq org-clock-current-task nil)) (defvar org-clock-out-time nil) ; store the time of the last clock-out + +;;;###autoload (defun org-clock-in (&optional select start-time) "Start the clock on the current item. If necessary, clock-out of the currently active clock. @@ -1132,7 +1138,6 @@ (if (and (eobp) (not (org-at-heading-p))) (point-at-bol 0) (point))) - (run-hooks 'org-clock-in-prepare-hook) (save-excursion (when (and selected-task (marker-buffer selected-task)) ;; There is a selected task, move to the correct buffer @@ -1151,6 +1156,7 @@ ;; beginning of the heading, since the ;; user is liking to insert stuff here ;; manually + (run-hooks 'org-clock-in-prepare-hook) (org-clock-history-push)) (org-clock-set-current) (cond ((functionp org-clock-in-switch-to-state) @@ -1310,10 +1316,10 @@ This is for the currently running clock as it is displayed in the mode line. This function looks at the properties LAST_REPEAT and in particular CLOCK_MODELINE_TOTAL and the -corresponding variable `org-clock-modeline-total' and then +corresponding variable `org-clock-mode-line-total' and then decides which time to use." (let ((cmt (or (org-entry-get nil "CLOCK_MODELINE_TOTAL") - (symbol-name org-clock-modeline-total))) + (symbol-name org-clock-mode-line-total))) (lr (org-entry-get nil "LAST_REPEAT"))) (cond ((equal cmt "current") @@ -1428,6 +1434,7 @@ (and (re-search-forward org-property-end-re nil t) (goto-char (match-beginning 0)))))))) +;;;###autoload (defun org-clock-out (&optional switch-to-state fail-quietly at-time) "Stop the currently running clock. Throw an error if there is no running clock and FAIL-QUIETLY is nil. @@ -1587,6 +1594,7 @@ ((eq org-ts-what 'year) (* 24 3600 365.2))))) org-ts-what 'updown))))))) +;;;###autoload (defun org-clock-cancel () "Cancel the running clock by removing the start timestamp." (interactive) @@ -1613,6 +1621,7 @@ (message "Clock canceled") (run-hooks 'org-clock-cancel-hook)) +;;;###autoload (defun org-clock-goto (&optional select) "Go to the currently clocked-in entry, or to the most recently clocked one. With prefix arg SELECT, offer recently clocked tasks for selection." @@ -1651,6 +1660,7 @@ (let ((range (org-clock-special-range 'today))) (org-clock-sum (car range) (cadr range) nil :org-clock-minutes-today))) +;;;###autoload (defun org-clock-sum (&optional tstart tend headline-filter propname) "Sum the times for each subtree. Puts the resulting times in minutes as a text property on each headline. @@ -1749,6 +1759,7 @@ (org-clock-sum tstart) org-clock-file-total-minutes))) +;;;###autoload (defun org-clock-display (&optional total-only) "Show subtree times in the entire buffer. If TOTAL-ONLY is non-nil, only show the total time for the entire file @@ -1859,7 +1870,7 @@ 'org-clock-out-if-current) ;;;###autoload -(defun org-get-clocktable (&rest props) +(defun org-clock-get-clocktable (&rest props) "Get a formatted clocktable with parameters according to PROPS. The table is created in a temporary buffer, fully formatted and fontified, and then returned." @@ -1879,6 +1890,7 @@ (re-search-forward "^[ \t]*#\\+END" nil t) (point-at-bol))))) +;;;###autoload (defun org-clock-report (&optional arg) "Create a table containing a report about clocked time. If the cursor is inside an existing clocktable block, then the table @@ -2165,6 +2177,7 @@ (org-update-dblock) t))))) +;;;###autoload (defun org-dblock-write:clocktable (params) "Write the standard clocktable." (setq params (org-combine-plists org-clocktable-defaults params)) @@ -2675,6 +2688,48 @@ (defvar org-clock-loaded nil "Was the clock file loaded?") +(defun org-clock-update-time-maybe () + "If this is a CLOCK line, update it and return t. +Otherwise, return nil." + (interactive) + (save-excursion + (beginning-of-line 1) + (skip-chars-forward " \t") + (when (looking-at org-clock-string) + (let ((re (concat "[ \t]*" org-clock-string + " *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]" + "\\([ \t]*=>.*\\)?\\)?")) + ts te h m s neg) + (cond + ((not (looking-at re)) + nil) + ((not (match-end 2)) + (when (and (equal (marker-buffer org-clock-marker) (current-buffer)) + (> org-clock-marker (point)) + (<= org-clock-marker (point-at-eol))) + ;; The clock is running here + (setq org-clock-start-time + (apply 'encode-time + (org-parse-time-string (match-string 1)))) + (org-clock-update-mode-line))) + (t + (and (match-end 4) (delete-region (match-beginning 4) (match-end 4))) + (end-of-line 1) + (setq ts (match-string 1) + te (match-string 3)) + (setq s (- (org-float-time + (apply 'encode-time (org-parse-time-string te))) + (org-float-time + (apply 'encode-time (org-parse-time-string ts)))) + neg (< s 0) + s (abs s) + h (floor (/ s 3600)) + s (- s (* 3600 h)) + m (floor (/ s 60)) + s (- s (* 60 s))) + (insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m)) + t)))))) + (defun org-clock-save () "Persist various clock-related data to disk. The details of what will be saved are regulated by the variable @@ -2766,15 +2821,13 @@ (if (outline-invisible-p) (org-show-context)))))))))) -;;;###autoload -(defun org-clock-persistence-insinuate () - "Set up hooks for clock persistence." - (add-hook 'org-mode-hook 'org-clock-load) - (add-hook 'kill-emacs-hook 'org-clock-save)) - ;; Suggested bindings (org-defkey org-mode-map "\C-c\C-x\C-e" 'org-clock-modify-effort-estimate) (provide 'org-clock) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-clock.el ends here === modified file 'lisp/org/org-colview.el' --- lisp/org/org-colview.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-colview.el 2012-10-26 14:42:05 +0000 @@ -686,6 +686,7 @@ (move-marker org-columns-top-level-marker org-entry-property-inherited-from) (move-marker org-columns-top-level-marker (point)))) +;;;###autoload (defun org-columns (&optional columns-fmt-string) "Turn on column view on an org-mode file. When COLUMNS-FMT-STRING is non-nil, use it as the column format." @@ -1222,6 +1223,7 @@ (push row tbl))))) (append (list title 'hline) (nreverse tbl))))) +;;;###autoload (defun org-dblock-write:columnview (params) "Write the column view table. PARAMS is a property list of parameters: @@ -1334,6 +1336,7 @@ (t (error "Garbage in listtable: %s" x)))) tbl "\n")) +;;;###autoload (defun org-insert-columns-dblock () "Create a dynamic block capturing a column view table." (interactive) @@ -1357,6 +1360,7 @@ (defvar org-agenda-columns-compute-summary-properties); defined in org-agenda.el (defvar org-agenda-columns-add-appointments-to-effort-sum); as well +;;;###autoload (defun org-agenda-columns () "Turn on or update column view in the agenda." (interactive) === modified file 'lisp/org/org-compat.el' --- lisp/org/org-compat.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-compat.el 2012-10-26 14:42:05 +0000 @@ -327,7 +327,7 @@ (apply 'propertize string properties))) (defmacro org-find-library-dir (library) - `(file-name-directory (locate-library ,library))) + `(file-name-directory (or (locate-library ,library) ""))) (defun org-count-lines (s) "How many lines in string S?" === modified file 'lisp/org/org-datetree.el' --- lisp/org/org-datetree.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-datetree.el 2012-10-26 14:42:05 +0000 @@ -207,4 +207,8 @@ (provide 'org-datetree) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-datetree.el ends here === modified file 'lisp/org/org-docbook.el' --- lisp/org/org-docbook.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-docbook.el 2012-10-26 14:42:05 +0000 @@ -1451,4 +1451,8 @@ (provide 'org-docbook) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-docbook.el ends here === modified file 'lisp/org/org-element.el' --- lisp/org/org-element.el 2012-10-05 05:57:24 +0000 +++ lisp/org/org-element.el 2012-10-26 14:42:05 +0000 @@ -478,7 +478,7 @@ Assume point is at the beginning of the block." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_CENTER" limit t))) + (re-search-forward "^[ \t]*#\\+END_CENTER[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -494,7 +494,8 @@ (forward-line) (point))) (end (save-excursion (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'center-block (nconc (list :begin begin @@ -524,7 +525,7 @@ Assume point is at beginning of drawer." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward "^[ \t]*:END:" limit t))) + (if (not (save-excursion (re-search-forward "^[ \t]*:END:[ \t]*$" limit t))) ;; Incomplete drawer: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((drawer-end-line (match-beginning 0))) @@ -544,7 +545,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'drawer (nconc (list :begin begin @@ -578,7 +580,8 @@ Assume point is at beginning of dynamic block." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward org-dblock-end-re limit t))) + (if (not (save-excursion + (re-search-forward "^[ \t]*#\\+END:?[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -598,7 +601,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'dynamic-block (nconc (list :begin begin @@ -653,7 +657,8 @@ (contents-end (and contents-begin ending)) (end (progn (goto-char ending) (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'footnote-definition (nconc (list :label label @@ -904,7 +909,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol)))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position)))) (inlinetask (list 'inlinetask (nconc @@ -1108,7 +1114,8 @@ (unless (bolp) (forward-line)) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) ;; Return value. (list 'plain-list (nconc @@ -1145,7 +1152,7 @@ Assume point is at the beginning of the block." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_QUOTE" limit t))) + (re-search-forward "^[ \t]*#\\+END_QUOTE[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -1162,7 +1169,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'quote-block (nconc (list :begin begin @@ -1227,7 +1235,8 @@ (type (progn (looking-at "[ \t]*#\\+BEGIN_\\(S-+\\)") (upcase (match-string-no-properties 1))))) (if (not (save-excursion - (re-search-forward (concat "^[ \t]*#\\+END_" type) limit t))) + (re-search-forward + (format "^[ \t]*#\\+END_%s[ \t]*$" type) limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((block-end-line (match-beginning 0))) @@ -1243,8 +1252,9 @@ (pos-before-blank (progn (goto-char block-end-line) (forward-line) (point))) - (end (progn (org-skip-whitespace) - (if (eobp) (point) (point-at-bol))))) + (end (progn (skip-chars-forward " \r\t\n" limit) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'special-block (nconc (list :type type @@ -1295,7 +1305,8 @@ (begin (point-at-bol)) (pos-before-blank (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'babel-call (list :begin begin :end end @@ -1338,7 +1349,8 @@ (status (if time 'closed 'running)) (post-blank (let ((before-blank (progn (forward-line) (point)))) (skip-chars-forward " \r\t\n" limit) - (unless (eobp) (beginning-of-line)) + (skip-chars-backward " \t") + (unless (bolp) (end-of-line)) (count-lines before-blank (point)))) (end (point))) (list 'clock @@ -1396,7 +1408,8 @@ (point))) (end (progn (goto-char com-end) (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'comment (nconc (list :begin begin @@ -1425,7 +1438,7 @@ Assume point is at comment block beginning." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_COMMENT" limit t))) + (re-search-forward "^[ \t]*#\\+END_COMMENT[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -1438,7 +1451,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol)))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position)))) (value (buffer-substring-no-properties contents-begin contents-end))) (list 'comment-block @@ -1470,7 +1484,7 @@ `:switches', `:value' and `:post-blank' keywords." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_EXAMPLE" limit t))) + (re-search-forward "^[ \t]*#\\+END_EXAMPLE[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -1502,12 +1516,15 @@ (begin (car keywords)) (contents-begin (progn (forward-line) (point))) (hidden (org-invisible-p2)) - (value (buffer-substring-no-properties contents-begin contents-end)) + (value (org-unescape-code-in-string + (buffer-substring-no-properties + contents-begin contents-end))) (pos-before-blank (progn (goto-char contents-end) (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'example-block (nconc (list :begin begin @@ -1529,7 +1546,8 @@ (let ((switches (org-element-property :switches example-block))) (concat "#+BEGIN_EXAMPLE" (and switches (concat " " switches)) "\n" (org-remove-indentation - (org-element-property :value example-block)) + (org-escape-code-in-string + (org-element-property :value example-block))) "#+END_EXAMPLE"))) @@ -1549,7 +1567,8 @@ (type (progn (looking-at "[ \t]*#\\+BEGIN_\\(\\S-+\\)") (upcase (org-match-string-no-properties 1))))) (if (not (save-excursion - (re-search-forward (concat "^[ \t]*#\\+END_" type) limit t))) + (re-search-forward + (format "^[ \t]*#\\+END_%s[ \t]*$" type) limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -1562,7 +1581,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol)))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position)))) (value (buffer-substring-no-properties contents-begin contents-end))) (list 'export-block @@ -1612,7 +1632,8 @@ (forward-line)) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'fixed-width (nconc (list :begin begin @@ -1642,7 +1663,8 @@ (begin (car keywords)) (post-hr (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'horizontal-rule (nconc (list :begin begin @@ -1675,7 +1697,8 @@ (match-end 0) (point-at-eol)))) (pos-before-blank (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'keyword (list :key key :value value @@ -1711,12 +1734,14 @@ (env (progn (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}") (regexp-quote (match-string 1)))) (code-end - (progn (re-search-forward (format "^[ \t]*\\\\end{%s}" env) limit t) + (progn (re-search-forward + (format "^[ \t]*\\\\end{%s}[ \t]*$" env) limit t) (forward-line) (point))) (value (buffer-substring-no-properties code-begin code-end)) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'latex-environment (nconc (list :begin begin @@ -1744,69 +1769,80 @@ Assume point is at the beginning of the paragraph." (save-excursion - (let* (;; INNER-PAR-P is non-nil when paragraph is at the + (let* ((contents-begin (point)) + ;; INNER-PAR-P is non-nil when paragraph is at the ;; beginning of an item or a footnote reference. In that ;; case, we mustn't look for affiliated keywords since they ;; belong to the container. (inner-par-p (not (bolp))) - (contents-begin (point)) (keywords (unless inner-par-p (org-element--collect-affiliated-keywords))) (begin (if inner-par-p contents-begin (car keywords))) (before-blank (let ((case-fold-search t)) (end-of-line) - (re-search-forward org-element-paragraph-separate limit 'm) - (while (and (/= (point) limit) - (cond - ;; Skip non-existent or incomplete drawer. - ((save-excursion - (beginning-of-line) - (and (looking-at "[ \t]*:\\S-") - (or (not (looking-at org-drawer-regexp)) - (not (save-excursion - (re-search-forward - "^[ \t]*:END:" limit t))))))) - ;; Stop at comments. - ((save-excursion - (beginning-of-line) - (not (looking-at "[ \t]*#\\S-"))) nil) - ;; Skip incomplete dynamic blocks. - ((save-excursion - (beginning-of-line) - (looking-at "[ \t]*#\\+BEGIN: ")) - (not (save-excursion - (re-search-forward - "^[ \t]*\\+END:" limit t)))) - ;; Skip incomplete blocks. - ((save-excursion - (beginning-of-line) - (looking-at "[ \t]*#\\+BEGIN_\\(\\S-+\\)")) - (not (save-excursion - (re-search-forward - (concat "^[ \t]*#\\+END_" - (match-string 1)) - limit t)))) - ;; Skip incomplete latex environments. - ((save-excursion - (beginning-of-line) - (looking-at "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}")) - (not (save-excursion - (re-search-forward - (format "^[ \t]*\\\\end{%s}" - (match-string 1)) - limit t)))) - ;; Skip ill-formed keywords. - ((not (save-excursion - (beginning-of-line) - (looking-at "[ \t]*#\\+\\S-+:")))))) - (re-search-forward org-element-paragraph-separate limit 'm)) - (if (eobp) (point) (goto-char (line-beginning-position))))) + (if (not (re-search-forward + org-element-paragraph-separate limit 'm)) + limit + ;; A matching `org-element-paragraph-separate' is not + ;; necessarily the end of the paragraph. In + ;; particular, lines starting with # or : as a first + ;; non-space character are ambiguous. We have check + ;; if they are valid Org syntax (i.e. not an + ;; incomplete keyword). + (beginning-of-line) + (while (not + (or + ;; There's no ambiguity for other symbols or + ;; empty lines: stop here. + (looking-at "[ \t]*\\(?:[^:#]\\|$\\)") + ;; Stop at valid fixed-width areas. + (looking-at "[ \t]*:\\(?: \\|$\\)") + ;; Stop at drawers. + (and (looking-at org-drawer-regexp) + (save-excursion + (re-search-forward + "^[ \t]*:END:[ \t]*$" limit t))) + ;; Stop at valid comments. + (looking-at "[ \t]*#\\(?: \\|$\\)") + ;; Stop at valid dynamic blocks. + (and (looking-at org-dblock-start-re) + (save-excursion + (re-search-forward + "^[ \t]*#\\+END:?[ \t]*$" limit t))) + ;; Stop at valid blocks. + (and (looking-at + "[ \t]*#\\+BEGIN_\\(\\S-+\\)") + (save-excursion + (re-search-forward + (format "^[ \t]*#\\+END_%s[ \t]*$" + (match-string 1)) + limit t))) + ;; Stop at valid latex environments. + (and (looking-at + "^[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}[ \t]*$") + (save-excursion + (re-search-forward + (format "^[ \t]*\\\\end{%s}[ \t]*$" + (match-string 1)) + limit t))) + ;; Stop at valid keywords. + (looking-at "[ \t]*#\\+\\S-+:") + ;; Skip everything else. + (not + (progn + (end-of-line) + (re-search-forward org-element-paragraph-separate + limit 'm))))) + (beginning-of-line))) + (if (= (point) limit) limit + (goto-char (line-beginning-position))))) (contents-end (progn (skip-chars-backward " \r\t\n" contents-begin) (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'paragraph (nconc (list :begin begin @@ -1837,7 +1873,8 @@ (begin (point)) (post-blank (let ((before-blank (progn (forward-line) (point)))) (skip-chars-forward " \r\t\n" limit) - (unless (eobp) (beginning-of-line)) + (skip-chars-backward " \t") + (unless (bolp) (end-of-line)) (count-lines before-blank (point)))) (end (point)) closed deadline scheduled) @@ -1895,7 +1932,7 @@ (hidden (org-invisible-p2)) (properties (let (val) - (while (not (looking-at "^[ \t]*:END:")) + (while (not (looking-at "^[ \t]*:END:[ \t]*$")) (when (looking-at "[ \t]*:\\([A-Za-z][-_A-Za-z0-9]*\\):") (push (cons (org-match-string-no-properties 1) (org-trim @@ -1908,7 +1945,8 @@ (point-at-bol))) (pos-before-blank (progn (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'property-drawer (list :begin begin :end end @@ -1974,7 +2012,8 @@ Assume point is at the beginning of the block." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward "^[ \t]*#\\+END_SRC" limit t))) + (if (not (save-excursion (re-search-forward "^[ \t]*#\\+END_SRC[ \t]*$" + limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -2017,13 +2056,15 @@ ;; Get visibility status. (hidden (progn (forward-line) (org-invisible-p2))) ;; Retrieve code. - (value (buffer-substring-no-properties (point) contents-end)) + (value (org-unescape-code-in-string + (buffer-substring-no-properties (point) contents-end))) (pos-before-blank (progn (goto-char contents-end) (forward-line) (point))) ;; Get position after ending blank lines. (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'src-block (nconc (list :language language @@ -2051,7 +2092,6 @@ (params (org-element-property :parameters src-block)) (value (let ((val (org-element-property :value src-block))) (cond - (org-src-preserve-indentation val) ((zerop org-edit-src-content-indentation) (org-remove-indentation val)) @@ -2065,7 +2105,7 @@ (concat (and lang (concat " " lang)) (and switches (concat " " switches)) (and params (concat " " params)))) - value + (org-escape-code-in-string value) "#+END_SRC"))) @@ -2087,7 +2127,10 @@ (type (if (org-at-table.el-p) 'table.el 'org)) (keywords (org-element--collect-affiliated-keywords)) (begin (car keywords)) - (table-end (goto-char (marker-position (org-table-end t)))) + (table-end + (if (re-search-forward org-table-any-border-regexp limit 'm) + (goto-char (match-beginning 0)) + (point))) (tblfm (let (acc) (while (looking-at "[ \t]*#\\+TBLFM: +\\(.*\\)[ \t]*$") (push (org-match-string-no-properties 1) acc) @@ -2095,7 +2138,8 @@ acc)) (pos-before-blank (point)) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'table (nconc (list :begin begin @@ -2179,7 +2223,7 @@ Assume point is at beginning of the block." (let ((case-fold-search t)) (if (not (save-excursion - (re-search-forward "^[ \t]*#\\+END_VERSE" limit t))) + (re-search-forward "^[ \t]*#\\+END_VERSE[ \t]*$" limit t))) ;; Incomplete block: parse it as a paragraph. (org-element-paragraph-parser limit) (let ((contents-end (match-beginning 0))) @@ -2192,7 +2236,8 @@ (forward-line) (point))) (end (progn (skip-chars-forward " \r\t\n" limit) - (if (eobp) (point) (point-at-bol))))) + (skip-chars-backward " \t") + (if (bolp) (point) (line-end-position))))) (list 'verse-block (nconc (list :begin begin @@ -2367,6 +2412,7 @@ Return value is a cons cell whose CAR is `entity' or `latex-fragment' and CDR is beginning position." (save-excursion + (unless (bolp) (backward-char)) (let ((matchers (remove "begin" (plist-get org-format-latex-options :matchers))) ;; ENTITY-RE matches both LaTeX commands and Org entities. @@ -3044,6 +3090,7 @@ Return value is a cons cell whose CAR is either `subscript' or `superscript' and CDR is beginning position." (save-excursion + (unless (bolp) (backward-char)) (when (re-search-forward org-match-substring-regexp limit t) (cons (if (string= (match-string 2) "_") 'subscript 'superscript) (match-beginning 2))))) @@ -3838,6 +3885,15 @@ type, as a symbol. OBJECTS is the previous candidates alist." + ;; Filter out any object found but not belonging to RESTRICTION. + (setq objects + (org-remove-if-not + (lambda (obj) + (let ((type (car obj))) + (memq (or (cdr (assq type org-element-object-successor-alist)) + type) + restriction))) + objects)) (let (next-candidates types-to-search) ;; If no previous result, search every object type in RESTRICTION. ;; Otherwise, keep potential candidates (old objects located after @@ -4235,7 +4291,7 @@ (progn (beginning-of-line) (skip-chars-forward "* ") (setq end (point-at-eol)))) - (and (memq type '(paragraph table-cell verse-block)) + (and (memq type '(paragraph table-row verse-block)) (let ((cbeg (org-element-property :contents-begin element)) (cend (org-element-property @@ -4254,7 +4310,7 @@ candidates))) ;; If ORIGIN is before next object in element, there's ;; no point in looking further. - (if (> (cdr closest-cand) origin) (throw 'exit element) + (if (> (cdr closest-cand) origin) (throw 'exit parent) (let* ((object (progn (goto-char (cdr closest-cand)) (funcall (intern (format "org-element-%s-parser" @@ -4274,7 +4330,9 @@ ;; search to the end of its contents. (t (goto-char cbeg) (org-element-put-property object :parent parent) - (setq parent object end cend))))))) + (setq parent object + restriction (org-element-restriction object) + end cend))))))) parent)))))) (defsubst org-element-nested-p (elem-A elem-B) @@ -4351,6 +4409,10 @@ (cdr overlays))) (goto-char (org-element-property :end elem-B))))) - (provide 'org-element) + +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-element.el ends here === modified file 'lisp/org/org-exp.el' --- lisp/org/org-exp.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-exp.el 2012-10-26 14:42:05 +0000 @@ -48,6 +48,7 @@ (declare-function org-table-colgroup-line-p "org-table" (line)) (declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) +(declare-function org-unescape-code-in-region "org-src" (beg end)) (autoload 'org-export-generic "org-export-generic" "Export using the generic exporter" t) @@ -1790,7 +1791,7 @@ beg-content end-content `(org-protected t original-indentation ,ind org-native-text t)) ;; strip protective commas - (org-strip-protective-commas beg-content end-content) + (org-unescape-code-in-region beg-content end-content) (delete-region (match-beginning 0) (match-end 0)) (save-excursion (goto-char beg) @@ -3230,7 +3231,6 @@ org-archive-location "org file:~/org/%s.org")) -;;;###autoload (defun org-insert-export-options-template () "Insert into the buffer a template with information for exporting." (interactive) @@ -3348,4 +3348,8 @@ (provide 'org-exp) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-exp.el ends here === modified file 'lisp/org/org-faces.el' --- lisp/org/org-faces.el 2012-10-05 05:57:24 +0000 +++ lisp/org/org-faces.el 2012-10-26 14:42:05 +0000 @@ -692,13 +692,13 @@ :group 'org-faces) (defface org-agenda-filter-tags - (org-compatible-face 'modeline + (org-compatible-face 'mode-line nil) "Face for tag(s) in the mode-line when filtering the agenda." :group 'org-faces) (defface org-agenda-filter-category - (org-compatible-face 'modeline + (org-compatible-face 'mode-line nil) "Face for tag(s) in the mode-line when filtering the agenda." :group 'org-faces) @@ -770,9 +770,9 @@ "Face used to highlight math latex and other special exporter stuff." :group 'org-faces) -(org-copy-face 'modeline 'org-mode-line-clock +(org-copy-face 'mode-line 'org-mode-line-clock "Face used for clock display in mode line.") -(org-copy-face 'modeline 'org-mode-line-clock-overrun +(org-copy-face 'mode-line 'org-mode-line-clock-overrun "Face used for clock display for overrun tasks in mode line." :background "red") === modified file 'lisp/org/org-feed.el' --- lisp/org/org-feed.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-feed.el 2012-10-26 14:42:05 +0000 @@ -695,4 +695,8 @@ (provide 'org-feed) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-feed.el ends here === modified file 'lisp/org/org-footnote.el' --- lisp/org/org-footnote.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-footnote.el 2012-10-26 14:42:05 +0000 @@ -948,4 +948,8 @@ (provide 'org-footnote) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-footnote.el ends here === modified file 'lisp/org/org-freemind.el' --- lisp/org/org-freemind.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-freemind.el 2012-10-26 14:42:05 +0000 @@ -1219,8 +1219,8 @@ (provide 'org-freemind) - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: ;;; org-freemind.el ends here === modified file 'lisp/org/org-html.el' --- lisp/org/org-html.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-html.el 2012-10-26 14:42:05 +0000 @@ -210,6 +210,7 @@ your own style information." :group 'org-export-html :type 'boolean) + ;;;###autoload (put 'org-export-html-style-include-default 'safe-local-variable 'booleanp) @@ -2380,7 +2381,6 @@ (plist-get htmlize-buffer-places 'content-end))) (kill-buffer htmlbuf)))) -;;;###autoload (defun org-export-htmlize-generate-css () "Create the CSS for all font definitions in the current Emacs session. Use this to create face definitions in your CSS style file that can then @@ -2749,4 +2749,8 @@ (provide 'org-html) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-html.el ends here === modified file 'lisp/org/org-icalendar.el' --- lisp/org/org-icalendar.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-icalendar.el 2012-10-26 14:42:05 +0000 @@ -684,4 +684,8 @@ (provide 'org-icalendar) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-icalendar.el ends here === modified file 'lisp/org/org-id.el' --- lisp/org/org-id.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-id.el 2012-10-26 14:42:05 +0000 @@ -233,7 +233,6 @@ (org-entry-put (point) "ID" nil)) (org-id-get (point) 'create)) -;;;###autoload (defun org-id-copy () "Copy the ID of the entry at point to the kill ring. Create an ID if necessary." @@ -259,7 +258,6 @@ (org-id-add-location id (buffer-file-name (buffer-base-buffer))) id))))) -;;;###autoload (defun org-id-get-with-outline-path-completion (&optional targets) "Use outline-path-completion to retrieve the ID of an entry. TARGETS may be a setting for `org-refile-targets' to define the eligible @@ -276,7 +274,6 @@ (prog1 (org-id-get pom 'create) (move-marker pom nil)))) -;;;###autoload (defun org-id-get-with-outline-drilling (&optional targets) "Use an outline-cycling interface to retrieve the ID of an entry. This only finds entries in the current buffer, using `org-get-location'. @@ -681,4 +678,8 @@ (provide 'org-id) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-id.el ends here === modified file 'lisp/org/org-indent.el' --- lisp/org/org-indent.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-indent.el 2012-10-26 14:42:05 +0000 @@ -431,4 +431,8 @@ (provide 'org-indent) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-indent.el ends here === modified file 'lisp/org/org-install.el' --- lisp/org/org-install.el 2012-01-19 07:21:25 +0000 +++ lisp/org/org-install.el 2012-10-26 14:42:05 +0000 @@ -1,37 +1,13 @@ -;;; org-install.el --- Outline-based notes management and organizer -;; Carstens outline-mode for keeping track of everything. -;; Copyright (C) 2004-2012 Free Software Foundation, Inc. -;; -;; Author: Carsten Dominik -;; Keywords: outlines, hypermedia, calendar, wp -;; Homepage: http://orgmode.org -;; Version: 6.06b -;; -;; 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 . -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;;; Commentary: -;; -;; When Org-mode is distributed with Emacs, this is just a dummy file. -;; In an Org-mode distribution outside Emacs, this file would provide -;; the autoloads. We include this dummy version in Emacs, so that people -;; can leave a (require 'org-install) in .emacs, independently of -;; which kind of distribution they use. -;; - +;;; org-install.el --- autogenerated file, do not edit +;; +;;; Code: +(warn "The file org-install is obsolete. +Please change your configuration to (require 'org) instead.") + (provide 'org-install) - + +;; Local Variables: +;; no-byte-compile: t +;; coding: utf-8 +;; End: ;;; org-install.el ends here === modified file 'lisp/org/org-irc.el' --- lisp/org/org-irc.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-irc.el 2012-10-26 14:42:05 +0000 @@ -252,4 +252,8 @@ (provide 'org-irc) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-irc.el ends here === modified file 'lisp/org/org-latex.el' --- lisp/org/org-latex.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-latex.el 2012-10-26 14:42:05 +0000 @@ -787,14 +787,14 @@ --load=$HOME/lib/emacs/org.el --eval \"(setq org-export-headline-levels 2)\" --visit=MyFile --funcall org-export-as-latex-batch" - (org-export-as-latex org-export-headline-levels 'hidden)) + (org-export-as-latex org-export-headline-levels)) ;;;###autoload (defun org-export-as-latex-to-buffer (arg) "Call `org-export-as-latex` with output to a temporary buffer. No file is created. The prefix ARG is passed through to `org-export-as-latex'." (interactive "P") - (org-export-as-latex arg nil nil "*Org LaTeX Export*") + (org-export-as-latex arg nil "*Org LaTeX Export*") (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window "*Org LaTeX Export*"))) @@ -848,7 +848,7 @@ (set-mark (point)) ;; to activate the region (goto-char beg) (setq rtn (org-export-as-latex - nil nil ext-plist + nil ext-plist buffer body-only)) (if (fboundp 'deactivate-mark) (deactivate-mark)) (if (and (org-called-interactively-p 'any) (bufferp rtn)) @@ -856,21 +856,19 @@ rtn))) ;;;###autoload -(defun org-export-as-latex (arg &optional hidden ext-plist - to-buffer body-only pub-dir) +(defun org-export-as-latex (arg &optional ext-plist to-buffer body-only pub-dir) "Export current buffer to a LaTeX file. If there is an active region, export only the region. The prefix ARG specifies how many levels of the outline should become headlines. The default is 3. Lower levels will be exported depending on `org-export-latex-low-levels'. The default is to convert them as description lists. -HIDDEN is obsolete and does nothing. -EXT-PLIST is a property list with -external parameters overriding org-mode's default settings, but -still inferior to file-local settings. When TO-BUFFER is -non-nil, create a buffer with that name and export to that -buffer. If TO-BUFFER is the symbol `string', don't leave any -buffer behind but just return the resulting LaTeX as a string. +EXT-PLIST is a property list with external parameters overriding +org-mode's default settings, but still inferior to file-local settings. +When TO-BUFFER is non-nil, create a buffer with that name and export +to that buffer. If TO-BUFFER is the symbol `string', don't leave any +buffer behind and just return the resulting LaTeX as a string, with +no LaTeX header. When BODY-ONLY is set, don't produce the file header and footer, simply return the content of \\begin{document}...\\end{document}, without even the \\begin{document} and \\end{document} commands. @@ -957,10 +955,9 @@ (auto-insert nil); Avoid any auto-insert stuff for the new file (TeX-master (boundp 'TeX-master)) (buffer (if to-buffer - (cond - ((eq to-buffer 'string) (get-buffer-create - "*Org LaTeX Export*")) - (t (get-buffer-create to-buffer))) + (if (eq to-buffer 'string) + (get-buffer-create "*Org LaTeX Export*") + (get-buffer-create to-buffer)) (find-file-noselect filename))) (odd org-odd-levels-only) (header (org-export-latex-make-header title opt-plist)) @@ -1120,8 +1117,7 @@ (interactive "P") (message "Exporting to PDF...") (let* ((wconfig (current-window-configuration)) - (lbuf (org-export-as-latex arg hidden ext-plist - to-buffer body-only pub-dir)) + (lbuf (org-export-as-latex arg ext-plist to-buffer body-only pub-dir)) (file (buffer-file-name lbuf)) (base (file-name-sans-extension (buffer-file-name lbuf))) (pdffile (concat base ".pdf")) @@ -2899,4 +2895,8 @@ (provide 'org-export-latex) (provide 'org-latex) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-latex.el ends here === modified file 'lisp/org/org-lparse.el' --- lisp/org/org-lparse.el 2012-10-24 18:16:41 +0000 +++ lisp/org/org-lparse.el 2012-10-26 14:42:05 +0000 @@ -50,7 +50,6 @@ (require 'org-list) (require 'format-spec) -;;;###autoload (defun org-lparse-and-open (target-backend native-backend arg &optional file-or-buf) "Export outline to TARGET-BACKEND via NATIVE-BACKEND and open exported file. @@ -71,7 +70,6 @@ (when org-export-kill-product-buffer-when-displayed (kill-buffer (current-buffer)))))) -;;;###autoload (defun org-lparse-batch (target-backend &optional native-backend) "Call the function `org-lparse'. This function can be used in batch processing as: @@ -83,7 +81,6 @@ (org-lparse target-backend native-backend org-export-headline-levels 'hidden)) -;;;###autoload (defun org-lparse-to-buffer (backend arg) "Call `org-lparse' with output to a temporary buffer. No file is created. The prefix ARG is passed through to @@ -93,7 +90,6 @@ (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window tempbuf)))) -;;;###autoload (defun org-replace-region-by (backend beg end) "Assume the current region has org-mode syntax, and convert it to HTML. This can be used in any buffer. For example, you could write an @@ -115,7 +111,6 @@ (delete-region beg end) (insert backend-string))) -;;;###autoload (defun org-lparse-region (backend beg end &optional body-only buffer) "Convert region from BEG to END in org-mode buffer to HTML. If prefix arg BODY-ONLY is set, omit file header, footer, and table of @@ -447,11 +442,12 @@ (error "Don't know how to export to backend %s %s" target-backend (format "via %s" native-backend))) (run-hooks 'org-export-first-hook) - (org-do-lparse arg hidden ext-plist to-buffer body-only pub-dir) - (remove-hook 'org-export-preprocess-hook - 'org-lparse-strip-experimental-blocks-maybe) - (remove-hook 'org-export-preprocess-after-blockquote-hook - 'org-lparse-preprocess-after-blockquote))) + (prog1 + (org-do-lparse arg hidden ext-plist to-buffer body-only pub-dir) + (remove-hook 'org-export-preprocess-hook + 'org-lparse-strip-experimental-blocks-maybe) + (remove-hook 'org-export-preprocess-after-blockquote-hook + 'org-lparse-preprocess-after-blockquote)))) (defcustom org-lparse-use-flashy-warning nil "Control flashing of messages logged with `org-lparse-warn'. @@ -480,6 +476,8 @@ (eval-when-compile (require 'browse-url)) +(declare-function browse-url-file-url "browse-url" (file)) + (defun org-lparse-do-convert (in-file out-fmt &optional prefix-arg) "Workhorse routine for `org-export-odt-convert'." (require 'browse-url) @@ -2298,4 +2296,8 @@ (provide 'org-lparse) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-lparse.el ends here === modified file 'lisp/org/org-mobile.el' --- lisp/org/org-mobile.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-mobile.el 2012-10-26 14:42:05 +0000 @@ -680,7 +680,6 @@ (let ((table '(?: ?/))) (org-link-escape s table))) -;;;###autoload (defun org-mobile-create-sumo-agenda () "Create a file that contains all custom agenda views." (interactive) @@ -1129,4 +1128,8 @@ (provide 'org-mobile) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-mobile.el ends here === modified file 'lisp/org/org-odt.el' --- lisp/org/org-odt.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-odt.el 2012-10-26 14:42:05 +0000 @@ -2718,7 +2718,7 @@ (defun org-export-odt-preprocess (parameters) (org-export-odt-preprocess-label-references)) -(declare-function archive-zip-extract "arc-mode.el" (archive name)) +(declare-function archive-zip-extract "arc-mode" (archive name)) (defun org-odt-zip-extract-one (archive member &optional target) (require 'arc-mode) (let* ((target (or target default-directory)) @@ -2847,4 +2847,8 @@ (provide 'org-odt) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-odt.el ends here === modified file 'lisp/org/org-plot.el' --- lisp/org/org-plot.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-plot.el 2012-10-26 14:42:05 +0000 @@ -351,4 +351,8 @@ (provide 'org-plot) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-plot.el ends here === modified file 'lisp/org/org-publish.el' --- lisp/org/org-publish.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-publish.el 2012-10-26 14:42:05 +0000 @@ -916,7 +916,6 @@ (if force nil org-publish-use-timestamps-flag))) (org-publish-projects org-publish-project-alist)))) - ;;;###autoload (defun org-publish-current-file (&optional force) "Publish the current file. @@ -1192,4 +1191,8 @@ (provide 'org-publish) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-publish.el ends here === modified file 'lisp/org/org-remember.el' --- lisp/org/org-remember.el 2012-10-05 05:57:24 +0000 +++ lisp/org/org-remember.el 2012-10-26 14:42:05 +0000 @@ -1149,4 +1149,8 @@ (provide 'org-remember) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-remember.el ends here === modified file 'lisp/org/org-src.el' --- lisp/org/org-src.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-src.el 2012-10-26 14:42:05 +0000 @@ -41,10 +41,8 @@ (declare-function org-at-table.el-p "org" ()) (declare-function org-get-indentation "org" (&optional line)) (declare-function org-switch-to-buffer-other-window "org" (&rest args)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) -(declare-function org-strip-protective-commas "org" (beg end)) (declare-function org-base-buffer "org" (buffer)) (defcustom org-edit-src-region-extra nil @@ -311,13 +309,8 @@ (error "Language mode `%s' fails with: %S" lang-f (nth 1 e))))) (dolist (pair transmitted-variables) (org-set-local (car pair) (cadr pair))) - (if (derived-mode-p 'org-mode) - (progn - (goto-char (point-min)) - (while (re-search-forward "^," nil t) - (if (eq (org-current-line) line) (setq total-nindent (1+ total-nindent))) - (replace-match ""))) - (org-strip-protective-commas (point-min) (point-max))) + ;; Remove protecting commas from visible part of buffer. + (org-unescape-code-in-region (point-min) (point-max)) (when markline (org-goto-line (1+ (- markline begline))) (org-move-to-column @@ -590,20 +583,38 @@ (goto-char pos) (org-get-indentation))) -(defun org-add-protective-commas (beg end &optional line) - "Add protective commas in region. -Return the delta in size of the region." - (interactive "r") - (let ((org-re "^\\(.\\)") - (other-re "^\\([*]\\|[ \t]*#\\+\\)") - (delta 0)) - (save-excursion - (goto-char beg) - (while (re-search-forward (if (derived-mode-p 'org-mode) org-re other-re) - end t) - (if (and line (eq (org-current-line) line)) (setq delta (1+ delta))) - (replace-match ",\\1"))) - delta)) +(defun org-escape-code-in-region (beg end) + "Escape lines between BEG and END. +Escaping happens when a line starts with \"*\", \"#+\", \",*\" or +\",#+\" by appending a comma to it." + (interactive "r") + (save-excursion + (goto-char beg) + (while (re-search-forward "^[ \t]*,?\\(\\*\\|#\\+\\)" end t) + (replace-match ",\\1" nil nil nil 1)))) + +(defun org-escape-code-in-string (s) + "Escape lines in string S. +Escaping happens when a line starts with \"*\", \"#+\", \",*\" or +\",#+\" by appending a comma to it." + (replace-regexp-in-string "^[ \t]*,?\\(\\*\\|#\\+\\)" ",\\1" s nil nil 1)) + +(defun org-unescape-code-in-region (beg end) + "Un-escape lines between BEG and END. +Un-escaping happens by removing the first comma on lines starting +with \",*\", \",#+\", \",,*\" and \",,#+\"." + (interactive "r") + (save-excursion + (goto-char beg) + (while (re-search-forward "^[ \t]*,?\\(,\\)\\(?:\\*\\|#\\+\\)" end t) + (replace-match "" nil nil nil 1)))) + +(defun org-unescape-code-in-string (s) + "Un-escape lines in string S. +Un-escaping happens by removing the first comma on lines starting +with \",*\", \",#+\", \",,*\" and \",,#+\"." + (replace-regexp-in-string + "^[ \t]*,?\\(,\\)\\(?:\\*\\|#\\+\\)" "" s nil nil 1)) (defun org-edit-src-exit (&optional context) "Exit special edit and protect problematic lines." @@ -649,8 +660,12 @@ (goto-char (point-min)) (if (looking-at "\\s-*") (replace-match " "))) (when (org-bound-and-true-p org-edit-src-from-org-mode) - (setq delta (+ delta (org-add-protective-commas - (point-min) (point-max) line)))) + (org-escape-code-in-region (point-min) (point-max)) + (setq delta (+ delta + (save-excursion + (org-goto-line line) + (if (looking-at "[ \t]*\\(,,\\)?\\(\\*\\|#+\\)") 1 + 0))))) (when (org-bound-and-true-p org-edit-src-picture) (setq preserve-indentation nil) (untabify (point-min) (point-max)) @@ -674,9 +689,10 @@ (kill-buffer buffer)) (goto-char beg) (when allow-write-back-p - (delete-region beg (1- end)) - (insert code) - (delete-char 1) + (delete-region beg (max beg (1- end))) + (unless (string-match "^[ \t]*$" code) + (insert code) + (delete-char 1)) (goto-char beg) (if single (just-one-space))) (if (memq t (mapcar (lambda (overlay) === modified file 'lisp/org/org-table.el' --- lisp/org/org-table.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-table.el 2012-10-26 14:42:05 +0000 @@ -423,6 +423,7 @@ (concat "\\(" "@[-0-9I$]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\)") "Match a reference that needs translation, for reference display.") +;;;###autoload (defun org-table-create-with-table.el () "Use the table.el package to insert a new table. If there is already a table at point, convert between Org-mode tables @@ -439,6 +440,7 @@ (org-table-convert))) (t (call-interactively 'table-insert)))) +;;;###autoload (defun org-table-create-or-convert-from-region (arg) "Convert region to table, or create an empty table. If there is an active region, convert it to a table, using the function @@ -451,6 +453,7 @@ (org-table-convert-region (region-beginning) (region-end) arg) (org-table-create arg))) +;;;###autoload (defun org-table-create (&optional size) "Query for a size and insert a table skeleton. SIZE is a string Columns x Rows like for example \"3x2\"." @@ -483,6 +486,7 @@ (goto-char pos))) (org-table-align))) +;;;###autoload (defun org-table-convert-region (beg0 end0 &optional separator) "Convert region to a table. The region goes from BEG0 to END0, but these borders will be moved @@ -543,6 +547,7 @@ (goto-char beg) (org-table-align))) +;;;###autoload (defun org-table-import (file arg) "Import FILE as a table. The file is assumed to be tab-separated. Such files can be produced by most @@ -558,6 +563,7 @@ (defvar org-table-last-alignment) (defvar org-table-last-column-widths) +;;;###autoload (defun org-table-export (&optional file format) "Export table to a file, with configurable format. Such a file can be imported into usual spreadsheet programs. @@ -673,6 +679,7 @@ (defconst org-narrow-column-arrow "=>" "Used as display property in narrowed table columns.") +;;;###autoload (defun org-table-align () "Align the table at point by aligning all vertical bars." (interactive) @@ -884,6 +891,7 @@ (goto-char (match-beginning 0))) (point-marker))) +;;;###autoload (defun org-table-justify-field-maybe (&optional new) "Justify the current field, text to left, number to right. Optional argument NEW may specify text to replace the current field content." @@ -924,6 +932,7 @@ (setq org-table-may-need-update t)) (goto-char pos)))))) +;;;###autoload (defun org-table-next-field () "Go to the next field in the current table, creating new lines as needed. Before doing so, re-align the table if necessary." @@ -953,6 +962,7 @@ (error (org-table-insert-row 'below))))) +;;;###autoload (defun org-table-previous-field () "Go to the previous field in the table. Before doing so, re-align the table if necessary." @@ -1006,6 +1016,7 @@ (forward-char 1))) (if (<= (point) pos) (org-table-end-of-field 2)))) +;;;###autoload (defun org-table-next-row () "Go to the next row (same column) in the current table. Before doing so, re-align the table if necessary." @@ -1029,6 +1040,7 @@ (skip-chars-backward "^|\n\r") (if (looking-at " ") (forward-char 1))))) +;;;###autoload (defun org-table-copy-down (n) "Copy a field down in the current column. If the field at the cursor is empty, copy into it the content of @@ -1173,6 +1185,7 @@ val) (forward-char 1) "")) +;;;###autoload (defun org-table-field-info (arg) "Show info about the current field, and highlight any reference at point." (interactive "P") @@ -1228,6 +1241,7 @@ (message "In table column %d" cnt)) cnt))) +;;;###autoload (defun org-table-current-dline () "Find out what table data line we are in. Only data lines count for this." @@ -1244,6 +1258,7 @@ (message "This is table line %d" cnt)) cnt))) +;;;###autoload (defun org-table-goto-column (n &optional on-delim force) "Move the cursor to the Nth column in the current table line. With optional argument ON-DELIM, stop with point before the left delimiter @@ -1266,6 +1281,7 @@ (backward-char 1) (if (looking-at " ") (forward-char 1))))) +;;;###autoload (defun org-table-insert-column () "Insert a new column into the table." (interactive) @@ -1335,6 +1351,7 @@ (setq i (1+ i))))) nil)) +;;;###autoload (defun org-table-delete-column () "Delete a column from the table." (interactive) @@ -1367,15 +1384,18 @@ (org-table-fix-formulas "$LR" (list (cons (number-to-string col) "INVALID")) col -1 col)))) +;;;###autoload (defun org-table-move-column-right () "Move column to the right." (interactive) (org-table-move-column nil)) +;;;###autoload (defun org-table-move-column-left () "Move column to the left." (interactive) (org-table-move-column 'left)) +;;;###autoload (defun org-table-move-column (&optional left) "Move the current column to the right. With arg LEFT, move to the left." (interactive "P") @@ -1415,15 +1435,18 @@ "$LR" (list (cons (number-to-string col) (number-to-string colpos)) (cons (number-to-string colpos) (number-to-string col))))))) +;;;###autoload (defun org-table-move-row-down () "Move table row down." (interactive) (org-table-move-row nil)) +;;;###autoload (defun org-table-move-row-up () "Move table row up." (interactive) (org-table-move-row 'up)) +;;;###autoload (defun org-table-move-row (&optional up) "Move the current table line down. With arg UP, move it up." (interactive "P") @@ -1457,6 +1480,7 @@ "@" (list (cons (number-to-string dline1) (number-to-string dline2)) (cons (number-to-string dline2) (number-to-string dline1))))))) +;;;###autoload (defun org-table-insert-row (&optional arg) "Insert a new row above the current line into the table. With prefix ARG, insert below the current line." @@ -1478,6 +1502,7 @@ (funcall org-table-fix-formulas-confirm "Fix formulas? ")) (org-table-fix-formulas "@" nil (1- (org-table-current-dline)) 1)))) +;;;###autoload (defun org-table-insert-hline (&optional above) "Insert a horizontal-line below the current line into the table. With prefix ABOVE, insert above the current line." @@ -1501,6 +1526,7 @@ (org-move-to-column col) (and org-table-overlay-coordinates (org-table-align)))) +;;;###autoload (defun org-table-hline-and-move (&optional same-column) "Insert a hline and move to the row below that line." (interactive "P") @@ -1527,6 +1553,7 @@ t t s))) s)) +;;;###autoload (defun org-table-kill-row () "Delete the current row or horizontal line from the table." (interactive) @@ -1542,6 +1569,7 @@ (org-table-fix-formulas "@" (list (cons (number-to-string dline) "INVALID")) dline -1 dline)))) +;;;###autoload (defun org-table-sort-lines (with-case &optional sorting-type) "Sort table lines according to the column at point. @@ -1622,7 +1650,7 @@ (org-table-goto-column thiscol) (message "%d lines sorted, based on column %d" (length lns) column))) - +;;;###autoload (defun org-table-cut-region (beg end) "Copy region in table to the clipboard and blank all relevant fields. If there is no active region, use just the field at point." @@ -1631,6 +1659,7 @@ (if (org-region-active-p) (region-end) (point)))) (org-table-copy-region beg end 'cut)) +;;;###autoload (defun org-table-copy-region (beg end &optional cut) "Copy rectangular region in table to clipboard. A special clipboard is used which can only be accessed @@ -1668,6 +1697,7 @@ (if cut (org-table-align)) org-table-clip)) +;;;###autoload (defun org-table-paste-rectangle () "Paste a rectangular region into a table. The upper right corner ends up in the current field. All involved fields @@ -1698,6 +1728,7 @@ (org-table-goto-column col) (org-table-align))) +;;;###autoload (defun org-table-convert () "Convert from `org-mode' table to table.el and back. Obviously, this only works within limits. When an Org-mode table is @@ -1771,6 +1802,7 @@ contents "")) (org-table-align))) +;;;###autoload (defun org-table-wrap-region (arg) "Wrap several fields in a column like a paragraph. This is useful if you'd like to spread the contents of a field over several @@ -1841,6 +1873,7 @@ (defvar org-field-marker nil) +;;;###autoload (defun org-table-edit-field (arg) "Edit table field in a different window. This is mainly useful for fields that contain hidden parts. @@ -1944,6 +1977,7 @@ (defvar org-timecnt) ; dynamically scoped parameter +;;;###autoload (defun org-table-sum (&optional beg end nlast) "Sum numbers in region of current table column. The result will be displayed in the echo area, and will be available @@ -2144,9 +2178,10 @@ (bs (org-table-formula-make-cmp-string (car b)))) (and as bs (string< as bs)))) +;;;###autoload (defun org-table-get-stored-formulas (&optional noerror) "Return an alist with the stored formulas directly after current table." - (interactive) + (interactive) ;; FIXME interactive? (let ((case-fold-search t) scol eq eq-alist strings string seen) (save-excursion (goto-char (org-table-end)) @@ -2283,6 +2318,7 @@ (setq org-table-local-parameters (append org-table-local-parameters al2)))))) +;;;###autoload (defun org-table-maybe-eval-formula () "Check if the current field starts with \"=\" or \":=\". If yes, store the formula and apply it." @@ -2313,6 +2349,7 @@ ("_" . "Names for values in row below this one.") ("^" . "Names for values in row above this one."))) +;;;###autoload (defun org-table-rotate-recalc-marks (&optional newchar) "Rotate the recalculation mark in the first column. If in any row, the first field is not consistent with a mark, @@ -2374,6 +2411,7 @@ (and (org-called-interactively-p 'interactive) (message "%s" (cdr (assoc new org-recalc-marks)))))) +;;;###autoload (defun org-table-maybe-recalculate-line () "Recompute the current line if marked for it, and if we haven't just done it." (interactive) @@ -2397,6 +2435,7 @@ (cons var (cons value org-tbl-calc-modes))) org-tbl-calc-modes) +;;;###autoload (defun org-table-eval-formula (&optional arg equation suppress-align suppress-const suppress-store suppress-analysis) @@ -2823,6 +2862,7 @@ elements ",") "]")))) +;;;###autoload (defun org-table-recalculate (&optional all noalign) "Recalculate the current table line by applying all stored formulas. With prefix arg ALL, do this for all lines in the table. @@ -2961,6 +3001,7 @@ (or noalign (and org-table-may-need-update (org-table-align)) (and all (message "Re-applying formulas...done")))))) +;;;###autoload (defun org-table-iterate (&optional arg) "Recalculate the table until it does not change anymore. The maximum number of iterations is 10, but you can choose a different value @@ -2997,10 +3038,9 @@ "Iterate all tables in the buffer, to converge inter-table dependencies." (interactive) (let* ((imax 10) + (i imax) (checksum (md5 (buffer-string))) - - c1 - (i imax)) + c1) (save-excursion (save-restriction (widen) @@ -3164,6 +3204,7 @@ (defvar org-pos) +;;;###autoload (defun org-table-edit-formulas () "Edit the formulas of the current table in a separate buffer." (interactive) @@ -3801,6 +3842,7 @@ (org-overlay-display ov str 'org-special-keyword 'evaporate))) (beginning-of-line 2))))) +;;;###autoload (defun org-table-toggle-coordinate-overlays () "Toggle the display of Row/Column numbers in tables." (interactive) @@ -3813,6 +3855,7 @@ (mapc 'delete-overlay org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil))) +;;;###autoload (defun org-table-toggle-formula-debugger () "Toggle the formula debugger in tables." (interactive) @@ -3852,11 +3895,6 @@ (defvar orgtbl-mode-map (make-keymap) "Keymap for `orgtbl-mode'.") -;;;###autoload -(defun turn-on-orgtbl () - "Unconditionally turn on `orgtbl-mode'." - (orgtbl-mode 1)) - (defvar org-old-auto-fill-inhibit-regexp nil "Local variable used by `orgtbl-mode'.") @@ -4480,6 +4518,7 @@ (*orgtbl-lfmt* *orgtbl-llfmt*)) (orgtbl-format-line prevline)))))) +;;;###autoload (defun orgtbl-to-generic (table params) "Convert the orgtbl-mode TABLE to some other format. This generic routine can be used for many standard cases. @@ -4606,9 +4645,11 @@ (remq nil *orgtbl-rtn*) *orgtbl-rtn*)) "\n"))) +;;;###autoload (defun orgtbl-to-tsv (table params) "Convert the orgtbl-mode table to TAB separated material." (orgtbl-to-generic table (org-combine-plists '(:sep "\t") params))) +;;;###autoload (defun orgtbl-to-csv (table params) "Convert the orgtbl-mode table to CSV material. This does take care of the proper quoting of fields with comma or quotes." @@ -4616,6 +4657,7 @@ '(:sep "," :fmt org-quote-csv-field) params))) +;;;###autoload (defun orgtbl-to-latex (table params) "Convert the orgtbl-mode TABLE to LaTeX. TABLE is a list, each entry either the symbol `hline' for a horizontal @@ -4654,6 +4696,7 @@ :efmt "%s\\,(%s)" :hline "\\hline"))) (orgtbl-to-generic table (org-combine-plists params2 params)))) +;;;###autoload (defun orgtbl-to-html (table params) "Convert the orgtbl-mode TABLE to HTML. TABLE is a list, each entry either the symbol `hline' for a horizontal @@ -4684,6 +4727,7 @@ (setq html (replace-match "" t t html))) html)) +;;;###autoload (defun orgtbl-to-texinfo (table params) "Convert the orgtbl-mode TABLE to TeXInfo. TABLE is a list, each entry either the symbol `hline' for a horizontal @@ -4722,6 +4766,7 @@ :hlstart "@headitem "))) (orgtbl-to-generic table (org-combine-plists params2 params)))) +;;;###autoload (defun orgtbl-to-orgtbl (table params) "Convert the orgtbl-mode TABLE into another orgtbl-mode table. Useful when slicing one table into many. The :hline, :sep, @@ -4832,4 +4877,8 @@ (provide 'org-table) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-table.el ends here === modified file 'lisp/org/org-taskjuggler.el' --- lisp/org/org-taskjuggler.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-taskjuggler.el 2012-10-26 14:42:05 +0000 @@ -692,4 +692,8 @@ (provide 'org-taskjuggler) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-taskjuggler.el ends here === modified file 'lisp/org/org-timer.el' --- lisp/org/org-timer.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-timer.el 2012-10-26 14:42:05 +0000 @@ -130,7 +130,6 @@ (org-timer-secs-to-hms (or delta 0))) (run-hooks 'org-timer-start-hook)))) -;;;###autoload (defun org-timer-pause-or-continue (&optional stop) "Pause or continue the relative timer. With prefix arg STOP, stop it entirely." @@ -157,7 +156,6 @@ (org-timer-set-mode-line 'pause) (message "Timer paused at %s" (org-timer-value-string))))) -;;;###autoload (defun org-timer-stop () "Stop the relative timer." (interactive) @@ -443,4 +441,8 @@ (provide 'org-timer) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-timer.el ends here === modified file 'lisp/org/org-version.el' --- lisp/org/org-version.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-version.el 2012-10-26 14:42:05 +0000 @@ -11,10 +11,10 @@ (defun org-git-version () "The Git version of org-mode. Inserted by installing org-mode or when a release is made." - (let ((org-git-version "7.9.2-GNU-Emacs-24-3")) + (let ((org-git-version "release_7.9.2-68-g7a9d34")) org-git-version)) ;;;###autoload -(defconst org-odt-data-dir "/usr/share/emacs/etc/org" +(defvar org-odt-data-dir "/usr/share/emacs/etc/org" "The location of ODT styles.") (provide 'org-version) === modified file 'lisp/org/org-xoxo.el' --- lisp/org/org-xoxo.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org-xoxo.el 2012-10-26 14:42:05 +0000 @@ -122,4 +122,8 @@ (provide 'org-xoxo) +;; Local variables: +;; generated-autoload-file: "org-loaddefs.el" +;; End: + ;;; org-xoxo.el ends here === modified file 'lisp/org/org.el' --- lisp/org/org.el 2012-09-30 15:14:59 +0000 +++ lisp/org/org.el 2012-10-26 14:42:05 +0000 @@ -78,6 +78,8 @@ (require 'find-func) (require 'format-spec) +(load "org-loaddefs.el" t t) + ;; `org-outline-regexp' ought to be a defconst but is let-binding in ;; some places -- e.g. see the macro org-with-limited-levels. ;; @@ -117,8 +119,23 @@ (declare-function org-clock-timestamps-down "org-clock" ()) (declare-function org-clock-sum-current-item "org-clock" (&optional tstart)) +(declare-function orgtbl-mode "org-table" (&optional arg)) +(declare-function org-clock-out "org-clock" (&optional switch-to-state fail-quietly at-time)) +(declare-function org-beamer-mode "org-beamer" ()) +(declare-function org-table-edit-field "org-table" (arg)) +(declare-function org-table-justify-field-maybe "org-table" (&optional new)) +(declare-function org-id-get-create "org-id" (&optional force)) +(declare-function org-id-find-id-file "org-id" (id)) +(declare-function org-tags-view "org-agenda" (&optional todo-only match)) +(declare-function org-agenda-list "org-agenda" (&optional arg start-day span)) +(declare-function org-table-align "org-table" ()) +(declare-function org-table-paste-rectangle "org-table" ()) +(declare-function org-table-maybe-eval-formula "org-table" ()) +(declare-function org-table-maybe-recalculate-line "org-table" ()) + ;; load languages based on value of `org-babel-load-languages' (defvar org-babel-load-languages) + ;;;###autoload (defun org-babel-do-load-languages (sym value) "Load the languages defined in `org-babel-load-languages'." @@ -206,6 +223,7 @@ ;;; Version (require 'org-compat) (org-check-version) + ;;;###autoload (defun org-version (&optional here full message) "Show the org-mode version in the echo area. @@ -214,7 +232,7 @@ When MESSAGE is non-nil, display a message with the version." (interactive "P") (let* ((org-dir (ignore-errors (org-find-library-dir "org"))) - (org-install-dir (ignore-errors (org-find-library-dir "org-install.el"))) + (org-install-dir (ignore-errors (org-find-library-dir "org-loaddefs.el"))) (org-trash (or (and (fboundp 'org-release) (fboundp 'org-git-version)) (load (concat org-dir "org-version.el") @@ -228,7 +246,7 @@ (if (string= org-dir org-install-dir) org-install-dir (concat "mixed installation! " org-install-dir " and " org-dir)) - "org-install.el can not be found!"))) + "org-loaddefs.el can not be found!"))) (_version (if full version org-version))) (if (org-called-interactively-p 'interactive) (if here @@ -3264,13 +3282,6 @@ :group 'org-agenda :type 'sexp) -(defcustom org-calendar-agenda-action-key [?k] - "The key to be installed in `calendar-mode-map' for agenda-action. -The command `org-agenda-action' will be bound to this key. The -default is the character `k' because we use the same key in the agenda." - :group 'org-agenda - :type 'sexp) - (defcustom org-calendar-insert-diary-entry-key [?i] "The key to be installed in `calendar-mode-map' for adding diary entries. This option is irrelevant until `org-agenda-diary-file' has been configured @@ -3296,8 +3307,6 @@ '(progn (org-defkey calendar-mode-map org-calendar-to-agenda-key 'org-calendar-goto-agenda) - (org-defkey calendar-mode-map org-calendar-agenda-action-key - 'org-agenda-action) (add-hook 'calendar-mode-hook (lambda () (unless (eq org-agenda-diary-file 'diary-file) @@ -3869,30 +3878,13 @@ (eval-and-compile (org-autoload "org-table" - '(org-table-align org-table-begin org-table-blank-field - org-table-convert org-table-convert-region org-table-copy-down - org-table-copy-region org-table-create - org-table-create-or-convert-from-region - org-table-create-with-table.el org-table-current-dline - org-table-cut-region org-table-delete-column org-table-edit-field - org-table-edit-formulas org-table-end org-table-eval-formula - org-table-export org-table-field-info - org-table-get-stored-formulas org-table-goto-column - org-table-hline-and-move org-table-import org-table-insert-column - org-table-insert-hline org-table-insert-row org-table-iterate - org-table-justify-field-maybe org-table-kill-row - org-table-maybe-eval-formula org-table-maybe-recalculate-line - org-table-move-column org-table-move-column-left - org-table-move-column-right org-table-move-row - org-table-move-row-down org-table-move-row-up - org-table-next-field org-table-next-row org-table-paste-rectangle - org-table-previous-field org-table-recalculate - org-table-rotate-recalc-marks org-table-sort-lines org-table-sum - org-table-toggle-coordinate-overlays - org-table-toggle-formula-debugger org-table-wrap-region - orgtbl-mode turn-on-orgtbl org-table-to-lisp - orgtbl-to-generic orgtbl-to-tsv orgtbl-to-csv orgtbl-to-latex - orgtbl-to-orgtbl orgtbl-to-html orgtbl-to-texinfo))) + '(org-table-begin org-table-blank-field org-table-end))) + +;;;###autoload +(defun turn-on-orgtbl () + "Unconditionally turn on `orgtbl-mode'." + (require 'org-table) + (orgtbl-mode 1)) (defun org-at-table-p (&optional table-type) "Return t if the cursor is inside an org-type table. @@ -3971,62 +3963,14 @@ (declare-function org-default-export-plist "org-exp") (declare-function org-infile-export-plist "org-exp") (declare-function org-get-current-options "org-exp") -(eval-and-compile - (org-autoload "org-exp" - '(org-export org-export-visible - org-insert-export-options-template - org-table-clean-before-export)) - (org-autoload "org-ascii" - '(org-export-as-ascii org-export-ascii-preprocess - org-export-as-ascii-to-buffer org-replace-region-by-ascii - org-export-region-as-ascii)) - (org-autoload "org-latex" - '(org-export-as-latex-batch org-export-as-latex-to-buffer - org-replace-region-by-latex org-export-region-as-latex - org-export-as-latex org-export-as-pdf - org-export-as-pdf-and-open)) - (org-autoload "org-html" - '(org-export-as-html-and-open - org-export-as-html-batch org-export-as-html-to-buffer - org-replace-region-by-html org-export-region-as-html - org-export-as-html)) - (org-autoload "org-docbook" - '(org-export-as-docbook-batch org-export-as-docbook-to-buffer - org-replace-region-by-docbook org-export-region-as-docbook - org-export-as-docbook-pdf org-export-as-docbook-pdf-and-open - org-export-as-docbook)) - (org-autoload "org-icalendar" - '(org-export-icalendar-this-file - org-export-icalendar-all-agenda-files - org-export-icalendar-combine-agenda-files)) - (org-autoload "org-xoxo" '(org-export-as-xoxo)) - (org-autoload "org-beamer" '(org-beamer-mode org-beamer-sectioning))) ;; Declare and autoload functions from org-agenda.el (eval-and-compile (org-autoload "org-agenda" - '(org-agenda org-agenda-list org-search-view - org-todo-list org-tags-view org-agenda-list-stuck-projects - org-diary org-agenda-to-appt - org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item))) - -;; Autoload org-remember - -(eval-and-compile - (org-autoload "org-remember" - '(org-remember-insinuate org-remember-annotation - org-remember-apply-template org-remember org-remember-handler))) - -(eval-and-compile - (org-autoload "org-capture" - '(org-capture org-capture-insert-template-here - org-capture-import-remember-templates))) - -;; Autoload org-clock.el - -(declare-function org-clock-save-markers-for-cut-and-paste "org-clock" - (beg end)) + '(org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item))) + +(declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end)) (declare-function org-clock-update-mode-line "org-clock" ()) (declare-function org-resolve-clocks "org-clock" (&optional also-non-dangling-p prompt last-valid)) @@ -4043,55 +3987,9 @@ (marker-buffer org-clock-marker)) (eval-and-compile - (org-autoload - "org-clock" - '(org-clock-in org-clock-out org-clock-cancel - org-clock-goto org-clock-sum org-clock-display - org-clock-remove-overlays org-clock-report - org-clocktable-shift org-dblock-write:clocktable - org-get-clocktable org-resolve-clocks))) - -(defun org-clock-update-time-maybe () - "If this is a CLOCK line, update it and return t. -Otherwise, return nil." - (interactive) - (save-excursion - (beginning-of-line 1) - (skip-chars-forward " \t") - (when (looking-at org-clock-string) - (let ((re (concat "[ \t]*" org-clock-string - " *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]" - "\\([ \t]*=>.*\\)?\\)?")) - ts te h m s neg) - (cond - ((not (looking-at re)) - nil) - ((not (match-end 2)) - (when (and (equal (marker-buffer org-clock-marker) (current-buffer)) - (> org-clock-marker (point)) - (<= org-clock-marker (point-at-eol))) - ;; The clock is running here - (setq org-clock-start-time - (apply 'encode-time - (org-parse-time-string (match-string 1)))) - (org-clock-update-mode-line))) - (t - (and (match-end 4) (delete-region (match-beginning 4) (match-end 4))) - (end-of-line 1) - (setq ts (match-string 1) - te (match-string 3)) - (setq s (- (org-float-time - (apply 'encode-time (org-parse-time-string te))) - (org-float-time - (apply 'encode-time (org-parse-time-string ts)))) - neg (< s 0) - s (abs s) - h (floor (/ s 3600)) - s (- s (* 3600 h)) - m (floor (/ s 60)) - s (- s (* 60 s))) - (insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m)) - t)))))) + (org-autoload "org-clock" '(org-clock-remove-overlays + org-clock-update-time-maybe + org-clocktable-shift))) (defun org-check-running-clock () "Check if the current buffer contains the running clock. @@ -4108,44 +4006,18 @@ (when (org-match-line "^[ \t]*#\\+BEGIN:[ \t]+clocktable\\>") (org-clocktable-shift dir n))) -;; Autoload org-timer.el - -(eval-and-compile - (org-autoload - "org-timer" - '(org-timer-start org-timer org-timer-item - org-timer-change-times-in-region - org-timer-set-timer - org-timer-reset-timers - org-timer-show-remaining-time))) - -;; Autoload org-feed.el - -(eval-and-compile - (org-autoload - "org-feed" - '(org-feed-update org-feed-update-all org-feed-goto-inbox))) - - -;; Autoload org-indent.el +;;;###autoload +(defun org-clock-persistence-insinuate () + "Set up hooks for clock persistence." + (require 'org-clock) + (add-hook 'org-mode-hook 'org-clock-load) + (add-hook 'kill-emacs-hook 'org-clock-save)) ;; Define the variable already here, to make sure we have it. (defvar org-indent-mode nil "Non-nil if Org-Indent mode is enabled. Use the command `org-indent-mode' to change this variable.") -(eval-and-compile - (org-autoload - "org-indent" - '(org-indent-mode))) - -;; Autoload org-mobile.el - -(eval-and-compile - (org-autoload - "org-mobile" - '(org-mobile-push org-mobile-pull org-mobile-create-sumo-agenda))) - ;; Autoload archiving code ;; The stuff that is needed for cycling and tags has to be defined here. @@ -4319,10 +4191,7 @@ (eval-and-compile (org-autoload "org-archive" - '(org-add-archive-files org-archive-subtree - org-archive-to-archive-sibling org-toggle-archive-tag - org-archive-subtree-default - org-archive-subtree-default-with-confirmation))) + '(org-add-archive-files))) ;; Autoload Column View Code @@ -4331,9 +4200,10 @@ (declare-function org-columns-compute "org-colview" (property)) (org-autoload (if (featurep 'xemacs) "org-colview-xemacs" "org-colview") - '(org-columns-number-to-string org-columns-get-format-and-top-level - org-columns-compute org-agenda-columns org-columns-remove-overlays - org-columns org-insert-columns-dblock org-dblock-write:columnview)) + '(org-columns-number-to-string + org-columns-get-format-and-top-level + org-columns-compute + org-columns-remove-overlays)) ;; Autoload ID code @@ -4342,15 +4212,10 @@ (declare-function org-id-locations-save "org-id") (defvar org-id-track-globally) (org-autoload "org-id" - '(org-id-get-create org-id-new org-id-copy org-id-get - org-id-get-with-outline-path-completion - org-id-get-with-outline-drilling org-id-store-link - org-id-goto org-id-find org-id-store-link)) - -;; Autoload Plotting Code - -(org-autoload "org-plot" - '(org-plot/gnuplot)) + '(org-id-new + org-id-copy + org-id-get-with-outline-path-completion + org-id-get-with-outline-drilling)) ;;; Variables for pre-computed regular expressions, all buffer local @@ -5096,7 +4961,7 @@ (lambda (&rest ignore) (org-show-context 'isearch)))) ;; Turn on org-beamer-mode? - (and org-startup-with-beamer-mode (org-beamer-mode 1)) + (and org-startup-with-beamer-mode (org-beamer-mode)) ;; Setup the pcomplete hooks (set (make-local-variable 'pcomplete-command-completion-function) @@ -5569,22 +5434,6 @@ t) (t nil)))))) -(defun org-strip-protective-commas (beg end) - "Strip protective commas between BEG and END in the current buffer." - (interactive "r") - (save-excursion - (save-match-data - (goto-char beg) - (let ((front-line (save-excursion - (re-search-forward - "[^[:space:]]" end t) - (goto-char (match-beginning 0)) - (current-column)))) - (while (re-search-forward "^[ \t]*\\(,\\)\\([*]\\|#\\)" end t) - (goto-char (match-beginning 1)) - (when (= (current-column) front-line) - (replace-match "" nil nil nil 1))))))) - (defun org-activate-angle-links (limit) "Run through the buffer and add overlays to links." (if (re-search-forward org-angle-link-re limit t) @@ -6188,10 +6037,9 @@ (defvar org-cycle-subtree-status nil) (make-variable-buffer-local 'org-cycle-subtree-status) -;;;###autoload - (defvar org-inlinetask-min-level) +;;;###autoload (defun org-cycle (&optional arg) "TAB-action and visibility cycling for Org-mode. @@ -9205,7 +9053,7 @@ (defun org-link-unescape (str) "Unhex hexified Unicode strings as returned from the JavaScript function -encodeURIComponent. E.g. `%C3%B6' is the german Umlaut `ö'." +encodeURIComponent. E.g. `%C3%B6' is the german o-Umlaut." (unless (and (null str) (string= "" str)) (let ((pos 0) (case-fold-search t) unhexed) (while (setq pos (string-match "\\(%[0-9a-f][0-9a-f]\\)+" str pos)) @@ -9215,9 +9063,9 @@ str) (defun org-link-unescape-compound (hex) - "Unhexify Unicode hex-chars. E.g. `%C3%B6' is the German Umlaut `ö'. + "Unhexify Unicode hex-chars. E.g. `%C3%B6' is the German o-Umlaut. Note: this function also decodes single byte encodings like -`%E1' (\"á\") if not followed by another `%[A-F0-9]{2}' group." +`%E1' (a-acute) if not followed by another `%[A-F0-9]{2}' group." (save-match-data (let* ((bytes (cdr (split-string hex "%"))) (ret "") @@ -11028,11 +10876,13 @@ (and org-auto-align-tags (let ((org-loop-over-headlines-in-active-region nil)) (org-set-tags nil t))) - (bookmark-set "org-refile-last-stored") + (with-demoted-errors + (bookmark-set "org-refile-last-stored")) ;; If we are refiling for capture, make sure that the ;; last-capture pointers point here (when (org-bound-and-true-p org-refile-for-capture) - (bookmark-set "org-capture-last-stored-marker") + (with-demoted-errors + (bookmark-set "org-capture-last-stored-marker")) (move-marker org-capture-last-stored-marker (point))) (if (fboundp 'deactivate-mark) (deactivate-mark)) (run-hooks 'org-after-refile-insert-hook)))) @@ -11128,26 +10978,28 @@ (org-refile-new-child parent-target child))) (error "Invalid target location"))))) -(declare-function org-string-nw-p "org-macs.el" (s)) +(declare-function org-string-nw-p "org-macs" (s)) (defun org-refile-check-position (refile-pointer) - "Check if the refile pointer matches the readline to which it points." + "Check if the refile pointer matches the headline to which it points." (let* ((file (nth 1 refile-pointer)) (re (nth 2 refile-pointer)) (pos (nth 3 refile-pointer)) buffer) - (when (org-string-nw-p re) - (setq buffer (if (markerp pos) - (marker-buffer pos) - (or (find-buffer-visiting file) - (find-file-noselect file)))) - (with-current-buffer buffer - (save-excursion - (save-restriction - (widen) - (goto-char pos) - (beginning-of-line 1) - (unless (org-looking-at-p re) - (error "Invalid refile position, please clear the cache with `C-0 C-c C-w' before refiling")))))))) + (if (and (not (markerp pos)) (not file)) + (error "Please save the buffer to a file before refiling") + (when (org-string-nw-p re) + (setq buffer (if (markerp pos) + (marker-buffer pos) + (or (find-buffer-visiting file) + (find-file-noselect file)))) + (with-current-buffer buffer + (save-excursion + (save-restriction + (widen) + (goto-char pos) + (beginning-of-line 1) + (unless (org-looking-at-p re) + (error "Invalid refile position, please clear the cache with `C-0 C-c C-w' before refiling"))))))))) (defun org-refile-new-child (parent-target child) "Use refile target PARENT-TARGET to add new CHILD below it." @@ -11337,7 +11189,6 @@ (goto-char pos) (error "Not in a dynamic block")))) -;;;###autoload (defun org-update-all-dblocks () "Update all dynamic blocks in the buffer. This function can be used in a hook." @@ -12821,7 +12672,7 @@ ((equal ans ?D) (call-interactively 'org-check-dates-range)) ((equal ans ?t) - (org-show-todo-tree nil)) + (call-interactively 'org-show-todo-tree)) ((equal ans ?T) (org-show-todo-tree '(4))) ((member ans '(?T ?m)) @@ -14157,7 +14008,6 @@ ;;;; The mapping API -;;;###autoload (defun org-map-entries (func &optional match scope &rest skip) "Call FUNC at each headline selected by MATCH in SCOPE. @@ -15656,14 +15506,13 @@ ;; Help matching dotted european dates (when (string-match - "^ *\\(3[01]\\|0?[1-9]\\|[12][0-9]\\)\\. ?\\(0?[1-9]\\|1[012]\\)\\. ?\\([1-9][0-9][0-9][0-9]\\)?" ans) - (setq year (if (match-end 3) - (string-to-number (match-string 3 ans)) - (progn (setq kill-year t) - (string-to-number (format-time-string "%Y")))) + "^ *\\(3[01]\\|0?[1-9]\\|[12][0-9]\\)\\. ?\\(0?[1-9]\\|1[012]\\)\\.\\( ?[1-9][0-9]\\{3\\}\\)?" ans) + (setq year (if (match-end 3) (string-to-number (match-string 3 ans)) + (setq kill-year t) + (string-to-number (format-time-string "%Y"))) day (string-to-number (match-string 1 ans)) month (string-to-number (match-string 2 ans)) - ans (replace-match (format "%04d-%02d-%02d\\5" year month day) + ans (replace-match (format "%04d-%02d-%02d" year month day) t nil ans))) ;; Help matching american dates, like 5/30 or 5/30/7 @@ -16311,7 +16160,12 @@ When SHOW-ALL is nil, only return the current occurrence of a time stamp." ;; Make the proper lists from the dates (catch 'exit - (let ((a1 '(("d" . day) ("w" . week) ("m" . month) ("y" . year))) + (let ((a1 '(("h" . hour) + ("d" . day) + ("w" . week) + ("m" . month) + ("y" . year))) + (shour (nth 2 (org-parse-time-string start))) dn dw sday cday n1 n2 n0 d m y y1 y2 date1 date2 nmonths nm ny m2) @@ -16331,6 +16185,13 @@ (error "Invalid change specifier: %s" change)) (if (eq dw 'week) (setq dw 'day dn (* 7 dn))) (cond + ((eq dw 'hour) + (let ((missing-hours + (mod (+ (- (* 24 (- cday sday)) shour) org-extend-today-until) + dn))) + (setq n1 (if (zerop missing-hours) cday + (- cday (1+ (floor (/ missing-hours 24))))) + n2 (+ cday (floor (/ (- dn missing-hours) 24)))))) ((eq dw 'day) (setq n1 (+ sday (* dn (floor (/ (- cday sday) dn)))) n2 (+ n1 dn))) @@ -16993,7 +16854,9 @@ (file-alist (mapcar (lambda (x) (cons (file-truename x) x)) (org-agenda-files t))) - (ctf (file-truename buffer-file-name)) + (ctf (file-truename + (or buffer-file-name + (error "Please save the current buffer to a file")))) x had) (setq x (assoc ctf file-alist) had x) @@ -17012,7 +16875,8 @@ Optional argument FILE means use this file instead of the current." (interactive) (let* ((org-agenda-skip-unavailable-files nil) - (file (or file buffer-file-name)) + (file (or file buffer-file-name + (error "Current buffer does not visit a file"))) (true-file (file-truename file)) (afile (abbreviate-file-name file)) (files (delq nil (mapcar @@ -17034,7 +16898,7 @@ (defun org-check-agenda-file (file) "Make sure FILE exists. If not, ask user what to do." (when (not (file-exists-p file)) - (message "non-existent agenda file %s. [R]emove from list or [A]bort?" + (message "Non-existent agenda file %s. [R]emove from list or [A]bort?" (abbreviate-file-name file)) (let ((r (downcase (read-char-exclusive)))) (cond @@ -18113,7 +17977,6 @@ (org-defkey org-mode-map [?\C-c (control ?*)] 'org-list-make-subtree) ;;(org-defkey org-mode-map [?\C-c (control ?-)] 'org-list-make-list-from-subtree) -(org-defkey org-mode-map "\C-c\C-x\C-k" 'org-mark-entry-for-agenda-action) (org-defkey org-mode-map "\C-c\C-x\C-w" 'org-cut-special) (org-defkey org-mode-map "\C-c\C-x\M-w" 'org-copy-special) (org-defkey org-mode-map "\C-c\C-x\C-y" 'org-paste-special) @@ -18801,13 +18664,12 @@ nil)))) (autoload 'org-element-at-point "org-element") +(autoload 'org-element-type "org-element") (declare-function org-element-at-point "org-element" (&optional keep-trail)) (declare-function org-element-type "org-element" (element)) -(declare-function org-element-context "org-element" ()) (declare-function org-element-contents "org-element" (element)) (declare-function org-element-property "org-element" (property element)) -(declare-function org-element-paragraph-parser "org-element" (limit)) (declare-function org-element-map "org-element" (data types fun &optional info first-match no-recursion)) (declare-function org-element-nested-p "org-element" (elem-a elem-b)) (declare-function org-element-swap-A-B "org-element" (elem-a elem-b)) @@ -19985,7 +19847,6 @@ ;;;; Documentation -;;;###autoload (defun org-require-autoloaded-modules () (interactive) (mapc 'require @@ -20813,20 +20674,6 @@ (nth 2 date)))))) (or defd (current-time)))) -(defvar org-agenda-action-marker (make-marker) - "Marker pointing to the entry for the next agenda action.") - -(defun org-mark-entry-for-agenda-action () - "Mark the current entry as target of an agenda action. -Agenda actions are actions executed from the agenda with the key `k', -which make use of the date at the cursor." - (interactive) - (move-marker org-agenda-action-marker - (save-excursion (org-back-to-heading t) (point)) - (current-buffer)) - (message - "Entry marked for action; press `k' at desired date in agenda or calendar")) - (defun org-mark-subtree (&optional up) "Mark the current subtree. This puts point at the start of the current subtree, and mark at @@ -21224,7 +21071,10 @@ ;; Check if auto-filling is meaningful. (let ((fc (current-fill-column))) (when (and fc (> (current-column) fc)) - (let ((fill-prefix (org-adaptive-fill-function))) + (let* ((fill-prefix (org-adaptive-fill-function)) + ;; Enforce empty fill prefix, if required. Otherwise, it + ;; will be computed again. + (adaptive-fill-mode (not (equal fill-prefix "")))) (when fill-prefix (do-auto-fill)))))) (defun org-comment-line-break-function (&optional soft) @@ -21475,45 +21325,43 @@ (defun org-end-of-line (&optional arg) "Go to the end of the line. -If this is a headline, and `org-special-ctrl-a/e' is set, ignore tags on the -first attempt, and only move to after the tags when the cursor is already -beyond the end of the headline." +If this is a headline, and `org-special-ctrl-a/e' is set, ignore +tags on the first attempt, and only move to after the tags when +the cursor is already beyond the end of the headline." (interactive "P") - (let ((special (if (consp org-special-ctrl-a/e) - (cdr org-special-ctrl-a/e) - org-special-ctrl-a/e))) + (let ((special (if (consp org-special-ctrl-a/e) (cdr org-special-ctrl-a/e) + org-special-ctrl-a/e)) + (type (org-element-type + (save-excursion (beginning-of-line) (org-element-at-point))))) (cond - ((or (not special) arg - (not (or (org-at-heading-p) (org-at-item-p) (org-at-drawer-p)))) + ((or (not special) arg) (call-interactively - (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line) - ((fboundp 'move-end-of-line) 'move-end-of-line) - (t 'end-of-line)))) - ((org-at-heading-p) + (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))) + ((memq type '(headline inlinetask)) (let ((pos (point))) - (beginning-of-line 1) - (if (looking-at (org-re ".*?\\(?:\\([ \t]*\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\)?$")) - (if (eq special t) - (if (or (< pos (match-beginning 1)) - (= pos (match-end 0))) - (goto-char (match-beginning 1)) - (goto-char (match-end 0))) - (if (or (< pos (match-end 0)) (not (eq this-command last-command))) - (goto-char (match-end 0)) - (goto-char (match-beginning 1)))) - (call-interactively (if (fboundp 'move-end-of-line) - 'move-end-of-line - 'end-of-line))))) - ((org-at-drawer-p) - (move-end-of-line 1) - (when (overlays-at (1- (point))) (backward-char 1))) - ;; At an item: Move before any hidden text. - (t (call-interactively - (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line) - ((fboundp 'move-end-of-line) 'move-end-of-line) - (t 'end-of-line))))) - (org-no-warnings - (and (featurep 'xemacs) (setq zmacs-region-stays t))))) + (beginning-of-line 1) + (if (looking-at (org-re ".*?\\(?:\\([ \t]*\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\)?$")) + (if (eq special t) + (if (or (< pos (match-beginning 1)) (= pos (match-end 0))) + (goto-char (match-beginning 1)) + (goto-char (match-end 0))) + (if (or (< pos (match-end 0)) + (not (eq this-command last-command))) + (goto-char (match-end 0)) + (goto-char (match-beginning 1)))) + (call-interactively + (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))))) + ((memq type + '(center-block comment-block drawer dynamic-block example-block + export-block item plain-list property-drawer + quote-block special-block src-block verse-block)) + ;; Never move past the ellipsis. + (or (eolp) (move-end-of-line 1)) + (when (org-invisible-p2) (backward-char))) + (t + (call-interactively + (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line)))) + (org-no-warnings (and (featurep 'xemacs) (setq zmacs-region-stays t))))) (define-key org-mode-map "\C-a" 'org-beginning-of-line) (define-key org-mode-map "\C-e" 'org-end-of-line) @@ -21966,7 +21814,6 @@ (if (< l level) (setq arg 1))) (setq arg (1- arg))))) -;;;###autoload (defun org-forward-element () "Move forward by one element. Move to the next element at the same level, when possible." @@ -21986,7 +21833,6 @@ (goto-char (org-element-property :end parent)) (goto-char end)))))) -;;;###autoload (defun org-backward-element () "Move backward by one element. Move to the previous element at the same level, when possible." @@ -22013,7 +21859,6 @@ ((org-before-first-heading-p) (goto-char (point-min))) (t (org-back-to-heading))))))) -;;;###autoload (defun org-up-element () "Move to upper element." (interactive) @@ -22026,7 +21871,6 @@ (error "No surrounding element") (org-with-limited-levels (org-back-to-heading))))))) -;;;###autoload (defvar org-element-greater-elements) (defun org-down-element () "Move to inner element." @@ -22043,7 +21887,6 @@ (error "No content for this element")))) (t (error "No inner element"))))) -;;;###autoload (defun org-drag-element-backward () "Move backward element at point." (interactive) @@ -22060,7 +21903,6 @@ (goto-char (+ (org-element-property :begin prev-elem) (- pos (org-element-property :begin elem))))))))) -;;;###autoload (defun org-drag-element-forward () "Move forward element at point." (interactive) @@ -22095,7 +21937,6 @@ (org-element-swap-A-B elem next-elem) (goto-char (+ pos size-next size-blank)))))) -;;;###autoload (defun org-mark-element () "Put point at beginning of this element, mark at end. @@ -22116,7 +21957,6 @@ (push-mark (org-element-property :end element) t t) (goto-char (org-element-property :begin element)))))) -;;;###autoload (defun org-narrow-to-element () "Narrow buffer to current element." (interactive) @@ -22135,7 +21975,6 @@ (org-element-property :begin elem) (org-element-property :end elem)))))) -;;;###autoload (defun org-transpose-element () "Transpose current and previous elements, keeping blank lines between. Point is moved after both elements." @@ -22145,7 +21984,6 @@ (org-drag-element-backward) (goto-char end))) -;;;###autoload (defun org-unindent-buffer () "Un-indent the visible part of the buffer. Relative indentation (between items, inside blocks, etc.) isn't ------------------------------------------------------------ revno: 110674 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2012-10-26 11:46:46 +0200 message: Avoid hourglass mouse pointer when a tooltip for menu item is shown. src/w32fns.c (w32_wnd_proc) : Don't enable tracking of mouse movement events if the menu bar is active. This avoids producing a busy "hour-glass" cursor by Windows if the mouse pointer is positioned over a tooltip shown for some menu item. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-10-25 04:35:39 +0000 +++ src/ChangeLog 2012-10-26 09:46:46 +0000 @@ -1,3 +1,10 @@ +2012-10-26 Eli Zaretskii + + * w32fns.c (w32_wnd_proc) : Don't enable tracking of + mouse movement events if the menu bar is active. This avoids + producing a busy "hour-glass" cursor by Windows if the mouse + pointer is positioned over a tooltip shown for some menu item. + 2012-10-25 Paul Eggert Don't assume process IDs fit in int. === modified file 'src/w32fns.c' --- src/w32fns.c 2012-10-21 07:23:34 +0000 +++ src/w32fns.c 2012-10-26 09:46:46 +0000 @@ -3331,7 +3331,19 @@ versions, there is no way of telling when the mouse leaves the frame, so we just have to put up with help-echo and mouse highlighting remaining while the frame is not active. */ - if (track_mouse_event_fn && !track_mouse_window) + if (track_mouse_event_fn && !track_mouse_window + /* If the menu bar is active, turning on tracking of mouse + movement events might send these events to the tooltip + frame, if the user happens to move the mouse pointer over + the tooltip. But since we don't process events for + tooltip frames, this causes Windows to present a + hourglass cursor, which is ugly and unexpected. So don't + enable tracking mouse events in this case; they will be + restarted when the menu pops down. (Confusingly, the + menubar_active member of f->output_data.w32, tested + above, is only set when a menu was popped up _not_ from + the frame's menu bar, but via x-popup-menu.) */ + && !menubar_in_use) { TRACKMOUSEEVENT tme; tme.cbSize = sizeof (tme); ------------------------------------------------------------ revno: 110673 committer: martin rudalics branch nick: trunk timestamp: Fri 2012-10-26 11:11:24 +0200 message: Fix bug#12731 in mouse-drag-line. * mouse.el (mouse-drag-line): Move last form into preceding when clause (Bug#12731). * help.el (resize-temp-buffer-window): Fix doc-string. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-25 20:13:16 +0000 +++ lisp/ChangeLog 2012-10-26 09:11:24 +0000 @@ -1,3 +1,10 @@ +2012-10-26 Martin Rudalics + + * mouse.el (mouse-drag-line): Move last form into preceding when + clause (Bug#12731). + + * help.el (resize-temp-buffer-window): Fix doc-string. + 2012-10-25 David Engster * emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression): === modified file 'lisp/help.el' --- lisp/help.el 2012-09-30 09:10:59 +0000 +++ lisp/help.el 2012-10-26 09:11:24 +0000 @@ -1012,8 +1012,8 @@ Do not make WINDOW higher than `temp-buffer-max-height' nor smaller than `window-min-height'. Do nothing if WINDOW is not -vertically combined or some of its contents are scrolled out of -view." +vertically combined, some of its contents are scrolled out of +view, or WINDOW was not created by `display-buffer'." (setq window (window-normalize-window window t)) (let ((buffer-name (buffer-name (window-buffer window)))) (let ((height (if (functionp temp-buffer-max-height) @@ -1022,11 +1022,12 @@ temp-buffer-max-height)) (quit-cadr (cadr (window-parameter window 'quit-restore)))) (cond - ;; Don't resize WINDOW if it showed another buffer before. + ;; Resize WINDOW iff it was split off by `display-buffer'. ((and (eq quit-cadr 'window) (pos-visible-in-window-p (point-min) window) (window-combined-p window)) (fit-window-to-buffer window height)) + ;; Resize FRAME iff it was created by `display-buffer'. ((and fit-frame-to-buffer (eq quit-cadr 'frame) (eq window (frame-root-window window))) === modified file 'lisp/mouse.el' --- lisp/mouse.el 2012-10-07 22:31:58 +0000 +++ lisp/mouse.el 2012-10-26 09:11:24 +0000 @@ -517,8 +517,8 @@ ;; If mouse-2 has never been done by the user, it doesn't have ;; the necessary property to be interpreted correctly. (put 'mouse-2 'event-kind 'mouse-click) - (setcar event 'mouse-2)) - (push event unread-command-events))) + (setcar event 'mouse-2) + (push event unread-command-events)))) (defun mouse-drag-mode-line (start-event) "Change the height of a window by dragging on the mode line." ------------------------------------------------------------ revno: 110672 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-10-26 00:40:51 -0700 message: * Makefile.in (uninstall): No INSTALLABLES live in archlibdir. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-10-26 07:39:47 +0000 +++ lib-src/ChangeLog 2012-10-26 07:40:51 +0000 @@ -1,5 +1,7 @@ 2012-10-26 Glenn Morris + * Makefile.in (uninstall): No INSTALLABLES live in archlibdir. + * Makefile.in (install, uninstall): Transformations should not be applied to $EXEEXT. === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2012-10-26 07:39:47 +0000 +++ lib-src/Makefile.in 2012-10-26 07:40:51 +0000 @@ -258,8 +258,7 @@ rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \ done if [ -d $(DESTDIR)${archlibdir} ]; then \ - (cd $(DESTDIR)${archlibdir} && \ - rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}) \ + (cd $(DESTDIR)${archlibdir} && rm -f ${UTILITIES} ${SCRIPTS}) \ fi mostlyclean: ------------------------------------------------------------ revno: 110671 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-10-26 00:39:47 -0700 message: Program name transformations should not be applied to $EXEEXT. * Makefile.in (EMACS, EMACSFULL): * lib-src/Makefile.in (install, uninstall): Transformations should not be applied to $EXEEXT. diff: === modified file 'ChangeLog' --- ChangeLog 2012-10-26 07:32:40 +0000 +++ ChangeLog 2012-10-26 07:39:47 +0000 @@ -1,5 +1,8 @@ 2012-10-26 Glenn Morris + * Makefile.in (EMACS, EMACSFULL): Transformations should not be + applied to $EXEEXT. + * Makefile.in (uninstall): Don't abort if some directories are missing. Apply transformation rules to manual pages, desktop and icon files. No more emacs22 icons to uninstall. === modified file 'Makefile.in' --- Makefile.in 2012-10-26 07:32:40 +0000 +++ Makefile.in 2012-10-26 07:39:47 +0000 @@ -259,8 +259,8 @@ TRANSFORM = @program_transform_name@ # What emacs should be called when installed. -EMACS = `echo emacs${EXEEXT} | sed '$(TRANSFORM)'` -EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'` +EMACS = `echo emacs | sed '$(TRANSFORM)'`${EXEEXT} +EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT} # Subdirectories to make recursively. SUBDIR = lib lib-src src lisp leim === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-10-23 17:09:55 +0000 +++ lib-src/ChangeLog 2012-10-26 07:39:47 +0000 @@ -1,3 +1,8 @@ +2012-10-26 Glenn Morris + + * Makefile.in (install, uninstall): Transformations should not be + applied to $EXEEXT. + 2012-10-23 Eli Zaretskii * makefile.w32-in (lisp2): Add cp51932.el and eucjp-ms.el, to === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2012-08-01 17:54:06 +0000 +++ lib-src/Makefile.in 2012-10-26 07:39:47 +0000 @@ -244,17 +244,19 @@ @echo "Installing utilities for users to run." umask 022; ${MKDIR_P} $(DESTDIR)${bindir} for file in ${INSTALLABLES} ; do \ - $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \ + $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ done for file in ${INSTALLABLE_SCRIPTS} ; do \ $(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \ done uninstall: - (cd $(DESTDIR)${bindir}; \ - for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do \ + for file in ${INSTALLABLES}; do \ + rm -f $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ + done + for file in ${INSTALLABLE_SCRIPTS}; do \ rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \ - done) + done if [ -d $(DESTDIR)${archlibdir} ]; then \ (cd $(DESTDIR)${archlibdir} && \ rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}) \ ------------------------------------------------------------ revno: 110670 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-10-26 00:32:40 -0700 message: Misc fixes for make uninstall * Makefile.in (uninstall): Don't abort if some directories are missing. Apply transformation rules to manual pages, desktop and icon files. No more emacs22 icons to uninstall. diff: === modified file 'ChangeLog' --- ChangeLog 2012-10-24 17:25:24 +0000 +++ ChangeLog 2012-10-26 07:32:40 +0000 @@ -1,3 +1,9 @@ +2012-10-26 Glenn Morris + + * Makefile.in (uninstall): Don't abort if some directories are missing. + Apply transformation rules to manual pages, desktop and icon files. + No more emacs22 icons to uninstall. + 2012-10-24 Glenn Morris * Makefile.in (install-etc, install-man): === modified file 'Makefile.in' --- Makefile.in 2012-10-24 17:25:24 +0000 +++ Makefile.in 2012-10-26 07:32:40 +0000 @@ -685,21 +685,28 @@ -rm -rf $(DESTDIR)${libexecdir}/emacs/${version} thisdir=`/bin/pwd`; \ (info_misc=`cd doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \ - cd $(DESTDIR)${infodir} && \ - for elt in ${INFO_NONMISC} $${info_misc}; do \ - (cd $${thisdir}; \ - $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ - if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ - ext=.gz; else ext=; fi; \ - rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \ - done;) + if cd $(DESTDIR)${infodir}; then \ + for elt in ${INFO_NONMISC} $${info_misc}; do \ + (cd $${thisdir}; \ + $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ + if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ + ext=.gz; else ext=; fi; \ + rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \ + done; \ + fi) (if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ ext=.gz; else ext=; fi; \ - cd ${mansrcdir} && for page in *.1; do \ - rm -f $(DESTDIR)${man1dir}/$$page$$ext; done ) - (cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS)) - (cd $(DESTDIR)${icondir} && rm -f hicolor/*x*/apps/emacs.png hicolor/*x*/apps/emacs22.png hicolor/scalable/apps/emacs.svg hicolor/scalable/mimetypes/emacs-document.svg ) - -rm -f $(DESTDIR)${desktopdir}/emacs.desktop + if cd ${mansrcdir}; then \ + for page in *.1; do \ + rm -f $(DESTDIR)${man1dir}/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \ + fi) + (cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS) || true) + (if cd $(DESTDIR)${icondir}; then \ + rm -f hicolor/*x*/apps/`echo emacs | sed '$(TRANSFORM)'`.png \ + hicolor/scalable/apps/`echo emacs | sed '$(TRANSFORM)'`.svg \ + hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \ + fi) + -rm -f $(DESTDIR)${desktopdir}/`echo emacs | sed '$(TRANSFORM)'`.desktop for file in snake-scores tetris-scores; do \ file=$(DESTDIR)${gamedir}/$${file}; \ [ -s $${file} ] || rm -f $$file; \ ------------------------------------------------------------ revno: 110669 [merge] committer: David Engster branch nick: trunk timestamp: Thu 2012-10-25 22:16:14 +0200 message: Merge changes from CEDET upstream. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-10-25 13:00:52 +0000 +++ lisp/ChangeLog 2012-10-25 20:13:16 +0000 @@ -1,3 +1,11 @@ +2012-10-25 David Engster + + * emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression): + Removed. This feature is already integrated in imenu. + + * emacs-lisp/eieio-opt.el: Remove require for `button' since it is + always loaded. Require `speedbar' unconditionally. + 2012-10-25 Stefan Monnier * dired.el (dired-get-marked-files): Allow ! on . and .. (bug#12725). === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2012-10-23 15:06:07 +0000 +++ lisp/cedet/ChangeLog 2012-10-25 20:13:16 +0000 @@ -1,3 +1,36 @@ +2012-10-25 David Engster + + * semantic/analyze.el (semantic-analyze-dereference-alias): New + function to dereference aliases. + (semantic-analyze-current-context-default): Use it. + + * semantic/grammar.el (semantic-grammar-create-package): + * srecode/compile.el (srecode-compile-templates): Throw a proper + error if semantic-mode is not enabled (bug#9968). + + Compiler warning fixes: + + * semantic.el (semantic-elapsed-time): Make it a defsubst. + + * srecode/dictionary.el (srecode-adebug-dictionary): Remove + require for `semantic'. + + * srecode/map.el: + * srecode/insert.el: Declare functions from `data-debug'. + + * semantic/grammar.el: Require `help-fns'. Declare functions from + `eldoc', which is required in function body. + + * srecode/java.el: + * semantic/texi.el: + * semantic/grammar-wy.el: + * semantic/db-file.el: + * semantic/db-el.el: + * semantic/chart.el: Fix requires. + + * ede/locate.el: Remove useless requires. Declare functions + instead and require in functions when needed. + 2012-10-23 Stefan Monnier * semantic/db-file.el (semanticdb-save-database-functions): === modified file 'lisp/cedet/ede/locate.el' --- lisp/cedet/ede/locate.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/ede/locate.el 2012-10-25 20:13:16 +0000 @@ -49,13 +49,7 @@ ;; when it is available. (require 'ede) -(eval-when-compile (require 'data-debug) - (require 'eieio-datadebug) - (require 'cedet-global) - (require 'cedet-idutils) - (require 'cedet-cscope)) - -(require 'locate) +(eval-when-compile (require 'locate)) ;;; Code: (defcustom ede-locate-setup-options @@ -214,6 +208,12 @@ ;;; GLOBAL ;; + +(declare-function cedet-gnu-global-version-check "cedet-global") +(declare-function cedet-gnu-global-root "cedet-global") +(declare-function cedet-gnu-global-expand-filename "cedet-global") +(declare-function cedet-gnu-global-create/update-database "cedet-global") + (defclass ede-locate-global (ede-locate-base) () "EDE Locator using GNU Global. @@ -260,6 +260,12 @@ ;;; IDUTILS ;; + +(declare-function cedet-idutils-version-check "cedet-idutils") +(declare-function cedet-idutils-support-for-directory "cedet-idutils") +(declare-function cedet-idutils-expand-filename "cedet-idutils") +(declare-function cedet-idutils-create/update-database "cedet-idutils") + (defclass ede-locate-idutils (ede-locate-base) () "EDE Locator using IDUtils. @@ -303,6 +309,12 @@ ;;; CSCOPE ;; + +(declare-function cedet-cscope-version-check "cedet-scope") +(declare-function cedet-cscope-support-for-directory "cedet-scope") +(declare-function cedet-cscope-expand-filename "cedet-cscope") +(declare-function cedet-cscope-create/update-database "cedet-cscope") + (defclass ede-locate-cscope (ede-locate-base) () "EDE Locator using Cscope. @@ -315,6 +327,7 @@ ;; Get ourselves initialized. (call-next-method) ;; Do the checks. + (require 'cedet-cscope) (cedet-cscope-version-check) (when (not (cedet-cscope-support-for-directory (oref loc root))) (error "Cannot use Cscope in %s" @@ -324,6 +337,7 @@ (defmethod ede-locate-ok-in-project :static ((loc ede-locate-cscope) root) "Is it ok to use this project type under ROOT." + (require 'cedet-cscope) (cedet-cscope-version-check) (when (cedet-cscope-support-for-directory root) root)) @@ -334,11 +348,13 @@ Searches are done under the current root of the EDE project that created this EDE locate object." (let ((default-directory (oref loc root))) + (require 'cedet-cscope) (cedet-cscope-expand-filename filesubstring))) (defmethod ede-locate-create/update-root-database :STATIC ((loc ede-locate-cscope) root) "Create or update the GNU Global database for the current project." + (require 'cedet-cscope) (cedet-cscope-create/update-database root)) (provide 'ede/locate) === modified file 'lisp/cedet/semantic.el' --- lisp/cedet/semantic.el 2012-10-14 19:20:28 +0000 +++ lisp/cedet/semantic.el 2012-10-25 20:13:16 +0000 @@ -382,7 +382,7 @@ "When non-nil, activate the interactive parsing debugger. Do not set this yourself. Call `semantic-debug'.") -(defun semantic-elapsed-time (start end) +(defsubst semantic-elapsed-time (start end) "Copied from elp.el. Was `elp-elapsed-time'. Arguments START and END bound the time being calculated." (float-time (time-subtract end start))) === modified file 'lisp/cedet/semantic/analyze.el' --- lisp/cedet/semantic/analyze.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/semantic/analyze.el 2012-10-25 20:13:16 +0000 @@ -527,7 +527,7 @@ (function nil) (fntag nil) arg fntagend argtag - assign asstag + assign asstag newseq ) ;; Pattern for Analysis: @@ -601,16 +601,26 @@ (if debug-on-error (catch 'unfindable - ;; If debug on error is on, allow debugging in this fcn. (setq prefix (semantic-analyze-find-tag-sequence - prefix scope 'prefixtypes 'unfindable))) + prefix scope 'prefixtypes 'unfindable)) + ;; If there's an alias, dereference it and analyze + ;; sequence again. + (when (setq newseq + (semantic-analyze-dereference-alias prefix)) + (setq prefix (semantic-analyze-find-tag-sequence + newseq scope 'prefixtypes 'unfindable)))) ;; Debug on error is off. Capture errors and move on (condition-case err ;; NOTE: This line is duplicated in ;; semantic-analyzer-debug-global-symbol ;; You will need to update both places. - (setq prefix (semantic-analyze-find-tag-sequence - prefix scope 'prefixtypes)) + (progn + (setq prefix (semantic-analyze-find-tag-sequence + prefix scope 'prefixtypes)) + (when (setq newseq + (semantic-analyze-dereference-alias prefix)) + (setq prefix (semantic-analyze-find-tag-sequence + newseq scope 'prefixtypes)))) (error (semantic-analyze-push-error err)))) ) @@ -679,6 +689,20 @@ ;; Return our context. context-return)) +(defun semantic-analyze-dereference-alias (taglist) + "Dereference first tag in TAGLIST if it is an alias. +Returns a sequence of names which can then be fed again into +`semantic-analyze-find-tag-sequence'. +Returns nil if no alias was found." + (when (eq (semantic-tag-get-attribute (car taglist) :kind) 'alias) + (let ((tagname + (semantic-analyze-split-name + (semantic-tag-name + (car (semantic-tag-get-attribute (car taglist) :members)))))) + (append (if (listp tagname) + tagname + (list tagname)) + (cdr taglist))))) (defun semantic-adebug-analyze (&optional ctxt) "Perform `semantic-analyze-current-context'. === modified file 'lisp/cedet/semantic/chart.el' --- lisp/cedet/semantic/chart.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/semantic/chart.el 2012-10-25 20:13:16 +0000 @@ -26,12 +26,9 @@ ;; the output of the semantic parser. ;; -(require 'semantic) (require 'chart) (require 'semantic/db) -(require 'semantic/tag) - -(eval-when-compile (require 'semantic/find)) +(require 'semantic/find) ;;; Code: === modified file 'lisp/cedet/semantic/db-el.el' --- lisp/cedet/semantic/db-el.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/semantic/db-el.el 2012-10-25 20:13:16 +0000 @@ -31,12 +31,7 @@ ;; (require 'semantic/db) - -(eval-when-compile - ;; For generic function searching. - (require 'eieio) - (require 'eieio-opt) - (require 'eieio-base)) +(require 'eieio-opt) (declare-function semantic-elisp-desymbolify "semantic/bovine/el") (declare-function semantic-tag-similar-p "semantic/tag-ls") === modified file 'lisp/cedet/semantic/db-file.el' --- lisp/cedet/semantic/db-file.el 2012-10-23 15:06:07 +0000 +++ lisp/cedet/semantic/db-file.el 2012-10-25 20:13:16 +0000 @@ -25,12 +25,9 @@ ;; A set of semanticdb classes for persistently saving caches on disk. ;; -(require 'semantic) (require 'semantic/db) (require 'cedet-files) - -(eval-when-compile - (require 'data-debug)) +(require 'data-debug) (defvar semanticdb-file-version semantic-version "Version of semanticdb we are writing files to disk with.") === modified file 'lisp/cedet/semantic/grammar-wy.el' --- lisp/cedet/semantic/grammar-wy.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/semantic/grammar-wy.el 2012-10-25 20:13:16 +0000 @@ -23,9 +23,8 @@ ;;; Code: -(require 'semantic/lex) -(eval-when-compile (require 'semantic/bovine)) - +(require 'semantic) + ;;; Prologue ;; (defvar semantic-grammar-lex-c-char-re) === modified file 'lisp/cedet/semantic/grammar.el' --- lisp/cedet/semantic/grammar.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/semantic/grammar.el 2012-10-25 20:13:16 +0000 @@ -35,6 +35,7 @@ (require 'semantic/format) (require 'semantic/grammar-wy) (require 'semantic/idle) +(require 'help-fns) (declare-function semantic-momentary-highlight-tag "semantic/decorate") (declare-function semantic-analyze-context "semantic/analyze") @@ -47,6 +48,9 @@ (require 'semantic/find) (require 'semantic/db)) +(declare-function semantic-grammar-wy--install-parser + "semantic/gram-wy-fallback") + ;;;; ;;;; Set up lexer @@ -825,6 +829,8 @@ If optional argument FORCE is non-nil, unconditionally re-generate the Lisp code." (interactive "P") + (unless (semantic-active-p) + (error "You have to activate semantic-mode to create a package.")) (setq force (or force current-prefix-arg)) (semantic-fetch-tags) (let* ( @@ -1636,6 +1642,12 @@ ) "Association of syntax elements, and the corresponding help.") +(declare-function eldoc-function-argstring "eldoc") +(declare-function eldoc-docstring-format-sym-doc "eldoc") +(declare-function eldoc-last-data-store "eldoc") +(declare-function eldoc-get-fnsym-args-string "eldoc") +(declare-function eldoc-get-var-docstring "eldoc") + (defun semantic-grammar-eldoc-get-macro-docstring (macro expander) "Return a one-line docstring for the given grammar MACRO. EXPANDER is the name of the function that expands MACRO." === modified file 'lisp/cedet/semantic/texi.el' --- lisp/cedet/semantic/texi.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/semantic/texi.el 2012-10-25 20:13:16 +0000 @@ -26,17 +26,11 @@ ;; parser plug-in is the function `semantic-texi-parse-region' that ;; overrides `semantic-parse-region'. -(require 'semantic) +(require 'semantic/db-find) (require 'semantic/format) +(require 'semantic/ctxt) (require 'texinfo) -(eval-when-compile - (require 'semantic/db) - (require 'semantic/db-find) - (require 'semantic/ctxt) - (require 'semantic/find) - (require 'semantic/doc)) - (defvar ede-minor-mode) (declare-function lookup-words "ispell") (declare-function ede-current-project "ede") === modified file 'lisp/cedet/srecode/compile.el' --- lisp/cedet/srecode/compile.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/srecode/compile.el 2012-10-25 20:13:16 +0000 @@ -199,6 +199,8 @@ (defun srecode-compile-templates () "Compile a semantic recode template file into a mode-local variable." (interactive) + (unless (semantic-active-p) + (error "You have to activate semantic-mode to compile SRecode templates.")) (require 'srecode/insert) (message "Compiling template %s..." (file-name-nondirectory (buffer-file-name))) === modified file 'lisp/cedet/srecode/dictionary.el' --- lisp/cedet/srecode/dictionary.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/srecode/dictionary.el 2012-10-25 20:13:16 +0000 @@ -604,7 +604,6 @@ "Run data-debug on this mode's dictionary." (interactive) (require 'eieio-datadebug) - (require 'semantic) (require 'srecode/find) (let* ((modesym major-mode) (start (current-time)) === modified file 'lisp/cedet/srecode/insert.el' --- lisp/cedet/srecode/insert.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/srecode/insert.el 2012-10-25 20:13:16 +0000 @@ -195,6 +195,10 @@ ;; area. Return value is not important. )) +(declare-function data-debug-new-buffer "data-debug") +(declare-function data-debug-insert-stuff-list "data-debug") +(declare-function data-debug-insert-thing dictionary "data-debug") + (defun srecode-insert-show-error-report (dictionary format &rest args) "Display an error report based on DICTIONARY, FORMAT and ARGS. This is intended to diagnose problems with failed template === modified file 'lisp/cedet/srecode/java.el' --- lisp/cedet/srecode/java.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/srecode/java.el 2012-10-25 20:13:16 +0000 @@ -26,10 +26,7 @@ ;;; Code: (require 'srecode/dictionary) -(require 'semantic/tag) - -(eval-when-compile - (require 'semantic/find)) +(require 'semantic/find) ;;;###autoload (defun srecode-semantic-handle-:java (dict) === modified file 'lisp/cedet/srecode/map.el' --- lisp/cedet/srecode/map.el 2012-10-01 18:10:29 +0000 +++ lisp/cedet/srecode/map.el 2012-10-25 20:13:16 +0000 @@ -215,7 +215,8 @@ ;; Eventually, I want to return many maps to search through. (list srecode-current-map))) -(eval-when-compile (require 'data-debug)) +(declare-function data-debug-new-buffer "data-debug") +(declare-function data-debug-insert-stuff-list "data-debug") (defun srecode-adebug-maps () "Run ADEBUG on the output of `srecode-get-maps'." === modified file 'lisp/emacs-lisp/eieio-opt.el' --- lisp/emacs-lisp/eieio-opt.el 2012-10-01 18:10:29 +0000 +++ lisp/emacs-lisp/eieio-opt.el 2012-10-25 20:13:16 +0000 @@ -29,9 +29,9 @@ ;; (require 'eieio) -(require 'button) +(require 'find-func) +(require 'speedbar) (require 'help-mode) -(require 'find-func) ;;; Code: ;;;###autoload @@ -710,10 +710,6 @@ ;;; SPEEDBAR SUPPORT ;; -(eval-when-compile - (condition-case nil - (require 'speedbar) - (error (message "Error loading speedbar... ignored")))) (defvar eieio-class-speedbar-key-map nil "Keymap used when working with a project in speedbar.") === modified file 'lisp/emacs-lisp/eieio.el' --- lisp/emacs-lisp/eieio.el 2012-10-23 15:06:07 +0000 +++ lisp/emacs-lisp/eieio.el 2012-10-25 20:13:16 +0000 @@ -3049,29 +3049,6 @@ ) ) -;;; Interfacing with imenu in emacs lisp mode -;; (Only if the expression is defined) -;; -(if (eval-when-compile (boundp 'lisp-imenu-generic-expression)) -(progn - -(defun eieio-update-lisp-imenu-expression () - "Examine `lisp-imenu-generic-expression' and modify it to find `defmethod'." - (let ((exp lisp-imenu-generic-expression)) - (while exp - ;; it's of the form '( ( title expr indx ) ... ) - (let* ((subcar (cdr (car exp))) - (substr (car subcar))) - (if (and (not (string-match "|method\\\\" substr)) - (string-match "|advice\\\\" substr)) - (setcar subcar - (replace-match "|advice\\|method\\" t t substr 0)))) - (setq exp (cdr exp))))) - -(eieio-update-lisp-imenu-expression) - -)) - ;;; Autoloading some external symbols, and hooking into the help system ;; ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.