emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100177: * lisp/progmodes/python.e


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100177: * lisp/progmodes/python.el (python-font-lock-syntactic-keywords):
Date: Mon, 08 Nov 2010 13:56:10 -0500
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100177
committer: Stefan Monnier <address@hidden>
branch nick: emacs-23
timestamp: Mon 2010-11-08 13:56:10 -0500
message:
  * lisp/progmodes/python.el (python-font-lock-syntactic-keywords):
  Fix handling of backslash escapes.
  (python-quote-syntax): Adjust accordingly.
modified:
  lisp/ChangeLog
  lisp/progmodes/python.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-11-08 18:42:24 +0000
+++ b/lisp/ChangeLog    2010-11-08 18:56:10 +0000
@@ -1,3 +1,9 @@
+2010-11-08  Stefan Monnier  <address@hidden>
+
+       * progmodes/python.el (python-font-lock-syntactic-keywords): (bug#7322)
+       Fix handling of backslash escapes.
+       (python-quote-syntax): Adjust accordingly.
+
 2010-11-08  Richard Levitte  <address@hidden>  (tiny patch)
 
        * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)

=== modified file 'lisp/progmodes/python.el'
--- a/lisp/progmodes/python.el  2010-08-23 00:44:55 +0000
+++ b/lisp/progmodes/python.el  2010-11-08 18:56:10 +0000
@@ -170,18 +170,9 @@
   ;; Make outer chars of matching triple-quote sequences into generic
   ;; string delimiters.  Fixme: Is there a better way?
   ;; First avoid a sequence preceded by an odd number of backslashes.
-  `((,(rx (not (any ?\\))
-         ?\\ (* (and ?\\ ?\\))
-         (group (syntax string-quote))
-         (backref 1)
-         (group (backref 1)))
-     (2 ,(string-to-syntax "\"")))     ; dummy
-    (,(rx (group (optional (any "uUrR"))) ; prefix gets syntax property
-         (optional (any "rR"))           ; possible second prefix
-         (group (syntax string-quote))   ; maybe gets property
-         (backref 2)                     ; per first quote
-         (group (backref 2)))            ; maybe gets property
-     (1 (python-quote-syntax 1))
+  `((,(concat "\\(?:\\([RUru]\\)[Rr]?\\|^\\|[^\\]\\(?:\\\\.\\)*\\)" ;Prefix.
+              "\\(?:\\('\\)'\\('\\)\\|\\(?2:\"\\)\"\\(?3:\"\\)\\)")
+     (1 (python-quote-syntax 1) nil lax)
      (2 (python-quote-syntax 2))
      (3 (python-quote-syntax 3)))
     ;; This doesn't really help.
@@ -219,9 +210,9 @@
              (eval-when-compile (string-to-syntax "|"))))))
      ;; Consider property for initial char, accounting for prefixes.
      ((or (and (= n 2)                 ; leading quote (not prefix)
-              (= (match-beginning 1) (match-end 1))) ; prefix is null
+              (not (match-end 1)))     ; prefix is null
          (and (= n 1)                  ; prefix
-              (/= (match-beginning 1) (match-end 1)))) ; non-empty
+              (match-end 1)))          ; non-empty
       (let ((font-lock-syntactic-keywords nil))
        (unless (eq 'string (syntax-ppss-context (syntax-ppss)))
          (eval-when-compile (string-to-syntax "|")))))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]