Step 1, generate the key (-d is for DSA, no -d is for RSA)
- ssh-keygen -d
+ ssh-keygen -d
Step 2, Skipping password, just press enter on password prompt to leave it empty so that passwordless handshaking can work.
This should create the .ssh/id_dsa and the .ssh/id_dsa.pub files, and this may take some time, depending on your hardware.
@@ -533,14 +533,14 @@
remotehost = the address used to connect to the server /yourhome/directiry = the path to your home directory
Step 4, now you can delete the id_dsa.pub file from the remote host and exit.
- rm id_dsa.pub
- exit
+ rm id_dsa.pub
+ exit
Step 5, DONE
You should be able to ssh to the remote host without a password now, given that the .ssh/id_dsa file and the .ssh/id_dsa.pub file exist on your client machine for the user you intend to connect with.
@@ -550,10 +550,10 @@
Now that you can handshake from the above example, you should now be able to run the sshfs command and even put it in a logon or boot script, without exposing your password
Mounting from sshfs
- sshfs username@remotehost:/remote/directory/ /local/directory/
Unmounting from sshfs
- fusermount -u /local/directory/
+ fusermount -u /local/directory/
If you did not use the SSH Handshaking above, then you will be prompted for a password on the sshfs command
If you did use the SSH Handshaking above, and are still being asked for a password, then there is a problem with the RSA/DSA keys
@@ -634,26 +634,26 @@
Lets say you wanted to encrypt a partition (/dev/sda6) and use a key file.
Fill the drive with random data (this will delete all data on the device /dev/sda6):
- dd if=/dev/urandom of=/dev/sda6
+ dd if=/dev/urandom of=/dev/sda6
Create a keyfile using randomly generated data:
- dd if=/dev/urandom of=~/some.key bs=1c count=512
+ dd if=/dev/urandom of=~/some.key bs=1c count=512
Use the keyfile to encrypt the device with LUKS encryption:
- cryptsetup -c aes-xts-plain:sha512 -s 512 luksFormat /dev/sda6 ~/some.key
+ cryptsetup -c aes-xts-plain:sha512 -s 512 luksFormat /dev/sda6 ~/some.key
Now that the device is encrypted, decrypt the device so that the device can be properly formatted (calling the decrypted device: some_name_here):
- cryptsetup luksOpen /dev/sda6 some_name_here -d ~/some-key
+ cryptsetup luksOpen /dev/sda6 some_name_here -d ~/some-key
Format the decypted device (this example format creates an ext4 filesystem with a label of: some_fs_label):
- mkfs.ext4 -L some_fs_label /dev/mapper/some_name_here
+ mkfs.ext4 -L some_fs_label /dev/mapper/some_name_here
@@ -661,24 +661,24 @@
Lets say you wanted to encrypt a partition (/dev/sda6) and use a password.
Fill the drive with random data (this will delete all data on the device /dev/sda6):
- dd if=/dev/urandom of=/dev/sda6
+ dd if=/dev/urandom of=/dev/sda6
Encrypt the device with LUKS encryption:
- cryptsetup -c aes-xts-plain:sha512 -y -s 512 luksFormat /dev/sda6
+ cryptsetup -c aes-xts-plain:sha512 -y -s 512 luksFormat /dev/sda6
Then enter in your desired password when prompted.
Now that the device is encrypted, decrypt the device so that the device can be properly formatted (calling the decrypted device: some_name_here):
- cryptsetup luksOpen /dev/sda6 some_name_here
+ cryptsetup luksOpen /dev/sda6 some_name_here
Enter in the password you used in the previous step when prompted.
Format the decypted device (this example format creates an ext4 filesystem with a label of: some_fs_label):
- mkfs.ext4 -L some_fs_label /dev/mapper/some_name_here
+ mkfs.ext4 -L some_fs_label /dev/mapper/some_name_here
@@ -686,14 +686,14 @@
Lets say you wanted add a new key to an existing encrypted device.
If not already created, create a new key using random data:
- dd if=/dev/urandom of=~/new.key bs=1c count=512
+ dd if=/dev/urandom of=~/new.key bs=1c count=512
Add the new key (Assuming that the old key is called old.key and is stored in your home directory):
- cryptsetup -d ~/old.key luksAddKey /dev/sda6 ~/new.key
+ cryptsetup -d ~/old.key luksAddKey /dev/sda6 ~/new.key
If the encrypted device did not use a key, then use the following command instead and enter in the appropriate password when prompted:
- cryptsetup luksAddKey /dev/sda6 ~/new.key
+ cryptsetup luksAddKey /dev/sda6 ~/new.key
@@ -701,11 +701,11 @@
Lets say you wanted add a new password to an existing encrypted device.
Add the new key (Assuming that the old key is called old.key and is stored in your home directory):
- cryptsetup -d ~/old.key luksAddKey /dev/sda6
+ cryptsetup -d ~/old.key luksAddKey /dev/sda6
Then enter in your desired password when prompted.
If the encrypted device did not use a key, then use the following command instead:
- cryptsetup luksAddKey /dev/sda6
+ cryptsetup luksAddKey /dev/sda6
You will first be prompted for the decryption password, enter in that first.
Enter in the new password after the first password properly decrypts the device.
@@ -719,10 +719,10 @@
Whenever the device gets decrypted a message should be presented, stating which key slot was used.
Once you have the propery slot identified (lets call this desired_slot), delete that slot (Assuming that the old key is called old.key and is stored in your home directory):
- cryptsetup -d ~/old.key luksDelKey /dev/sda6 desired_slot
+ cryptsetup -d ~/old.key luksDelKey /dev/sda6 desired_slot
If the encrypted device did not use a key, then use the following command instead:
- cryptsetup luksDelKey /dev/sda6 desired_slot
+ cryptsetup luksDelKey /dev/sda6 desired_slot
Enter in the decryption password when prompted.
diff --git a/distributions/turtle/documentation/configuring.html b/distributions/turtle/documentation/configuring.html
index 0211e6b..22439ce 100644
--- a/distributions/turtle/documentation/configuring.html
+++ b/distributions/turtle/documentation/configuring.html
@@ -234,14 +234,14 @@
Example comparison between raw iptables command and the default-firewall syntax: Raw Iptables Syntax:
-
+
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 47288 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p udp --sport 47288:47544 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p udp --dport 47288:47544 -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 -p udp --sport 123 --dport 123 -j ACCEPT
default-firewall Syntax:
-
+
direction input
device eth0
action append
@@ -369,7 +369,7 @@
Scroll to the bottom and uncomment and set the Driver to whatever you need it to be.
If you are on an OLPC, you could copy the pre-created olpc xorg configuration file:
-
+
cd /etc/X11/
cp -v xorg.conf.olpc xorg.conf
@@ -437,7 +437,7 @@
To update /etc/usb.ids to the latest version, download: http://www.linux-usb.org/usb.ids
Once this is done, make sure that the file permissions are correct:
-
+
chgrp hardware_browse /etc/{pci,usb}.ids
chmod g-wx+r,o-rwx /etc/{pci,usb}.ids
@@ -470,7 +470,7 @@
Lets say that you also dowloaded the appropriate kernel modules and it is called 2.6.26.5-olpc.tz2.
You will also need to extract the kernel modules to modules/
What you would do is:
-
+
mv -v turtle-2.6.26.5-olpc boot/
ln -vs turtle-2.6.26.5-olpc boot/turtle-olpc
tar -xf 2.6.26.5-olpc.tz2 -C modules/
@@ -479,7 +479,7 @@
Replace the default xorg.conf file with the the xorg.conf.olpc file so that you can get a working graphical display:
-
+
cp -v etc/X11/xorg.conf.olpc etc/X11/xorg.conf
diff --git a/distributions/turtle/documentation/running.html b/distributions/turtle/documentation/running.html
index d06bdab..8aa738d 100644
--- a/distributions/turtle/documentation/running.html
+++ b/distributions/turtle/documentation/running.html
@@ -109,7 +109,7 @@
To boot a live-usb on a usb 1.1 system, you will need a live cdrom that contains the appropriate grub.
Available Boot Options:
-
+
Install Kevux System
Boot Live System - Run From Memory
Boot Live System - Run From CD-Rom
@@ -258,25 +258,25 @@
etcdevice=
Specify the physical partition that contains the etc directory.
This will be mounted to the /etc directory of the finalroot system.
- For using an ecrypted partition, this should be set to something like: etcdevice=/dev/mapper/etc
+ For using an ecrypted partition, this should be set to something like: etcdevice=/dev/mapper/etc
homedevice=
Specify the physical partition that contains the home directory.
This will be mounted to the /home directory of the finalroot system.
- For using an ecrypted partition, this should be set to something like: homedevice=/dev/mapper/home
+ For using an ecrypted partition, this should be set to something like: homedevice=/dev/mapper/home
vardevice=
Specify the physical partition that contains the var directory.
This will be mounted to the /var directory of the finalroot system.
- For using an ecrypted partition, this should be set to something like: vardevice=/dev/mapper/var
+ For using an ecrypted partition, this should be set to something like: vardevice=/dev/mapper/var
tmpdevice=
Specify the physical partition that contains the tmp directory.
This will be mounted to the /tmp directory of the finalroot system.
- For using an ecrypted partition, this should be set to something like: tmpdevice=/dev/mapper/tmp
+ For using an ecrypted partition, this should be set to something like: tmpdevice=/dev/mapper/tmp
The configuration file Initial Setup:
Create the database:
- su - postgresd -c '/bin/initdb -D /home/targets/postgresd/database'
+ su - postgresd -c '/bin/initdb -D /home/targets/postgresd/database'
format is a bash-like syntax; bash comment rules apply.
@@ -363,15 +363,15 @@
Files 5 to 12:
These files are auto-generated by the initng start script.
- You can create these manually by calling the setup_ssh_host_keys script.
+ You can create these manually by calling the setup_ssh_host_keys script.
Notes:
The configuration file format is a bash-like syntax; bash comment rules apply.
The setup_ssh_host_keys command will create more files in the /home/targets/ssh/settings/ directory. These files begin with ssh_host_.
-
Port specifies where the port the server listens on, default is 22
-
Banner specify a file to enable, comment out to disable
+
Port specifies where the port the server listens on, default is 22
+
Banner specify a file to enable, comment out to disable
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -267,7 +267,7 @@
The first part, on the left mode side of the output, contains 16 upper case hexidecimal digits representing the maximum length supported by the byte_dump program.
The second part displays the individual bytes in a numeric format or similar (depending on parameters). In the second part, the hexidecimal digits are never swapped based on endianness.
-
The third part, which only appears when using the -t/--text parameter, displays the character each digit or set of digits may represent. Any characters considered unsafe or improper are substituted with a replacement character.
+
The third part, which only appears when using the -t/--text parameter, displays the character each digit or set of digits may represent. Any characters considered unsafe or improper are substituted with a replacement character.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -214,16 +214,16 @@
- When the --socket parameter represents a directory path then the file name is generated from either the --name parameter or from the control settings file.
+ When the --socket parameter represents a directory path then the file name is generated from either the --name parameter or from the control settings file.
- A rule action allows for either the full rule path, such as 'boot/root' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name 'root'.
+ A rule action allows for either the full rule path, such as 'boot/root' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name 'root'.
- The --return parameter is intended to be used for scripting and is of the form "response [type] [action] [status]".
+ The --return parameter is intended to be used for scripting and is of the form "response [type] [action] [status]".
- Be sure to use the ++quiet parameter to suppress output when using this in scripting.
+ Be sure to use the ++quiet parameter to suppress output when using this in scripting.
No response is returned on program errors, especially those errors that prevent communicating to the controller.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -262,13 +262,13 @@
- When both the --simulate parameter and the --validate parameter are specified, then additional information on each would be executed rule is printed but no simulation is performed.
+ When both the --simulate parameter and the --validate parameter are specified, then additional information on each would be executed rule is printed but no simulation is performed.
- The default interrupt behavior is to operate as if the --interruptible parameter is passed.
+ The default interrupt behavior is to operate as if the --interruptible parameter is passed.
- Specify an empty string for the --pid parameter to disable pid file creation for this program.
+ Specify an empty string for the --pid parameter to disable pid file creation for this program.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -263,13 +263,13 @@
- When using the -d/--define parameter the define structure must be passed as-is and may even need to be quoted if there is whitespace.
+ When using the -d/--define parameter the define structure must be passed as-is and may even need to be quoted if there is whitespace.
- For example, in the C programming, passing a macro to the compiler might look like '-DMY_MACRO=1'. To do this using -d/--define, there would be two parameters passed like this: '-d -DMY_MACRO=1'. This works because the parameter after the -d/--define is not interpreted and is treated exactly as is without interpreting it as a parameter to the fake program.
+ For example, in the C programming, passing a macro to the compiler might look like '-DMY_MACRO=1'. To do this using -d/--define, there would be two parameters passed like this: '-d -DMY_MACRO=1'. This works because the parameter after the -d/--define is not interpreted and is treated exactly as is without interpreting it as a parameter to the fake program.
- Because of this, passing '-d -h' would not print the program help because the '-h' is considered a value associated with the '-d' parameter rather than a parameter itself.
+ Because of this, passing '-d -h' would not print the program help because the '-h' is considered a value associated with the '-d' parameter rather than a parameter itself.
@@ -310,16 +310,16 @@
- When performing the build operation, the --mode parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.
+ When performing the build operation, the --mode parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.
- For example, when a mode of 'fll_monolithic' is specified, build libraries from both 'build_libraries' and 'build_libraries-fll_monolithic' are used (but not 'build_libraries-fll_level').
+ For example, when a mode of 'fll_monolithic' is specified, build libraries from both 'build_libraries' and 'build_libraries-fll_monolithic' are used (but not 'build_libraries-fll_level').
- When specifying the fakefile or the settings parameters, the filenames are relative to the data build directory, unless a path is used.
+ When specifying the fakefile or the settings parameters, the filenames are relative to the data build directory, unless a path is used.
- For example, with '--fakefile my_fakefile' the fakefile at './data/build/my_fakefile' would be used, however with '--fakefile ./my_fakefile' the fakefile at './my_fakefile' would be used.
+ For example, with '--fakefile my_fakefile' the fakefile at './data/build/my_fakefile' would be used, however with '--fakefile ./my_fakefile' the fakefile at './my_fakefile' would be used.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -272,55 +272,55 @@
For example, a file of 17 lines would range from 0 to 16.
- When using the --depth option, an order of operations is enforced on the parameters.
+ When using the --depth option, an order of operations is enforced on the parameters.
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
-
--at
An Object index at the specified depth.
+
--at
An Object index at the specified depth.
-
--depth
A new depth within the specified depth, indexed from the root.
+
--depth
A new depth within the specified depth, indexed from the root.
-
--name
An Object name at the specified depth.
+
--name
An Object name at the specified depth.
- The parameter --depth must be in numeric order, but values in between may be skipped.
+ The parameter --depth must be in numeric order, but values in between may be skipped.
('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)
('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)
- The parameter --select selects a Content column.
+ The parameter --select selects a Content column.
- Specify both --object and the --total parameters to get the total objects.
+ Specify both --object and the --total parameters to get the total objects.
- When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
+ When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
- This program may support parameters, such as --depth or --select, even if not supported by the standard.
+ This program may support parameters, such as --depth or --select, even if not supported by the standard.
This is done to help ensure consistency for scripting.
- For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
- For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
- The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
+ The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
- When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
+ When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
Both the Object and Content printed are already escaped.
@@ -329,7 +329,7 @@
Both the Object and Content are separated by a New Line character '\n' (U+000A).
- The parameter --delimit accepts the following:
+ The parameter --delimit accepts the following:
@@ -352,13 +352,13 @@
- The --delimit parameter may be specified multiple times to customize the delimit behavior.
+ The --delimit parameter may be specified multiple times to customize the delimit behavior.
- The --delimit values none and all, overrule all other delimit values.
+ The --delimit values none and all, overrule all other delimit values.
- The parameters --columns and --select refer to a Content column.
+ The parameters --columns and --select refer to a Content column.
The word "column" is being loosely defined to refer to a specific Content.
diff --git a/documentation/fss_basic_list_write.html b/documentation/fss_basic_list_write.html
index 6fd4bb5..c7e4a75 100644
--- a/documentation/fss_basic_list_write.html
+++ b/documentation/fss_basic_list_write.html
@@ -168,10 +168,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -257,10 +257,10 @@
For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.
- The FSS-0002 (Basic List) specification does not support quoted names, therefore the parameters --single and --double do nothing.
+ The FSS-0002 (Basic List) specification does not support quoted names, therefore the parameters --single and --double do nothing.
- This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
+ This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -273,55 +273,55 @@
For example, a file of 17 lines would range from 0 to 16.
- When using the --depth option, an order of operations is enforced on the parameters.
+ When using the --depth option, an order of operations is enforced on the parameters.
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
-
--at
An Object index at the specified depth.
+
--at
An Object index at the specified depth.
-
--depth
A new depth within the specified depth, indexed from the root.
+
--depth
A new depth within the specified depth, indexed from the root.
-
--name
An Object name at the specified depth.
+
--name
An Object name at the specified depth.
- The parameter --depth must be in numeric order, but values in between may be skipped.
+ The parameter --depth must be in numeric order, but values in between may be skipped.
('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)
('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)
- The parameter --select selects a Content column.
+ The parameter --select selects a Content column.
- Specify both --object and the --total parameters to get the total objects.
+ Specify both --object and the --total parameters to get the total objects.
- When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
+ When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
- This program may support parameters, such as --depth or --select, even if not supported by the standard.
+ This program may support parameters, such as --depth or --select, even if not supported by the standard.
This is done to help ensure consistency for scripting.
- For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
- For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
- The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
+ The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
- When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
+ When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
Both the Object and Content printed are already escaped.
@@ -330,7 +330,7 @@
Both the Object and Content are separated by a space.
- The parameter --delimit accepts the following:
+ The parameter --delimit accepts the following:
@@ -353,13 +353,13 @@
- The --delimit parameter may be specified multiple times to customize the delimit behavior.
+ The --delimit parameter may be specified multiple times to customize the delimit behavior.
- The --delimit values none and all, overrule all other delimit values.
+ The --delimit values none and all, overrule all other delimit values.
- The parameters --columns and --select refer to a Content column.
+ The parameters --columns and --select refer to a Content column.
The word "column" is being loosely defined to refer to a specific Content.
diff --git a/documentation/fss_basic_write.html b/documentation/fss_basic_write.html
index 629bc81..6738a8f 100644
--- a/documentation/fss_basic_write.html
+++ b/documentation/fss_basic_write.html
@@ -168,10 +168,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -257,10 +257,10 @@
For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.
- The FSS-0000 (Basic) specification does not support multi-line Content, therefore the parameter --prepend does nothing.
+ The FSS-0000 (Basic) specification does not support multi-line Content, therefore the parameter --prepend does nothing.
- This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
+ This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -273,55 +273,55 @@
For example, a file of 17 lines would range from 0 to 16.
- When using the --depth option, an order of operations is enforced on the parameters.
+ When using the --depth option, an order of operations is enforced on the parameters.
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
-
--at
An Object index at the specified depth.
+
--at
An Object index at the specified depth.
-
--depth
A new depth within the specified depth, indexed from the root.
+
--depth
A new depth within the specified depth, indexed from the root.
-
--name
An Object name at the specified depth.
+
--name
An Object name at the specified depth.
- The parameter --depth must be in numeric order, but values in between may be skipped.
+ The parameter --depth must be in numeric order, but values in between may be skipped.
('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)
('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)
- The parameter --select selects a Content column.
+ The parameter --select selects a Content column.
- Specify both --object and the --total parameters to get the total objects.
+ Specify both --object and the --total parameters to get the total objects.
- When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
+ When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
- This program may support parameters, such as --depth or --select, even if not supported by the standard.
+ This program may support parameters, such as --depth or --select, even if not supported by the standard.
This is done to help ensure consistency for scripting.
- For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
- For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
- The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
+ The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
- When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
+ When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
Both the Object and Content printed are already escaped.
@@ -330,7 +330,7 @@
Both the Object and Content are separated by a New Line character '\n' (U+000A).
- The parameter --delimit accepts the following:
+ The parameter --delimit accepts the following:
@@ -353,13 +353,13 @@
- The --delimit parameter may be specified multiple times to customize the delimit behavior.
+ The --delimit parameter may be specified multiple times to customize the delimit behavior.
- The --delimit values none and all, overrule all other delimit values.
+ The --delimit values none and all, overrule all other delimit values.
- The parameters --columns and --select refer to a Content column.
+ The parameters --columns and --select refer to a Content column.
The word "column" is being loosely defined to refer to a specific Content.
diff --git a/documentation/fss_embedded_list_write.html b/documentation/fss_embedded_list_write.html
index 83fbc28..e3580c0 100644
--- a/documentation/fss_embedded_list_write.html
+++ b/documentation/fss_embedded_list_write.html
@@ -168,10 +168,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -257,10 +257,10 @@
For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.
- The FSS-0008 (Embedded List) specification does not support quoted names, therefore the parameters --single and --double do nothing.
+ The FSS-0008 (Embedded List) specification does not support quoted names, therefore the parameters --single and --double do nothing.
- This program uses the parameter --ignore, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a --content parameter and this applies only to the Content represented by that specific --content parameter.
+ This program uses the parameter --ignore, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a --content parameter and this applies only to the Content represented by that specific --content parameter.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -273,55 +273,55 @@
For example, a file of 17 lines would range from 0 to 16.
- When using the --depth option, an order of operations is enforced on the parameters.
+ When using the --depth option, an order of operations is enforced on the parameters.
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
-
--at
An Object index at the specified depth.
+
--at
An Object index at the specified depth.
-
--depth
A new depth within the specified depth, indexed from the root.
+
--depth
A new depth within the specified depth, indexed from the root.
-
--name
An Object name at the specified depth.
+
--name
An Object name at the specified depth.
- The parameter --depth must be in numeric order, but values in between may be skipped.
+ The parameter --depth must be in numeric order, but values in between may be skipped.
('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)
('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)
- The parameter --select selects a Content column.
+ The parameter --select selects a Content column.
- Specify both --object and the --total parameters to get the total objects.
+ Specify both --object and the --total parameters to get the total objects.
- When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
+ When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
- This program may support parameters, such as --depth or --select, even if not supported by the standard.
+ This program may support parameters, such as --depth or --select, even if not supported by the standard.
This is done to help ensure consistency for scripting.
- For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
- For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
- The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
+ The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
- When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
+ When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
Both the Object and Content printed are already escaped.
@@ -330,7 +330,7 @@
Both the Object and Content are separated by a New Line character '\n' (U+000A).
- The parameter --delimit accepts the following:
+ The parameter --delimit accepts the following:
@@ -353,13 +353,13 @@
- The --delimit parameter may be specified multiple times to customize the delimit behavior.
+ The --delimit parameter may be specified multiple times to customize the delimit behavior.
- The --delimit values none and all, overrule all other delimit values.
+ The --delimit values none and all, overrule all other delimit values.
- The parameters --columns and --select refer to a Content column.
+ The parameters --columns and --select refer to a Content column.
The word "column" is being loosely defined to refer to a specific Content.
diff --git a/documentation/fss_extended_list_write.html b/documentation/fss_extended_list_write.html
index 4b765db..e967c75 100644
--- a/documentation/fss_extended_list_write.html
+++ b/documentation/fss_extended_list_write.html
@@ -168,10 +168,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -257,10 +257,10 @@
For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.
- The FSS-0003 (Extended List) specification does not support quoted names, therefore the parameters --single and --double do nothing.
+ The FSS-0003 (Extended List) specification does not support quoted names, therefore the parameters --single and --double do nothing.
- This program uses the parameter --ignore, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a --content parameter and this applies only to the Content represented by that specific --content parameter.
+ This program uses the parameter --ignore, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a --content parameter and this applies only to the Content represented by that specific --content parameter.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -273,56 +273,56 @@
For example, a file of 17 lines would range from 0 to 16.
- When using the --depth option, an order of operations is enforced on the parameters.
+ When using the --depth option, an order of operations is enforced on the parameters.
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
-
--at
An Object index at the specified depth.
+
--at
An Object index at the specified depth.
-
--depth
A new depth within the specified depth, indexed from the root.
+
--depth
A new depth within the specified depth, indexed from the root.
-
--name
An Object name at the specified depth.
+
--name
An Object name at the specified depth.
- The parameter --depth must be in numeric order, but values in between may be skipped.
+ The parameter --depth must be in numeric order, but values in between may be skipped.
('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)
('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)
- The parameter --select selects a Content column.
+ The parameter --select selects a Content column.
- Specify both --object and the --total parameters to get the total objects.
+ Specify both --object and the --total parameters to get the total objects.
- When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
+ When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
- This program may support parameters, such as --depth or --select, even if not supported by the standard.
+ This program may support parameters, such as --depth or --select, even if not supported by the standard.
This is done to help ensure consistency for scripting.
- For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
- For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
- The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
+ The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
- When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
+ When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
Both the Object and Content printed are already escaped.
@@ -331,7 +331,7 @@
Both the Object and Content are separated by a space.
- The parameter --delimit accepts the following:
+ The parameter --delimit accepts the following:
@@ -354,13 +354,13 @@
- The --delimit parameter may be specified multiple times to customize the delimit behavior.
+ The --delimit parameter may be specified multiple times to customize the delimit behavior.
- The --delimit values none and all, overrule all other delimit values.
+ The --delimit values none and all, overrule all other delimit values.
- The parameters --columns and --select refer to a Content column.
+ The parameters --columns and --select refer to a Content column.
The word "column" is being loosely defined to refer to a specific Content.
diff --git a/documentation/fss_extended_write.html b/documentation/fss_extended_write.html
index 062f61a..bdfb204 100644
--- a/documentation/fss_extended_write.html
+++ b/documentation/fss_extended_write.html
@@ -167,10 +167,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -256,10 +256,10 @@
For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.
- The FSS-0001 (Extended) specification does not support multi-line Content, therefore the parameter --prepend does nothing.
+ The FSS-0001 (Extended) specification does not support multi-line Content, therefore the parameter --prepend does nothing.
- This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
+ This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -222,16 +222,16 @@
- The --line parameter refers to the file lines and not the lines in a given file.
+ The --line parameter refers to the file lines and not the lines in a given file.
- If neither the --object nor --content are specified, then the default behavior is to print both.
+ If neither the --object nor --content are specified, then the default behavior is to print both.
- When specifying the --total parameter, neither the --object nor the --content parameter may be specified.
+ When specifying the --total parameter, neither the --object nor the --content parameter may be specified.
- An FSS file is identified by the format "# Object-Content" where the Object, is a machine-name representing the name and may only consist of "word" characters and the Content is a 4-digit hexidecimal number representing a particular variant of the Object. This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "#". White space must follow this pound character. There may be multiple Object and Content pairs, separated by white space, such as: "# fss-0002 fss-0000 iki-0002".
+ An FSS file is identified by the format "# Object-Content" where the Object, is a machine-name representing the name and may only consist of "word" characters and the Content is a 4-digit hexidecimal number representing a particular variant of the Object. This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "#". White space must follow this pound character. There may be multiple Object and Content pairs, separated by white space, such as: "# fss-0002 fss-0000 iki-0002".
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -273,55 +273,55 @@
For example, a file of 17 lines would range from 0 to 16.
- When using the --depth option, an order of operations is enforced on the parameters.
+ When using the --depth option, an order of operations is enforced on the parameters.
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
-
--at
An Object index at the specified depth.
+
--at
An Object index at the specified depth.
-
--depth
A new depth within the specified depth, indexed from the root.
+
--depth
A new depth within the specified depth, indexed from the root.
-
--name
An Object name at the specified depth.
+
--name
An Object name at the specified depth.
- The parameter --depth must be in numeric order, but values in between may be skipped.
+ The parameter --depth must be in numeric order, but values in between may be skipped.
('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)
('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)
- The parameter --select selects a Content column.
+ The parameter --select selects a Content column.
- Specify both --object and the --total parameters to get the total objects.
+ Specify both --object and the --total parameters to get the total objects.
- When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
+ When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.
- This program may support parameters, such as --depth or --select, even if not supported by the standard.
+ This program may support parameters, such as --depth or --select, even if not supported by the standard.
This is done to help ensure consistency for scripting.
- For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
- For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
- The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
+ The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.
- When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
+ When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.
Both the Object and Content printed are already escaped.
@@ -330,7 +330,7 @@
Both the Object and Content are separated by a New Line character '\n' (U+000A).
- The parameter --delimit accepts the following:
+ The parameter --delimit accepts the following:
@@ -353,13 +353,13 @@
- The --delimit parameter may be specified multiple times to customize the delimit behavior.
+ The --delimit parameter may be specified multiple times to customize the delimit behavior.
- The --delimit values none and all, overrule all other delimit values.
+ The --delimit values none and all, overrule all other delimit values.
- The parameters --columns and --select refer to a Content column.
+ The parameters --columns and --select refer to a Content column.
The word "column" is being loosely defined to refer to a specific Content.
@@ -368,13 +368,13 @@
This is not to be confused with a depth.
- As an exceptional case, a --depth of 1 applies only to the explicit Object of "header".
+ As an exceptional case, a --depth of 1 applies only to the explicit Object of "header".
Content at this depth is processed as FSS-0001 (Extended).
- The Content of the explicit Object of 'payload' will not contain any Content close pipe control codes when using --pipe.
+ The Content of the explicit Object of 'payload' will not contain any Content close pipe control codes when using --pipe.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -257,10 +257,10 @@
For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.
- The FSS-000E (Payload) specification does not support quoted names, therefore the parameters --single and --double do nothing.
+ The FSS-000E (Payload) specification does not support quoted names, therefore the parameters --single and --double do nothing.
- This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
+ This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.
diff --git a/documentation/fss_status_code.html b/documentation/fss_status_code.html
index cee7173..80a43f9 100644
--- a/documentation/fss_status_code.html
+++ b/documentation/fss_status_code.html
@@ -94,7 +94,7 @@
The fss_status_code program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
- This program handles standard FLL status codes as well as FSS status codes. The max status code supported is represented by the code words F_fss_status_code_last.
+ This program handles standard FLL status codes as well as FSS status codes. The max status code supported is represented by the code words F_fss_status_code_last.
@@ -165,10 +165,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -193,17 +193,17 @@
-f
--fine
-
Print F_true or F_false if status code is neither an error nor a warning or print number with neither the error code nor the warning code bits set.
+
Print F_true or F_false if status code is neither an error nor a warning or print number with neither the error code nor the warning code bits set.
-w
--warning
-
Print F_true or F_false if status code is a warning or print number with warning code bit set.
+
Print F_true or F_false if status code is a warning or print number with warning code bit set.
-e
--error
-
Print F_true or F_false if status code is an error or print number with error code bit set.
+
Print F_true or F_false if status code is an error or print number with error code bit set.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -255,7 +255,7 @@
- The -r/--replace option requires 2 additional parameters: <vocabulary> <with>.
+ The -r/--replace option requires 2 additional parameters: <vocabulary> <with>.
- The difference between -r/--replace and -s/--substitute is that the -r/--replace option substitutes all matching vocabulary names and the -s/--substitute option substitutes all matching vocabulary names that must also have the given matching content.
+ The difference between -r/--replace and -s/--substitute is that the -r/--replace option substitutes all matching vocabulary names and the -s/--substitute option substitutes all matching vocabulary names that must also have the given matching content.
- The -s/--substitute option takes priority over the -r/--replace option when matching the same variable.
+ The -s/--substitute option takes priority over the -r/--replace option when matching the same variable.
- The -W/--wrap option is ignored when the -s/--substitute option is matching the same variable.
+ The -W/--wrap option is ignored when the -s/--substitute option is matching the same variable.
The default behavior is to only display content portion of the IKI variable.
diff --git a/documentation/iki_write.html b/documentation/iki_write.html
index 84ad383..ed4a6a8 100644
--- a/documentation/iki_write.html
+++ b/documentation/iki_write.html
@@ -164,10 +164,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
diff --git a/documentation/status_code.html b/documentation/status_code.html
index 58cf981..a442089 100644
--- a/documentation/status_code.html
+++ b/documentation/status_code.html
@@ -94,7 +94,7 @@
The status_code program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
- This tool only handles standard FLL status codes. The max status code supported is represented by the code words F_status_code_last.
+ This tool only handles standard FLL status codes. The max status code supported is represented by the code words F_status_code_last.
@@ -165,10 +165,10 @@
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -193,17 +193,17 @@
-f
--fine
-
Print F_true or F_false if status code is neither an error nor a warning or print number with neither the error code nor the warning code bits set.
+
Print F_true or F_false if status code is neither an error nor a warning or print number with neither the error code nor the warning code bits set.
-w
--warning
-
Print F_true or F_false if status code is a warning or print number with warning code bit set.
+
Print F_true or F_false if status code is a warning or print number with warning code bit set.
-e
--error
-
Print F_true or F_false if status code is an error or print number with error code bit set.
+
Print F_true or F_false if status code is an error or print number with error code bit set.
- The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.
- The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
@@ -269,10 +269,10 @@
Multiple input sources are allowed but only a single output destination is allowed.
- When using the parameter --verify, no data is printed and 0 is returned if valid or 1 is returned if invalid.
+ When using the parameter --verify, no data is printed and 0 is returned if valid or 1 is returned if invalid.
- When using the parameter --to_combining with the parameter --to_width, the 'C' character is printed to represent the combining and the digits are used to represent widths. The combining characters should be considered 1-width by themselves or 0-width when combined.
+ When using the parameter --to_combining with the parameter --to_width, the 'C' character is printed to represent the combining and the digits are used to represent widths. The combining characters should be considered 1-width by themselves or 0-width when combined.
+ The Featureless Linux Library defines several standards for use in this project. Many of these standards are defined via the Featureless Settings Specifications. Most of these are focused on settings files (configuration files) but are written general enough to support a wide range of uses. The original project that the FLL project is built around is the Featureless Make program, also called Fake. The Fake program is a great example on how the FSS are intended to be used.
+
+
+ The standards are not limited to those defined in the FSS. There are the IKI standards (which is not an acronym). The term IKI plays off of the term Wiki. The IKI standard is intended to have simpler syntax than a Wiki syntax and is used in several FLL projects and even inside standards defined by FSS.
+
+
+
+
+
+
+
Featureless Settings Specifications
+
+
+
+
+ The Featureless Settings Specifications describe a set of standards designed around the age-old design principle referred to as Keep It Simple Stupid, aka KISS. The FSS are primarily intended for settings files but are extensible enough to be used beyond that.
+
+
+ The FSS defines the following:
+
+
+
Will consist of numerous different kinds of specification files, depending on the type of information stored.
+
As with the practice of "#!/bin/bash", the setting files should have the following: "# fss-????" format, such as "# fss-0001".
+
Multiple sub-standards may be appended to the FSS header, using the same format structure, such as supporting IKI: "# fss-0000 iki-0000" or HTML5: "# fss-0000 html-0005".
+
With the ? representing the (hexadecimal/base-16) number that represents the particular specification structure.
+
All settings specifications should avoid any form of noise, relative to the data being stored.
+
XML would be considered anti-KISS due to the extreme level of noise generated by the XML language (not easy to read).
+
The settings files are setup so that they should (reasonably) produce easy readability on both the console and in a GUI.
+
The specifications should strive for completeness (see the Completeness Theorem).
+
+
+ The most basic form of FSS consists of two main parts: an Object and the Content.
+
+
+
+
Object
+
Considered the name or identifier of some property or data. Objects do not require an associated Content.
+
+
+
Content
+
The data associated with a given Object; all Content must have an associated Object.
+
+
+
+ Objects and Contents can include any characters allowed by the specifications.
+ The specification may choose how a given Object or Content are represented and parsed.
+ For example, in fss-0000 (Basic), Content is treated as a single item whereas in fss-0001 (Extended), Content is broken apart in multiple sub parts.
+
+
+ Contents may be broken up into zero or more discrete sets of Content.
+ Each of these discrete sets of Content are referred to as a column.
+ These columns do not need to be setup in a column structure, the word column is simply used as a grouping terminology.
+ While a Content refers to the entire set, a column (more specifically, a Content column) refers to the individual discrete sets within the Content.
+ For example, in fss-000 (Basic) the entire Content may be further represented as a single column.
+ For example, in fss-001 (Extended) the entire Content may be further represented as multiple columns.
+
+
+ In all cases, specifications that separate Objects from Contents using white space, the first white space separating the Object and Content must not be considered part of the Object nor part of the Content.
+ All spaces after the first separating white space is generally ignored until the first non white space character is found, unless otherwise specified.
+
+
+ Unless otherwise specified, all specifications are newline sensitive (\n only).
+ Newline characters are only \n and are never anything else (\r is not considered newline in any manner).
+ White spaces characters that are printable, such as tabs and spaces, must be considered the same type for the purposes of parsing.
+ Non-printing white spaces characters (zero-width characters) are ignored, are treated as placeholders for processing, or are considered part of the appropriate character if they are Unicode combining characters (this includes zero-width punctuation characters and similar).
+ In terms of processing, it is recommended that the NULL character is not considered the end of a string, but this is only a suggestion.
+
+
+ Unless otherwise specified, newlines designate the potential start (or end) of an Object or Content.
+
+
+ Unless otherwise specified, white space may exist to the left of the start of Objects.
+ Unless otherwise specified, white space may exist to the right of the end of Objects, but only if that given Object is properly quoted and the white space is after the terminating quote but before any Content.
+
+
+ Unless otherwise specified, white space immediately both before (and after, outside of the terminating quote) an Object is not considered part of the Object.
+ This simplifies identifying the object, use quoted Objects to support white space before/after an object for styling purposes.
+
+
+ Unless otherwise specified, quotes may only be either a single quote ' or a double quote " and only a backslash \ may be used as a delimiter.
+
+
+ For example, fss-0000 (Basic):
+
+
+
\"Object 1" has content starting at the 1, with an Object named "Object.
+
\\"Object 1" has content starting at the 1, with an Object named \"Object.
+
"Object 1\" is an unterminated object due to the escaped closing quote.
+
"Object 1\\" has content starting at the has, with an Object named "Object 1\".
+
+
+ Unless otherwise specified, character/data delimits are performed only when required and not unilaterally.
+ In the case of Objects, delimits would only apply when that Object could be potentially identified as an Object.
+ For example, fss-0001 (Extended) needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data must not be delimited.
+
+
+ Such as these following three lines:
+
+"Object 1" "This is a single quoted Content." \"Additional unquoted Content."
+Object_2 This is multiple" Contents and the trailing quote does not need to be delimited.
+"Object \"3" 'Wouldn't require delimits if no white space or end of string after.'
+
+
+ Unlike this specification, a more traditional delimit process would have the above three lines instead represented as:
+
+"Object 1" "This is a single quoted Content." \"Additional unquoted Content.\"
+Object_2 This is multiple\" Contents and the trailing quote does not need to be delimited.
+"Object \\"3" 'Wouldn\'t require delimits if no white space or end of string after.'
+
+
+ These examples would resolve as follows:
+
+1) Object\:
+ - Object 1
+ Content\:
+ - This is a single quoted Content.
+ - "Additional
+ - unquoted
+ - Content"
+2) Object\:
+ - Object_2
+ Content\:
+ - This
+ - is
+ - multiple"
+ - Contents
+ - and
+ - the
+ - trailing
+ - quote
+ - does
+ - not
+ - need
+ - to
+ - be
+ - delimited.
+3) Object\:
+ - Object \"3
+ Content\:
+ - Wouldn't require delimits if no white space or end of string after.
+
+
+ All specifications are expected to support or be of the character encoding UTF-8; however, there is no imposed restriction on supporting or using any other encoding.
+ Those encodings must only support the appropriate characters required by a given standard for differentiating Objects, Contents, and delimits.
+ All specifications do assume ASCII and Unicode support.
+
+
+ Unless otherwise specified, comments are designated by the pound symbol # but only if only white space is to the left of the pound or the pound # is at the start of the line.
+ There is no support for inline comments.
+ Unless otherwise specified, the start comment may be delimited by " in the same manner as Objects and Contents are.
+ This delimit only applies to the start of a comment (the pound code:#" character) as there is no terminating character for a comment (other than a newline \n).
+ A line containing a valid comment is in its entirety ignored.
+ This means that if there is white space before the designation symbol (the pound # character) then that white space is ignored.
+
+
+ Unless otherwise specified, all designation characters must represent ASCII codes.
+ With designation characters being any character code used to designate how to identify an Object or Content (such as a colon : at the end of a basic list).
+ This keeps the processing and logic simple and safe, for both UTF-8 and ASCII.
+ White space used for designation characters must include support for UTF-8 white space characters, unless otherwise specified.
+ However, these white space used as a designation character, must be printing white space that are not combining white space characters.
+ Any visible/graph character that is considered a white space (such as U+1680á) is not to be considered a white space, unless otherwise specified.
+
+
+ When used for syntax matching purposes, zero-width Unicode characters are only to be considered zero-width unless otherwise specified.
+ For example, the invisible plus character (U+2064) is not to be considered as a plus.
+
+
+ The UTF-8 BOM is not allowed as a Byte Order Mark; instead, it must always be treated as the character represented by its code (unless explicitly allowed to represent a BOM by a standard).
+
+
+ The only Unicode dash-like characters allowed as a dash are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011) (unless otherwise specified).
+
+
+ In any specification where security is intended, if there exists a Unicode character that matches an ASCII character, that Unicode character may be prohibited by that standard in favor of the ASCII equivalent.
+ One such example is in the case of a URL, where the name could be used to trick a person (http://this-site.com/ vs http://thisâsite.com/).
+ This (potential insecure behavior) is allowed in general because a well written program would be able to detect and communicate the possible misunderstanding and thereby avoid mistakes without imposing any character restrictions.
+
+
+ This is a common behavior for security reasons, each character used for any special purposes must be visibly distinct, with white space and non-printing characters as the exception to the words visibly distinct.
+
+
+ The following are core specifications (each with a common name associated with the specification number):
+
+ IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
+
+
+ The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
+ The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
+ The variable name is considered the Object.
+ The variable value is considered the Content.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+
+
+ A potential IKI variable name starts on word (or _, -, +) characters.
+ White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+
+
+ Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+
+
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+
+
+ Key:
+
+
+
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
+
* = 0 or more occurrences.
+
~ = one or more occurrences, or 0 if at start of file.
+
+
+ Before Structure:
+
+
+
\x*\W~\*:*
+
+
+ Structure:
+
+
+
\o\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c iki-0000
+
+This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+
+Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following emphasis\:"is escaped to not be treated as IKI data".
+
+
+ Example Results:
+
+Objects would be:
+ 1) emphasis
+ 2) url
+ 3) code
+
+Contents would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) const char *string = "My \"quoted\" C string.";
+
+
+ The following are core specifications (each with a common name associated with the specification number):
+
+ The Completeness Theorem represents an informal theory by Kevin Day focusing on how software should be complete. The theory has not been formalized and the following is a basic explanation. A formal definition may be provided in the future.
+
+
+ When developing software, one should not program for the minimum requirements. Instead, one should consider the scope of the project and its intended design. Taking that into consideration all functionality needed to achieve this should be considered and implemented.
+
+
+ The most common misconceptions about this theorem is that it is not about writing all possible combinations, permutations, possibilities, etc. In fact, it is more accurate to say the opposite. The key focus is figuring out what the scope and intended functionalities are and make sure to achieve those.
+
+
+ This does not conflict with KISS but instead complements it.
+
+
+ If this is not clear, then consider thinking of things this way. The KISS focuses on keeping the design and process simple. The Completeness Theorem focuses on making sure the design is complete.
+
+
+ Now if, say a car, is designed to follow KISS but violates the Completeness Theorem, then that car could be built without doors. Not having doors simplifies the car. It is much simpler and easier to get in and out of.
+
+
+ Using that example, a car designed to follow both KISS and the Completeness Theorem would have doors.
+
+
+ To better understand the Completeness Theorem, again take the car example. If the car is intended to be used only in say photo shoots and is not in any way intended ever to be used, then as per the Completeness Theorem, the car would not need an engine. Whereas a car designed and intended to be used that does not have an engine would fail to follow the Completeness Theorem.
+
+
+ The Completeness Theorem is subjective and is intended to be used as a guide.
+
+
+ The Completeness Theorem asserts that perfection is impossible and pointless and one must instead understand what is necessary to complete the project rather than to handle all possibilities. Simply because perfection isn't possible doesn't mean one must lower their standards or have no standards. Determine what is or is not needed to complete the project and meet that rather than meet less than that.
+
+
+
+
+
+
+
Terminology
+
+
+
+
+
+
ABI
+
An Application Binary Interface is a binary implementation of an API making it an implementation of a specification. An ABI is neither a specification nor a standard.
+
+
+
API
+
An Application Programming Interface is a specification of some implementation of a standard be it a formally defined standard or an informally defined standard. This is in effect, documentation. Note that this is a specification of an implementation rather than a specification of a standard.
+
+
+
Implementation
+
Something that applies (implements) a standard or specification.
+
+
+
Protocol
+
In the context of computer software, this is a standard focused on communication between two parties (often referring to Internet communication). Web services often provide, use, and follow protocols. These web protocols are commonly incorrectly referred to as an API.
+
+
+
SBI
+
A Software Binary Interface is a new term created so that this project can more appropriately communicate the concept of what is traditionally referred to as an ABI. A Software Binary Interface is a more semantically accurate term intended to fully replace the misnamed ABI term.
+
+
+
Service
+
Any action or labor performed by one party for another party (such as one person helping another person). In regards to computers and networking a service is often used to represent a web service often provided by a website. It is common for people to misrepresent a web service by saying they are using an API when, in fact, they are using a web service.
+
+
+
Specification
+
A specific interpretation or clarification of a standard, such as the documentation that describes how to use or follow a standard.
+
+
+
SSI
+
A Software Source Interface is a new term created so that this project can more appropriately communicate the concept of what is traditionally referred to as an API. A Software Source Interface is a more semantically accurate term intended to fully replace the misnamed API term.
+
+
+
Standard
+
A set of rules and guidelines.
+
+
+
WSI
+
A Web Service Interface is a new term created so that this project can more appropriately communicate the concept of a web service. A Web Service Interface describes the interface in which to communicate to and receive response from a web service and is described by or adheres to some web protocol.
+
+
+
+ Based on this terminology, a standard is the representation of some set of rules and guidelines, however it is the specification that actually defines and describes those roles. The last 'S' in FSS can therefore be used to represent either "standard" or "specification" in casual speech. Given that an implementation is not a standard, an implementation can deviate from the standard (or the specification of some standard). Such deviations do not alter the standard nor do they alter the specification.
+
+
+ Good documentation practices suggest the documentation of an implementation. It is very easy to confuse the specification of an implementation of some standard with the specification of the standard itself. This has happened several times in history where some implementation violates the standard but despite being non-standard that implementation becomes popular. When the specification of that, now non-standard, implementation becomes popularized, those properly following the specification of the standard tend to suffer.
+
+
+ This project encourages deviations from the standards and such actions are allowed and protected by the copyright licenses. However, this project discourages communicating compliance of some standard when something is, in fact, not compliant. Problems in the interpretation of a standard fall under communication problems and are not considered deviations from the standard even though it may technically be a deviation. It is for these reasons that the terminology has been explicitly defined, clarified, and presented on this page.
+
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as part of the object.
+ 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 space follows a valid Object, that Object is considered to have no Content.
+
+
+ Content exists on the same line as the Object.
+ Content is represented as a single Content column terminated by a newline.
+ Content column consists of everything following the first non-white space character until the newline.
+ Content column includes trailing white space before newline is reached.
+ Content column does not include any of the leading white space.
+ No delimits are supported in the Content.
+
+
+ Key:
+
+
+
\s = white space, except newline.
+
\b = either white space or printable, except newline.
+
\q = non-white space or quoted white space with no white space outside of the quotes.
+
\n = newline.
+
* = zero or more occurrences.
+
+ = one or more occurrences.
+
+
+ Before Structure:
+
+
+
+
+
+ Structure:
+
+
+
\s*\q+\s+\b*\n
+
+
+ After Structure:
+
+
+
+
+
+ Example:
+
+# fss-0000
+# valid comments are ignored.
+"The Object" Content until newline.
+Second object set.
+
+
+ Example Results:
+
+Object would be:
+1) The Object
+2) Second
+
+Content would be:
+1.1) Content until newline.
+2.1) object set.
+
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ 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 space follows a valid Object, that Object is considered to have no Content.
+
+
+ Content exists on the same line as the Object.
+ Content is represented as multiple Content columns.
+ Content columns are white space separated parts within the Content and terminated by a newline.
+ Any number of Content columns may exist in the Content until the newline is reached.
+
+
+ Key:
+
+
+
\s = White space, except newline.
+
\b = Either white space or printable, except newline.
+
\q = Non-white space or quoted white space with no white space outside of the quotes.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ A colon followed by any white space until a newline terminates a valid Object.
+ Non-white space may not follow the colon of a valid Object.
+
+
+ Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
+ Any Content that could be interpreted as a valid Object must have the colon delimited.
+
+
+ There is no single-quote or double-quote delimitation in this specification.
+ Only the colon that would result in a valid Object can be delimited.
+
+
+ Empty Objects are allowed, that is, the length of the object may be zero.
+
+
+ Key:
+
+
+
\s = White space, except newline.
+
\o = Any printable character, except unescaped ':'.
+
\l = Any printable character or white space, except unescaped ':'.
+
\c = either white space or printable, including newline, that not interpretable as an Object.
+
\n = Newline.
+
* = Zero or more occurrences.
+
+
+ Before Structure:
+
+
+
+
+
+ Structure:
+
+
+
\s*\o\l*:\s*\n\c*\n*
+
+
+ After Structure:
+
+
+
+
+
+ Example:
+
+# fss-0002
+# valid comments are ignored.
+"The Object":
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\:
+Second:
+ Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+
+
+ Example Results:
+
+ Objects would be:
+ 1) "The Object"
+ 2) Second
+
+ Contents would be:
+ 1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does:
+ 2.1) Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ An open-brace { followed by any white space until a newline terminates a possible valid Object.
+ An Object is not considered fully valid until a valid close-brace } is found, designating the end of the Content.
+ Non-white space may not follow the open-brace of a valid Object.
+
+
+ Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace }.
+ Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
+ White space may follow a valid close-brace but a terminating newline must be present to designate a valid end of Content.
+
+
+ There is no single-quote or double-quote delimitation in this specification.
+ Only the open-brace that would result in a valid Object or the close-brace that would terminate valid Content can be delimited.
+ When inside potentially valid Content (which follows a valid Object) the open-brace cannot be delimited because this standard is not-recursive.
+ When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited.
+ Likewise, the close-brace may only be delimited if it is within any potentially valid Content.
+
+
+ Each delimit slash in a delimitable open-brace is treated as a potential delimit such that two slashes represents a single delimited slash (\\{ would represent \{).
+ Only the first delimit slash in a delimitable close-brace is treated as a potential delimit (\\\} would represent \\}).
+
+
+ Empty Objects are allowed, that is, the length of the object may be zero.
+
+ Key:
+
+
+
\s = White space, except newline.
+
\o = Any printable character, except unescaped {.
+
\l = Any printable character or white space, except unescaped }.
+
\c = Either white space or printable, including newline, that is not interpretable as an Object.
+
\n = Newline.
+
* = Zero or more occurrences.
+
+
+ Before Structure:
+
+
+
+
+
+ Structure:
+
+
+
\s*\o\l*{\s*\n\c*\n\s*}\s*\n
+
+
+ After Structure:
+
+
+
+
+
+ Example:
+
+# fss-0003
+# valid comments are ignored.
+"The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+}
+
+Second {
+ Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+}
+
+
+ Example Results:
+
+Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Contents would be:
+ 1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ }
+ 2.1) Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+
+# fss-0004
+# valid comments are ignored.
+"The Object":
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\:
+Second:
+ Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Inner Objects would be:
+ 1.1) Does
+ 1.2) This:
+ 1.3) This
+
+ 2.1) Continues
+ 2.2) All
+
+Inner Contents would be:
+ 1.1.1) not need to be quoted.
+ 1.2.1) does not need to be delimited.
+ 1.3.1) Does:
+
+ 2.1.1) until EOS/EOF.
+ 2.2.1) white space, including newline (and leading white space) is "part of content."
+
+# fss-0005
+# valid comments are ignored.
+"The Object":
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does\:
+Second:
+ Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Inner Objects would be:
+ 1.1) Does
+ 1.2) This:
+ 1.3) This
+
+ 2.1) Continues
+ 2.2) All
+
+Inner Contents would be:
+ 1.1.1) not
+ 1.1.2) need
+ 1.1.3) to
+ 1.1.4) be
+ 1.1.5) quoted.
+
+ 1.2.1) does
+ 1.2.2) not
+ 1.2.3) need
+ 1.2.4) to
+ 1.2.5) be
+ 1.2.6) delimited.
+
+ 1.3.1) Does:
+
+ 2.1.1) until
+ 2.1.2) EOS/EOF.
+
+ 2.2.1) white space,
+ 2.2.2) including
+ 2.2.3) newline
+ 2.2.4) (and
+ 2.2.5) leading
+ 2.2.6) white space)
+ 2.2.7) is
+ 2.2.8) part of content.
+
+# fss-0006
+# valid comments are ignored.
+"The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+}
+
+Second {
+ Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+}
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Inner Objects would be:
+ 1.1) Does
+ 1.2) This:
+ 1.3) }
+
+ 2.1) Continues
+ 2.2) All
+
+Inner Contents would be:
+ 1.1.1) not need to be quoted.
+ 1.2.1) does not need to be delimited.
+ 1.3.1)
+
+ 2.1.1) until EOS/EOF.
+ 2.2.1) white space, including newline (and leading white space) is "part of content."
+
+# fss-0007
+# valid comments are ignored.
+"The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+}
+
+Second {
+ Continues until EOS/EOF.
+ All white space, including newline (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+}
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Inner Objects would be:
+ 1.1) Does
+ 1.2) This:
+ 1.3) }
+
+ 2.1) Continues
+ 2.2) All
+
+Inner Contents would be:
+ 1.1.1) not
+ 1.1.2) need
+ 1.1.3) to
+ 1.1.4) be
+ 1.1.5) quoted.
+
+ 1.2.1) does
+ 1.2.2) not
+ 1.2.3) need
+ 1.2.4) to
+ 1.2.5) be
+ 1.2.6) delimited.
+
+ 1.3.1)
+
+ 2.1.1) until
+ 2.1.2) EOS/EOF.
+
+ 2.2.1) white space,
+ 2.2.2) including
+ 2.2.3) newline
+ 2.2.4) (and
+ 2.2.5) leading
+ 2.2.6) white space)
+ 2.2.7) is
+ 2.2.8) part of content.
+
+# fss-0008
+# valid comments are ignored.
+"The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+}
+
+Second {
+ Nested Example.
+
+ Third {
+ Fourth {
+ This is nested Content.
+ }
+ }
+}
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Inner Objects (depth 1) would be:
+ 2.1) Third
+
+Inner Objects (depth 2) would be:
+ 2.1.1) Fourth
+
+Inner Contents (depth 0) would be:
+ 1.1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ }
+
+ 2.1.1) Nested Example.
+
+ Third {
+ Fourth {
+ This is nested Content.
+ }
+ }
+
+Inner Contents (depth 1) would be:
+ 2.1.1.1) Fourth {
+ This is nested Content.
+ }
+
+Inner Contents (depth 2) would be:
+ 2.1.1.1.1) This is nested Content.
+
+ This is based off of fss-0000 (Basic), except the Object is at the end of the line.
+
+
+ Each Object starts at the end of a line and white space to the left of the Object is not treated as part of the object.
+ 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 space precedes a valid Object, that Object is considered to have no Content.
+
+
+ Content exists on the same line as the Object.
+ Content is represented as a single Content column that begins at a newline.
+ Content column consists of everything following the first non-white space character at the start of the line until the Object is reached.
+ Content column includes trailing white space before newline is reached.
+ Content column does not include any of the white space between the last non-white space character and the start of the Object.
+ No delimits are supported in the Content.
+
+
+ Key:
+
+
+
\s = white space, except newline.
+
\b = either white space or printable, except newline.
+
\q = non-white space or quoted white space with no white space outside of the quotes.
+
\n = newline.
+
* = zero or more occurrences.
+
+ = one or more occurrences.
+
+
+ Before Structure:
+
+
+
+
+
+ Structure:
+
+
+
\s*\b*\s+\q+\s*\n
+
+
+ After Structure:
+
+
+
+
+
+ Example:
+
+# fss-0009
+# valid comments are ignored.
+Content from newline. "The Object"
+object set. Second
+
+
+ Example Results:
+
+Object would be:
+ 1) The Object
+ 2) Second
+
+Content would be:
+ 1.1) Content from newline.
+ 2.1) object set.
+
+ This is based off of fss-0001 (Extended), except the Object is at the end of the line.
+
+
+ Each Object starts at the end of a line and white space to the left of the Object is not treated as an object.
+ 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 space follows a valid Object, that Object is considered to have no Content.
+
+
+ Content exists on the same line as the Object.
+ Content is represented as multiple Content columns.
+ Content columns are white space separated parts within the Content is terminated by the start of the Object.
+ Any number of Content columns may exist in the Content until the Object is reached.
+
+
+ Key:
+
+
+
\s = White space, except newline.
+
\b = Either white space or printable, except newline.
+
\q = Non-white space or quoted white space, no white space outside of quotes.
+
\n = Newline.
+
* = Zero or more occurrences.
+
+ = One or more occurrences.
+
()* = Grouping that repeats 0 or more times.
+
+
+ Before Structure:
+
+
+
+
+
+ Structure:
+
+
+
\s*(\s*\q+)*\s+\q+\s*\n
+
+
+ After Structure:
+
+
+
+
+
+ Example:
+
+# fss-000a
+# valid comments are ignored.
+Content "content 2" content_3. "The Object"
+object set. Second
+
+
+ Example Results:
+
+Objects would be:
+ 1) The Object
+ 2) Second
+
+Contents would be:
+ 1.1) Content
+ 1.2) content 2
+ 1.3) content_3.
+
+ 2.1) object
+ 2.2) set.
+
+ This might be similar to fss-0008 (Embedded List), except it is an fss-0003 (Extended List) with a (non-recursive) fss-0002 (Basic List) inside the Content.
+
+# fss-000b
+# valid comments are ignored.
+"The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+}
+
+Second {
+ Nested Example.
+
+ Third:
+ Fourth:
+ There is parallel to Second rather than nested within Second.
+}
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) "The Object"
+ 2) Second
+
+Inner Objects (depth 1) would be:
+ 2.1) Third
+ 2.2) Fourth
+
+Inner Contents (depth 0) would be:
+ 1.1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ }
+
+ 2.1.1) Nested Example.
+
+ Third:
+ Fourth:
+ There is parallel to Second rather than nested within Second.
+
+Inner Contents (depth 1) would be:
+ 2.1.1.1)
+ 2.2.1.1) There is parallel to Second rather than nested within Second.
+
+ The IKI specifications are separate specifications from the FSS.
+ This is simply a more formal way to designate that this format utilizes IKI syntax.
+
+
+ The IKI syntax may be used in any FSS.
+ The IKI format may be added to the.
+
+
+ See the file:"iki.txt" specification for details on the IKI specifications.
+
+
+ Example:
+
+# fss-000c iki-0000
+
+This is a emphasis:"formal example" utilizing the FSS headers.
+
+
+ Example:
+
+# iki-0000
+
+This is an emphasis:"informal example" utilizing the IKI headers.
+
+ This is a special case that follows fss-0002 (Basic List), and different FSS formats inside this fss-0002 (Basic List).
+ This fss-0002 (Basic List) is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
+
+
+ The Inner Content may be any of the following FSS formats: fss-0000 (Basic), fss-0001 (Extended), and fss-0003 (Extended List).
+ The way in which each format is determined is first to see if the Inner Content Object would be a valid Extended List Object.
+ If the Inner Content Object is not a valid fss-0003 (Extended List) Object, then check to see if it is an fss-0000 (Basic) or fss-0001 (Extended) Object.
+
+
+ The fss-0000 (Basic) and fss-0001 (Extended) Objects have the same format for Object names but the fss-0003 (Extended List) Object is slightly different.
+ Anything that would match an fss-0003 (Extended List) Object must therefore be an fss-0003 (Extended List) Object.
+
+
+ This supports the use of iki-0000 (Unrestricted) but only within the Content of the outermost fss-0002 (Basic List).
+ That is to say, the IKI is only processed once.
+ Additional restrictions on the use of IKI syntax is allowed if explicitly defined in the implementing specification.
+ This additional restriction may also include using a more restrictive IKI syntax, such as iki-0001 (Basic).
+
+
+ Anything implementing this specification may impose its own restrictions on when to determine if the Inner Content is what FSS format, based on Object names.
+
+# fss-000d
+main:
+ name "Boot Devices"
+
+script:
+ start {
+ ip addr add 127.0.0.1/8 label lo dev lo;
+ ip link set lo up;
+ }
+
+ stop {
+ ip link set lo down;
+ }
+
+command:
+ start mount -a -O no_netdev
+ stop umount -arf -O no_netdev
+
+
+ Example Results:
+
+Outer List Objects would be:
+ 1) main
+ 2) script
+ 3) command
+
+Outer List Contents would be:
+ 1.1) name "Boot Devices"
+
+ 2.1) start {
+ ip addr add 127.0.0.1/8 label lo dev lo;
+ ip link set lo up;
+ }
+
+ stop {
+ ip link set lo down;
+ }
+
+ 3.1) begin mount -a -O no_netdev
+ end umount -arf -O no_netdev
+
+Inner Content Objects would be:
+ 1.1.1) name
+ 2.1.1) start
+ 2.1.2) stop
+ 3.1.1) begin
+ 3.1.2) end
+
+Inner Content Contents would be (without breaking Content into its individual parts):
+ 1.1.1) Boot Devices
+ 2.1.1) ip addr add 127.0.0.1/8 label lo dev lo;
+ ip link set lo up;
+ 2.1.2) ip link set lo down;
+ 3.1.1) mount -a -O no_netdev
+ 3.1.2) umount -arf -O no_netdev
+
+ This is a fss-0002 (Basic List) with two required objects:
+
+
+
header.
+
payload.
+
+
+ The header:
+
+
+
The header's Content is of type fss-0001 (Extended).
+
The header is recommended to have the Objects length, status, part, and total.
+
The recommended length represents the size of the payload.
+
The recommended part represents a single part of a set of packets for when the data being transmitted is split across multiple payloads.
+
The recommended total represents the total number of parts representing a complete data transmitted across multiple payloads.
+
The recommended status represents status codes (such as success or failure) and multiple.
+
The Content for the recommended length and status are positive whole numbers (including zero) that may be in binary, octal, decimal, duodecimal, or hexidecimal numerical format.
+
+
+ The payload:
+
+
+
The payload's Content may contain anything, including raw binary data.
+
The payload is required to be the last list Object in the file.
+
The payload is recommended to have its size designated in some manner in the header (such as with the recommended length).
+
The payload is terminated by the EOF character or by the recommended length header.
+
The payload may be empty (length may be zero), but the list Object payload must still exist.
+
Nothing in the payload may be considered a valid list Object by the outer fss-0002 (Basic List) and therefore escaping is unnecessary (No further processing by the outer fss-0002 (Basic List) is allowed at this point).
+
Comments in the payload are not considered comments and are instead considered part of the payload, as-is.
+
Essentially, the payload should be treated as binary data embedded in a text file.
+
+
+ The recommended lengthheader Object used to designate the payload size does not necessarily have to be defined in the header.
+ That is to say, if the payload is expected to be of some pre-defined or static length then a length does not need to be provided in the header.
+
+
+ The recommended statusheader Object may be a string, such as F_none, or a positive whole number.
+ What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent FLL status code.
+
+
+
The FLL status code is a 16-bit digit whose first two high-order bits represent error and warning ( representing signal).
+
The FLL status code as a number is binary sensitive and may not be portable across binaries or systems.
+
For best portability, consider using status as a name string to ensure cross-system or cross-binary compatibility.
+
+
+ Example:
+
+# fss-000e
+# valid comments are ignored.
+header:
+ type error
+ status 296
+ length 30
+
+payload:
+The program is out of memory.
+
+
+ Example Results:
+
+Outer Objects would be:
+ 1) header
+ 2) payload
+
+"header" Objects would be:
+ 1.1) type
+ 1.2) status
+ 1.3) length
+
+"header" Contents would be:
+ 1.1.1) error
+ 1.2.1) 296
+ 1.3.1) 30
+
+The payload would be:
+ 2) The program is out of memory.
+
+ This is a network packet format that contains fss-000e (Payload) within it.
+
+
+ The Simple Packet structure is described in blocks, of which are structured in bytes.
+
+
+ There are only three blocks in this format:
+
+
+
Control Block.
+
Size Block.
+
Payload Block.
+
+
+ The Control Block is the first block in the packet and is considered endianless.
+ There exists only a single byte within the Control Block.
+ Regardless of the endianness of the packet, the leftmost bit is always the string or binary bit.
+ The second bit following that bit represents the endianness bit.
+
+
+ The string or binary bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in binary format.
+ While the packet might be considered to be in string format, it is technically always in binary format due to the Control Block and Size Block.
+ This means that the bit designating the packet as a string packet or a binary packet is referring to whether or not the Payload Block is in string format or is in binary format.
+
+
+ The endianness bit designates whether or not the packet is in big endian or little endian format.
+ A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
+ All binary data within this packet, following the Control Block, must respect this endianness bit (including the Size Block).
+
+
+ The remaining bits are not defined by this standard and are expected to be 0.
+ Non-formal or local uses may utilize these remaining 6 bits as desired.
+ However, there may be additional standards that expand upon this and utilize these remaining Control bits.
+ Anything that utilizes these unused Control bits may add or remove additional Blocks after the Control Block as they see fit.
+
+
+ The Size Block is an unsigned 32-bit integer representing the size of the entire packet, including the Control Block and Size Block.
+ This size must exactly match the packet to be a valid packet.
+ The size represents number of bytes in the file.
+ The Control Block is 1 byte long and the Size Block is 4 bytes long and so the maximum available size is (2^32)-6.
+
+
+ The Payload Block is not defined by this standard of that that it exists and should be in fss-000e (Payload) format.
+ The fss-000e (Payload) may be represented in either string format or binary format.
+ The fss-000e (Payload) may contain multiple header(s) but may only contain a single payload.
+ With this in mind, it is recommended that only a single header be supported in the Payload Block.
+
+
+ See the fss-000e (Payload) specification for details on the syntax rules for the Payload Block.
+
+ This specification provides no restrictions on the vocabulary.
+
+
+
+
+
+
+
Common Specification Rules
+
+
+
+
+ IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
+
+
+ The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
+ The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
+ The variable name is considered the Object.
+ The variable value is considered the Content.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+
+
+ A potential IKI variable name starts on word (or _, -, +) characters.
+ White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+
+
+ Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+
+
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+
+
+ Key:
+
+
+
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
+
* = 0 or more occurrences.
+
~ = one or more occurrences, or 0 if at start of file.
+
+
+ Before Structure:
+
+
+
\x*\W~\*:*
+
+
+ Structure:
+
+
+
\o\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c iki-0000
+
+This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+
+Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following emphasis\:"is escaped to not be treated as IKI data".
+
+
+ Example Results:
+
+Objects would be:
+ 1) emphasis
+ 2) url
+ 3) code
+
+Contents would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) const char *string = "My \"quoted\" C string.";
+
+ This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and URLs.
+
+
+ Vocabulary:
+
+
+
+
address
+
Any mailing address, except for e-mail and URI.
+
+
+
code
+
All text contained within represent code and should be presented as such.
+
+
+
email
+
Any valid e-mail address.
+
+
+
phone
+
Any valid phone number.
+
+
+
quote
+
All text within represents some quote.
+
+
+
uri
+
Any valid URI (allows URL and URN).
+
+
+
url
+
Any valid URL.
+
+
+
urn
+
Any valid URN.
+
+
+
var
+
All text contained within represents some sort of variable.
+
+
+
+
+
+
+
+
Common Specification Rules
+
+
+
+
+ IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
+
+
+ The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
+ The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
+ The variable name is considered the Object.
+ The variable value is considered the Content.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+
+
+ A potential IKI variable name starts on word (or _, -, +) characters.
+ White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+
+
+ Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+
+
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+
+
+ Key:
+
+
+
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
+
* = 0 or more occurrences.
+
~ = one or more occurrences, or 0 if at start of file.
+
+
+ Before Structure:
+
+
+
\x*\W~\*:*
+
+
+ Structure:
+
+
+
\o\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c iki-0001
+
+This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+
+Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following emphasis\:"is escaped to not be treated as IKI data".
+
+
+ Example Results:
+
+Objects would be:
+ 1) emphasis
+ 2) url
+ 3) code
+
+Contents would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) const char *string = "My \"quoted\" C string.";
+
+ This specification provides a small set of vocabulary names meant to be used for substitution in simple scripts.
+
+
+ This specification only loosely defines the vocabulary context.
+ This vocabulary may be further extended but must at least support the taxonomy defined here.
+ Flexibility on interpretation is intended so that the context can be more fine-tuned and customized.
+
+
+ The taxonomy for the emphasis:"context", emphasis:"define", and emphasis:"parameter" are intentionally not defined here and left open.
+ One utilizing this should document the taxonomy for each of these as desired.
+
+
+ Vocabulary:
+
+
+
+
context
+
Intended to be used for printing (or tagging) context codes before and after text, such as with color context.
+
+
+
define
+
Intended to be used for global properties, much like a C/C++ #define.
+
+
+
parameter
+
Intended to be used for parameters or variables.
+
+
+
+
+
+
+
+
Common Specification Rules
+
+
+
+
+ IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
+
+
+ The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
+ The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
+ The variable name is considered the Object.
+ The variable value is considered the Content.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+
+
+ A potential IKI variable name starts on word (or _, -, +) characters.
+ White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+
+
+ Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+
+
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+
+
+ Key:
+
+
+
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
+
* = 0 or more occurrences.
+
~ = one or more occurrences, or 0 if at start of file.
+
+
+ Before Structure:
+
+
+
\x*\W~\*:*
+
+
+ Structure:
+
+
+
\o\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c iki-0000
+
+This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+
+Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following emphasis\:"is escaped to not be treated as IKI data".
+
+
+ Example Results:
+
+Objects would be:
+ 1) emphasis
+ 2) url
+ 3) code
+
+Contents would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) const char *string = "My \"quoted\" C string.";
+
The IKI settings specification plays on how it is simpler than a Wiki syntax.
The IKI could be used for anything from e-mails and text-messages to word-processors.
- The goal with IKI is to be very easily readably by a human, such as: iki:"example" or url:"https://sourceforge.net/projects/fll/".
+ The goal with IKI is to be very easily readably by a human, such as: iki:"example" or url:"https://sourceforge.net/projects/fll/".
This program is a swiss army knife for reading files that contain IKI syntax.
@@ -492,7 +492,7 @@
The IKI settings specification plays on how it is simpler than a Wiki syntax.
The IKI could be used for anything from e-mails and text-messages to word-processors.
- The goal with IKI is to be very easily readably by a human, such as: iki:"example" or url:"https://sourceforge.net/projects/fll/".
+ The goal with IKI is to be very easily readably by a human, such as: iki:"example" or url:"https://sourceforge.net/projects/fll/".
This program is a swiss army knife for writing files that contain IKI syntax.