# HG changeset patch # User Kim F. Storm # Date 1041633966 0 # Node ID 5dbb47300a5b823583097ab511a5ea8d16c81514 # Parent 1f99e20d4977d1d1a76b614474e7cdae29ea8203 (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 . diff -r 1f99e20d4977 -r 5dbb47300a5b lisp/simple.el --- 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)))