(set-hard-newline-properties): New fn.

(newline): Use it.
This commit is contained in:
Richard M. Stallman 1996-09-01 03:24:22 +00:00
parent b1878f4508
commit 55741b4681

View file

@ -68,13 +68,8 @@ In Auto Fill mode, if no numeric arg, break the preceding line if it's long."
(if flag (backward-char 1))
;; Mark the newline(s) `hard'.
(if use-hard-newlines
(let* ((from (- (point) (if arg (prefix-numeric-value arg) 1)))
(sticky (get-text-property from 'rear-nonsticky)))
(put-text-property from (point) 'hard 't)
;; If rear-nonsticky is not "t", add 'hard to rear-nonsticky list
(if (and (listp sticky) (not (memq 'hard sticky)))
(put-text-property from (point) 'rear-nonsticky
(cons 'hard sticky)))))
(set-hard-newline-properties
(- (point) (if arg (prefix-numeric-value arg) 1)) (point)))
;; If the newline leaves the previous line blank,
;; and we have a left margin, delete that from the blank line.
(or flag
@ -92,6 +87,14 @@ In Auto Fill mode, if no numeric arg, break the preceding line if it's long."
(move-to-left-margin nil t)))
nil)
(defun set-hard-newline-properties (from to)
(let ((sticky (get-text-property from 'rear-nonsticky)))
(put-text-property from to 'hard 't)
;; If rear-nonsticky is not "t", add 'hard to rear-nonsticky list
(if (and (listp sticky) (not (memq 'hard sticky)))
(put-text-property from (point) 'rear-nonsticky
(cons 'hard sticky)))))
(defun open-line (arg)
"Insert a newline and leave point before it.
If there is a fill prefix and/or a left-margin, insert them on the new line