auctex-diffs
[Top][All Lists]
Advanced

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

[AUCTeX-diffs] GNU AUCTeX branch, master, updated. 097084443771d6716c687


From: Ikumi Keita
Subject: [AUCTeX-diffs] GNU AUCTeX branch, master, updated. 097084443771d6716c6870f2f8d329e9c0949d97
Date: Tue, 30 Oct 2018 09:38:16 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU AUCTeX".

The branch, master has been updated
       via  097084443771d6716c6870f2f8d329e9c0949d97 (commit)
      from  1ea64fffc1429db6b5b8712bb68499c48cf2124b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 097084443771d6716c6870f2f8d329e9c0949d97
Author: Ikumi Keita <address@hidden>
Date:   Tue Oct 30 22:33:14 2018 +0900

    Deal with partial ^^-quoting in preview-latex
    
    If latex outputs a multibyte character as a mixture of raw 8-bit byte
    and byte with ^^-quoting, we have to decode them as a whole.
    
    * preview.el.in (preview--decode-^^ab): Include raw 8-bit bytes which
    already exist in the string as well when decoding with the given
    coding system.
    * tests/latex/preview-latex-test.el: New test.

diff --git a/preview.el.in b/preview.el.in
index 07dad50..91b3467 100644
--- a/preview.el.in
+++ b/preview.el.in
@@ -2650,9 +2650,15 @@ Sequences of control characters such as ^^I are left 
untouched.
 Return a new string."
   ;; Since the given string can contain multibyte characters, decoding
   ;; should be performed seperately on each segment made up entirely
-  ;; with ASCII characters.
+  ;; with ASCII and raw 8-bit characters.
+  ;; Raw 8-bit characters can arise if the latex outputs multibyte
+  ;; characters with partial ^^-quoting.
   (let ((result ""))
-    (while (string-match "[\x00-\x7F]+" string)
+    (while (string-match "[\x00-\xFF]+" string)
+      ;; Strings between "\x80" and "\xFF" represent raw 8-bit, not
+      ;; unicode characters between U+0080 and U+00FF.  The latter
+      ;; are represented by "\u0080" and so on in literal string.
+      ;; See Info node `(elisp)Non-ASCII Characters in Strings'.
       (setq result
            (concat result
                    (substring string 0 (match-beginning 0))
diff --git a/tests/latex/preview-latex-test.el 
b/tests/latex/preview-latex-test.el
new file mode 100644
index 0000000..0249683
--- /dev/null
+++ b/tests/latex/preview-latex-test.el
@@ -0,0 +1,49 @@
+;;; preview-latex.el --- tests for preview-latex compatibility
+
+;; Copyright (C) 2018 Free Software Foundation, Inc.
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Code:
+
+(require 'ert)
+(require 'preview)
+
+(ert-deftest preview-error-quote-utf-8 ()
+  "`preview-error-quote' is robust against partial ^^-quoting or not.
+If a utf-8 byte sequence is partially ^^-quoted in latex output, we have
+to decode ^^ab as raw 8-bit character first and decode in the sense of
+emacs' coding system later."
+  (let (case-fold-search
+       (buffer-file-coding-system 'utf-8))
+    (dolist (str '("primárias"
+                  ;; Unicode character á is encoded in utf-8 as
+                  ;; a byte sequence \xC3 \xA1.
+                  "prim\xC3\xA1rias" "prim^^c3\xA1rias" "prim^^c3^^a1rias"))
+      (should (string-match (preview-error-quote str) "primárias")))))
+
+(ert-deftest preview-decode-^^ab-utf-8 ()
+  "Test mixture of raw 8-bit byte and byte with ^^-quoting."
+  (dolist (str '("prim\xC3\xA1rias" "prim^^c3\xA1rias" "prim^^c3^^a1rias"))
+    (should (string= (preview--decode-^^ab str 'utf-8) "primárias"))))
+
+;;; preview-latex.el ends here
+
+;; Local Variables:
+;; coding: utf-8
+;; End:

-----------------------------------------------------------------------

Summary of changes:
 preview.el.in                     | 10 ++++++--
 tests/latex/preview-latex-test.el | 49 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 2 deletions(-)
 create mode 100644 tests/latex/preview-latex-test.el


hooks/post-receive
-- 
GNU AUCTeX



reply via email to

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