emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Warning with latest git pull


From: Achim Gratz
Subject: Re: [O] Warning with latest git pull
Date: Sun, 24 Feb 2013 11:10:40 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.93 (gnu/linux)

Bastien writes:
> There is already this in org-macs.el:
>
> (when (and (not (fboundp 'with-silent-modifications))
>          (or (< emacs-major-version 23)
>              (and (= emacs-major-version 23)
>                   (< emacs-minor-version 2))))
>   (defmacro with-silent-modifications (&rest body)
>     `(org-unmodified ,@body))
>   (def-edebug-spec with-silent-modifications (body)))

We shouldn't define things that don't have an org prefix.  I don't
really see why we needed to replace org-unmodified in the first place,
especially since with-silent-modifications does _more_ than
org-unmodified, not less as your comment in org-macs would imply.
Here's a patch to restore org-unmodified in the sources, make it an
alias to with-silent-modifications when possible and augment the
replacement definition with a few things that with-silent-modifications
does on top of what org-unmodified did.  We might even copy the whole
macro definition from subr.el, but I think we're close enough with this.

>From 249b18ee13f2fbf041c081fa63b1ccd40d67dc27 Mon Sep 17 00:00:00 2001
From: Achim Gratz <address@hidden>
Date: Sun, 24 Feb 2013 10:54:29 +0100
Subject: [PATCH 1/2] Revert "Use `with-silent-modifications' instead of
 `org-unmodified' when it makes sense"

This reverts commit 43c8aa02cc2301661fe203ec4d4a90d94d6353e6.
---
 lisp/org-clock.el   | 158 ++++++++++++++++++++++++++--------------------------
 lisp/org-colview.el |  61 ++++++++++----------
 lisp/org-macs.el    |   2 -
 lisp/org.el         |  79 +++++++++++++-------------
 4 files changed, 150 insertions(+), 150 deletions(-)

diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index 02924b8..20e624b 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -1700,85 +1700,85 @@ (defun org-clock-sum (&optional tstart tend 
headline-filter propname)
 which HEADLINE-FILTER returns nil are excluded from the clock summation.
 PROPNAME lets you set a custom text property instead of :org-clock-minutes."
   (interactive)
-  (with-silent-modifications
-    (let* ((re (concat "^\\(\\*+\\)[ \t]\\|^[ \t]*"
-                      org-clock-string
-                      "[ \t]*\\(?:\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)\\|=>[ 
\t]+\\([0-9]+\\):\\([0-9]+\\)\\)"))
-          (lmax 30)
-          (ltimes (make-vector lmax 0))
-          (t1 0)
-          (level 0)
-          ts te dt
-          time)
-      (if (stringp tstart) (setq tstart (org-time-string-to-seconds tstart)))
-      (if (stringp tend) (setq tend (org-time-string-to-seconds tend)))
-      (if (consp tstart) (setq tstart (org-float-time tstart)))
-      (if (consp tend) (setq tend (org-float-time tend)))
-      (remove-text-properties (point-min) (point-max)
-                             `(,(or propname :org-clock-minutes) t
-                               :org-clock-force-headline-inclusion t))
-      (save-excursion
-       (goto-char (point-max))
-       (while (re-search-backward re nil t)
-         (cond
-          ((match-end 2)
-           ;; Two time stamps
-           (setq ts (match-string 2)
-                 te (match-string 3)
-                 ts (org-float-time
-                     (apply 'encode-time (org-parse-time-string ts)))
-                 te (org-float-time
-                     (apply 'encode-time (org-parse-time-string te)))
-                 ts (if tstart (max ts tstart) ts)
-                 te (if tend (min te tend) te)
-                 dt (- te ts)
-                 t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t1)))
-          ((match-end 4)
-           ;; A naked time
-           (setq t1 (+ t1 (string-to-number (match-string 5))
-                       (* 60 (string-to-number (match-string 4))))))
-          (t ;; A headline
-           ;; Add the currently clocking item time to the total
-           (when (and org-clock-report-include-clocking-task
-                      (equal (org-clocking-buffer) (current-buffer))
-                      (equal (marker-position org-clock-hd-marker) (point))
-                      tstart
-                      tend
-                      (>= (org-float-time org-clock-start-time) tstart)
-                      (<= (org-float-time org-clock-start-time) tend))
-             (let ((time (floor (- (org-float-time)
-                                   (org-float-time org-clock-start-time)) 60)))
-               (setq t1 (+ t1 time))))
-           (let* ((headline-forced
-                   (get-text-property (point)
-                                      :org-clock-force-headline-inclusion))
-                  (headline-included
-                   (or (null headline-filter)
-                       (save-excursion
-                         (save-match-data (funcall headline-filter))))))
-             (setq level (- (match-end 1) (match-beginning 1)))
-             (when (or (> t1 0) (> (aref ltimes level) 0))
-               (when (or headline-included headline-forced)
-                 (if headline-included
-                     (loop for l from 0 to level do
-                           (aset ltimes l (+ (aref ltimes l) t1))))
-                 (setq time (aref ltimes level))
-                 (goto-char (match-beginning 0))
-                 (put-text-property (point) (point-at-eol)
-                                    (or propname :org-clock-minutes) time)
-                 (if headline-filter
-                     (save-excursion
-                       (save-match-data
-                         (while
-                             (> (funcall outline-level) 1)
-                           (outline-up-heading 1 t)
-                           (put-text-property
-                            (point) (point-at-eol)
-                            :org-clock-force-headline-inclusion t))))))
-               (setq t1 0)
-               (loop for l from level to (1- lmax) do
-                     (aset ltimes l 0)))))))
-       (setq org-clock-file-total-minutes (aref ltimes 0))))))
+  (org-unmodified
+   (let* ((re (concat "^\\(\\*+\\)[ \t]\\|^[ \t]*"
+                     org-clock-string
+                     "[ \t]*\\(?:\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)\\|=>[ 
\t]+\\([0-9]+\\):\\([0-9]+\\)\\)"))
+         (lmax 30)
+         (ltimes (make-vector lmax 0))
+         (t1 0)
+         (level 0)
+         ts te dt
+         time)
+     (if (stringp tstart) (setq tstart (org-time-string-to-seconds tstart)))
+     (if (stringp tend) (setq tend (org-time-string-to-seconds tend)))
+     (if (consp tstart) (setq tstart (org-float-time tstart)))
+     (if (consp tend) (setq tend (org-float-time tend)))
+     (remove-text-properties (point-min) (point-max)
+                            `(,(or propname :org-clock-minutes) t
+                              :org-clock-force-headline-inclusion t))
+     (save-excursion
+       (goto-char (point-max))
+       (while (re-search-backward re nil t)
+        (cond
+         ((match-end 2)
+          ;; Two time stamps
+          (setq ts (match-string 2)
+                te (match-string 3)
+                ts (org-float-time
+                    (apply 'encode-time (org-parse-time-string ts)))
+                te (org-float-time
+                    (apply 'encode-time (org-parse-time-string te)))
+                ts (if tstart (max ts tstart) ts)
+                te (if tend (min te tend) te)
+                dt (- te ts)
+                t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t1)))
+         ((match-end 4)
+          ;; A naked time
+          (setq t1 (+ t1 (string-to-number (match-string 5))
+                      (* 60 (string-to-number (match-string 4))))))
+         (t ;; A headline
+          ;; Add the currently clocking item time to the total
+          (when (and org-clock-report-include-clocking-task
+                     (equal (org-clocking-buffer) (current-buffer))
+                     (equal (marker-position org-clock-hd-marker) (point))
+                     tstart
+                     tend
+                     (>= (org-float-time org-clock-start-time) tstart)
+                     (<= (org-float-time org-clock-start-time) tend))
+            (let ((time (floor (- (org-float-time)
+                                  (org-float-time org-clock-start-time)) 60)))
+              (setq t1 (+ t1 time))))
+          (let* ((headline-forced
+                  (get-text-property (point)
+                                     :org-clock-force-headline-inclusion))
+                 (headline-included
+                  (or (null headline-filter)
+                      (save-excursion
+                        (save-match-data (funcall headline-filter))))))
+            (setq level (- (match-end 1) (match-beginning 1)))
+            (when (or (> t1 0) (> (aref ltimes level) 0))
+              (when (or headline-included headline-forced)
+                (if headline-included
+                    (loop for l from 0 to level do
+                          (aset ltimes l (+ (aref ltimes l) t1))))
+                (setq time (aref ltimes level))
+                (goto-char (match-beginning 0))
+                (put-text-property (point) (point-at-eol)
+                                   (or propname :org-clock-minutes) time)
+                (if headline-filter
+                    (save-excursion
+                      (save-match-data
+                        (while
+                            (> (funcall outline-level) 1)
+                          (outline-up-heading 1 t)
+                          (put-text-property
+                           (point) (point-at-eol)
+                           :org-clock-force-headline-inclusion t))))))
+              (setq t1 0)
+              (loop for l from level to (1- lmax) do
+                    (aset ltimes l 0)))))))
+       (setq org-clock-file-total-minutes (aref ltimes 0))))))
 
 (defun org-clock-sum-current-item (&optional tstart)
   "Return time, clocked on current item in total."
diff --git a/lisp/org-colview.el b/lisp/org-colview.el
index 3a8a713..05b9265 100644
--- a/lisp/org-colview.el
+++ b/lisp/org-colview.el
@@ -223,17 +223,17 @@ (defun org-columns-display-here (&optional props dateline)
       (setq s2 (org-columns-add-ellipses (or modval val) width))
       (setq string (format f s2))
       ;; Create the overlay
-      (with-silent-modifications
-       (setq ov (org-columns-new-overlay
-                 beg (setq beg (1+ beg)) string (if dateline face1 face)))
-       (overlay-put ov 'keymap org-columns-map)
-       (overlay-put ov 'org-columns-key property)
-       (overlay-put ov 'org-columns-value (cdr ass))
-       (overlay-put ov 'org-columns-value-modified modval)
-       (overlay-put ov 'org-columns-pom pom)
-       (overlay-put ov 'org-columns-format f)
-       (overlay-put ov 'line-prefix "")
-       (overlay-put ov 'wrap-prefix ""))
+      (org-unmodified
+       (setq ov (org-columns-new-overlay
+                beg (setq beg (1+ beg)) string (if dateline face1 face)))
+       (overlay-put ov 'keymap org-columns-map)
+       (overlay-put ov 'org-columns-key property)
+       (overlay-put ov 'org-columns-value (cdr ass))
+       (overlay-put ov 'org-columns-value-modified modval)
+       (overlay-put ov 'org-columns-pom pom)
+       (overlay-put ov 'org-columns-format f)
+       (overlay-put ov 'line-prefix "")
+       (overlay-put ov 'wrap-prefix ""))
       (if (or (not (char-after beg))
              (equal (char-after beg) ?\n))
          (let ((inhibit-read-only t))
@@ -332,11 +332,11 @@ (defun org-columns-remove-overlays ()
        (remove-hook 'post-command-hook 'org-columns-hscoll-title 'local))
       (move-marker org-columns-begin-marker nil)
       (move-marker org-columns-top-level-marker nil)
-      (with-silent-modifications
-       (mapc 'delete-overlay org-columns-overlays)
-       (setq org-columns-overlays nil)
-       (let ((inhibit-read-only t))
-         (remove-text-properties (point-min) (point-max) '(read-only t))))
+      (org-unmodified
+       (mapc 'delete-overlay org-columns-overlays)
+       (setq org-columns-overlays nil)
+       (let ((inhibit-read-only t))
+        (remove-text-properties (point-min) (point-max) '(read-only t))))
       (when org-columns-flyspell-was-active
        (flyspell-mode 1))
       (when (local-variable-p 'org-colview-initial-truncate-line-value)
@@ -384,10 +384,10 @@ (defvar org-agenda-columns-active) ;; defined in 
org-agenda.el
 (defun org-columns-quit ()
   "Remove the column overlays and in this way exit column editing."
   (interactive)
-  (with-silent-modifications
-    (org-columns-remove-overlays)
-    (let ((inhibit-read-only t))
-      (remove-text-properties (point-min) (point-max) '(read-only t))))
+  (org-unmodified
+   (org-columns-remove-overlays)
+   (let ((inhibit-read-only t))
+     (remove-text-properties (point-min) (point-max) '(read-only t))))
   (when (eq major-mode 'org-agenda-mode)
     (setq org-agenda-columns-active nil)
     (message
@@ -488,9 +488,9 @@ (defun org-columns-edit-value (&optional key)
          (org-agenda-columns)))
        (t
        (let ((inhibit-read-only t))
-         (with-silent-modifications
-           (remove-text-properties
-            (max (point-min) (1- bol)) eol '(read-only t)))
+         (org-unmodified
+          (remove-text-properties
+           (max (point-min) (1- bol)) eol '(read-only t)))
          (unwind-protect
              (progn
                (setq org-columns-overlays
@@ -920,8 +920,8 @@ (defun org-columns-get-autowidth-alist (s cache)
 
 (defun org-columns-compute-all ()
   "Compute all columns that have operators defined."
-  (with-silent-modifications
-    (remove-text-properties (point-min) (point-max) '(org-summaries t)))
+  (org-unmodified
+   (remove-text-properties (point-min) (point-max) '(org-summaries t)))
   (let ((columns org-columns-current-fmt-compiled)
        (org-columns-time (time-to-number-of-days (current-time)))
        col)
@@ -996,9 +996,9 @@ (defun org-columns-compute (property)
          (if (assoc property sum-alist)
              (setcdr (assoc property sum-alist) useval)
            (push (cons property useval) sum-alist)
-           (with-silent-modifications
-             (add-text-properties sumpos (1+ sumpos)
-                                  (list 'org-summaries sum-alist))))
+           (org-unmodified
+            (add-text-properties sumpos (1+ sumpos)
+                                 (list 'org-summaries sum-alist))))
          (when (and val (not (equal val (if flag str val))))
            (org-entry-put nil property (if flag str val)))
          ;; add current to current level accumulator
@@ -1509,8 +1509,9 @@ (defun org-agenda-colview-compute (fmt)
        (save-excursion
          (save-restriction
            (widen)
-           (with-silent-modifications
-             (remove-text-properties (point-min) (point-max) '(org-summaries 
t)))
+           (org-unmodified
+            (remove-text-properties (point-min) (point-max)
+                                    '(org-summaries t)))
            (goto-char (point-min))
            (org-columns-get-format-and-top-level)
            (while (setq fm (pop fmt))
diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 172d5d1..c46ad56 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -117,8 +117,6 @@ (defmacro org-preserve-lc (&rest body)
 (def-edebug-spec org-preserve-lc (body))
 
 ;; Copied from bookmark.el
-;; Use `org-unmodified' to ignore real modifications, otherwise
-;; `with-silent-modifications' is enough to ignore cosmetic ones
 (defmacro org-unmodified (&rest body)
   "Run BODY while preserving the buffer's `buffer-modified-p' state."
   (org-with-gensyms (was-modified)
diff --git a/lisp/org.el b/lisp/org.el
index 1e22699..f311d3a 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8948,24 +8948,24 @@ (defun org-refresh-category-properties ()
                  ((symbolp org-category) (symbol-name org-category))
                  (t org-category)))
        beg end cat pos optionp)
-    (with-silent-modifications
-      (save-excursion
-       (save-restriction
-         (widen)
-         (goto-char (point-min))
-         (put-text-property (point) (point-max) 'org-category def-cat)
-         (while (re-search-forward
-                 "^\\(#\\+CATEGORY:\\|[ \t]*:CATEGORY:\\)\\(.*\\)" nil t)
-           (setq pos (match-end 0)
-                 optionp (equal (char-after (match-beginning 0)) ?#)
-                 cat (org-trim (match-string 2)))
-           (if optionp
-               (setq beg (point-at-bol) end (point-max))
-             (org-back-to-heading t)
-             (setq beg (point) end (org-end-of-subtree t t)))
-           (put-text-property beg end 'org-category cat)
-           (put-text-property beg end 'org-category-position beg)
-           (goto-char pos)))))))
+    (org-unmodified
+     (save-excursion
+       (save-restriction
+        (widen)
+        (goto-char (point-min))
+        (put-text-property (point) (point-max) 'org-category def-cat)
+        (while (re-search-forward
+                "^\\(#\\+CATEGORY:\\|[ \t]*:CATEGORY:\\)\\(.*\\)" nil t)
+          (setq pos (match-end 0)
+                optionp (equal (char-after (match-beginning 0)) ?#)
+                cat (org-trim (match-string 2)))
+          (if optionp
+              (setq beg (point-at-bol) end (point-max))
+            (org-back-to-heading t)
+            (setq beg (point) end (org-end-of-subtree t t)))
+          (put-text-property beg end 'org-category cat)
+          (put-text-property beg end 'org-category-position beg)
+          (goto-char pos)))))))
 
 (defun org-refresh-properties (dprop tprop)
   "Refresh buffer text properties.
@@ -8973,17 +8973,17 @@ (defun org-refresh-properties (dprop tprop)
 property to set."
   (let ((case-fold-search t)
        (inhibit-read-only t) p)
-    (with-silent-modifications
-      (save-excursion
-       (save-restriction
-         (widen)
-         (goto-char (point-min))
-         (while (re-search-forward (concat "^[ \t]*:" dprop ": +\\(.*\\)[ 
\t]*$") nil t)
-           (setq p (org-match-string-no-properties 1))
-           (save-excursion
-             (org-back-to-heading t)
-             (put-text-property
-              (point-at-bol) (point-at-eol) tprop p))))))))
+    (org-unmodified
+     (save-excursion
+       (save-restriction
+        (widen)
+        (goto-char (point-min))
+        (while (re-search-forward (concat "^[ \t]*:" dprop ": +\\(.*\\)[ 
\t]*$") nil t)
+          (setq p (org-match-string-no-properties 1))
+          (save-excursion
+            (org-back-to-heading t)
+            (put-text-property
+             (point-at-bol) (point-at-eol) tprop p))))))))
 
 
 ;;;; Link Stuff
@@ -12159,15 +12159,16 @@ (defun org-block-todo-from-checkboxes (change-plist)
 
 (defun org-entry-blocked-p ()
   "Is the current entry blocked?"
-  (with-silent-modifications
-    (if (org-entry-get nil "NOBLOCKING")
-       nil ;; Never block this entry
-      (not (run-hook-with-args-until-failure
-           'org-blocker-hook
-           (list :type 'todo-state-change
-                 :position (point)
-                 :from 'todo
-                 :to 'done))))))
+  (org-unmodified
+   (if (org-entry-get nil "NOBLOCKING")
+       nil ;; Never block this entry
+     (not
+      (run-hook-with-args-until-failure
+       'org-blocker-hook
+       (list :type 'todo-state-change
+            :position (point)
+            :from 'todo
+            :to 'done))))))
 
 (defun org-update-statistics-cookies (all)
   "Update the statistics cookie, either from TODO or from checkboxes.
@@ -17613,7 +17614,7 @@ (defun org-agenda-prepare-buffers (files)
                  (append org-drawers-for-agenda org-drawers))
            (setq org-tag-alist-for-agenda
                  (append org-tag-alist-for-agenda org-tag-alist))
-           (with-silent-modifications
+           (org-unmodified
              (save-excursion
                (remove-text-properties (point-min) (point-max) pall)
                (when org-agenda-skip-archived-trees
-- 
1.8.1.4

>From f9b03f274f93c81e9de2ec874fcc666a61e8b750 Mon Sep 17 00:00:00 2001
From: Achim Gratz <address@hidden>
Date: Sun, 24 Feb 2013 11:02:57 +0100
Subject: [PATCH 2/2] =?UTF-8?q?make=20org-unmodified=20an=20alias=20for=20?=
 =?UTF-8?q?`with-silent-modifications=C2=B4=20or=20re-implement=20as=20a?=
 =?UTF-8?q?=20macro?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* lisp/org-macs.el (org-unmodified): If `with-silent-modifications´ is
  fbound, make org-unmodified an alias to it.  If not, implement it as
  a macro as before.  Additionally to the original implementation,
  let-bind `deactivate-mark´, `buffer-file-name´ and
  `buffer-file-truename´ to nil.  (with-silent-modifications): Do not
  define, even when not fbound.
---
 lisp/org-macs.el | 34 +++++++++++++++-------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index c46ad56..36fc86c 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -63,14 +63,6 @@ (defmacro org-called-interactively-p (&optional kind)
       `(interactive-p))))
 (def-edebug-spec org-called-interactively-p (&optional ("quote" symbolp)))
 
-(when (and (not (fboundp 'with-silent-modifications))
-          (or (< emacs-major-version 23)
-              (and (= emacs-major-version 23)
-                   (< emacs-minor-version 2))))
-  (defmacro with-silent-modifications (&rest body)
-    `(org-unmodified ,@body))
-  (def-edebug-spec with-silent-modifications (body)))
-
 (defmacro org-bound-and-true-p (var)
   "Return the value of symbol VAR if it is bound, else nil."
   `(and (boundp (quote ,var)) ,var))
@@ -116,17 +108,21 @@ (defmacro org-preserve-lc (&rest body)
         (org-move-to-column ,col)))))
 (def-edebug-spec org-preserve-lc (body))
 
-;; Copied from bookmark.el
-(defmacro org-unmodified (&rest body)
-  "Run BODY while preserving the buffer's `buffer-modified-p' state."
-  (org-with-gensyms (was-modified)
-    `(let ((,was-modified (buffer-modified-p)))
-       (unwind-protect
-           (let ((buffer-undo-list t)
-                (inhibit-modification-hooks t))
-            ,@body)
-        (set-buffer-modified-p ,was-modified)))))
-(def-edebug-spec org-unmodified (body))
+(eval-and-compile
+  (if (fboundp 'with-silent-modifications)
+      (defalias 'org-unmodified 'with-silent-modifications)
+    ;; originally copied from bookmark.el
+    (defmacro org-unmodified (&rest body)
+      "Execute body without changing `buffer-modified-p'.
+Also, do not record undo information."
+      `(set-buffer-modified-p
+       (prog1 (buffer-modified-p)
+         (let ((buffer-undo-list t)
+               (inhibit-read-only t)
+               (inhibit-modification-hooks t)
+               deactivate-mark buffer-file-name buffer-file-truename)
+           ,@body))))
+    (def-edebug-spec org-unmodified (body))))
 
 (defmacro org-without-partial-completion (&rest body)
   `(if (and (boundp 'partial-completion-mode)
-- 
1.8.1.4




Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Q+, Q and microQ:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds

reply via email to

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