summaryrefslogtreecommitdiff
path: root/lisp/longlines.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2007-10-17 02:50:23 +0000
committerChong Yidong <cyd@stupidchicken.com>2007-10-17 02:50:23 +0000
commit7f223550d6f4c3306ef9c1c887d8c08c78b36d20 (patch)
tree7d9a01ca53eb764c2f2310a49c78ab70f54993c7 /lisp/longlines.el
parent7106989203198366e441567890f4ae5dcf24d859 (diff)
downloademacs-7f223550d6f4c3306ef9c1c887d8c08c78b36d20.tar.gz
(longlines-wrap-follows-window-size): Integer value
specifies wrapping margin. (longlines-mode, longlines-window-change-function): Set window-specific wrapping margin based on the above.
Diffstat (limited to 'lisp/longlines.el')
-rw-r--r--lisp/longlines.el27
1 files changed, 21 insertions, 6 deletions
diff --git a/lisp/longlines.el b/lisp/longlines.el
index 07977910a22..c820150c27a 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -55,7 +55,11 @@ when the file is saved to disk."
"Non-nil means wrapping and filling happen at the edge of the window.
Otherwise, `fill-column' is used, regardless of the window size. This
does not work well when the buffer is displayed in multiple windows
-with differing widths."
+with differing widths.
+
+If the value is an integer, that specifies the distance from the
+right edge of the window at which wrapping occurs. For any other
+non-nil value, wrapping occurs 2 characters from the right edge."
:group 'longlines
:type 'boolean)
@@ -117,8 +121,14 @@ are indicated with a symbol."
'longlines-search-function)
(add-to-list 'buffer-substring-filters 'longlines-encode-string)
(when longlines-wrap-follows-window-size
- (set (make-local-variable 'fill-column)
- (- (window-width) window-min-width))
+ (let ((dw (if (and (integerp longlines-wrap-follows-window-size)
+ (>= longlines-wrap-follows-window-size 0)
+ (< longlines-wrap-follows-window-size
+ (window-width)))
+ longlines-wrap-follows-window-size
+ 2)))
+ (set (make-local-variable 'fill-column)
+ (- (window-width) dw)))
(add-hook 'window-configuration-change-hook
'longlines-window-change-function nil t))
(let ((buffer-undo-list t)
@@ -415,9 +425,14 @@ This is called by `post-command-hook' after each command."
(defun longlines-window-change-function ()
"Re-wrap the buffer if the window width has changed.
This is called by `window-configuration-change-hook'."
- (when (/= fill-column (- (window-width) window-min-width))
- (setq fill-column (- (window-width) window-min-width))
- (longlines-wrap-region (point-min) (point-max))))
+ (let ((dw (if (and (integerp longlines-wrap-follows-window-size)
+ (>= longlines-wrap-follows-window-size 0)
+ (< longlines-wrap-follows-window-size (window-width)))
+ longlines-wrap-follows-window-size
+ 2)))
+ (when (/= fill-column (- (window-width) dw))
+ (setq fill-column (- (window-width) dw))
+ (longlines-wrap-region (point-min) (point-max)))))
;; Isearch