"*Controls the operation of the TAB key.
If t, hitting TAB always just indents the current line.
If nil, hitting TAB indents the current line if point is at the left margin
- or in the line's indentation, otherwise it insert a `real' tab character."
+ or in the line's indentation, otherwise it insert a \"real\" tab character."
:group 'indent
:type '(choice (const nil) (const t) (const always)))
;; so we force it to always insert a tab here.
(eq indent-line-function 'indent-to-left-margin)
(and (not tab-always-indent)
- (> (current-column) (current-indentation))))
+ (or (> (current-column) (current-indentation))
+ (eq this-command last-command))))
(insert-tab arg))
;; Those functions are meant specifically for tabbing and not for
;; indenting, so we can't pass them to indent-according-to-mode.
((and force (< cc lm))
(indent-to-left-margin)))))
-;; This is the default indent-line-function,
+;; This used to be the default indent-line-function,
;; used in Fundamental Mode, Text Mode, etc.
(defun indent-to-left-margin ()
"Indent current line to the column given by `current-left-margin'."
With optional argument, move forward N-1 lines first.
From the beginning of the line, moves past the left-margin indentation, the
fill-prefix, and any indentation used for centering or right-justifying the
-line, but does not move past any whitespace that was explicitly inserted
+line, but does not move past any whitespace that was explicitly inserted
\(such as a tab used to indent the first line of a paragraph)."
(interactive "p")
(beginning-of-line n)
(skip-chars-forward " \t")
;; Skip over fill-prefix.
- (if (and fill-prefix
+ (if (and fill-prefix
(not (string-equal fill-prefix "")))
(if (equal fill-prefix
- (buffer-substring
+ (buffer-substring
(point) (min (point-max) (+ (length fill-prefix) (point)))))
(forward-char (length fill-prefix)))
(if (and adaptive-fill-mode adaptive-fill-regexp