org-macs: Move a macro
This commit is contained in:
parent
a2636b5286
commit
417479238b
|
@ -200,6 +200,16 @@ because otherwise all these markers will point to nowhere."
|
|||
`(let (pop-up-frames display-buffer-alist)
|
||||
,@body))
|
||||
|
||||
(defmacro org-table-with-shrunk-field (&rest body)
|
||||
"Save field shrunk state, execute BODY and restore state."
|
||||
(declare (debug (body)))
|
||||
(org-with-gensyms (end shrunk size)
|
||||
`(let* ((,shrunk (save-match-data (org-table--shrunk-field)))
|
||||
(,end (and ,shrunk (copy-marker (overlay-end ,shrunk) t)))
|
||||
(,size (and ,shrunk (- ,end (overlay-start ,shrunk)))))
|
||||
(when ,shrunk (delete-overlay ,shrunk))
|
||||
(unwind-protect (progn ,@body)
|
||||
(when ,shrunk (move-overlay ,shrunk (- ,end ,size) ,end))))))
|
||||
|
||||
|
||||
;;; Buffer and windows
|
||||
|
@ -1035,23 +1045,6 @@ move it back by one char before doing this check."
|
|||
(backward-char 1))
|
||||
(org-invisible-p)))
|
||||
|
||||
|
||||
;;; Tables
|
||||
|
||||
;; This macro is placed here because it is used in org.el.
|
||||
;; org-table.el requires org.el. So, if we put this macro in its
|
||||
;; natural place (org-table), a require loop would result.
|
||||
(defmacro org-table-with-shrunk-field (&rest body)
|
||||
"Save field shrunk state, execute BODY and restore state."
|
||||
(declare (debug (body)))
|
||||
(org-with-gensyms (end shrunk size)
|
||||
`(let* ((,shrunk (save-match-data (org-table--shrunk-field)))
|
||||
(,end (and ,shrunk (copy-marker (overlay-end ,shrunk) t)))
|
||||
(,size (and ,shrunk (- ,end (overlay-start ,shrunk)))))
|
||||
(when ,shrunk (delete-overlay ,shrunk))
|
||||
(unwind-protect (progn ,@body)
|
||||
(when ,shrunk (move-overlay ,shrunk (- ,end ,size) ,end))))))
|
||||
|
||||
|
||||
;;; Time
|
||||
|
||||
|
|
Loading…
Reference in New Issue