read_stdin() {
     # Desc: Consumes stdin; outputs as stdout lines
     # Input: stdin (consumes)
-    # Output: stdout (newline delimited)
+    # Output: stdout  (newline delimited)
+    #         return  0  stdin read
+    #         return  1  stdin not present
     # Example: printf "foo\nbar\n" | read_stdin
-    # Depends: GNU bash (version 5.1.16)
-    # Version: 0.0.1
+    # Depends: GNU bash (version 5.1.16), GNU Coreutils 8.32 (cat)
+    # Version: 0.1.1
+    # Attrib: Steven Baltakatei Sandoval (2024-01-29). reboil.com
     local input_stdin output;
 
     # Store stdin
     if [[ -p /dev/stdin ]]; then
-        input_stdin="$(cat -)";
+        input_stdin="$(cat -)" || {
+            echo "FATAL:Error reading stdin." 1>&2; return 1; };
+    else
+        return 1;
     fi; 
     
     # Store as output array elements
     if [[ -n $input_stdin ]]; then
         while read -r line; do
             output+=("$line");
-        done < <(printf "%s\n" "$input_stdin");
+        done < <(printf "%s\n" "$input_stdin") || {
+            echo "FATAL:Error parsing stdin."; return 1; };
     fi;
 
     # Print to stdout
     printf "%s\n" "${output[@]}";
+
+    return 0;
 }; # read stdin to stdout lines
-main() {
-    read_stdin "$@";
-};
 
-main "$@";
+yell "WARNING:This is a Bash function definition for read_stdin.";