diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/org-agenda.el | 12 | ||||
-rw-r--r-- | lisp/org-clock.el | 6 | ||||
-rw-r--r-- | lisp/org-info.el | 26 | ||||
-rw-r--r-- | lisp/org-list.el | 16 | ||||
-rw-r--r-- | lisp/org-macs.el | 8 | ||||
-rw-r--r-- | lisp/org-version.el | 4 | ||||
-rw-r--r-- | lisp/org.el | 6 | ||||
-rw-r--r-- | lisp/ox-ascii.el | 127 | ||||
-rw-r--r-- | lisp/ox-beamer.el | 10 | ||||
-rw-r--r-- | lisp/ox.el | 9 |
10 files changed, 136 insertions, 88 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index da748af..ce16473 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -6098,7 +6098,9 @@ specification like [h]h:mm." ((eq org-agenda-skip-deadline-prewarning-if-scheduled 'pre-scheduled) ;; Set pre-warning to no earlier than SCHEDULED. - (min (- deadline scheduled) org-deadline-warning-days)) + (min (- deadline + (org-agenda--timestamp-to-absolute scheduled)) + org-deadline-warning-days)) ;; Set pre-warning to deadline. (t 0)))) (wdays (if suppress-prewarning @@ -6265,10 +6267,10 @@ scheduled items with an hour specification like [h]h:mm." (- org-agenda-skip-scheduled-delay-if-deadline)) ((eq org-agenda-skip-scheduled-delay-if-deadline 'post-deadline) - ;; Set delay to no later than DEADLINE. If - ;; DEADLINE has a repeater, compare last schedule - ;; repeat and last deadline repeat. - (min (- schedule deadline) org-scheduled-delay-days)) + ;; Set delay to no later than DEADLINE. + (min (- schedule + (org-agenda--timestamp-to-absolute deadline)) + org-scheduled-delay-days)) (t 0)))) (ddays (cond diff --git a/lisp/org-clock.el b/lisp/org-clock.el index 65c13fd..6e58ce9 100644 --- a/lisp/org-clock.el +++ b/lisp/org-clock.el @@ -2962,9 +2962,9 @@ The details of what will be saved are regulated by the variable (defun org-clock-load () "Load clock-related data from disk, maybe resuming a stored clock." (when (and org-clock-persist (not org-clock-loaded)) - (if (file-readable-p org-clock-persist-file) - (message "Restoring clock data") - (message "Not restoring clock data; %S not found" org-clock-persist-file) + (if (not (file-readable-p org-clock-persist-file)) + (message "Not restoring clock data; %S not found" org-clock-persist-file) + (message "Restoring clock data") ;; Load history. (load-file org-clock-persist-file) (setq org-clock-loaded t) diff --git a/lisp/org-info.el b/lisp/org-info.el index d82168e..b6e8e09 100644 --- a/lisp/org-info.el +++ b/lisp/org-info.el @@ -97,21 +97,21 @@ Taken from <http://www.gnu.org/software/emacs/manual/html_mono/.>") (defconst org-info-other-documents '(("libc" . "http://www.gnu.org/software/libc/manual/html_mono/libc.html") ("make" . "http://www.gnu.org/software/make/manual/make.html")) - "Alist of documents generated from texinfo source. - -When converting info links to html, links to any one of these manuals are -converted to use these URL's.") + "Alist of documents generated from Texinfo source. +When converting info links to HTML, links to any one of these manuals are +converted to use these URL.") (defun org-info-map-html-url (filename) - "Given info FILENAME, either return it (plus '.html' suffix added) or convert -it to URL pointing to the official page on internet, e.g., use gnu.org for all -emacs related documents. See `org-info-official-gnu-document' and -`org-info-other-documents' for details." - (if (member filename org-info-emacs-documents) - (format "http://www.gnu.org/software/emacs/manual/html_mono/%s.html" - filename) - (let ((url (cdr (assoc filename org-info-other-documents)))) - (or url (concat filename ".html"))))) + "Return URL or HTML file associated to Info FILENAME. +If FILENAME refers to an official GNU document, return a URL pointing to +the official page for that document, e.g., use \"gnu.org\" for all Emacs +related documents. Otherwise, append \".html\" extension to FILENAME. +See `org-info-emacs-documents' and `org-info-other-documents' for details." + (cond ((member filename org-info-emacs-documents) + (format "http://www.gnu.org/software/emacs/manual/html_mono/%s.html" + filename)) + ((cdr (assoc filename org-info-other-documents))) + (t (concat filename ".html")))) (defun org-info-export (path desc format) "Export an info link. diff --git a/lisp/org-list.el b/lisp/org-list.el index bb39b6e..1eb1b50 100644 --- a/lisp/org-list.el +++ b/lisp/org-list.el @@ -2097,11 +2097,19 @@ Possible values are: `folded', `children' or `subtree'. See "Return column at which body of ITEM should start." (save-excursion (goto-char item) - (looking-at "[ \t]*\\(\\S-+\\)\\(.*[ \t]+::\\)?\\([ \t]+\\|$\\)") - (if (match-beginning 2) - (let ((start (1+ (match-end 2))) + (if (save-excursion + (end-of-line) + (re-search-backward + "[ \t]::\\([ \t]\\|$\\)" (line-beginning-position) t)) + ;; Descriptive list item. Body starts after item's tag, if + ;; possible. + (let ((start (1+ (- (match-beginning 1) (line-beginning-position)))) (ind (org-get-indentation))) - (if (> start (+ ind org-list-description-max-indent)) (+ ind 5) start)) + (if (> start (+ ind org-list-description-max-indent)) + (+ ind 5) + start)) + ;; Regular item. Body starts after bullet. + (looking-at "[ \t]*\\(\\S-+\\)") (+ (progn (goto-char (match-end 1)) (current-column)) (if (and org-list-two-spaces-after-bullet-regexp (string-match-p org-list-two-spaces-after-bullet-regexp diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 6c0abcb..b7da6c6 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -194,11 +194,11 @@ program is needed for, so that the error message can be more informative." (<= (match-beginning n) pos) (>= (match-end n) pos))) -(defun org-match-line (re) - "Looking-at at the beginning of the current line." +(defun org-match-line (regexp) + "Match REGEXP at the beginning of the current line." (save-excursion - (goto-char (point-at-bol)) - (looking-at re))) + (beginning-of-line) + (looking-at regexp))) (defun org-plist-delete (plist property) "Delete PROPERTY from PLIST. diff --git a/lisp/org-version.el b/lisp/org-version.el index cd5f875..bae032b 100644 --- a/lisp/org-version.el +++ b/lisp/org-version.el @@ -5,13 +5,13 @@ (defun org-release () "The release version of Org. Inserted by installing Org mode or when a release is made." - (let ((org-release "9.0.2")) + (let ((org-release "9.0.3")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of org-mode. Inserted by installing Org or when a release is made." - (let ((org-git-version "9.0.2-dist")) + (let ((org-git-version "9.0.3-dist")) org-git-version)) ;;;###autoload (defvar org-odt-data-dir "/usr/share/emacs/etc/org" diff --git a/lisp/org.el b/lisp/org.el index 08b3f3a..68befe3 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -21157,8 +21157,8 @@ This command does many different things, depending on context: ;; Limit to supported contexts. '(babel-call clock dynamic-block footnote-definition footnote-reference inline-babel-call inline-src-block - item keyword node-property paragraph plain-list - property-drawer radio-target src-block + inlinetask item keyword node-property paragraph + plain-list property-drawer radio-target src-block statistics-cookie table table-cell table-row timestamp) t)) @@ -22773,7 +22773,7 @@ be set to a buffer or a buffer name. `shell-command' then uses it for output." (let* ((base-name (file-name-base source)) (full-name (file-truename source)) - (out-dir (file-name-directory source)) + (out-dir (or (file-name-directory source) "./")) (output (expand-file-name (concat base-name "." ext) out-dir)) (time (current-time)) (err-msg (if (stringp err-msg) (concat ". " err-msg) ""))) diff --git a/lisp/ox-ascii.el b/lisp/ox-ascii.el index 43808aa..430c2cc 100644 --- a/lisp/ox-ascii.el +++ b/lisp/ox-ascii.el @@ -896,41 +896,71 @@ is a plist used as a communication channel." (car (org-element-contents element)))) 'link unique-link-p info nil 'headline t))) +(defun org-ascii--describe-datum (datum info) + "Describe DATUM object or element. +If DATUM is a string, consider it to be a file name, per +`org-export-resolve-id-link'. INFO is the communication channel, +as a plist." + (pcase (org-element-type datum) + (`plain-text (format "See file %s" datum)) ;External file + (`headline + (format (org-ascii--translate "See section %s" info) + (if (org-export-numbered-headline-p datum info) + (mapconcat #'number-to-string + (org-export-get-headline-number datum info) + ".") + (org-export-data (org-element-property :title datum) info)))) + (_ + (let ((number (org-export-get-ordinal + datum info nil #'org-ascii--has-caption-p)) + ;; If destination is a target, make sure we can name the + ;; container it refers to. + (enumerable + (org-element-lineage datum '(headline paragrah src-block table) t))) + (pcase (org-element-type enumerable) + (`headline + (format (org-ascii--translate "See section %s" info) + (if (org-export-numbered-headline-p enumerable info) + (mapconcat #'number-to-string number ".") + (org-export-data + (org-element-property :title enumerable) info)))) + ((guard (not number)) + (org-ascii--translate "Unknown reference" info)) + (`paragraph + (format (org-ascii--translate "See figure %s" info) number)) + (`src-block + (format (org-ascii--translate "See listing %s" info) number)) + (`table + (format (org-ascii--translate "See table %s" info) number)) + (_ (org-ascii--translate "Unknown reference" info))))))) + (defun org-ascii--describe-links (links width info) "Return a string describing a list of links. - LINKS is a list of link type objects, as returned by `org-ascii--unique-links'. WIDTH is the text width allowed for the output string. INFO is a plist used as a communication channel." (mapconcat (lambda (link) - (let ((type (org-element-property :type link)) - (anchor (let ((desc (org-element-contents link))) - (if desc (org-export-data desc info) - (org-element-property :raw-link link))))) + (let* ((type (org-element-property :type link)) + (description (org-element-contents link)) + (anchor (org-export-data + (or description (org-element-property :raw-link link)) + info))) (cond - ;; Coderefs, radio links and fuzzy links are ignored. - ((member type '("coderef" "radio" "fuzzy")) nil) - ;; Id and custom-id links: Headlines refer to their numbering. - ((member type '("custom-id" "id")) - (let ((dest (org-export-resolve-id-link link info))) - (concat - (org-ascii--fill-string - (format - "[%s] %s" - anchor - (if (stringp dest) ; External file. - dest - (format - (org-ascii--translate "See section %s" info) - (if (org-export-numbered-headline-p dest info) - (mapconcat #'number-to-string - (org-export-get-headline-number dest info) - ".") - (org-export-data (org-element-property :title dest) info))))) - width info) - "\n\n"))) + ((member type '("coderef" "radio")) nil) + ((member type '("custom-id" "fuzzy" "id")) + ;; Only links with a description need an entry. Other are + ;; already handled in `org-ascii-link'. + (when description + (let ((dest (if (equal type "fuzzy") + (org-export-resolve-fuzzy-link link info) + (org-export-resolve-id-link link info)))) + (concat + (org-ascii--fill-string + (format "[%s] %s" anchor (org-ascii--describe-datum dest info)) + width info) + "\n\n")))) ;; Do not add a link that cannot be resolved and doesn't have ;; any description: destination is already visible in the ;; paragraph. @@ -1541,24 +1571,33 @@ INFO is a plist holding contextual information." ;; Do not apply a special syntax on radio links. Though, use ;; transcoded target's contents as output. ((string= type "radio") desc) - ;; Do not apply a special syntax on fuzzy links pointing to - ;; targets. - ((string= type "fuzzy") - (let ((destination (org-export-resolve-fuzzy-link link info))) - (if (org-string-nw-p desc) desc - (when destination - (let ((number - (org-export-get-ordinal - destination info nil 'org-ascii--has-caption-p))) - (if number - (if (atom number) (number-to-string number) - (mapconcat #'number-to-string number ".")) - ;; Unnumbered headline. - (when (eq 'headline (org-element-type destination)) - (format "[%s]" - (org-export-data - (org-element-property :title destination) - info))))))))) + ((member type '("custom-id" "fuzzy" "id")) + (let ((destination (if (string= type "fuzzy") + (org-export-resolve-fuzzy-link link info) + (org-export-resolve-id-link link info)))) + (pcase (org-element-type destination) + ((guard desc) + (if (plist-get info :ascii-links-to-notes) + (format "[%s]" desc) + (concat desc + (format " (%s)" + (org-ascii--describe-datum destination info))))) + ;; External file. + (`plain-text destination) + (`headline + (if (org-export-numbered-headline-p destination info) + (mapconcat #'number-to-string + (org-export-get-headline-number destination info) + ".") + (org-export-data (org-element-property :title destination) info))) + ;; Handle enumerable elements and targets within them. + ((and (let number (org-export-get-ordinal + destination info nil #'org-ascii--has-caption-p)) + (guard number)) + (if (atom number) (number-to-string number) + (mapconcat #'number-to-string number "."))) + ;; Don't know what to do. Signal it. + (_ "???")))) (t (let ((raw-link (org-element-property :raw-link link))) (if (not (org-string-nw-p desc)) (format "[%s]" raw-link) diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index d566516..257ff3f 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -260,7 +260,6 @@ Return overlay specification, as a string, or nil." (link . org-beamer-link) (plain-list . org-beamer-plain-list) (radio-target . org-beamer-radio-target) - (target . org-beamer-target) (template . org-beamer-template))) @@ -780,15 +779,6 @@ contextual information." text)) -;;;; Target - -(defun org-beamer-target (target _contents info) - "Transcode a TARGET object into Beamer code. -CONTENTS is nil. INFO is a plist holding contextual -information." - (format "\\label{%s}" (org-export-get-reference target info))) - - ;;;; Template ;; ;; Template used is similar to the one used in `latex' back-end, @@ -5744,6 +5744,12 @@ them." ("fr" :ascii "References" :default "Références") ("de" :default "Quellen") ("es" :default "Referencias")) + ("See figure %s" + ("fr" :default "cf. figure %s" + :html "cf. figure %s" :latex "cf.~figure~%s")) + ("See listing %s" + ("fr" :default "cf. programme %s" + :html "cf. programme %s" :latex "cf.~programme~%s")) ("See section %s" ("da" :default "jævnfør afsnit %s") ("de" :default "siehe Abschnitt %s") @@ -5756,6 +5762,9 @@ them." ("ru" :html "См. раздел %s" :utf-8 "См. раздел %s") ("zh-CN" :html "参见第%s节" :utf-8 "参见第%s节")) + ("See table %s" + ("fr" :default "cf. tableau %s" + :html "cf. tableau %s" :latex "cf.~tableau~%s")) ("Table" ("de" :default "Tabelle") ("es" :default "Tabla") |