diff --git a/contrib/lisp/org-collector.el b/contrib/lisp/org-collector.el index 1d2351923..833ecbf51 100644 --- a/contrib/lisp/org-collector.el +++ b/contrib/lisp/org-collector.el @@ -186,7 +186,8 @@ variables and values specified in props" (header-props (mapcar (lambda (props) (mapcar (lambda (pair) - (cons (car pair) (org-babel-read (cdr pair)))) + (let ((inhibit-lisp-eval (string= (car pair) "ITEM"))) + (cons (car pair) (org-babel-read (cdr pair) inhibit-lisp-eval)))) props)) header-props)) ;; collect all property names diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 3b187dd64..ebd57201e 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -4500,9 +4500,9 @@ is active." (setq files (org-agenda-files nil 'ifmode)) ;; Add `org-agenda-text-search-extra-files' unless there is some ;; restriction. - (unless (get 'org-agenda-files 'org-restrict) - (when (eq (car org-agenda-text-search-extra-files) 'agenda-archives) - (pop org-agenda-text-search-extra-files) + (when (eq (car org-agenda-text-search-extra-files) 'agenda-archives) + (pop org-agenda-text-search-extra-files) + (unless (get 'org-agenda-files 'org-restrict) (setq files (org-add-archive-files files)))) ;; Uniquify files. However, let `org-check-agenda-file' handle ;; non-existent ones. @@ -4763,11 +4763,11 @@ The prefix arg TODO-ONLY limits the search to TODO entries." (format "*Org Agenda(%s:%s)*" (or org-keys (or (and todo-only "M") "m")) match) (format "*Org Agenda(%s)*" (or (and todo-only "M") "m"))))) + (setq matcher (org-make-tags-matcher match)) ;; Prepare agendas (and `org-tag-alist-for-agenda') before ;; expanding tags within `org-make-tags-matcher' (org-agenda-prepare (concat "TAGS " match)) - (setq matcher (org-make-tags-matcher match) - match (car matcher) + (setq match (car matcher) matcher (cdr matcher)) (org-compile-prefix-format 'tags) (org-set-sorting-strategy 'tags) @@ -6001,29 +6001,24 @@ specification like [h]h:mm." (org-agenda--timestamp-to-absolute s base 'future (current-buffer) pos))))) (diff (- deadline current)) - (suppress-prewarning - (let ((scheduled - (and org-agenda-skip-deadline-prewarning-if-scheduled - (org-entry-get nil "SCHEDULED")))) - (cond - ((not scheduled) nil) - ;; The current item has a scheduled date, so - ;; evaluate its prewarning lead time. - ((integerp org-agenda-skip-deadline-prewarning-if-scheduled) - ;; Use global prewarning-restart lead time. - org-agenda-skip-deadline-prewarning-if-scheduled) - ((eq org-agenda-skip-deadline-prewarning-if-scheduled - 'pre-scheduled) - ;; Set pre-warning to no earlier than SCHEDULED. - (min (- deadline - (org-agenda--timestamp-to-absolute scheduled)) - org-deadline-warning-days)) - ;; Set pre-warning to deadline. - (t 0)))) - (wdays (if suppress-prewarning - (let ((org-deadline-warning-days suppress-prewarning)) - (org-get-wdays s)) - (org-get-wdays s)))) + (wdays + (cond + ;; The current item has a scheduled date, so + ;; evaluate its prewarning lead time. + ((integerp org-agenda-skip-deadline-prewarning-if-scheduled) + ;; Use global prewarning-restart lead time. + org-agenda-skip-deadline-prewarning-if-scheduled) + ((eq org-agenda-skip-deadline-prewarning-if-scheduled + 'pre-scheduled) + ;; Set pre-warning to no earlier than SCHEDULED. + (min (- deadline + (org-agenda--timestamp-to-absolute + (org-entry-get nil "SCHEDULED"))) + org-deadline-warning-days)) + ;; Set pre-warning to 0 + (org-agenda-skip-deadline-prewarning-if-scheduled 0) + ;; Set pre-warning to deadline. + (t (org-get-wdays s))))) (cond ;; Only display deadlines at their base date, at future ;; repeat occurrences or in today agenda. diff --git a/lisp/org-attach.el b/lisp/org-attach.el index fdf652822..192815f4f 100644 --- a/lisp/org-attach.el +++ b/lisp/org-attach.el @@ -320,7 +320,8 @@ the ATTACH_DIR property) their own attachment directory." (defun org-attach-annex-get-maybe (path) "Call git annex get PATH (via shell) if using git annex. Signals an error if the file content is not available and it was not retrieved." - (let ((path-relative (file-relative-name path))) + (let* ((default-directory (expand-file-name org-attach-directory)) + (path-relative (file-relative-name path))) (when (and (org-attach-use-annex) (not (string-equal diff --git a/lisp/org.el b/lisp/org.el index d817c924f..0f349e698 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -9982,7 +9982,7 @@ Raise a user error when there is nothing to follow." (with-temp-buffer (let ((org-inhibit-startup (not reference-buffer))) (org-mode) - (insert s) + (insert (org-link-escape s)) (goto-char (point-min)) (when reference-buffer (setq org-link-abbrev-alist-local