Skip to content

Commit dd07a4d

Browse files
committed
common-utils.sh: Fix _json_escape function for OSX sed | Resolve #162
1 parent 5295b76 commit dd07a4d

File tree

3 files changed

+24
-30
lines changed

3 files changed

+24
-30
lines changed

sh/common-utils.sh

+8-10
Original file line numberDiff line numberDiff line change
@@ -183,19 +183,17 @@ _json_escape() {
183183
# just for refrence "s|'|\'|g"
184184
if [ "${mode_json_escape}" = "j" ]; then
185185
output_json_escape="$(printf "%s" "${input_json_escape}" | sed \
186-
-e "s|'\'|'\\'|g" \
187-
-e "s|'/'|'\/'|g" \
186+
-e "s|\\\|\\\\\\\|g" \
187+
-e "s|\/|\\\/|g" \
188188
-e 's/\"/\\\"/g' \
189-
-e ':a; $!N' \
190-
-e 's|\t|\\t|g' \
191-
-e 's|\r|\\r|g' \
192-
-e 's|\f|\\f|g')"
189+
-e "s/$(printf '\t')/\\t/g" \
190+
-e "s/$(printf '\r')/\\r/g" \
191+
-e "s/$(printf '\f')/\\f/g")"
193192
else
194193
output_json_escape="$(printf "%s" "${input_json_escape}" | sed \
195-
-e ':a; $!N' \
196-
-e 's|\t|\\t|g' \
197-
-e 's|\r|\\r|g' \
198-
-e 's|\f|\\f|g')"
194+
-e "s/$(printf '\t')/\\t/g" \
195+
-e "s/$(printf '\r')/\\r/g" \
196+
-e "s/$(printf '\f')/\\f/g")"
199197
fi
200198
# use awk because sed just messes up with newlines
201199
output_json_escape="$(printf "%s" "${output_json_escape}" | awk '{printf "%s%s",sep,$0; sep="\\n"} END{print ""}')"

sh/release/gsync

+8-10
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,17 @@ _json_escape() {
184184
# just for refrence "s|'|\'|g"
185185
if [ "${mode_json_escape}" = "j" ]; then
186186
output_json_escape="$(printf "%s" "${input_json_escape}" | sed \
187-
-e "s|'\'|'\\'|g" \
188-
-e "s|'/'|'\/'|g" \
187+
-e "s|\\\|\\\\\\\|g" \
188+
-e "s|\/|\\\/|g" \
189189
-e 's/\"/\\\"/g' \
190-
-e ':a; $!N' \
191-
-e 's|\t|\\t|g' \
192-
-e 's|\r|\\r|g' \
193-
-e 's|\f|\\f|g')"
190+
-e "s/$(printf '\t')/\\t/g" \
191+
-e "s/$(printf '\r')/\\r/g" \
192+
-e "s/$(printf '\f')/\\f/g")"
194193
else
195194
output_json_escape="$(printf "%s" "${input_json_escape}" | sed \
196-
-e ':a; $!N' \
197-
-e 's|\t|\\t|g' \
198-
-e 's|\r|\\r|g' \
199-
-e 's|\f|\\f|g')"
195+
-e "s/$(printf '\t')/\\t/g" \
196+
-e "s/$(printf '\r')/\\r/g" \
197+
-e "s/$(printf '\f')/\\f/g")"
200198
fi
201199
# use awk because sed just messes up with newlines
202200
output_json_escape="$(printf "%s" "${output_json_escape}" | awk '{printf "%s%s",sep,$0; sep="\\n"} END{print ""}')"

sh/release/gupload

+8-10
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,17 @@ _json_escape() {
184184
# just for refrence "s|'|\'|g"
185185
if [ "${mode_json_escape}" = "j" ]; then
186186
output_json_escape="$(printf "%s" "${input_json_escape}" | sed \
187-
-e "s|'\'|'\\'|g" \
188-
-e "s|'/'|'\/'|g" \
187+
-e "s|\\\|\\\\\\\|g" \
188+
-e "s|\/|\\\/|g" \
189189
-e 's/\"/\\\"/g' \
190-
-e ':a; $!N' \
191-
-e 's|\t|\\t|g' \
192-
-e 's|\r|\\r|g' \
193-
-e 's|\f|\\f|g')"
190+
-e "s/$(printf '\t')/\\t/g" \
191+
-e "s/$(printf '\r')/\\r/g" \
192+
-e "s/$(printf '\f')/\\f/g")"
194193
else
195194
output_json_escape="$(printf "%s" "${input_json_escape}" | sed \
196-
-e ':a; $!N' \
197-
-e 's|\t|\\t|g' \
198-
-e 's|\r|\\r|g' \
199-
-e 's|\f|\\f|g')"
195+
-e "s/$(printf '\t')/\\t/g" \
196+
-e "s/$(printf '\r')/\\r/g" \
197+
-e "s/$(printf '\f')/\\f/g")"
200198
fi
201199
# use awk because sed just messes up with newlines
202200
output_json_escape="$(printf "%s" "${output_json_escape}" | awk '{printf "%s%s",sep,$0; sep="\\n"} END{print ""}')"

0 commit comments

Comments
 (0)