emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master e2ceac5: Advise icalendar--add-diary-entry conditionally


From: Thomas Fitzsimmons
Subject: [elpa] master e2ceac5: Advise icalendar--add-diary-entry conditionally
Date: Sun, 9 Jun 2019 14:50:38 -0400 (EDT)

branch: master
commit e2ceac5db46c168995856d0591a0f137abe948fa
Author: Thomas Fitzsimmons <address@hidden>
Commit: Thomas Fitzsimmons <address@hidden>

    Advise icalendar--add-diary-entry conditionally
    
    * packages/excorporate/excorporate-diary.el: Add
    icalendar--add-diary-entry workaround advice conditional on real
    fix not being present.
    (excorporate-diary-enable): Call fixed diary-make-entry on Emacs
    versions >= 27.1.  (Bug#35645)
---
 packages/excorporate/excorporate-diary.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/packages/excorporate/excorporate-diary.el 
b/packages/excorporate/excorporate-diary.el
index a418f71..caaae20 100644
--- a/packages/excorporate/excorporate-diary.el
+++ b/packages/excorporate/excorporate-diary.el
@@ -33,7 +33,9 @@
 (require 'excorporate)
 (require 'nadvice)
 
-;; FIXME: Add something like this to diary-lib.el.
+;; For Emacs versions less than 27.1, which do not have the fix for
+;; Bug#35645, work around the issue where `icalendar-import-buffer'
+;; pops up the diary file buffer.
 (defun exco-diary-diary-make-entry (string &optional nonmarking file)
   "Insert a diary entry STRING which may be NONMARKING in FILE.
 If omitted, NONMARKING defaults to nil and FILE defaults to
@@ -55,8 +57,6 @@ If omitted, NONMARKING defaults to nil and FILE defaults to
      (if nonmarking diary-nonmarking-symbol "")
      string)))
 
-;; FIXME: Have icalendar--add-diary-entry use the new diary-lib
-;; function instead of diary-make-entry.
 (defun exco-diary-icalendar--add-diary-entry-around (original &rest arguments)
   "Prevent whitespace workaround from selecting diary buffer.
 Also prevent `diary-make-entry' from putting the diary file
@@ -68,8 +68,10 @@ where (other-buffer (current-buffer)) will return it."
            ((symbol-function #'diary-make-entry)
             (symbol-function #'exco-diary-diary-make-entry)))
     (apply original arguments)))
-(advice-add #'icalendar--add-diary-entry :around
-           #'exco-diary-icalendar--add-diary-entry-around)
+
+(unless (string-match "omit-trailing-space" (documentation 'diary-make-entry))
+  (advice-add #'icalendar--add-diary-entry :around
+             #'exco-diary-icalendar--add-diary-entry-around))
 
 (defvar excorporate-diary-today-file
   "~/.emacs.d/excorporate/diary-excorporate-today"
@@ -216,8 +218,11 @@ ARGUMENTS are the arguments to `diary-view-entries'."
        (goto-char (point-min))
        (when (not (re-search-forward
                    (concat "^ *" diary-include-string " *\"" file "\"") nil t))
-         (exco-diary-diary-make-entry
-          (concat diary-include-string " \"" file "\""))
+         (let ((include-string (concat diary-include-string " \"" file "\"")))
+           (if (string-match "omit-trailing-space"
+                             (documentation 'diary-make-entry))
+               (diary-make-entry include-string nil nil t t)
+             (exco-diary-diary-make-entry include-string)))
          (save-buffer)))))
   (advice-add #'diary :around #'exco-diary-diary-around)
   (advice-add #'diary-view-entries :override



reply via email to

[Prev in Thread] Current Thread [Next in Thread]