]> git.eshelyaron.com Git - emacs.git/commitdiff
(perl-font-lock-syntactic-keywords): Correctly match / regexp matchers
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 16 Aug 2007 14:20:37 +0000 (14:20 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 16 Aug 2007 14:20:37 +0000 (14:20 +0000)
as first char on a line when fontifying only that line.

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

index 16edb115181c44e780cbf1dbdd3d9b67c2555594..33b2c21eeed785d00267d7090437f40ac26562ad 100644 (file)
@@ -1,5 +1,9 @@
 2007-08-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * progmodes/perl-mode.el (perl-font-lock-syntactic-keywords):
+       Correctly match / regexp matchers as first char on a line when
+       fontifying only that line.
+
        * emacs-lisp/cl-macs.el (cl-transform-lambda): Preserve the match-data.
 
 2007-08-16  Glenn Morris  <rgm@gnu.org>
index cfef0eedfe44113ae4001d3a2c00985bb3d27641..f2feff595bba6f767144fc4d98565a84a51a8d36 100644 (file)
@@ -267,8 +267,16 @@ The expansion is entirely correct because it uses the C preprocessor."
     ("^[ \t]*format.*=[ \t]*\\(\n\\)" (1 '(7)))
     ;; Funny things in sub arg specifications like `sub myfunc ($$)'
     ("\\<sub\\s-+\\S-+\\s-*(\\([^)]+\\))" 1 '(1))
-    ;; regexp and funny quotes
-    ("[?:.,;=!~({[][ \t\n]*\\(/\\)" (1 '(7)))
+    ;; Regexp and funny quotes.
+    ("\\(?:[?:.,;=!~({[]\\|\\(^\\)\\)[ \t\n]*\\(/\\)"
+     (2 (if (and (match-end 1)
+                 (save-excursion
+                   (goto-char (match-end 1))
+                   (skip-chars-backward " \t\n")
+                   (not (memq (char-before)
+                              '(?? ?: ?. ?, ?\; ?= ?! ?~ ?\( ?\[)))))
+            nil ;; A division sign instead of a regexp-match.
+          '(7))))
     ("\\(^\\|[?:.,;=!~({[ \t]\\)\\([msy]\\|q[qxrw]?\\|tr\\)\\>\\s-*\\([^])}> \n\t]\\)"
      ;; Nasty cases:
      ;; /foo/m  $a->m  $#m $m @m %m