From 981373935cf9201c6962dbafaa650f700cd64d07 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sun, 5 Sep 2021 17:06:54 -0500 Subject: [PATCH] Update: Allow empty Objects in FSS Basic and Extended Lists. This actually includes FSS Embedded List as well, but the embedded list already appears to allow this. --- .../fss_basic_list_read/c/private-fss_basic_list_read.c | 14 -------------- level_3/fss_basic_read/c/private-fss_basic_read.c | 14 -------------- .../c/private-fss_extended_list_read.c | 14 -------------- level_3/fss_extended_read/c/private-fss_extended_read.c | 14 -------------- specifications/fss-0002.txt | 2 ++ specifications/fss-0003.txt | 2 ++ 6 files changed, 4 insertions(+), 56 deletions(-) diff --git a/level_3/fss_basic_list_read/c/private-fss_basic_list_read.c b/level_3/fss_basic_list_read/c/private-fss_basic_list_read.c index 67797e2..b39d2fb 100644 --- a/level_3/fss_basic_list_read/c/private-fss_basic_list_read.c +++ b/level_3/fss_basic_list_read/c/private-fss_basic_list_read.c @@ -159,20 +159,6 @@ extern "C" { return status; } - - if (!data->depths.array[i].value_name.used) { - if (main->error.verbosity != f_console_verbosity_quiet) { - flockfile(main->error.to.stream); - - fl_print_format("%c%[%sThe '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context); - fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fss_basic_list_read_long_name, main->error.notable); - fl_print_format("%[' must not be an empty string.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]); - - funlockfile(main->error.to.stream); - } - - return F_status_set_error(F_parameter); - } } // for } } // for diff --git a/level_3/fss_basic_read/c/private-fss_basic_read.c b/level_3/fss_basic_read/c/private-fss_basic_read.c index 605bce0..865b51b 100644 --- a/level_3/fss_basic_read/c/private-fss_basic_read.c +++ b/level_3/fss_basic_read/c/private-fss_basic_read.c @@ -136,20 +136,6 @@ extern "C" { return status; } - - if (!data->depths.array[i].value_name.used) { - if (main->error.verbosity != f_console_verbosity_quiet) { - flockfile(main->error.to.stream); - - fl_print_format("%c%[%sThe '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context); - fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fss_basic_read_long_name, main->error.notable); - fl_print_format("%[' must not be an empty string.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]); - - funlockfile(main->error.to.stream); - } - - return F_status_set_error(F_parameter); - } } // for } } // for diff --git a/level_3/fss_extended_list_read/c/private-fss_extended_list_read.c b/level_3/fss_extended_list_read/c/private-fss_extended_list_read.c index 7f7d1e9..baa455d 100644 --- a/level_3/fss_extended_list_read/c/private-fss_extended_list_read.c +++ b/level_3/fss_extended_list_read/c/private-fss_extended_list_read.c @@ -159,20 +159,6 @@ extern "C" { return status; } - - if (!data->depths.array[i].value_name.used) { - if (main->error.verbosity != f_console_verbosity_quiet) { - flockfile(main->error.to.stream); - - fl_print_format("%c%[%sThe '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context); - fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fss_extended_list_read_long_name, main->error.notable); - fl_print_format("%[' must not be an empty string.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]); - - funlockfile(main->error.to.stream); - } - - return F_status_set_error(F_parameter); - } } // for } } // for diff --git a/level_3/fss_extended_read/c/private-fss_extended_read.c b/level_3/fss_extended_read/c/private-fss_extended_read.c index cd9c248..51db43b 100644 --- a/level_3/fss_extended_read/c/private-fss_extended_read.c +++ b/level_3/fss_extended_read/c/private-fss_extended_read.c @@ -163,20 +163,6 @@ extern "C" { return status; } - - if (!data->depths.array[i].value_name.used) { - if (main->error.verbosity != f_console_verbosity_quiet) { - flockfile(main->error.to.stream); - - fl_print_format("%c%[%sThe '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context); - fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fss_extended_read_long_name, main->error.notable); - fl_print_format("%[' must not be an empty string.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]); - - funlockfile(main->error.to.stream); - } - - return F_status_set_error(F_parameter); - } } // for } } // for diff --git a/specifications/fss-0002.txt b/specifications/fss-0002.txt index bc5df3a..6d01665 100644 --- a/specifications/fss-0002.txt +++ b/specifications/fss-0002.txt @@ -13,6 +13,8 @@ Featureless Settings Specification: 0002 - Basic List: 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 0. + Key\: \s = whitespace, except newline. \o = any printable character, except unescaped ':'. diff --git a/specifications/fss-0003.txt b/specifications/fss-0003.txt index eedb7de..47d6c6e 100644 --- a/specifications/fss-0003.txt +++ b/specifications/fss-0003.txt @@ -19,6 +19,8 @@ Featureless Settings Specification: 0003 - Extended List: 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 0. + Key\: \s = whitespace, except newline. \o = any printable character, except unescaped '{'. -- 1.8.3.1