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.
This commit is contained in:
parent
3ef0c16484
commit
e716538911
3 changed files with 19 additions and 1 deletions
|
@ -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))
|
||||
|
|
5
test/data/xdg/l10n.desktop
Normal file
5
test/data/xdg/l10n.desktop
Normal file
|
@ -0,0 +1,5 @@
|
|||
# localized strings
|
||||
[Desktop Entry]
|
||||
Comment=Cheers
|
||||
Comment[en_US@piglatin]=Eerschay
|
||||
Comment[sv]=Skål
|
|
@ -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 \";\"."
|
||||
|
|
Loading…
Add table
Reference in a new issue