fix bug wrong sed arguments
[tee-unique] / appendu
diff --git a/appendu b/appendu
index 1e3d583c550e9f084da2cfe8df9be78fae1ed332..460e363fd0223ad88718581cb7d3630da84fef58 100755 (executable)
--- a/appendu
+++ b/appendu
@@ -72,12 +72,16 @@ LINE_SETs are treated the same.
         # e = run script, $a\ means append following text, but there is none,
         # so sed only does what it always does when it was supposed to modify a file,
         # which is append a newline if there was none.
-        sed -ie '$a\' "$file"
+        sed -i '$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
     
+    local reset_extglob=false
+    ! shopt extglob >/dev/null && reset_extglob=true
+    shopt -s extglob
     # we aren't using regex because we want to match strings,
     # but we also want our match to start at the beginning of a line,
     # or the beginning of the file, and to end at a line ending.
@@ -96,6 +100,7 @@ LINE_SETs are treated the same.
             fi
         fi
     done
+    $reset_extglob && shopt -u extglob 
     return 0
 }
 appendu "$@"