]> Kevux Git Server - fll/commitdiff
Update: Add fl_directory_do(), add new status codes, update fl_directory_copy(),...
authorKevin Day <kevin@kevux.org>
Sun, 26 Mar 2023 00:40:51 +0000 (19:40 -0500)
committerKevin Day <kevin@kevux.org>
Sun, 26 Mar 2023 00:40:51 +0000 (19:40 -0500)
An alternative to the ftw() is desired.
The function, fl_directory_do() is provided to perform generic recursive tasks.
This is based off of the fl_directory_copy() function.
This is not yet tested and there may be changes in the future once this is tested.

I noticed some things that could be improved in fl_directory_copy().
The recursion structure is actually specific to fl_directory_copy(), so rename it with "copy" in the name.

Add additional status codes that might be useful:
- F_bottom
- F_bottom_not
- F_character
- F_character_not
- F_fifo
- F_fifo_not
- F_middle
- F_middle_not
- F_regular
- F_regular_not
- F_top
- F_top_not

Provide a standard macro initializer and use it to make project maintenance easier.
This reduces lines of code in the programs.

Update the program flags:
- Use "in" and "out" instead of "to" and "from".
- Separate the "file" from the now "in" and "out".

Update the build settings files, making sure the locale and language environment variables are exposed by default.

Relocate the utf-8 code that previously didn't properly get properly relocated.

93 files changed:
build/stand_alone/fake.config.h
level_0/f_directory/c/directory/common.h
level_0/f_directory/c/directory/type.c
level_0/f_directory/c/directory/type.h
level_0/f_status/c/status.h
level_0/f_status_string/c/status_string.c
level_0/f_status_string/c/status_string.h
level_1/fl_directory/c/directory.c
level_1/fl_directory/c/directory.h
level_1/fl_directory/c/private-directory.c
level_1/fl_directory/c/private-directory.h
level_2/fll_file/c/file.c
level_2/fll_file/c/file.h
level_2/fll_program/c/program/common.h
level_2/fll_status_string/c/status_string.c
level_3/byte_dump/c/common.h
level_3/byte_dump/c/main.c
level_3/byte_dump/data/build/settings
level_3/control/c/common.h
level_3/control/c/main.c
level_3/control/data/build/settings
level_3/controller/c/common.h
level_3/controller/c/main.c
level_3/controller/data/build/settings
level_3/fake/c/main/build.c
level_3/fake/c/main/common/enumeration.h
level_3/fake/c/main/main.c
level_3/fake/c/main/make/operate_process_type.c
level_3/fake/c/main/print/verbose.c
level_3/fake/c/main/print/verbose.h
level_3/fake/data/build/settings
level_3/firewall/c/common.h
level_3/firewall/c/main.c
level_3/firewall/data/build/settings
level_3/fss_basic_list_read/c/common.h
level_3/fss_basic_list_read/c/main.c
level_3/fss_basic_list_read/data/build/settings
level_3/fss_basic_read/c/common.h
level_3/fss_basic_read/c/main.c
level_3/fss_basic_read/data/build/settings
level_3/fss_embedded_list_read/c/common.h
level_3/fss_embedded_list_read/c/main.c
level_3/fss_embedded_list_read/data/build/settings
level_3/fss_extended_list_read/c/common.h
level_3/fss_extended_list_read/c/main.c
level_3/fss_extended_list_read/data/build/settings
level_3/fss_extended_read/c/common.h
level_3/fss_extended_read/c/main.c
level_3/fss_extended_read/data/build/settings
level_3/fss_identify/c/common.h
level_3/fss_identify/c/main.c
level_3/fss_identify/data/build/settings
level_3/fss_payload_read/c/common.h
level_3/fss_payload_read/c/main.c
level_3/fss_payload_read/data/build/settings
level_3/fss_write/c/basic/main.c
level_3/fss_write/c/basic_list/main.c
level_3/fss_write/c/embedded_list/main.c
level_3/fss_write/c/extended/main.c
level_3/fss_write/c/extended_list/main.c
level_3/fss_write/c/main/common/define.h
level_3/fss_write/c/main/common/enumeration.h
level_3/fss_write/c/main/main.c
level_3/fss_write/c/payload/main.c
level_3/fss_write/data/build/settings
level_3/fss_write/data/build/settings.basic
level_3/fss_write/data/build/settings.basic_list
level_3/fss_write/data/build/settings.embedded_list
level_3/fss_write/data/build/settings.extended
level_3/fss_write/data/build/settings.extended_list
level_3/fss_write/data/build/settings.main
level_3/fss_write/data/build/settings.payload
level_3/iki_read/c/main/common/define.h
level_3/iki_read/c/main/common/enumeration.h
level_3/iki_read/c/main/main.c
level_3/iki_read/data/build/settings
level_3/iki_write/c/main/common/define.h
level_3/iki_write/c/main/common/enumeration.h
level_3/iki_write/c/main/main.c
level_3/iki_write/data/build/settings
level_3/status_code/c/fss/main.c
level_3/status_code/c/main/common/define.h
level_3/status_code/c/main/common/enumeration.h
level_3/status_code/c/main/main.c
level_3/status_code/c/main/status_code.h
level_3/status_code/data/build/settings
level_3/status_code/data/build/settings.fss
level_3/status_code/data/build/settings.main
level_3/utf8/c/main/common/define.h
level_3/utf8/c/main/common/enumeration.h
level_3/utf8/c/main/common/type.h
level_3/utf8/c/main/main.c
level_3/utf8/data/build/settings

index f61d2c2b1d016219d272a49622bdd2e4a61ee24e..48e2c1bc300752d7f8256b7babf847253c1a3a99 100644 (file)
 #define _di_f_directory_mode_
 //#define _di_f_directory_open_
 #define _di_f_directory_open_at_
-//#define _di_f_directory_recurse_delete_
-#define _di_f_directory_recurse_destroy_
-//#define _di_f_directory_recurse_flag_e_
-//#define _di_f_directory_recurse_t_
+//#define _di_f_directory_recurse_copy_delete_
+#define _di_f_directory_recurse_copy_destroy_
+//#define _di_f_directory_recurse_copy_flag_e_
+//#define _di_f_directory_recurse_copy_t_
+#define _di_f_directory_recurse_do_delete_
+#define _di_f_directory_recurse_do_destroy_
+#define _di_f_directory_recurse_do_flag_e_
+#define _di_f_directory_recurse_do_t_
 //#define _di_f_directory_remove_
 //#define _di_f_directory_remove_custom_
 #define _di_f_directory_s_
 
 //#define _di_fl_directory_copy_
 //#define _di_fl_directory_create_
+#define _di_fl_directory_do_
 //#define _di_fl_directory_list_
 #define _di_fl_directory_path_pop_
 #define _di_fl_directory_path_push_
index 45f91d5d7d02497bfa788ba31cf22756f66215b5..d691cea0d5c9bb9f050692c133dc582d2f4285f8 100644 (file)
@@ -103,9 +103,9 @@ extern "C" {
 #endif // _di_f_directory_max_d_
 
 /**
- * Directory recurse flags.
+ * Directory recurse copy flags.
  *
- * f_directory_recurse_flag_*:
+ * f_directory_recurse_copy_flag_*_e:
  *   - none:        No flags are set.
  *   - clone:       Operate as clone instead of as copy, if applicable.
  *   - dereference: Dereference symbolic links rather than operating on the link itself.
@@ -114,17 +114,60 @@ extern "C" {
  *   - owner:       File flag representing copying the owner.
  *   - top:         Operate on top directory and not just inside the directory.
  */
-#ifndef _di_f_directory_recurse_flag_e_
+#ifndef _di_f_directory_recurse_copy_flag_e_
   enum {
-    f_directory_recurse_flag_none_e        = 0,
-    f_directory_recurse_flag_clone_e       = 0x1,
-    f_directory_recurse_flag_dereference_e = 0x2,
-    f_directory_recurse_flag_exclusive_e   = 0x4,
-    f_directory_recurse_flag_group_e       = 0x8,
-    f_directory_recurse_flag_owner_e       = 0x10,
-    f_directory_recurse_flag_top_e         = 0x20,
+    f_directory_recurse_copy_flag_none_e        = 0,
+    f_directory_recurse_copy_flag_clone_e       = 0x1,
+    f_directory_recurse_copy_flag_dereference_e = 0x2,
+    f_directory_recurse_copy_flag_exclusive_e   = 0x4,
+    f_directory_recurse_copy_flag_group_e       = 0x8,
+    f_directory_recurse_copy_flag_owner_e       = 0x10,
+    f_directory_recurse_copy_flag_top_e         = 0x20,
   }; // enum
-#endif // _di_f_directory_recurse_flag_e_
+#endif // _di_f_directory_recurse_copy_flag_e_
+
+/**
+ * Directory recurse do flags.
+ *
+ * f_directory_recurse_do_flag_*_e:
+ *   For the recurse flag property.
+ *   - none:        No flags are set.
+ *   - dereference: Dereference symbolic links rather than operating on the link itself.
+ *   - first:       Operate on directory first (before recursion).
+ *   - last:        Operate on directory last (after recursion).
+ *   - top:         Operate on top-most directory, or for the callback parameter, designate that this is the top path.
+ *
+ *   For the action callback parameter.
+ *   - block:      File is a block.
+ *   - character:  File is a character.
+ *   - directory:  File is a directory.
+ *   - fifo:       File is a file-in/file-out.
+ *   - link:       File is a link.
+ *   - regular:    File is a regular file.
+ *   - socket:     File is a socket.
+ *   - unknown:    File is an unknown type.
+ */
+#ifndef _di_f_directory_recurse_do_flag_e_
+  enum {
+
+    // For the recurse flag property.
+    f_directory_recurse_do_flag_none_e        = 0,
+    f_directory_recurse_do_flag_dereference_e = 0x1,
+    f_directory_recurse_do_flag_first_e       = 0x2,
+    f_directory_recurse_do_flag_last_e        = 0x4,
+    f_directory_recurse_do_flag_top_e         = 0x8,
+
+    // For the action callback parameter.
+    f_directory_recurse_do_flag_block_e     = 0x10,
+    f_directory_recurse_do_flag_character_e = 0x20,
+    f_directory_recurse_do_flag_directory_e = 0x40,
+    f_directory_recurse_do_flag_fifo_e      = 0x80,
+    f_directory_recurse_do_flag_link_e      = 0x100,
+    f_directory_recurse_do_flag_regular_e   = 0x200,
+    f_directory_recurse_do_flag_socket_e    = 0x400,
+    f_directory_recurse_do_flag_unknown_e   = 0x800,
+  }; // enum
+#endif // _di_f_directory_recurse_do_flag_e_
 
 #ifdef __cplusplus
 } // extern "C"
index 3dd22b99b515ce2bc5df34529ea355a11f14fbad..85e6f71264bd5c9fcaacc5de7d45795d5bbb5ce6 100644 (file)
@@ -43,8 +43,8 @@ extern "C" {
   }
 #endif // _di_f_directory_listing_destroy_
 
-#ifndef _di_f_directory_recurse_delete_
-  f_status_t f_directory_recurse_delete(f_directory_recurse_t * const recurse) {
+#ifndef _di_f_directory_recurse_copy_delete_
+  f_status_t f_directory_recurse_copy_delete(f_directory_recurse_copy_t * const recurse) {
     #ifndef _di_level_0_parameter_checking_
       if (!recurse) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
@@ -53,10 +53,10 @@ extern "C" {
 
     return F_none;
   }
-#endif // _di_f_directory_recurse_delete_
+#endif // _di_f_directory_recurse_copy_delete_
 
-#ifndef _di_f_directory_recurse_destroy_
-  f_status_t f_directory_recurse_destroy(f_directory_recurse_t * const recurse) {
+#ifndef _di_f_directory_recurse_copy_destroy_
+  f_status_t f_directory_recurse_copy_destroy(f_directory_recurse_copy_t * const recurse) {
     #ifndef _di_level_0_parameter_checking_
       if (!recurse) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
@@ -65,7 +65,31 @@ extern "C" {
 
     return F_none;
   }
-#endif // _di_f_directory_recurse_destroy_
+#endif // _di_f_directory_recurse_copy_destroy_
+
+#ifndef _di_f_directory_recurse_do_delete_
+  f_status_t f_directory_recurse_do_delete(f_directory_recurse_do_t * const recurse) {
+    #ifndef _di_level_0_parameter_checking_
+      if (!recurse) return F_status_set_error(F_parameter);
+    #endif // _di_level_0_parameter_checking_
+
+    f_directory_listing_delete(&recurse->listing);
+
+    return F_none;
+  }
+#endif // _di_f_directory_recurse_do_delete_
+
+#ifndef _di_f_directory_recurse_do_destroy_
+  f_status_t f_directory_recurse_do_destroy(f_directory_recurse_do_t * const recurse) {
+    #ifndef _di_level_0_parameter_checking_
+      if (!recurse) return F_status_set_error(F_parameter);
+    #endif // _di_level_0_parameter_checking_
+
+    f_directory_listing_destroy(&recurse->listing);
+
+    return F_none;
+  }
+#endif // _di_f_directory_recurse_do_destroy_
 
 #ifndef _di_f_directory_statuss_adjust_
   f_status_t f_directory_statuss_adjust(const f_array_length_t length, f_directory_statuss_t * const statuss) {
index a69ae6bc2fd68b4a1f1e7eb9c1795eb26fbd82aa..ffe1d4b44f9cc9d6af71dae8588db24efc1a8daa 100644 (file)
@@ -112,7 +112,7 @@ extern "C" {
 #endif // _di_f_directory_statuss_t_
 
 /**
- * A structure containing directory recursion information.
+ * A structure containing directory recursion information for copy or clone operations.
  *
  * The flag is processed as follows (using f_file_stat_flags_*_e):
  *   - f_file_stat_flag_exclusive_e:
@@ -132,7 +132,7 @@ extern "C" {
  *
  *   (For a clone operation, the file mode is always copied.)
  *
- * The failure() and verbose() callbacks provide full access to this f_directory_recurse_t structure.
+ * The verbose() callbacks provide full access to this f_directory_recurse_copy_t structure.
  * These callbacks must take care to properly modify the structure or they could cause security, integrity, or functionality problems.
  *
  * flag:            A set of flags used exclusively by the directory recurse process (not to be confused with state.flag).
@@ -148,10 +148,10 @@ extern "C" {
  * destination_top: A pointer to the top destination string, used for error handling and printing (generally assigned internally).
  * verbose:         A callback used for printing verbose messages (Set to NULL to not use).
  *
- * The macro_f_directory_recurse_t_initialize_1() all arguments.
- * The macro_f_directory_recurse_t_initialize_2() all arguments except for internally managed source, destination, mode, and depth.
+ * The macro_f_directory_recurse_copy_t_initialize_1() all arguments.
+ * The macro_f_directory_recurse_copy_t_initialize_2() all arguments except for internally managed source, destination, mode, and depth.
  */
-#ifndef _di_f_directory_recurse_t_
+#ifndef _di_f_directory_recurse_copy_t_
   typedef struct {
     f_number_unsigned_t max_depth;
     f_number_unsigned_t size_block;
@@ -168,9 +168,9 @@ extern "C" {
     const f_string_static_t *destination_top;
 
     void (*verbose)(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
-  } f_directory_recurse_t;
+  } f_directory_recurse_copy_t;
 
-  #define f_directory_recurse_t_initialize { \
+  #define f_directory_recurse_copy_t_initialize { \
     F_directory_max_recurse_depth_d, \
     F_file_default_read_size_d, \
     F_file_flag_write_only_d, \
@@ -185,7 +185,7 @@ extern "C" {
     0, \
   }
 
-  #define macro_f_directory_recurse_t_initialize_1(max_depth, size_block, flag, depth, mode, state, listing, source, source_top, destination, destination_top, verbose) { \
+  #define macro_f_directory_recurse_copy_t_initialize_1(max_depth, size_block, flag, depth, mode, state, listing, source, source_top, destination, destination_top, verbose) { \
     max_depth, \
     size_block, \
     flag, \
@@ -200,7 +200,7 @@ extern "C" {
     verbose, \
   }
 
-  #define macro_f_directory_recurse_t_initialize_2(max_depth, size_block, flag, depth, mode, state, verbose) { \
+  #define macro_f_directory_recurse_copy_t_initialize_2(max_depth, size_block, flag, depth, mode, state, verbose) { \
     max_depth, \
     size_block, \
     flag, \
@@ -214,7 +214,79 @@ extern "C" {
     0, \
     verbose, \
   }
-#endif // _di_f_directory_recurse_t_
+#endif // _di_f_directory_recurse_copy_t_
+
+/**
+ * A structure containing directory recursion information.
+ *
+ * The action() callbacks provide full access to this f_directory_recurse_do_t structure.
+ * The callback must take care to properly modify the structure or they could cause security, integrity, or functionality problems.
+ * The action callback may set any of the following on the state.status to have the following effects:
+ *   - Any status (with error bit set): Immediately return as error.
+ *   - F_break: Break out of the current loop.
+ *   - F_continue: Skip to the next iteration in the current loop.
+ *   - F_done: immedately return as success but do nothing else in this recursion.
+ *
+ * max_depth: The maximum recursion depth to use.
+ * depth:     A number representing the depth recursed thus far (generally assigned internally).
+ * flag:      A set of flags used exclusively by the directory recurse process (not to be confused with state.flag).
+ * state:     A pointer to the state information.
+ * listing:   A directory listing structure used internally to help reduce repeated memory allocation overhead.
+ * path:      A pointer to the current path string, used for error handling and printing (generally assigned internally).
+ * path_top:  A pointer to the top path string, used for error handling and printing (generally assigned internally).
+ * action:    A callback used for performing some action (this is required to do anything).
+ *
+ * The macro_f_directory_recurse_do_t_initialize_1() all arguments.
+ * The macro_f_directory_recurse_do_t_initialize_2() all arguments except for internally managed source, destination, mode, and depth.
+ */
+#ifndef _di_f_directory_recurse_do_t_
+  typedef struct {
+    f_number_unsigned_t max_depth;
+    f_array_length_t depth;
+    uint8_t flag;
+
+    f_state_t state;
+    f_directory_listing_t listing;
+
+    const f_string_static_t *path;
+    const f_string_static_t *path_top;
+
+    void (*action)(void * const recurse, const uint16_t flag);
+  } f_directory_recurse_do_t;
+
+  #define f_directory_recurse_do_t_initialize { \
+    F_directory_max_recurse_depth_d, \
+    0, \
+    f_directory_recurse_do_flag_none_e, \
+    f_state_t_initialize, \
+    f_directory_listing_t_initialize, \
+    0, \
+    0, \
+    0, \
+  }
+
+  #define macro_f_directory_recurse_do_t_initialize_1(max_depth, depth, flag, state, listing, path, path_top, action) { \
+    max_depth, \
+    depth, \
+    flag, \
+    state, \
+    listing, \
+    path, \
+    path_top, \
+    action, \
+  }
+
+  #define macro_f_directory_recurse_do_t_initialize_2(max_depth, depth, flag, state, action) { \
+    max_depth, \
+    depth,\
+    flag, \
+    state, \
+    f_directory_listing_t_initialize, \
+    0, \
+    0, \
+    action, \
+  }
+#endif // _di_f_directory_recurse_do_t_
 
 /**
  * Delete all arrays within the listing.
@@ -269,9 +341,47 @@ extern "C" {
  *
  * @see f_string_dynamics_resize()
  */
-#ifndef _di_f_directory_recurse_delete_
-  extern f_status_t f_directory_recurse_delete(f_directory_recurse_t * const recurse);
-#endif // _di_f_directory_recurse_delete_
+#ifndef _di_f_directory_recurse_copy_delete_
+  extern f_status_t f_directory_recurse_copy_delete(f_directory_recurse_copy_t * const recurse);
+#endif // _di_f_directory_recurse_copy_delete_
+
+/**
+ * Destroy all non-pointer based dynamic arrays within the recurse.
+ *
+ * @param recurse
+ *   The recurse to fully destroy.
+ *
+ * @return
+ *   F_none on success.
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_dynamics_adjust().
+ *
+ * @see f_string_dynamics_adjust()
+ */
+#ifndef _di_f_directory_recurse_copy_destroy_
+  extern f_status_t f_directory_recurse_copy_destroy(f_directory_recurse_copy_t * const recurse);
+#endif // _di_f_directory_recurse_copy_destroy_
+
+/**
+ * Delete all non-pointer based dynamic arrays within the recurse.
+ *
+ * @param recurse
+ *   The recurse to fully delete.
+ *
+ * @return
+ *   F_none on success.
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_dynamics_resize().
+ *
+ * @see f_string_dynamics_resize()
+ */
+#ifndef _di_f_directory_recurse_do_delete_
+  extern f_status_t f_directory_recurse_do_delete(f_directory_recurse_do_t * const recurse);
+#endif // _di_f_directory_recurse_do_delete_
 
 /**
  * Destroy all non-pointer based dynamic arrays within the recurse.
@@ -288,9 +398,9 @@ extern "C" {
  *
  * @see f_string_dynamics_adjust()
  */
-#ifndef _di_f_directory_recurse_destroy_
-  extern f_status_t f_directory_recurse_destroy(f_directory_recurse_t * const recurse);
-#endif // _di_f_directory_recurse_destroy_
+#ifndef _di_f_directory_recurse_do_destroy_
+  extern f_status_t f_directory_recurse_do_destroy(f_directory_recurse_do_t * const recurse);
+#endif // _di_f_directory_recurse_do_destroy_
 
 /**
  * Resize all parts of the directory statuss structure using the same length.
index 87a0c7b57644044755d0585b512ac02adc1f8aa9..6b285fa8e3a3f2c6e2fed937a6ceeecd8884c2c1 100644 (file)
@@ -223,6 +223,8 @@ extern "C" {
       F_block_not,
       F_body,
       F_body_not,
+      F_bottom,
+      F_bottom_not,
       F_bound,
       F_bound_not,
       F_break,
@@ -231,6 +233,8 @@ extern "C" {
       F_call_not,
       F_capability,
       F_capability_not,
+      F_character,
+      F_character_not,
       F_child,
       F_child_not,
       F_complete,
@@ -301,6 +305,8 @@ extern "C" {
       F_failure_not,
       F_family,
       F_family_not,
+      F_fifo,
+      F_fifo_not,
       F_first,
       F_first_not,
       F_footer,
@@ -354,6 +360,8 @@ extern "C" {
       F_memory_not,
       F_message,
       F_message_not,
+      F_middle,
+      F_middle_not,
       F_minor,
       F_minor_not,
       F_moderate,
@@ -417,6 +425,8 @@ extern "C" {
       F_recover_not,
       F_recurse,
       F_recurse_not,
+      F_regular,
+      F_regular_not,
       F_relative,
       F_relative_not,
       F_remote,
@@ -476,6 +486,8 @@ extern "C" {
       F_time_out,
       F_too_large,
       F_too_small,
+      F_top,
+      F_top_not,
       F_type,
       F_type_not,
       F_user,
index 626331b8837852ed799756a8f3a7b0f84f3cd5f3..5ecd72a42bb68f6a0bcc31efadcf31d415c14fd5 100644 (file)
@@ -97,6 +97,8 @@ extern "C" {
     const f_string_static_t f_status_block_not_s = macro_f_string_static_t_initialize(F_status_block_not_s, 0, F_status_block_not_s_length);
     const f_string_static_t f_status_body_s = macro_f_string_static_t_initialize(F_status_body_s, 0, F_status_body_s_length);
     const f_string_static_t f_status_body_not_s = macro_f_string_static_t_initialize(F_status_body_not_s, 0, F_status_body_not_s_length);
+    const f_string_static_t f_status_bottom_s = macro_f_string_static_t_initialize(F_status_bottom_s, 0, F_status_bottom_s_length);
+    const f_string_static_t f_status_bottom_not_s = macro_f_string_static_t_initialize(F_status_bottom_not_s, 0, F_status_bottom_not_s_length);
     const f_string_static_t f_status_bound_s = macro_f_string_static_t_initialize(F_status_bound_s, 0, F_status_bound_s_length);
     const f_string_static_t f_status_bound_not_s = macro_f_string_static_t_initialize(F_status_bound_not_s, 0, F_status_bound_not_s_length);
     const f_string_static_t f_status_break_s = macro_f_string_static_t_initialize(F_status_break_s, 0, F_status_break_s_length);
@@ -105,6 +107,8 @@ extern "C" {
     const f_string_static_t f_status_call_not_s = macro_f_string_static_t_initialize(F_status_call_not_s, 0, F_status_call_not_s_length);
     const f_string_static_t f_status_capability_s = macro_f_string_static_t_initialize(F_status_capability_s, 0, F_status_capability_s_length);
     const f_string_static_t f_status_capability_not_s = macro_f_string_static_t_initialize(F_status_capability_not_s, 0, F_status_capability_not_s_length);
+    const f_string_static_t f_status_character_s = macro_f_string_static_t_initialize(F_status_character_s, 0, F_status_character_s_length);
+    const f_string_static_t f_status_character_not_s = macro_f_string_static_t_initialize(F_status_character_not_s, 0, F_status_character_not_s_length);
     const f_string_static_t f_status_child_s = macro_f_string_static_t_initialize(F_status_child_s, 0, F_status_child_s_length);
     const f_string_static_t f_status_child_not_s = macro_f_string_static_t_initialize(F_status_child_not_s, 0, F_status_child_not_s_length);
     const f_string_static_t f_status_complete_s = macro_f_string_static_t_initialize(F_status_complete_s, 0, F_status_complete_s_length);
@@ -175,6 +179,8 @@ extern "C" {
     const f_string_static_t f_status_failure_not_s = macro_f_string_static_t_initialize(F_status_failure_not_s, 0, F_status_failure_not_s_length);
     const f_string_static_t f_status_family_s = macro_f_string_static_t_initialize(F_status_family_s, 0, F_status_family_s_length);
     const f_string_static_t f_status_family_not_s = macro_f_string_static_t_initialize(F_status_family_not_s, 0, F_status_family_not_s_length);
+    const f_string_static_t f_status_fifo_s = macro_f_string_static_t_initialize(F_status_fifo_s, 0, F_status_fifo_s_length);
+    const f_string_static_t f_status_fifo_not_s = macro_f_string_static_t_initialize(F_status_fifo_not_s, 0, F_status_fifo_not_s_length);
     const f_string_static_t f_status_first_s = macro_f_string_static_t_initialize(F_status_first_s, 0, F_status_first_s_length);
     const f_string_static_t f_status_first_not_s = macro_f_string_static_t_initialize(F_status_first_not_s, 0, F_status_first_not_s_length);
     const f_string_static_t f_status_footer_s = macro_f_string_static_t_initialize(F_status_footer_s, 0, F_status_footer_s_length);
@@ -228,6 +234,8 @@ extern "C" {
     const f_string_static_t f_status_memory_not_s = macro_f_string_static_t_initialize(F_status_memory_not_s, 0, F_status_memory_not_s_length);
     const f_string_static_t f_status_message_s = macro_f_string_static_t_initialize(F_status_message_s, 0, F_status_message_s_length);
     const f_string_static_t f_status_message_not_s = macro_f_string_static_t_initialize(F_status_message_not_s, 0, F_status_message_not_s_length);
+    const f_string_static_t f_status_middle_s = macro_f_string_static_t_initialize(F_status_middle_s, 0, F_status_middle_s_length);
+    const f_string_static_t f_status_middle_not_s = macro_f_string_static_t_initialize(F_status_middle_not_s, 0, F_status_middle_not_s_length);
     const f_string_static_t f_status_minor_s = macro_f_string_static_t_initialize(F_status_minor_s, 0, F_status_minor_s_length);
     const f_string_static_t f_status_minor_not_s = macro_f_string_static_t_initialize(F_status_minor_not_s, 0, F_status_minor_not_s_length);
     const f_string_static_t f_status_moderate_s = macro_f_string_static_t_initialize(F_status_moderate_s, 0, F_status_moderate_s_length);
@@ -291,6 +299,8 @@ extern "C" {
     const f_string_static_t f_status_recover_not_s = macro_f_string_static_t_initialize(F_status_recover_not_s, 0, F_status_recover_not_s_length);
     const f_string_static_t f_status_recurse_s = macro_f_string_static_t_initialize(F_status_recurse_s, 0, F_status_recurse_s_length);
     const f_string_static_t f_status_recurse_not_s = macro_f_string_static_t_initialize(F_status_recurse_not_s, 0, F_status_recurse_not_s_length);
+    const f_string_static_t f_status_regular_s = macro_f_string_static_t_initialize(F_status_regular_s, 0, F_status_regular_s_length);
+    const f_string_static_t f_status_regular_not_s = macro_f_string_static_t_initialize(F_status_regular_not_s, 0, F_status_regular_not_s_length);
     const f_string_static_t f_status_relative_s = macro_f_string_static_t_initialize(F_status_relative_s, 0, F_status_relative_s_length);
     const f_string_static_t f_status_relative_not_s = macro_f_string_static_t_initialize(F_status_relative_not_s, 0, F_status_relative_not_s_length);
     const f_string_static_t f_status_remote_s = macro_f_string_static_t_initialize(F_status_remote_s, 0, F_status_remote_s_length);
@@ -346,6 +356,8 @@ extern "C" {
     const f_string_static_t f_status_time_out_s = macro_f_string_static_t_initialize(F_status_time_out_s, 0, F_status_time_out_s_length);
     const f_string_static_t f_status_too_large_s = macro_f_string_static_t_initialize(F_status_too_large_s, 0, F_status_too_large_s_length);
     const f_string_static_t f_status_too_small_s = macro_f_string_static_t_initialize(F_status_too_small_s, 0, F_status_too_small_s_length);
+    const f_string_static_t f_status_top_s = macro_f_string_static_t_initialize(F_status_top_s, 0, F_status_top_s_length);
+    const f_string_static_t f_status_top_not_s = macro_f_string_static_t_initialize(F_status_top_not_s, 0, F_status_top_not_s_length);
     const f_string_static_t f_status_type_s = macro_f_string_static_t_initialize(F_status_type_s, 0, F_status_type_s_length);
     const f_string_static_t f_status_type_not_s = macro_f_string_static_t_initialize(F_status_type_not_s, 0, F_status_type_not_s_length);
     const f_string_static_t f_status_success_s = macro_f_string_static_t_initialize(F_status_success_s, 0, F_status_success_s_length);
@@ -1108,6 +1120,16 @@ extern "C" {
 
           break;
 
+        case F_bottom:
+          *name = f_status_bottom_s;
+
+          break;
+
+        case F_bottom_not:
+          *name = f_status_bottom_not_s;
+
+          break;
+
         case F_bound:
           *name = f_status_bound_s;
 
@@ -1138,6 +1160,16 @@ extern "C" {
 
           break;
 
+        case F_character:
+          *name = f_status_character_s;
+
+          break;
+
+        case F_character_not:
+          *name = f_status_character_not_s;
+
+          break;
+
         case F_child:
           *name = f_status_child_s;
 
@@ -1488,6 +1520,16 @@ extern "C" {
 
           break;
 
+        case F_fifo:
+          *name = f_status_fifo_s;
+
+          break;
+
+        case F_fifo_not:
+          *name = f_status_fifo_not_s;
+
+          break;
+
         case F_first:
           *name = f_status_first_s;
 
@@ -1733,6 +1775,16 @@ extern "C" {
 
           break;
 
+        case F_middle:
+          *name = f_status_middle_s;
+
+          break;
+
+        case F_middle_not:
+          *name = f_status_middle_not_s;
+
+          break;
+
         case F_minor:
           *name = f_status_minor_s;
 
@@ -2048,6 +2100,16 @@ extern "C" {
 
           break;
 
+        case F_regular:
+          *name = f_status_regular_s;
+
+          break;
+
+        case F_regular_not:
+          *name = f_status_regular_not_s;
+
+          break;
+
         case F_relative:
           *name = f_status_relative_s;
 
@@ -2323,6 +2385,16 @@ extern "C" {
 
           break;
 
+        case F_top:
+          *name = f_status_top_s;
+
+          break;
+
+        case F_top_not:
+          *name = f_status_top_not_s;
+
+          break;
+
         case F_type:
           *name = f_status_type_s;
 
index c703faaa4a112461219fa69a23c6f7df9e390170..683f09c0a243f5e0a1960a6beed1157db0687c0f 100644 (file)
@@ -250,6 +250,8 @@ extern "C" {
     #define F_status_block_not_s         "F_block_not"
     #define F_status_body_s              "F_body"
     #define F_status_body_not_s          "F_body_not"
+    #define F_status_bottom_s            "F_bottom"
+    #define F_status_bottom_not_s        "F_bottom_not"
     #define F_status_bound_s             "F_bound"
     #define F_status_bound_not_s         "F_bound_not"
     #define F_status_break_s             "F_break"
@@ -258,6 +260,8 @@ extern "C" {
     #define F_status_call_not_s          "F_call_not"
     #define F_status_capability_s        "F_capability"
     #define F_status_capability_not_s    "F_capability_not"
+    #define F_status_character_s         "F_character"
+    #define F_status_character_not_s     "F_character_not"
     #define F_status_child_s             "F_child"
     #define F_status_child_not_s         "F_child_not"
     #define F_status_complete_s          "F_complete"
@@ -328,6 +332,8 @@ extern "C" {
     #define F_status_failure_not_s       "F_failure_not"
     #define F_status_family_s            "F_family"
     #define F_status_family_not_s        "F_family_not"
+    #define F_status_fifo_s              "F_fifo"
+    #define F_status_fifo_not_s          "F_fifo_not"
     #define F_status_first_s             "F_first"
     #define F_status_first_not_s         "F_first_not"
     #define F_status_footer_s            "F_footer"
@@ -381,6 +387,8 @@ extern "C" {
     #define F_status_memory_not_s        "F_memory_not"
     #define F_status_message_s           "F_message"
     #define F_status_message_not_s       "F_message_not"
+    #define F_status_middle_s            "F_middle"
+    #define F_status_middle_not_s        "F_middle_not"
     #define F_status_minor_s             "F_minor"
     #define F_status_minor_not_s         "F_minor_not"
     #define F_status_moderate_s          "F_moderate"
@@ -444,6 +452,8 @@ extern "C" {
     #define F_status_recover_not_s       "F_recover_not"
     #define F_status_recurse_s           "F_recurse"
     #define F_status_recurse_not_s       "F_recurse_not"
+    #define F_status_regular_s           "F_regular"
+    #define F_status_regular_not_s       "F_regular_not"
     #define F_status_relative_s          "F_relative"
     #define F_status_relative_not_s      "F_relative_not"
     #define F_status_remote_s            "F_remote"
@@ -499,12 +509,14 @@ extern "C" {
     #define F_status_time_out_s          "F_time_out"
     #define F_status_too_large_s         "F_too_large"
     #define F_status_too_small_s         "F_too_small"
+    #define F_status_top_s               "F_top"
+    #define F_status_top_not_s           "F_top_not"
     #define F_status_type_s              "F_type"
     #define F_status_type_not_s          "F_type_not"
     #define F_status_success_s           "F_success"
     #define F_status_success_not_s       "F_success_not"
-    #define F_status_support_s         "F_support"
-    #define F_status_support_not_s     "F_support_not"
+    #define F_status_support_s           "F_support"
+    #define F_status_support_not_s       "F_support_not"
     #define F_status_user_s              "F_user"
     #define F_status_user_not_s          "F_user_not"
     #define F_status_utf_s               "F_utf"
@@ -550,12 +562,16 @@ extern "C" {
     #define F_status_block_not_s_length         11
     #define F_status_body_s_length              6
     #define F_status_body_not_s_length          10
+    #define F_status_bottom_s_length            8
+    #define F_status_bottom_not_s_length        12
     #define F_status_bound_s_length             7
     #define F_status_bound_not_s_length         11
     #define F_status_call_s_length              6
     #define F_status_call_not_s_length          10
     #define F_status_capability_s_length        12
     #define F_status_capability_not_s_length    16
+    #define F_status_character_s_length         11
+    #define F_status_character_not_s_length     15
     #define F_status_child_s_length             7
     #define F_status_child_not_s_length         11
     #define F_status_complete_s_length          10
@@ -626,6 +642,8 @@ extern "C" {
     #define F_status_failure_not_s_length       13
     #define F_status_family_s_length            8
     #define F_status_family_not_s_length        12
+    #define F_status_fifo_s_length              6
+    #define F_status_fifo_not_s_length          10
     #define F_status_first_s_length             7
     #define F_status_first_not_s_length         11
     #define F_status_footer_s_length            8
@@ -679,6 +697,8 @@ extern "C" {
     #define F_status_memory_not_s_length        12
     #define F_status_message_s_length           9
     #define F_status_message_not_s_length       13
+    #define F_status_middle_s_length            8
+    #define F_status_middle_not_s_length        12
     #define F_status_minor_s_length             7
     #define F_status_minor_not_s_length         11
     #define F_status_moderate_s_length          10
@@ -742,6 +762,8 @@ extern "C" {
     #define F_status_recover_not_s_length       13
     #define F_status_recurse_s_length           9
     #define F_status_recurse_not_s_length       13
+    #define F_status_regular_s_length           9
+    #define F_status_regular_not_s_length       13
     #define F_status_relative_s_length          10
     #define F_status_relative_not_s_length      14
     #define F_status_remote_s_length            8
@@ -801,6 +823,8 @@ extern "C" {
     #define F_status_time_out_s_length          10
     #define F_status_too_large_s_length         11
     #define F_status_too_small_s_length         11
+    #define F_status_top_s_length               5
+    #define F_status_top_not_s_length           9
     #define F_status_type_s_length              6
     #define F_status_type_not_s_length          10
     #define F_status_user_s_length              6
@@ -846,6 +870,8 @@ extern "C" {
     extern const f_string_static_t f_status_block_not_s;
     extern const f_string_static_t f_status_body_s;
     extern const f_string_static_t f_status_body_not_s;
+    extern const f_string_static_t f_status_bottom_s;
+    extern const f_string_static_t f_status_bottom_not_s;
     extern const f_string_static_t f_status_bound_s;
     extern const f_string_static_t f_status_bound_not_s;
     extern const f_string_static_t f_status_break_s;
@@ -854,6 +880,8 @@ extern "C" {
     extern const f_string_static_t f_status_call_not_s;
     extern const f_string_static_t f_status_capability_s;
     extern const f_string_static_t f_status_capability_not_s;
+    extern const f_string_static_t f_status_character_s;
+    extern const f_string_static_t f_status_character_not_s;
     extern const f_string_static_t f_status_child_s;
     extern const f_string_static_t f_status_child_not_s;
     extern const f_string_static_t f_status_complete_s;
@@ -926,6 +954,8 @@ extern "C" {
     extern const f_string_static_t f_status_failure_not_s;
     extern const f_string_static_t f_status_family_s;
     extern const f_string_static_t f_status_family_not_s;
+    extern const f_string_static_t f_status_fifo_s;
+    extern const f_string_static_t f_status_fifo_not_s;
     extern const f_string_static_t f_status_first_s;
     extern const f_string_static_t f_status_first_not_s;
     extern const f_string_static_t f_status_footer_s;
@@ -979,6 +1009,8 @@ extern "C" {
     extern const f_string_static_t f_status_memory_not_s;
     extern const f_string_static_t f_status_message_s;
     extern const f_string_static_t f_status_message_not_s;
+    extern const f_string_static_t f_status_middle_s;
+    extern const f_string_static_t f_status_middle_not_s;
     extern const f_string_static_t f_status_minor_s;
     extern const f_string_static_t f_status_minor_not_s;
     extern const f_string_static_t f_status_moderate_s;
@@ -1042,6 +1074,8 @@ extern "C" {
     extern const f_string_static_t f_status_recover_not_s;
     extern const f_string_static_t f_status_recurse_s;
     extern const f_string_static_t f_status_recurse_not_s;
+    extern const f_string_static_t f_status_regular_s;
+    extern const f_string_static_t f_status_regular_not_s;
     extern const f_string_static_t f_status_relative_s;
     extern const f_string_static_t f_status_relative_not_s;
     extern const f_string_static_t f_status_remote_s;
@@ -1097,6 +1131,8 @@ extern "C" {
     extern const f_string_static_t f_status_time_out_s;
     extern const f_string_static_t f_status_too_large_s;
     extern const f_string_static_t f_status_too_small_s;
+    extern const f_string_static_t f_status_top_s;
+    extern const f_string_static_t f_status_top_not_s;
     extern const f_string_static_t f_status_type_s;
     extern const f_string_static_t f_status_type_not_s;
     extern const f_string_static_t f_status_success_s;
index 743e8973c757bdf7359b945c7a7b0c1e1b6d8453..bc668da4f01a92f74f1d87535fd21437eeba11cd 100644 (file)
@@ -48,7 +48,7 @@ extern "C" {
 #endif // _di_fl_directory_create_
 
 #ifndef _di_fl_directory_copy_
-  void fl_directory_copy(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_t * const recurse) {
+  void fl_directory_copy(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_copy_t * const recurse) {
     #ifndef _di_level_1_parameter_checking_
       if (!recurse) return;
     #endif // _di_level_1_parameter_checking_
@@ -58,7 +58,6 @@ extern "C" {
     recurse->destination = recurse->destination_top;
     recurse->destination_top = &destination;
     recurse->depth = 0;
-    recurse->mode = recurse->mode;
     recurse->state.status = F_none;
     recurse->state.data = (void *) recurse;
 
@@ -86,13 +85,13 @@ extern "C" {
       return;
     }
 
-    if (recurse->flag & f_directory_recurse_flag_top_e) {
-      if (recurse->flag & f_directory_recurse_flag_clone_e) {
+    if (recurse->flag & f_directory_recurse_copy_flag_top_e) {
+      if (recurse->flag & f_directory_recurse_copy_flag_clone_e) {
         struct stat source_stat;
 
         memset(&source_stat, 0, sizeof(struct stat));
 
-        recurse->state.status = f_file_stat(*recurse->source_top, recurse->flag & f_directory_recurse_flag_dereference_e, &source_stat);
+        recurse->state.status = f_file_stat(*recurse->source_top, recurse->flag & f_directory_recurse_copy_flag_dereference_e, &source_stat);
 
         if (F_status_is_error_not(recurse->state.status)) {
           recurse->state.status = f_directory_exists(*recurse->destination_top);
@@ -100,7 +99,7 @@ extern "C" {
 
         if (F_status_is_error_not(recurse->state.status)) {
           if (recurse->state.status == F_true) {
-            if (recurse->flag & f_directory_recurse_flag_exclusive_e) {
+            if (recurse->flag & f_directory_recurse_copy_flag_exclusive_e) {
               recurse->state.status = F_status_set_error(F_directory_found);
             }
             else {
@@ -112,13 +111,13 @@ extern "C" {
           }
         }
 
-        if (F_status_is_error_not(recurse->state.status) && (recurse->flag & (f_directory_recurse_flag_group_e | f_directory_recurse_flag_owner_e))) {
-          recurse->state.status = f_file_role_change(*recurse->destination_top, (recurse->flag & f_directory_recurse_flag_owner_e) ? source_stat.st_uid : -1, (recurse->flag & f_directory_recurse_flag_group_e) ? source_stat.st_gid : -1, recurse->flag & f_directory_recurse_flag_dereference_e);
+        if (F_status_is_error_not(recurse->state.status) && (recurse->flag & (f_directory_recurse_copy_flag_group_e | f_directory_recurse_copy_flag_owner_e))) {
+          recurse->state.status = f_file_role_change(*recurse->destination_top, (recurse->flag & f_directory_recurse_copy_flag_owner_e) ? source_stat.st_uid : -1, (recurse->flag & f_directory_recurse_copy_flag_group_e) ? source_stat.st_gid : -1, recurse->flag & f_directory_recurse_copy_flag_dereference_e);
         }
       }
       else {
         if (recurse->state.status == F_true) {
-          if (recurse->flag & f_directory_recurse_flag_exclusive_e) {
+          if (recurse->flag & f_directory_recurse_copy_flag_exclusive_e) {
             recurse->state.status = F_status_set_error(F_directory_found);
           }
           else {
@@ -195,6 +194,96 @@ extern "C" {
   }
 #endif // _di_fl_directory_copy_
 
+#ifndef _di_fl_directory_do_
+  void fl_directory_do(const f_string_static_t path, f_directory_recurse_do_t * const recurse) {
+    #ifndef _di_level_1_parameter_checking_
+      if (!recurse) return;
+
+      if (!recurse->action) {
+        recurse->state.status = F_status_set_error(F_parameter);
+        return;
+      }
+    #endif // _di_level_1_parameter_checking_
+
+    recurse->path = recurse->path_top;
+    recurse->path_top = &path;
+    recurse->depth = 0;
+    recurse->state.status = F_none;
+    recurse->state.data = (void *) recurse;
+
+    if (!recurse->path_top->used) {
+      recurse->state.status = F_data_not;
+
+      if (recurse->state.handle) {
+        recurse->state.handle(&recurse->state, (void *) recurse);
+      }
+
+      return;
+    }
+
+    recurse->state.status = f_directory_exists(*recurse->path_top);
+
+    if (recurse->state.status == F_false) {
+      recurse->state.status = F_status_set_error(F_directory_not);
+    }
+
+    if (F_status_is_error(recurse->state.status)) {
+      if (recurse->state.handle) {
+        recurse->state.handle(&recurse->state, (void *) recurse);
+      }
+
+      return;
+    }
+
+    if ((recurse->flag & f_directory_recurse_do_flag_top_e) && (recurse->flag & f_directory_recurse_do_flag_first_e)) {
+      recurse->action((void *) recurse, f_directory_recurse_do_flag_top_e | f_directory_recurse_do_flag_first_e);
+    }
+
+    if (F_status_is_error_not(recurse->state.status)) {
+      if (recurse->max_depth) {
+        f_array_length_t i = recurse->path_top->used;
+
+        // Do not allow null termination or trailing path separators in the string's length calculation.
+        for (; i > 0; --i) {
+
+          if (!recurse->path_top->string[i - 1]) continue;
+          if (recurse->path_top->string[i - 1] == f_path_separator_s.string[0]) continue;
+
+          break;
+        } // for
+
+        const f_string_static_t static_path = macro_f_string_static_t_initialize(recurse->path_top->string, recurse->path_top->size, i);
+
+        recurse->path = &static_path;
+        recurse->depth = 1;
+
+        private_fl_directory_do_recurse(recurse);
+
+        recurse->path = recurse->path_top;
+        recurse->depth = 0;
+      }
+      else {
+        recurse->state.status = F_none;
+      }
+    }
+
+    if (F_status_is_error_not(recurse->state.status)) {
+      if ((recurse->flag & f_directory_recurse_do_flag_top_e) && (recurse->flag & f_directory_recurse_do_flag_last_e)) {
+        recurse->action((void *) recurse, f_directory_recurse_do_flag_top_e | f_directory_recurse_do_flag_last_e);
+      }
+    }
+
+    if (F_status_is_error(recurse->state.status)) {
+      if (recurse->state.handle) {
+        recurse->state.handle(&recurse->state, (void *) &recurse);
+      }
+    }
+    else {
+      recurse->state.status = F_none;
+    }
+  }
+#endif // _di_fl_directory_do_
+
 #ifndef _di_fl_directory_list_
   f_status_t fl_directory_list(const f_string_static_t path, int (*filter)(const struct dirent *), int (*sort)(const struct dirent **, const struct dirent **), const bool dereference, f_directory_listing_t * const listing) {
     #ifndef _di_level_1_parameter_checking_
index 6d79772b415601a2ee7edf621a8476c2cb99abe9..117d0f8f1e0f4f275bbdfcc13bc95535d26b5e88 100644 (file)
@@ -94,16 +94,16 @@ extern "C" {
  * The source and destination must be NULL terminated.
  *
  * Symbolic links are by default not followed, they are copied as the symbolic link itself.
- * Set the f_directory_recurse_flag_dereference_e to follow the symbolic links rather than copying the link itself.
+ * Set the f_directory_recurse_copy_flag_dereference_e to follow the symbolic links rather than copying the link itself.
  *
  * This does not copy unknown file types.
  *
- * If recurse.flag has f_directory_recurse_flag_top_e set, then this operates on the top directory otherwise only the content within the directory is operated on.
+ * If recurse.flag has f_directory_recurse_copy_flag_top_e set, then this operates on the top directory otherwise only the content within the directory is operated on.
  *
- * If recurse.flag has f_directory_recurse_flag_clone_e set, then this operates a clone operation rather than a copy operation.
+ * If recurse.flag has f_directory_recurse_copy_flag_clone_e set, then this operates a clone operation rather than a copy operation.
  *
- * When using f_directory_recurse_flag_clone_e, the recurse.mode is not used.
- * When not using f_directory_recurse_flag_clone_e, the recurse.mode is used and should be set accordingly.
+ * When using f_directory_recurse_copy_flag_clone_e, the recurse.mode is not used.
+ * When not using f_directory_recurse_copy_flag_clone_e, the recurse.mode is used and should be set accordingly.
  * To not used recurse.mode, set the point to NULL.
  *
  * The recurse.state.handle() callback is used for processing and reporting errors.
@@ -150,10 +150,49 @@ extern "C" {
  * @see f_file_stat()
  */
 #ifndef _di_fl_directory_copy_
-  extern void fl_directory_copy(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_t * const recurse);
+  extern void fl_directory_copy(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_copy_t * const recurse);
 #endif // _di_fl_directory_copy_
 
 /**
+ * Perform a recursive action on some directory.
+ *
+ * This is intended to be used as an alternative to functions like fl_directory_list(), giving more control over the recursion process.
+ *
+ * @param path
+ *   The directory file path.
+ *   Must be NULL terminated.
+ * @param recurse
+ *   The directory recurse data.
+ *   This must not be NULL.
+ *
+ *   This alters recurse.state.status:
+ *     F_none on success.
+ *     F_data_not if source.used or destination.used is 0.
+ *
+ *     F_directory_not (with error bit) if the source directory does not exist.
+ *     F_failure (with error bit) for any other failure, failures might be populated with individual status codes.
+ *
+ *     Errors (with error bit) from: f_directory_create().
+ *     Errors (with error bit) from: f_directory_exists().
+ *     Errors (with error bit) from: f_string_dynamic_resize().
+ *     Errors (with error bit) from: f_string_dynamics_resize().
+ *     Errors (with error bit) from: f_file_mode_set().
+ *     Errors (with error bit) from: f_file_role_change().
+ *     Errors (with error bit) from: f_file_stat().
+ *
+ * @see f_directory_create()
+ * @see f_directory_exists()
+ * @see f_string_dynamic_resize()
+ * @see f_string_dynamics_resize()
+ * @see f_file_mode_set()
+ * @see f_file_role_change()
+ * @see f_file_stat()
+ */
+#ifndef _di_fl_directory_do_
+  extern void fl_directory_do(const f_string_static_t path, f_directory_recurse_do_t * const recurse);
+#endif // _di_fl_directory_do_
+
+/**
  * For some given path, print the names of each file and/or directory inside the directory, stored as a directory listing.
  *
  * Allows specifying a custom filter and custom sort.
index bc9220e9a15b2e9ce5dc652ee624a7de55e84b19..ebd5225d0bab51b42c84701277eebecc6f4e783e 100644 (file)
@@ -6,7 +6,7 @@ extern "C" {
 #endif
 
 #if !defined(_di_fl_directory_copy_)
-  void private_fl_directory_copy_recurse(f_directory_recurse_t * const recurse) {
+  void private_fl_directory_copy_recurse(f_directory_recurse_copy_t * const recurse) {
 
     f_string_dynamics_t directories_original = f_string_dynamics_t_initialize;
 
@@ -28,7 +28,7 @@ extern "C" {
     recurse->listing.socket.used = 0;
     recurse->listing.unknown.used = 0;
 
-    recurse->state.status = private_fl_directory_list(*recurse->source, 0, 0, recurse->flag & f_directory_recurse_flag_dereference_e, &recurse->listing);
+    recurse->state.status = private_fl_directory_list(*recurse->source, 0, 0, recurse->flag & f_directory_recurse_copy_flag_dereference_e, &recurse->listing);
 
     if (F_status_is_error(recurse->state.status)) {
 
@@ -60,6 +60,12 @@ extern "C" {
       for (uint8_t i = 0; i < 7; ++i) {
 
         for (j = 0; F_status_is_fine(recurse->state.status) && j < list[i]->used; ++j) {
+
+          if (recurse->state.interrupt) {
+            recurse->state.interrupt((void *) &recurse->state, (void *) recurse);
+            if (F_status_set_fine(recurse->state.status) == F_interrupt) break;
+          }
+
           private_fl_directory_copy_recurse_file(list[i]->array[j], recurse);
         } // for
 
@@ -127,19 +133,19 @@ extern "C" {
           break;
         }
 
-        if (recurse->flag & f_directory_recurse_flag_clone_e) {
+        if (recurse->flag & f_directory_recurse_copy_flag_clone_e) {
           struct stat source_stat;
 
           memset(&source_stat, 0, sizeof(struct stat));
 
-          recurse->state.status = f_file_stat(source_sub, recurse->flag & f_directory_recurse_flag_dereference_e, &source_stat);
+          recurse->state.status = f_file_stat(source_sub, recurse->flag & f_directory_recurse_copy_flag_dereference_e, &source_stat);
           if (F_status_is_error(recurse->state.status)) break;
 
           recurse->state.status = f_directory_exists(destination_sub);
           if (F_status_is_error(recurse->state.status)) break;
 
           if (recurse->state.status == F_true) {
-            if (recurse->flag & f_directory_recurse_flag_exclusive_e) {
+            if (recurse->flag & f_directory_recurse_copy_flag_exclusive_e) {
               recurse->state.status = F_status_set_error(F_directory_found);
 
               break;
@@ -153,14 +159,14 @@ extern "C" {
             if (F_status_is_error(recurse->state.status)) break;
           }
 
-          if (recurse->flag & (f_directory_recurse_flag_group_e | f_directory_recurse_flag_owner_e)) {
-            recurse->state.status = f_file_role_change(destination_sub, (recurse->flag & f_directory_recurse_flag_owner_e) ? source_stat.st_uid : -1, (recurse->flag & f_directory_recurse_flag_group_e) ? source_stat.st_gid : -1, recurse->flag & f_directory_recurse_flag_dereference_e);
+          if (recurse->flag & (f_directory_recurse_copy_flag_group_e | f_directory_recurse_copy_flag_owner_e)) {
+            recurse->state.status = f_file_role_change(destination_sub, (recurse->flag & f_directory_recurse_copy_flag_owner_e) ? source_stat.st_uid : -1, (recurse->flag & f_directory_recurse_copy_flag_group_e) ? source_stat.st_gid : -1, recurse->flag & f_directory_recurse_copy_flag_dereference_e);
             if (F_status_is_error(recurse->state.status)) break;
           }
         }
         else {
           if (recurse->state.status == F_true) {
-            if (recurse->flag & f_directory_recurse_flag_exclusive_e) {
+            if (recurse->flag & f_directory_recurse_copy_flag_exclusive_e) {
               recurse->state.status = F_status_set_error(F_directory_found);
 
               break;
@@ -197,7 +203,7 @@ extern "C" {
           }
 
           // Errors in the recursed function are handled outside the recursed function here.
-          if (F_status_is_error(recurse->state.status)) {
+          else if (F_status_is_error(recurse->state.status)) {
             if (recurse->state.handle) {
               recurse->state.handle(&recurse->state, (void *) &recurse);
             }
@@ -227,7 +233,7 @@ extern "C" {
 #endif // !defined(_di_fl_directory_copy_)
 
 #if !defined(_di_fl_directory_copy_)
-  void private_fl_directory_copy_recurse_file(const f_string_static_t file, f_directory_recurse_t * const recurse) {
+  void private_fl_directory_copy_recurse_file(const f_string_static_t file, f_directory_recurse_copy_t * const recurse) {
 
     f_string_static_t path_source = f_string_static_t_initialize;
     f_string_static_t path_destination = f_string_static_t_initialize;
@@ -252,21 +258,21 @@ extern "C" {
     path_destination_string[recurse->destination->used + file.used + 1] = 0;
 
     f_status_t status = F_none;
-    int flag = (recurse->flag & f_directory_recurse_flag_dereference_e) ? 0 : f_file_stat_flag_reference_e;
+    int flag = (recurse->flag & f_directory_recurse_copy_flag_dereference_e) ? 0 : f_file_stat_flag_reference_e;
 
-    if (recurse->flag & f_directory_recurse_flag_exclusive_e) {
+    if (recurse->flag & f_directory_recurse_copy_flag_exclusive_e) {
       flag |= f_file_stat_flag_exclusive_e;
     }
 
-    if (recurse->flag & f_directory_recurse_flag_group_e) {
+    if (recurse->flag & f_directory_recurse_copy_flag_group_e) {
       flag |= f_file_stat_flag_group_e;
     }
 
-    if (recurse->flag & f_directory_recurse_flag_owner_e) {
+    if (recurse->flag & f_directory_recurse_copy_flag_owner_e) {
       flag |= f_file_stat_flag_owner_e;
     }
 
-    if (recurse->flag & f_directory_recurse_flag_clone_e) {
+    if (recurse->flag & f_directory_recurse_copy_flag_clone_e) {
       recurse->state.status = f_file_clone(path_source, path_destination, recurse->size_block, flag);
     }
     else {
@@ -293,7 +299,198 @@ extern "C" {
   }
 #endif // !defined(_di_fl_directory_copy_)
 
-#if !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_list_)
+#if !defined(_di_fl_directory_do_)
+  void private_fl_directory_do_recurse(f_directory_recurse_do_t * const recurse) {
+
+    f_string_dynamics_t directories_original = f_string_dynamics_t_initialize;
+
+    directories_original.array = recurse->listing.directory.array;
+    directories_original.used = recurse->listing.directory.used;
+    directories_original.size = recurse->listing.directory.size;
+
+    recurse->listing.directory.array = 0;
+    recurse->listing.directory.used = 0;
+    recurse->listing.directory.size = 0;
+
+    // Use a clean set for each recursion.
+    recurse->listing.block.used = 0;
+    recurse->listing.character.used = 0;
+    recurse->listing.directory.used = 0;
+    recurse->listing.regular.used = 0;
+    recurse->listing.link.used = 0;
+    recurse->listing.fifo.used = 0;
+    recurse->listing.socket.used = 0;
+    recurse->listing.unknown.used = 0;
+
+    recurse->state.status = private_fl_directory_list(*recurse->path, 0, 0, recurse->flag & f_directory_recurse_do_flag_dereference_e, &recurse->listing);
+
+    if (F_status_is_error(recurse->state.status)) {
+
+      // Only the directory is to be freed because all others are preserved between recursions.
+      f_string_dynamics_resize(0, &recurse->listing.directory);
+
+      recurse->listing.directory.array = directories_original.array;
+      recurse->listing.directory.used = directories_original.used;
+      recurse->listing.directory.size = directories_original.size;
+
+      return;
+    }
+
+    recurse->state.status = F_none;
+
+    {
+      f_string_dynamics_t * const list[] = {
+        &recurse->listing.block,
+        &recurse->listing.character,
+        &recurse->listing.regular,
+        &recurse->listing.link,
+        &recurse->listing.fifo,
+        &recurse->listing.socket,
+        &recurse->listing.unknown,
+      };
+
+      const uint16_t flags[] = {
+        f_directory_recurse_do_flag_block_e,
+        f_directory_recurse_do_flag_character_e,
+        f_directory_recurse_do_flag_regular_e,
+        f_directory_recurse_do_flag_link_e,
+        f_directory_recurse_do_flag_fifo_e,
+        f_directory_recurse_do_flag_socket_e,
+        f_directory_recurse_do_flag_unknown_e,
+      };
+
+      //
+
+      f_array_length_t j = 0;
+
+      for (uint8_t i = 0; i < 7; ++i) {
+
+        for (j = 0; j < list[i]->used; ++j) {
+
+          if (recurse->state.interrupt) {
+            recurse->state.interrupt((void *) &recurse->state, (void *) recurse);
+            if (F_status_set_fine(recurse->state.status) == F_interrupt) break;
+          }
+
+          recurse->state.status = F_none;
+
+          recurse->action((void *) recurse, flags[i]);
+          if (F_status_is_error(recurse->state.status)) break;
+          if (recurse->state.status == F_break) break;
+          if (recurse->state.status == F_done) break;
+        } // for
+
+        if (F_status_is_error(recurse->state.status)) break;
+        if (recurse->state.status == F_done) break;
+
+        list[i]->used = 0;
+
+        // Use an upper limit when retaining memory between recursion calls.
+        if (list[i]->size > F_directory_max_list_d) {
+          recurse->state.status = f_string_dynamics_resize(F_directory_max_list_d, list[i]);
+          if (F_status_is_error(recurse->state.status)) break;
+        }
+
+        for (j = 0; j < list[i]->used; ++j) {
+
+          list[i]->array[j].used = 0;
+
+          if (list[i]->array[j].size > F_directory_max_string_d) {
+            recurse->state.status = f_string_dynamic_resize(F_directory_max_string_d, &list[i]->array[j]);
+            if (F_status_is_error(recurse->state.status)) break;
+          }
+        } // for
+      } // for
+    }
+
+    if (recurse->state.status != F_done && F_status_is_error_not(recurse->state.status)) {
+      for (f_array_length_t i = 0; i < recurse->listing.directory.used; ++i) {
+
+        if (recurse->state.interrupt) {
+          recurse->state.interrupt((void *) &recurse->state, (void *) recurse);
+          if (F_status_set_fine(recurse->state.status) == F_interrupt) break;
+        }
+
+        f_string_static_t path_sub = f_string_static_t_initialize;
+
+        path_sub.used = recurse->path->used + recurse->listing.directory.array[i].used + 1;
+        path_sub.size = path_sub.used;
+
+        f_char_t path_full_sub[path_sub.used + 1];
+
+        memcpy(path_full_sub, recurse->path->string, sizeof(f_char_t) * recurse->path->used);
+        memcpy(path_full_sub + recurse->path->used + 1, recurse->listing.directory.array[i].string, sizeof(f_char_t) * recurse->listing.directory.array[i].used);
+
+        path_full_sub[recurse->path->used] = f_path_separator_s.string[0];
+        path_full_sub[path_sub.used] = 0;
+
+        path_sub.string = path_full_sub;
+
+        recurse->state.status = f_directory_exists(path_sub);
+        if (F_status_is_error(recurse->state.status)) break;
+
+        if (recurse->state.status == F_false) {
+          recurse->state.status = F_status_set_error(F_directory);
+
+          break;
+        }
+
+        if (recurse->flag & f_directory_recurse_do_flag_first_e) {
+          recurse->action((void *) recurse, f_directory_recurse_do_flag_first_e);
+        }
+
+        if (recurse->depth < recurse->max_depth) {
+          recurse->path = (f_string_static_t * const) & path_sub;
+
+          ++recurse->depth;
+
+          private_fl_directory_do_recurse(recurse);
+
+          // Data must be restored after recursion.
+          recurse->path = (f_string_static_t * const) & path_sub;
+
+          // Success inside the recursed function is handled inside the recursed function, so handle at the current depth.
+          if (recurse->state.status == F_none) {
+            --recurse->depth;
+          }
+
+          // Errors in the recursed function are handled outside the recursed function here.
+          else if (F_status_is_error(recurse->state.status)) {
+            if (recurse->state.handle) {
+              recurse->state.handle(&recurse->state, (void *) &recurse);
+            }
+
+            recurse->state.status = F_failure;
+          }
+
+          // Error is now handled or is done, so update the depth and exit.
+          if (recurse->state.status == F_done || recurse->state.status == F_failure) {
+            --recurse->depth;
+
+            break;
+          }
+        }
+
+        recurse->state.status = F_none;
+
+        if (recurse->flag & f_directory_recurse_do_flag_last_e) {
+          recurse->action((void *) recurse, f_directory_recurse_do_flag_last_e);
+        }
+
+        recurse->state.status = F_none;
+      } // for
+    }
+
+    // Only the directory is to be freed because all others are preserved between recursions.
+    f_string_dynamics_resize(0, &recurse->listing.directory);
+
+    recurse->listing.directory.array = directories_original.array;
+    recurse->listing.directory.used = directories_original.used;
+    recurse->listing.directory.size = directories_original.size;
+  }
+#endif // !defined(_di_fl_directory_do_)
+
+#if !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_do_) || !defined(_di_fl_directory_list_)
   f_status_t private_fl_directory_list(const f_string_static_t path, int (*filter)(const struct dirent *), int (*sort)(const struct dirent **, const struct dirent **), const bool dereference, f_directory_listing_t * const listing) {
 
     struct dirent **entity = 0;
@@ -413,7 +610,7 @@ extern "C" {
 
     return F_none;
   }
-#endif // !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_list_)
+#endif // !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_do_) || !defined(_di_fl_directory_list_)
 
 #if !defined(_di_fl_directory_path_push_) || !defined(_di_fl_directory_path_push_dynamic_)
   f_status_t private_fl_directory_path_push(const f_string_static_t source, f_string_dynamic_t * const destination) {
index 1e26ec4cc6b6ab09cf3deec5119273735aadb4f1..facc94510f9caedd96ddae18c6f157c24c306fba 100644 (file)
@@ -19,16 +19,8 @@ extern "C" {
  *
  * Intended to be shared to each of the different implementation variations.
  *
- * @param source
- *   The source file path.
- *   Must be NULL terminated.
- * @param destination
- *   The destination file path.
- *   Must be NULL terminated.
  * @param recurse
  *   The directory recurse data.
- * @param depth
- *   The current depth.
  *
  * @return
  *   F_none on success.
@@ -38,7 +30,7 @@ extern "C" {
  * @see fl_directory_copy()
  */
 #if !defined(_di_fl_directory_copy_)
-  extern void private_fl_directory_copy_recurse(f_directory_recurse_t * const recurse) F_attribute_visibility_internal_d;
+  extern void private_fl_directory_copy_recurse(f_directory_recurse_copy_t * const recurse) F_attribute_visibility_internal_d;
 #endif // !defined(_di_fl_directory_copy_)
 
 /**
@@ -47,16 +39,7 @@ extern "C" {
  * Will only copy a single file and record any detected errors.
  *
  * @param file
- *   The name of the file within source to copy into destination.
- *   Must be NULL terminated.
- * @param source
- *   The source file path.
- *   Must be NULL terminated.
- * @param destination
- *   The destination file path.
- *   Must be NULL terminated.
- * @param mode
- *   The mode for each file type.
+ *   The name of the current file.
  * @param recurse
  *   The directory recurse data.
  *
@@ -69,10 +52,29 @@ extern "C" {
  * @see fl_directory_copy()
  */
 #if !defined(_di_fl_directory_copy_)
-  extern void private_fl_directory_copy_recurse_file(const f_string_static_t file, f_directory_recurse_t * const recurse) F_attribute_visibility_internal_d;
+  extern void private_fl_directory_copy_recurse_file(const f_string_static_t file, f_directory_recurse_copy_t * const recurse) F_attribute_visibility_internal_d;
 #endif // !defined(_di_fl_directory_copy_)
 
 /**
+ * Private implementation of fl_directory_do().
+ *
+ * Intended to be shared to each of the different implementation variations.
+ *
+ * @param recurse
+ *   The directory recurse data.
+ *
+ * @return
+ *   F_none on success.
+ *
+ *   F_failure (with error bit) for any other failure, failures might be populated with individual status codes.
+ *
+ * @see fl_directory_do()
+ */
+#if !defined(_di_fl_directory_do_)
+  extern void private_fl_directory_do_recurse(f_directory_recurse_do_t * const recurse) F_attribute_visibility_internal_d;
+#endif // !defined(_di_fl_directory_do_)
+
+/**
  * A special function intended to be used directly by fl_directory_list().
  *
  * @param path
@@ -112,11 +114,12 @@ extern "C" {
  * @see f_string_dynamics_increase_by()
  *
  * @see fl_directory_copy()
+ * @see fl_directory_do()
  * @see fl_directory_list()
  */
-#if !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_list_)
+#if !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_do_) || !defined(_di_fl_directory_list_)
   extern f_status_t private_fl_directory_list(const f_string_static_t path, int (*filter)(const struct dirent *), int (*sort)(const struct dirent **, const struct dirent **), const bool dereference, f_directory_listing_t * const listing) F_attribute_visibility_internal_d;
-#endif // !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_list_)
+#endif // !defined(_di_fl_directory_copy_) || !defined(_di_fl_directory_do_) || !defined(_di_fl_directory_list_)
 
 /**
  * Private implementation of fl_directory_path_push().
index aa8c189f035c773a244ae087abc6c13bf32c41db..c3300618526445be6b27a29ed56e91b9a0538538 100644 (file)
@@ -15,7 +15,7 @@ extern "C" {
 #endif // _di_fll_file_mode_set_all_
 
 #ifndef _di_fll_file_move_
-  void fll_file_move(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_t * const recurse) {
+  void fll_file_move(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_copy_t * const recurse) {
     #ifndef _di_level_2_parameter_checking_
       if (!recurse) return;
     #endif // _di_level_2_parameter_checking_
@@ -47,7 +47,7 @@ extern "C" {
     if (recurse->state.status == F_true) {
       const uint8_t flag_original = recurse->flag;
 
-      recurse->flag = f_directory_recurse_flag_clone_e;
+      recurse->flag = f_directory_recurse_copy_flag_clone_e;
 
       fl_directory_copy(source, destination, recurse);
 
index ea66076be5625c1b4c3f6d9e3cc970b056ee3fe5..67e834cc5756ee4032b0d388c45b4cd83b5ee61e 100644 (file)
@@ -127,7 +127,7 @@ extern "C" {
  * @see fl_directory_copy()
  */
 #ifndef _di_fll_file_move_
-  extern void fll_file_move(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_t * const recurse);
+  extern void fll_file_move(const f_string_static_t source, const f_string_static_t destination, f_directory_recurse_copy_t * const recurse);
 #endif // _di_fll_file_move_
 
 /**
index eebc492db8f72eb2544745846e29a2a84b722e8a..efb3c73002afa596d263840c412e59b2c3e4eb20 100644 (file)
@@ -60,6 +60,9 @@ extern "C" {
  * The umask() has design flaws as per specification that requires the umask be changed to read the value!
  * As a work-around, a umask variable is provided here so that umask() only ever need be called once.
  *
+ * The macro macro_fll_program_console_parameter_standard_initialize provides the standard program parameters to include when initializing the parameters variable.
+ * The last comma is not provided, the caller should add the comma to macro_fll_program_console_parameter_standard_initialize as necessary.
+ *
  * parameters:  The state of pre-defined parameters passed to the program.
  * environment: Environment variables passed to the program.
  *
@@ -138,6 +141,21 @@ extern "C" {
     debug, \
     context, \
   }
+
+  #define macro_fll_program_console_parameter_standard_initialize \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
+    macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e)
 #endif // _di_fll_program_data_t_
 
 /**
index d496036fe2c6d3d3fc7dc85f318aaa816e4aee5f..29c64158bec64df1b5a121cc06115e1b224ae878 100644 (file)
@@ -540,6 +540,18 @@ extern "C" {
         return F_none;
       }
 
+      if (fl_string_dynamic_compare(name, f_status_bottom_s) == F_equal_to) {
+        *code = F_bottom;
+
+        return F_none;
+      }
+
+      if (fl_string_dynamic_compare(name, f_status_bottom_not_s) == F_equal_to) {
+        *code = F_bottom_not;
+
+        return F_none;
+      }
+
       if (fl_string_dynamic_compare(name, f_status_bound_s) == F_equal_to) {
         *code = F_bound;
 
@@ -594,6 +606,18 @@ extern "C" {
         return F_none;
       }
 
+      if (fl_string_dynamic_compare(name, f_status_character_s) == F_equal_to) {
+        *code = F_character;
+
+        return F_none;
+      }
+
+      if (fl_string_dynamic_compare(name, f_status_character_not_s) == F_equal_to) {
+        *code = F_character_not;
+
+        return F_none;
+      }
+
       if (fl_string_dynamic_compare(name, f_status_child_not_s) == F_equal_to) {
         *code = F_child_not;
 
@@ -1008,6 +1032,18 @@ extern "C" {
         return F_none;
       }
 
+      if (fl_string_dynamic_compare(name, f_status_fifo_s) == F_equal_to) {
+        *code = F_fifo;
+
+        return F_none;
+      }
+
+      if (fl_string_dynamic_compare(name, f_status_fifo_not_s) == F_equal_to) {
+        *code = F_fifo_not;
+
+        return F_none;
+      }
+
       if (fl_string_dynamic_compare(name, f_status_first_s) == F_equal_to) {
         *code = F_first;
 
@@ -1326,6 +1362,18 @@ extern "C" {
         return F_none;
       }
 
+      if (fl_string_dynamic_compare(name, f_status_middle_s) == F_equal_to) {
+        *code = F_middle;
+
+        return F_none;
+      }
+
+      if (fl_string_dynamic_compare(name, f_status_middle_not_s) == F_equal_to) {
+        *code = F_middle_not;
+
+        return F_none;
+      }
+
       if (fl_string_dynamic_compare(name, f_status_minor_s) == F_equal_to) {
         *code = F_minor;
 
@@ -1692,6 +1740,18 @@ extern "C" {
         return F_none;
       }
 
+      if (fl_string_dynamic_compare(name, f_status_regular_s) == F_equal_to) {
+        *code = F_regular;
+
+        return F_none;
+      }
+
+      if (fl_string_dynamic_compare(name, f_status_regular_not_s) == F_equal_to) {
+        *code = F_regular_not;
+
+        return F_none;
+      }
+
       if (fl_string_dynamic_compare(name, f_status_relative_s) == F_equal_to) {
         *code = F_relative;
 
@@ -2046,6 +2106,18 @@ extern "C" {
         return F_none;
       }
 
+      if (fl_string_dynamic_compare(name, f_status_top_s) == F_equal_to) {
+        *code = F_top;
+
+        return F_none;
+      }
+
+      if (fl_string_dynamic_compare(name, f_status_top_not_s) == F_equal_to) {
+        *code = F_top_not;
+
+        return F_none;
+      }
+
       if (fl_string_dynamic_compare(name, f_status_type_s) == F_equal_to) {
         *code = F_type;
 
index 76d26301f5b1b9cd63e9b8b4d6109e982b0448ae..b5898fa93945e9faedddc0b836539f64401effce 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * byte_dump_*:
+ * byte_dump_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -336,19 +336,7 @@ extern "C" {
 
   #define byte_dump_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(byte_dump_short_binary_s,      byte_dump_long_binary_s,      0, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(byte_dump_short_decimal_s,     byte_dump_long_decimal_s,     0, f_console_flag_normal_e), \
index be9c1d85364cd2bd0091fdd5fa2f3dbfce925803..a064288b4a4da03a48a64143ce5cbdf10eabc6e2 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   byte_dump_main_t data = byte_dump_main_t_initialize;
 
-  data.program.debug.flag |= byte_dump_print_flag_debug_e;
-  data.program.error.flag |= byte_dump_print_flag_error_e;
-  data.program.message.flag |= byte_dump_print_flag_message_e;
-  data.program.warning.flag |= byte_dump_print_flag_warning_e;
+  data.program.debug.flag |= byte_dump_print_flag_debug_e | byte_dump_print_flag_out_e;
+  data.program.error.flag |= byte_dump_print_flag_error_e | byte_dump_print_flag_out_e;
+  data.program.output.flag |= byte_dump_print_flag_out_e;
+  data.program.message.flag |= byte_dump_print_flag_message_e | byte_dump_print_flag_out_e;
+  data.program.warning.flag |= byte_dump_print_flag_warning_e | byte_dump_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = byte_dump_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index efecc3d7a74ac80e3ec7d7cecfbc0605abc22817..de67e8ae5f1b4f624baf0f872a30d44c6dfef856 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 8833cbc0a0e90bb282a09ed36a5bc2d61cedd8e6..2096cbb8967784f44addc0e35c09c30f088713b5 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * control_*:
+ * control_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -132,19 +132,7 @@ extern "C" {
 
   #define control_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(control_short_name_s,     control_long_name_s,     1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(control_short_return_s,   control_long_return_s,   1, f_console_flag_normal_e), \
index c2c0e3deb56fd2d61ba67a498f118502f865d698..ae61a63acabd6238ae6c65d41633b3e393b41b22 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   control_main_t data = control_main_t_initialize;
 
-  data.program.debug.flag |= control_print_flag_debug_e;
-  data.program.error.flag |= control_print_flag_error_e;
-  data.program.message.flag |= control_print_flag_message_e;
-  data.program.warning.flag |= control_print_flag_warning_e;
+  data.program.debug.flag |= control_print_flag_debug_e | control_print_flag_out_e;
+  data.program.error.flag |= control_print_flag_error_e | control_print_flag_out_e;
+  data.program.output.flag |= control_print_flag_out_e;
+  data.program.message.flag |= control_print_flag_message_e | control_print_flag_out_e;
+  data.program.warning.flag |= control_print_flag_warning_e | control_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = control_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index 16ce80cba076b42a5f6e91bf5660405ed6380085..4d6d757096e85efcf91d2a7d1abafaabb942035c 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index db9c43aa69e6f534acc628d8ba0ddd22640eb7a1..77cfa569e873cd4ef5f03c51009de6d04138cb6c 100644 (file)
@@ -48,7 +48,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * controller_*:
+ * controller_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -160,19 +160,7 @@ extern "C" {
 
   #define controller_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(controller_short_cgroup_s,          controller_long_cgroup_s,          1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(controller_short_daemon_s,          controller_long_daemon_s,          0, f_console_flag_normal_e), \
index 06dcbaaa0647a62c61ef96f0393555ed4c04d134..981be25c2eda554a87c526deb6f01226a3a3622e 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   controller_main_t data = controller_main_t_initialize;
 
-  data.program.debug.flag |= controller_print_flag_debug_e;
-  data.program.error.flag |= controller_print_flag_error_e;
-  data.program.message.flag |= controller_print_flag_message_e;
-  data.program.warning.flag |= controller_print_flag_warning_e;
+  data.program.debug.flag |= controller_print_flag_debug_e | controller_print_flag_out_e;
+  data.program.error.flag |= controller_print_flag_error_e | controller_print_flag_out_e;
+  data.program.output.flag |= controller_print_flag_out_e;
+  data.program.message.flag |= controller_print_flag_message_e | controller_print_flag_out_e;
+  data.program.warning.flag |= controller_print_flag_warning_e | controller_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = controller_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index f3ea0388c0654bddf097838231181881e0c742ff..c410e17cb43609b522552aed5c467608194351e1 100644 (file)
@@ -65,6 +65,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 3a912e8c33226341705d51c7708d2425de6befd5..86a12d093f7c9e6422dd4b867f40feece98cc357 100644 (file)
@@ -194,9 +194,9 @@ extern "C" {
 
     memcpy(path_source.string, source.string, sizeof(f_char_t) * source.used);
 
-    f_directory_recurse_t recurse = f_directory_recurse_t_initialize;
+    f_directory_recurse_copy_t recurse = f_directory_recurse_copy_t_initialize;
     recurse.verbose = &fake_print_verbose_recursive_copy;
-    //recurse.failures = &failures; // @fixme this now needs to be handled by a callback in recurse (recurse.state.handle)., maybe make this a callback on f_directory_recurse_t?
+    //recurse.failures = &failures; // @fixme this now needs to be handled by a callback in recurse (recurse.state.handle)., maybe make this a callback on f_directory_recurse_copy_t?
     recurse.mode = mode;
 
     for (f_array_length_t i = 0; i < files.used; ++i) {
@@ -345,7 +345,7 @@ extern "C" {
       data->main->setting.state.status = F_none;
     } // for
 
-    f_directory_recurse_delete(&recurse);
+    f_directory_recurse_copy_delete(&recurse);
 
     f_string_dynamic_resize(0, &path_source);
     f_string_dynamic_resize(0, &destination_file);
index a4e690fc9f6d8e9d9cf07ec6aec6c251cbe0b3d8..e59794a78b1575b5a31abe724067f3e2e0cd4ec4 100644 (file)
@@ -62,19 +62,7 @@ extern "C" {
 
   #define fake_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fake_short_build_s,     fake_long_build_s,     1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fake_short_data_s,      fake_long_data_s,      1, f_console_flag_normal_e), \
@@ -372,23 +360,24 @@ extern "C" {
  * Flags for fine-tuned print control.
  *
  * fake_print_flag_*_e:
- *   - none:      No flags set.
- *   - debug:     Stream is for debug printing.
- *   - error:     Stream is for error printing.
- *   - message:   Stream is for message printing.
- *   - warning:   Stream is for warning printing.
- *   - file_to:   Stream is a destination file.
- *   - file_from: Stream is a source file.
+ *   - none:    No flags set.
+ *   - debug:   Stream is for debug printing.
+ *   - error:   Stream is for error printing.
+ *   - in:      Stream is a source file.
+ *   - message: Stream is for message printing.
+ *   - out:     Stream is a destination file.
+ *   - warning: Stream is for warning printing.
  */
 #ifndef _di_fake_print_flag_e_
   enum {
-    fake_print_flag_none_e      = 0x0,
-    fake_print_flag_debug_e     = 0x1,
-    fake_print_flag_error_e     = 0x2,
-    fake_print_flag_message_e   = 0x4,
-    fake_print_flag_warning_e   = 0x8,
-    fake_print_flag_file_to_e   = 0x10,
-    fake_print_flag_file_from_e = 0x20,
+    fake_print_flag_none_e    = 0x0,
+    fake_print_flag_debug_e   = 0x1,
+    fake_print_flag_error_e   = 0x2,
+    fake_print_flag_file_e    = 0x4,
+    fake_print_flag_in_e      = 0x8,
+    fake_print_flag_out_e     = 0x10,
+    fake_print_flag_message_e = 0x20,
+    fake_print_flag_warning_e = 0x40,
   }; // enum
 #endif // _di_fake_print_flag_e_
 
index cb31e54e014f86e1c54e62675b0043664e33cec0..48e3669f5050c3fec44d06351e61d1a6c6a130e5 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fake_main_t data = fake_main_t_initialize;
 
-  data.program.debug.flag |= fake_print_flag_debug_e;
-  data.program.error.flag |= fake_print_flag_error_e;
-  data.program.message.flag |= fake_print_flag_message_e;
-  data.program.warning.flag |= fake_print_flag_warning_e;
+  data.program.debug.flag |= fake_print_flag_debug_e | fake_print_flag_out_e;
+  data.program.error.flag |= fake_print_flag_error_e | fake_print_flag_out_e;
+  data.program.output.flag |= fake_print_flag_out_e;
+  data.program.message.flag |= fake_print_flag_message_e | fake_print_flag_out_e;
+  data.program.warning.flag |= fake_print_flag_warning_e | fake_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.flag |= fake_main_flag_enable_documents_e;
   data.setting.flag |= fake_main_flag_enable_shared_e;
index dbc746cfbd27a2b56587db4b9fd023804be9838b..b29071826f6d2034d1f4a0df38a72a8e3e604822 100644 (file)
@@ -199,7 +199,7 @@ extern "C" {
 
     const f_array_length_t total = data_make->cache_arguments.used - 1;
     f_string_static_t destination = f_string_static_t_initialize;
-    f_directory_recurse_t recurse = f_directory_recurse_t_initialize;
+    f_directory_recurse_copy_t recurse = f_directory_recurse_copy_t_initialize;
 
     if (data_make->main->program.error.verbosity > f_console_verbosity_normal_e) {
       recurse.state.custom = data_make->main;
@@ -230,7 +230,7 @@ extern "C" {
 
         data_make->main->setting.state.status = F_status_set_error(F_failure);
 
-        f_directory_recurse_delete(&recurse);
+        f_directory_recurse_copy_delete(&recurse);
 
         return;
       }
@@ -254,7 +254,7 @@ extern "C" {
 
           data_make->main->setting.state.status = F_status_set_error(F_failure);
 
-          f_directory_recurse_delete(&recurse);
+          f_directory_recurse_copy_delete(&recurse);
 
           return;
         }
@@ -290,10 +290,10 @@ extern "C" {
 
       if (data_make->main->setting.state.status == F_true) {
         if (clone) {
-          recurse.flag |= f_directory_recurse_flag_clone_e;
+          recurse.flag |= f_directory_recurse_copy_flag_clone_e;
         }
         else {
-          recurse.flag -= recurse.flag & f_directory_recurse_flag_clone_e;
+          recurse.flag -= recurse.flag & f_directory_recurse_copy_flag_clone_e;
         }
 
         fl_directory_copy(data_make->cache_arguments.array[i], destination, &recurse);
@@ -333,7 +333,7 @@ extern "C" {
       }
     } // for
 
-    f_directory_recurse_delete(&recurse);
+    f_directory_recurse_copy_delete(&recurse);
 
     if (F_status_is_error_not(data_make->main->setting.state.status)) {
       data_make->main->setting.state.status = F_none;
@@ -1451,7 +1451,7 @@ extern "C" {
 
     const f_array_length_t total = data_make->cache_arguments.used -1;
 
-    f_directory_recurse_t recurse = f_directory_recurse_t_initialize;
+    f_directory_recurse_copy_t recurse = f_directory_recurse_copy_t_initialize;
     f_string_static_t destination = f_string_static_t_initialize;
 
     if (data_make->main->program.error.verbosity > f_console_verbosity_normal_e) {
@@ -1471,7 +1471,7 @@ extern "C" {
 
         data_make->main->setting.state.status = F_status_set_error(F_failure);
 
-        f_directory_recurse_delete(&recurse);
+        f_directory_recurse_copy_delete(&recurse);
 
         return;
       }
@@ -1495,7 +1495,7 @@ extern "C" {
 
           data_make->main->setting.state.status = F_status_set_error(F_failure);
 
-          f_directory_recurse_delete(&recurse);
+          f_directory_recurse_copy_delete(&recurse);
 
           return;
         }
@@ -1535,13 +1535,13 @@ extern "C" {
 
         data_make->main->setting.state.status = F_status_set_error(F_failure);
 
-        f_directory_recurse_delete(&recurse);
+        f_directory_recurse_copy_delete(&recurse);
 
         return;
       }
     } // for
 
-    f_directory_recurse_delete(&recurse);
+    f_directory_recurse_copy_delete(&recurse);
 
     data_make->main->setting.state.status = F_none;
   }
index 4d76b2d08b76dfad6ce33072e21cd5fbb9f760f5..be49445e004346a00c4fdacb56c670c53a4f814f 100644 (file)
@@ -83,7 +83,7 @@ extern "C" {
 
     if (!void_recurse) return;
 
-    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
+    f_directory_recurse_copy_t * const recurse = (f_directory_recurse_copy_t * const) void_recurse;
 
     if (!recurse->state.custom) {
       recurse->state.status = F_output_not;
@@ -108,7 +108,7 @@ extern "C" {
 
     if (!void_recurse) return;
 
-    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
+    f_directory_recurse_copy_t * const recurse = (f_directory_recurse_copy_t * const) void_recurse;
 
     if (!recurse->state.custom) {
       recurse->state.status = F_output_not;
@@ -133,7 +133,7 @@ extern "C" {
 
     if (!void_recurse) return;
 
-    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
+    f_directory_recurse_copy_t * const recurse = (f_directory_recurse_copy_t * const) void_recurse;
 
     if (!recurse->state.custom) {
       recurse->state.status = F_output_not;
index 1a7dc6a6433d46bebb2702ee8707eb46511d38aa..a116229b5712cf659bd4f16b464ec6171bf5faca 100644 (file)
@@ -181,8 +181,8 @@ extern "C" {
 /**
  * Helper function for performing a verbose print for a file clone operation.
  *
- * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
- * The f_directory_recurse_t.state.custom must be the fake_data_t.
+ * This is intended to be passed as a callback to f_directory_recurse_copy_t.verbose.
+ * The f_directory_recurse_copy_t.state.custom must be the fake_data_t.
  *
  * @param source
  *   The source string.
@@ -204,8 +204,8 @@ extern "C" {
 /**
  * Helper function for performing a verbose print for a file copy operation.
  *
- * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
- * The f_directory_recurse_t.state.custom must be the fake_data_t.
+ * This is intended to be passed as a callback to f_directory_recurse_copy_t.verbose.
+ * The f_directory_recurse_copy_t.state.custom must be the fake_data_t.
  *
  * @param source
  *   The source string.
@@ -227,8 +227,8 @@ extern "C" {
 /**
 * Print a verbose message for when a file is moved.
  *
- * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
- * The f_directory_recurse_t.state.custom must be the fake_data_t.
+ * This is intended to be passed as a callback to f_directory_recurse_copy_t.verbose.
+ * The f_directory_recurse_copy_t.state.custom must be the fake_data_t.
  *
  * @param source
  *   The source string.
index 6512ba83c6923b5d55a12993f8a98ec933c3a3da..43b1e4f5e568d06f01730a78869acf3d24219056 100644 (file)
@@ -66,6 +66,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index b8b1f6ae3988c1b9cfa9dca1a51d1773b1c9a4d3..9e9c6a0eaacfffaee20800c8fde58588240b893b 100644 (file)
@@ -101,7 +101,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * firewall_*:
+ * firewall_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
index a1c424e3b19def5b2b1c0c789c4b2030199d5085..270814ba95872fd2c1859b15b5a371ab6d003ce5 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   firewall_main_t data = firewall_main_t_initialize;
 
-  data.program.debug.flag |= firewall_read_print_flag_debug_e;
-  data.program.error.flag |= firewall_read_print_flag_error_e;
-  data.program.message.flag |= firewall_read_print_flag_message_e;
-  data.program.warning.flag |= firewall_read_print_flag_warning_e;
+  data.program.debug.flag |= firewall_print_flag_debug_e | firewall_print_flag_out_e;
+  data.program.error.flag |= firewall_print_flag_error_e | firewall_print_flag_out_e;
+  data.program.output.flag |= firewall_print_flag_out_e;
+  data.program.message.flag |= firewall_print_flag_message_e | firewall_print_flag_out_e;
+  data.program.warning.flag |= firewall_print_flag_warning_e | firewall_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = firewall_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index 09b8c8eaaa1a6f3dad5964b89cddf6388bb60d4e..745694a0541c3ac366f8fbe903eca19c7b43c2af 100644 (file)
@@ -55,6 +55,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 76fd57f1c88c417f5493d9140709e753cf1e9cfb..0c9a6c5bae70be44f7ee31a0a4fcc46b3da7d356 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * fss_basic_list_read_*:
+ * fss_basic_list_read_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -233,19 +233,7 @@ extern "C" {
 
   #define fss_basic_list_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_basic_list_read_short_at_s, fss_basic_list_read_long_at_s, 0, 1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_basic_list_read_short_content_s, fss_basic_list_read_long_content_s, 0, 0, f_console_flag_normal_e), \
index be01e367e23b4530f7d5f8a30509ed4d9e33c5a5..992156ad14dd681d9048ab2d45f1baca2d3d777b 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_basic_list_read_main_t data = fss_basic_list_read_main_t_initialize;
 
-  data.program.debug.flag |= fss_basic_list_read_print_flag_debug_e;
-  data.program.error.flag |= fss_basic_list_read_print_flag_error_e;
-  data.program.message.flag |= fss_basic_list_read_print_flag_message_e;
-  data.program.warning.flag |= fss_basic_list_read_print_flag_warning_e;
+  data.program.debug.flag |= fss_basic_list_read_print_flag_debug_e | fss_basic_list_read_print_flag_out_e;
+  data.program.error.flag |= fss_basic_list_read_print_flag_error_e | fss_basic_list_read_print_flag_out_e;
+  data.program.output.flag |= fss_basic_list_read_print_flag_out_e;
+  data.program.message.flag |= fss_basic_list_read_print_flag_message_e | fss_basic_list_read_print_flag_out_e;
+  data.program.warning.flag |= fss_basic_list_read_print_flag_warning_e | fss_basic_list_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_basic_list_read_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index e1ae7ba7fb7b197d3194cfbeb84d0bd3a220ff55..a86aba4dcea05ad1d82a9a8ecc298ba507055cd2 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index a9e37f467cca8d285a1dd5752f70d7db0a7651c7..465ea77018152adec6920adfc6175f2f04d64de7 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * fss_basic_read_*:
+ * fss_basic_read_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -231,19 +231,7 @@ extern "C" {
 
   #define fss_basic_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_basic_read_short_at_s, fss_basic_read_long_at_s, 0, 1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_basic_read_short_content_s, fss_basic_read_long_content_s, 0, 0, f_console_flag_normal_e), \
index 771393c7b238d2b41982c77212f7ae095c20d11a..3f4a035e9c43002e04aa4ac10bb48fe0f8c33b95 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_basic_read_main_t data = fss_basic_read_main_t_initialize;
 
-  data.program.debug.flag |= fss_basic_read_print_flag_debug_e;
-  data.program.error.flag |= fss_basic_read_print_flag_error_e;
-  data.program.message.flag |= fss_basic_read_print_flag_message_e;
-  data.program.warning.flag |= fss_basic_read_print_flag_warning_e;
+  data.program.debug.flag |= fss_basic_read_print_flag_debug_e | fss_basic_read_print_flag_out_e;
+  data.program.error.flag |= fss_basic_read_print_flag_error_e | fss_basic_read_print_flag_out_e;
+  data.program.output.flag |= fss_basic_read_print_flag_out_e;
+  data.program.message.flag |= fss_basic_read_print_flag_message_e | fss_basic_read_print_flag_out_e;
+  data.program.warning.flag |= fss_basic_read_print_flag_warning_e | fss_basic_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_basic_read_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index b1e1c6e1ade1c962d2f2cf4b810fedacc2b0cad5..cdcd002e7a8a6467bc861d5fb96231d0f62ee494 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 40b14793868f00b93f128420e7dc7279ea96aabb..3fe43bc0898c3ad12d1ee9d11d146d14fbaa4f3e 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * fss_embedded_list_read_*:
+ * fss_embedded_list_read_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -231,19 +231,7 @@ extern "C" {
 
   #define fss_embedded_list_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_embedded_list_read_short_at_s.string, fss_embedded_list_read_long_at_s.string, 0, 1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_embedded_list_read_short_content_s.string, fss_embedded_list_read_long_content_s.string, 0, 0, f_console_flag_normal_e), \
index fc94ae92db679db3f39e5bbb7e576ed9d5ad7470..d5c85ab220880f97e6f32936e7740c0dd88f8ea8 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_embedded_list_read_main_t data = fss_embedded_list_read_main_t_initialize;
 
-  data.program.debug.flag |= fss_embedded_list_read_print_flag_debug_e;
-  data.program.error.flag |= fss_embedded_list_read_print_flag_error_e;
-  data.program.message.flag |= fss_embedded_list_read_print_flag_message_e;
-  data.program.warning.flag |= fss_embedded_list_read_print_flag_warning_e;
+  data.program.debug.flag |= fss_embedded_list_read_print_flag_debug_e | fss_embedded_list_read_print_flag_out_e;
+  data.program.error.flag |= fss_embedded_list_read_print_flag_error_e | fss_embedded_list_read_print_flag_out_e;
+  data.program.output.flag |= fss_embedded_list_read_print_flag_out_e;
+  data.program.message.flag |= fss_embedded_list_read_print_flag_message_e | fss_embedded_list_read_print_flag_out_e;
+  data.program.warning.flag |= fss_embedded_list_read_print_flag_warning_e | fss_embedded_list_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_embedded_list_read_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index 9221107ad360ef8960611348b14bfeb5af8e8cb2..6fddecc855e2a9c8021e3446b828fad0e912c6b1 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 0eea8eeaabe06a9416ef65e7b8bf83bf054ebcf2..112ed1856b8e616713e2fed699882f5a323512b0 100644 (file)
@@ -68,7 +68,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * fss_extended_list_read_*:
+ * fss_extended_list_read_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -231,19 +231,7 @@ extern "C" {
 
   #define fss_extended_list_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_extended_list_read_short_at_s, fss_extended_list_read_long_at_s, 0, 1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_extended_list_read_short_content_s, fss_extended_list_read_long_content_s, 0, 0, f_console_flag_normal_e), \
index bfcbedfbbfbab5ca106e741a9ff3a6e54cebf5bf..d8b7554cadc8dd712884b03c0ae318be6dec7c19 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_extended_list_read_main_t data = fss_extended_list_read_main_t_initialize;
 
-  data.program.debug.flag |= fss_extended_list_read_print_flag_debug_e;
-  data.program.error.flag |= fss_extended_list_read_print_flag_error_e;
-  data.program.message.flag |= fss_extended_list_read_print_flag_message_e;
-  data.program.warning.flag |= fss_extended_list_read_print_flag_warning_e;
+  data.program.debug.flag |= fss_extended_list_read_print_flag_debug_e | fss_extended_list_read_print_flag_out_e;
+  data.program.error.flag |= fss_extended_list_read_print_flag_error_e | fss_extended_list_read_print_flag_out_e;
+  data.program.output.flag |= fss_extended_list_read_print_flag_out_e;
+  data.program.message.flag |= fss_extended_list_read_print_flag_message_e | fss_extended_list_read_print_flag_out_e;
+  data.program.warning.flag |= fss_extended_list_read_print_flag_warning_e | fss_extended_list_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_extended_list_read_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index 536dfe6aa2667aa29455f666a3ff9fd2ea9cef7b..79e0fea75128ffc000baf77b095c0928176d9d51 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 215338a6b1597d07f70fec7849cfdb9ceefa3e5c..77ed652cf5ab68f85356e8535fca20bc743b6173 100644 (file)
@@ -78,7 +78,7 @@ extern "C" {
 /**
  * The program pipe strings.
  *
- * fss_extended_read_pipe_*:
+ * fss_extended_read_pipe_*_d:
  *   - name:           A name used to represent the pipe when printing file names.
  *   - content_end:    A code used to represent the end of Content for use in binary formats.
  *   - content_ignore: A code used to represent the ignoring Content for use in binary formats.
@@ -231,19 +231,7 @@ extern "C" {
 
   #define fss_extended_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_extended_read_short_content_s, fss_extended_read_long_content_s, 0, 0, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_extended_read_short_columns_s, fss_extended_read_long_columns_s, 0, 0, f_console_flag_normal_e), \
index 45f6899f7e59e4fd2f42b48dc7b752468fc9c05d..d3eb8d5c33c5a0254301571396db9d75fd86326c 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_extended_read_main_t data = fss_extended_read_main_t_initialize;
 
-  data.program.debug.flag |= fss_extended_read_print_flag_debug_e;
-  data.program.error.flag |= fss_extended_read_print_flag_error_e;
-  data.program.message.flag |= fss_extended_read_print_flag_message_e;
-  data.program.warning.flag |= fss_extended_read_print_flag_warning_e;
+  data.program.debug.flag |= fss_extended_read_print_flag_debug_e | fss_extended_read_print_flag_out_e;
+  data.program.error.flag |= fss_extended_read_print_flag_error_e | fss_extended_read_print_flag_out_e;
+  data.program.output.flag |= fss_extended_read_print_flag_out_e;
+  data.program.message.flag |= fss_extended_read_print_flag_message_e | fss_extended_read_print_flag_out_e;
+  data.program.warning.flag |= fss_extended_read_print_flag_warning_e | fss_extended_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_extended_read_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index f93619d02064f68410488502573f27fdacacbabf..2c3c037689df561526a0ad9414b86ed3ca2288e2 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 802d9b2e5a09e362f3aa31921c5cd945dec4f033..73936db52e4ed6841a0ed10d2f4084a7ac8105b9 100644 (file)
@@ -62,7 +62,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * fss_identify_*:
+ * fss_identify_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
@@ -139,19 +139,7 @@ extern "C" {
 
   #define fss_identify_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_identify_short_content_s, fss_identify_long_content_s, 0, 0, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_identify_short_line_s, fss_identify_long_line_s, 0, 1, f_console_flag_normal_e), \
index d94ad0ea70d24799879caece69419c6f0db3af75..814b2c2f79c9e7a1b60dba70647f3acbe2a5f166 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_identify_main_t data = fss_identify_main_t_initialize;
 
-  data.program.debug.flag |= fss_identify_print_flag_debug_e;
-  data.program.error.flag |= fss_identify_print_flag_error_e;
-  data.program.message.flag |= fss_identify_print_flag_message_e;
-  data.program.warning.flag |= fss_identify_print_flag_warning_e;
+  data.program.debug.flag |= fss_identify_print_flag_debug_e | fss_identify_print_flag_out_e;
+  data.program.error.flag |= fss_identify_print_flag_error_e | fss_identify_print_flag_out_e;
+  data.program.output.flag |= fss_identify_print_flag_out_e;
+  data.program.message.flag |= fss_identify_print_flag_message_e | fss_identify_print_flag_out_e;
+  data.program.warning.flag |= fss_identify_print_flag_warning_e | fss_identify_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_identify_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index ea53a89bbcf625957d3f85f07777d7fee48b8685..9c6bbcfa28d377463c0c7f688b76e3a0dd5ef75c 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index e4d69e5347968a0d8f0b6c586430d6cde8aa51d1..cb49abf92eb40e3bc041fef452c362c8c036c655 100644 (file)
@@ -216,19 +216,7 @@ extern "C" {
 
   #define fss_payload_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_payload_read_short_at_s, fss_payload_read_long_at_s, 0, 1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_payload_read_short_content_s, fss_payload_read_long_content_s, 0, 0, f_console_flag_normal_e), \
index 9058dd73a9319ca3676d00282df90f1fe1632f9d..9ab56c1863e0d7b15c595b88e12cebfce5b0f3f3 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_payload_read_main_t data = fss_payload_read_main_t_initialize;
 
-  data.program.debug.flag |= fss_payload_read_print_flag_debug_e;
-  data.program.error.flag |= fss_payload_read_print_flag_error_e;
-  data.program.message.flag |= fss_payload_read_print_flag_message_e;
-  data.program.warning.flag |= fss_payload_read_print_flag_warning_e;
+  data.program.debug.flag |= fss_payload_read_print_flag_debug_e | fss_payload_read_print_flag_out_e;
+  data.program.error.flag |= fss_payload_read_print_flag_error_e | fss_payload_read_print_flag_out_e;
+  data.program.output.flag |= fss_payload_read_print_flag_out_e;
+  data.program.message.flag |= fss_payload_read_print_flag_message_e | fss_payload_read_print_flag_out_e;
+  data.program.warning.flag |= fss_payload_read_print_flag_warning_e | fss_payload_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = fss_payload_read_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index ae175522d055d95a2bb46002b8658c9de2a20dc7..728c203ef2488a1e88a7dd9056a80e5924394092 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 702e839577df9c362075a093e4899da797d121f8..60ce513e379e6c1c756e5a135df1948e3afbad04 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.standard = fss_write_basic_standard_s;
index 78fdb2baa9e7f9048887748d8a7051ea72aa9977..eae411c6acc518794382d2e92b73b1607beca320 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.standard = fss_write_basic_list_standard_s;
index 21a969658636da66879ad3e1dda7313bc6e78ba1..851d9c116ce718af245d08de30443deb7e3e635c 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.standard = fss_write_embedded_list_standard_s;
index 8218952324972b40330dabf6306e04f1f2ee7bb2..cade2d6ac05f9f7a305e35c946098b45da339c08 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.standard = fss_write_extended_standard_s;
index 38ebe50676af629802beaf855778294a544bc665..a5786cc061043298a792a32803f4784d2fc874fe 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.standard = fss_write_extended_list_standard_s;
index 1e7785a8299ed7ba784f3c59aa4a9032a8b85fd0..fd06f2488bab68e52ad75eeef9e560aef1caead2 100644 (file)
@@ -19,7 +19,7 @@ extern "C" {
 /**
  * The program default defines.
  *
- * fss_write_*:
+ * fss_write_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
index f6fc7437c839aba5db0b26b8ab1570923105913f..54160c09d66c63ade7e29ffab0f985c5e01adb4a 100644 (file)
@@ -96,19 +96,7 @@ extern "C" {
 
   #define fss_write_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(fss_write_short_as_s,           fss_write_long_as_s,           1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(fss_write_short_backtick_s,     fss_write_long_backtick_s,     0, f_console_flag_normal_e), \
@@ -133,23 +121,24 @@ extern "C" {
  * Flags for fine-tuned print control.
  *
  * fss_write_print_flag_*_e:
- *   - none:      No flags set.
- *   - debug:     Stream is for debug printing.
- *   - error:     Stream is for error printing.
- *   - message:   Stream is for message printing.
- *   - warning:   Stream is for warning printing.
- *   - file_to:   Stream is a destination file.
- *   - file_from: Stream is a source file.
+ *   - none:    No flags set.
+ *   - debug:   Stream is for debug printing.
+ *   - error:   Stream is for error printing.
+ *   - in:      Stream is a source file.
+ *   - message: Stream is for message printing.
+ *   - out:     Stream is a destination file.
+ *   - warning: Stream is for warning printing.
  */
 #ifndef _di_fss_write_print_flag_e_
   enum {
-    fss_write_print_flag_none_e      = 0x0,
-    fss_write_print_flag_debug_e     = 0x1,
-    fss_write_print_flag_error_e     = 0x2,
-    fss_write_print_flag_message_e   = 0x4,
-    fss_write_print_flag_warning_e   = 0x8,
-    fss_write_print_flag_file_to_e   = 0x10,
-    fss_write_print_flag_file_from_e = 0x20,
+    fss_write_print_flag_none_e    = 0x0,
+    fss_write_print_flag_debug_e   = 0x1,
+    fss_write_print_flag_error_e   = 0x2,
+    fss_write_print_flag_file_e    = 0x4,
+    fss_write_print_flag_in_e      = 0x8,
+    fss_write_print_flag_out_e     = 0x10,
+    fss_write_print_flag_message_e = 0x20,
+    fss_write_print_flag_warning_e = 0x40,
   }; // enum
 #endif // _di_fss_write_print_flag_e_
 
index aee7ebe221283a82a0052fe02d2e68e8a5694784..38586b767333c1734cc60d34ab38b389ecb684a0 100644 (file)
@@ -12,15 +12,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
 
index 06c96b58bd9786731bad23e792d262bf8973e208..5f581ce7595b79984b22e04fc122b59646816869 100644 (file)
@@ -5,15 +5,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   fss_write_main_t data = fss_write_main_t_initialize;
 
-  data.program.debug.flag |= fss_write_print_flag_debug_e;
-  data.program.error.flag |= fss_write_print_flag_error_e;
-  data.program.message.flag |= fss_write_print_flag_message_e;
-  data.program.warning.flag |= fss_write_print_flag_warning_e;
+  data.program.debug.flag |= fss_write_print_flag_debug_e | fss_write_print_flag_out_e;
+  data.program.error.flag |= fss_write_print_flag_error_e | fss_write_print_flag_out_e;
+  data.program.output.flag |= fss_write_print_flag_out_e;
+  data.program.message.flag |= fss_write_print_flag_message_e | fss_write_print_flag_out_e;
+  data.program.warning.flag |= fss_write_print_flag_warning_e | fss_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.standard = fss_write_payload_standard_s;
index 4a5bd26c17dbbc6c95c28393bb83f759c81e60a9..dad28813c3c38602d971e0b2c93070fb362b1b9f 100644 (file)
@@ -55,6 +55,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index cf1d8969c2a29cd124bf66276129fab4204b25b8..47a3931167f167fad5eeed67393b2de1de23cd54 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 29991af7d522ad61f0f9f4a1f6b2fa7bf2ebddd7..3585ebf2464689e1a32bedd6f78d54023d386086 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 50978793d6566ac9713f3522ad6215953e251721..70c9b0b86d678164f7d1d4e2d763d556655ff6eb 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index e89b3031cd24ab3c8fbd4d569e775d0c3d3fd424..d6f46c06e25e659e627c339cd1b1f527a967f62d 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 7182f379539c32e0d7830297405319d30c4ebee0..d294bc31a137b67efe9936f1e35ba132d8cdc26b 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 72d0c104add53b1f1eed5c1f6c16003b2057a533..5fbc16773707fbe82d553676ae0af6b0425f33f7 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 88bd5f6f2bc61bb44e31cfa86fb9ae9fabfbf254..30ddb338a9e6fa3787617385b91cc55c79d2dc1d 100644 (file)
@@ -44,6 +44,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 124e161dfd0a946c769592aec464495653cd5765..aa8e33e138d720175e109b2c79cf9ae0e2324565 100644 (file)
@@ -19,7 +19,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * iki_read_*:
+ * iki_read_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
index 0849e1f401590f367192ed468575d17bc021efe2..500c9320ccf751ed6b8bc80816d2214402dad4d2 100644 (file)
@@ -97,19 +97,7 @@ extern "C" {
 
   #define iki_read_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(iki_read_short_at_s,         iki_read_long_at_s,         1, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(iki_read_short_content_s,    iki_read_long_content_s,    0, f_console_flag_normal_e), \
@@ -132,23 +120,24 @@ extern "C" {
  * Flags for fine-tuned print control.
  *
  * iki_read_print_flag_*_e:
- *   - none:      No flags set.
- *   - debug:     Stream is for debug printing.
- *   - error:     Stream is for error printing.
- *   - message:   Stream is for message printing.
- *   - warning:   Stream is for warning printing.
- *   - file_to:   Stream is a destination file.
- *   - file_from: Stream is a source file.
+ *   - none:    No flags set.
+ *   - debug:   Stream is for debug printing.
+ *   - error:   Stream is for error printing.
+ *   - in:      Stream is a source file.
+ *   - message: Stream is for message printing.
+ *   - out:     Stream is a destination file.
+ *   - warning: Stream is for warning printing.
  */
 #ifndef _di_iki_read_print_flag_e_
   enum {
-    iki_read_print_flag_none_e      = 0x0,
-    iki_read_print_flag_debug_e     = 0x1,
-    iki_read_print_flag_error_e     = 0x2,
-    iki_read_print_flag_message_e   = 0x4,
-    iki_read_print_flag_warning_e   = 0x8,
-    iki_read_print_flag_file_to_e   = 0x10,
-    iki_read_print_flag_file_from_e = 0x20,
+    iki_read_print_flag_none_e    = 0x0,
+    iki_read_print_flag_debug_e   = 0x1,
+    iki_read_print_flag_error_e   = 0x2,
+    iki_read_print_flag_file_e    = 0x4,
+    iki_read_print_flag_in_e      = 0x8,
+    iki_read_print_flag_out_e     = 0x10,
+    iki_read_print_flag_message_e = 0x20,
+    iki_read_print_flag_warning_e = 0x40,
   }; // enum
 #endif // _di_iki_read_print_flag_e_
 
index 5d628b59ecd3772c519083e9b6f57a8e5b3b641f..39ab62012e8e832567c22c296ae0c3fdd2f16fec 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   iki_read_main_t data = iki_read_main_t_initialize;
 
-  data.program.debug.flag |= iki_read_print_flag_debug_e;
-  data.program.error.flag |= iki_read_print_flag_error_e;
-  data.program.message.flag |= iki_read_print_flag_message_e;
-  data.program.warning.flag |= iki_read_print_flag_warning_e;
+  data.program.debug.flag |= iki_read_print_flag_debug_e | iki_read_print_flag_out_e;
+  data.program.error.flag |= iki_read_print_flag_error_e | iki_read_print_flag_out_e;
+  data.program.output.flag |= iki_read_print_flag_out_e;
+  data.program.message.flag |= iki_read_print_flag_message_e | iki_read_print_flag_out_e;
+  data.program.warning.flag |= iki_read_print_flag_warning_e | iki_read_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.state.custom = (void *) &data;
   data.setting.state.handle = &fll_program_standard_signal_handle;
index 1de300fb5f9f6b3d3c6166cecb404bb200849a5e..a10f98014eee4b5f2d1bf208f82ff4d8af28979a 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index c1bf1f565711e71c591e3675cf6f23f3b4d6a8ad..143f3506f6361957d8548c4833c85130157a5fba 100644 (file)
@@ -19,7 +19,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * iki_write_*:
+ * iki_write_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
index e1dffbac2b9f7c75a52e1f5a70942699f6608e76..b2b9788e833a040ea57ca23f824373cb1400f421 100644 (file)
@@ -77,19 +77,7 @@ extern "C" {
 
   #define iki_write_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(iki_write_short_backtick_s, iki_write_long_backtick_s, 0, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(iki_write_short_content_s,  iki_write_long_content_s,  1, f_console_flag_normal_e), \
@@ -107,23 +95,24 @@ extern "C" {
  * Flags for fine-tuned print control.
  *
  * iki_write_print_flag_*_e:
- *   - none:      No flags set.
- *   - debug:     Stream is for debug printing.
- *   - error:     Stream is for error printing.
- *   - message:   Stream is for message printing.
- *   - warning:   Stream is for warning printing.
- *   - file_to:   Stream is a destination file.
- *   - file_from: Stream is a source file.
+ *   - none:    No flags set.
+ *   - debug:   Stream is for debug printing.
+ *   - error:   Stream is for error printing.
+ *   - in:      Stream is a source file.
+ *   - message: Stream is for message printing.
+ *   - out:     Stream is a destination file.
+ *   - warning: Stream is for warning printing.
  */
 #ifndef _di_iki_write_print_flag_e_
   enum {
-    iki_write_print_flag_none_e      = 0x0,
-    iki_write_print_flag_debug_e     = 0x1,
-    iki_write_print_flag_error_e     = 0x2,
-    iki_write_print_flag_message_e   = 0x4,
-    iki_write_print_flag_warning_e   = 0x8,
-    iki_write_print_flag_file_to_e   = 0x10,
-    iki_write_print_flag_file_from_e = 0x20,
+    iki_write_print_flag_none_e    = 0x0,
+    iki_write_print_flag_debug_e   = 0x1,
+    iki_write_print_flag_error_e   = 0x2,
+    iki_write_print_flag_file_e    = 0x4,
+    iki_write_print_flag_in_e      = 0x8,
+    iki_write_print_flag_out_e     = 0x10,
+    iki_write_print_flag_message_e = 0x20,
+    iki_write_print_flag_warning_e = 0x40,
   }; // enum
 #endif // _di_iki_write_print_flag_e_
 
index 309567ea981cb5827cd752bd4161ab37ae156b4b..9ead59555809d6d0327eac5c1a7b5eb281468462 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   iki_write_main_t data = iki_write_main_t_initialize;
 
-  data.program.debug.flag |= iki_write_print_flag_debug_e;
-  data.program.error.flag |= iki_write_print_flag_error_e;
-  data.program.message.flag |= iki_write_print_flag_message_e;
-  data.program.warning.flag |= iki_write_print_flag_warning_e;
+  data.program.debug.flag |= iki_write_print_flag_debug_e | iki_write_print_flag_out_e;
+  data.program.error.flag |= iki_write_print_flag_error_e | iki_write_print_flag_out_e;
+  data.program.output.flag |= iki_write_print_flag_out_e;
+  data.program.message.flag |= iki_write_print_flag_message_e | iki_write_print_flag_out_e;
+  data.program.warning.flag |= iki_write_print_flag_warning_e | iki_write_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = iki_write_console_parameter_t_initialize;
   data.program.parameters.array = parameters;
index 6647d94ce94f4ab71b700b13b7e5eb198edcf07f..b8cb89255f972a52519c65cfd517e739335f1c90 100644 (file)
@@ -52,6 +52,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index f1768e2be64a977b6007e6de52884d6f5f772cba..22b118708512408f90fda7f6ec7a989c7fc0802a 100644 (file)
@@ -6,15 +6,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   status_code_main_t data = status_code_main_t_initialize;
 
-  data.program.debug.flag |= status_code_print_flag_debug_e;
-  data.program.error.flag |= status_code_print_flag_error_e;
-  data.program.message.flag |= status_code_print_flag_message_e;
-  data.program.warning.flag |= status_code_print_flag_warning_e;
+  data.program.debug.flag |= status_code_print_flag_debug_e | status_code_print_flag_out_e;
+  data.program.error.flag |= status_code_print_flag_error_e | status_code_print_flag_out_e;
+  data.program.output.flag |= status_code_print_flag_out_e;
+  data.program.message.flag |= status_code_print_flag_message_e | status_code_print_flag_out_e;
+  data.program.warning.flag |= status_code_print_flag_warning_e | status_code_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.program_name = &status_code_fss_program_name_s;
   data.setting.program_name_long = &status_code_fss_program_name_long_s;
index 573bb1040177894a53dc21bc93315fa5c03cec13..9909e323acdc1fc1e199f8df39c0f92a5abaf087 100644 (file)
@@ -19,7 +19,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * status_code_*:
+ * status_code_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
index ecba561dba4513d39c2987d19776631eb1589945..d342b92a272c112f5b6e3a8411c577a5d331a8c2 100644 (file)
@@ -75,19 +75,7 @@ extern "C" {
 
   #define status_code_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(status_code_short_fine_s,    status_code_long_fine_s,    0, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(status_code_short_warning_s, status_code_long_warning_s, 0, f_console_flag_normal_e), \
@@ -102,23 +90,24 @@ extern "C" {
  * Flags for fine-tuned print control.
  *
  * status_code_print_flag_*_e:
- *   - none:      No flags set.
- *   - debug:     Stream is for debug printing.
- *   - error:     Stream is for error printing.
- *   - message:   Stream is for message printing.
- *   - warning:   Stream is for warning printing.
- *   - file_to:   Stream is a destination file.
- *   - file_from: Stream is a source file.
+ *   - none:    No flags set.
+ *   - debug:   Stream is for debug printing.
+ *   - error:   Stream is for error printing.
+ *   - in:      Stream is a source file.
+ *   - message: Stream is for message printing.
+ *   - out:     Stream is a destination file.
+ *   - warning: Stream is for warning printing.
  */
 #ifndef _di_status_code_print_flag_e_
   enum {
-    status_code_print_flag_none_e      = 0x0,
-    status_code_print_flag_debug_e     = 0x1,
-    status_code_print_flag_error_e     = 0x2,
-    status_code_print_flag_message_e   = 0x4,
-    status_code_print_flag_warning_e   = 0x8,
-    status_code_print_flag_file_to_e   = 0x10,
-    status_code_print_flag_file_from_e = 0x20,
+    status_code_print_flag_none_e    = 0x0,
+    status_code_print_flag_debug_e   = 0x1,
+    status_code_print_flag_error_e   = 0x2,
+    status_code_print_flag_file_e    = 0x4,
+    status_code_print_flag_in_e      = 0x8,
+    status_code_print_flag_out_e     = 0x10,
+    status_code_print_flag_message_e = 0x20,
+    status_code_print_flag_warning_e = 0x40,
   }; // enum
 #endif // _di_status_code_print_flag_e_
 
index fcd6b5df206308a43a2fc4a762d8b538294da685..6bfd98595d90b295c05687afd3aad147c5df23b3 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   status_code_main_t data = status_code_main_t_initialize;
 
-  data.program.debug.flag |= status_code_print_flag_debug_e;
-  data.program.error.flag |= status_code_print_flag_error_e;
-  data.program.message.flag |= status_code_print_flag_message_e;
-  data.program.warning.flag |= status_code_print_flag_warning_e;
+  data.program.debug.flag |= status_code_print_flag_debug_e | status_code_print_flag_out_e;
+  data.program.error.flag |= status_code_print_flag_error_e | status_code_print_flag_out_e;
+  data.program.output.flag |= status_code_print_flag_out_e;
+  data.program.message.flag |= status_code_print_flag_message_e | status_code_print_flag_out_e;
+  data.program.warning.flag |= status_code_print_flag_warning_e | status_code_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   data.setting.program_name = &status_code_program_name_s;
   data.setting.program_name_long = &status_code_program_name_long_s;
index aa6846f4efd65ea81832af41baa5319e21774bfa..de97c2f6ced180e9d381c177749dcff1fda99921 100644 (file)
@@ -70,11 +70,9 @@ extern "C" {
  *   - F_signal_termination
  *
  * @param main
- *   The main program data.
- * @param setting
- *   The main program settings.
+ *   The main program data and settings.
  *
- *   This alters setting.state.status:
+ *   This alters main.setting.state.status:
  *     F_none on success.
  *     F_true on success when performing verification and verify passed.
  *     F_false on success when performing verification and verify failed.
index c092268e522df6e5b63410fe496fe000404b7187..d201d645972f995b0eaabe235e34700ced8ad005 100644 (file)
@@ -56,6 +56,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index d8a5ad9dd595e992e7ab2061d16930434d775b8e..f3c03b75dfe0377eb82446eb8ee6f1de9a987448 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index 2ae2606e23c0f05f1d7796c8aad0cfebcfd314aa..9f2682f954811a4c43b087a2726124cb3e601ef0 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
index b3a0cdd917cc182b50f5f86433c1d3252c18ba4c..dd5b66d1ee62a8e2e4727c34ec85de4a0283fdea 100644 (file)
@@ -26,7 +26,7 @@ extern "C" {
 /**
  * The program defines.
  *
- * utf8_*:
+ * utf8_*_d:
  *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
  *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
  *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
index 44a912379625a28154a2e6b7961e2f79988ddfeb..1bc8b47f5c9cabb07d12d26765d6ac07d075408d 100644 (file)
@@ -151,19 +151,7 @@ extern "C" {
 
   #define utf8_console_parameter_t_initialize \
     { \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_help_s,          f_console_standard_long_help_s,          0, f_console_flag_normal_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_copyright_s,     f_console_standard_long_copyright_s,     0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_light_s,         f_console_standard_long_light_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_dark_s,          f_console_standard_long_dark_s,          0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_no_color_s,      f_console_standard_long_no_color_s,      0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_quiet_s,         f_console_standard_long_quiet_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_error_s,         f_console_standard_long_error_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_normal_s,        f_console_standard_long_normal_s,        0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_verbose_s,       f_console_standard_long_verbose_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_debug_s,         f_console_standard_long_debug_s,         0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_version_s,       f_console_standard_long_version_s,       0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_first_no_s, f_console_standard_long_line_first_no_s, 0, f_console_flag_inverse_e), \
-      macro_f_console_parameter_t_initialize_3(f_console_standard_short_line_last_no_s,  f_console_standard_long_line_last_no_s,  0, f_console_flag_inverse_e), \
+      macro_fll_program_console_parameter_standard_initialize, \
       \
       macro_f_console_parameter_t_initialize_3(utf8_short_from_bytesequence_s, utf8_long_from_bytesequence_s, 0, f_console_flag_normal_e), \
       macro_f_console_parameter_t_initialize_3(utf8_short_from_codepoint_s,    utf8_long_from_codepoint_s,    0, f_console_flag_normal_e), \
@@ -186,23 +174,24 @@ extern "C" {
  * Flags for fine-tuned print control.
  *
  * utf8_print_flag_*_e:
- *   - none:      No flags set.
- *   - debug:     Stream is for debug printing.
- *   - error:     Stream is for error printing.
- *   - message:   Stream is for message printing.
- *   - warning:   Stream is for warning printing.
- *   - file_to:   Stream is a destination file.
- *   - file_from: Stream is a source file.
+ *   - none:    No flags set.
+ *   - debug:   Stream is for debug printing.
+ *   - error:   Stream is for error printing.
+ *   - in:      Stream is a source file.
+ *   - message: Stream is for message printing.
+ *   - out:     Stream is a destination file.
+ *   - warning: Stream is for warning printing.
  */
 #ifndef _di_utf8_print_flag_e_
   enum {
-    utf8_print_flag_none_e      = 0x0,
-    utf8_print_flag_debug_e     = 0x1,
-    utf8_print_flag_error_e     = 0x2,
-    utf8_print_flag_message_e   = 0x4,
-    utf8_print_flag_warning_e   = 0x8,
-    utf8_print_flag_file_to_e   = 0x10,
-    utf8_print_flag_file_from_e = 0x20,
+    utf8_print_flag_none_e    = 0x0,
+    utf8_print_flag_debug_e   = 0x1,
+    utf8_print_flag_error_e   = 0x2,
+    utf8_print_flag_file_e    = 0x4,
+    utf8_print_flag_in_e      = 0x8,
+    utf8_print_flag_out_e     = 0x10,
+    utf8_print_flag_message_e = 0x20,
+    utf8_print_flag_warning_e = 0x40,
   }; // enum
 #endif // _di_utf8_print_flag_e_
 
index 5a41ebd54ea69816bedd5c5e4a80f2913e8b353c..25abea31b44b54a9be3e650396ff289eedf836b6 100644 (file)
@@ -17,29 +17,6 @@ extern "C" {
 #endif
 
 /**
- * Set to at least 4 to provide a UTF-8 friendly allocation step.
- */
-#ifndef _di_utf8_default_d_
-  #define utf8_default_allocation_step_d 16
-#endif // _di_utf8_default_d_
-
-/**
- * The program defines.
- *
- * utf8_*:
- *   - allocation_console: An allocation step used for small buffers specifically for console parameter.
- *   - allocation_large:   An allocation step used for buffers that are anticipated to have large buffers.
- *   - allocation_small:   An allocation step used for buffers that are anticipated to have small buffers.
- *   - signal_check:       Number of iterations before performing signal check in non-threaded signal handling.
- */
-#ifndef _di_utf8_d_
-  #define utf8_allocation_console_d 4
-  #define utf8_allocation_large_d   256
-  #define utf8_allocation_small_d   16
-  #define utf8_signal_check_d       20000
-#endif // _di_utf8_d_
-
-/**
  * The utf8 main program settings.
  *
  * This is passed to the program-specific main entry point to designate program settings.
index 16bf333639a023ef4df8b6126dc4032926866e0a..7b616dbc8d25632bcae64ff3a465a81a4ce65d51 100644 (file)
@@ -4,15 +4,16 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   utf8_main_t data = utf8_main_t_initialize;
 
-  data.program.debug.flag |= utf8_print_flag_debug_e;
-  data.program.error.flag |= utf8_print_flag_error_e;
-  data.program.message.flag |= utf8_print_flag_message_e;
-  data.program.warning.flag |= utf8_print_flag_warning_e;
+  data.program.debug.flag |= utf8_print_flag_debug_e | utf8_print_flag_out_e;
+  data.program.error.flag |= utf8_print_flag_error_e | utf8_print_flag_out_e;
+  data.program.output.flag |= utf8_print_flag_out_e;
+  data.program.message.flag |= utf8_print_flag_message_e | utf8_print_flag_out_e;
+  data.program.warning.flag |= utf8_print_flag_warning_e | utf8_print_flag_out_e;
+  data.program.error.custom = (void *) &data;
+  data.program.debug.custom = (void *) &data;
   data.program.message.custom = (void *) &data;
   data.program.output.custom = (void *) &data;
-  data.program.error.custom = (void *) &data;
   data.program.warning.custom = (void *) &data;
-  data.program.debug.custom = (void *) &data;
 
   f_console_parameter_t parameters[] = utf8_console_parameter_t_initialize;
 
index 3dfd18b4e98dbdd673f8dba382e618e550a635e4..87672db0e15129bdfd3125620607705f7004a036 100644 (file)
@@ -53,6 +53,7 @@ search_shared yes
 search_static yes
 
 environment PATH LD_LIBRARY_PATH
+environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LOCPATH NLSPATH
 
 #defines -D_di_libcap_ -D_di_thread_support_
 defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_