bugfix
This commit is contained in:
@@ -53,7 +53,7 @@ conf_save()
|
|||||||
|
|
||||||
local section="$1" key="$2" value="$3"
|
local section="$1" key="$2" value="$3"
|
||||||
|
|
||||||
if ! [[ "$section" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
|
if ! [[ "$section" =~ ^[a-zA-Z0-9_]+$ ]]; then
|
||||||
disp E "conf_save: invalid section name '${section}' (alphanumeric and underscore only)."
|
disp E "conf_save: invalid section name '${section}' (alphanumeric and underscore only)."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -87,8 +87,12 @@ conf_save()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local tmp_file="${conf_file}.tmp.$$"
|
local tmp_file="${conf_file}.tmp.$$"
|
||||||
awk -v sec="$section" -v key="$key" -v val="$value" '
|
# The value is passed via ENVIRON (not awk -v) so backslashes are preserved
|
||||||
|
# verbatim; awk -v would interpret C escape sequences (\t, \n, \e, ...).
|
||||||
|
_CONF_SAVE_VAL="$value" \
|
||||||
|
awk -v sec="$section" -v key="$key" '
|
||||||
BEGIN {
|
BEGIN {
|
||||||
|
val = ENVIRON["_CONF_SAVE_VAL"]
|
||||||
in_sec = 0
|
in_sec = 0
|
||||||
saw_sec = 0
|
saw_sec = 0
|
||||||
wrote = 0
|
wrote = 0
|
||||||
@@ -203,6 +207,10 @@ conf_dump()
|
|||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
disp E "Invalid option, use \"conf_dump --help\" to display options list"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user