summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/progmodes/sh-script.el6
-rwxr-xr-xtest/indent/shell.sh3
2 files changed, 8 insertions, 1 deletions
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 02d329d794d..7f89ab2762c 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -2115,7 +2115,11 @@ May return nil if the line should not be treated as continued."
;; sh-indent-after-done: aligned completely differently.
(`(:after . "in") (sh-var-value 'sh-indent-for-case-label))
;; sh-indent-for-continuation: Line continuations are handled differently.
- (`(:after . ,(or `"(" `"{" `"[")) (sh-var-value 'sh-indent-after-open))
+ (`(:after . ,(or `"(" `"{" `"["))
+ (if (not (looking-at ".[ \t]*[^\n \t#]"))
+ (sh-var-value 'sh-indent-after-open)
+ (goto-char (1- (match-end 0)))
+ `(column . ,(current-column))))
;; sh-indent-after-function: we don't handle it differently.
))
diff --git a/test/indent/shell.sh b/test/indent/shell.sh
index b0f69bd9720..dc184ea0d77 100755
--- a/test/indent/shell.sh
+++ b/test/indent/shell.sh
@@ -3,6 +3,9 @@
setlock -n /tmp/getmail.lock && echo getmail isn\'t running
+toto=$(grep hello foo |
+ wc)
+
# adsgsdg
if foo; then