diff options
| author | Matthias Melcher <github@matthiasm.com> | 2023-07-14 18:46:52 +0200 |
|---|---|---|
| committer | Matthias Melcher <github@matthiasm.com> | 2023-07-14 18:46:59 +0200 |
| commit | 92a1cacd621bdca6145ede55e8187eca28ea4d3f (patch) | |
| tree | 6b86d79c3a9cd44574946096904acde7a2e4a028 | |
| parent | f8ebde4da4b8a84d67d319f03d7c8c1bc7c22298 (diff) | |
FLUID: File Format Fault Fixes.
| -rw-r--r-- | fluid/README_fl.txt | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/fluid/README_fl.txt b/fluid/README_fl.txt index f1105081a..b054f01ca 100644 --- a/fluid/README_fl.txt +++ b/fluid/README_fl.txt @@ -50,7 +50,7 @@ File Structure -------------- .fl files start with a 'Header', followed by a list of 'Options', followed -by a hierarchy of 'Type' entires, the 'Tree'. All elements besides the Header +by a hierarchy of 'Type' entries, the 'Tree'. All elements besides the Header are composed of 'Words', 'Strings', and 'Groups'. @@ -64,8 +64,8 @@ Simple Words that are composed of 'a'-'z', 'A'-'Z', '0'-'9', and '_' only are written verbatim, followed by a space or newline. All other character sequences are bracketed between between ‘{‘ and ‘}’ without -padding spaces. For example, "" is written as ‘{}’, and ".hello" is written as -`{.hello}`. +padding spaces. For example, an empty word with no characters is written +as '{}', and ".hello" is written as '{.hello}'. The special characters ‘\’ and ‘#’ are escaped by prepending the ‘\’ character, so "#define" is written as '{\#define}`. @@ -73,14 +73,15 @@ so "#define" is written as '{\#define}`. The characters ‘{‘ and ‘}’ are also escaped with a '\' unless every opening ‘{‘ in the Word is matched with a closing ‘}’. -Note: line endings are copied verbatim and become significant within a Word. +Note: line endings and the following indents are copied verbatim and become + significant within a Word. Strings ------- Strings are generated with 'printf' statements in the hope that the -generated text can be read back as one Word, followed by a corresponding +generated text can be read back as one Word, set against a corresponding 'scanf' to retrieve the original values. Note: As there are no defined start and end markers to a String, a reader must @@ -126,8 +127,8 @@ Note: the version number corresponds not so much to the version of FLUID, but Note: if the version number is above the internal version number, FLUID will report an error and continue reading, hoping for the best. - There are no other uses inside the FLUID reader except for fltk2 features - which is beyond the scope of this document. + There are no other uses inside the FLUID reader except for features for + the discontinued fltk2 which is beyond the scope of this document. Note: fdesign files (.fd) start with the text "Magic:". FLUID can read these files, but Forms/XForms files are beyond the scope of this document. @@ -173,7 +174,13 @@ an Option is missing, a default value is assumed. "code_name" <word> : can be the full filename, or just the extension e.g. “.cxx” - "snap" <word> : ignored + "snap" <word> : starting in V1.4 since May 2023, the 'snap' keyword can be + used to store one layout suite with three presets. 'snap' if followed by + a '{', then a 'name' word followed by the name of the suite, and three + 'preset' words, each followed by a '{', a version number, and 24 + integers (V1), followed by a '}'. 'snap' is claosed with a trailin '}'. + As with other attributes, the content of 'snap' appears like a single + word to unsuspecting readers. "gridx" <word> : ignored @@ -199,7 +206,7 @@ Tree If a keyword is read that is not in the Option list, we start reading Types. Types represent all possible entries in the hierarchy including C functions, class definitions, and of course all Widgets. A Type is any of the supported -Widgets classes, or one of the following: +Widgets classes, or one of the following (case sensitive): Function, code, codeblock, decl, data, declblock, comment, class, widget_class @@ -219,7 +226,7 @@ another opening ‘{‘, followed by a list of Types, followed by a closing ‘} The file ends when there are no more Types. -Note: the "class" Type has an additional Word following immediately after +Note: the "class" Type may have an additional Word following immediately after the keyword. It contains the prefix for the class. A class definition may be written as: @@ -227,7 +234,10 @@ Note: the "class" Type has an additional Word following immediately after or without a prefix as - class {} MyOtherClass { ...properties... } { ...children... } + class MyOtherClass { ...properties... } { ...children... } + + According to the source code, we know if the word after class is a prefix + if the next word is not a lone '{'. We apologize for the inconvenience. Types |
