emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master e716538: Avoid looking at localized strings


From: Mark Oteiza
Subject: [Emacs-diffs] master e716538: Avoid looking at localized strings
Date: Sat, 9 Sep 2017 23:15:41 -0400 (EDT)

branch: master
commit e716538911227e1bedb48978b8025106abce3734
Author: Mark Oteiza <address@hidden>
Commit: Mark Oteiza <address@hidden>

    Avoid looking at localized strings
    
    * lisp/xdg.el (xdg-desktop-read-group): Add condition to catch
    localized strings.
    * test/lisp/xdg-tests.el (xdg-desktop-parsing): Add test to ensure
    parsing l10n strings doesn't error but is essentially a no-op.
---
 lisp/xdg.el                |  2 ++
 test/data/xdg/l10n.desktop |  5 +++++
 test/lisp/xdg-tests.el     | 13 ++++++++++++-
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/lisp/xdg.el b/lisp/xdg.el
index 102e34c..8a475ce 100644
--- a/lisp/xdg.el
+++ b/lisp/xdg.el
@@ -177,6 +177,8 @@ This should be called at the beginning of a line."
        ((= (following-char) ?#))
        ((looking-at xdg-desktop-entry-regexp)
         (puthash (match-string 1) (match-string 2) res))
+       ;; Filter localized strings
+       ((looking-at (rx (group-n 1 (+ (in alnum "-"))) (* blank) "[")))
        (t (error "Malformed line: %s"
                  (buffer-substring (point) (point-at-eol)))))
       (forward-line))
diff --git a/test/data/xdg/l10n.desktop b/test/data/xdg/l10n.desktop
new file mode 100644
index 0000000..42da839
--- /dev/null
+++ b/test/data/xdg/l10n.desktop
@@ -0,0 +1,5 @@
+# localized strings
+[Desktop Entry]
+Comment=Cheers
address@hidden
+Comment[sv]=Skål
diff --git a/test/lisp/xdg-tests.el b/test/lisp/xdg-tests.el
index 4822a05..2630e1e 100644
--- a/test/lisp/xdg-tests.el
+++ b/test/lisp/xdg-tests.el
@@ -45,7 +45,18 @@
     (expand-file-name "wrong.desktop" xdg-tests-data-dir)))
   (should-error
    (xdg-desktop-read-file
-    (expand-file-name "malformed.desktop" xdg-tests-data-dir))))
+    (expand-file-name "malformed.desktop" xdg-tests-data-dir)))
+  (let ((tab (xdg-desktop-read-file
+              (expand-file-name "l10n.desktop" xdg-tests-data-dir)))
+        (env (getenv "LC_MESSAGES")))
+    (unwind-protect
+        (progn
+          (setenv "LC_MESSAGES" nil)
+          (should (equal (gethash "Comment" tab) "Cheers"))
+          ;; l10n omitted
+          (setenv "LC_MESSAGES" "sv_SE.UTF-8")
+          (should-not (equal (gethash "Comment" tab) "Skål")))
+      (setenv "LC_MESSAGES" env))))
 
 (ert-deftest xdg-desktop-strings-type ()
   "Test desktop \"string(s)\" type: strings delimited by \";\"."



reply via email to

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