From cba3556da8028ad3c06f83769b1690f1ad03d496 Mon Sep 17 00:00:00 2001 From: tpoindex Date: Wed, 11 Sep 2019 20:17:45 -0600 Subject: [PATCH] fix comma quoting in tup/tupx by quoting all commas --- src/fun.sh | 4 ++-- test/tup_test.sh | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/fun.sh b/src/fun.sh index ba7b33b..c8c4420 100755 --- a/src/fun.sh +++ b/src/fun.sh @@ -262,7 +262,7 @@ tup() { read arg tup $arg else - list "$@" | map lambda x . 'echo ${x/,/u002c}' | join , '(' ')' + list "$@" | map lambda x . 'echo ${x//,/u002c}' | join , '(' ')' fi } @@ -274,7 +274,7 @@ tupx() { else local n=$1 shift - echo "$@" | stripl '(' | stripr ')' | cut -d',' -f${n} | tr ',' '\n' | map lambda x . 'echo ${x/u002c/,}' + echo "$@" | stripl '(' | stripr ')' | cut -d',' -f${n} | tr ',' '\n' | map lambda x . 'echo ${x//u002c/,}' fi } diff --git a/test/tup_test.sh b/test/tup_test.sh index bdd5ac1..78cdeb8 100755 --- a/test/tup_test.sh +++ b/test/tup_test.sh @@ -9,6 +9,7 @@ testTupIfOneElement() { assertEquals '(")' $(tup '"') assertEquals "(')" $(tup "'") assertEquals "(u002c)" $(tup ",") + assertEquals "(u002cu002c)" $(tup ",,") assertEquals "(()" $(tup "(") assertEquals "())" $(tup ")") } @@ -38,6 +39,7 @@ testTupxIfZeroIndex() { testTupxIfSpecialChars() { assertEquals ',' "$(tup ',' | tupx 1)" + assertEquals ',,' "$(tup ',,' | tupx 1)" assertEquals '(' "$(tup '(' | tupx 1)" assertEquals ')' "$(tup ')' | tupx 1)" assertEquals '()' "$(tup '()' | tupx 1)" @@ -45,6 +47,7 @@ testTupxIfSpecialChars() { assertEquals '(' "$(tup '(' '(' | tupx 1)" assertEquals ')' "$(tup ')' ')' | tupx 1)" assertEquals ',' "$(tup 'u002c' | tupx 1)" + assertEquals ',,' "$(tup 'u002cu002c' | tupx 1)" } testTupxRange() { @@ -66,4 +69,4 @@ testTupr() { assertEquals '5' "$(tup 5 | tupr)" } -. ./shunit2-init.sh \ No newline at end of file +. ./shunit2-init.sh