summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2012-09-29 08:28:34 +0200
committerBastien Guerry <bzg@altern.org>2012-09-29 08:28:34 +0200
commitf155f5458ee0ac66614b114ac0ff2941640e4b2f (patch)
treeb49773d832f15bee1508636601b0947a20d7f09f
parent74c027a741921746c26e9331f9a93f06ff6a05e1 (diff)
parent7a06ed790a6f387e96b722e1142173fb839ba25b (diff)
downloadorg-mode-f155f5458ee0ac66614b114ac0ff2941640e4b2f.tar.gz
Merge branch 'maint'
-rw-r--r--doc/org.texi6
-rw-r--r--doc/orgguide.texi2
-rw-r--r--lisp/ob.el5
-rwxr-xr-xlisp/org-agenda.el38
-rw-r--r--lisp/org-src.el24
5 files changed, 45 insertions, 30 deletions
diff --git a/doc/org.texi b/doc/org.texi
index 4b8a826..9576c74 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -936,7 +936,7 @@ If you plan to use code from the @file{contrib} subdirectory without
compiling them, do a similar step for this directory:
@example
-(add-to-list 'load-path "~/path/to/orgdir/contrib/lisp")
+(add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t)
@end example
If you want to include those files with the build and install, please
@@ -1090,7 +1090,7 @@ is not necessary. In that case it is sufficient to start Emacs as @code{emacs
;; 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"))
+(add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t))
;; activate org
(require 'org-install)
@@ -14555,7 +14555,7 @@ done
emacs -Q --batch -l $ORGINSTALL \
--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/\"))
+(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\" t))
(require 'org)(require 'org-exp)(require 'ob)(require 'ob-tangle)
(mapc (lambda (file)
(find-file (expand-file-name file \"$DIR\"))
diff --git a/doc/orgguide.texi b/doc/orgguide.texi
index 17ca901..fe98cbd 100644
--- a/doc/orgguide.texi
+++ b/doc/orgguide.texi
@@ -287,7 +287,7 @@ yourself.
@smalllisp
;; The following lines are always needed. Choose your own keys.
-(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
+(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) ; not needed since Emacs 22.2
(add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when global-font-lock-mode is on
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
diff --git a/lisp/ob.el b/lisp/ob.el
index cbbda20..b5f6c45 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -90,6 +90,7 @@
(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))
(defgroup org-babel nil
"Code block evaluation and management in `org-mode' documents."
@@ -1940,7 +1941,7 @@ code ---- the results are extracted in the syntax of the source
(let ((wrap (lambda (start finish &optional escape)
(goto-char end) (insert (concat finish "\n"))
(goto-char beg) (insert (concat start "\n"))
- (if escape (org-babel-do-key-sequence-in-edit-buffer (kbd "TAB")))
+ (if escape (org-add-protective-commas (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 +1988,7 @@ code ---- the results are extracted in the syntax of the source
((member "latex" result-params)
(funcall wrap "#+BEGIN_LaTeX" "#+END_LaTeX"))
((member "org" result-params)
- (funcall wrap "#+BEGIN_SRC org" "#+END_SRC" t))
+ (funcall wrap "#+BEGIN_SRC org" "#+END_SRC" 'escape))
((member "code" result-params)
(funcall wrap (format "#+BEGIN_SRC %s%s" (or lang "none") results-switches)
"#+END_SRC"))
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index ea607eb..3d574bc 100755
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -7013,7 +7013,8 @@ Negative selection means regexp must not match for selection of an entry."
" "))
(setq org-agenda-redo-command
(list 'org-search-view
- (car (get-text-property (point) 'org-last-args))
+ (car (get-text-property (min (1- (point-max)) (point))
+ 'org-last-args))
org-agenda-query-string
(+ (length org-agenda-query-string)
(if (member char '(?\{ ?\})) 0 1))))
@@ -7035,7 +7036,7 @@ Negative selection means regexp must not match for selection of an entry."
(date (org-read-date))
(org-agenda-sticky-orig org-agenda-sticky)
(org-agenda-buffer-tmp-name (buffer-name))
- (args (get-text-property (point) 'org-last-args))
+ (args (get-text-property (min (1- (point-max)) (point)) 'org-last-args))
(0-arg (or current-prefix-arg (car args)))
(2-arg (nth 2 args))
(newcmd (list 'org-agenda-list 0-arg date
@@ -7055,7 +7056,7 @@ Negative selection means regexp must not match for selection of an entry."
"Go to today."
(interactive)
(org-agenda-check-type t 'timeline 'agenda)
- (let* ((args (get-text-property (point) 'org-last-args))
+ (let* ((args (get-text-property (min (1- (point-max)) (point)) 'org-last-args))
(curspan (nth 2 args))
(tdpos (text-property-any (point-min) (point-max) 'org-today t)))
(cond
@@ -7074,7 +7075,7 @@ Negative selection means regexp must not match for selection of an entry."
(or (and cnt (text-property-any (point-min) (point-max) 'org-day-cnt cnt))
(text-property-any (point-min) (point-max) 'org-today t)
(text-property-any (point-min) (point-max) 'org-agenda-type 'agenda)
- (and (get-text-property (point) 'org-serie)
+ (and (get-text-property (min (1- (point-max)) (point)) 'org-serie)
(org-agenda-goto-block-beginning))
(point-min))))
@@ -7102,7 +7103,7 @@ Negative selection means regexp must not match for selection of an entry."
With prefix ARG, go forward that many times the current span."
(interactive "p")
(org-agenda-check-type t 'agenda)
- (let* ((args (get-text-property (point) 'org-last-args))
+ (let* ((args (get-text-property (min (1- (point-max)) (point)) 'org-last-args))
(span (or (nth 2 args) org-agenda-current-span))
(sd (or (nth 1 args) (org-get-at-bol 'day) org-starting-day))
(greg (calendar-gregorian-from-absolute sd))
@@ -7129,7 +7130,7 @@ With prefix ARG, go forward that many times the current span."
;; `cmd' may have been set by `org-agenda-run-series' which
;; uses `org-agenda-overriding-cmd' to decide whether
;; overriding is allowed for `cmd'
- (get-text-property (point) 'org-serie-cmd))
+ (get-text-property (min (1- (point-max)) (point)) 'org-serie-cmd))
(org-agenda-overriding-arguments
(list (car args) sd span)))
(org-agenda-redo)
@@ -7213,7 +7214,7 @@ written as 2-digit years."
"Change the agenda view to SPAN.
SPAN may be `day', `week', `month', `year'."
(org-agenda-check-type t 'agenda)
- (let* ((args (get-text-property (point) 'org-last-args))
+ (let* ((args (get-text-property (min (1- (point-max)) (point)) 'org-last-args))
(curspan (nth 2 args)))
(if (and (not n) (equal curspan span))
(error "Viewing span is already \"%s\"" span))
@@ -7222,7 +7223,7 @@ SPAN may be `day', `week', `month', `year'."
org-starting-day))
(sd (org-agenda-compute-starting-span sd span n))
(org-agenda-overriding-cmd
- (get-text-property (point) 'org-serie-cmd))
+ (get-text-property (min (1- (point-max)) (point)) 'org-serie-cmd))
(org-agenda-overriding-arguments
(list (car args) sd span)))
(org-agenda-redo)
@@ -8052,7 +8053,7 @@ If FORCE-TAGS is non nil, the car of it returns the new tags."
tags thetags
new
(let ((org-prefix-format-compiled
- (or (get-text-property (point) 'format)
+ (or (get-text-property (min (1- (point-max)) (point)) 'format)
org-prefix-format-compiled))
(extra (org-get-at-bol 'extra)))
(with-current-buffer (marker-buffer hdmarker)
@@ -8079,9 +8080,11 @@ If FORCE-TAGS is non nil, the car of it returns the new tags."
undone-face done-face))))
(org-agenda-highlight-todo 'line)
(beginning-of-line 1))
- (t (error "Line update did not work"))))
- (beginning-of-line 0)))
- (org-agenda-finalize)))
+ (t (error "Line update did not work")))
+ (save-restriction
+ (narrow-to-region (point-at-bol) (point-at-eol))
+ (org-agenda-finalize)))
+ (beginning-of-line 0)))))
(defun org-agenda-align-tags (&optional line)
"Align all tags in agenda items to `org-agenda-tags-column'."
@@ -8728,12 +8731,11 @@ entries in that Org-mode file."
(fset 'calendar-cursor-to-date oldf))))))
(defun org-agenda-execute-calendar-command (cmd)
- "Execute a calendar command from the agenda, with the date associated to
-the cursor position."
+ "Execute a calendar command from the agenda with date from cursor."
(org-agenda-check-type t 'agenda 'timeline)
(require 'diary-lib)
- (unless (get-text-property (point) 'day)
- (error "Don't know which date to use for calendar command"))
+ (unless (get-text-property (min (1- (point-max)) (point)) 'day)
+ (error "Don't know which date to use for the calendar command"))
(let* ((oldf (symbol-function 'calendar-cursor-to-date))
(point (point))
(date (calendar-gregorian-from-absolute
@@ -8781,7 +8783,7 @@ argument, latitude and longitude will be prompted for."
"Open the Emacs calendar with the date at the cursor."
(interactive)
(org-agenda-check-type t 'agenda 'timeline)
- (let* ((day (or (get-text-property (point) 'day)
+ (let* ((day (or (get-text-property (min (1- (point-max)) (point)) 'day)
(error "Don't know which date to open in calendar")))
(date (calendar-gregorian-from-absolute day))
(calendar-move-hook nil)
@@ -8802,7 +8804,7 @@ This is a command that has to be installed in `calendar-mode-map'."
(defun org-agenda-convert-date ()
(interactive)
(org-agenda-check-type t 'agenda 'timeline)
- (let ((day (get-text-property (point) 'day))
+ (let ((day (get-text-property (min (1- (point-max)) (point)) 'day))
date s)
(unless day
(error "Don't know which date to convert"))
diff --git a/lisp/org-src.el b/lisp/org-src.el
index 62115ba..9d6bc1a 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -590,6 +590,21 @@ the language, a switch telling if the content should be in a single line."
(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-edit-src-exit (&optional context)
"Exit special edit and protect problematic lines."
(interactive)
@@ -634,11 +649,8 @@ the language, a switch telling if the content should be in a single line."
(goto-char (point-min))
(if (looking-at "\\s-*") (replace-match " ")))
(when (org-bound-and-true-p org-edit-src-from-org-mode)
- (goto-char (point-min))
- (while (re-search-forward
- (if (derived-mode-p 'org-mode) "^\\(.\\)" "^\\([*]\\|[ \t]*#\\+\\)") nil t)
- (if (eq (org-current-line) line) (setq delta (1+ delta)))
- (replace-match ",\\1")))
+ (setq delta (+ delta (org-add-protective-commas
+ (point-min) (point-max) line))))
(when (org-bound-and-true-p org-edit-src-picture)
(setq preserve-indentation nil)
(untabify (point-min) (point-max))
@@ -813,7 +825,7 @@ fontification of code blocks see `org-src-fontify-block' and
(get-buffer-create
(concat " org-src-fontification:" (symbol-name lang-mode)))
(delete-region (point-min) (point-max))
- (insert string)
+ (insert string " ") ;; so there's a final property change
(unless (eq major-mode lang-mode) (funcall lang-mode))
(font-lock-fontify-buffer)
(setq pos (point-min))