]> Kevux Git Server - fll/commitdiff
Update: rename fl_program as fll_program, rename f_colors and fl_colors, move functio...
authorKevin Day <thekevinday@gmail.com>
Mon, 2 Sep 2019 05:50:51 +0000 (00:50 -0500)
committerKevin Day <thekevinday@gmail.com>
Mon, 2 Sep 2019 05:50:51 +0000 (00:50 -0500)
Cleanup the parameter processing code.
In the process:
- The fl_program was moved into fll_program.
- fll_colors_load_context() is at too high of a level, move it to fl_colors_load_context() (and deleting the now empty fll_colors project).
- Update programs to use the update fll_program helpers.
- The f_colors and fl_colors should now be f_color and fl_color.

Regenerate the package dependencies.

63 files changed:
build/level_0/settings
build/level_1/settings
build/level_2/settings
build/monolithic/settings
level_0/f_color/c/color.h [moved from level_0/f_colors/c/colors.h with 69% similarity]
level_0/f_color/data/build/dependencies [moved from level_0/f_colors/data/build/dependencies with 100% similarity]
level_0/f_color/data/build/settings [moved from level_0/f_colors/data/build/settings with 88% similarity]
level_1/fl_color/bash/color.sh [moved from level_1/fl_colors/bash/colors.sh with 100% similarity]
level_1/fl_color/c/color.c [moved from level_1/fl_colors/c/colors.c with 72% similarity]
level_1/fl_color/c/color.h [moved from level_1/fl_colors/c/colors.h with 69% similarity]
level_1/fl_color/data/build/dependencies [moved from level_1/fl_colors/data/build/dependencies with 84% similarity]
level_1/fl_color/data/build/settings [moved from level_1/fl_colors/data/build/settings with 82% similarity]
level_1/fl_console/c/console.h
level_1/fl_program/c/program.c [deleted file]
level_1/fl_program/c/program.h [deleted file]
level_1/fl_program/data/build/dependencies [deleted file]
level_2/fll_colors/c/colors.c [deleted file]
level_2/fll_colors/c/colors.h [deleted file]
level_2/fll_colors/data/build/settings [deleted file]
level_2/fll_program/c/program.c [new file with mode: 0644]
level_2/fll_program/c/program.h [new file with mode: 0644]
level_2/fll_program/data/build/dependencies [moved from level_2/fll_colors/data/build/dependencies with 53% similarity]
level_2/fll_program/data/build/settings [moved from level_1/fl_program/data/build/settings with 75% similarity]
level_3/firewall/c/firewall.c
level_3/firewall/c/firewall.h
level_3/firewall/data/build/dependencies
level_3/firewall/data/build/settings
level_3/fss_basic_list_read/c/fss_basic_list_read.c
level_3/fss_basic_list_read/c/fss_basic_list_read.h
level_3/fss_basic_list_read/data/build/dependencies
level_3/fss_basic_list_read/data/build/settings
level_3/fss_basic_list_write/c/fss_basic_list_write.c
level_3/fss_basic_list_write/c/fss_basic_list_write.h
level_3/fss_basic_list_write/data/build/dependencies
level_3/fss_basic_list_write/data/build/settings
level_3/fss_basic_read/c/fss_basic_read.c
level_3/fss_basic_read/c/fss_basic_read.h
level_3/fss_basic_read/data/build/dependencies
level_3/fss_basic_read/data/build/settings
level_3/fss_basic_write/c/fss_basic_write.c
level_3/fss_basic_write/c/fss_basic_write.h
level_3/fss_basic_write/data/build/dependencies
level_3/fss_basic_write/data/build/settings
level_3/fss_extended_read/c/fss_extended_read.c
level_3/fss_extended_read/c/fss_extended_read.h
level_3/fss_extended_read/data/build/dependencies
level_3/fss_extended_read/data/build/settings
level_3/fss_extended_write/c/fss_extended_write.c
level_3/fss_extended_write/c/fss_extended_write.h
level_3/fss_extended_write/data/build/dependencies
level_3/fss_extended_write/data/build/settings
level_3/fss_status_code/c/fss_status_code.c
level_3/fss_status_code/c/fss_status_code.h
level_3/fss_status_code/data/build/dependencies
level_3/fss_status_code/data/build/settings
level_3/init/c/init.c
level_3/init/c/init.h
level_3/init/data/build/dependencies
level_3/init/data/build/settings
level_3/status_code/c/status_code.c
level_3/status_code/c/status_code.h
level_3/status_code/data/build/dependencies
level_3/status_code/data/build/settings

index 78461911bd8364f49fd705deada01491f437c29d..e41ce5b3b269fcfef5a35747b88106d15b90ba73 100644 (file)
@@ -13,7 +13,7 @@ build_libraries -lc
 build_libraries_fll
 build_sources_library console.c conversion.c file.c memory.c pipe.c print.c utf.c
 build_sources_program
-build_sources_headers colors.h console.h conversion.h file.h fss.h memory.h path_fll.h path_filesystem.h pipe.h print.h serialized.h socket.h status.h string.h type.h type_array.h utf.h
+build_sources_headers color.h console.h conversion.h file.h fss.h memory.h path_fll.h path_filesystem.h pipe.h print.h serialized.h socket.h status.h string.h type.h type_array.h utf.h
 build_shared yes
 build_static yes
 
index 1cc2a70de92f15057815fca890fbf02a1fa449ba..53c2bcb2d76fc4f534517c84ddbda28784b419f4 100644 (file)
@@ -11,9 +11,9 @@ build_compiler gcc
 build_linker ar
 build_libraries -lc
 build_libraries_fll -lfll_0
-build_sources_library colors.c console.c directory.c file.c fss.c fss_basic.c fss_basic_list.c fss_extended.c program.c serialized.c socket.c status.c string.c utf.c
+build_sources_library color.c console.c directory.c file.c fss.c fss_basic.c fss_basic_list.c fss_extended.c serialized.c socket.c status.c string.c utf.c
 build_sources_program 
-build_sources_headers colors.h console.h directory.h file.h fss.h fss_basic.h fss_basic_list.h fss_status.h fss_extended.h fss_macro.h program.h serialized.h socket.h status.h string.h utf.h
+build_sources_headers color.h console.h directory.h file.h fss.h fss_basic.h fss_basic_list.h fss_status.h fss_extended.h fss_macro.h serialized.h socket.h status.h string.h utf.h
 build_shared yes
 build_static yes
 
index 32bcc8a9cfbac5f7fe0dc54fe126c760ae9d2d36..f5f1a52dd66d27dccc382d0b8052614359b5726f 100644 (file)
@@ -11,9 +11,9 @@ build_compiler gcc
 build_linker ar
 build_libraries -lc
 build_libraries_fll -lfll_0 -lfll_1
-build_sources_library colors.c execute.c fss_basic.c fss_basic_list.c fss_extended.c fss_status.c status.c
+build_sources_library execute.c fss_basic.c fss_basic_list.c fss_extended.c fss_status.c program.c status.c
 build_sources_program 
-build_sources_headers colors.h execute.h fss_basic.h fss_basic_list.h fss_extended.h fss_status.h status.h
+build_sources_headers execute.h fss_basic.h fss_basic_list.h fss_extended.h fss_status.h program.h status.h
 build_shared yes
 build_static yes
 
index a4749a7ae56f5e73e43f08865f2afeba589b0d0f..ec702ab3dcb29307cc38dc6cd3dccea48bdf1e18 100644 (file)
@@ -11,9 +11,9 @@ build_compiler gcc
 build_linker ar
 build_libraries -lc
 build_libraries_fll
-build_sources_library level_0/console.c level_0/conversion.c level_0/file.c level_0/memory.c level_0/pipe.c level_0/print.c level_0/utf.c level_1/colors.c level_1/console.c level_1/directory.c level_1/file.c level_1/fss.c level_1/fss_basic.c level_1/fss_basic_list.c level_1/fss_extended.c level_1/program.c level_1/serialized.c level_1/socket.c level_1/status.c level_1/string.c level_1/utf.c level_2/colors.c level_2/execute.c level_2/fss_basic.c level_2/fss_basic_list.c level_2/fss_extended.c level_2/fss_status.c level_2/status.c
+build_sources_library level_0/console.c level_0/conversion.c level_0/file.c level_0/memory.c level_0/pipe.c level_0/print.c level_0/utf.c level_1/color.c level_1/console.c level_1/directory.c level_1/file.c level_1/fss.c level_1/fss_basic.c level_1/fss_basic_list.c level_1/fss_extended.c level_1/serialized.c level_1/socket.c level_1/status.c level_1/string.c level_1/utf.c level_2/execute.c level_2/fss_basic.c level_2/fss_basic_list.c level_2/fss_extended.c level_2/fss_status.c level_2/program.c level_2/status.c
 build_sources_program
-build_sources_headers level_0/colors.h level_0/console.h level_0/conversion.h level_0/file.h level_0/fss.h level_0/memory.h level_0/path_fll.h level_0/path_filesystem.h level_0/pipe.h level_0/print.h level_0/serialized.h level_0/socket.h level_0/status.h level_0/string.h level_0/type.h level_0/type_array.h level_0/utf.h level_1/colors.h level_1/console.h level_1/directory.h level_1/file.h level_1/fss.h level_1/fss_basic.h level_1/fss_basic_list.h level_1/fss_status.h level_1/fss_extended.h level_1/fss_macro.h level_1/program.h level_1/serialized.h level_1/socket.h level_1/status.h level_1/string.h level_1/utf.h level_2/colors.h level_2/execute.h level_2/fss_basic.h level_2/fss_basic_list.h level_2/fss_extended.h level_2/fss_status.h level_2/status.h
+build_sources_headers level_0/color.h level_0/console.h level_0/conversion.h level_0/file.h level_0/fss.h level_0/memory.h level_0/path_fll.h level_0/path_filesystem.h level_0/pipe.h level_0/print.h level_0/serialized.h level_0/socket.h level_0/status.h level_0/string.h level_0/type.h level_0/type_array.h level_0/utf.h level_1/color.h level_1/console.h level_1/directory.h level_1/file.h level_1/fss.h level_1/fss_basic.h level_1/fss_basic_list.h level_1/fss_status.h level_1/fss_extended.h level_1/fss_macro.h level_1/serialized.h level_1/socket.h level_1/status.h level_1/string.h level_1/utf.h level_2/execute.h level_2/fss_basic.h level_2/fss_basic_list.h level_2/fss_extended.h level_2/fss_status.h level_2/program.h level_2/status.h
 build_sources_bash
 build_sources_settings
 build_shared yes
similarity index 69%
rename from level_0/f_colors/c/colors.h
rename to level_0/f_color/c/color.h
index 45be0fc95b1bfb779b4418104556734940252f0b..12b40ed0e44f409a5833270d5250d38cc1468134 100644 (file)
@@ -1,15 +1,15 @@
 /**
  * FLL - Level 0
  *
- * Project: Colors
+ * Project: Color
  * API Version: 0.5
  * Licenses: lgplv2.1
  *
  * Provide basic color output support (linux & xterm).
  * This is the Featureless LINUX Library, so there is no support for non-linux colors at this time.
  */
-#ifndef _F_colors_h
-#define _F_colors_h
+#ifndef _F_color_h
+#define _F_color_h
 
 // fll-0 includes
 #include <level_0/string.h>
@@ -27,8 +27,8 @@ extern "C" {
   typedef f_min_u_int f_color_id;
 
   // f_color_id codes
-  #define f_color_linux     0
-  #define f_color_xterminal 1
+  #define f_color_code_linux     0
+  #define f_color_code_xterminal 1
 #endif // _di_f_color_types_
 
 /**
@@ -90,16 +90,16 @@ extern "C" {
   #define f_color_help_names_initialize { "alert", "command", "comment", "emphasize", "standard", "syntax", "title", "topic", "version" }
 #endif // _di_f_color_help_
 
-#ifndef _di_f_colors_format_
+#ifndef _di_f_color_format_
   typedef struct {
     const char *begin;
     const char *end;
     const char *medium;
-  } f_colors_format;
+  } f_color_format;
 
-  #define f_colors_format_initialize_linux     { "\033[", "m", ";" }
-  #define f_colors_format_initialize_xterminal { "\033[", "m", ";" }
-#endif // _di_f_colors_format_
+  #define f_color_format_initialize_linux     { "\033[", "m", ";" }
+  #define f_color_format_initialize_xterminal { "\033[", "m", ";" }
+#endif // _di_f_color_format_
 
 /**
  * A structure containing all supported color codes.
@@ -107,10 +107,10 @@ extern "C" {
  * 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.
+ * - f_color_initialize_linux: ideal for linux console.
+ * - f_color_initialize_xterminal: ideal for linux x-terminal.
  */
-#ifndef _di_f_colors_
+#ifndef _di_f_color_
   typedef struct {
     const char *reset;
     const char *bold;
@@ -150,29 +150,29 @@ extern "C" {
     const char *bright_purple_bg;
     const char *bright_teal_bg;
     const char *bright_white_bg;
-  } f_colors;
+  } f_color;
 
-  #define f_colors_initialize_linux     { "0", "1", "4", "5", "7", "8", "30", "31", "32", "33", "34", "35", "36", "37", "40", "41", "42", "43", "44", "45", "46", "47", "30", "31", "32", "33", "34", "35", "36", "37", "40", "41", "42", "43", "44", "45", "46", "47" }
-  #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_
+  #define f_color_initialize_linux     { "0", "1", "4", "5", "7", "8", "30", "31", "32", "33", "34", "35", "36", "37", "40", "41", "42", "43", "44", "45", "46", "47", "30", "31", "32", "33", "34", "35", "36", "37", "40", "41", "42", "43", "44", "45", "46", "47" }
+  #define f_color_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_color_
 
 /**
- * Provide global default global instances of f_colors structures.
+ * Provide global default global instances of f_color structures.
  *
  * Supported instances:
- * - f_colors_format_linux: ideal for linux console.
- * - f_colors_format_xterminal: ideal for linux x-terminal.
+ * - f_color_format_linux: ideal for linux console.
+ * - f_color_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;
+#ifndef _di_f_color_default_
+  static const f_color_format f_color_format_linux     = f_color_format_initialize_linux;
+  static const f_color_format f_color_format_xterminal = f_color_format_initialize_xterminal;
 
-  static const f_colors f_colors_linux     = f_colors_initialize_linux;
-  static const f_colors f_colors_xterminal = f_colors_initialize_xterminal;
-#endif // _di_f_default_colors_
+  static const f_color f_color_linux     = f_color_initialize_linux;
+  static const f_color f_color_xterminal = f_color_initialize_xterminal;
+#endif // _di_f_color_default_
 
 #ifdef __cplusplus
 } // extern "C"
 #endif
 
-#endif // _F_colors_h
+#endif // _F_color_h
similarity index 88%
rename from level_0/f_colors/data/build/settings
rename to level_0/f_color/data/build/settings
index 4d769914164be8ee1685e8630e383bbe7269d557..039ddd42099964cf1b61d8a0574822162082d928 100644 (file)
@@ -1,6 +1,6 @@
 # fss-0000
 
-project_name f_colors
+project_name f_color
 project_level 0
 
 version_major 0
@@ -13,7 +13,7 @@ build_libraries -lc
 build_libraries_fll -lf_memory
 build_sources_library
 build_sources_program
-build_sources_headers colors.h
+build_sources_headers color.h
 build_sources_bash
 build_sources_settings
 build_shared yes
similarity index 72%
rename from level_1/fl_colors/c/colors.c
rename to level_1/fl_color/c/color.c
index 491635079f55bf76a412471a6a82fb843321a82a..4149a5e5ad47982a9539f77289b5d139629c1a66 100644 (file)
@@ -1,11 +1,11 @@
-#include <level_1/colors.h>
+#include <level_1/color.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #ifndef _di_fl_color_set_
-  f_return_status fl_color_set(FILE *file, const f_colors_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5) {
+  f_return_status fl_color_set(FILE *file, const f_color_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5) {
     #ifndef _di_level_1_parameter_checking_
       if (file == 0) return f_status_set_error(f_invalid_parameter);
       if (color1 == 0) return f_status_set_error(f_invalid_parameter);
@@ -27,7 +27,7 @@ extern "C" {
 #endif // _di_fl_color_set_
 
 #ifndef _di_fl_color_save_
-  f_return_status fl_color_save(f_string_dynamic *buffer, const f_colors_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5) {
+  f_return_status fl_color_save(f_string_dynamic *buffer, const f_color_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5) {
     #ifndef _di_level_1_parameter_checking_
       if (buffer == 0) return f_status_set_error(f_invalid_parameter);
       if (color1 == 0) return f_status_set_error(f_invalid_parameter);
@@ -190,6 +190,52 @@ extern "C" {
   }
 #endif // _di_fl_color_print_code_
 
+#ifndef _di_fl_color_load_context_
+  f_return_status fl_color_load_context(fl_color_context *context, const f_bool use_light_colors) {
+    #ifndef _di_level_1_parameter_checking_
+      if (context == 0) return f_status_set_error(f_invalid_parameter);
+    #endif // _di_level_1_parameter_checking_
+
+    f_status status = f_none;
+
+    // switch to the appropriate terminal color mode
+    {
+      char *environment = getenv("TERM");
+
+      if (!environment || strncmp(environment, "linux", 6) == 0) {
+        context->color_list = f_color_linux;
+      }
+      else {
+        context->color_list = f_color_xterminal;
+      }
+    }
+
+    // load the colors
+    if (use_light_colors) {
+      status = fl_macro_color_save_1(&context->reset, context->color_format, context->color_list.reset);
+
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->warning,   context->color_format, context->color_list.yellow);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&context->error,     context->color_format, context->color_list.bold, context->color_list.red);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&context->title,     context->color_format, context->color_list.bold, context->color_list.blue);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->notable,   context->color_format, context->color_list.bold);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->important, context->color_format, context->color_list.blue);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->standout,  context->color_format, context->color_list.purple);
+    }
+    else {
+      status = fl_macro_color_save_1(&context->reset, context->color_format, context->color_list.reset);
+
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->warning,   context->color_format, context->color_list.yellow);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&context->error,     context->color_format, context->color_list.bold, context->color_list.red);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&context->title,     context->color_format, context->color_list.bold, context->color_list.yellow);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->notable,   context->color_format, context->color_list.bold);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&context->important, context->color_format, context->color_list.bold, context->color_list.green);
+      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&context->standout,  context->color_format, context->color_list.green);
+    }
+
+    return status;
+  }
+#endif // _di_fl_color_load_context_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
similarity index 69%
rename from level_1/fl_colors/c/colors.h
rename to level_1/fl_color/c/color.h
index b867297ebc14d7af959844111039824da7234607..9f61be384ec7cfa5ad2e07dbf52abc9000070822 100644 (file)
@@ -1,22 +1,22 @@
 /**
  * FLL - Level 1
  *
- * Project: Colors
+ * Project: Color
  * API Version: 0.5
  * Licenses: lgplv2.1
  *
  * Provide basic color output support (linux & xterm).
  * This is the Featureless LINUX Library, so there is no support for non-linux colors at this time.
  */
-#ifndef _FL_colors_h
-#define _FL_colors_h
+#ifndef _FL_color_h
+#define _FL_color_h
 
 // libc includes
 #include <stdarg.h>
 #include <string.h>
 
 // fll-0 includes
-#include <level_0/colors.h>
+#include <level_0/color.h>
 #include <level_0/status.h>
 #include <level_0/file.h>
 #include <level_0/string.h>
@@ -29,8 +29,8 @@ extern "C" {
 
 #ifndef _di_fl_color_context_
   typedef struct {
-    f_colors color_list;
-    f_colors_format color_format;
+    f_color color_list;
+    f_color_format color_format;
     f_string_dynamic reset;
     f_string_dynamic warning;
     f_string_dynamic error;
@@ -42,10 +42,10 @@ extern "C" {
     f_string_dynamic normal_reset;
   } fl_color_context;
 
-  #define fl_color_context_initialize { f_colors_initialize_linux, f_colors_format_initialize_linux, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize }
+  #define fl_color_context_initialize { f_color_initialize_linux, f_color_format_initialize_linux, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize, f_string_dynamic_initialize }
 
-  #define fl_new_color_context(status, color_context) \
-    f_macro_string_dynamic_resize(status, color_context.reset, f_color_max_size + 1); \
+  #define fl_macro_color_context_new(status, color_context) \
+    f_macro_string_dynamic_new(status, color_context.reset, f_color_max_size + 1); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.warning,      f_color_max_size + 1); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.error,        f_color_max_size + 1); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.title,        f_color_max_size + 1); \
@@ -55,7 +55,7 @@ extern "C" {
     if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.normal,       f_color_max_size + 1); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.normal_reset, f_color_max_size + 1);
 
-  #define fl_delete_color_context(status, color_context) \
+  #define fl_macro_color_context_delete(status, color_context) \
     f_macro_string_dynamic_delete(status, color_context.reset); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_delete(status, color_context.warning); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_delete(status, color_context.error); \
@@ -66,7 +66,7 @@ extern "C" {
     if (f_status_is_not_error(status)) f_macro_string_dynamic_delete(status, color_context.normal); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_delete(status, color_context.normal_reset);
 
-  #define fl_destroy_color_context(status, color_context, size) \
+  #define fl_macro_color_context_destroy(status, color_context, size) \
     f_macro_string_dynamic_destroy(status, color_context.reset); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_destroy(status, color_context.warning, size); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_destroy(status, color_context.error, size); \
@@ -76,6 +76,28 @@ extern "C" {
     if (f_status_is_not_error(status)) f_macro_string_dynamic_destroy(status, color_context.standout, size); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_destroy(status, color_context.normal); \
     if (f_status_is_not_error(status)) f_macro_string_dynamic_destroy(status, color_context.normal_reset);
+
+  #define fl_macro_color_context_resize(status, color_context) \
+    f_macro_string_dynamic_resize(status, color_context.reset, f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.warning,      f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.error,        f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.title,        f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.notable,      f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.important,    f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.standout,     f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.normal,       f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.normal_reset, f_color_max_size + 1);
+
+  #define fl_macro_color_context_adjust(status, color_context) \
+    f_macro_string_dynamic_adjust(status, color_context.reset, f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.warning,      f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.error,        f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.title,        f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.notable,      f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.important,    f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.standout,     f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.normal,       f_color_max_size + 1); \
+    if (f_status_is_not_error(status)) f_macro_string_dynamic_resize(status, color_context.normal_reset, f_color_max_size + 1);
 #endif // _di_fl_color_context_
 
 /**
@@ -103,7 +125,7 @@ extern "C" {
  *   f_invalid_parameter (with error bit) if a parameter is invalid.
  */
 #ifndef _di_fl_color_set_
-  extern f_return_status fl_color_set(FILE *file, const f_colors_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5);
+  extern f_return_status fl_color_set(FILE *file, const f_color_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5);
 
   #define fl_macro_color_set_1(file, format, color1)                                 fl_color_set(file, format, color1, 0, 0, 0, 0)
   #define fl_macro_color_set_2(file, format, color1, color2)                         fl_color_set(file, format, color1, color2, 0, 0, 0)
@@ -138,7 +160,7 @@ extern "C" {
  *   f_reallocation_error (with error bit) on memory reallocation error.
  */
 #ifndef _di_fl_color_save_
-  extern f_return_status fl_color_save(f_string_dynamic *buffer, const f_colors_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5);
+  extern f_return_status fl_color_save(f_string_dynamic *buffer, const f_color_format format, const char *color1, const char *color2, const char *color3, const char *color4, const char *color5);
 
   #define fl_macro_color_save_1(buffer, format, color1)                                 fl_color_save(buffer, format, color1, 0, 0, 0, 0)
   #define fl_macro_color_save_2(buffer, format, color1, color2)                         fl_color_save(buffer, format, color1, color2, 0, 0, 0)
@@ -220,8 +242,30 @@ extern "C" {
   extern f_return_status fl_color_print_code(FILE *file, const f_string_dynamic color);
 #endif // _di_fl_color_print_code_
 
+
+/**
+ * Load the appropriate colors into the color context.
+ *
+ * This will handle the difference betweem xorg terminals and linux consoles.
+ * If you wish to use non-standard colors either redefine this function or don't use it.
+ *
+ * @param context
+ *   The color context the load the color codes into.
+ * @param use_light_colors
+ *   Set to f_true to use colors for light backgrounds.
+ *   Set to f_false to use colors forr dark backgrounds.
+ *
+ * @return
+ *   f_none on success.
+ *   f_invalid_parameter (with error bit) if a parameter is invalid.
+ *   f_reallocation_error (with error bit) on memory reallocation error.
+ */
+#ifndef _di_fl_color_load_context_
+  extern f_return_status fl_color_load_context(fl_color_context *context, const f_bool use_light_colors);
+#endif // _di_fl_color_load_context_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
 
-#endif // _FL_colors_h
+#endif // _FL_color_h
similarity index 84%
rename from level_1/fl_colors/data/build/dependencies
rename to level_1/fl_color/data/build/dependencies
index 424bcf36a18063528533d1420da68e8ebcfcbc46..f86139a9cd8b50ccd0cd11ebcc20713cf17a6b36 100644 (file)
@@ -2,6 +2,6 @@ f_type
 f_status
 f_memory
 f_string
-f_colors
+f_color
 f_file
 f_print
similarity index 82%
rename from level_1/fl_colors/data/build/settings
rename to level_1/fl_color/data/build/settings
index 412158d108d32a332049b72254a1e13246f6c652..74b98476ba963e052483c268c70dfad6cd7d64f2 100644 (file)
@@ -1,6 +1,6 @@
 # fss-0000
 
-project_name fl_colors
+project_name fl_color
 project_level 1
 
 version_major 0
@@ -11,9 +11,9 @@ build_compiler gcc
 build_linker ar
 build_libraries -lc
 build_libraries_fll -lf_print -lf_file -lf_memory
-build_sources_library colors.c
+build_sources_library color.c
 build_sources_program
-build_sources_headers colors.h
+build_sources_headers color.h
 build_sources_bash
 build_sources_settings
 build_shared yes
index 60bb462e846d66f65d10ec3456d44fc9bc1998b4..7557dcabac24b20d3ea716042b55e8ab3e444550 100644 (file)
@@ -56,6 +56,8 @@ extern "C" {
  *   The console parameters to look for.
  * @param total_parameters
  *   The used size of the parameters array.
+ * @param remaining
+ *   A list of remaining parameters not associated with anything.
  *
  * @return
  *   f_none on success.
diff --git a/level_1/fl_program/c/program.c b/level_1/fl_program/c/program.c
deleted file mode 100644 (file)
index 520a3d1..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <level_1/program.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fl_program_print_version_
-  f_return_status fl_program_print_version(const f_string version) {
-    printf("%s\n", version);
-
-    return f_none;
-  }
-#endif // _di_fl_program_print_version_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_1/fl_program/c/program.h b/level_1/fl_program/c/program.h
deleted file mode 100644 (file)
index 35d4785..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * FLL - Level 1
- *
- * Project: Program
- * API Version: 0.5
- * Licenses: lgplv2.1
- *
- * Provide functions commonly used by FLL based programs.
- */
-#ifndef _FL_program_h
-#define _FL_program_h
-
-// libc include
-#include <stdio.h>
-
-// fll-0 includes
-#include <level_0/status.h>
-#include <level_0/string.h>
-#include <level_0/type.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fl_program_print_version_
-  /**
-   * Print version.
-   *
-   * @param version
-   *   The version number to print.
-   *
-   * @return
-   *   f_none on success.
-   *   Error bit is set on error.
-   */
-  extern f_return_status fl_program_print_version(const f_string version);
-#endif // _di_fl_program_print_version_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _FL_program_h
diff --git a/level_1/fl_program/data/build/dependencies b/level_1/fl_program/data/build/dependencies
deleted file mode 100644 (file)
index d57c21e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-f_type
-f_status
-f_string
diff --git a/level_2/fll_colors/c/colors.c b/level_2/fll_colors/c/colors.c
deleted file mode 100644 (file)
index 80a68be..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <level_2/colors.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fll_colors_load_context_
-  f_return_status fll_colors_load_context(fl_color_context *data, f_bool use_light_colors) {
-    #ifndef _di_level_2_parameter_checking_
-      if (data == 0) return f_status_set_error(f_invalid_parameter);
-    #endif // _di_level_2_parameter_checking_
-
-    f_status status = f_none;
-
-    // switch to the appropriate terminal color mode
-    {
-      char *environment = getenv("TERM");
-
-      if (!environment || strncmp(environment, "linux", 6) == 0) {
-        data->color_list = f_colors_linux;
-      }
-      else {
-        data->color_list = f_colors_xterminal;
-      }
-    }
-
-    // load the colors
-    if (use_light_colors) {
-      status = fl_macro_color_save_1(&data->reset, data->color_format, data->color_list.reset);
-
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->warning,   data->color_format, data->color_list.yellow);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&data->error,     data->color_format, data->color_list.bold, data->color_list.red);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&data->title,     data->color_format, data->color_list.bold, data->color_list.blue);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->notable,   data->color_format, data->color_list.bold);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->important, data->color_format, data->color_list.blue);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->standout,  data->color_format, data->color_list.purple);
-    }
-    else {
-      status = fl_macro_color_save_1(&data->reset, data->color_format, data->color_list.reset);
-
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->warning,   data->color_format, data->color_list.yellow);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&data->error,     data->color_format, data->color_list.bold, data->color_list.red);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&data->title,     data->color_format, data->color_list.bold, data->color_list.yellow);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->notable,   data->color_format, data->color_list.bold);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_2(&data->important, data->color_format, data->color_list.bold, data->color_list.green);
-      if (f_status_is_not_error(status)) status = fl_macro_color_save_1(&data->standout,  data->color_format, data->color_list.green);
-    }
-
-    return status;
-  }
-#endif // _di_fll_colors_load_context_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_2/fll_colors/c/colors.h b/level_2/fll_colors/c/colors.h
deleted file mode 100644 (file)
index 6e62899..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * FLL - Level 2
- *
- * Project: Colors
- * API Version: 0.5
- * Licenses: lgplv2.1
- *
- * Provide standard color handling.
- */
-#ifndef _FLL_colors_h
-#define _FLL_colors_h
-
-// libc includes
-#include <stdarg.h>
-#include <string.h>
-
-// fll-0 includes
-#include <level_0/colors.h>
-#include <level_0/string.h>
-#include <level_0/type.h>
-
-// fll-1 includes
-#include <level_1/colors.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fll_colors_load_context_
-  /**
-   * For any application that uses the standard color contexts, this function will load the appropriate colors to the structure.
-   * This will handle the difference betweem xorg terminals and linux consoles.
-   * If you wish to use non-standard colors either redefine this function or don't use it.
-   */
-  extern f_return_status fll_colors_load_context(fl_color_context *data, f_bool use_light_colors);
-#endif // _di_fll_colors_load_context_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _FLL_colors_h
diff --git a/level_2/fll_colors/data/build/settings b/level_2/fll_colors/data/build/settings
deleted file mode 100644 (file)
index 10381d7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# fss-0000
-
-project_name fll_colors
-project_level 2
-
-version_major 0
-version_minor 5
-version_micro 0
-
-build_compiler gcc
-build_linker ar
-build_libraries -lc
-build_libraries_fll -lfl_colors -lf_print -lf_file -lf_memory
-build_sources_library colors.c
-build_sources_program 
-build_sources_headers colors.h
-build_sources_bash
-build_sources_settings
-build_shared yes
-build_static yes
-
-defines_all
-defines_static
-defines_shared
-
-flags_all -z now -g
-flags_shared
-flags_static
-flags_library -fPIC
-flags_program -fPIE
diff --git a/level_2/fll_program/c/program.c b/level_2/fll_program/c/program.c
new file mode 100644 (file)
index 0000000..6209a15
--- /dev/null
@@ -0,0 +1,128 @@
+#include <level_2/program.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fll_program_print_help_header_
+  f_return_status fll_program_print_help_header(const fl_color_context context, const f_string name, const f_string version) {
+    printf("%c", f_string_eol);
+    fl_color_print(f_standard_output, context.title, context.reset, " %s", name);
+
+    printf("%c", f_string_eol);
+    fl_color_print(f_standard_output, context.notable, context.reset, "  Version %s", version);
+
+    printf("%c%c", f_string_eol, f_string_eol);
+    fl_color_print(f_standard_output, context.important, context.reset, " Available Options: ");
+
+    return f_none;
+  }
+#endif // _di_fll_program_print_help_header_
+
+#ifndef _di_fll_program_print_help_option_
+  f_return_status fll_program_print_help_option(const fl_color_context context, const f_string option_short, const f_string option_long, const f_string description) {
+    printf("%c", f_string_eol);
+    printf("  %s", f_console_symbol_short_enable);
+    fl_color_print(f_standard_output, context.standout, context.reset, option_short);
+
+    printf(", %s", f_console_symbol_long_enable);
+    fl_color_print(f_standard_output, context.standout, context.reset, option_long);
+    printf("  %s", description);
+
+    return f_none;
+  }
+#endif // _di_fll_program_print_help_option_
+
+#ifndef _di_fll_program_print_help_option_long_
+  f_return_status fll_program_print_help_option_long(const fl_color_context context, const f_string option_long, const f_string description) {
+    printf("%c", f_string_eol);
+    printf("      %s", f_console_symbol_long_enable);
+    fl_color_print(f_standard_output, context.standout, context.reset, option_long);
+    printf("  %s", description);
+
+    return f_none;
+  }
+#endif // _di_fll_program_print_help_option_long_
+
+#ifndef _di_fll_program_print_help_usage_
+  f_return_status fll_program_print_help_usage(const fl_color_context context, const f_string name, const f_string parameters) {
+    printf("%c%c", f_string_eol, f_string_eol);
+    fl_color_print(f_standard_output, context.important, context.reset, " Usage:");
+
+    printf("%c  ", f_string_eol);
+    fl_color_print(f_standard_output, context.standout, context.reset, name);
+
+    printf(" ");
+    fl_color_print(f_standard_output, context.notable, context.reset, "[");
+
+    printf(" options ");
+    fl_color_print(f_standard_output, context.notable, context.reset, "]");
+
+    if (parameters[0] != '\0') {
+      printf(" ");
+      fl_color_print(f_standard_output, context.notable, context.reset, "[");
+
+      printf(" %s ", parameters);
+      fl_color_print(f_standard_output, context.notable, context.reset, "]");
+    }
+
+    printf("%c%c", f_string_eol, f_string_eol);
+  }
+#endif // _di_fll_program_print_help_usage_
+
+#ifndef _di_fll_program_print_version_
+  f_return_status fll_program_print_version(const f_string version) {
+    printf("%s%c", version, f_string_eol);
+
+    return f_none;
+  }
+#endif // _di_fll_program_print_version_
+
+#ifndef _di_fll_program_process_parameters_
+  f_return_status fll_program_process_parameters(const f_array_length argc, const f_string argv[], f_console_parameter parameters[], const f_array_length total_parameters, const f_array_length parameter_no_color, const f_array_length parameter_light, f_string_lengths *remaining, fl_color_context *context) {
+    f_status status = f_none;
+    f_status allocation_status = f_none;
+
+    status = fl_process_parameters(argc, argv, parameters, total_parameters, remaining);
+
+    // load colors when not told to show no colors
+    if (parameters[parameter_no_color].result == f_console_result_none) {
+      fl_macro_color_context_new(allocation_status, (*context));
+
+      if (f_status_is_error(allocation_status)) {
+        fprintf(f_standard_error, "Critical Error: unable to allocate memory.\n");
+        return allocation_status;
+      }
+
+      fl_color_load_context(context, parameters[parameter_light].result == f_console_result_found);
+    }
+
+    if (f_status_is_error(status)) {
+      status = f_status_set_fine(status);
+
+      if (status == f_no_data) {
+        fl_color_print_line(f_standard_error, context->error, context->reset, "ERROR: One of the parameters you passed requires an additional parameter that you did not pass.");
+        // TODO: there is a way to identify which parameter is incorrect
+        //       to do this, one must look for any "has_additional" and then see if the "additional" location is set to 0
+        //       nothing can be 0 as that represents the program name, unless argv[] is improperly created
+      }
+      else if (status == f_allocation_error || status == f_reallocation_error) {
+        fl_color_print_line(f_standard_error, context->error, context->reset, "CRITICAL ERROR: unable to allocate memory.");
+      }
+      else if (status == f_invalid_parameter) {
+        fl_color_print_line(f_standard_error, context->error, context->reset, "INTERNAL ERROR: Invalid parameter when calling fl_process_parameters().");
+      }
+      else {
+        fl_color_print_line(f_standard_error, context->error, context->reset, "INTERNAL ERROR: An unhandled error (%u) has occured while calling fl_process_parameters().", status);
+      }
+
+      return f_status_set_error(status);
+    }
+
+    return status;
+  }
+#endif // _di_fll_program_process_parameters_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_2/fll_program/c/program.h b/level_2/fll_program/c/program.h
new file mode 100644 (file)
index 0000000..129c56d
--- /dev/null
@@ -0,0 +1,148 @@
+/**
+ * FLL - Level 2
+ *
+ * Project: Program
+ * API Version: 0.5
+ * Licenses: lgplv2.1
+ *
+ * Provide functions commonly used by FLL based programs.
+ */
+#ifndef _FL_program_h
+#define _FL_program_h
+
+// libc include
+#include <stdio.h>
+
+// fll-0 includes
+#include <level_0/console.h>
+#include <level_0/status.h>
+#include <level_0/string.h>
+#include <level_0/type.h>
+
+// fll-1 includes
+#include <level_1/color.h>
+#include <level_1/console.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Print standard help header.
+ *
+ * @param context
+ *   The color context.
+ * @param name
+ *   The name of the program.
+ * @param version
+ *   The version number of the program.
+ *
+ * @return
+ *   f_none on success.
+ */
+#ifndef _di_fll_program_print_help_header_
+  extern f_return_status fll_program_print_help_header(const fl_color_context context, const f_string name, const f_string version);
+#endif // _di_fll_program_print_help_header_
+
+/**
+ * Print standard help option.
+ *
+ * @param context
+ *   The color context.
+ * @param option_short
+ *   The short name of the option.
+ * @param option_long
+ *   The long name of the option.
+ * @param description
+ *   A desciption associated with the option.
+ *
+ * @return
+ *   f_none on success.
+ */
+#ifndef _di_fll_program_print_help_option_
+  extern f_return_status fll_program_print_help_option(const fl_color_context context, const f_string option_short, const f_string option_long, const f_string description);
+#endif // _di_fll_program_print_help_option_
+
+/**
+ * Print standard help option (long option only).
+ *
+ * @param context
+ *   The color context.
+ * @param option_long
+ *   The long name of the option.
+ * @param description
+ *   A desciption associated with the option.
+ *
+ * @return
+ *   f_none on success.
+ */
+#ifndef _di_fll_program_print_help_option_long_
+  extern f_return_status fll_program_print_help_option_long(const fl_color_context context, const f_string option_long, const f_string description);
+#endif // _di_fll_program_print_help_option_long_
+
+/**
+ * Print standard help usage.
+ *
+ * @param context
+ *   The color context.
+ * @param name
+ *   The name of the program.
+ * @param parameters
+ *   The non-option parameters to be displayed inside the brackets.
+ *   Set the first array value to EOS to disable printing of parameters.
+ *
+ * @return
+ *   f_none on success.
+ */
+#ifndef _di_fll_program_print_help_usage_
+  extern f_return_status fll_program_print_help_usage(const fl_color_context context, const f_string name, const f_string parameters);
+#endif // _di_fll_program_print_help_usage_
+
+/**
+ * Print the program version.
+ *
+ * @param version
+ *   The version number of the program.
+ *
+ * @return
+ *   f_none on success.
+ */
+#ifndef _di_fll_program_print_version_
+  extern f_return_status fll_program_print_version(const f_string version);
+#endif // _di_fll_program_print_version_
+
+/**
+ * Perform basic parameter loading, including initialization of color context and printing errors.
+ *
+ * @param argc
+ *   The number of parameters passed to the process.
+ * @param argv
+ *   The parameters passed to the process.
+ * @param parameters
+ *   The console parameters to look for.
+ * @param total_parameters
+ *   The used size of the parameters array.
+ * @param parameter_no_color
+ *   The parameter in the parameters array representing the no-color option.
+ * @param parameter_light
+ *   The parameter in the parameters array representing the light-color option.
+ * @param remaining
+ *   A list of remaining parameters not associated with anything.
+ * @param context
+ *   The color context.
+ *
+ * @return
+ *   f_none on success.
+ *   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.
+ */
+#ifndef _di_fll_program_process_parameters_
+  extern f_return_status fll_program_process_parameters(const f_array_length argc, const f_string argv[], f_console_parameter parameters[], const f_array_length total_parameters, const f_array_length parameter_no_color, const f_array_length parameter_light, f_string_lengths *remaining, fl_color_context *context);
+#endif // _di_fll_program_process_parameters_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _FL_program_h
similarity index 53%
rename from level_2/fll_colors/data/build/dependencies
rename to level_2/fll_program/data/build/dependencies
index c45b97cf2decd60f3ac83acc1f6124c5d0160fea..79cc2f4a57d0a7df2fce9ac2cdd2562d87480329 100644 (file)
@@ -2,5 +2,6 @@ f_type
 f_status
 f_memory
 f_string
-f_colors
-fl_colors
+f_console
+fl_color
+fl_console
similarity index 75%
rename from level_1/fl_program/data/build/settings
rename to level_2/fll_program/data/build/settings
index 0d2769fcd6e3e33764aaf0388282705274914804..dc0549468f5f829df44a79205d45a0e3b55d0e4b 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0000
 
-project_name fl_program
-project_level 1
+project_name fll_program
+project_level 2
 
 version_major 0
 version_minor 5
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lf_memory
+build_libraries_fll -lfl_console -lf_utf -lfl_color -lf_print -lf_file -lf_console -lf_memory
 build_sources_library program.c
 build_sources_program
 build_sources_headers program.h
index 93af85838cec2cbd910f967d050839654cdf142b..b126d0018d1dede48daa5b14308a1cad1820a555 100644 (file)
@@ -13,94 +13,41 @@ extern "C" {
 
 #ifndef _di_firewall_print_help_
   f_return_status firewall_print_help(const firewall_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", firewall_name_long);
+    fll_program_print_help_header(data.context, firewall_name_long, firewall_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", firewall_version);
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
     #ifdef _en_firewall_debug_
-      printf("\n  %s", f_console_symbol_short_disable);
-      fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_debug);
-
-      printf(", %s", f_console_symbol_long_disable);
-      fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_debug);
-      printf("     Enable debugging");
+      fll_program_print_help_option(data.context, f_console_standard_short_debug, f_console_standard_long_debug, "   Enable debugging.");
     #endif // _en_firewall_debug_
 
-    printf("\n\n");
+    printf("%c%c", f_string_eol, f_string_eol);
     fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Commands: ");
 
-    printf("\n  ");
+    printf("%c  ", f_string_eol);
     fl_color_print(f_standard_output, data.context.standout, data.context.reset, firewall_command_start);
     printf("    Turn on the firewall");
 
-    printf("\n  ");
+    printf("%c  ", f_string_eol);
     fl_color_print(f_standard_output, data.context.standout, data.context.reset, firewall_command_stop);
     printf("     Turn off the firewall");
 
-    printf("\n  ");
+    printf("%c  ", f_string_eol);
     fl_color_print(f_standard_output, data.context.standout, data.context.reset, firewall_command_restart);
     printf("  Turn off and then turn on the firewall");
 
-    printf("\n  ");
+    printf("%c  ", f_string_eol);
     fl_color_print(f_standard_output, data.context.standout, data.context.reset, firewall_command_lock);
     printf("     Prevent all communication");
 
-    printf("\n  ");
+    printf("%c  ", f_string_eol);
     fl_color_print(f_standard_output, data.context.standout, data.context.reset, firewall_command_show);
     printf("     Show active firewall settings");
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, firewall_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" command ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, firewall_name, "command");
 
     return f_none;
   }
@@ -115,10 +62,10 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[firewall_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (status2 == f_none) {
-        fll_colors_load_context(&data->context, data->parameters[firewall_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[firewall_parameter_light].result == f_console_result_found);
       }
       else {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -155,7 +102,7 @@ extern "C" {
       firewall_print_help(*data);
     }
     else if (data->parameters[firewall_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(firewall_version);
+      fll_program_print_version(firewall_version);
     }
     else {
       // now determine which command was placed first
@@ -739,7 +686,7 @@ extern "C" {
     f_macro_string_lengths_delete(status, data->remaining);
     f_macro_string_dynamics_delete(status, data->devices);
 
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index 62d35bfa937aa3e9b5ee7384c59f2fdb92c4c3e6..e9d6cbab26196d231d251a8b73512ee7cdf39e7c 100644 (file)
 #include <level_0/type_array.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/directory.h>
 #include <level_1/file.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/execute.h>
 #include <level_2/fss_basic.h>
 #include <level_2/fss_basic_list.h>
 #include <level_2/fss_extended.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 9e5b969f2f00d30b68ed6643449338ca249c5a7d..eab59ced82826518fa022b7ac54c4bed961370d5 100644 (file)
@@ -7,14 +7,13 @@ f_fss
 f_pipe
 f_print
 f_utf
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index b2a89d3fb02653fdce78208e5ed1847a67af77de..c4fea7d133952c0eb4ee959d80888317e4b79497 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lfl_colors -lf_file -lf_utf -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lfl_color -lf_file -lf_utf -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library firewall.c private-firewall.c
index d24705f253a1d349686f91da0c4d4535920217d5..a5061bcbc369b2e8837aa4a522c0b347395958a1 100644 (file)
@@ -6,108 +6,23 @@ extern "C" {
 
 #ifndef _di_fss_basic_list_read_print_help_
   f_return_status fss_basic_list_read_print_help(const fss_basic_list_read_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_basic_list_read_name_long);
+    fll_program_print_help_header(data.context, fss_basic_list_read_name_long, fss_basic_list_read_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_basic_list_read_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_basic_list_read_short_name, fss_basic_list_read_long_name, "    Find and print content from this object name.");
+    fll_program_print_help_option(data.context, fss_basic_list_read_short_count, fss_basic_list_read_long_count, "   Find a specific occurrence of the object.");
+    fll_program_print_help_option(data.context, fss_basic_list_read_short_total, fss_basic_list_read_long_total, "   Print the total number of objects in this file.");
+    fll_program_print_help_option(data.context, fss_basic_list_read_short_object, fss_basic_list_read_long_object, "  Print the object instead of the content.");
+    fll_program_print_help_option(data.context, fss_basic_list_read_short_size, fss_basic_list_read_long_size, "    Print total lines in the given content.");
+    fll_program_print_help_option(data.context, fss_basic_list_read_short_line, fss_basic_list_read_long_line, "    Print only the content at the given line.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_short_name);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_long_name);
-    printf("      Find and print content from this object name");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_short_count);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_long_count);
-    printf("     Find a specific occurrence of the object");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_short_total);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_long_total);
-    printf("     Print the total number of objects in this file");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_short_object);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_long_object);
-    printf("    Print the object instead of the content");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_short_size);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_long_size);
-    printf("      Print total lines in the given content");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_short_line);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_long_line);
-    printf("      Print only the content at the given line");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_read_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" filename(s) ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_basic_list_read_name, "filename(s)");
 
     return f_none;
   }
@@ -124,7 +39,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_basic_list_read_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (f_status_is_error(status2)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -132,7 +47,7 @@ extern "C" {
         return status2;
       }
       else {
-        fll_colors_load_context(&data->context, data->parameters[fss_basic_list_read_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[fss_basic_list_read_parameter_light].result == f_console_result_found);
       }
     }
 
@@ -164,7 +79,7 @@ extern "C" {
       fss_basic_list_read_print_help(*data);
     }
     else if (data->parameters[fss_basic_list_read_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_basic_list_read_version);
+      fll_program_print_version(fss_basic_list_read_version);
     }
     else if (data->remaining.used > 0 || data->process_pipe) {
       f_string_length counter = 0;
@@ -615,7 +530,7 @@ extern "C" {
     f_macro_string_dynamic_delete(status, data->buffer);
     f_macro_string_lengths_delete(status, data->remaining);
 
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index 6f6c5ffbfd95ecfdf188ecaaae3389b89d41ce7a..85a58db6fdcb27c0d23549dbd5f63a046ca627dd 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/directory.h>
 #include <level_1/file.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/execute.h>
 #include <level_2/fss_basic_list.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 4823a86c2e3d0d61f7e349d38deb63bd6df4e3ea..fd8beec54124b835e8908b0e50f60a0eb075e1ff 100644 (file)
@@ -6,14 +6,13 @@ f_console
 f_fss
 f_pipe
 f_print
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index b1620958b4467e02de50d30b9c583490202849c7..2f6bcb257c1f35fe819536e68ccadac5949516c2 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_color -lf_file -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_basic_list_read.c
index aa288df7776a922a9f70d1e8fa7f620bb53f0cdb..187d67c18255189811c2c5e352072ac7e6381ed8 100644 (file)
@@ -6,82 +6,20 @@ extern "C" {
 
 #ifndef _di_fss_basic_list_write_print_help_
   f_return_status fss_basic_list_write_print_help(const fss_basic_list_write_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_basic_list_write_name_long);
+    fll_program_print_help_header(data.context, fss_basic_list_write_name_long, fss_basic_list_write_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_basic_list_write_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_basic_list_write_short_object, fss_basic_list_write_long_object, "  Write an object instead of content.");
+    fll_program_print_help_option(data.context, fss_basic_list_write_short_file, fss_basic_list_write_long_file, "    Specify a file to send output to.");
+    fll_program_print_help_option(data.context, fss_basic_list_write_short_string, fss_basic_list_write_long_string, "  Specify a string to convert.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n");
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_short_object);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_long_object);
-    printf("  Write an object instead of content.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_short_file);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_long_file);
-    printf("    Specify a file to send output to.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_short_string);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_long_string);
-    printf("  Specify a string to convert.");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_list_write_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_basic_list_write_name, "");
 
     return f_none;
   }
@@ -96,7 +34,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_basic_list_write_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (f_status_is_error(status2)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -104,7 +42,7 @@ extern "C" {
         return status2;
       }
       else {
-        fll_colors_load_context(&data->context, data->parameters[fss_basic_list_write_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[fss_basic_list_write_parameter_light].result == f_console_result_found);
       }
     }
 
@@ -136,7 +74,7 @@ extern "C" {
       fss_basic_list_write_print_help(*data);
     }
     else if (data->parameters[fss_basic_list_write_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_basic_list_write_version);
+      fll_program_print_version(fss_basic_list_write_version);
     }
     else {
       f_array_length counter = 0;
@@ -296,7 +234,7 @@ extern "C" {
     } // while
 
     f_macro_string_lengths_delete(status, data->remaining);
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index 382cb913f7bfc076689e7f9e0b23a4ed0c9925df..ea44cd1d29eda435922935d25557b54a88f295f6 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/status.h>
 #include <level_1/file.h>
 #include <level_1/fss_basic_list.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/fss_status.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 4823a86c2e3d0d61f7e349d38deb63bd6df4e3ea..fd8beec54124b835e8908b0e50f60a0eb075e1ff 100644 (file)
@@ -6,14 +6,13 @@ f_console
 f_fss
 f_pipe
 f_print
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index aaee71250596e001c7fdcca1cecc21e10ebad57c..3d9820be7843ae0b72e4616969520175dcbf2010 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_color -lf_file -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_basic_list_write.c
index 24b433587a579d771b526675bbc7cf11f630fc96..5c2390374eb018d6bc8a17d161469b0dfd5f4592 100644 (file)
@@ -6,94 +6,21 @@ extern "C" {
 
 #ifndef _di_fss_basic_read_print_help_
   f_return_status fss_basic_read_print_help(const fss_basic_read_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_basic_read_name_long);
+    fll_program_print_help_header(data.context, fss_basic_read_name_long, fss_basic_read_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_basic_read_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_basic_read_short_name, fss_basic_read_long_name, "    Find and print content from this object name.");
+    fll_program_print_help_option(data.context, fss_basic_read_short_count, fss_basic_read_long_count, "   Find a specific occurrence of the object.");
+    fll_program_print_help_option(data.context, fss_basic_read_short_total, fss_basic_read_long_total, "   Print the total number of objects in this file.");
+    fll_program_print_help_option(data.context, fss_basic_read_short_object, fss_basic_read_long_object, "  Print the object instead of the content.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_short_name);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_long_name);
-    printf("      Find and print content from this object name");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_short_count);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_long_count);
-    printf("     Find a specific occurrence of the object");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_short_total);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_long_total);
-    printf("     Print the total number of objects in this file");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_short_object);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_long_object);
-    printf("    Print the object instead of the content");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_read_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" filename(s) ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_basic_read_name, "filename(s)");
 
     return f_none;
   }
@@ -110,7 +37,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_basic_read_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (f_status_is_error(status2)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -118,7 +45,7 @@ extern "C" {
         return status2;
       }
       else {
-        fll_colors_load_context(&data->context, data->parameters[fss_basic_read_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[fss_basic_read_parameter_light].result == f_console_result_found);
       }
     }
 
@@ -150,7 +77,7 @@ extern "C" {
       fss_basic_read_print_help(*data);
     }
     else if (data->parameters[fss_basic_read_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_basic_read_version);
+      fll_program_print_version(fss_basic_read_version);
     }
     else if (data->remaining.used > 0 || data->process_pipe) {
       f_string_length counter = 0;
@@ -504,7 +431,7 @@ extern "C" {
     f_macro_string_dynamic_delete(status, data->buffer);
     f_macro_string_lengths_delete(status, data->remaining);
 
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index 1f96c3577ed538768cfaabb0aa0a2e069a9336ab..6ff2da9937c55a1f0dadfbf74d3f1c2ad9db01a9 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/directory.h>
 #include <level_1/file.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/execute.h>
 #include <level_2/fss_basic.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 4823a86c2e3d0d61f7e349d38deb63bd6df4e3ea..fd8beec54124b835e8908b0e50f60a0eb075e1ff 100644 (file)
@@ -6,14 +6,13 @@ f_console
 f_fss
 f_pipe
 f_print
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index 0a9782ec9a6e54d39d26c6a7d8ed11fc2eb2557c..9743404d91f381bd5be3b555816cd94502d961f0 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_color -lf_file -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_basic_read.c
index 64d4ef4b3cb6e8ea385e91f91817653eef54db9b..03ede7fb20b8f4359fc58efedd36ae742b91dad0 100644 (file)
@@ -6,82 +6,20 @@ extern "C" {
 
 #ifndef _di_fss_basic_write_print_help_
   f_return_status fss_basic_write_print_help(const fss_basic_write_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_basic_write_name_long);
+    fll_program_print_help_header(data.context, fss_basic_write_name_long, fss_basic_write_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_basic_write_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_basic_write_short_object, fss_basic_write_long_object, "  Write an object instead of content.");
+    fll_program_print_help_option(data.context, fss_basic_write_short_file, fss_basic_write_long_file, "    Specify a file to send output to.");
+    fll_program_print_help_option(data.context, fss_basic_write_short_string, fss_basic_write_long_string, "  Specify a string to convert.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n");
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_short_object);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_long_object);
-    printf("  Write an object instead of content.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_short_file);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_long_file);
-    printf("    Specify a file to send output to.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_short_string);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_long_string);
-    printf("  Specify a string to convert.");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_basic_write_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_basic_write_name, "");
 
     return f_none;
   }
@@ -96,7 +34,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_basic_write_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (f_status_is_error(status2)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -104,7 +42,7 @@ extern "C" {
         return status2;
       }
       else {
-        fll_colors_load_context(&data->context, data->parameters[fss_basic_write_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[fss_basic_write_parameter_light].result == f_console_result_found);
       }
     }
 
@@ -136,7 +74,7 @@ extern "C" {
       fss_basic_write_print_help(*data);
     }
     else if (data->parameters[fss_basic_write_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_basic_write_version);
+      fll_program_print_version(fss_basic_write_version);
     }
     else {
       f_array_length counter = 0;
@@ -296,7 +234,7 @@ extern "C" {
     } // while
 
     f_macro_string_lengths_delete(status, data->remaining);
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index 37716b21d6d563076a53c209632adafe2375c824..2980d519094babae49118c04f4693996fffa1bad 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/status.h>
 #include <level_1/file.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/fss_status.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 4823a86c2e3d0d61f7e349d38deb63bd6df4e3ea..fd8beec54124b835e8908b0e50f60a0eb075e1ff 100644 (file)
@@ -6,14 +6,13 @@ f_console
 f_fss
 f_pipe
 f_print
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index d1d3205e27d619ff1ad62cb8a475cc78e85f6e07..44cc613ee5e96bbba649bfa8a0ffbdf609dc47c9 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_color -lf_file -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_basic_write.c
index 804d534d8f866adcc17ec4be0b86016e1758ff4d..9bf5b168ff139c539e0c8aa9d4f292ed677dab6d 100644 (file)
@@ -6,101 +6,22 @@ extern "C" {
 
 #ifndef _di_fss_extended_read_print_help_
   f_return_status fss_extended_read_print_help(const fss_extended_read_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_extended_read_name_long);
+    fll_program_print_help_header(data.context, fss_extended_read_name_long, fss_extended_read_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_extended_read_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_extended_read_short_name, fss_extended_read_long_name, "    Find and print content from this object name.");
+    fll_program_print_help_option(data.context, fss_extended_read_short_count, fss_extended_read_long_count, "   Find a specific occurrence of the object.");
+    fll_program_print_help_option(data.context, fss_extended_read_short_total, fss_extended_read_long_total, "   Print the total number of objects in this file.");
+    fll_program_print_help_option(data.context, fss_extended_read_short_object, fss_extended_read_long_object, "  Print the object instead of the content.");
+    fll_program_print_help_option(data.context, fss_extended_read_short_select, fss_extended_read_long_select, "  Select a specific content to print, default is 0.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_short_name);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_long_name);
-    printf("      Find and print content from this object name");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_short_count);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_long_count);
-    printf("     Find a specific occurrence of the object");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_short_total);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_long_total);
-    printf("     Print the total number of objects in this file");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_short_object);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_long_object);
-    printf("    Print the object instead of the content");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_short_select);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_long_select);
-    printf("    Select a specific content to print, default is 0");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_read_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" filename(s) ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_extended_read_name, "filename(s)");
 
     return f_none;
   }
@@ -117,7 +38,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_extended_read_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (f_status_is_error(status2)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -125,7 +46,7 @@ extern "C" {
         return status2;
       }
       else {
-        fll_colors_load_context(&data->context, data->parameters[fss_extended_read_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[fss_extended_read_parameter_light].result == f_console_result_found);
       }
     }
 
@@ -157,7 +78,7 @@ extern "C" {
       fss_extended_read_print_help(*data);
     }
     else if (data->parameters[fss_extended_read_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_extended_read_version);
+      fll_program_print_version(fss_extended_read_version);
     }
     else if (data->remaining.used > 0 || data->process_pipe) {
       f_string_length counter = 0;
@@ -512,7 +433,7 @@ extern "C" {
     f_macro_string_dynamic_delete(status, data->buffer);
     f_macro_string_lengths_delete(status, data->remaining);
 
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index ff0512cd6fa961cd34f7b71257b86c500969aaf6..4ac79106d9502a9302ca9cd7c87cc17ec4a207dc 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/directory.h>
 #include <level_1/file.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/execute.h>
 #include <level_2/fss_extended.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 5fc603548d1d2942892c6686068f4e37b12a6f98..fd8beec54124b835e8908b0e50f60a0eb075e1ff 100644 (file)
@@ -1,19 +1,18 @@
-f_console
+f_type
 f_status
-f_fss
 f_memory
+f_string
+f_console
+f_fss
 f_pipe
 f_print
-f_string
-f_type
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index 9232c712a5537c3d9b1924cc9b7dc03e98de0e5e..554b231c9a975c3f288e4ea5cf3c788ffa17e305 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_color -lf_file -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_extended_read.c
index 201ee7a6fd766ef798ec8f2b65ba84f27c2bf566..2b67fb6107096ac524cf987af3548671d590eb8b 100644 (file)
@@ -6,89 +6,21 @@ extern "C" {
 
 #ifndef _di_fss_extended_write_print_help_
   f_return_status fss_extended_write_print_help(const fss_extended_write_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_extended_write_name_long);
+    fll_program_print_help_header(data.context, fss_extended_write_name_long, fss_extended_write_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_extended_write_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_extended_write_short_object, fss_extended_write_long_object, "  Write an object instead of content.");
+    fll_program_print_help_option(data.context, fss_extended_write_short_file, fss_extended_write_long_file, "    Specify a file to send output to.");
+    fll_program_print_help_option(data.context, fss_extended_write_short_string, fss_extended_write_long_string, "  Specify a string to convert.");
+    fll_program_print_help_option(data.context, fss_extended_write_short_partial, fss_extended_write_long_partial, " For 'content', do not output the end of content character.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n");
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_short_object);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_long_object);
-    printf("   Write an object instead of content.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_short_file);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_long_file);
-    printf("     Specify a file to send output to.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_short_string);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_long_string);
-    printf("   Specify a string to convert.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_short_partial);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_long_partial);
-    printf("  For 'content', do not output the end of content character.");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_extended_write_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_extended_write_name, "");
 
     return f_none;
   }
@@ -103,7 +35,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_extended_write_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, data->context);
+      fl_macro_color_context_new(status2, data->context);
 
       if (f_status_is_error(status2)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -111,7 +43,7 @@ extern "C" {
         return status2;
       }
       else {
-        fll_colors_load_context(&data->context, data->parameters[fss_extended_write_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&data->context, data->parameters[fss_extended_write_parameter_light].result == f_console_result_found);
       }
     }
 
@@ -143,7 +75,7 @@ extern "C" {
       fss_extended_write_print_help(*data);
     }
     else if (data->parameters[fss_extended_write_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_extended_write_version);
+      fll_program_print_version(fss_extended_write_version);
     }
     else {
       f_array_length counter = 0;
@@ -341,7 +273,7 @@ extern "C" {
     } // while
 
     f_macro_string_lengths_delete(status, data->remaining);
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index fff6db5d80c5ad4ac264ea5bae81817506a40b16..a4867e855b7592514411b935c29afc34775a416b 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/status.h>
 #include <level_1/file.h>
 #include <level_1/fss_extended.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/fss_status.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 5fc603548d1d2942892c6686068f4e37b12a6f98..fd8beec54124b835e8908b0e50f60a0eb075e1ff 100644 (file)
@@ -1,19 +1,18 @@
-f_console
+f_type
 f_status
-f_fss
 f_memory
+f_string
+f_console
+f_fss
 f_pipe
 f_print
-f_string
-f_type
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index 0a24da65f17bbe4fadee98c769b6c3c70c8cdf54..162ecf9cbad2d1718af67a20ebecb3de2ab90d5f 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_color -lf_file -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_extended_write.c
index 2ae675391cee25a96a08176a39c9d06cb82a43a7..273fd1e51a981f8c11b5063aa41325c178dce952 100644 (file)
@@ -6,95 +6,21 @@ extern "C" {
 
 #ifndef _di_fss_status_code_print_help_
   f_return_status fss_status_code_print_help(const fss_status_code_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", fss_status_code_name_long);
+    fll_program_print_help_header(data.context, fss_status_code_name_long, fss_status_code_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", fss_status_code_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, fss_status_code_short_is_fine, fss_status_code_long_is_fine, "   Print f_true if the error code is not an error.");
+    fll_program_print_help_option(data.context, fss_status_code_short_is_warning, fss_status_code_long_is_warning, "Print f_true if the error code is a warning.");
+    fll_program_print_help_option(data.context, fss_status_code_short_is_error, fss_status_code_long_is_error, "  Print f_true if the error code is an error.");
+    fll_program_print_help_option(data.context, fss_status_code_short_number, fss_status_code_long_number, "    Convert status code name to number.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n");
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_short_is_fine);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_long_is_fine);
-    printf("     Returns true if the error code is not an error.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_short_is_warning);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_long_is_warning);
-    printf("  Returns true if the error code is a warning.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_short_is_error);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_long_is_error);
-    printf("    Returns true if the error code is an error.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_short_number);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_long_number);
-    printf("      Convert status code name to number.");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, fss_status_code_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "<");
-
-    printf(" error code(s) ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, ">");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, fss_status_code_name, "status code(s)");
 
     return f_none;
   }
@@ -109,7 +35,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[fss_status_code_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(allocation_status, data->context);
+      fl_macro_color_context_new(allocation_status, data->context);
 
       if (f_status_is_error(allocation_status)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -117,7 +43,7 @@ extern "C" {
         return allocation_status;
       }
 
-      fll_colors_load_context(&data->context, data->parameters[fss_status_code_parameter_light].result == f_console_result_found);
+      fl_color_load_context(&data->context, data->parameters[fss_status_code_parameter_light].result == f_console_result_found);
     }
 
     if (f_status_is_error(status)) {
@@ -148,7 +74,7 @@ extern "C" {
       fss_status_code_print_help(*data);
     }
     else if (data->parameters[fss_status_code_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(fss_status_code_version);
+      fll_program_print_version(fss_status_code_version);
     }
     else if (data->parameters[fss_status_code_parameter_is_error].result == f_console_result_found) {
       if (data->remaining.used > 0) {
@@ -361,7 +287,7 @@ extern "C" {
     } // while
 
     f_macro_string_lengths_delete(status, data->remaining);
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index e44119acfa8b4898b2781da8f0f20c67ae32d322..4f940f20e0c40030e939f131cebcc08d3d390cf1 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/status.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
-#include <level_2/status.h>
 #include <level_2/fss_status.h>
+#include <level_2/program.h>
+#include <level_2/status.h>
 
 #ifdef __cplusplus
 extern "C" {
index 3850bda6c182a536b935198fcaa1f7d6db25ed5a..8f6fe51eac49a1c84e9920104ad59823ab753c47 100644 (file)
@@ -1,20 +1,24 @@
-f_console
+f_type
 f_status
-f_fss
 f_memory
+f_string
+f_color
+f_console
+f_conversion
+f_file
+f_fss
 f_pipe
 f_print
-f_string
-f_type
-fl_colors
+f_utf
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
-fll_status
+fl_utf
 fll_execute
 fll_fss
+fll_program
+fll_status
index 1d0e9aeb288c449305314d8c65e742c53c4147fc..db39b7b556a99a245c84f3ca1861ccbc5a5a1e17 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_status -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_status -lfll_program -lfll_fss -lfll_execute -lfl_utf -lfl_string -lfl_status -lfl_fss -lfl_file -lfl_directory -lfl_console -lfl_color -lf_utf -lf_print -lf_pipe -lf_file -lf_conversion -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library fss_status_code.c
index 954dfdf69b8b3ba1b58f24770ae8e80f2ef841f7..1779e148ed47150e73cf6c53618a0361571b1c22 100644 (file)
@@ -22,77 +22,20 @@ extern "C" {
 
 #ifndef _di_init_print_help_
   f_return_status init_print_help(const init_argument argument) {
-    printf("\n");
-    fl_color_print(f_standard_output, argument.context.title, argument.context.reset, " %s", init_name_long);
+    fll_program_print_help_header(data.context, init_name_long, init_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, argument.context.notable, argument.context.reset, "  Version %s", init_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
+    fll_program_print_help_option(data.context, f_console_standard_short_debug, f_console_standard_long_debug, " Enable debugging.");
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, argument.context.important, argument.context.reset, " Available Options: ");
+    printf("%c", f_string_eol);
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_help);
+    fll_program_print_help_option(data.context, init_parameter_no_prepare_short_name, init_parameter_no_prepare_long_name, " Do not attempt to process kernel command line or perform any boot-time specific preparations.");
+    fll_program_print_help_option(data.context, init_parameter_runlevel_short_name, init_parameter_runlevel_long_name, " Specify a custom run level, ignoring the kernel command line runlevel argument.");
 
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_debug);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_debug);
-    printf("   Enable debugging");
-
-    printf("\n  %s", init_parameter_no_prepare_short_name);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_debug);
-
-    printf(", %s", init_parameter_no_prepare_long_name);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_debug);
-    printf("   Do not attempt to process kernel command line or perform any boot-time specific preparations.");
-
-    printf("\n  %s", init_parameter_runlevel_short_name);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_short_debug);
-
-    printf(", %s", init_parameter_runlevel_long_name);
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, f_console_standard_long_debug);
-    printf("   Specify a custom run level, ignoring the kernel command line runlevel argument.");
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, argument.context.important, argument.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, argument.context.standout, argument.context.reset, init_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, argument.context.notable, argument.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, argument.context.notable, argument.context.reset, "]");
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, init_name, "");
 
     return f_none;
   }
@@ -113,10 +56,10 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (argument->parameters[init_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(status2, argument->context);
+      fl_macro_color_context_new(status2, argument->context);
 
       if (status2 == f_none) {
-        fll_colors_load_context(&argument->context, argument->parameters[init_parameter_light].result == f_console_result_found);
+        fl_color_load_context(&argument->context, argument->parameters[init_parameter_light].result == f_console_result_found);
       } else {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
         init_delete_argument((*argument));
index f09356e73fc65b2cd2227e2a45d2577a79888649..0c2d4fcfbb74791f2b1621da0fede1a0e9cc6b2e 100644 (file)
@@ -201,11 +201,11 @@ extern "C" {
 
   #define init_delete_argument(status, argument) \
     memset(&argument.parameters, 0, sizeof(f_console_parameter) * init_total_parameters); \
-    fl_delete_color_context(status, argument.context);
+    fl_macro_color_context_delete(status, argument.context);
 
   #define init_destroy_argument(status, argument) \
     memset(&argument.parameters, 0, sizeof(f_console_parameter) * init_total_parameters); \
-    fl_destroy_color_context(status, argument.context);
+    fl_macro_color_context_destroy(status, argument.context);
 #endif // _di_init_argument_
 
 #ifndef _di_init_print_version_
index 7c8202b61800cb43bb4b50e8517888d5fb879038..22893e8f9d68ea73f667ba0d591b89b2a53114f2 100644 (file)
@@ -1,20 +1,20 @@
-f_console
+f_type
 f_status
-f_fss
 f_memory
+f_string
+f_color
+f_console
+f_fss
 f_pipe
 f_print
-f_string
-f_type
 f_utf
-fl_colors
+fl_color
 fl_console
 fl_directory
 fl_file
 fl_fss
-fl_program
 fl_status
 fl_string
-fll_colors
 fll_execute
 fll_fss
+fll_program
index 07ee316537bbb1df43489a99e8569708544a59d2..cc3d8cd9ffc6d5dac2e82b1e6577244719c114b9 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_fss -lfll_execute -lfll_colors -lfl_string -lfl_status -lfl_program -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lfl_colors -lf_file -lf_utf -lf_print -lf_pipe -lf_console -lf_memory
+build_libraries_fll -lfll_program -lfll_fss -lfll_execute -lfl_string -lfl_status -lfl_fss -lf_conversion -lfl_file -lfl_directory -lfl_console -lfl_color -lf_file -lf_utf -lf_print -lf_pipe -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library init.c private-init.c
index b6a94428792ea948e333659eb35d2611e722bd0a..9a64cb59458dc51758bec35708b6e8ae0202cdd4 100644 (file)
@@ -6,95 +6,21 @@ extern "C" {
 
 #ifndef _di_status_code_print_help_
   f_return_status status_code_print_help(const status_code_data data) {
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.title, data.context.reset, " %s", status_code_name_long);
+    fll_program_print_help_header(data.context, status_code_name_long, status_code_version);
 
-    printf("\n");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "  Version %s", status_code_version);
+    fll_program_print_help_option(data.context, f_console_standard_short_help, f_console_standard_long_help, "    Print this help message.");
+    fll_program_print_help_option(data.context, f_console_standard_short_light, f_console_standard_long_light, "   Output using colors that show up better on light backgrounds.");
+    fll_program_print_help_option(data.context, f_console_standard_short_no_color, f_console_standard_long_no_color, "Do not output in color.");
+    fll_program_print_help_option(data.context, f_console_standard_short_version, f_console_standard_long_version, " Print only the version number.");
 
+    printf("%c", f_string_eol);
 
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Available Options: ");
+    fll_program_print_help_option(data.context, status_code_short_is_fine, status_code_long_is_fine, "   Print f_true if the error code is not an error.");
+    fll_program_print_help_option(data.context, status_code_short_is_warning, status_code_long_is_warning, "Print f_true if the error code is a warning.");
+    fll_program_print_help_option(data.context, status_code_short_is_error, status_code_long_is_error, "  Print f_true if the error code is an error.");
+    fll_program_print_help_option(data.context, status_code_short_number, status_code_long_number, "    Convert status code name to number.");
 
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_help);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_help);
-    printf("      Print this help message");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_light);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_light);
-    printf("     Output using colors that show up better on light backgrounds");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_no_color);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_no_color);
-    printf("  Do not output in color");
-
-    printf("\n  %s", f_console_symbol_short_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_short_version);
-
-    printf(", %s", f_console_symbol_long_disable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, f_console_standard_long_version);
-    printf("   Print only the version number");
-
-
-    printf("\n");
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_short_is_fine);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_long_is_fine);
-    printf("     Returns true if the error code is not an error.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_short_is_warning);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_long_is_warning);
-    printf("  Returns true if the error code is a warning.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_short_is_error);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_long_is_error);
-    printf("    Returns true if the error code is an error.");
-
-    printf("\n  %s", f_console_symbol_short_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_short_number);
-
-    printf(", %s", f_console_symbol_long_enable);
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_long_number);
-    printf("      Convert status code name to number.");
-
-
-    printf("\n\n");
-    fl_color_print(f_standard_output, data.context.important, data.context.reset, " Usage: ");
-
-    printf("\n  ");
-    fl_color_print(f_standard_output, data.context.standout, data.context.reset, status_code_name);
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "[");
-
-    printf(" options ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "]");
-
-    printf("  ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, "<");
-
-    printf(" error code(s) ");
-    fl_color_print(f_standard_output, data.context.notable, data.context.reset, ">");
-
-
-    printf("\n\n");
+    fll_program_print_help_usage(data.context, status_code_name, "status code(s)");
 
     return f_none;
   }
@@ -109,7 +35,7 @@ extern "C" {
 
     // load colors when not told to show no colors
     if (data->parameters[status_code_parameter_no_color].result == f_console_result_none) {
-      fl_new_color_context(allocation_status, data->context);
+      fl_macro_color_context_new(allocation_status, data->context);
 
       if (f_status_is_error(allocation_status)) {
         fprintf(f_standard_error, "Critical Error: unable to allocate memory\n");
@@ -117,7 +43,7 @@ extern "C" {
         return allocation_status;
       }
 
-      fll_colors_load_context(&data->context, data->parameters[status_code_parameter_light].result == f_console_result_found);
+      fl_color_load_context(&data->context, data->parameters[status_code_parameter_light].result == f_console_result_found);
     }
 
     if (f_status_is_error(status)) {
@@ -148,7 +74,7 @@ extern "C" {
       status_code_print_help(*data);
     }
     else if (data->parameters[status_code_parameter_version].result == f_console_result_found) {
-      fl_program_print_version(status_code_version);
+      fll_program_print_version(status_code_version);
     }
     else if (data->parameters[status_code_parameter_is_error].result == f_console_result_found) {
       if (data->remaining.used > 0) {
@@ -360,7 +286,7 @@ extern "C" {
     } // while
 
     f_macro_string_lengths_delete(status, data->remaining);
-    fl_delete_color_context(status, data->context);
+    fl_macro_color_context_delete(status, data->context);
 
     return f_none;
   }
index 1b1b607cf9d6eb58313b8ad17047cff54ebc3449..55245445e208d39af930bec7a2b6e49ee49f45cb 100644 (file)
 #include <level_0/type.h>
 
 // fll-1 includes
-#include <level_1/colors.h>
+#include <level_1/color.h>
 #include <level_1/console.h>
 #include <level_1/status.h>
-#include <level_1/program.h>
 #include <level_1/string.h>
 
 // fll-2 includes
-#include <level_2/colors.h>
 #include <level_2/status.h>
+#include <level_2/program.h>
 
 #ifdef __cplusplus
 extern "C" {
index 72a958b1bfef8d6f40c5eb8dd055862460145c8e..bc7bb00f4234e734404df5d24cb4df79f612fc17 100644 (file)
@@ -1,15 +1,19 @@
+f_type
+f_status
+f_memory
+f_string
+f_color
 f_console
 f_conversion
-f_status
+f_file
 f_pipe
 f_print
-f_string
-f_type
-fl_colors
+f_utf
+fl_color
 fl_console
 fl_file
-fl_program
-fl_string
 fl_status
-fll_colors
+fl_string
+fl_utf
+fll_program
 fll_status
index 75fb1876226456380f5aa8fce741d67d1a46460e..0d3f2cc71eaa9b12e68b0b2c95358738325294f4 100644 (file)
@@ -10,7 +10,7 @@ version_micro 0
 build_compiler gcc
 build_linker ar
 build_libraries -lc
-build_libraries_fll -lfll_status -lfll_colors -lfl_status -lfl_string -lfl_program -lfl_file -lfl_console -lf_utf -lfl_colors -lf_file -lf_print -lf_pipe -lf_conversion -lf_console -lf_memory
+build_libraries_fll -lfll_status -lfll_program -lfl_utf -lfl_string -lfl_status -lfl_file -lfl_console -lfl_color -lf_utf -lf_print -lf_pipe -lf_file -lf_conversion -lf_console -lf_memory
 #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0
 #build_libraries_fll-monolithic -lfll
 build_sources_library status_code.c