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)
This commit is contained in:
Thomas Fitzsimmons 2019-06-07 20:43:38 -04:00
parent 58cde92341
commit 890a0826f3
2 changed files with 30 additions and 33 deletions

View file

@ -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)

View file

@ -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)