fix bug reading file
[tee-unique] / appendu-function
index a0fdc5d6e0c1b5b73e25a1dc3d87d4766b655626..00b4cf365c18c99e4ec4b24b9d95092d608cd39b 100644 (file)
@@ -47,6 +47,17 @@ LINE_SETs are treated the same.
             return 1
         fi
     fi
+
+    local strings line
+    if (( $# == 0 )); then
+        unset IFS
+        while read -r line; do
+            strings+=( "$line" )
+        done
+    else
+        strings=( "$@" )
+    fi
+
     if ! $new_file; then
         if [[ ! -r $file ]]; then
             echo "appendu error: cannot read or write $file"
@@ -56,19 +67,6 @@ LINE_SETs are treated the same.
             echo "appendu error: cannot read or write $file"
             return 1
         fi            
-    fi
-
-    local strings
-    if (( $# == 0 )); then
-        unset IFS
-        while read -r x; do
-            strings+=( "$x" )
-        done
-    else
-        strings=( "$@" )
-    fi
-
-    if $new_file; then
         # fix files with no newline at the end.
         # the following command won't work right on them otherwise.
         # e = run script, $a\ means append following text, but there is none,
@@ -77,7 +75,8 @@ LINE_SETs are treated the same.
         sed -ie '$a\' "$file"
         # command substitution removes any trailing newlines, so we have to add
         # a non-newline ending, we randomly chose "b", then remove it.
-        local content=$(cat "$file"; echo b) content=${content%b}
+        local content=$(cat "$file"; echo b)
+        content=${content%b}
     fi
     
     # we aren't using regex because we want to match strings,