]> Kevux Git Server - fll/commitdiff
Update: Clarify FSS specifications in regards to quote behavior.
authorKevin Day <kevin@kevux.org>
Mon, 6 Mar 2023 01:44:35 +0000 (19:44 -0600)
committerKevin Day <kevin@kevux.org>
Mon, 6 Mar 2023 01:44:35 +0000 (19:44 -0600)
I noticed a problem where something that is quoted with an immediate character after it does not get processed.

Example Object and Content pair following FSS-0001:
  Object "Content".

In the above example, notice how there is a period after the quotes.
Also notice how the content has no spaces.

The current behavior would treat the "Content". as invalid.

I reviewed the specifications and found them lacking in regards to this dilemma.

I updated the specification to clarify the behavior.

With this change the FSS read functions will need to be updated.

Another example (FSS-0001):
  "Object 1" "Content 1" Content2 and_3
  "Object 2": Content.

In the above example for an FSS-001, the first row is straight-forward.
The second row is a problem.

Because there is non-white space after the quote, this cannot be treated as a quoted Object.
The behavior would then be to treat this as not quoted.
This means for row two, the object name is: "Object
The first Content is 2":
The second Content is Content.

specifications/fss-0000.txt
specifications/fss-0001.txt
specifications/fss-0005.txt
specifications/fss-0009.txt
specifications/fss-000a.txt

index 6bd51cda382506c716eea7770befb62a92bf2be7..e00e36dc9b2aaeaf3df110566e36b4e2ab8ed95c 100644 (file)
@@ -14,7 +14,9 @@ Featureless Settings Specification: 0000 - Basic:
   White space separates an Object from the Content.
   An Object may be preceded by a newline, in which case means that the Object has no Content.
   If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
-  An Object may be quoted to include whitespace where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object may be quoted to include white space where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object is only considered quoted if the first and last character of the Object are the same quote.
+  Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
 
   Content exists on the same line as the Object.
   Content is represented as a single Content column terminated by a newline.
@@ -26,7 +28,7 @@ Featureless Settings Specification: 0000 - Basic:
   Key\:
     code:"\s" = White space, except newline.
     code:"\b" = Either white space or printable, except newline.
-    code:"\q" = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
+    code:"\q" = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
     code:"\n" = Newline.
     code:"*" = Zero or more occurrences.
     code:"+" = One or more occurrences.
index 20cac45a80ea31c063807a6129f63ae42f6f431e..a3666051c51e8e6d45515d43187e03af035cdcc5 100644 (file)
@@ -14,7 +14,9 @@ Featureless Settings Specification: 0001 - Extended:
   White space separates an Object from the Content.
   An Object may be followed by a newline, in which case means that the Object has no Content.
   If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
-  An Object may be quoted to include whitespace where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object may be quoted to include white space where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object is only considered quoted if the first and last character of the Object are the same quote.
+  Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
 
   Content exists on the same line as the Object.
   Content is represented as multiple Content columns.
@@ -24,7 +26,7 @@ Featureless Settings Specification: 0001 - Extended:
   Key\:
     code:"\s" = White space, except newline.
     code:"\b" = Either white space or printable, except newline.
-    code:"\q" = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
+    code:"\q" = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
     code:"\n" = Newline.
     code:"*" = Zero or more occurrences.
     code:"+" = One or more occurrences.
index eac68fd563534e4915a2872fefb6d7a8c8383f71..0a828672ae25719b75ce0221ad7d00a1e017584c 100644 (file)
@@ -10,7 +10,7 @@
 #
 
 Featureless Settings Specification: 0005 - Somewhat Basic List:
-  This is a code"fss-0002 (Basic List)" whose Content is then processed as code:"FSS-0001 (Extended)".
+  This is a code:"FSS-0002 (Basic List)" whose Content is then processed as code:"FSS-0001 (Extended)".
 
   All code:"FSS-0002 (Basic List)" escapes are applied before any code:"FSS-0001 (Extended)" is identified.
 
index b9852a32b0a2c57c77e098f3312eb3e47386be20..d447578594cc0da16ab667e92cfbe1b55c5df237 100644 (file)
@@ -16,7 +16,9 @@ Featureless Settings Specification: 0009 - Reverse Mapping:
   White space separates an Object from the Content.
   An Object may be preceded by a newline, in which case means that the Object has no Content.
   If only printing white spaces or non-printable characters precedes a valid Object, then that Object is considered to have no Content.
-  An Object may be quoted to include whitespace where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object may be quoted to include white space where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object is only considered quoted if the first and last character of the Object are the same quote.
+  Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
 
   Content exists on the same line as the Object.
   Content is represented as a single Content column that begins at a newline.
@@ -28,7 +30,7 @@ Featureless Settings Specification: 0009 - Reverse Mapping:
   Key\:
     code:"\s" = White space, except newline.
     code:"\b" = Either white space or printable, except newline.
-    code:"\q" = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
+    code:"\q" = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
     code:"\n" = Newline.
     code:"*" = Zero or more occurrences.
     code:"+" = One or more occurrences.
index a44a215f4b1876346b602589f49a39c1fe254f5f..2a30d66902da79f0bf21cfa33829974ba370e6ea 100644 (file)
@@ -16,7 +16,9 @@ Featureless Settings Specification: 000A - Extended Reverse Mapping:
   White space separates an Object from the Content.
   An Object may be followed by a newline, in which case means that the Object has no Content.
   If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
-  An Object may be quoted to include whitespace where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object may be quoted to include white space where a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a backtick character:'`' (unicode:"U+0060") are used to quote.
+  An Object is only considered quoted if the first and last character of the Object are the same quote.
+  Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
 
   Content exists on the same line as the Object.
   Content is represented as multiple Content columns.
@@ -26,7 +28,7 @@ Featureless Settings Specification: 000A - Extended Reverse Mapping:
   Key\:
     code:"\s" = White space, except newline.
     code:"\b" = Either white space or printable, except newline.
-    code:"\q" = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
+    code:"\q" = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
     code:"\n" = Newline.
     code:"*" = Zero or more occurrences.
     code:"+" = One or more occurrences.