diff --git a/todo.sh b/todo.sh index 430e295..684e577 100755 --- a/todo.sh +++ b/todo.sh @@ -259,8 +259,13 @@ cleaninput() # Replace newlines with spaces Always input=`echo $input | tr -d '\r|\n'` + # Storing regexp in variable fixes quoting difference between + # bash v3.1.x and v3.2.x see: + # http://stackoverflow.com/questions/218156/bash-regex-with-quotes + action_regexp='^(append|app|prepend|prep|replace)$' + # Check which action we are being used in as this affects what cleaning we do - if [[ $action =~ '^(append|app|prepend|prep|replace)$' ]]; then + if [[ $action =~ $action_regexp ]]; then # These actions use sed and & as the matched string so escape it input=`echo $input | sed 's/\&/\\\&/g'` fi