Fix quoting of semicolon and pipe

This commit is contained in:
James Ravn
2015-05-10 00:39:05 +01:00
parent 4917a4f558
commit bdf6096808
2 changed files with 11 additions and 8 deletions

View File

@@ -158,7 +158,7 @@ _print_path() {
# Execute a command with expanded args, e.g. Delete files 6 to 12: $ ge rm 6-12
# Fails if command is a number or range (probably not worth fixing)
exec_scmb_expand_args() {
eval "$(scmb_expand_args "$@" | sed -e "s/\([][()<>^ \"']\)/"'\\\1/g')"
eval "$(scmb_expand_args "$@" | sed -e "s/\([][|;()<>^ \"']\)/"'\\\1/g')"
}
# Clear numbered env variables

View File

@@ -60,6 +60,10 @@ test_scmb_expand_args() {
"$(scmb_expand_args -ma "Test Commit Message" "Unquoted")"
}
test_command_wrapping_escapes_special_characters() {
assertEquals 'should escape | the pipe' "$(exec_scmb_expand_args echo "should escape | the pipe")"
assertEquals 'should escape ; the semicolon' "$(exec_scmb_expand_args echo "should escape ; the semicolon")"
}
test_git_status_shortcuts() {
setupTestRepo
@@ -312,4 +316,3 @@ test_adding_files_with_spaces() {
# load and run shUnit2
source "$scmbDir/test/support/shunit2"