]> Kevux Git Server - fll/commitdiff
Update: redesign console processing code
authorKevin Day <thekevinday@gmail.com>
Fri, 30 Aug 2019 17:48:54 +0000 (12:48 -0500)
committerKevin Day <thekevinday@gmail.com>
Fri, 30 Aug 2019 17:48:54 +0000 (12:48 -0500)
Simplify the console structure and reduce the size of codes and parameters.

The "extra" parameter seems a bit overkill, remove it and help keep this project more along the lines of the idea of "Featureless".

Rewrite and document fl_process_parameters().

Implementing functions were only functionally updated.
Additional changes are likely necessary for the logic, such as supporting multiple calls like "program -h +n +l", which by order of operation the final "+l" should override the "+n".

16 files changed:
level_0/f_colors/c/colors.h
level_0/f_console/c/console.c
level_0/f_console/c/console.h
level_0/f_types/c/types.h
level_1/fl_console/c/console.c
level_1/fl_console/c/console.h
level_3/firewall/c/firewall.h
level_3/fss_basic_list_read/c/fss_basic_list_read.h
level_3/fss_basic_list_write/c/fss_basic_list_write.h
level_3/fss_basic_read/c/fss_basic_read.h
level_3/fss_basic_write/c/fss_basic_write.h
level_3/fss_extended_read/c/fss_extended_read.h
level_3/fss_extended_write/c/fss_extended_write.h
level_3/fss_status_code/c/fss_status_code.h
level_3/init/c/init.h
level_3/status_code/c/status_code.h

index b42616f887d9a5be7a20d82f432fe97fa5e8e187..cfcae9281635f433f42279cb59c884535ac9885d 100644 (file)
@@ -101,6 +101,15 @@ extern "C" {
   #define f_colors_format_initialize_xterminal { "\033[", "m", ";" }
 #endif // _di_f_colors_format_
 
+/**
+ * A structure containing all supported color codes.
+ *
+ * Different system will support a different set.
+ *
+ * Custom initializers are provided for common defaults:
+ * - f_colors_initialize_linux: ideal for linux console.
+ * - f_colors_initialize_xterminal: ideal for linux x-terminal.
+ */
 #ifndef _di_f_colors_
   typedef struct {
     const char *reset;
@@ -147,6 +156,13 @@ extern "C" {
   #define f_colors_initialize_xterminal { "0", "1", "4", "5", "7", "8", "30", "31", "32", "33", "34", "35", "36", "37", "40", "41", "42", "43", "44", "45", "46", "47", "90", "91", "92", "93", "94", "95", "96", "97", "100", "101", "102", "103", "104", "105", "106", "107" }
 #endif // _di_f_colors_
 
+/**
+ * Provide global default global instances of f_colors structures.
+ *
+ * Supported instances:
+ * - f_colors_format_linux: ideal for linux console.
+ * - f_colors_format_xterminal: ideal for linux x-terminal.
+ */
 #ifndef _di_f_default_colors_
   static const f_colors_format f_colors_format_linux     = f_colors_format_initialize_linux;
   static const f_colors_format f_colors_format_xterminal = f_colors_format_initialize_xterminal;
index 7060a4f5bc5d59ceb54583c2d274bfd610ab66ec..6196f15b78a4810399a16acd1147e528a8cea428 100644 (file)
@@ -10,22 +10,18 @@ extern "C" {
       if (result == 0) return f_status_set_error(f_invalid_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    const f_string_length length = strnlen(input, 4);
+    const f_string_length length = strnlen(input, 3);
 
     if (length == 0) {
       *result = f_console_none;
-      return f_none;
+      return f_no_data;
     }
 
     if (input[0] == f_console_symbol_enable) {
       if (length > 1) {
         if (input[1] == f_console_symbol_enable) {
           if (length > 2) {
-            if (input[2] == f_console_symbol_enable) {
-              if (length > 3) *result = f_console_extra_enable;
-              else *result = f_console_empty_extra_enable;
-            }
-            else *result = f_console_long_enable;
+            *result = f_console_long_enable;
           }
           else *result = f_console_empty_long_enable;
         }
@@ -37,11 +33,7 @@ extern "C" {
       if (length > 1) {
         if (input[1] == f_console_symbol_disable) {
           if (length > 2) {
-            if (input[2] == f_console_symbol_disable) {
-              if (length > 3) *result = f_console_extra_disable;
-              else *result = f_console_empty_extra_disable;
-            }
-            else *result = f_console_long_disable;
+            *result = f_console_long_disable;
           }
           else *result = f_console_empty_long_disable;
         }
index 76262267437b68b2d39d4856b6c751c0e34e67f2..f751357cbf512478dfe805d1c1dd6fd8584035c2 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
 #endif
 
 /**
- * result values that represent the type of command found.
+ * Result values that represent the type of command found.
  */
 #ifndef _di_f_console_ids_
   enum {
@@ -32,19 +32,15 @@ extern "C" {
     f_console_short_disable,
     f_console_long_enable,
     f_console_long_disable,
-    f_console_extra_enable,
-    f_console_extra_disable,
     f_console_empty_short_enable,
     f_console_empty_short_disable,
     f_console_empty_long_enable,
     f_console_empty_long_disable,
-    f_console_empty_extra_enable,
-    f_console_empty_extra_disable,
   };
 #endif // _di_f_console_ids_
 
 /**
- * the symbols passed to the program for option handling.
+ * The symbols passed to the program for option handling.
  *
  * The following will be processed as an integer and therefore must not be string.
  * - f_console_symbol_enable
@@ -59,12 +55,11 @@ extern "C" {
 
   #define f_console_symbol_long_enable  "--"
   #define f_console_symbol_long_disable "++"
-
-  #define f_console_symbol_extra_enable  "---"
-  #define f_console_symbol_extra_disable "+++"
 #endif // _di_f_console_symbols_
 
-// create some standard command line parameter options required by the kevux/fss/fll specifications.
+/**
+ * Create some standard command line parameter options required by the kevux/fss/fll specifications.
+ */
 #ifndef _di_f_standard_console_parameters_
   #define f_console_standard_short_debug    "d"
   #define f_console_standard_short_help     "h"
@@ -79,35 +74,43 @@ extern "C" {
   #define f_console_standard_long_version  "version"
 #endif // _di_f_standard_console_parameters_
 
-// the maximum size for a single parameter (this should be hellishly more than enough)
+/**
+ * The maximum size for a single parameter.
+ */
 #ifndef _di_f_console_max_size_
   #define f_console_max_size f_string_max_size
 #endif // _di_f_console_max_size_
 
+/**
+ * Provide a default allocation step.
+ *
+ * For a UTF-8 friendly allocation step, set to at least 4.
+ */
 #ifndef _di_f_console_default_allocation_step_
-  // provide a UTF-8 friendly allocation step.
   #define f_console_default_allocation_step 4
 #endif // _di_f_console_default_allocation_step_
 
+
+/**
+ * Provide console type enumerations:
+ *
+ * - none: parameter not found.
+ * - found: parameter found.
+ * - additional: parameter found, extra data exists (such as '-f filename', 'filename' would be the extra data).
+ *
+ * - normal: parameters using minus sign, such as '--help'.
+ * - inverse: parameters using plus sign, such as '++version'.
+ * - other: parameters using neither minus nor plus sign, such as 'build'.
+ */
 #ifndef _di_f_console_types_
   typedef f_min_u_short f_console_id;
 
-  /**
-   * none: parameter not found.
-   * found: parameter found.
-   * additional: parameter found, extra data exists (such as '-f filename', 'filename' would be the extra data).
-   */
   enum {
     f_console_result_none,
     f_console_result_found,
     f_console_result_additional,
   };
 
-  /**
-   * normal: parameters using minus sign, such as '--help'.
-   * inverse: parameters using plus sign, such as '++version'.
-   * other: parameters using neither minus nor plus sign, such as 'build'.
-   */
   enum {
     f_console_type_normal,
     f_console_type_inverse,
@@ -115,83 +118,59 @@ extern "C" {
   };
 #endif // _di_f_console_types_
 
+/**
+ * Provide a structure for describing console parameters for the console processing functions to use.
+ *
+ * The short parameters are will be prepended with either '-' or '+'.
+ * The long parameters are will be prepended with either '--' or '++'.
+ * The other parameters are for any other parameter that has no prepended characters.
+ *
+ * - symbol_short: The single character string, such as 'h' in '-h'.
+ * - symbol_long: The multi-character string, such as 'help' in '--help'.
+ * - symbol_other: The special meaning parameter, such as 'all' in 'make all'.
+ *
+ * - has_additional: Designates that a parameter will have a given number of additional arguments, such as 'blue' in '--color blue'.
+ * - type: One of the f_console_type_* codes, defining how this parameter is to be processed.
+ * - result: A code representing that the parameter was found and how it was found ('-h' vs '--help').
+ * - total: A number representing the total number of times this parameter was found ('-h -h' would result in a total of 2).
+ * - additional: An array of locations representing where in the argv[] the additional arguments are found.
+ */
 #ifndef _di_f_console_parameter_
   typedef struct {
     const char *symbol_short;
     const char *symbol_long;
-    const char *symbol_extra;
     const char *symbol_other;
 
-    const f_bool has_additional;
-    const f_u_int type;
-    f_u_int result;
+    const uint8_t has_additional;
+    const uint8_t type;
+
+    uint8_t result;
+    uint8_t total;
 
     f_string_lengths additional;
-    f_string_length length;
   } f_console_parameter;
 
-  #define f_console_parameter_initialize(symbol_short, symbol_long, symbol_extra, symbol_other, has_additional, type_value, length) \
-    { symbol_short, symbol_long, symbol_extra, symbol_other, has_additional, type_value, f_console_result_none, f_string_lengths_initialize, length }
+  #define f_console_parameter_initialize(symbol_short, symbol_long, symbol_other, has_additional, type_value) \
+    { symbol_short, symbol_long, symbol_other, has_additional, type_value, f_console_result_none, 0, f_string_lengths_initialize }
 #endif // _di_f_console_parameter_
 
+/**
+ * Determine the type code the given input parameter represents.
+ *
+ * @param input
+ *   The input parameter to process.
+ * @param result
+ *   The resulting console type code determined by this function.
+ *
+ * @return
+ *   f_none on success.
+ *   f_no_data the input string is empty.
+ *   f_reallocation_error (with error bit) on memory reallocation error.
+ */
 #ifndef _di_f_console_identify_
-  /**
-   * This is used to help standardize a single method of handling command line option parsing.
-   * This should allow for every single command line program to use the same form of syntax for command line options.
-   */
   extern f_return_status f_console_identify(const f_string input, f_console_id *result);
 #endif // _di_f_console_identify_
 
-#ifndef _di_f_console_is_enable_
-  /**
-   * perform checks against short & long options to see if the string is one of them (normal).
-   */
-  #define f_console_is_enable(result, string, short_option, long_option, max_length) \
-          ((result == f_console_short_enable && strncmp(string, short_option, max_length) == 0) || \
-          (result == f_console_long_enable && strncmp(string, long_option, max_length) == 0))
-#endif // _di_f_console_is_enable_
-
-#ifndef _di_f_console_is_disable_
-  /**
-   * perform checks against short & long options to see if the string is one of them (inverse).
-   */
-  #define f_console_is_disable(result, string, short_option, long_option, max_length) \
-          ((result == f_console_short_disable && strncmp(string, short_option, max_length) == 0) || \
-          (result == f_console_long_disable && strncmp(string, long_option, max_length) == 0))
-#endif // _di_f_console_is_disable_
-
-#ifndef _di_f_console_is_extra_enable_
-  /**
-   * perform checks against extra option to see if the string is one of them (normal).
-   */
-  #define f_console_is_extra_enable(result, string, extra_option, max_length) \
-          (result == f_console_extra_enable && strncmp(string, extra_option, max_length) == 0)
-#endif // _di_f_console_is_extra_enable_
-
-#ifndef _di_f_console_is_extra_disable_
-  /**
-   * perform checks against extra option to see if the string is one of them (inverse).
-   */
-  #define f_console_is_extra_disable(result, string, extra_option, max_length) \
-          (result == f_console_extra_disable && strncmp(string, extra_option, max_length) == 0)
-#endif // _di_f_console_is_extra_disable_
-
-#ifndef _di_f_console_is_empty_enable_
-  /**
-   * perform checks against empty options to see if the string is one of them (normal).
-   */
-  #define f_console_is_empty_enable(result, string) \
-          (result == f_console_empty_short_enable || result == f_console_empty_long_enable || result == f_console_empty_extra_enable)
-#endif // _di_f_console_is_empty_enable_
-
-#ifndef _di_f_console_is_empty_disable_
-  /**
-   * perform checks against empty options to see if the string is one of them (inverse).
-   */
-  #define f_console_is_empty_disable(result, string) \
-          (result == f_console_empty_short_disable || result == f_console_empty_long_disable || result == f_console_empty_extra_disable)
-#endif // _di_f_console_is_empty_disable_
-
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 9cde8acb2571b9656949a07cd3e2c01a479042bc..9972d8a9de4de56b9a331eac902a2f4ae23b49bd 100644 (file)
@@ -7,22 +7,22 @@
  *
  * Provides datatype re-definitions
  * If your compiler lacks the ability to produce such, simply re-define them as needed
- * An "ideal" definition for a standard expected size would be (64-bit):
+ * An "ideal" definition for a standard expected size would be:
  *   char:      2^8   = 256
- *   short:     2^32  = 4294967296
- *   int:       2^64  = 1.84467e19
- *   long:      2^128 = 3.40282e38
- *   long long: 2^256 = 1.15792e77
+ *   short:     2^16  = 65536
+ *   int:       2^32  = 4294967296
+ *   long:      2^64  = 1.84467e19
+ *   long long: 2^128 = 3.40282e38
  *
  * If you need exact size, use one of the following:
- *   int8_t:   2^7 (signed)
- *   uint8_t:  2^8 (unsigned)
- *   int16_t:  2^15 (signed)
- *   uint16_t: 2^16 (unsigned)
- *   int32_t:  2^31 (signed)
- *   uint32_t: 2^32 (unsigned)
- *   int64_t:  2^63 (signed)
- *   uint64_t: 2^64 (unsigned)
+ *   int8_t:   2^7  (8-bit  signed)
+ *   uint8_t:  2^8  (8-bit  unsigned)
+ *   int16_t:  2^15 (16-bit signed)
+ *   uint16_t: 2^16 (16-bit unsigned)
+ *   int32_t:  2^31 (32-bit signed)
+ *   uint32_t: 2^32 (32-bit unsigned)
+ *   int64_t:  2^63 (64-bit signed)
+ *   uint64_t: 2^64 (64-bit unsigned)
  */
 #ifndef _F_types_h
 #define _F_types_h
index 1a2bd80dfbde9004e82d95ad3e9a4844397e35b6..425b791573724f1b9a61820cdb91d446ffb03be1 100644 (file)
@@ -14,13 +14,17 @@ extern "C" {
     f_console_id result = 0;
     f_bool found = f_false;
 
-    f_array_length location = 1; // parameter 0 represents the program name so skip it
+    f_array_length location = 1; // Parameter 0 represents the program name so skip it.
     f_string_length sub_location = 0;
-    f_string_length increments = 0;
+    f_string_length increment_by = 0;
     f_string_length string_length = 0;
     f_array_length parameter_counter = 0;
 
-    f_string_lengths extra_initiator = f_string_lengths_initialize;
+    f_u_short console_short = f_console_none;
+    f_u_short console_long = f_console_none;
+    f_u_short console_type = f_console_type_normal;
+
+    f_string_lengths needs_additional = f_string_lengths_initialize;
 
     // loop through and read all parameters
     while (location < argc) {
@@ -30,131 +34,117 @@ extern "C" {
 
       // process the current parameter
       if (result == f_console_short_enable || result == f_console_short_disable) {
-        increments = 1;
+        increment_by = 1;
         sub_location = 1;
       }
       else if (result == f_console_long_enable || result == f_console_long_disable) {
-        increments = string_length;
+        increment_by = string_length;
         sub_location = 2;
       }
-      else if (result == f_console_extra_enable || result == f_console_extra_disable) {
-        increments = string_length;
-        sub_location = 3;
-      }
       else {
-        increments = 1;
+        increment_by = string_length;
         sub_location = 0;
       }
 
-      // Now handle the normal commands
-      if (argv[location][0] == f_console_symbol_enable) {
-        if (sub_location < string_length) {
-          for (parameter_counter = 0; parameter_counter < total_parameters; parameter_counter++) {
-            if (parameters[parameter_counter].type != f_console_type_normal) {
-              continue;
-            }
-
-            if (parameters[parameter_counter].symbol_short != 0 && parameters[parameter_counter].symbol_long != 0) {
-              if (f_console_is_enable(result, &argv[location][sub_location], parameters[parameter_counter].symbol_short, parameters[parameter_counter].symbol_long, string_length + 1)) {
-                parameters[parameter_counter].result = f_console_result_found;
-
-                if (parameters[parameter_counter].has_additional) {
-                  if (extra_initiator.used >= extra_initiator.size) {
-                    f_status allocation_status = f_none;
+      // Handle the normal commands.
+      if (result == f_console_short_enable || result == f_console_long_enable) {
+        console_short = f_console_short_enable;
+        console_long = f_console_long_enable;
+        console_type = f_console_type_normal;
+      }
+      else if (result == f_console_short_disable || result == f_console_long_disable) {
+        console_short = f_console_short_disable;
+        console_long = f_console_long_disable;
+        console_type = f_console_type_inverse;
+      }
+      else {
+        console_short = f_console_none;
+      }
 
-                    f_resize_string_lengths(allocation_status, extra_initiator, extra_initiator.size + f_console_default_allocation_step);
-                    if (f_status_is_error(allocation_status)) {
-                      f_delete_string_lengths(status, extra_initiator);
-                      return f_status_set_error(allocation_status);
-                    }
-                  }
+      // Additional parameters must always follow what requests them.
+      if (needs_additional.used > 0) {
+        parameter_counter = needs_additional.array[0];
 
-                  extra_initiator.array[extra_initiator.used] = parameter_counter;
-                  extra_initiator.used++;
-                }
-              }
-            }
+        if (parameters[parameter_counter].additional.used >= parameters[parameter_counter].additional.size) {
+          f_status allocation_status = f_none;
 
-            if (parameters[parameter_counter].symbol_extra != 0) {
-              if (f_console_is_extra_enable(result, &argv[location][sub_location], parameters[parameter_counter].symbol_extra, string_length + 1)) {
-                parameters[parameter_counter].result = f_console_result_found;
+          f_resize_string_lengths(allocation_status, parameters[parameter_counter].additional, parameters[parameter_counter].additional.size + f_console_default_allocation_step);
 
-                if (parameters[parameter_counter].has_additional) {
-                  if (extra_initiator.used >= extra_initiator.size) {
-                    f_status allocation_status = f_none;
+          if (f_status_is_error(allocation_status)) {
+            f_delete_string_lengths(status, needs_additional);
+            return f_status_set_error(allocation_status);
+          }
+        }
 
-                    f_resize_string_lengths(allocation_status, extra_initiator, extra_initiator.size + f_console_default_allocation_step);
+        parameters[parameter_counter].result = f_console_result_additional;
+        parameters[parameter_counter].additional.array[parameters[parameter_counter].additional.used] = location;
+        parameters[parameter_counter].additional.used++;
 
-                    if (f_status_is_error(allocation_status)) {
-                      f_delete_string_lengths(status, extra_initiator);
-                      return f_status_set_error(allocation_status);
-                    }
-                  }
+        needs_additional.used--;
 
-                  extra_initiator.array[extra_initiator.used] = parameter_counter;
-                  extra_initiator.used++;
-                }
-              }
-            }
-          } // for
-        }
+        // Pop the matched parameter off of the top of the needs_additional array.
+        for (f_string_length i = 0; i < needs_additional.used; i++) {
+          needs_additional.array[i] = needs_additional.array[i + 1];
+        } // for
       }
-      // now handle the inverse commands
-      else if (argv[location][0] == f_console_symbol_disable) {
-        if (sub_location < string_length) {
+      else if (console_short > f_console_none) {
+        // The sub_location is used on a per increment basis (such as 'tar -xcf', the '-' would have an increment of 1, therefore x, c, and f would all be three separate parameters).
+        while (sub_location < string_length) {
           for (parameter_counter = 0; parameter_counter < total_parameters; parameter_counter++) {
-            if (parameters[parameter_counter].type != f_console_type_inverse) {
+            if (parameters[parameter_counter].type != console_type) {
               continue;
             }
 
-            if (parameters[parameter_counter].symbol_short != 0 && parameters[parameter_counter].symbol_long != 0) {
-              if (f_console_is_disable(result, &argv[location][sub_location], parameters[parameter_counter].symbol_short, parameters[parameter_counter].symbol_long, string_length + 1)) {
-                parameters[parameter_counter].result = f_console_result_found;
-
-                if (parameters[parameter_counter].has_additional) {
-                  if (extra_initiator.used >= extra_initiator.size) {
-                    f_status allocation_status = f_none;
-
-                    f_resize_string_lengths(allocation_status, extra_initiator, extra_initiator.size + f_console_default_allocation_step);
-
-                    if (f_status_is_error(allocation_status)) {
-                      f_delete_string_lengths(status, extra_initiator);
-                      return f_status_set_error(allocation_status);
-                    }
-                  }
+            if (result == console_short) {
+              if (parameters[parameter_counter].symbol_short == 0) {
+                continue;
+              }
 
-                  extra_initiator.array[extra_initiator.used] = parameter_counter;
-                  extra_initiator.used++;
-                }
+              if (strncmp(&argv[location][sub_location], parameters[parameter_counter].symbol_short, increment_by + 1) != 0) {
+                continue;
               }
             }
+            else if (result == console_long) {
+              if (parameters[parameter_counter].symbol_long == 0) {
+                continue;
+              }
 
-            if (parameters[parameter_counter].symbol_extra != 0) {
-              if (f_console_is_extra_disable(result, &argv[location][sub_location], parameters[parameter_counter].symbol_extra, string_length + 1)) {
-                parameters[parameter_counter].result = f_console_result_found;
+              if (strncmp(&argv[location][sub_location], parameters[parameter_counter].symbol_long, increment_by + 1) != 0) {
+                continue;
+              }
+            }
+            else {
+              continue;
+            }
 
-                if (parameters[parameter_counter].has_additional) {
-                  if (extra_initiator.used >= extra_initiator.size) {
-                    f_status allocation_status = f_none;
+            parameters[parameter_counter].result = f_console_result_found;
+            parameters[parameter_counter].total++;
 
-                    f_resize_string_lengths(allocation_status, extra_initiator, extra_initiator.size + f_console_default_allocation_step);
+            if (parameters[parameter_counter].has_additional) {
+              if (needs_additional.used + parameters[parameter_counter].has_additional > needs_additional.size) {
+                f_status allocation_status = f_none;
 
-                    if (f_status_is_error(allocation_status)) {
-                      f_delete_string_lengths(status, extra_initiator);
-                      return f_status_set_error(allocation_status);
-                    }
-                  }
+                f_resize_string_lengths(allocation_status, needs_additional, needs_additional.used + parameters[parameter_counter].has_additional);
 
-                  extra_initiator.array[extra_initiator.used] = parameter_counter;
-                  extra_initiator.used++;
+                if (f_status_is_error(allocation_status)) {
+                  f_delete_string_lengths(status, needs_additional);
+                  return f_status_set_error(allocation_status);
                 }
               }
+
+              for (f_array_length additional = 0; additional < parameters[parameter_counter].has_additional; additional++) {
+                needs_additional.array[needs_additional.used] = parameter_counter;
+                needs_additional.used++;
+              } // for
             }
+
+            break;
           } // for
-        }
+
+          sub_location += increment_by;
+        } // while
       }
       else {
-        // use found to determine if the remaining parameter should be populated
         found = f_false;
 
         for (parameter_counter = 0; parameter_counter < total_parameters; parameter_counter++) {
@@ -162,78 +152,61 @@ extern "C" {
             continue;
           }
 
-          if (parameters[parameter_counter].length > 0 && parameters[parameter_counter].symbol_other != 0) {
-            if (strncmp(argv[location], parameters[parameter_counter].symbol_other, parameters[parameter_counter].length + 1) == 0) {
+          if (parameters[parameter_counter].symbol_other == 0) {
+            continue;
+          }
+
+          if (strncmp(argv[location], parameters[parameter_counter].symbol_other, string_length + 1) != 0) {
+            continue;
+          }
+
+          parameters[parameter_counter].result = f_console_result_found;
+          parameters[parameter_counter].total++;
+
+          if (parameters[parameter_counter].has_additional) {
+            if (needs_additional.used + parameters[parameter_counter].has_additional > needs_additional.size) {
               f_status allocation_status = f_none;
 
-              if (parameters[parameter_counter].additional.used >= parameters[parameter_counter].additional.size) {
-                f_resize_string_lengths(allocation_status, parameters[parameter_counter].additional, parameters[parameter_counter].additional.size + f_console_default_allocation_step);
-              }
+              f_resize_string_lengths(allocation_status, needs_additional, needs_additional.used + parameters[parameter_counter].has_additional);
 
               if (f_status_is_error(allocation_status)) {
-                f_delete_string_lengths(status, extra_initiator);
+                f_delete_string_lengths(status, needs_additional);
                 return f_status_set_error(allocation_status);
               }
-
-              parameters[parameter_counter].result = f_console_result_found;
-
-              // when "other" is supplied, the extra will be recycled to represent the location of the "other" such that ordering can be determined by the caller
-              parameters[parameter_counter].additional.array[parameters[parameter_counter].additional.used] = location;
-              parameters[parameter_counter].additional.used++;
-
-              found = f_true;
-              break;
             }
+
+            for (f_array_length additional = 0; additional < parameters[parameter_counter].has_additional; additional++) {
+              needs_additional.array[needs_additional.used] = parameter_counter;
+              needs_additional.used++;
+            } // for
           }
+
+          found = f_true;
+          break;
         } // for
 
         if (!found) {
-          if (extra_initiator.used > 0) {
+          // populate list of remaining parameters not associated with anything.
+          if (remaining->used >= remaining->size) {
             f_status allocation_status = f_none;
 
-            if (parameters[extra_initiator.array[0]].additional.used >= parameters[extra_initiator.array[0]].additional.size) {
-              f_resize_string_lengths(allocation_status, parameters[extra_initiator.array[0]].additional, parameters[extra_initiator.array[0]].additional.size + f_console_default_allocation_step);
-            }
+            f_resize_string_lengths(allocation_status, (*remaining), remaining->size + f_console_default_allocation_step);
 
             if (f_status_is_error(allocation_status)) {
-              f_delete_string_lengths(status, extra_initiator);
+              f_delete_string_lengths(status, needs_additional);
               return f_status_set_error(allocation_status);
             }
-
-            parameters[extra_initiator.array[0]].result = f_console_result_additional;
-            parameters[extra_initiator.array[0]].additional.array[parameters[extra_initiator.array[0]].additional.used] = location;
-            parameters[extra_initiator.array[0]].additional.used++;
-
-            extra_initiator.used--;
-
-            f_string_length i = 0;
-
-            for (; i < extra_initiator.used; i++) {
-              extra_initiator.array[i] = extra_initiator.array[i + 1];
-            } // for
           }
-          else {
-            if (remaining->used >= remaining->size) {
-              f_status allocation_status = f_none;
-
-              f_resize_string_lengths(allocation_status, (*remaining), remaining->size + f_console_default_allocation_step);
-
-              if (f_status_is_error(allocation_status)) {
-                f_delete_string_lengths(status, extra_initiator);
-                return f_status_set_error(allocation_status);
-              }
-            }
 
-            remaining->array[remaining->used] = location;
-            remaining->used++;
-          }
+          remaining->array[remaining->used] = location;
+          remaining->used++;
         }
       }
 
-      ++location;
+      location++;
     } // while
 
-    if (extra_initiator.used > 0) {
+    if (needs_additional.used > 0) {
       status = f_no_data;
     }
     else {
@@ -242,7 +215,7 @@ extern "C" {
 
     {
       f_status allocation_status = f_none;
-      f_delete_string_lengths(allocation_status, extra_initiator);
+      f_delete_string_lengths(allocation_status, needs_additional);
     }
 
     return status;
index 3d25a3aee413226d9bcffc624f67b1133e3f3b72..a5c6823feb5b4b6b1b7096752f07f43abb5f6b27 100644 (file)
@@ -26,6 +26,28 @@ extern "C" {
 /**
  * Process console parameters.
  *
+ * Short parameters are processed as follows:
+ * - Begin with either '-' or '+'.
+ * - "Empty" parameters are allow, such that '-' or '+' are valid parameters.
+ * - Are one character long.
+ * - May be grouped as a single parameter, such as "tar -xcf" and "tar -x -c -f" are equivalent.
+ * - Additional parameters must immediately follow the parameter or grouped parameters, such as "tar -xfc file.tar.gz" or "tar -x -f file.tar.gz -c".
+ *
+ * Long parameters are processed as follows:
+ * - Begin with either '--' or '++'.
+ * - "Empty" parameters are allow, such that '--' or '++' are valid parameters.
+ * - Are any length long so long as it is less than f_console_max_size.
+ * - May not be grouped and must be separated from any subsequent parameter, such as: "tar --extract --create --file".
+ * - Additional parameters must immediately follow the parameter, such as "tar --extract --file file.tar.gz --create".
+ *
+ * Other parameters are processed as follows:
+ * - Anything that does not begin with '-', '+', '--', or '++'.
+ * - Are any length long so long as it is less than f_console_max_size.
+ * - May not be grouped and must be separated from any subsequent parameter, such as: "tar extract create file".
+ * - Additional parameters must immediately follow the parameter, such as "tar extract file file.tar.gz create".
+ *
+ * The UTF-8 BOM is not allowed in the parameters.
+ *
  * @param argc
  *   The number of parameters passed to the process.
  * @param argv
@@ -37,7 +59,7 @@ extern "C" {
  *
  * @return
  *   f_none on success.
- *   f_no_data if no "extra" parameters were found.
+ *   f_no_data if "additional" parameters were expected but not found.
  *   f_invalid_parameter (with error bit) if a parameter is invalid.
  *   f_reallocation_error (with error bit) on memory reallocation error.
  */
index 7c134ba36476087732187972660fca4502967de3..c712ce5bcce6d8a3d3c641e5edf916b54778ecfb 100644 (file)
@@ -102,12 +102,6 @@ extern "C" {
   #define firewall_command_lock    "lock"
   #define firewall_command_show    "show"
 
-  #define firewall_command_start_length   5
-  #define firewall_command_stop_length    4
-  #define firewall_command_restart_length 7
-  #define firewall_command_lock_length    4
-  #define firewall_command_show_length    4
-
   #define firewall_ip_list                    "ip_list"
   #define firewall_ip_list_source             "source"
   #define firewall_ip_list_source_action      "-s"
@@ -245,31 +239,31 @@ extern "C" {
   #ifdef _en_firewall_debug_
     #define f_console_parameter_initialize_firewall \
       { \
-        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_debug, f_console_standard_long_debug, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_start, f_false, f_console_type_other, firewall_command_start_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_stop, f_false, f_console_type_other, firewall_command_stop_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_restart, f_false, f_console_type_other, firewall_command_restart_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_lock, f_false, f_console_type_other, firewall_command_lock_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_show, f_false, f_console_type_other, firewall_command_show_length), \
+        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_debug, f_console_standard_long_debug, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(0, 0, firewall_command_start, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_stop, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_restart, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_lock, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_show, f_false, f_console_type_other), \
       }
 
     #define firewall_total_parameters 10
   #else
     #define f_console_parameter_initialize_firewall \
       { \
-        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_start, f_false, f_console_type_other, firewall_command_start_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_stop, f_false, f_console_type_other, firewall_command_stop_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_restart, f_false, f_console_type_other, firewall_command_restart_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_lock, f_false, f_console_type_other, firewall_command_lock_length), \
-        f_console_parameter_initialize(0, 0, 0, firewall_command_show, f_false, f_console_type_other, firewall_command_show_length), \
+        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(0, 0, firewall_command_start, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_stop, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_restart, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_lock, f_false, f_console_type_other), \
+        f_console_parameter_initialize(0, 0, firewall_command_show, f_false, f_console_type_other), \
       }
 
     #define firewall_total_parameters 9
index 280d94bf4dd9ed73da6b74b284ad5dde376239b3..20d4c13647dc2b157ad79a2a5a21a4f72ee5badc 100644 (file)
@@ -85,16 +85,16 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_basic_list_read \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_basic_list_read_short_name, fss_basic_list_read_long_name, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_read_short_count, fss_basic_list_read_long_count, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_read_short_total, fss_basic_list_read_long_total, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_read_short_object, fss_basic_list_read_long_object, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_read_short_size, fss_basic_list_read_long_size, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_read_short_line, fss_basic_list_read_long_line, 0, 0, f_true, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_basic_list_read_short_name, fss_basic_list_read_long_name, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_read_short_count, fss_basic_list_read_long_count, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_read_short_total, fss_basic_list_read_long_total, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_read_short_object, fss_basic_list_read_long_object, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_read_short_size, fss_basic_list_read_long_size, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_read_short_line, fss_basic_list_read_long_line, 0, f_true, f_console_type_normal), \
     }
 
   #define fss_basic_list_read_total_parameters 10
index 30e1d644fad4c17c7818743583f3ec1499552106..293147a8de10d8247f3c1301db4d33d6747cb3d0 100644 (file)
@@ -72,13 +72,13 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_basic_list_write \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_basic_list_write_short_object, fss_basic_list_write_long_object, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_write_short_file, fss_basic_list_write_long_file, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_list_write_short_string, fss_basic_list_write_long_string, 0, 0, f_true, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_basic_list_write_short_object, fss_basic_list_write_long_object, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_write_short_file, fss_basic_list_write_long_file, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_list_write_short_string, fss_basic_list_write_long_string, 0, f_true, f_console_type_normal), \
     }
 
   #define fss_basic_list_write_total_parameters 7
index b258b9d276686d5deea6c927e717784140f13241..12817fd5318636c35894170f326dc92b2b98d851 100644 (file)
@@ -79,14 +79,14 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_basic_read \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_basic_read_short_name, fss_basic_read_long_name, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_read_short_count, fss_basic_read_long_count, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_read_short_total, fss_basic_read_long_total, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_read_short_object, fss_basic_read_long_object, 0, 0, f_false, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_basic_read_short_name, fss_basic_read_long_name, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_read_short_count, fss_basic_read_long_count, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_read_short_total, fss_basic_read_long_total, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_read_short_object, fss_basic_read_long_object, 0, f_false, f_console_type_normal), \
     }
 
   #define fss_basic_read_total_parameters 8
index 2fdbfc28c81734322a45e53cf3fc983edca7add3..04f5fac4c8e0e8c502e8ac0d0a2a9f680467ee8c 100644 (file)
@@ -71,13 +71,13 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_basic_write \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_basic_write_short_object, fss_basic_write_long_object, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_write_short_file, fss_basic_write_long_file, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_basic_write_short_string, fss_basic_write_long_string, 0, 0, f_true, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_basic_write_short_object, fss_basic_write_long_object, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_write_short_file, fss_basic_write_long_file, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_basic_write_short_string, fss_basic_write_long_string, 0, f_true, f_console_type_normal), \
     }
 
   #define fss_basic_write_total_parameters 7
index 4d77c53503df2fd4ad298d0974f9e4c219c3c29a..2ca873c3b6b8e2f03a0e2a708e66bccb00966316 100644 (file)
@@ -82,15 +82,15 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_extended_read \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_extended_read_short_name, fss_extended_read_long_name, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_read_short_count, fss_extended_read_long_count, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_read_short_total, fss_extended_read_long_total, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_read_short_object, fss_extended_read_long_object, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_read_short_select, fss_extended_read_long_select, 0, 0, f_true, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_extended_read_short_name, fss_extended_read_long_name, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_read_short_count, fss_extended_read_long_count, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_read_short_total, fss_extended_read_long_total, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_read_short_object, fss_extended_read_long_object, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_read_short_select, fss_extended_read_long_select, 0, f_true, f_console_type_normal), \
     }
 
   #define fss_extended_read_total_parameters 9
index 1fb2077a0ca1350adf85345b1529494b341c2d96..6093d77ea1bf44e401c01999a9639876b3a1adeb 100644 (file)
@@ -75,14 +75,14 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_extended_write \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_extended_write_short_object, fss_extended_write_long_object, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_write_short_file, fss_extended_write_long_file, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_write_short_string, fss_extended_write_long_string, 0, 0, f_true, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_extended_write_short_partial, fss_extended_write_long_partial, 0, 0, f_false, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_extended_write_short_object, fss_extended_write_long_object, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_write_short_file, fss_extended_write_long_file, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_write_short_string, fss_extended_write_long_string, 0, f_true, f_console_type_normal), \
+      f_console_parameter_initialize(fss_extended_write_short_partial, fss_extended_write_long_partial, 0, f_false, f_console_type_normal), \
     }
 
   #define fss_extended_write_total_parameters 8
index fd220f40400af97f0dcdb8e533ab4a46bec1cc1b..d7f5cce48e8836b83a3429c02f6a4fb95cc6b798 100644 (file)
@@ -77,15 +77,15 @@ extern "C" {
 
   #define f_console_parameter_initialize_fss_status_code \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(fss_status_code_short_is_fine, fss_status_code_long_is_fine, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_status_code_short_is_warning, fss_status_code_long_is_warning, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_status_code_short_is_error, fss_status_code_long_is_error, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_status_code_short_context, fss_status_code_long_context, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(fss_status_code_short_number, fss_status_code_long_number, 0, 0, f_false, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(fss_status_code_short_is_fine, fss_status_code_long_is_fine, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_status_code_short_is_warning, fss_status_code_long_is_warning, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_status_code_short_is_error, fss_status_code_long_is_error, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_status_code_short_context, fss_status_code_long_context, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(fss_status_code_short_number, fss_status_code_long_number, 0, f_false, f_console_type_normal), \
     }
 
   #define fss_status_code_total_parameters 9
index cee48ab3ba6565b145735bed2171f5442488fe5d..66913990ba041c096f4071525376c30db3f2772d 100644 (file)
@@ -164,25 +164,25 @@ extern "C" {
   #ifdef _en_init_debug_
     #define f_console_parameter_initialize_init \
       { \
-        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_debug, f_console_standard_long_debug, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(init_parameter_runlevel_short_name, init_parameter_runlevel_long_name, 0, 0, f_true, f_console_type_normal, 0), \
-        f_console_parameter_initialize(init_parameter_no_prepare_short_name, init_parameter_no_prepare_long_name, 0, 0, f_true, f_console_type_normal, 0), \
+        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_debug, f_console_standard_long_debug, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(init_parameter_runlevel_short_name, init_parameter_runlevel_long_name, 0, f_true, f_console_type_normal), \
+        f_console_parameter_initialize(init_parameter_no_prepare_short_name, init_parameter_no_prepare_long_name, 0, f_true, f_console_type_normal), \
       }
 
     #define init_total_parameters 7
   #else
     #define f_console_parameter_initialize_init \
       { \
-        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-        f_console_parameter_initialize(init_parameter_runlevel_short_name, init_parameter_runlevel_long_name, 0, 0, f_true, f_console_type_normal, 0), \
-        f_console_parameter_initialize(init_parameter_no_prepare_short_name, init_parameter_no_prepare_long_name, 0, 0, f_true, f_console_type_normal, 0), \
+        f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+        f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+        f_console_parameter_initialize(init_parameter_runlevel_short_name, init_parameter_runlevel_long_name, 0, f_true, f_console_type_normal), \
+        f_console_parameter_initialize(init_parameter_no_prepare_short_name, init_parameter_no_prepare_long_name, 0, f_true, f_console_type_normal), \
       }
 
     #define init_total_parameters 6
index c7bb88ad4de456afed1f5d60649dddf605fe994e..d89f948994bdb6915a3f76f908627f93a60523b4 100644 (file)
@@ -74,15 +74,15 @@ extern "C" {
 
   #define f_console_parameter_initialize_status_code \
     { \
-      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, 0, f_false, f_console_type_inverse, 0), \
-      f_console_parameter_initialize(status_code_short_is_fine, status_code_long_is_fine, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(status_code_short_is_warning, status_code_long_is_warning, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(status_code_short_is_error, status_code_long_is_error, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(status_code_short_context, status_code_long_context, 0, 0, f_false, f_console_type_normal, 0), \
-      f_console_parameter_initialize(status_code_short_number, status_code_long_number, 0, 0, f_false, f_console_type_normal, 0), \
+      f_console_parameter_initialize(f_console_standard_short_help, f_console_standard_long_help, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(f_console_standard_short_light, f_console_standard_long_light, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_no_color, f_console_standard_long_no_color, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(f_console_standard_short_version, f_console_standard_long_version, 0, f_false, f_console_type_inverse), \
+      f_console_parameter_initialize(status_code_short_is_fine, status_code_long_is_fine, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(status_code_short_is_warning, status_code_long_is_warning, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(status_code_short_is_error, status_code_long_is_error, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(status_code_short_context, status_code_long_context, 0, f_false, f_console_type_normal), \
+      f_console_parameter_initialize(status_code_short_number, status_code_long_number, 0, f_false, f_console_type_normal), \
     }
 
   #define status_code_total_parameters 9