Skip to content

Commit

Permalink
* lisp/obsolete/tpu-extras.el: Avoid defadvice
Browse files Browse the repository at this point in the history
(tpu--respect-bottom-scroll-margin): New function, extracted from
`newline`s defadvice.
(newline, newline-and-indent, do-auto-fill): Delete defadvice.
(tpu-set-scroll-margins): Use advice-add instead of
`ad-enable-advice`+`ad-activate`.
Use an explicit arg instead of `called-interactively-p`.
  • Loading branch information
monnier committed Mar 26, 2021
1 parent 28d0654 commit bc50644
Showing 1 changed file with 8 additions and 21 deletions.
29 changes: 8 additions & 21 deletions lisp/obsolete/tpu-extras.el
Expand Up @@ -368,34 +368,22 @@ A repeat count means scroll that many sections."
(and (< (point) top) (recenter (min beg top-margin))))))

;; Advise the newline, newline-and-indent, and do-auto-fill functions.
(defadvice newline (around tpu-respect-bottom-scroll-margin activate disable)
(defun tpu--respect-bottom-scroll-margin (orig-fun &optional &rest args)
"Respect `tpu-bottom-scroll-margin'."
(let ((beg (tpu-current-line))
(num (prefix-numeric-value (ad-get-arg 0))))
ad-do-it
(num (prefix-numeric-value (car args))))
(apply orig-fun args)
(tpu-bottom-check beg num)))

(defadvice newline-and-indent (around tpu-respect-bottom-scroll-margin)
"Respect `tpu-bottom-scroll-margin'."
(let ((beg (tpu-current-line)))
ad-do-it
(tpu-bottom-check beg 1)))

(defadvice do-auto-fill (around tpu-respect-bottom-scroll-margin)
"Respect `tpu-bottom-scroll-margin'."
(let ((beg (tpu-current-line)))
ad-do-it
(tpu-bottom-check beg 1)))


;;; Function to set scroll margins

;;;###autoload
(defun tpu-set-scroll-margins (top bottom)
(defun tpu-set-scroll-margins (top bottom &optional emit-msg)
"Set scroll margins."
(interactive
"sEnter top scroll margin (N lines or N%% or RETURN for current value): \
\nsEnter bottom scroll margin (N lines or N%% or RETURN for current value): ")
\nsEnter bottom scroll margin (N lines or N%% or RETURN for current value): \
\np")
;; set top scroll margin
(or (string= top "")
(setq tpu-top-scroll-margin
Expand All @@ -411,10 +399,9 @@ A repeat count means scroll that many sections."
(/ (1- (+ (* (string-to-number bottom) 100) (window-height)))
(window-height)))))
(dolist (f '(newline newline-and-indent do-auto-fill))
(ad-enable-advice f 'around 'tpu-respect-bottom-scroll-margin)
(ad-activate f))
(advice-add f :around #'tpu--respect-bottom-scroll-margin))
;; report scroll margin settings if running interactively
(and (called-interactively-p 'interactive)
(and emit-msg
(message "Scroll margins set. Top = %s%%, Bottom = %s%%"
tpu-top-scroll-margin tpu-bottom-scroll-margin)))

Expand Down

0 comments on commit bc50644

Please sign in to comment.