emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r104717: Avoid some code duplication


From: Glenn Morris
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r104717: Avoid some code duplication in diary-lib.el.
Date: Sat, 25 Jun 2011 15:22:47 -0700
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 104717
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2011-06-25 15:22:47 -0700
message:
  Avoid some code duplication in diary-lib.el.
  
  * lisp/calendar/diary-lib.el (diary-included-files): Doc fix.
  (diary-include-files): New function, extracted from
  diary-include-other-diary-files and diary-mark-included-diary-files.
  (diary-include-other-diary-files, diary-mark-included-diary-files):
  Just call diary-include-files.
  (diary-mark-entries): Reset diary-included-files on first call.
modified:
  lisp/ChangeLog
  lisp/calendar/diary-lib.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-06-25 22:10:21 +0000
+++ b/lisp/ChangeLog    2011-06-25 22:22:47 +0000
@@ -1,5 +1,12 @@
 2011-06-25  Glenn Morris  <address@hidden>
 
+       * calendar/diary-lib.el (diary-included-files): Doc fix.
+       (diary-include-files): New function, extracted from
+       diary-include-other-diary-files and diary-mark-included-diary-files.
+       (diary-include-other-diary-files, diary-mark-included-diary-files):
+       Just call diary-include-files.
+       (diary-mark-entries): Reset diary-included-files on first call.
+
        * calendar/diary-lib.el (diary-mark-entries)
        (diary-mark-included-diary-files):
        Visit included diary-files in temp buffers.

=== modified file 'lisp/calendar/diary-lib.el'
--- a/lisp/calendar/diary-lib.el        2011-06-25 22:10:21 +0000
+++ b/lisp/calendar/diary-lib.el        2011-06-25 22:22:47 +0000
@@ -776,7 +776,8 @@
   (goto-char (point-min)))
 
 (defvar diary-included-files nil
-  "List of any diary files included in the last call to `diary-list-entries'.")
+  "List of any diary files included in the last call to `diary-list-entries'.
+Or to `diary-mark-entries'.")
 
 (defun diary-list-entries (date number &optional list-only)
   "Create and display a buffer containing the relevant lines in `diary-file'.
@@ -921,19 +922,20 @@
 (defvar original-date)                  ; bound in diary-list-entries
 ;(defvar number)                         ; already declared above
 
-(defun diary-include-other-diary-files ()
-  "Add diary entries from included diary files to `diary-entries-list'.
+(defun diary-include-files (&optional mark)
+  "Process diary entries from included diary files.
+By default, lists included entries, but if optional argument MARK is non-nil
+marks entries instead.
 For example, this enables you to share common diary files.
-To use, add this function to `diary-list-entries-hook'.
 Specify include files using lines matching `diary-include-string', e.g.
     #include \"filename\"
-This is recursive; that is, included files may include other files.
-See also `diary-mark-included-diary-files'."
+This is recursive; that is, included files may include other files."
   (goto-char (point-min))
   (while (re-search-forward
           (format "^%s \"\\([^\"]*\\)\"" (regexp-quote diary-include-string))
           nil t)
     (let ((diary-file (match-string-no-properties 1))
+          (diary-mark-entries-hook 'diary-mark-included-diary-files)
           (diary-list-entries-hook 'diary-include-other-diary-files)
           (diary-including t)
           diary-hook diary-list-include-blanks efile)
@@ -943,10 +945,12 @@
                           diary-included-files)
                   (error "Recursive diary include for %s" diary-file)
                 (setq diary-included-files
-                      (append diary-included-files (list efile))
-                      diary-entries-list
-                      (append diary-entries-list
-                              (diary-list-entries original-date number t))))
+                      (append diary-included-files (list efile)))
+                (if mark
+                    (diary-mark-entries)
+                  (setq diary-entries-list
+                        (append diary-entries-list
+                                (diary-list-entries original-date number t)))))
             (beep)
             (message "Can't read included diary file %s" diary-file)
             (sleep-for 2))
@@ -955,6 +959,13 @@
         (sleep-for 2))))
   (goto-char (point-min)))
 
+(defun diary-include-other-diary-files ()
+  "Add diary entries from included diary files to `diary-entries-list'.
+To use, add this function to `diary-list-entries-hook'.
+For details, see `diary-include-files'.
+See also `diary-mark-included-diary-files'."
+  (diary-include-files))
+
 (define-obsolete-function-alias 'include-other-diary-files
   'diary-include-other-diary-files "23.1")
 
@@ -1410,6 +1421,7 @@
         (d-incp (and (boundp 'diary-including) diary-including))
         file-glob-attrs temp-buff)
     (unless d-incp
+      (setq diary-included-files nil)
       (message "Marking diary entries..."))
     (unwind-protect
         (with-current-buffer (or diary-buffer
@@ -1518,29 +1530,10 @@
 
 (defun diary-mark-included-diary-files ()
   "Mark diary entries from included diary files.
-For example, this enables you to share common diary files.
 To use, add this function to `diary-mark-entries-hook'.
-Specify include files using lines matching `diary-include-string', e.g.
-    #include \"filename\"
-This is recursive; that is, included files may include other files.
+For details, see `diary-include-files'.
 See also `diary-include-other-diary-files'."
-  (goto-char (point-min))
-  (while (re-search-forward
-          (format "^%s \"\\([^\"]*\\)\"" (regexp-quote diary-include-string))
-          nil t)
-    (let ((diary-file (match-string-no-properties 1))
-          (diary-mark-entries-hook 'diary-mark-included-diary-files)
-          (diary-including t))
-      (if (file-exists-p diary-file)
-          (if (file-readable-p diary-file)
-              (diary-mark-entries)
-            (beep)
-            (message "Can't read included diary file %s" diary-file)
-            (sleep-for 2))
-        (beep)
-        (message "Can't find included diary file %s" diary-file)
-        (sleep-for 2))))
-  (goto-char (point-min)))
+  (diary-include-files t))
 
 (define-obsolete-function-alias 'mark-included-diary-files
   'diary-mark-included-diary-files "23.1")


reply via email to

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