[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org ea665792b2 1/2: org-compat: Use `define-advice' ins
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org ea665792b2 1/2: org-compat: Use `define-advice' instead of `defadvice' |
Date: |
Sat, 3 Sep 2022 04:57:51 -0400 (EDT) |
branch: externals/org
commit ea665792b2e5008f589e46cfdd3d2e631f84350a
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
org-compat: Use `define-advice' instead of `defadvice'
* lisp/org-compat.el (outline-flag-region):
(outline-next-visible-heading):
(outline-back-to-heading):
(outline-on-heading-p):
(outline-hide-sublevels):
(outline-toggle-children): Use `define-advice', remove redundant
interactive specs, and use `derived-mode-p' instead of `eq'
`major-mode'.
Suggested by Stefan Monnier.
---
lisp/org-compat.el | 97 ++++++++++++++++++++++++------------------------------
1 file changed, 43 insertions(+), 54 deletions(-)
diff --git a/lisp/org-compat.el b/lisp/org-compat.el
index ef4f4e0d1a..91972ef9c8 100644
--- a/lisp/org-compat.el
+++ b/lisp/org-compat.el
@@ -1456,69 +1456,58 @@ key."
;; Folding in outline-mode is not compatible with org-mode folding
;; anymore. Working around to avoid breakage of external packages
;; assuming the compatibility.
-(defadvice outline-flag-region (around outline-flag-region@fix-for-org-fold
(from to flag) activate)
+(define-advice outline-flag-region (:around (oldfun from to flag)
fix-for-org-fold)
"Run `org-fold-region' when in org-mode."
- (if (eq major-mode 'org-mode)
- (setq ad-return-value (org-fold-region (max from (point-min)) (min to
(point-max)) flag 'headline))
- ad-do-it))
+ (if (derived-mode-p 'org-mode)
+ (org-fold-region (max from (point-min)) (min to (point-max)) flag
'headline)
+ (apply oldfun from to flag)))
-(defadvice outline-next-visible-heading (around
outline-next-visible-heading@fix-for-org-fold (arg) activate)
+(define-advice outline-next-visible-heading (:around (oldfun arg)
fix-for-org-fold)
"Run `org-next-visible-heading' when in org-mode."
- (interactive "p")
- (if (eq major-mode 'org-mode)
- (setq ad-return-value (org-next-visible-heading arg))
- ad-do-it))
+ (if (derived-mode-p 'org-mode)
+ (org-next-visible-heading arg)
+ (apply oldfun arg)))
-(defadvice outline-back-to-heading (around
outline-back-to-heading@fix-for-org-fold (&optional invisible-ok) activate)
+(define-advice outline-back-to-heading (:around (oldfun &optional
invisible-ok) fix-for-org-fold)
"Run `org-back-to-heading' when in org-mode."
- (if (eq major-mode 'org-mode)
- (setq ad-return-value
- (progn
- (beginning-of-line)
- (or (org-at-heading-p (not invisible-ok))
- (let (found)
- (save-excursion
- (while (not found)
- (or (re-search-backward (concat "^\\(?:" outline-regexp
"\\)")
- nil t)
- (signal 'outline-before-first-heading nil))
- (setq found (and (or invisible-ok (not
(org-fold-folded-p)))
- (point)))))
- (goto-char found)
- found))))
- ad-do-it))
-
-(defadvice outline-on-heading-p (around outline-on-heading-p@fix-for-org-fold
(&optional invisible-ok) activate)
+ (if (derived-mode-p 'org-mode)
+ (progn
+ (beginning-of-line)
+ (or (org-at-heading-p (not invisible-ok))
+ (let (found)
+ (save-excursion
+ (while (not found)
+ (or (re-search-backward (concat "^\\(?:" outline-regexp "\\)")
+ nil t)
+ (signal 'outline-before-first-heading nil))
+ (setq found (and (or invisible-ok (not (org-fold-folded-p)))
+ (point)))))
+ (goto-char found)
+ found)))
+ (apply oldfun invisible-ok)))
+
+(define-advice outline-on-heading-p (:around (oldfun &optional invisible-ok)
fix-for-org-fold)
"Run `org-at-heading-p' when in org-mode."
- (if (eq major-mode 'org-mode)
- (setq ad-return-value (org-at-heading-p (not invisible-ok)))
- ad-do-it))
+ (if (derived-mode-p 'org-mode)
+ (org-at-heading-p (not invisible-ok))
+ (apply oldfun invisible-ok)))
-(defadvice outline-hide-sublevels (around
outline-hide-sublevels@fix-for-org-fold (levels) activate)
+(define-advice outline-hide-sublevels (:around (oldfun levels)
fix-for-org-fold)
"Run `org-fold-hide-sublevels' when in org-mode."
- (interactive (list
- (cond
- (current-prefix-arg (prefix-numeric-value current-prefix-arg))
- ((save-excursion (beginning-of-line)
- (looking-at outline-regexp))
- (funcall outline-level))
- (t 1))))
- (if (eq major-mode 'org-mode)
- (setq ad-return-value (org-fold-hide-sublevels levels))
- ad-do-it))
-
-(defadvice outline-toggle-children (around
outline-toggle-children@fix-for-org-fold () activate)
+ (if (derived-mode-p 'org-mode)
+ (org-fold-hide-sublevels levels)
+ (apply oldfun levels)))
+
+(define-advice outline-toggle-children (:around (oldfun) fix-for-org-fold)
"Run `org-fold-hide-sublevels' when in org-mode."
- (interactive)
- (if (eq major-mode 'org-mode)
- (setq ad-return-value
- (save-excursion
- (org-back-to-heading)
- (if (not (org-fold-folded-p (line-end-position)))
- (org-fold-hide-subtree)
- (org-fold-show-children)
- (org-fold-show-entry 'hide-drawers))))
- ad-do-it))
+ (if (derived-mode-p 'org-mode)
+ (save-excursion
+ (org-back-to-heading)
+ (if (not (org-fold-folded-p (line-end-position)))
+ (org-fold-hide-subtree)
+ (org-fold-show-children)
+ (org-fold-show-entry 'hide-drawers)))
+ (apply oldfun)))
;; TODO: outline-headers-as-kill