mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-24 10:38:38 +00:00
Merge from emacs-24; up to 2012-12-23T02:41:17Z!rgm@gnu.org
This commit is contained in:
commit
929aeac608
@ -1,3 +1,7 @@
|
||||
2013-02-28 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* xresources.texi (GTK resources): Fix broken link.
|
||||
|
||||
2013-02-25 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* files.texi (Interlocking): Don't refer to symlinks as the
|
||||
|
@ -507,7 +507,7 @@ those are governed by normal X resources (@pxref{Resources}).
|
||||
|
||||
The following sections describe how to customize GTK+ resources for
|
||||
Emacs. For details about GTK+ resources, see the GTK+ API document at
|
||||
@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}.
|
||||
@uref{http://developer.gnome.org/gtk2/stable/gtk2-Resource-Files.html}.
|
||||
|
||||
In GTK+ version 3, GTK+ resources have been replaced by a completely
|
||||
different system. The appearance of GTK+ widgets is now determined by
|
||||
|
@ -1,3 +1,7 @@
|
||||
2013-02-28 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* variables.texi (File Local Variables): Fix reference.
|
||||
|
||||
2013-02-24 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* files.texi (Magic File Names): Improve wording and indexing.
|
||||
|
@ -1556,7 +1556,7 @@ an ordinary evaluated argument.
|
||||
|
||||
A file can specify local variable values; Emacs uses these to create
|
||||
buffer-local bindings for those variables in the buffer visiting that
|
||||
file. @xref{File variables, , Local Variables in Files, emacs, The
|
||||
file. @xref{File Variables, , Local Variables in Files, emacs, The
|
||||
GNU Emacs Manual}, for basic information about file-local variables.
|
||||
This section describes the functions and variables that affect how
|
||||
file-local variables are processed.
|
||||
|
@ -1,3 +1,15 @@
|
||||
2013-02-28 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (Visibility cycling): Suggest to set
|
||||
`org-agenda-inhibit-startup' to nil if user wants the startup
|
||||
visibility settings to be honored in any circumstances.
|
||||
(Progress logging, Checkboxes): Fix typos.
|
||||
|
||||
2013-02-28 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (top) [xxx, yyy, trampfn]: Provide two versions of
|
||||
the macros, for Texinfo 4.13 and 5.0.
|
||||
|
||||
2013-02-24 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Port Tramp documentation to Texinfo 5.0.
|
||||
|
@ -2,7 +2,7 @@
|
||||
@c %**start of header
|
||||
@setfilename ../../info/org
|
||||
@settitle The Org Manual
|
||||
@set VERSION 7.9.3e (GNU Emacs 24.3)
|
||||
@set VERSION 7.9.3f (GNU Emacs 24.3)
|
||||
|
||||
@c Use proper quote and backtick for code sections in PDF output
|
||||
@c Cf. Texinfo manual 14.2
|
||||
@ -1296,6 +1296,7 @@ Copy the @i{visible} text in the region into the kill ring.
|
||||
@end table
|
||||
|
||||
@vindex org-startup-folded
|
||||
@vindex org-agenda-inhibit-startup
|
||||
@cindex @code{overview}, STARTUP keyword
|
||||
@cindex @code{content}, STARTUP keyword
|
||||
@cindex @code{showall}, STARTUP keyword
|
||||
@ -1314,6 +1315,10 @@ buffer:
|
||||
#+STARTUP: showeverything
|
||||
@end example
|
||||
|
||||
The startup visibility options are ignored when the file is open for the
|
||||
first time during the agenda generation: if you want the agenda to honor
|
||||
the startup visibility, set @code{org-agenda-inhibit-startup} to nil.
|
||||
|
||||
@cindex property, VISIBILITY
|
||||
@noindent
|
||||
Furthermore, any entries with a @samp{VISIBILITY} property (@pxref{Properties
|
||||
@ -2439,7 +2444,7 @@ You may reference a rectangular range of fields by specifying two field
|
||||
references connected by two dots @samp{..}. If both fields are in the
|
||||
current row, you may simply use @samp{$2..$7}, but if at least one field
|
||||
is in a different row, you need to use the general @code{@@row$column}
|
||||
format at least for the first field (i.e., the reference must start with
|
||||
format at least for the first field (i.e the reference must start with
|
||||
@samp{@@} in order to be interpreted correctly). Examples:
|
||||
|
||||
@example
|
||||
@ -4075,7 +4080,7 @@ module @file{org-depend.el}.
|
||||
|
||||
Org mode can automatically record a timestamp and possibly a note when
|
||||
you mark a TODO item as DONE, or even each time you change the state of
|
||||
a TODO item. This system is highly configurable, settings can be on a
|
||||
a TODO item. This system is highly configurable; settings can be on a
|
||||
per-keyword basis and can be localized to a file or even a subtree. For
|
||||
information on how to clock working time for a task, see @ref{Clocking
|
||||
work time}.
|
||||
@ -4431,7 +4436,7 @@ lists. But you can allow it by modifying @code{org-list-automatic-rules}
|
||||
accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting
|
||||
it with the string @samp{[ ]}. This feature is similar to TODO items
|
||||
(@pxref{TODO Items}), but is more lightweight. Checkboxes are not included
|
||||
into the global TODO list, so they are often great to split a task into a
|
||||
in the global TODO list, so they are often great to split a task into a
|
||||
number of simple steps. Or you can use them in a shopping list. To toggle a
|
||||
checkbox, use @kbd{C-c C-c}, or use the mouse (thanks to Piotr Zielinski's
|
||||
@file{org-mouse.el}).
|
||||
|
@ -20,6 +20,11 @@
|
||||
@c xxx and yyy are auxiliary macros in order to omit leading and
|
||||
@c trailing whitespace. Not very elegant, but I don't know it better.
|
||||
|
||||
@c There are subtle differences between texinfo 4.13 and 5.0. We must
|
||||
@c declare two versions of the macro. This will be improved, hopefully.
|
||||
|
||||
@c Texinfo 5.0.
|
||||
@ifset txicommandconditionals
|
||||
@macro xxx {one}
|
||||
@set \one\
|
||||
@end macro
|
||||
@ -38,6 +43,26 @@
|
||||
@yyy{\user\,@@}@c
|
||||
\host\@value{postfix}\localname\
|
||||
@end macro
|
||||
@end ifset
|
||||
|
||||
@c Texinfo 4.13.
|
||||
@ifclear txicommandconditionals
|
||||
@macro xxx {one}@c
|
||||
@set \one\@c
|
||||
@end macro
|
||||
|
||||
@macro yyy {one, two}@c
|
||||
@xxx{x\one\}@c
|
||||
@ifclear x@c
|
||||
\one\@w{}\two\@c
|
||||
@end ifclear
|
||||
@clear x\one\@c
|
||||
@end macro
|
||||
|
||||
@macro trampfn {method, user, host, localname}@c
|
||||
@value{prefix}@yyy{\method\,@value{postfixhop}}@yyy{\user\,@@}\host\@value{postfix}\localname\@c
|
||||
@end macro
|
||||
@end ifclear
|
||||
|
||||
@copying
|
||||
Copyright @copyright{} 1999--2013 Free Software Foundation, Inc.
|
||||
@ -3892,3 +3917,4 @@ for @value{emacsothername}.
|
||||
@c * Use `filename' resp. `file name' consistently.
|
||||
@c * Use `host' resp. `machine' consistently.
|
||||
@c * Consistent small or capitalized words especially in menus.
|
||||
@c * Make a unique declaration of @trampfn.
|
||||
|
76
etc/NEWS
76
etc/NEWS
@ -829,6 +829,63 @@ See the variable `calendar-month-header'.
|
||||
*** The calendars produced by cal-html include holidays.
|
||||
Customize `cal-html-holidays' to change this.
|
||||
|
||||
** CEDET
|
||||
|
||||
*** The major modes from the parser generators "Bovine" and "Wisent"
|
||||
are now properly integrated in Emacs. The file suffixes ".by" and ".wy"
|
||||
are in `auto-mode-alist', and the corresponding manuals are included.
|
||||
|
||||
*** EDE
|
||||
|
||||
**** Menu support for the "Configuration" feature. This allows users to
|
||||
choose the active configuration (such as debug or install) from the menu.
|
||||
|
||||
**** New command `ede-set' to interactively set project-local variables.
|
||||
|
||||
**** Support for compiling, debugging, and running in "generic" projects.
|
||||
|
||||
**** Autoconf editing support for M4 macros with complex arguments.
|
||||
|
||||
**** Compilation support for the "linux" project type.
|
||||
|
||||
**** "simple" projects have been removed; use "generic" projects instead.
|
||||
|
||||
*** Semantic
|
||||
|
||||
**** Support for parsing #include statements inside a namespace in C/C++.
|
||||
|
||||
**** Improved support for 'extern "C"' declarations in C/C++.
|
||||
|
||||
**** The ability to ignore more common special C/C++ preprocessor symbols,
|
||||
such as '__nonnull' and '__asm'. Add '__cplusplus' macro when parsing C++.
|
||||
If available, include cdefs.h as an additional source of preprocessor symbols.
|
||||
|
||||
**** Improved C/C++ function pointer parsing.
|
||||
|
||||
**** In Python, support for converting imports to include file names.
|
||||
|
||||
**** Ability to dynamically determine the Python load path.
|
||||
|
||||
**** Support for the Python 'WITH' and 'AT' keywords.
|
||||
|
||||
**** Improved tooltip completion.
|
||||
|
||||
*** SRecode
|
||||
|
||||
**** The SRecode manual is now included.
|
||||
|
||||
**** Tag generation supports constructor/destructor settings and system
|
||||
include differentiation.
|
||||
|
||||
**** Addition of 'Framework' support: Frameworks are specified when a
|
||||
particular kind of library (such as Android) is needed in a common language
|
||||
mode (like Java).
|
||||
|
||||
**** Support for nested templates and let variables override based on priority.
|
||||
|
||||
**** Support for merging tables from multiple related modes, such as
|
||||
default -> c++ -> arduino.
|
||||
|
||||
** Compile has a new option `compilation-always-kill'.
|
||||
|
||||
** Customize
|
||||
@ -1168,6 +1225,25 @@ accessed via the new `timer--psecs' accessor.
|
||||
*** Last-modified time stamps in undo lists now are of the form
|
||||
(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
|
||||
|
||||
** EIEIO
|
||||
|
||||
*** Improved security when handling persistent objects:
|
||||
|
||||
**** `eieio-persistent-read' now features optional arguments for specifying
|
||||
the class to load, as well as a flag stating whether subclasses are allowed;
|
||||
if provided, other classes will be rejected by the reader. For
|
||||
compatibility with existing code, if the class is omitted only a
|
||||
warning is issued.
|
||||
|
||||
**** New specialized reader for pulling in classes and signaling errors
|
||||
without evaluation of suspicious code.
|
||||
|
||||
**** All slots that contain objects must have a :type. Slots with lists
|
||||
of objects must use a new type predicate for a list of an object type.
|
||||
|
||||
*** Support for `find-function' and similar utilities, through the addition
|
||||
of filename support to generated symbols.
|
||||
|
||||
** Floating point functions now always return special values like NaN,
|
||||
instead of signaling errors, if given invalid args; e.g., (log -1.0).
|
||||
Previously, they returned NaNs on some platforms but signaled errors
|
||||
|
@ -1,3 +1,7 @@
|
||||
2013-02-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* textmodes/paragraphs.el (mark-paragraph): Doc fix.
|
||||
|
||||
2013-02-28 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* doc-view.el: Preserve h&v scroll across C-c C-c C-c C-c.
|
||||
|
@ -1,3 +1,73 @@
|
||||
2013-02-28 Achim Gratz <Stromeko@Stromeko.DE>
|
||||
|
||||
* org.el (org-org-menu): Use correct key "C-u C-c C-x !" to do
|
||||
org-reload uncompiled in the menu.
|
||||
|
||||
2013-02-28 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org-indent.el (org-indent-add-properties): Bugfix: prevent
|
||||
negative value for `added-ind-per-lvl'.
|
||||
|
||||
* org.el (org-mode): Add `org-fix-ellipsis-at-bol' to
|
||||
`isearch-mode-end-hook' so that any isearch fixes the problem with
|
||||
ellipsis on the first line.
|
||||
(org-fix-ellipsis-at-bol): New defsubst.
|
||||
(org-show-context, org-isearch-end): Use it.
|
||||
|
||||
* org.el (org-show-context): Remove useless catch.
|
||||
Make sure the top of the window is a visible headline.
|
||||
(org-activate-plain-links): Remove unused catch.
|
||||
|
||||
* org-macs.el (org-get-alist-option): Return nil, not (nil),
|
||||
so that `org-show-context' DTRT.
|
||||
|
||||
* org.el (org-imenu-get-tree): Fix bug when matching against empty
|
||||
headlines.
|
||||
|
||||
* org.el (org-overview): Stay on current line.
|
||||
(org-map-entries): Fix docstring.
|
||||
(org-at-clock-log-p): Delete.
|
||||
* org-clock.el (org-at-clock-log-p): Move here.
|
||||
|
||||
* org.el (org-tsr-regexp-both): Don't activate dates in links.
|
||||
(org-activate-dates): Change match boundaries according to the new
|
||||
value of `org-tsr-regexp-both'.
|
||||
|
||||
* org-agenda.el (org-agenda-to-appt): Fix typos.
|
||||
|
||||
* org-agenda.el (org-agenda-local-vars): Don't include
|
||||
`org-agenda-show-window' as it needs to be checked outside of the
|
||||
agenda window.
|
||||
|
||||
* org.el (org-set-tags-command): Fix bug when setting tags for
|
||||
multiple headlines in an active region.
|
||||
|
||||
* org-mobile.el (org-mobile-edit): DTRT when inserting a heading
|
||||
in an invisible region.
|
||||
|
||||
* org.el (org-insert-heading-respect-content): Add docstring.
|
||||
New `invisible-ok' parameter.
|
||||
(org-insert-todo-heading-respect-content): Add docstring.
|
||||
|
||||
* ob-tangle.el (org-babel-tangle-collect-blocks):
|
||||
Bugfix: remove code references from blocks.
|
||||
|
||||
* org-agenda.el (org-agenda-schedule, org-agenda-deadline):
|
||||
Cosmetic changes.
|
||||
(org-agenda-show-new-time): Fix bug when displaying a temporary
|
||||
overlay with the scheduled/deadline information.
|
||||
|
||||
* org.el (org-fill-paragraph-with-timestamp-nobreak-p): New function.
|
||||
(org-setup-filling): Use it to prevent breaking a timestamp when
|
||||
filling a paragraph.
|
||||
|
||||
* org-id.el (org-id-get-with-outline-path-completion): Fix docstring.
|
||||
|
||||
2013-02-28 Tim Burt <tcburt@rochester.rr.com> (tiny change)
|
||||
|
||||
* org-datetree.el (org-datetree-find-year-create):
|
||||
Match headlines with tags.
|
||||
|
||||
2013-02-07 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org-agenda.el (org-agenda-get-deadlines)
|
||||
|
@ -371,6 +371,10 @@ code blocks by language."
|
||||
(unless (and language (not (string= language src-lang)))
|
||||
(let* ((info (org-babel-get-src-block-info))
|
||||
(params (nth 2 info))
|
||||
(extra (nth 3 info))
|
||||
(cref-fmt (or (and (string-match "-l \"\\(.+\\)\"" extra)
|
||||
(match-string 1 extra))
|
||||
org-coderef-label-format))
|
||||
(link ((lambda (link)
|
||||
(and (string-match org-bracket-link-regexp link)
|
||||
(match-string 1 link)))
|
||||
@ -388,6 +392,11 @@ code blocks by language."
|
||||
((lambda (body) ;; run the tangle-body-hook
|
||||
(with-temp-buffer
|
||||
(insert body)
|
||||
(when (string-match "-r" extra)
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward
|
||||
(replace-regexp-in-string "%s" ".+" cref-fmt) nil t)
|
||||
(replace-match "")))
|
||||
(run-hooks 'org-babel-tangle-body-hook)
|
||||
(buffer-string)))
|
||||
((lambda (body) ;; expand the body in language specific manner
|
||||
|
@ -1934,11 +1934,6 @@ When nil, `q' will kill the single agenda buffer."
|
||||
(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.")
|
||||
|
||||
@ -1971,7 +1966,6 @@ Toggle `org-agenda-sticky'.
|
||||
org-agenda-last-search-view-search-was-boolean
|
||||
org-agenda-filtered-by-category
|
||||
org-agenda-filter-form
|
||||
org-agenda-show-window
|
||||
org-agenda-cycle-counter
|
||||
org-agenda-last-prefix-arg)
|
||||
"Variables that must be local in agenda buffers to allow multiple buffers.")
|
||||
@ -2615,43 +2609,6 @@ Pressing `<' twice means to restrict to the current subtree or region
|
||||
((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.
|
||||
@ -2947,17 +2904,6 @@ before running the agenda command."
|
||||
(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)
|
||||
|
||||
;;;###autoload
|
||||
@ -3015,44 +2961,6 @@ agenda-day The day in the agenda where this is listed"
|
||||
","))
|
||||
(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)
|
||||
"Make sure all properties on an agenda item have a canonical form.
|
||||
This ensures the export commands can easily use it."
|
||||
@ -3100,11 +3008,6 @@ This ensures the export commands can easily use it."
|
||||
(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."
|
||||
@ -3140,12 +3043,6 @@ This ensures the export commands can easily use it."
|
||||
(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
|
||||
"The current span used in the agenda view.") ; local variable in the agenda buffer
|
||||
(defun org-agenda-mark-header-line (pos)
|
||||
@ -4204,20 +4101,6 @@ given in `org-agenda-start-on-weekday'."
|
||||
(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)
|
||||
@ -4527,52 +4410,6 @@ in `org-agenda-text-search-extra-files'."
|
||||
(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)
|
||||
@ -4663,15 +4500,6 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
|
||||
(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
|
||||
@ -4757,12 +4585,6 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
|
||||
(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
|
||||
@ -4991,14 +4813,6 @@ of what a project is and how to check if it stuck, customize the variable
|
||||
(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.
|
||||
@ -5177,35 +4991,6 @@ function from a program - use `org-agenda-get-day-entries' instead."
|
||||
(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)
|
||||
@ -5401,11 +5186,6 @@ This function is invoked if `org-agenda-todo-ignore-deadlines',
|
||||
(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)
|
||||
|
||||
(defun org-agenda-get-timestamps (&optional deadline-results)
|
||||
"Return the date stamp information for agenda display."
|
||||
(let* ((props (list 'face 'org-agenda-calendar-event
|
||||
@ -8686,9 +8466,8 @@ Called with a universal prefix arg, show the priority instead of setting it."
|
||||
(defun org-agenda-show-new-time (marker stamp &optional prefix)
|
||||
"Show new date stamp via text properties."
|
||||
;; We use text properties to make this undoable
|
||||
(let ((inhibit-read-only t)
|
||||
(buffer-invisibility-spec))
|
||||
(setq stamp (concat " " prefix " => " stamp))
|
||||
(let ((inhibit-read-only t))
|
||||
(setq stamp (concat prefix " => " stamp " "))
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(while (not (bobp))
|
||||
@ -8750,7 +8529,7 @@ ARG is passed through to `org-schedule'."
|
||||
(widen)
|
||||
(goto-char pos)
|
||||
(setq ts (org-schedule arg time)))
|
||||
(org-agenda-show-new-time marker ts "S"))
|
||||
(org-agenda-show-new-time marker ts " S"))
|
||||
(message "%s" ts)))
|
||||
|
||||
(defun org-agenda-deadline (arg &optional time)
|
||||
@ -8770,7 +8549,7 @@ ARG is passed through to `org-deadline'."
|
||||
(widen)
|
||||
(goto-char pos)
|
||||
(setq ts (org-deadline arg time)))
|
||||
(org-agenda-show-new-time marker ts "D"))
|
||||
(org-agenda-show-new-time marker ts " D"))
|
||||
(message "%s" ts)))
|
||||
|
||||
(defun org-agenda-clock-in (&optional arg)
|
||||
@ -9131,12 +8910,6 @@ This is a command that has to be installed in `calendar-mode-map'."
|
||||
(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)
|
||||
@ -9519,7 +9292,7 @@ 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
|
||||
If an entry has a APPT_WARNTIME property, its value will be used
|
||||
to override `appt-message-warning-time'."
|
||||
(interactive "P")
|
||||
(if refresh (setq appt-time-msg-list nil))
|
||||
@ -9579,40 +9352,6 @@ to override `appt-message-warning-time'."
|
||||
(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))
|
||||
|
@ -1545,12 +1545,6 @@ to, overriding the existing value of `org-clock-out-switch-to-state'."
|
||||
(org-remove-empty-drawer-at clock-drawer (point))
|
||||
(forward-line 1))))))
|
||||
|
||||
(defun org-at-clock-log-p nil
|
||||
"Is the cursor on the clock log line?"
|
||||
(save-excursion
|
||||
(move-beginning-of-line 1)
|
||||
(looking-at "^[ \t]*CLOCK:")))
|
||||
|
||||
(defun org-clock-timestamps-up nil
|
||||
"Increase CLOCK timestamps at cursor."
|
||||
(interactive)
|
||||
|
@ -72,7 +72,7 @@ tree can be found."
|
||||
(goto-char (prog1 (point) (widen))))))
|
||||
|
||||
(defun org-datetree-find-year-create (year)
|
||||
(let ((re "^\\*+[ \t]+\\([12][0-9][0-9][0-9]\\)\\s-*$")
|
||||
(let ((re "^\\*+[ \t]+\\([12][0-9]\\{3\\}\\)\\(.*?\\([ \t]:[[:alnum:]:_@#%]+:\\)?\\s-*$\\)")
|
||||
match)
|
||||
(goto-char (point-min))
|
||||
(while (and (setq match (re-search-forward re nil t))
|
||||
|
@ -49,7 +49,7 @@
|
||||
(declare-function image-mode-window-get "ext:image-mode"
|
||||
(prop &optional winprops))
|
||||
|
||||
(autoload 'doc-view-goto-page "doc-view")
|
||||
(org-autoload "doc-view" '(doc-view-goto-page))
|
||||
|
||||
(org-add-link-type "docview" 'org-docview-open)
|
||||
(add-hook 'org-store-link-functions 'org-docview-store-link)
|
||||
|
@ -259,11 +259,11 @@ In any case, the ID of the entry is returned."
|
||||
id)))))
|
||||
|
||||
(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
|
||||
headlines. When omitted, all headlines in all agenda files are
|
||||
eligible.
|
||||
It returns the ID of the entry. If necessary, the ID is created."
|
||||
"Use `outline-path-completion' to retrieve the ID of an entry.
|
||||
TARGETS may be a setting for `org-refile-targets' to define
|
||||
eligible headlines. When omitted, all headlines in the current
|
||||
file are eligible. This function returns the ID of the entry.
|
||||
If necessary, the ID is created."
|
||||
(let* ((org-refile-targets (or targets '((nil . (:maxlevel . 10)))))
|
||||
(org-refile-use-outline-path
|
||||
(if (caar org-refile-targets) 'file t))
|
||||
|
@ -328,7 +328,7 @@ stopped."
|
||||
;; inline task or not.
|
||||
(let* ((case-fold-search t)
|
||||
(limited-re (org-get-limited-outline-regexp))
|
||||
(added-ind-per-lvl (1- org-indent-indentation-per-level))
|
||||
(added-ind-per-lvl (abs (1- org-indent-indentation-per-level)))
|
||||
(pf (save-excursion
|
||||
(and (ignore-errors (let ((outline-regexp limited-re))
|
||||
(org-back-to-heading t)))
|
||||
|
@ -263,7 +263,8 @@ in `org-rm-props'."
|
||||
(cond ((eq key t) t)
|
||||
((eq option t) t)
|
||||
((assoc key option) (cdr (assoc key option)))
|
||||
(t (cdr (assq 'default option)))))
|
||||
(t (let ((r (cdr (assq 'default option))))
|
||||
(if (listp r) (delq nil r) r)))))
|
||||
|
||||
(defsubst org-check-external-command (cmd &optional use no-error)
|
||||
"Check if external program CMD for USE exists, error if not.
|
||||
|
@ -1064,7 +1064,7 @@ be returned that indicates what went wrong."
|
||||
(if (org-on-heading-p) ; if false we are in top-level of file
|
||||
(progn
|
||||
(end-of-line 1)
|
||||
(org-insert-heading-respect-content)
|
||||
(org-insert-heading-respect-content t)
|
||||
(org-demote))
|
||||
(beginning-of-line)
|
||||
(insert "* "))
|
||||
|
@ -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.3e"))
|
||||
(let ((org-release "7.9.3f"))
|
||||
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 "7.9.3e-3-gb07a9b"))
|
||||
(let ((org-git-version "release_7.9.3f-17-g7524ef"))
|
||||
org-git-version))
|
||||
;;;###autoload
|
||||
(defvar org-odt-data-dir "/usr/share/emacs/etc/org"
|
||||
|
152
lisp/org/org.el
152
lisp/org/org.el
@ -114,7 +114,6 @@ Stars are put in group 1 and the trimmed body in group 2.")
|
||||
(declare-function org-inlinetask-outline-regexp "org-inlinetask" ())
|
||||
(declare-function org-inlinetask-toggle-visibility "org-inlinetask" ())
|
||||
(declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label))
|
||||
(declare-function org-at-clock-log-p "org-clock" ())
|
||||
(declare-function org-clock-timestamps-up "org-clock" ())
|
||||
(declare-function org-clock-timestamps-down "org-clock" ())
|
||||
(declare-function org-clock-sum-current-item "org-clock" (&optional tstart))
|
||||
@ -467,7 +466,11 @@ the following lines anywhere in the buffer:
|
||||
#+STARTUP: fold (or `overview', this is equivalent)
|
||||
#+STARTUP: nofold (or `showall', this is equivalent)
|
||||
#+STARTUP: content
|
||||
#+STARTUP: showeverything"
|
||||
#+STARTUP: showeverything
|
||||
|
||||
By default, this option is ignored when Org opens agenda files
|
||||
for the first time. If you want the agenda to honor the startup
|
||||
option, set `org-agenda-inhibit-startup' to nil."
|
||||
:group 'org-startup
|
||||
:type '(choice
|
||||
(const :tag "nofold: show all" nil)
|
||||
@ -3913,6 +3916,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
|
||||
(save-excursion
|
||||
(goto-char (org-table-begin 'any))
|
||||
(looking-at org-table1-hline-regexp))))
|
||||
|
||||
(defun org-table-recognize-table.el ()
|
||||
"If there is a table.el table nearby, recognize it and move into it."
|
||||
(if org-table-tab-recognizes-table.el
|
||||
@ -3948,7 +3952,6 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
|
||||
nil))
|
||||
|
||||
(defvar org-table-clean-did-remove-column nil)
|
||||
|
||||
(defun org-table-map-tables (function &optional quietly)
|
||||
"Apply FUNCTION to the start of all tables in the buffer."
|
||||
(save-excursion
|
||||
@ -4969,7 +4972,8 @@ The following commands are available:
|
||||
(org-add-hook 'isearch-mode-end-hook 'org-isearch-end 'append 'local)
|
||||
;; Emacs 22 deals with this through a special variable
|
||||
(org-set-local 'outline-isearch-open-invisible-function
|
||||
(lambda (&rest ignore) (org-show-context 'isearch))))
|
||||
(lambda (&rest ignore) (org-show-context 'isearch)))
|
||||
(org-add-hook 'isearch-mode-end-hook 'org-fix-ellipsis-at-bol 'append 'local))
|
||||
|
||||
;; Setup the pcomplete hooks
|
||||
(set (make-local-variable 'pcomplete-command-completion-function)
|
||||
@ -5008,6 +5012,8 @@ The following commands are available:
|
||||
|
||||
(put 'org-mode 'flyspell-mode-predicate 'org-mode-flyspell-verify)
|
||||
|
||||
(defsubst org-fix-ellipsis-at-bol ()
|
||||
(save-excursion (goto-char (window-start)) (recenter 0)))
|
||||
|
||||
(defun org-find-invisible-foreground ()
|
||||
(let ((candidates (remove
|
||||
@ -5205,8 +5211,9 @@ on a string that terminates immediately after the date.")
|
||||
(defconst org-tsr-regexp (concat org-ts-regexp "\\(--?-?"
|
||||
org-ts-regexp "\\)?")
|
||||
"Regular expression matching a time stamp or time stamp range.")
|
||||
(defconst org-tsr-regexp-both (concat org-ts-regexp-both "\\(--?-?"
|
||||
org-ts-regexp-both "\\)?")
|
||||
(defconst org-tsr-regexp-both
|
||||
(concat org-ts-regexp-both "\\(--?-?"
|
||||
org-ts-regexp-both "\\)?")
|
||||
"Regular expression matching a time stamp or time stamp range.
|
||||
The time stamps may be either active or inactive.")
|
||||
|
||||
@ -5298,21 +5305,20 @@ will be prompted for."
|
||||
|
||||
(defun org-activate-plain-links (limit)
|
||||
"Run through the buffer and add overlays to links."
|
||||
(catch 'exit
|
||||
(let (f)
|
||||
(when (and (re-search-forward (concat org-plain-link-re) limit t)
|
||||
(not (org-in-src-block-p)))
|
||||
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
|
||||
(setq f (get-text-property (match-beginning 0) 'face))
|
||||
(unless (or (org-in-src-block-p)
|
||||
(eq f 'org-tag)
|
||||
(and (listp f) (memq 'org-tag f)))
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
(list 'mouse-face 'highlight
|
||||
'face 'org-link
|
||||
'keymap org-mouse-map))
|
||||
(org-rear-nonsticky-at (match-end 0)))
|
||||
t))))
|
||||
(let (f)
|
||||
(when (and (re-search-forward (concat org-plain-link-re) limit t)
|
||||
(not (org-in-src-block-p)))
|
||||
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
|
||||
(setq f (get-text-property (match-beginning 0) 'face))
|
||||
(unless (or (org-in-src-block-p)
|
||||
(eq f 'org-tag)
|
||||
(and (listp f) (memq 'org-tag f)))
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
(list 'mouse-face 'highlight
|
||||
'face 'org-link
|
||||
'keymap org-mouse-map))
|
||||
(org-rear-nonsticky-at (match-end 0)))
|
||||
t)))
|
||||
|
||||
(defun org-activate-code (limit)
|
||||
(if (re-search-forward "^[ \t]*\\(:\\(?: .*\\|$\\)\n?\\)" limit t)
|
||||
@ -5510,7 +5516,8 @@ by a #."
|
||||
|
||||
(defun org-activate-dates (limit)
|
||||
"Run through the buffer and add overlays to dates."
|
||||
(if (re-search-forward org-tsr-regexp-both limit t)
|
||||
(if (and (re-search-forward org-tsr-regexp-both limit t)
|
||||
(not (equal (char-before (match-beginning 0)) 91)))
|
||||
(progn
|
||||
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
@ -6431,13 +6438,16 @@ of the first headline in the buffer. This is important, because if the
|
||||
first headline is not level one, then (hide-sublevels 1) gives confusing
|
||||
results."
|
||||
(interactive)
|
||||
(let ((level (save-excursion
|
||||
(let ((l (org-current-line))
|
||||
(level (save-excursion
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward (concat "^" outline-regexp) nil t)
|
||||
(progn
|
||||
(goto-char (match-beginning 0))
|
||||
(funcall outline-level))))))
|
||||
(and level (hide-sublevels level))))
|
||||
(and level (hide-sublevels level))
|
||||
(recenter '(4))
|
||||
(org-goto-line l)))
|
||||
|
||||
(defun org-content (&optional arg)
|
||||
"Show all headlines in the buffer, like a table of contents.
|
||||
@ -7231,12 +7241,14 @@ This is a list with the following elements:
|
||||
(org-move-subtree-down)
|
||||
(end-of-line 1))
|
||||
|
||||
(defun org-insert-heading-respect-content ()
|
||||
(interactive)
|
||||
(defun org-insert-heading-respect-content (invisible-ok)
|
||||
"Insert heading with `org-insert-heading-respect-content' set to t."
|
||||
(interactive "P")
|
||||
(let ((org-insert-heading-respect-content t))
|
||||
(org-insert-heading t)))
|
||||
(org-insert-heading t invisible-ok)))
|
||||
|
||||
(defun org-insert-todo-heading-respect-content (&optional force-state)
|
||||
"Insert TODO heading with `org-insert-heading-respect-content' set to t."
|
||||
(interactive "P")
|
||||
(let ((org-insert-heading-respect-content t))
|
||||
(org-insert-todo-heading force-state t)))
|
||||
@ -12835,27 +12847,27 @@ How much context is shown depends upon the variables
|
||||
(following-p (org-get-alist-option org-show-following-heading key))
|
||||
(entry-p (org-get-alist-option org-show-entry-below key))
|
||||
(siblings-p (org-get-alist-option org-show-siblings key)))
|
||||
(catch 'exit
|
||||
;; Show heading or entry text
|
||||
(if (and heading-p (not entry-p))
|
||||
(org-flag-heading nil) ; only show the heading
|
||||
(and (or entry-p (outline-invisible-p) (org-invisible-p2))
|
||||
(org-show-hidden-entry))) ; show entire entry
|
||||
(when following-p
|
||||
;; Show next sibling, or heading below text
|
||||
(save-excursion
|
||||
(and (if heading-p (org-goto-sibling) (outline-next-heading))
|
||||
(org-flag-heading nil))))
|
||||
(when siblings-p (org-show-siblings))
|
||||
(when hierarchy-p
|
||||
;; show all higher headings, possibly with siblings
|
||||
(save-excursion
|
||||
(while (and (condition-case nil
|
||||
(progn (org-up-heading-all 1) t)
|
||||
(error nil))
|
||||
(not (bobp)))
|
||||
(org-flag-heading nil)
|
||||
(when siblings-p (org-show-siblings))))))))
|
||||
;; Show heading or entry text
|
||||
(if (and heading-p (not entry-p))
|
||||
(org-flag-heading nil) ; only show the heading
|
||||
(and (or entry-p (outline-invisible-p) (org-invisible-p2))
|
||||
(org-show-hidden-entry))) ; show entire entry
|
||||
(when following-p
|
||||
;; Show next sibling, or heading below text
|
||||
(save-excursion
|
||||
(and (if heading-p (org-goto-sibling) (outline-next-heading))
|
||||
(org-flag-heading nil))))
|
||||
(when siblings-p (org-show-siblings))
|
||||
(when hierarchy-p
|
||||
;; show all higher headings, possibly with siblings
|
||||
(save-excursion
|
||||
(while (and (condition-case nil
|
||||
(progn (org-up-heading-all 1) t)
|
||||
(error nil))
|
||||
(not (bobp)))
|
||||
(org-flag-heading nil)
|
||||
(when siblings-p (org-show-siblings)))))
|
||||
(org-fix-ellipsis-at-bol)))
|
||||
|
||||
(defvar org-reveal-start-hook nil
|
||||
"Hook run before revealing a location.")
|
||||
@ -13597,7 +13609,9 @@ If ONOFF is `on' or `off', don't toggle but set to this state."
|
||||
(if (or (org-at-heading-p) (and arg (org-before-first-heading-p)))
|
||||
(org-set-tags arg just-align)
|
||||
(save-excursion
|
||||
(org-back-to-heading t)
|
||||
(unless (and (org-region-active-p)
|
||||
org-loop-over-headlines-in-active-region)
|
||||
(org-back-to-heading t))
|
||||
(org-set-tags arg just-align))))
|
||||
|
||||
(defun org-set-tags-to (data)
|
||||
@ -14101,13 +14115,13 @@ agenda-with-archives
|
||||
The remaining args are treated as settings for the skipping facilities of
|
||||
the scanner. The following items can be given here:
|
||||
|
||||
archive skip trees with the archive tag.
|
||||
archive skip trees with the archive tag
|
||||
comment skip trees with the COMMENT keyword
|
||||
function or Emacs Lisp form:
|
||||
will be used as value for `org-agenda-skip-function', so whenever
|
||||
the function returns t, FUNC will not be called for that
|
||||
entry and search will continue from the point where the
|
||||
function leaves it.
|
||||
will be used as value for `org-agenda-skip-function', so
|
||||
whenever the function returns a position, FUNC will not be
|
||||
called for that entry and search will continue from the
|
||||
position returned
|
||||
|
||||
If your function needs to retrieve the tags including inherited tags
|
||||
at the *current* entry, you can use the value of the variable
|
||||
@ -16401,6 +16415,12 @@ With prefix ARG, change that many days."
|
||||
(message "Timestamp is now %sactive"
|
||||
(if (equal (char-after beg) ?<) "" "in")))))
|
||||
|
||||
(defun org-at-clock-log-p nil
|
||||
"Is the cursor on the clock log line?"
|
||||
(save-excursion
|
||||
(move-beginning-of-line 1)
|
||||
(looking-at "^[ \t]*CLOCK:")))
|
||||
|
||||
(defvar org-clock-history) ; defined in org-clock.el
|
||||
(defvar org-clock-adjust-closest nil) ; defined in org-clock.el
|
||||
(defun org-timestamp-change (n &optional what updown)
|
||||
@ -18737,8 +18757,7 @@ this function returns t, nil otherwise."
|
||||
(throw 'exit t))))
|
||||
nil))))
|
||||
|
||||
(autoload 'org-element-at-point "org-element")
|
||||
(autoload 'org-element-type "org-element")
|
||||
(org-autoload "org-element" '(org-element-at-point org-element-type))
|
||||
|
||||
(declare-function org-element-at-point "org-element" (&optional keep-trail))
|
||||
(declare-function org-element-type "org-element" (element))
|
||||
@ -19840,7 +19859,7 @@ See the individual commands for more information."
|
||||
("Refresh/Reload"
|
||||
["Refresh setup current buffer" org-mode-restart t]
|
||||
["Reload Org (after update)" org-reload t]
|
||||
["Reload Org uncompiled" (org-reload t) :active t :keys "C-u C-c C-x r"])
|
||||
["Reload Org uncompiled" (org-reload t) :active t :keys "C-u C-c C-x !"])
|
||||
))
|
||||
|
||||
(defun org-info (&optional node)
|
||||
@ -20970,7 +20989,8 @@ hierarchy of headlines by UP levels before marking the subtree."
|
||||
(org-uniquify
|
||||
(append fill-nobreak-predicate
|
||||
'(org-fill-paragraph-separate-nobreak-p
|
||||
org-fill-line-break-nobreak-p)))))
|
||||
org-fill-line-break-nobreak-p
|
||||
org-fill-paragraph-with-timestamp-nobreak-p)))))
|
||||
(org-set-local 'fill-paragraph-function 'org-fill-paragraph)
|
||||
(org-set-local 'auto-fill-inhibit-regexp nil)
|
||||
(org-set-local 'adaptive-fill-function 'org-adaptive-fill-function)
|
||||
@ -20989,6 +21009,11 @@ hierarchy of headlines by UP levels before marking the subtree."
|
||||
(skip-chars-backward "\\\\")
|
||||
(looking-at "\\\\\\\\\\($\\|[^\\\\]\\)")))
|
||||
|
||||
(defun org-fill-paragraph-with-timestamp-nobreak-p ()
|
||||
"Non-nil when a line break at point would insert a new item."
|
||||
(and (org-at-timestamp-p t)
|
||||
(not (looking-at org-ts-regexp-both))))
|
||||
|
||||
(declare-function message-in-body-p "message" ())
|
||||
(defvar org-element--affiliated-re) ; From org-element.el
|
||||
(defvar orgtbl-line-start-regexp) ; From org-table.el
|
||||
@ -22159,7 +22184,8 @@ Show the heading too, if it is currently invisible."
|
||||
isearch-mode-end-hook-quit)
|
||||
;; Only when the isearch was not quitted.
|
||||
(org-add-hook 'post-command-hook 'org-isearch-post-command
|
||||
'append 'local)))))
|
||||
'append 'local)))
|
||||
(org-fix-ellipsis-at-bol)))
|
||||
|
||||
(defun org-isearch-post-command ()
|
||||
"Remove self from hook, and show context."
|
||||
@ -22190,7 +22216,7 @@ Show the heading too, if it is currently invisible."
|
||||
(re (concat "^" (org-get-limited-outline-regexp)))
|
||||
(subs (make-vector (1+ n) nil))
|
||||
(last-level 0)
|
||||
m level head)
|
||||
m level head0 head)
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(widen)
|
||||
@ -22198,9 +22224,9 @@ Show the heading too, if it is currently invisible."
|
||||
(while (re-search-backward re nil t)
|
||||
(setq level (org-reduced-level (funcall outline-level)))
|
||||
(when (and (<= level n)
|
||||
(looking-at org-complex-heading-regexp))
|
||||
(setq head (org-link-display-format
|
||||
(org-match-string-no-properties 4))
|
||||
(looking-at org-complex-heading-regexp)
|
||||
(setq head0 (org-match-string-no-properties 4)))
|
||||
(setq head (org-link-display-format head0)
|
||||
m (org-imenu-new-marker))
|
||||
(org-add-props head nil 'org-imenu-marker m 'org-imenu t)
|
||||
(if (>= level last-level)
|
||||
|
@ -379,8 +379,8 @@ the number of paragraphs marked equals ARG.
|
||||
If ARG is negative, point is put at end of this paragraph, mark is put
|
||||
at beginning of this or a previous paragraph.
|
||||
|
||||
Interactively, if this command is repeated
|
||||
or (in Transient Mark mode) if the mark is active,
|
||||
Interactively (or if ALLOW-EXTEND is non-nil), if this command is
|
||||
repeated or (in Transient Mark mode) if the mark is active,
|
||||
it marks the next ARG paragraphs after the ones already marked."
|
||||
(interactive "p\np")
|
||||
(unless arg (setq arg 1))
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-02-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* w32.c (sys_open): Don't reset the flags for FD in fd_info[].
|
||||
(Bug#13546).
|
||||
|
||||
2013-02-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
|
||||
|
@ -3411,8 +3411,6 @@ sys_open (const char * path, int oflag, int mode)
|
||||
res = _open (mpath, (oflag & ~_O_CREAT) | _O_NOINHERIT, mode);
|
||||
if (res < 0)
|
||||
res = _open (mpath, oflag | _O_NOINHERIT, mode);
|
||||
if (res >= 0 && res < MAXDESC)
|
||||
fd_info[res].flags = 0;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
@ -1,3 +1,22 @@
|
||||
2013-02-28 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* automated/python-tests.el (python-tests-with-temp-buffer): Doc fix.
|
||||
(python-tests-with-temp-file): New macro.
|
||||
(python-tests-shell-interpreter): New var.
|
||||
(python-shell-get-process-name-1)
|
||||
(python-shell-internal-get-process-name-1)
|
||||
(python-shell-parse-command-1)
|
||||
(python-shell-calculate-process-environment-1)
|
||||
(python-shell-calculate-process-environment-2)
|
||||
(python-shell-calculate-process-environment-3)
|
||||
(python-shell-calculate-exec-path-1)
|
||||
(python-shell-calculate-exec-path-2)
|
||||
(python-shell-make-comint-1)
|
||||
(python-shell-make-comint-2)
|
||||
(python-shell-get-process-1)
|
||||
(python-shell-get-or-create-process-1)
|
||||
(python-shell-internal-get-or-create-process-1): New tests.
|
||||
|
||||
2013-02-21 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* automated/python-tests.el: New file.
|
||||
|
@ -34,6 +34,21 @@ always located at the beginning of buffer."
|
||||
(goto-char (point-min))
|
||||
,@body))
|
||||
|
||||
(defmacro python-tests-with-temp-file (contents &rest body)
|
||||
"Create a `python-mode' enabled file with CONTENTS.
|
||||
BODY is code to be executed within the temp buffer. Point is
|
||||
always located at the beginning of buffer."
|
||||
(declare (indent 1) (debug t))
|
||||
`(let* ((temp-file (concat (make-temp-file "python-tests") ".py"))
|
||||
(buffer (find-file-noselect temp-file)))
|
||||
(unwind-protect
|
||||
(with-current-buffer buffer
|
||||
(python-mode)
|
||||
(insert ,contents)
|
||||
(goto-char (point-min))
|
||||
,@body)
|
||||
(and buffer (kill-buffer buffer)))))
|
||||
|
||||
(defun python-tests-look-at (string &optional num restore-point)
|
||||
"Move point at beginning of STRING in the current buffer.
|
||||
Optional argument NUM defaults to 1 and is an integer indicating
|
||||
@ -1161,6 +1176,260 @@ def f():
|
||||
|
||||
;;; Shell integration
|
||||
|
||||
(defvar python-tests-shell-interpreter "python")
|
||||
|
||||
(ert-deftest python-shell-get-process-name-1 ()
|
||||
"Check process name calculation on different scenarios."
|
||||
(python-tests-with-temp-buffer
|
||||
""
|
||||
(should (string= (python-shell-get-process-name nil)
|
||||
python-shell-buffer-name))
|
||||
;; When the `current-buffer' doesn't have `buffer-file-name', even
|
||||
;; if dedicated flag is non-nil should not include its name.
|
||||
(should (string= (python-shell-get-process-name t)
|
||||
python-shell-buffer-name)))
|
||||
(python-tests-with-temp-file
|
||||
""
|
||||
;; `buffer-file-name' is non-nil but the dedicated flag is nil and
|
||||
;; should be respected.
|
||||
(should (string= (python-shell-get-process-name nil)
|
||||
python-shell-buffer-name))
|
||||
(should (string=
|
||||
(python-shell-get-process-name t)
|
||||
(format "%s[%s]" python-shell-buffer-name buffer-file-name)))))
|
||||
|
||||
(ert-deftest python-shell-internal-get-process-name-1 ()
|
||||
"Check the internal process name is config-unique."
|
||||
(let* ((python-shell-interpreter python-tests-shell-interpreter)
|
||||
(python-shell-interpreter-args "")
|
||||
(python-shell-prompt-regexp ">>> ")
|
||||
(python-shell-prompt-block-regexp "[.][.][.] ")
|
||||
(python-shell-setup-codes "")
|
||||
(python-shell-process-environment "")
|
||||
(python-shell-extra-pythonpaths "")
|
||||
(python-shell-exec-path "")
|
||||
(python-shell-virtualenv-path "")
|
||||
(expected (python-tests-with-temp-buffer
|
||||
"" (python-shell-internal-get-process-name))))
|
||||
;; Same configurations should match.
|
||||
(should
|
||||
(string= expected
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-internal-get-process-name))))
|
||||
(let ((python-shell-interpreter-args "-B"))
|
||||
;; A minimal change should generate different names.
|
||||
(should
|
||||
(not (string=
|
||||
expected
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-internal-get-process-name))))))))
|
||||
|
||||
(ert-deftest python-shell-parse-command-1 ()
|
||||
"Check the command to execute is calculated correctly.
|
||||
Using `python-shell-interpreter' and
|
||||
`python-shell-interpreter-args'."
|
||||
:expected-result (if (executable-find python-tests-shell-interpreter)
|
||||
:passed
|
||||
:failed)
|
||||
(let ((python-shell-interpreter (executable-find
|
||||
python-tests-shell-interpreter))
|
||||
(python-shell-interpreter-args "-B"))
|
||||
(should (string=
|
||||
(format "%s %s"
|
||||
python-shell-interpreter
|
||||
python-shell-interpreter-args)
|
||||
(python-shell-parse-command)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-process-environment-1 ()
|
||||
"Test `python-shell-process-environment' modification."
|
||||
(let* ((original-process-environment process-environment)
|
||||
(python-shell-process-environment
|
||||
'("TESTVAR1=value1" "TESTVAR2=value2"))
|
||||
(process-environment
|
||||
(python-shell-calculate-process-environment)))
|
||||
(should (equal (getenv "TESTVAR1") "value1"))
|
||||
(should (equal (getenv "TESTVAR2") "value2"))))
|
||||
|
||||
(ert-deftest python-shell-calculate-process-environment-2 ()
|
||||
"Test `python-shell-extra-pythonpaths' modification."
|
||||
(let* ((original-process-environment process-environment)
|
||||
(original-pythonpath (getenv "PYTHONPATH"))
|
||||
(paths '("path1" "path2"))
|
||||
(python-shell-extra-pythonpaths paths)
|
||||
(process-environment
|
||||
(python-shell-calculate-process-environment)))
|
||||
(should (equal (getenv "PYTHONPATH")
|
||||
(concat
|
||||
(mapconcat 'identity paths path-separator)
|
||||
path-separator original-pythonpath)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-process-environment-3 ()
|
||||
"Test `python-shell-virtualenv-path' modification."
|
||||
(let* ((original-process-environment process-environment)
|
||||
(original-path (or (getenv "PATH") ""))
|
||||
(python-shell-virtualenv-path
|
||||
(directory-file-name user-emacs-directory))
|
||||
(process-environment
|
||||
(python-shell-calculate-process-environment)))
|
||||
(should (not (getenv "PYTHONHOME")))
|
||||
(should (string= (getenv "VIRTUAL_ENV") python-shell-virtualenv-path))
|
||||
(should (equal (getenv "PATH")
|
||||
(format "%s/bin%s%s"
|
||||
python-shell-virtualenv-path
|
||||
path-separator original-path)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-exec-path-1 ()
|
||||
"Test `python-shell-exec-path' modification."
|
||||
(let* ((original-exec-path exec-path)
|
||||
(python-shell-exec-path '("path1" "path2"))
|
||||
(exec-path (python-shell-calculate-exec-path)))
|
||||
(should (equal
|
||||
exec-path
|
||||
(append python-shell-exec-path
|
||||
original-exec-path)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-exec-path-2 ()
|
||||
"Test `python-shell-exec-path' modification."
|
||||
(let* ((original-exec-path exec-path)
|
||||
(python-shell-virtualenv-path
|
||||
(directory-file-name user-emacs-directory))
|
||||
(exec-path (python-shell-calculate-exec-path)))
|
||||
(should (equal
|
||||
exec-path
|
||||
(append (cons
|
||||
(format "%s/bin" python-shell-virtualenv-path)
|
||||
original-exec-path))))))
|
||||
|
||||
(ert-deftest python-shell-make-comint-1 ()
|
||||
"Check comint creation for global shell buffer."
|
||||
:expected-result (if (executable-find python-tests-shell-interpreter)
|
||||
:passed
|
||||
:failed)
|
||||
(let* ((python-shell-interpreter
|
||||
(executable-find python-tests-shell-interpreter))
|
||||
(proc-name (python-shell-get-process-name nil))
|
||||
(shell-buffer
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-make-comint
|
||||
(python-shell-parse-command) proc-name)))
|
||||
(process (get-buffer-process shell-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set-process-query-on-exit-flag process nil)
|
||||
(should (process-live-p process))
|
||||
(with-current-buffer shell-buffer
|
||||
(should (eq major-mode 'inferior-python-mode))
|
||||
(should (string= (buffer-name) (format "*%s*" proc-name)))))
|
||||
(kill-buffer shell-buffer))))
|
||||
|
||||
(ert-deftest python-shell-make-comint-2 ()
|
||||
"Check comint creation for internal shell buffer."
|
||||
:expected-result (if (executable-find python-tests-shell-interpreter)
|
||||
:passed
|
||||
:failed)
|
||||
(let* ((python-shell-interpreter
|
||||
(executable-find python-tests-shell-interpreter))
|
||||
(proc-name (python-shell-internal-get-process-name))
|
||||
(shell-buffer
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-make-comint
|
||||
(python-shell-parse-command) proc-name nil t)))
|
||||
(process (get-buffer-process shell-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set-process-query-on-exit-flag process nil)
|
||||
(should (process-live-p process))
|
||||
(with-current-buffer shell-buffer
|
||||
(should (eq major-mode 'inferior-python-mode))
|
||||
(should (string= (buffer-name) (format " *%s*" proc-name)))))
|
||||
(kill-buffer shell-buffer))))
|
||||
|
||||
(ert-deftest python-shell-get-process-1 ()
|
||||
"Check dedicated shell process preference over global."
|
||||
:expected-result (if (executable-find python-tests-shell-interpreter)
|
||||
:passed
|
||||
:failed)
|
||||
(python-tests-with-temp-file
|
||||
""
|
||||
(let* ((python-shell-interpreter
|
||||
(executable-find python-tests-shell-interpreter))
|
||||
(global-proc-name (python-shell-get-process-name nil))
|
||||
(dedicated-proc-name (python-shell-get-process-name t))
|
||||
(global-shell-buffer
|
||||
(python-shell-make-comint
|
||||
(python-shell-parse-command) global-proc-name))
|
||||
(dedicated-shell-buffer
|
||||
(python-shell-make-comint
|
||||
(python-shell-parse-command) dedicated-proc-name))
|
||||
(global-process (get-buffer-process global-shell-buffer))
|
||||
(dedicated-process (get-buffer-process dedicated-shell-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set-process-query-on-exit-flag global-process nil)
|
||||
(set-process-query-on-exit-flag dedicated-process nil)
|
||||
;; Prefer dedicated if global also exists.
|
||||
(should (equal (python-shell-get-process) dedicated-process))
|
||||
(kill-buffer dedicated-shell-buffer)
|
||||
;; If there's only global, use it.
|
||||
(should (equal (python-shell-get-process) global-process))
|
||||
(kill-buffer global-shell-buffer)
|
||||
;; No buffer available.
|
||||
(should (not (python-shell-get-process))))
|
||||
(ignore-errors (kill-buffer global-shell-buffer))
|
||||
(ignore-errors (kill-buffer dedicated-shell-buffer))))))
|
||||
|
||||
(ert-deftest python-shell-get-or-create-process-1 ()
|
||||
"Check shell process creation fallback."
|
||||
:expected-result :failed
|
||||
(python-tests-with-temp-file
|
||||
""
|
||||
;; XXX: Break early until we can skip stuff. We need to mimic
|
||||
;; user interaction because `python-shell-get-or-create-process'
|
||||
;; asks for all arguments interactively when a shell process
|
||||
;; doesn't exist.
|
||||
(should nil)
|
||||
(let* ((python-shell-interpreter
|
||||
(executable-find python-tests-shell-interpreter))
|
||||
(use-dialog-box)
|
||||
(dedicated-process-name (python-shell-get-process-name t))
|
||||
(dedicated-process (python-shell-get-or-create-process))
|
||||
(dedicated-shell-buffer (process-buffer dedicated-process)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set-process-query-on-exit-flag dedicated-process nil)
|
||||
;; Prefer dedicated if not buffer exist.
|
||||
(should (equal (process-name dedicated-process)
|
||||
dedicated-process-name))
|
||||
(kill-buffer dedicated-shell-buffer)
|
||||
;; No buffer available.
|
||||
(should (not (python-shell-get-process))))
|
||||
(ignore-errors (kill-buffer dedicated-shell-buffer))))))
|
||||
|
||||
(ert-deftest python-shell-internal-get-or-create-process-1 ()
|
||||
"Check internal shell process creation fallback."
|
||||
:expected-result (if (executable-find python-tests-shell-interpreter)
|
||||
:passed
|
||||
:failed)
|
||||
(python-tests-with-temp-file
|
||||
""
|
||||
(should (not (process-live-p (python-shell-internal-get-process-name))))
|
||||
(let* ((python-shell-interpreter
|
||||
(executable-find python-tests-shell-interpreter))
|
||||
(internal-process-name (python-shell-internal-get-process-name))
|
||||
(internal-process (python-shell-internal-get-or-create-process))
|
||||
(internal-shell-buffer (process-buffer internal-process)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set-process-query-on-exit-flag internal-process nil)
|
||||
(should (equal (process-name internal-process)
|
||||
internal-process-name))
|
||||
(should (equal internal-process
|
||||
(python-shell-internal-get-or-create-process)))
|
||||
;; No user buffer available.
|
||||
(should (not (python-shell-get-process)))
|
||||
(kill-buffer internal-shell-buffer))
|
||||
(ignore-errors (kill-buffer internal-shell-buffer))))))
|
||||
|
||||
|
||||
;;; Shell completion
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user