X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/6f7dde8273383c74cc722196c9b37c04faeb263f..307f5c57467e8e967f795d47ec885bf19fd5317f:/lisp/indent.el diff --git a/lisp/indent.el b/lisp/indent.el index 2d223b05ad..9e84dfe13e 100644 --- a/lisp/indent.el +++ b/lisp/indent.el @@ -1,6 +1,7 @@ ;;; indent.el --- indentation commands for Emacs -;; Copyright (C) 1985, 1995, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -18,8 +19,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -29,7 +30,7 @@ ;;; Code: (defgroup indent nil - "Indentation commands" + "Indentation commands." :group 'editing) (defcustom standard-indent 4 @@ -164,14 +165,18 @@ interactively or with optional argument FORCE, it will be fixed." (interactive (list (prefix-numeric-value current-prefix-arg) t)) (beginning-of-line n) (skip-chars-forward " \t") - (let ((lm (current-left-margin)) - (cc (current-column))) - (cond ((> cc lm) - (if (> (move-to-column lm force) lm) - ;; If lm is in a tab and we are not forcing, move before tab - (backward-char 1))) - ((and force (< cc lm)) - (indent-to-left-margin))))) + (if (minibufferp (current-buffer)) + (if (save-excursion (beginning-of-line) (bobp)) + (goto-char (minibuffer-prompt-end)) + (beginning-of-line)) + (let ((lm (current-left-margin)) + (cc (current-column))) + (cond ((> cc lm) + (if (> (move-to-column lm force) lm) + ;; If lm is in a tab and we are not forcing, move before tab + (backward-char 1))) + ((and force (< cc lm)) + (indent-to-left-margin)))))) ;; This used to be the default indent-line-function, ;; used in Fundamental Mode, Text Mode, etc. @@ -194,11 +199,13 @@ Args FROM and TO are optional; default is the whole buffer." (forward-line 1)) (move-marker to nil))) -(defun set-left-margin (from to lm) +(defun set-left-margin (from to width) "Set the left margin of the region to WIDTH. -If `auto-fill-mode' is active, re-fill the region to fit the new margin." +If `auto-fill-mode' is active, re-fill the region to fit the new margin. + +Interactively, WIDTH is the prefix argument, if specified. +Without prefix argument, the command prompts for WIDTH." (interactive "r\nNSet left margin to column: ") - (if (interactive-p) (setq lm (prefix-numeric-value lm))) (save-excursion ;; If inside indentation, start from BOL. (goto-char from) @@ -210,21 +217,23 @@ If `auto-fill-mode' is active, re-fill the region to fit the new margin." (setq to (point-marker))) ;; Delete margin indentation first, but keep paragraph indentation. (delete-to-left-margin from to) - (put-text-property from to 'left-margin lm) - (indent-rigidly from to lm) + (put-text-property from to 'left-margin width) + (indent-rigidly from to width) (if auto-fill-function (save-excursion (fill-region from to nil t t))) (move-marker to nil)) -(defun set-right-margin (from to lm) +(defun set-right-margin (from to width) "Set the right margin of the region to WIDTH. -If `auto-fill-mode' is active, re-fill the region to fit the new margin." +If `auto-fill-mode' is active, re-fill the region to fit the new margin. + +Interactively, WIDTH is the prefix argument, if specified. +Without prefix argument, the command prompts for WIDTH." (interactive "r\nNSet right margin to width: ") - (if (interactive-p) (setq lm (prefix-numeric-value lm))) (save-excursion (goto-char from) (skip-chars-backward " \t") (if (bolp) (setq from (point)))) - (put-text-property from to 'right-margin lm) + (put-text-property from to 'right-margin width) (if auto-fill-function (save-excursion (fill-region from to nil t t)))) (defun alter-text-property (from to prop func &optional object) @@ -279,12 +288,10 @@ to change the margin by, in characters. A negative argument decreases the right margin width. If `auto-fill-mode' is active, re-fill the region to fit the new margin." (interactive "r\nP") - (if (interactive-p) - (setq inc (if inc (prefix-numeric-value current-prefix-arg) - standard-indent))) + (setq inc (if inc (prefix-numeric-value inc) standard-indent)) (save-excursion (alter-text-property from to 'right-margin - (lambda (v) (+ inc (or v 0)))) + (lambda (v) (+ inc (or v 0)))) (if auto-fill-function (fill-region from to nil t t))))