]> Kevux Git Server - fll/commitdiff
Progress: Continue program related work, updating fss_write.
authorKevin Day <thekevinday@gmail.com>
Fri, 2 Dec 2022 04:29:36 +0000 (22:29 -0600)
committerKevin Day <thekevinday@gmail.com>
Fri, 2 Dec 2022 04:29:36 +0000 (22:29 -0600)
Fix minor spacing problem where the color context should be closed near non-whitespace whenever possible.

Add missing word "error" in some comments.

Continue working in fss_write.
This gets the fss_payload_write program compiling.
The installer by default doesn't handle all of the programs.
Where before './install.sh -w /tmp/fll/' used to work now the following are all needed:
- ./install.sh -w /tmp/fll/
- ./install.sh -w /tmp/fll/ -s data/build/settings.main
- ./install.sh -w /tmp/fll/ -s data/build/settings.payload

32 files changed:
level_2/fll_program/c/program/print.c
level_3/fss_basic_list_write/c/private-write.h
level_3/fss_basic_write/c/private-write.h
level_3/fss_embedded_list_write/c/private-write.h
level_3/fss_extended_list_write/c/private-write.h
level_3/fss_extended_write/c/private-write.h
level_3/fss_payload_write/c/print.h
level_3/fss_write/c/basic/fss_write.h
level_3/fss_write/c/basic_list/fss_write.h
level_3/fss_write/c/embedded_list/fss_write.h
level_3/fss_write/c/extended/fss_write.h
level_3/fss_write/c/extended_list/fss_write.h
level_3/fss_write/c/main/common.c
level_3/fss_write/c/main/common.h
level_3/fss_write/c/main/cp [new file with mode: 0644]
level_3/fss_write/c/main/main-print.c [new file with mode: 0644]
level_3/fss_write/c/main/main-print.h [new file with mode: 0644]
level_3/fss_write/c/main/main.c
level_3/fss_write/c/main/main.h
level_3/fss_write/c/main/print.h
level_3/fss_write/c/payload/common.c
level_3/fss_write/c/payload/common.h
level_3/fss_write/c/payload/fss_write.c
level_3/fss_write/c/payload/fss_write.h
level_3/fss_write/c/payload/main.c
level_3/fss_write/c/payload/print.c
level_3/fss_write/c/payload/print.h
level_3/fss_write/data/build/fakefile
level_3/fss_write/data/build/settings
level_3/fss_write/data/build/settings.main [new file with mode: 0644]
level_3/fss_write/data/build/settings.payload [new file with mode: 0644]
level_3/utf8/c/print.c

index c93bd69d7990022896c6fc23b64f5a117de80862..e0d74a2b6a4dcc9aba545e0fed715a4d19589979 100644 (file)
@@ -27,9 +27,9 @@ extern "C" {
 
     f_file_stream_lock(print.to);
 
-    fl_print_format("%[%QThe %]", print.to, print.set->error, print.prefix, print.set->error);
+    fl_print_format("%[%QThe%] ", print.to, print.set->error, print.prefix, print.set->error);
     fl_print_format("%[%Q%]", print.to, print.set->notable, variable, print.set->notable);
-    fl_print_format("%[ is missing or has a length of %]", print.to, print.set->error, print.set->error);
+    fl_print_format("%[ is missing or has a length of%] ", print.to, print.set->error, print.set->error);
     fl_print_format("%[0%]", print.to, print.set->notable, print.set->notable);
     fl_print_format("%[.%]%r", print.to, print.set->error, print.set->error, f_string_eol_s);
 
@@ -200,7 +200,7 @@ extern "C" {
 
     f_file_stream_lock(print.to);
 
-    fl_print_format("%[%QThe parameter %]", print.to, print.set->error, print.prefix, print.set->error);
+    fl_print_format("%[%QThe parameter%] ", print.to, print.set->error, print.prefix, print.set->error);
     fl_print_format("%[%Q%Q%]", print.to, print.set->notable, symbol, parameter, print.set->notable);
     fl_print_format(" %[is specified, but no value is given.%]%r", print.to, print.set->error, print.set->error, f_string_eol_s);
 
@@ -217,9 +217,9 @@ extern "C" {
 
     f_file_stream_lock(print.to);
 
-    fl_print_format("%[%QThe parameter %]", print.to, print.set->error, print.prefix, print.set->error);
+    fl_print_format("%[%QThe parameter%] ", print.to, print.set->error, print.prefix, print.set->error);
     fl_print_format("%[%Q%Q%]", print.to, print.set->notable, symbol, parameter, print.set->notable);
-    fl_print_format("%[ is specified, but %]", print.to, print.set->error, print.set->error);
+    fl_print_format("%[ is specified, but%] ", print.to, print.set->error, print.set->error);
     fl_print_format("%[%Q%]", print.to, print.set->notable, amount, print.set->notable);
     fl_print_format(" %[values are not given.%]%r", print.to, print.set->error, print.set->error, f_string_eol_s);
 
index 7080fc3ff7bf9db5e7a7482b8959551af740a214..16ba393afee021233af6b3262f30abe2fdd95d21 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
 #endif // _di_fss_basic_list_write_error_parameter_same_times_print_
 
 /**
- * Print an message about a parameter a New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter a New Line character '\n' (U+000A) being unsupported.
  *
  * @param main
  *   The main program data.
@@ -33,7 +33,7 @@ extern "C" {
 #endif // _di_fss_basic_list_write_error_parameter_unsupported_eol_print_
 
 /**
- * Print an message about a parameter missing a value.
+ * Print an error message about a parameter missing a value.
  *
  * @param main
  *   The main program data.
index 5997cea71edb8ece2a7609acf19e8c0f6dc4ccb8..e59653742221b793fa8d30e9bd9dd1e7adebf26a 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
 #endif // _di_fss_basic_write_error_parameter_same_times_print_
 
 /**
- * Print an message about a parameter missing a value.
+ * Print an error message about a parameter missing a value.
  *
  * @param main
  *   The main program data.
@@ -37,7 +37,7 @@ extern "C" {
 #endif // _di_fss_basic_write_error_parameter_value_missing_print_
 
 /**
- * Print an message about a parameter a New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter a New Line character '\n' (U+000A) being unsupported.
  *
  * @param main
  *   The main program data.
index 49006874cab41b2e667ec101fdc065079480b887..a54549bbc25e8713d646d6349da90c681bbaf54e 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
 #endif // _di_fss_embedded_list_write_error_parameter_same_times_print_
 
 /**
- * Print an message about a parameter a New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter a New Line character '\n' (U+000A) being unsupported.
  *
  * @param main
  *   The main program data.
@@ -33,7 +33,7 @@ extern "C" {
 #endif // _di_fss_embedded_list_write_error_parameter_unsupported_eol_print_
 
 /**
- * Print an message about a parameter missing a value.
+ * Print an error message about a parameter missing a value.
  *
  * @param main
  *   The main program data.
index 6d345ba90c3ac28450722308447823d945a38226..39cdf649b3d8505e62deb9849bea80b28ad20071 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
 #endif // _di_fss_extended_list_write_error_parameter_same_times_print_
 
 /**
- * Print an message about a parameter New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter New Line character '\n' (U+000A) being unsupported.
  *
  * @param main
  *   The main program data.
@@ -33,7 +33,7 @@ extern "C" {
 #endif // _di_fss_extended_list_write_error_parameter_unsupported_eol_print_
 
 /**
- * Print an message about a parameter missing a value.
+ * Print an error message about a parameter missing a value.
  *
  * @param main
  *   The main program data.
index 85dc1fb0e7ed96b6db9ca19bbbfb8967248b5ef3..883328e782a128661afc615a660d04c7633c75a2 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
 #endif // _di_fss_extended_write_error_parameter_at_least_once_print_
 
 /**
- * Print an message about a parameter missing a value.
+ * Print an error message about a parameter missing a value.
  *
  * @param main
  *   The main program data.
@@ -45,7 +45,7 @@ extern "C" {
 #endif // _di_fss_extended_write_error_parameter_value_missing_print_
 
 /**
- * Print an message about a parameter a New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter a New Line character '\n' (U+000A) being unsupported.
  *
  * @param main
  *   The main program data.
index 3cc0ccffd020972edf8329498eb0ed6b6fd81c0d..50fc3fad033fda0f38d9f373edbf2e21f415d9b1 100644 (file)
@@ -116,7 +116,7 @@ extern "C" {
 #endif // _fss_payload_write_print_error_prepend_only_whitespace_
 
 /**
- * Print an message about a parameter New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter New Line character '\n' (U+000A) being unsupported.
  *
  * @param setting
  *   The main program settings.
index b5a7bba491e210f3604aa4f9be92ab6bdd450d71..701999f76990bcf96ddf80acea4787312f7daaf0 100644 (file)
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/basic/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/basic/print.h>
+#include <program/fss_write/basic/common.h>
 #include <program/fss_write/main/print.h>
+#include <program/fss_write/basic/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index a40a7e4df70ac5acd133326f08ea7b890f1d5f62..d7391c32369a3fb641c8d4d3f37f9c783f9b7e40 100644 (file)
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/basic_list/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/basic_list/print.h>
+#include <program/fss_write/basic_list/common.h>
 #include <program/fss_write/main/print.h>
+#include <program/fss_write/basic_list/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index 60e2342371ea6e30b8d248ba235432b1b379ea1b..9483c6ef0980960106eb698b2e057aa46d7d70f1 100644 (file)
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/embedded_list/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/embedded_list/print.h>
+#include <program/fss_write/embedded_list/common.h>
 #include <program/fss_write/main/print.h>
+#include <program/fss_write/embedded_list/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index 608a8ac09204b982b40361d21bf9ce943b0daa84..0b7e9f4f49844787ba970d04af0f189564288187 100644 (file)
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/extended/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/extended/print.h>
+#include <program/fss_write/extended/common.h>
 #include <program/fss_write/main/print.h>
+#include <program/fss_write/extended/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index f047b5f9821f3ac6587abc4fdfe4a0ef22f2a95c..5f9d0945b150c893248c8452c16f117a451338be 100644 (file)
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/extended_list/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/extended_list/print.h>
+#include <program/fss_write/extended_list/common.h>
 #include <program/fss_write/main/print.h>
+#include <program/fss_write/extended_list/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index 69d7ccdf20de086b8534fbbce2abc8e741f68278..db0515f5ecfc73d3939dfd022ace16d6dc606806 100644 (file)
@@ -198,7 +198,7 @@ extern "C" {
       return;
     }
 
-    if (main->parameters.array[fss_write_parameter_object_e].result & f_console_result_value_e && main->parameters.array[fss_write_parameter_object_e].values.used) {
+    if ((main->parameters.array[fss_write_parameter_object_e].result & f_console_result_value_e) && main->parameters.array[fss_write_parameter_object_e].values.used) {
       f_array_lengths_t * const values = &main->parameters.array[fss_write_parameter_object_e].values;
 
       setting->objects.used = 0;
index fc3f3eee0603609242d943e21c7044eeecf503ea..a65ea8e31ae2ab81a3839000a568593d39c643d0 100644 (file)
@@ -382,6 +382,8 @@ extern "C" {
  *     F_none on success.
  *     F_data_not on success but nothing was provided to operate with.
  *
+ *     F_parameter (with error bit) on parameter error.
+ *
  *     Errors (with error bit) from: f_console_parameter_process().
  *     Errors (with error bit) from: f_file_stream_open().
  *     Errors (with error bit) from: f_string_dynamics_resize().
diff --git a/level_3/fss_write/c/main/cp b/level_3/fss_write/c/main/cp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/level_3/fss_write/c/main/main-print.c b/level_3/fss_write/c/main/main-print.c
new file mode 100644 (file)
index 0000000..5150f8d
--- /dev/null
@@ -0,0 +1,109 @@
+#include "fss_write.h"
+#include "main-print.h"
+#include "../basic/fss_write.h"
+#include "../basic_list/fss_write.h"
+#include "../extended/fss_write.h"
+#include "../extended_list/fss_write.h"
+#include "../embedded_list/fss_write.h"
+#include "../payload/fss_write.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fss_write_main_print_error_format_unknown_
+  f_status_t fss_write_main_print_error_format_unknown(const fl_print_t print, const f_string_static_t value) {
+
+    if (print.verbosity == f_console_verbosity_quiet_e) return F_output_not;
+
+    f_file_stream_lock(print.to);
+
+    fl_print_format("%[%QThe format '%]", print.to, print.set->error, print.prefix, print.set->error);
+    fl_print_format("%[%Q%]", print.to, print.set->notable, value, print.set->notable);
+    fl_print_format("%[' is not known for the parameter%] ", print.to, print.set->error, print.set->error);
+    fl_print_format("%[%Q%Q%]", print.to, print.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, print.set->notable);
+    fl_print_format("%[.%]%r", print.to, print.set->error, print.set->error, f_string_eol_s);
+
+    f_file_stream_unlock(print.to);
+
+    return F_none;
+  }
+#endif // _di_fss_write_main_print_error_format_unknown_
+
+#ifndef _di_fss_write_main_print_help_
+  f_status_t fss_write_main_print_help(fss_write_setting_t * const setting, const fl_print_t print) {
+
+    f_file_stream_lock(print.to);
+
+    f_print_dynamic_raw(setting->line_first, print.to);
+
+    fll_program_print_help_header(print, fss_write_program_name_long_s, fss_write_program_version_s);
+
+    fss_write_print_help(setting, print);
+
+    fll_program_print_help_option(print, fss_write_short_as_s, fss_write_long_as_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Designate the supported format to write as.");
+
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
+    fll_program_print_help_usage(print, fss_write_program_name_s, f_string_empty_s);
+
+    fss_write_print_help_pipe(setting, print);
+
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
+    fl_print_format("  The '%[%r%r%]' parameter supports the following standards with the specified possible case-sensitive values:%r", print.to, print.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, print.set->notable, f_string_eol_s);
+
+    // FSS-0000 (Basic)
+    fl_print_format("    - As %[%r%]         format: ", print.to, print.set->notable, fss_write_basic_standard_s, print.set->notable);
+    fl_print_format("'%[%r%]', ", print.to, print.set->notable, fss_write_format_code_short_0000_s, print.set->notable);
+    fl_print_format("'%[%r%]', or ", print.to, print.set->notable, fss_write_format_code_long_0000_s, print.set->notable);
+    fl_print_format("'%[%r%]'.%r", print.to, print.set->notable, fss_write_format_code_human_0000_s, print.set->notable, f_string_eol_s);
+
+    // FSS-0001 (Extended)
+    fl_print_format("    - As %[%r%]      format: ", print.to, print.set->notable, fss_write_extended_standard_s, print.set->notable);
+    fl_print_format("'%[%r%]', ", print.to, print.set->notable, fss_write_format_code_short_0001_s, print.set->notable);
+    fl_print_format("'%[%r%]', or ", print.to, print.set->notable, fss_write_format_code_long_0001_s, print.set->notable);
+    fl_print_format("'%[%r%]'.%r", print.to, print.set->notable, fss_write_format_code_human_0001_s, print.set->notable, f_string_eol_s);
+
+    // FSS-0002 (Basic List)
+    fl_print_format("    - As %[%r%]    format: ", print.to, print.set->notable, fss_write_basic_list_standard_s, print.set->notable);
+    fl_print_format("'%[%r%]', ", print.to, print.set->notable, fss_write_format_code_short_0002_s, print.set->notable);
+    fl_print_format("'%[%r%]', or ", print.to, print.set->notable, fss_write_format_code_long_0002_s, print.set->notable);
+    fl_print_format("'%[%r%]'.%r", print.to, print.set->notable, fss_write_format_code_human_0002_s, print.set->notable, f_string_eol_s);
+
+    // FSS-0003 (Extended List)
+    fl_print_format("    - As %[%r%] format: ", print.to, print.set->notable, fss_write_extended_list_standard_s, print.set->notable);
+    fl_print_format("'%[%r%]', ", print.to, print.set->notable, fss_write_format_code_short_0003_s, print.set->notable);
+    fl_print_format("'%[%r%]', or ", print.to, print.set->notable, fss_write_format_code_long_0003_s, print.set->notable);
+    fl_print_format("'%[%r%]'.%r", print.to, print.set->notable, fss_write_format_code_human_0003_s, print.set->notable, f_string_eol_s);
+
+    // FSS-0008 (Embedded List)
+    fl_print_format("    - As %[%r%] format: ", print.to, print.set->notable, fss_write_embedded_list_standard_s, print.set->notable);
+    fl_print_format("'%[%r%]', ", print.to, print.set->notable, fss_write_format_code_short_0008_s, print.set->notable);
+    fl_print_format("'%[%r%]', or ", print.to, print.set->notable, fss_write_format_code_long_0008_s, print.set->notable);
+    fl_print_format("'%[%r%]'.%r", print.to, print.set->notable, fss_write_format_code_human_0008_s, print.set->notable, f_string_eol_s);
+
+    // FSS-000E (Payload)
+    fl_print_format("    - As %[%r%]       format: ", print.to, print.set->notable, fss_write_payload_standard_s, print.set->notable);
+    fl_print_format("'%[%r%]', ", print.to, print.set->notable, fss_write_format_code_short_000e_s, print.set->notable);
+    fl_print_format("'%[%r%]', or ", print.to, print.set->notable, fss_write_format_code_long_000e_s, print.set->notable);
+    fl_print_format("'%[%r%]'.%r", print.to, print.set->notable, fss_write_format_code_human_000e_s, print.set->notable, f_string_eol_s);
+
+    f_print_dynamic_raw(f_string_eol_s, print.to);
+
+    fl_print_format("  The %[%r%] format is the default when no ", print.to, print.set->notable, fss_write_basic_standard_s, print.set->notable);
+    fl_print_format("'%[%r%r%]' is specified.%r", print.to, print.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, print.set->notable, f_string_eol_s);
+
+    f_print_dynamic_raw(setting->line_last, print.to);
+
+    f_file_stream_flush(print.to);
+    f_file_stream_unlock(print.to);
+
+    return F_none;
+  }
+#endif // _di_fss_write_main_print_help_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_3/fss_write/c/main/main-print.h b/level_3/fss_write/c/main/main-print.h
new file mode 100644 (file)
index 0000000..e052608
--- /dev/null
@@ -0,0 +1,57 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: FSS Write
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ */
+#ifndef _fss_write_main_print_h
+#define _fss_write_main_print_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Print an error message about a value given to the --as parameter being unknown.
+ *
+ * @param setting
+ *   The main program settings.
+ *
+ *   This does not alter setting.status.
+ * @param print
+ *   Designates the how and where to print.
+ * @param value
+ *   A string representing the value that is of an unknown format.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_main_print_error_format_unknown_
+  extern f_status_t fss_write_main_print_error_format_unknown(const fl_print_t print, const f_string_static_t value);
+#endif // _di_fss_write_main_print_error_format_unknown_
+
+/**
+ * Print help for "main" fss_write.
+ *
+ * @param setting
+ *   The main program settings.
+ *
+ *   This does not alter setting.status.
+ * @param print
+ *   The output structure to print to.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ */
+#ifndef _di_fss_write_print_main_help_
+  extern f_status_t fss_write_main_print_help(fss_write_setting_t * const setting, const fl_print_t print);
+#endif // _di_fss_write_print_main_help_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _fss_write_main_print_h
index 3b2f07dd4bba67b6d21a14050cb52780b54ba68f..b6956065a6fae9876cf1447af9cb7285b35cdf02 100644 (file)
@@ -1,5 +1,6 @@
 #include "fss_write.h"
 #include "main.h"
+#include "main-print.h"
 #include "../basic/fss_write.h"
 #include "../basic_list/fss_write.h"
 #include "../extended/fss_write.h"
@@ -44,76 +45,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 }
 
 #ifndef _di_fss_write_main_process_help_
-  void fss_write_main_process_help(fll_program_data_t * const main, void * const void_setting) {
+  void fss_write_main_process_help(fll_program_data_t * const main, void * const setting) {
 
-    fss_write_setting_t * const setting = (fss_write_setting_t *) void_setting;
-
-    f_file_stream_lock(main->message.to);
-
-    f_print_dynamic_raw(setting->line_first, main->message.to);
-
-    fll_program_print_help_header(main->message, fss_write_program_name_long_s, fss_write_program_version_s);
-
-    fss_write_print_help(setting, main->message);
-
-    fll_program_print_help_option(main->message, fss_write_short_as_s, fss_write_long_as_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Designate the supported format to write as.");
-
-    f_print_dynamic_raw(f_string_eol_s, main->message.to);
-    f_print_dynamic_raw(f_string_eol_s, main->message.to);
-
-    fll_program_print_help_usage(main->message, fss_write_program_name_s, f_string_empty_s);
-
-    fss_write_print_help_pipe(setting, main->message);
-
-    f_print_dynamic_raw(f_string_eol_s, main->message.to);
-
-    fl_print_format("  The '%[%r%r%]' parameter supports the following standards with the specified possible case-sensitive values:%r", main->message.to, main->message.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, main->message.set->notable, f_string_eol_s);
-
-    // FSS-0000 (Basic)
-    fl_print_format("    - As %[%r%]         format: ", main->message.to, main->message.set->notable, fss_write_basic_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0000_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0000_s, main->message.set->notable);
-    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0000_s, main->message.set->notable, f_string_eol_s);
-
-    // FSS-0001 (Extended)
-    fl_print_format("    - As %[%r%]      format: ", main->message.to, main->message.set->notable, fss_write_extended_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0001_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0001_s, main->message.set->notable);
-    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0001_s, main->message.set->notable, f_string_eol_s);
-
-    // FSS-0002 (Basic List)
-    fl_print_format("    - As %[%r%]    format: ", main->message.to, main->message.set->notable, fss_write_basic_list_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0002_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0002_s, main->message.set->notable);
-    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0002_s, main->message.set->notable, f_string_eol_s);
-
-    // FSS-0003 (Extended List)
-    fl_print_format("    - As %[%r%] format: ", main->message.to, main->message.set->notable, fss_write_extended_list_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0003_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0003_s, main->message.set->notable);
-    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0003_s, main->message.set->notable, f_string_eol_s);
-
-    // FSS-0008 (Embedded List)
-    fl_print_format("    - As %[%r%] format: ", main->message.to, main->message.set->notable, fss_write_embedded_list_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_0008_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_0008_s, main->message.set->notable);
-    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_0008_s, main->message.set->notable, f_string_eol_s);
-
-    // FSS-000E (Payload)
-    fl_print_format("    - As %[%r%]       format: ", main->message.to, main->message.set->notable, fss_write_payload_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', ", main->message.to, main->message.set->notable, fss_write_format_code_short_000e_s, main->message.set->notable);
-    fl_print_format("'%[%r%]', or ", main->message.to, main->message.set->notable, fss_write_format_code_long_000e_s, main->message.set->notable);
-    fl_print_format("'%[%r%]'.%r", main->message.to, main->message.set->notable, fss_write_format_code_human_000e_s, main->message.set->notable, f_string_eol_s);
-
-    f_print_dynamic_raw(f_string_eol_s, main->message.to);
-
-    fl_print_format("  The %[%r%] format is the default when no ", main->message.to, main->message.set->notable, fss_write_basic_standard_s, main->message.set->notable);
-    fl_print_format("'%[%r%r%]' is specified.%r", main->message.to, main->message.set->notable, f_console_symbol_long_normal_s, fss_write_long_as_s, main->message.set->notable, f_string_eol_s);
-
-    f_print_dynamic_raw(setting->line_last, main->message.to);
-
-    f_file_stream_flush(main->message.to);
-    f_file_stream_unlock(main->message.to);
+    fss_write_main_print_help((fss_write_setting_t *) setting, main->message);
   }
 #endif // _di_fss_write_main_process_help_
 
@@ -148,8 +82,8 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
           setting->process_normal = &fss_write_basic_process_normal;
         }
         else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0001_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0001_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0001_s) == F_equal_to) {
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0001_s) == F_equal_to ||
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0001_s) == F_equal_to) {
 
           setting->program_name = &fss_write_extended_program_name_s;
           setting->program_name_long = &fss_write_extended_program_name_long_s;
@@ -158,8 +92,8 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
           setting->process_normal = &fss_write_extended_process_normal;
         }
         else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0002_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0002_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0002_s) == F_equal_to) {
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0002_s) == F_equal_to ||
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0002_s) == F_equal_to) {
 
           setting->program_name = &fss_write_basic_list_program_name_s;
           setting->program_name_long = &fss_write_basic_list_program_name_long_s;
@@ -168,8 +102,8 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
           setting->process_normal = &fss_write_basic_list_process_normal;
         }
         else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0003_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0003_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0003_s) == F_equal_to) {
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0003_s) == F_equal_to ||
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0003_s) == F_equal_to) {
 
           setting->program_name = &fss_write_extended_list_program_name_s;
           setting->program_name_long = &fss_write_extended_list_program_name_long_s;
@@ -178,8 +112,8 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
           setting->process_normal = &fss_write_extended_list_process_normal;
         }
         else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0008_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0008_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0008_s) == F_equal_to) {
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0008_s) == F_equal_to ||
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0008_s) == F_equal_to) {
 
           setting->program_name = &fss_write_embedded_list_program_name_s;
           setting->program_name_long = &fss_write_embedded_list_program_name_long_s;
@@ -188,8 +122,8 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
           setting->process_normal = &fss_write_embedded_list_process_normal;
         }
         else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_000e_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_long_000e_s) == F_equal_to ||
-            fl_string_dynamic_compare(argv[index], fss_write_format_code_human_000e_s) == F_equal_to) {
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_long_000e_s) == F_equal_to ||
+                 fl_string_dynamic_compare(argv[index], fss_write_format_code_human_000e_s) == F_equal_to) {
 
           setting->program_name = &fss_write_payload_program_name_s;
           setting->program_name_long = &fss_write_payload_program_name_long_s;
@@ -199,9 +133,19 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
         }
         else {
-          // @todo print error
+          if (setting->flag & fss_write_main_flag_help_e) {
+            setting->status = F_status_set_error(F_parameter);
+
+            break;
+          }
+
+          if (setting->status != F_status_set_error(F_parameter)) {
+            fss_write_print_line_first_locked(setting, main->error);
+          }
 
           setting->status = F_status_set_error(F_parameter);
+
+          fss_write_main_print_error_format_unknown(main->error, argv[index]);
         }
       } // for
 
@@ -209,6 +153,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
         if (setting->flag & fss_write_main_flag_help_e) {
           fss_write_main_process_help(main, setting);
         }
+        else {
+          fss_write_print_line_last_locked(setting, main->error);
+        }
 
         return;
       }
index 0025bdaf91b0f34bfaf765debf67db09a1421cc7..1de0ad002d97dbc9ab0ad0006d8b76759987c960 100644 (file)
@@ -6,8 +6,7 @@
  * Licenses: lgpl-2.1-or-later
  *
  * This file is only ever included by main/main.c and should not normally be included anywhere else.
- * Anything that wants to include this should be providing the "main" program functionality in some manner.
- * Any program utilizing this should link to the "main" program library.
+ * Anything that wants to include this should be providing the "fss_write" program functionality in some manner.
  */
 #ifndef _fss_write_main_h
 #define _fss_write_main_h
@@ -38,8 +37,6 @@ extern "C" {
 /**
  * Perform the standard program setting load process for the "--as" parameter.
  *
- * This should be called before fss_write_setting_load() is called to ensure "--as" gets processed before "--help".
- *
  * This prints error messages as appropriate.
  *
  * If either main or setting is NULL, then this immediately retuns without doing anything.
index 54ae87c3e41f1439de1ce53487033fc4a784e510..781b4e0b45a66da00fb8dbb9b28713b6b47df441 100644 (file)
@@ -118,7 +118,7 @@ extern "C" {
 #endif // _fss_write_print_error_prepend_only_whitespace_
 
 /**
- * Print an message about a parameter New Line character '\n' (U+000A) being unsupported.
+ * Print an error message about a parameter New Line character '\n' (U+000A) being unsupported.
  *
  * @param setting
  *   The main program settings.
index 88e7991f0a7de73fc510c9b8ceb2c2551eee6748..86411d2bef34f8fd08b8da176ef08c6d0af970ca 100644 (file)
@@ -5,6 +5,8 @@ extern "C" {
 #endif
 
 #ifndef _di_fss_write_payload_strings_
+  const f_string_static_t fss_write_payload_s = macro_f_string_static_t_initialize(FSS_WRITE_payload_s, 0, FSS_WRITE_payload_s_length);
+
   const f_string_static_t fss_write_payload_standard_s = macro_f_string_static_t_initialize(FSS_WRITE_payload_standard_s, 0, FSS_WRITE_payload_standard_s_length);
 
   const f_string_static_t fss_write_payload_program_name_s = macro_f_string_static_t_initialize(FSS_WRITE_payload_program_name_s, 0, FSS_WRITE_payload_program_name_s_length);
@@ -15,6 +17,30 @@ extern "C" {
   const f_string_static_t fss_write_format_code_human_000e_s = macro_f_string_static_t_initialize(FSS_WRITE_format_code_human_000e_s, 0, FSS_WRITE_format_code_human_000e_s_length);
 #endif // _di_fss_write_payload_strings_
 
+#ifndef _di_fss_write_payload_setting_load_
+  void fss_write_payload_setting_load(const f_console_arguments_t arguments, fll_program_data_t * const main, fss_write_setting_t * const setting) {
+
+    if (!main || !setting) return;
+
+    f_array_lengths_t * const values = &main->parameters.array[fss_write_parameter_object_e].values;
+    f_string_static_t * const argv = main->parameters.arguments.array;
+
+    if ((main->parameters.array[fss_write_parameter_object_e].result & f_console_result_value_e) && values->used) {
+
+      for (f_array_length_t i = 0; i < values->used; ++i) {
+
+        if (fl_string_dynamic_compare(argv[values->array[i]], fss_write_payload_s) == F_equal_to && i + 1 < values->used) {
+          setting->status = F_status_set_error(F_parameter);
+
+          fss_write_payload_print_error_payload_not_last(setting, main->error);
+
+          return;
+        }
+      } // for
+    }
+  }
+#endif // _di_fss_write_payload_setting_load_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 46ded6740359f528c7815a78c400032239c53012..e3493f41e7ac834c4d6b6a1892914aef83b7ef6f 100644 (file)
@@ -20,6 +20,8 @@ extern "C" {
  * The FSS-000E (Payload) specific strings.
  */
 #ifndef _di_fss_write_payload_strings_
+  #define FSS_WRITE_payload_s "payload"
+
   #define FSS_WRITE_payload_standard_s "FSS-000E (Payload)"
 
   #define FSS_WRITE_payload_program_name_s      "fss_payload_write"
@@ -29,6 +31,8 @@ extern "C" {
   #define FSS_WRITE_format_code_long_000e_s  "fss-000e"
   #define FSS_WRITE_format_code_human_000e_s "payload"
 
+  #define FSS_WRITE_payload_s_length 7
+
   #define FSS_WRITE_payload_standard_s_length 18
 
   #define FSS_WRITE_payload_program_name_s_length      17
@@ -38,6 +42,8 @@ extern "C" {
   #define FSS_WRITE_format_code_long_000e_s_length  8
   #define FSS_WRITE_format_code_human_000e_s_length 7
 
+  extern const f_string_static_t fss_write_payload_s;
+
   extern const f_string_static_t fss_write_payload_standard_s;
 
   extern const f_string_static_t fss_write_payload_program_name_s;
@@ -48,6 +54,39 @@ extern "C" {
   extern const f_string_static_t fss_write_format_code_human_000e_s;
 #endif // _di_fss_write_payload_strings_
 
+/**
+ * Perform the payload-specific program setting load process.
+ *
+ * This prints error messages as appropriate.
+ *
+ * If either main or setting is NULL, then this immediately retuns without doing anything.
+ *
+ * @param arguments
+ *   The parameters passed to the process (often referred to as command line arguments).
+ * @param main
+ *   The main program data.
+ * @param setting
+ *   The main program settings.
+ *
+ *   This alters setting.process_help, setting.process_normal, and setting.process_pipe.
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_interrupt on (exit) signal received.
+ *
+ *     F_parameter (with error bit) if main is NULL or setting is NULL.
+ *     F_parameter (with error bit) on parameter error.
+ *
+ *   This alters setting.status:
+ *     F_none on success.
+ *     F_data_not on success but nothing was provided to operate with.
+ *
+ * @see fss_write_setting_load()
+ */
+#ifndef _di_fss_write_payload_setting_load_
+  extern void fss_write_payload_setting_load(const f_console_arguments_t arguments, fll_program_data_t * const main, fss_write_setting_t * const setting);
+#endif // _di_fss_write_payload_setting_load_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 9af12f868104e470fdf42b9691a7552aa646dccc..712af001dbbfcc82bde2bdd40fc0c3d0e397d394 100644 (file)
@@ -1,7 +1,7 @@
 #include "fss_write.h"
+#include "../main/fss_write.h"
 #include "private-common.h"
 #include "private-write.h"
-#include "../main/fss_write.h"
 
 #ifdef __cplusplus
 extern "C" {
index 90ce95761f3911914f78cc8b81946a54dd6bd28b..f956e52225d0266eed98a891fea8ea8971e15ca2 100644 (file)
 #include <fll/level_2/program.h>
 
 // FSS Write includes.
-#include <program/fss_write/payload/common.h>
 #include <program/fss_write/main/common.h>
-#include <program/fss_write/payload/print.h>
+#include <program/fss_write/payload/common.h>
 #include <program/fss_write/main/print.h>
+#include <program/fss_write/payload/print.h>
 
 #ifdef __cplusplus
 extern "C" {
index 6aea424b945a3b6b30c753ed5a9cd5fbbe4c0e07..430b4654ac3f1725c0b53818a7c22ad036b4c533 100644 (file)
@@ -1,4 +1,5 @@
 #include "fss_write.h"
+#include "../main/fss_write.h"
 
 int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
@@ -26,7 +27,7 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
   {
     const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(argc, argv, envp);
 
-    fss_write_setting_load(arguments, &data, &setting, 0);
+    fss_write_setting_load(arguments, &data, &setting, &fss_write_payload_setting_load);
   }
 
   fss_write_main(&data, &setting);
index 8aaec236e422e07f14b2eadaad3f0b53889cbb9d..60a2ea0bb9e3c478bbf781891b077d6028212bed 100644 (file)
@@ -5,6 +5,23 @@
 extern "C" {
 #endif
 
+#ifndef _di_fss_write_payload_print_error_payload_not_last_
+  f_status_t fss_write_payload_print_error_payload_not_last(fss_write_setting_t * const setting, const fl_print_t print) {
+
+    if (print.verbosity == f_console_verbosity_quiet_e) return F_output_not;
+
+    f_file_stream_lock(print.to);
+
+    fss_write_print_line_first_unlocked(setting, print);
+    fl_print_format("%[%QThe payload may only be specified last.%]%r", print.to, print.set->error, print.prefix, print.set->error, f_string_eol_s);
+    fss_write_print_line_last_unlocked(setting, print);
+
+    f_file_stream_unlock(print.to);
+
+    return F_none;
+  }
+#endif // _di_fss_write_payload_print_error_payload_not_last_
+
 #ifndef _di_fss_write_payload_print_help_
   f_status_t fss_write_payload_print_help(fss_write_setting_t * const setting, const fl_print_t print) {
 
index 99bfcee487dcccf338f65e5237891254a0c54698..c65bc54dbbfedaf9d6fb305fdd8bc90254668b0c 100644 (file)
@@ -13,6 +13,26 @@ extern "C" {
 #endif
 
 /**
+ * Print error message about the "payload" not being specified last (when it is specified at all).
+ *
+ * @param setting
+ *   The main program settings.
+ *
+ *   This does not alter setting.status.
+ * @param print
+ *   Designates the how and where to print.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ * @see fll_error_print()
+ */
+#ifndef _di_fss_write_payload_print_error_payload_not_last_
+  extern f_status_t fss_write_payload_print_error_payload_not_last(fss_write_setting_t * const setting, const fl_print_t print);
+#endif // _di_fss_write_payload_print_error_payload_not_last_
+
+/**
  * Print help for FSS-000E (Payload).
  *
  * @param setting
index 55ac97700e7c2f46c45feb11da317a101a81f453..1830cfc93e9ac1eaf89c335088fd1be63b6fa52a 100644 (file)
@@ -17,8 +17,20 @@ main:
 
 using_default:
   build settings
-  build settings.fss_write
+  build settings.main
+  #build settings.basic
+  #build settings.basic_list
+  #build settings.extended
+  #build settings.extended_list
+  #build settings.embedded_list
+  build settings.payload
 
 using_mode:
   build settings parameter:'mode:value'
-  build settings.fss_status_code parameter:'mode:value'
+  build settings.main parameter:'mode:value'
+  #build settings.basic parameter:'mode:value'
+  #build settings.basic_list parameter:'mode:value'
+  #build settings.extended parameter:'mode:value'
+  #build settings.extended_list parameter:'mode:value'
+  #build settings.embedded_list parameter:'mode:value'
+  build settings.payload parameter:'mode:value'
index 79e81d7341ce22eb3e6eb633ddad89df4c9dddc6..caf6ea1c41b8870b8559a89d993d1ff68ce53c13 100644 (file)
@@ -1,4 +1,7 @@
 # fss-0001
+#
+# Builds the main library of the project with all parts except "main" program related.
+#
 
 build_name fss_write
 
@@ -30,9 +33,7 @@ build_sources_library extended/fss_write.c extended/common.c extended/print.c ex
 build_sources_library extended_list/fss_write.c extended_list/common.c extended_list/print.c extended_list/private-common.c extended_list/private-write.c extended_list/private-print.c
 build_sources_library payload/fss_write.c payload/common.c payload/print.c payload/private-common.c payload/private-write.c payload/private-print.c
 
-build_sources_program main/main.c
-
-build_sources_headers main/main.h main/fss_write.h main/common.h main/print.h main/private-common.h main/private-write.h
+build_sources_headers main/fss_write.h main/common.h main/print.h main/private-common.h main/private-write.h
 build_sources_headers basic/fss_write.h basic/common.h basic/print.h basic/private-common.h basic/private-write.h basic/private-print.h
 build_sources_headers basic_list/fss_write.h basic_list/common.h basic_list/print.h basic_list/private-common.h basic_list/private-write.h basic_list/private-print.h
 build_sources_headers embedded_list/fss_write.h embedded_list/common.h embedded_list/print.h embedded_list/private-common.h embedded_list/private-write.h embedded_list/private-print.h
diff --git a/level_3/fss_write/data/build/settings.main b/level_3/fss_write/data/build/settings.main
new file mode 100644 (file)
index 0000000..632ef24
--- /dev/null
@@ -0,0 +1,58 @@
+# fss-0001
+#
+# Builds the "main" program (fss_write).
+# This must be called after the "setting".
+#
+
+build_name fss_write
+
+version_major 0
+version_minor 7
+version_micro 0
+version_file micro
+version_target minor
+
+modes individual level monolithic clang test
+modes_default monolithic
+
+build_compiler gcc
+build_compiler-clang clang
+build_indexer ar
+build_indexer_arguments rcs
+build_language c
+
+build_libraries -lc -lfss_write
+build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-level -lfll_2 -lfll_1 -lfll_0
+build_libraries-monolithic -lfll
+
+build_sources_program main/main.c main/main-print.c
+
+build_sources_headers main/main.h main/main-print.h
+
+build_script yes
+build_shared yes
+build_static no
+
+path_headers program/fss_write
+
+has_path_standard yes
+preserve_path_headers yes
+
+search_exclusive yes
+search_shared yes
+search_static yes
+
+environment PATH LD_LIBRARY_PATH
+
+#defines -D_di_libcap_ -D_di_thread_support_
+defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+
+flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-clang -Wno-logical-op-parentheses
+flags-test -O0 -fstack-protector -Wall
+flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
+
+flags_library -fPIC
+flags_object -fPIC
+flags_program -fPIE
diff --git a/level_3/fss_write/data/build/settings.payload b/level_3/fss_write/data/build/settings.payload
new file mode 100644 (file)
index 0000000..9b95dba
--- /dev/null
@@ -0,0 +1,56 @@
+# fss-0001
+#
+# Builds the "payload" program (fss_payload_write).
+# This must be called after the "setting".
+#
+
+build_name fss_payload_write
+
+version_major 0
+version_minor 7
+version_micro 0
+version_file micro
+version_target minor
+
+modes individual level monolithic clang test
+modes_default monolithic
+
+build_compiler gcc
+build_compiler-clang clang
+build_indexer ar
+build_indexer_arguments rcs
+build_language c
+
+build_libraries -lc -lfss_write
+build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf
+build_libraries-level -lfll_2 -lfll_1 -lfll_0
+build_libraries-monolithic -lfll
+
+build_sources_program payload/main.c
+
+build_script yes
+build_shared yes
+build_static no
+
+path_headers program/fss_write
+
+has_path_standard yes
+preserve_path_headers yes
+
+search_exclusive yes
+search_shared yes
+search_static yes
+
+environment PATH LD_LIBRARY_PATH
+
+#defines -D_di_libcap_ -D_di_thread_support_
+defines -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_
+
+flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses -Wno-missing-braces
+flags-clang -Wno-logical-op-parentheses
+flags-test -O0 -fstack-protector -Wall
+flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/
+
+flags_library -fPIC
+flags_object -fPIC
+flags_program -fPIE
index e0b3fa80b14681dacc4ea0a6ba19ada1ec981bca..a55f8d27f7a6e922500323c19669822c3e006282 100644 (file)
@@ -137,7 +137,7 @@ extern "C" {
 
     utf8_print_line_first_unlocked(setting, print);
 
-    fl_print_format("%[%QNo file specified at parameter index %]", print.to, print.set->error, print.prefix, print.set->error);
+    fl_print_format("%[%QNo file specified at parameter index%] ", print.to, print.set->error, print.prefix, print.set->error);
     fl_print_format("%[%ul%]", print.to, print.set->notable, index, print.set->notable);
     fl_print_format("%[.%]%r", print.to, print.set->error, print.set->error, f_string_eol_s);