Thread (13 messages) 13 messages, 2 authors, 2024-03-21

Re: [PATCH v4 4/4] config.txt: describe handling of whitespace further

From: Eric Sunshine <hidden>
Date: 2024-03-21 05:11:38

On Thu, Mar 21, 2024 at 12:17 AM Dragan Simic [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Make it more clear what the whitespace characters are in the context of git
configuration files, and significantly improve the description of the leading
and trailing whitespace handling, especially how it works out together with
the presence of inline comments.

Helped-by: Junio C Hamano [off-list ref]
Signed-off-by: Dragan Simic <redacted>
---
diff --git a/Documentation/config.txt b/Documentation/config.txt
@@ -63,13 +64,15 @@ the variable is the boolean "true").
 A line that defines a value can be continued to the next line by
+ending it with a `\`; the backslash and the end-of-line are stripped.
+Leading whitespace characters before 'name =' are discarded.
+The portion of the line after the first comment character, including
+the comment character itself, is discarded.  Unless enclosed in double
+quotation marks (`"`), any leading or trailing whitespace characters
+surrounding 'value' are discarded.  Internal whitespace characters
+within 'value' are retained verbatim.
I find this statement confusing and ambiguous:

    Unless enclosed in double quotation marks (`"`), any leading or
    trailing whitespace characters surrounding 'value' are discarded.

since it might imply that the shown <SP> and <TAB> whitespace is
retained outside the quotes, as well:

    key =<SP><TAB>" string "<SP>

It should be possible to rephrase it to be more definite, while
dropping the final sentence altogether. Perhaps:

    Whitespace surrounding `name`, `=` and `value` is ignored. If
    `value` is surrounding by double quotation marks (`"`), all
    characters within the quoted string are retained verbatim,
    including whitespace. Comments starting with either `#` or `;` and
    extending to the end of line are discarded. A line that defines a
    value can be continued to the next line by ending it with a `\`;
    the backslash and the end-of-line are stripped.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help