diff options
author | Bastien Guerry <bzg@altern.org> | 2012-09-29 08:28:34 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2012-09-29 08:28:34 +0200 |
commit | f155f5458ee0ac66614b114ac0ff2941640e4b2f (patch) | |
tree | b49773d832f15bee1508636601b0947a20d7f09f | |
parent | 74c027a741921746c26e9331f9a93f06ff6a05e1 (diff) | |
parent | 7a06ed790a6f387e96b722e1142173fb839ba25b (diff) | |
download | org-mode-f155f5458ee0ac66614b114ac0ff2941640e4b2f.tar.gz |
Merge branch 'maint'
-rw-r--r-- | doc/org.texi | 6 | ||||
-rw-r--r-- | doc/orgguide.texi | 2 | ||||
-rw-r--r-- | lisp/ob.el | 5 | ||||
-rwxr-xr-x | lisp/org-agenda.el | 38 | ||||
-rw-r--r-- | lisp/org-src.el | 24 |
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) @@ -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)) |