;;; 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)
(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)