Browse Source

Merge branch 'maint' into wip

Bastien 1 year ago
parent
commit
8fd176ee76
4 changed files with 28 additions and 31 deletions
  1. 2 1
      contrib/lisp/org-collector.el
  2. 23 28
      lisp/org-agenda.el
  3. 2 1
      lisp/org-attach.el
  4. 1 1
      lisp/org.el

+ 2 - 1
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

+ 23 - 28
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.

+ 2 - 1
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

+ 1 - 1
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