changeset 49032:5dbb47300a5b

(split-line): If present, copy fill-prefix from current line to new line. Don't copy if prefix arg. From Lisp, arg may be an alternative prefix string to copy. Inspired by Ehud Karni <ehud@unix.mvs.co.il>.
author Kim F. Storm <storm@cua.dk>
date Fri, 03 Jan 2003 22:46:06 +0000
parents 1f99e20d4977
children 4a660dffff16
files lisp/simple.el
diffstat 1 files changed, 19 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Fri Jan 03 21:12:01 2003 +0000
+++ b/lisp/simple.el	Fri Jan 03 22:46:06 2003 +0000
@@ -1,6 +1,7 @@
 ;;; simple.el --- basic editing commands for Emacs
 
-;; Copyright (C) 1985, 86, 87, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002
+;; Copyright (C) 1985, 86, 87, 93, 94, 95, 96, 97, 98, 99,
+;;               2000, 2001, 2002, 2003
 ;;        Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -180,13 +181,26 @@
     (goto-char loc)
     (end-of-line)))
 
-(defun split-line ()
-  "Split current line, moving portion beyond point vertically down."
-  (interactive "*")
+
+(defun split-line (&optional arg)
+  "Split current line, moving portion beyond point vertically down.
+If the current line starts with `fill-prefix', insert it on the new
+line as well.  With prefix arg, don't insert fill-prefix on new line.
+
+When called from Lisp code, the arg may be a prefix string to copy."
+  (interactive "*P")
   (skip-chars-forward " \t")
   (let ((col (current-column))
-	(pos (point)))
+	(pos (point))
+	(beg (line-beginning-position))
+	(prefix (cond ((stringp arg) arg)
+		      (arg nil)
+		      (t fill-prefix))))
     (newline 1)
+    (if (and (stringp prefix)
+	     (string-equal prefix
+			   (buffer-substring beg (+ beg (length prefix)))))
+	(insert-and-inherit prefix))
     (indent-to col 0)
     (goto-char pos)))