diff options
Diffstat (limited to 'lisp/progmodes/cperl-mode.el')
-rw-r--r-- | lisp/progmodes/cperl-mode.el | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 7a10104120c..e8678fe6281 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el @@ -1742,6 +1742,13 @@ or as help on variables `cperl-tips', `cperl-problems', (setq outline-regexp cperl-outline-regexp) (make-local-variable 'outline-level) (setq outline-level 'cperl-outline-level) + (make-local-variable 'add-log-current-defun-function) + (setq add-log-current-defun-function + (lambda () + (save-excursion + (if (re-search-backward "^sub[ \t]+\\([^({ \t\n]+\\)" nil t) + (match-string-no-properties 1))))) + (make-local-variable 'paragraph-start) (setq paragraph-start (concat "^$\\|" page-delimiter)) (make-local-variable 'paragraph-separate) @@ -1832,7 +1839,7 @@ or as help on variables `cperl-tips', `cperl-problems', (make-local-variable 'cperl-syntax-state) (setq cperl-syntax-state nil) ; reset syntaxification cache (if cperl-use-syntax-table-text-property - (if (boundp 'syntax-propertize-function) + (if (eval-when-compile (fboundp 'syntax-propertize-rules)) (progn ;; Reset syntaxification cache. (set (make-local-variable 'cperl-syntax-done-to) nil) @@ -3113,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 |