Extend 'indent-relative' when its arg is non-nil

* lisp/indent.el (indent-relative-maybe): New obsolete alias.
(indent-relative-first-indent-point): Renamed from
'indent-relative-maybe'.
(indent-relative): Now accepts an additional optional argument.
The first argument was renamed to FIRST-ONLY.  Doc fix.  Support
the additional arg.  (Bug#24766)
This commit is contained in:
Alex 2016-11-18 11:02:55 +02:00 committed by Eli Zaretskii
parent 67df076793
commit a9973a3c16

View file

@ -559,26 +559,32 @@ column to indent to; if it is nil, use one of the three methods above."
;; by hand.
(setq deactivate-mark t))
(defun indent-relative-maybe ()
"Indent a new line like previous nonblank line.
If the previous nonblank line has no indent points beyond the
column point starts at, this command does nothing.
(define-obsolete-function-alias 'indent-relative-maybe
'indent-relative-first-indent-point "26.1")
(defun indent-relative-first-indent-point ()
"Indent the current line like the previous nonblank line.
Indent to the first indentation position in the previous nonblank
line if that position is greater than the current column.
See also `indent-relative'."
(interactive)
(indent-relative t))
(defun indent-relative (&optional unindented-ok)
(defun indent-relative (&optional first-only unindented-ok)
"Space out to under next indent point in previous nonblank line.
An indent point is a non-whitespace character following whitespace.
The following line shows the indentation points in this line.
^ ^ ^ ^ ^ ^ ^ ^ ^
If the previous nonblank line has no indent points beyond the
column point starts at, `tab-to-tab-stop' is done instead, unless
this command is invoked with a numeric argument, in which case it
does nothing.
If FIRST-ONLY is non-nil, then only the first indent point is
considered.
See also `indent-relative-maybe'."
If the previous nonblank line has no indent points beyond the
column point starts at, then `tab-to-tab-stop' is done, if both
FIRST-ONLY and UNINDENTED-OK are nil, otherwise nothing is done
in this case.
See also `indent-relative-first-indent-point'."
(interactive "P")
(if (and abbrev-mode
(eq (char-syntax (preceding-char)) ?w))
@ -594,17 +600,18 @@ See also `indent-relative-maybe'."
(if (> (current-column) start-column)
(backward-char 1))
(or (looking-at "[ \t]")
unindented-ok
first-only
(skip-chars-forward "^ \t" end))
(skip-chars-forward " \t" end)
(or (= (point) end) (setq indent (current-column))))))
(if indent
(let ((opoint (point-marker)))
(indent-to indent 0)
(if (> opoint (point))
(goto-char opoint))
(move-marker opoint nil))
(tab-to-tab-stop))))
(cond (indent
(let ((opoint (point-marker)))
(indent-to indent 0)
(if (> opoint (point))
(goto-char opoint))
(move-marker opoint nil)))
(unindented-ok nil)
(t (tab-to-tab-stop)))))
(defcustom tab-stop-list nil
"List of tab stop positions used by `tab-to-tab-stop'.