Mercurial > emacs
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)))