This commit is contained in:
fatalerrors
2026-07-08 18:51:24 +02:00
parent 38038e0fa1
commit 970cd2ccf6

View File

@@ -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