From 890a0826f3f68f4476f6ec0b56fe96c6bc047142 Mon Sep 17 00:00:00 2001 From: Thomas Fitzsimmons Date: Fri, 7 Jun 2019 20:43:38 -0400 Subject: [PATCH] Make icalendar-import-buffer not show diary file buffer * lisp/calendar/diary-lib.el (diary-make-entry): Add omit-trailing-space parameter. Add do-not-show parameter to allow not showing diary file buffer. * lisp/calendar/icalendar.el (icalendar--add-diary-entry): Remove workaround to omit trailing space in diary entry. Have diary-make-entry not display the diary file buffer. (Bug#35645) --- lisp/calendar/diary-lib.el | 45 ++++++++++++++++++++++---------------- lisp/calendar/icalendar.el | 18 ++++----------- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 369a93ca178..a0e90c439bf 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -2062,27 +2062,34 @@ calendar." ;;; Diary insertion functions. ;;;###cal-autoload -(defun diary-make-entry (string &optional nonmarking file) +(defun diary-make-entry (string &optional nonmarking file omit-trailing-space + do-not-show) "Insert a diary entry STRING which may be NONMARKING in FILE. If omitted, NONMARKING defaults to nil and FILE defaults to -`diary-file'." - (let ((pop-up-frames (or pop-up-frames (window-dedicated-p)))) - (find-file-other-window (or file diary-file))) - (when (eq major-mode (default-value 'major-mode)) (diary-mode)) - (widen) - (diary-unhide-everything) - (goto-char (point-max)) - (when (let ((case-fold-search t)) - (search-backward "Local Variables:" - (max (- (point-max) 3000) (point-min)) - t)) - (beginning-of-line) - (insert "\n") - (forward-line -1)) - (insert - (if (bolp) "" "\n") - (if nonmarking diary-nonmarking-symbol "") - string " ")) +`diary-file'. If OMIT-TRAILING-SPACE is non-nil, then do not add +a trailing space to the entry. If DO-NOT-SHOW is non-nil, do not +show the diary buffer." + (with-current-buffer + (let ((diary-file-name (or file diary-file))) + (if do-not-show + (find-file-noselect diary-file-name) + (let ((pop-up-frames (or pop-up-frames (window-dedicated-p)))) + (find-file-other-window diary-file-name)))) + (when (eq major-mode (default-value 'major-mode)) (diary-mode)) + (widen) + (diary-unhide-everything) + (goto-char (point-max)) + (when (let ((case-fold-search t)) + (search-backward "Local Variables:" + (max (- (point-max) 3000) (point-min)) + t)) + (beginning-of-line) + (insert "\n") + (forward-line -1)) + (insert + (if (bolp) "" "\n") + (if nonmarking diary-nonmarking-symbol "") + string (if omit-trailing-space "" " ")))) ;;;###cal-autoload (defun diary-insert-entry (arg &optional event) diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index a8fd765129e..17316ddbbd0 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -2502,20 +2502,10 @@ the entry." (when summary (setq non-marking (y-or-n-p (format "Make appointment non-marking? ")))) - (save-window-excursion - (unless diary-filename - (setq diary-filename - (read-file-name "Add appointment to this diary file: "))) - ;; Note: diary-make-entry will add a trailing blank char.... :( - (funcall (if (fboundp 'diary-make-entry) - 'diary-make-entry - 'make-diary-entry) - string non-marking diary-filename))) - ;; Würgaround to remove the trailing blank char - (with-current-buffer (find-file diary-filename) - (goto-char (point-max)) - (if (= (char-before) ? ) - (delete-char -1))) + (unless diary-filename + (setq diary-filename + (read-file-name "Add appointment to this diary file: "))) + (diary-make-entry string non-marking diary-filename t t)) ;; return diary-filename in case it has been changed interactively diary-filename) -- 2.39.2