From f22d76a470415357d50cbad7b2a1eadcca9dc8e4 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Wed, 20 Nov 2024 22:54:05 -0600 Subject: [PATCH] Bugfix: IKI and EKI specifications, clarifying backslash escaping. I made several improvements in my previous commit e9621b09db34cfd9ac6264c77068c34afa5bfb17. I added documentation regarding the backslashes similar to how the FSS backslashes are handled. For the IKI and EKI specifications, this is not the case. Update the specification to clarify this situation. Update the examples to better describe this. Fix the examples to be accurate. --- specifications/eki.txt | 8 +++++--- specifications/iki.txt | 14 ++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/specifications/eki.txt b/specifications/eki.txt index 7ef68b4..2d91d01 100644 --- a/specifications/eki.txt +++ b/specifications/eki.txt @@ -1,7 +1,7 @@ # fss-0002 iki-0000 # # license open-standard-license-1.0-or-later -# version 2024/11/19 +# version 2024/11/21 # # This file (assumed to be named eki.txt) can be more easily read using the following iki_read commands: # iki_read eki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"' @@ -63,7 +63,9 @@ EKI Specifications: These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape". - These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".` + These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape". + + These slashes \ \\ \\\ are not escaped because there is now quote immediately after it.` Objects (also called vocabulary or variable name) would be\: 1.1) italic @@ -95,7 +97,7 @@ EKI Specifications: 8.1) " escape 9.1) \\ 10.1) \" escape - 11.1) \\\\" escape + 11.1) \\\ 12.1) \' escape 13.1) \\' escape 14.1) \\\' escape diff --git a/specifications/iki.txt b/specifications/iki.txt index 884d6bf..e1877c3 100644 --- a/specifications/iki.txt +++ b/specifications/iki.txt @@ -1,7 +1,7 @@ # fss-0002 iki-0000 # # license open-standard-license-1.0-or-later -# version 2024/11/19 +# version 2024/11/21 # # This file (assumed to be named iki.txt) can be more easily read using the following iki_read commands: # iki_read iki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"' @@ -41,9 +41,9 @@ IKI Specifications: The backslashes used for escaping quotes use character:"\\" (unicode:"U+005C"). Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally. One backslash escapes the valid quote, resulting in the quote being part of the italic:"Content". - Two backslash escape the backslash, resulting in the backslash (but not the quote) being part of the italic:"Content". - Three backslash escapes or more escaped the quote and the first backslash. - Every backslash after the third is used literally and does no escape anything. + Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the italic:"Content". + An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped. + An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped. The IKI format will use code:"iki-0000" to represent an IKI with no explicitly defined vocabulary. Whereas code:"iki-0001" and beyond represent a specific IKI vocabulary. @@ -88,7 +88,9 @@ IKI Specifications: These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape". - These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".` + These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape". + + These slashes \ \\ \\\ are not escaped because there is now quote immediately after it.` Objects (also called vocabulary or variable name) would be\: 1.1) italic @@ -116,7 +118,7 @@ IKI Specifications: 7.1) " escape 8.1) \ 9.1) \" escape - 10.1) \\\\" escape + 10.1) \\\ 11.1) \' escape 12.1) \\' escape 13.1) \\\' escape -- 1.8.3.1