Forráskód Böngészése

Fix declare-function and friends in org.el

* lisp/org-table.el (org-table-with-shrunk-field): Move from here...
* lisp/org-macs.el: ...to here

The move is necessary because this macro is used (at compile time) in
org.el.  We cannot leave its definition in org-table, because that
would lead to a require loop.  So we need to put it in org-macs, and
require the latter file in org.el also at compile time.

Finally, update and sort the declare-function calls.
Aaron Ecay 7 éve
szülő
commit
581fd90645
3 módosított fájl, 27 hozzáadás és 13 törlés
  1. 16 0
      lisp/org-macs.el
  2. 2 10
      lisp/org-table.el
  3. 9 3
      lisp/org.el

+ 16 - 0
lisp/org-macs.el

@@ -1039,6 +1039,22 @@ 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

+ 2 - 10
lisp/org-table.el

@@ -526,16 +526,8 @@ Field is restored even in case of abnormal exit."
 	 (org-table-goto-column ,column)
 	 (set-marker ,line nil)))))
 
-(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))))))
+;;; See org-macs.el for the definition of org-table-with-shrunk-field,
+;;; including the reason why it is defined there and not here.
 
 (defmacro org-table-with-shrunk-columns (&rest body)
   "Expand all columns before executing BODY, then shrink them again."

+ 9 - 3
lisp/org.el

@@ -90,7 +90,7 @@
        (message "You need to run \"make\" or \"make autoloads\" from Org lisp directory")
        (sit-for 3))))
 
-(require 'org-macs)
+(eval-and-compile (require 'org-macs))
 (require 'org-compat)
 
 ;; `org-outline-regexp' ought to be a defconst but is let-bound in
@@ -161,17 +161,22 @@ Stars are put in group 1 and the trimmed body in group 2.")
 (declare-function org-element-update-syntax "org-element" ())
 (declare-function org-export-dispatch "ox" (&optional arg))
 (declare-function org-export-get-backend "ox" (name))
+(declare-function org-export-get-backend "ox" (name))
+(declare-function org-export-get-environment "ox" (&optional backend subtreep ext-plist))
 (declare-function org-export-get-environment "ox" (&optional backend subtreep ext-plist))
 (declare-function org-feed-goto-inbox "org-feed" (feed))
 (declare-function org-feed-update-all "org-feed" ())
 (declare-function org-goto "org-goto" (&optional alternative-interface))
+(declare-function org-goto "org-goto" (&optional alternative-interface))
 (declare-function org-id-find-id-file "org-id" (id))
 (declare-function org-id-get-create "org-id" (&optional force))
 (declare-function org-inlinetask-at-task-p "org-inlinetask" ())
 (declare-function org-inlinetask-outline-regexp "org-inlinetask" ())
 (declare-function org-inlinetask-toggle-visibility "org-inlinetask" ())
 (declare-function org-latex-make-preamble "ox-latex" (info &optional template snippet?))
+(declare-function org-latex-make-preamble "ox-latex" (info &optional template snippet?))
 (declare-function org-plot/gnuplot "org-plot" (&optional params))
+(declare-function org-table--shrunk-field "org-table" ()) ;; For `org-table-with-shrunk-field'.
 (declare-function org-table-align "org-table" ())
 (declare-function org-table-begin "org-table" (&optional table-type))
 (declare-function org-table-beginning-of-field "org-table" (&optional n))
@@ -201,15 +206,16 @@ Stars are put in group 1 and the trimmed body in group 2.")
 (declare-function org-table-toggle-column-width "org-table" (&optional arg))
 (declare-function org-table-toggle-coordinate-overlays "org-table" ())
 (declare-function org-table-toggle-formula-debugger "org-table" ())
-(declare-function org-table-with-shrunk-field "org-table" (&rest body))
 (declare-function org-table-wrap-region "org-table" (arg))
 (declare-function org-tags-view "org-agenda" (&optional todo-only match))
 (declare-function org-timer "org-timer" (&optional restart no-insert))
 (declare-function org-timer-item "org-timer" (&optional arg))
 (declare-function org-timer-pause-or-continue "org-timer" (&optional stop))
+(declare-function org-timer-pause-or-continue "org-timer" (&optional stop))
 (declare-function org-timer-set-timer "org-timer" (&optional opt))
 (declare-function org-timer-start "org-timer" (&optional offset))
 (declare-function org-timer-stop "org-timer" ())
+(declare-function org-timer-stop "org-timer" ())
 (declare-function org-toggle-archive-tag "org-archive" (&optional find-done))
 (declare-function orgtbl-ascii-plot "org-table" (&optional ask))
 (declare-function orgtbl-mode "org-table" (&optional arg))
@@ -4477,7 +4483,7 @@ Assume point is already in a table."
   (unless quietly (message "Mapping tables: done")))
 
 (declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end))
-(declare-function org-clock-update-mode-line "org-clock" ())
+(declare-function org-clock-update-mode-line "org-clock" (&optional refresh))
 (declare-function org-resolve-clocks "org-clock"
 		  (&optional also-non-dangling-p prompt last-valid))