diff options
author | davidovski <david@davidovski.xyz> | 2022-06-05 14:09:43 +0100 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2022-06-05 14:09:43 +0100 |
commit | e6a5137690fb94f6379499f76a4a07811922a379 (patch) | |
tree | 65b3af0817c47df20caa4933a8d7e863e984c31c | |
parent | 830bb145b0e32737a49027b86267557598910446 (diff) |
fixed comments not working when preceeded by whitespacev1.5.1
-rwxr-xr-x | Makefile | 2 | ||||
-rw-r--r-- | src/parseconf.sh | 6 | ||||
-rwxr-xr-x | test/parseconf.sh | 14 |
3 files changed, 19 insertions, 3 deletions
@@ -7,7 +7,7 @@ DIST=dist .DEFAULT_GOAL := build -install: install-hbar install-colors install-parseconf install-shtests install-glyphs install-xitui install-xilib +install: build install-hbar install-colors install-parseconf install-shtests install-glyphs install-xitui install-xilib check: check-parseconf build: make-dist hbar shtests parseconf colors diff --git a/src/parseconf.sh b/src/parseconf.sh index abc6b36..d215a99 100644 --- a/src/parseconf.sh +++ b/src/parseconf.sh @@ -16,12 +16,14 @@ EOF # parse a single config file line # parse_line() { - [ $# = "0" ] && return + [ "$#" = 0 ] && return local line="$@" local key=$1 + shift local value="$@" + value=${value%#*} case $key in "include") @@ -108,6 +110,6 @@ $print_keys && pattern="s/^$pattern:(.+)/\1/p;${count}" # strip whitespace -sed "s/^#.*$\|\s(\s\+)\|^\s\|\s^\|;*$//g" $CONF_FILE | +sed "s/^\s*#.*$\|\s(\s\+)\|^\s\|\s^\|;*$//g" $CONF_FILE | parse $@ | sed -rn $pattern diff --git a/test/parseconf.sh b/test/parseconf.sh index ab28721..1cd668f 100755 --- a/test/parseconf.sh +++ b/test/parseconf.sh @@ -50,6 +50,20 @@ key4 value4 [ "$retval" = "key2:value2" ] } +test_comments_parsing() { + config=" +#key1 value1 + #key2 value2 +# this is a comment +#key4 value4 +dict { + #nothing here +} + " + retval=$(printf "$config" | ${PARSECONF} ) + [ "x$retval" = "x" ] +} + test_list_parsing() { config=" |