From da7d231b345244fd25ac63ab614339b5e86a7264 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Fri, 3 Jan 2003 22:46:06 +0000 Subject: (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 . --- lisp/simple.el | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'lisp') diff --git a/lisp/simple.el b/lisp/simple.el index 6331be1876..d6583c8f96 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -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 @@ With arg N, insert N newlines." (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))) -- cgit v1.2.3