* lisp/progmodes/cperl-mode.el (cperl-calculate-indent): Do not stagger
authorSam Steingold <sds@gnu.org>
Thu, 27 Dec 2012 16:33:06 +0000 (11:33 -0500)
committerSam Steingold <sds@gnu.org>
Thu, 27 Dec 2012 16:33:06 +0000 (11:33 -0500)
continuations, see <http://stackoverflow.com/questions/3582436>.

lisp/ChangeLog
lisp/progmodes/cperl-mode.el

index f058c86..f5dd9fa 100644 (file)
@@ -1,8 +1,13 @@
+2012-12-27  Sam Steingold  <sds@gnu.org>
+
+       * progmodes/cperl-mode.el (cperl-calculate-indent): Do not stagger
+       continuations, see <http://stackoverflow.com/questions/3582436>.
+
 2012-12-27  Dmitry Gutov  <dgutov@yandex.ru>
 
        * progmodes/ruby-mode.el (ruby-indent-beg-re): Only allow "class",
        "module" and "def" to have indentation before them.  Regression
-       from 109911 (see the new test).
+       from Bug#109911 (see the new test).
 
        * progmodes/ruby-mode.el: Bump the version to 1.2 (Bug#13200).
 
index 0a952cf..437235a 100644 (file)
@@ -3120,8 +3120,10 @@ and closing parentheses and brackets."
         ((eq 'continuation (elt i 0))
          ;; [continuation statement-start char-after is-block is-brace]
          (goto-char (elt i 1))         ; statement-start
-         (+ (if (memq (elt i 2) (append "}])" nil)) ; char-after
-                0                      ; Closing parenth
+         (+ (if (or (memq (elt i 2) (append "}])" nil)) ; char-after
+                     (eq 'continuation ; do not stagger continuations
+                         (elt (cperl-sniff-for-indent parse-data) 0)))
+                0 ; Closing parenth or continuation of a continuation
               cperl-continued-statement-offset)
             (if (or (elt i 3)          ; is-block
                     (not (elt i 4))            ; is-brace