diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index fdb841cfffd..be8f36def58 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el @@ -2726,6 +2726,7 @@ PARSE-DATA is used to save status between calls in a loop." (if (listp indent) (setq indent (car indent))) (cond ((and (looking-at (rx (sequence (eval cperl--label-rx) (not (in ":"))))) + (null (get-text-property (point) 'syntax-type)) (not (looking-at (rx (eval cperl--false-label-rx))))) (and (> indent 0) (setq indent (max cperl-min-label-indent diff --git a/test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts b/test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts index 3a779442a8a..65ce757d048 100644 --- a/test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts +++ b/test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts @@ -123,3 +123,25 @@ sub foo ( return $a + $b + $in1; } =-=-= + +Name: cperl-false-label-in-regex + +=-= +# -*- mode: cperl -*- +# John Ciolfi reported as Bug#79271 +my $str =~ s/^ + (Field1: [^\n]+) \s* + Field2: \s* (\S+) \s* + //xsm; +=-=-= + +Name: cperl-false-label-in-qw + +=-= +# Related to cperl-false-label-in-regex / Bug#79271 +my @chunks = qw( + sub + LABEL: + more words + ); +=-=-=