Seeking clarification of Desktop Entry Specification
sbergman at redhat.com
Fri Apr 24 10:37:59 UTC 2020
I have three questions regarding
(1) #basic-format says "A file is interpreted as a series of lines that
are separated by linefeed characters." #value-types says "The escape
sequences \s, \n, \t, \r, and \\ are supported for values of type string
and localestring, meaning ASCII space, newline, tab, carriage return,
and backslash, respectively." Even though the former is about the
structure of the file itself while the latter is about the encoded
payload, it is confusing that one talks about "linefeed" while the other
talks about "newline" and "carriage return". Should "newline" read
"linefeed" (meaning U+000A LINE FEED) instead?
(2) #entries says "Space before and after the equals sign should be
ignored". Does that mean just U+0020 SPACE, or also other kinds of
white space, like U+0009 CHARACTER TABULATION?
(3) It is unclear exactly when the escape sequences mentioned in (1)
need to be used in string/localestring values:
* "\\" apparently needs to be used at least whenever the following
character is one of "s", "n", "t", "r", or "\". But what about
sequences like "\a", does it render the file ill-formed, or is it an
accepted shortcut for the fully escaped "\\a"?
* "\n" apparently needs to always be used (at least with the "newline"
vs. "linefeed" clarification from (1)).
* "\s" (and maybe also "\t" and "\r"?) apparently needs to be used at
the very start of a string/localestring value (see (2)). But does it
also need to be used e.g. at the very end of such a value? (From common
practice, it appears that it at least doesn't need to be used for a
space somewhere in the middle of such a value.)
* What about "\t" and "\r"?
(These questions occurred to me when doing
"Properly escape desktop file string values".)
More information about the xdg