]> Kevux Git Server - fll/commitdiff
Bugfix: delimit whitespaces on write
authorKevin Day <kevin@kevux.org>
Wed, 21 Mar 2012 03:01:23 +0000 (22:01 -0500)
committerKevin Day <kevin@kevux.org>
Wed, 21 Mar 2012 03:01:23 +0000 (22:01 -0500)
I believe I had a mental lapse on this one.
The previous code was acting like a read operation in certain cases when dealing with whitespace.
When doing a write if a white space exists treat don't ignore it; instead, wrap it in quotes so that object names can contain spaces.
For example " " is a valid object name which is a object whose name is a single space.

level_1/fl_fss/c/fss_basic.c
level_1/fl_fss/c/fss_extended.c

index b6dd2dcecacc8debe1d43ac2ac9b7069472958b5..a4cc3f350967403da22918917de80cfeadb9428b 100644 (file)
@@ -277,10 +277,12 @@ extern "C"{
     f_string_length   start_position    = f_string_initialize;
     f_string_length   pre_allocate_size = f_string_length_initialize;
 
-    fl_macro_fss_skip_past_all_whitespace(buffer, (*input))
+    fl_macro_fss_skip_past_delimit_placeholders(buffer, (*input))
 
-    if (input->start >= buffer.used) {
-      return f_no_data;
+    if (input->start > input->stop) {
+      return f_no_data_on_stop;
+    } else if (input->start >= buffer.used) {
+      return f_no_data_on_eos;
     }
 
     start_position = input->start;
@@ -353,20 +355,6 @@ extern "C"{
         input->start++;
         continue;
       } else if (isspace(buffer.string[input->start])) {
-        f_string_length first_space = input->start;
-
-        input->start++;
-
-        while (input->start <= input->stop && input->start < buffer.used && isspace(buffer.string[input->start])) {
-          input->start++;
-        } // while
-
-        if (input->start > input->stop || input->start >= buffer.used) {
-          object->string[first_space] = f_fss_basic_open;
-          object->used = object_position.stop + 1;
-          break;
-        }
-
         // restart the loop searching for f_fss_delimit_double_quote.
         input->start = start_position;
         object_position.stop = object_position.start;
index 27fd4398f15c9edba28ae08cb6cf470a45376269..25f345d7822383f0b6a0efd2b06e5334b696f9de 100644 (file)
@@ -409,10 +409,12 @@ extern "C"{
     f_string_length   start_position    = f_string_initialize;
     f_string_length   pre_allocate_size = f_string_length_initialize;
 
-    fl_macro_fss_skip_past_all_whitespace(buffer, (*input))
+    fl_macro_fss_skip_past_delimit_placeholders(buffer, (*input))
 
-    if (input->start >= buffer.used) {
-      return f_no_data;
+    if (input->start > input->stop) {
+      return f_no_data_on_stop;
+    } else if (input->start >= buffer.used) {
+      return f_no_data_on_eos;
     }
 
     start_position = input->start;