]> Kevux Git Server - fll/commitdiff
Bugfix: bash/linux does not support setting high bits on return codes
authorKevin Day <thekevinday@gmail.com>
Fri, 26 Jul 2019 01:49:29 +0000 (20:49 -0500)
committerKevin Day <thekevinday@gmail.com>
Fri, 26 Jul 2019 01:49:29 +0000 (20:49 -0500)
These bits are generally reserved for process-specific behavior.
Explicitly return 0 for success and 1 for failure.
The firewall program already does this.

The return codes from the main functions of each project will continue to utilize all of the bits as designed.
This will allow for projects that link to the library to get the actual return codes while simultaneously being compatible with Linux and Bash.

Later versions may provide alternative ways to get the error code from within the shell.
For example, if a specific return code environment variable is set, then the program could populate that environment variable on exit (clearing it on start).

level_3/fss_basic_list_read/c/main.c
level_3/fss_basic_list_write/c/main.c
level_3/fss_basic_read/c/main.c
level_3/fss_basic_write/c/main.c
level_3/fss_extended_read/c/main.c
level_3/fss_extended_write/c/main.c
level_3/fss_return_code/c/main.c
level_3/return_code/c/main.c

index 0339ab0fc69e1b9ac331f8e158a06224edeb252e..9b2cc1c8bbafb266988b26aa18994c4d6742e6e8 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_basic_list_read_main(argc, argv, &data);
+  if (f_error_is_error(fss_basic_list_read_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index e83c8e4b9b7cc9e0077d954e7f81174c67359cf4..88d1dc41c9db5b254d6a9200462f913a2427f236 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_basic_list_write_main(argc, argv, &data);
+  if (f_error_is_error(fss_basic_list_write_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index a7df3e9df78a4ac908eaee6c43fe3cc45bd60f86..245e51fb44fe5d6d671fbd125bf4bd0324b0369a 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_basic_read_main(argc, argv, &data);
+  if (f_error_is_error(fss_basic_read_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index 842b6045a9ff37ea768d07cb0a50a5661ba79109..1b0d77c3e023e41a3bf23a0eb5da66fbff0d1c8e 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_basic_write_main(argc, argv, &data);
+  if (f_error_is_error(fss_basic_write_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index 0d69a85156f513ad2e4b580e05c470e7fde8e703..51420d1263f7b0e2d191ebc94ad8fa560f16a5c5 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_extended_read_main(argc, argv, &data);
+  if (f_error_is_error(fss_extended_read_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index d92971956ee8d95ddc1f9c2771435c94208b1efe..e2090513efe2af15ba8e6b48ebbec86e5728fe1f 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_extended_write_main(argc, argv, &data);
+  if (f_error_is_error(fss_extended_write_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index 266212fc3694d737952c47ff422acae6fc3fb43c..2291ea53f2030b6308bf91daef84e9f2e3cb4d4b 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return fss_return_code_main(argc, argv, &data);
+  if (f_error_is_error(fss_return_code_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }
index 2476a69d91872d8bf8d739960c014541af832e4d..13218b87352710b16c5482da5bc26a498f1b8995 100644 (file)
@@ -7,5 +7,9 @@ int main(const f_array_length argc, const f_string argv[]) {
     data.process_pipe = f_true;
   }
 
-  return return_code_main(argc, argv, &data);
+  if (f_error_is_error(return_code_main(argc, argv, &data))) {
+    return 1;
+  }
+
+  return 0;
 }