Commit f757f601 authored by Seyediman Seyedarab's avatar Seyediman Seyedarab Committed by Masahiro Yamada
Browse files

kbuild: fix argument parsing in scripts/config



The script previously assumed --file was always the first argument,
which caused issues when it appeared later. This patch updates the
parsing logic to scan all arguments to find --file, sets the config
file correctly, and resets the argument list with the remaining
commands.

It also fixes --refresh to respect --file by passing KCONFIG_CONFIG=$FN
to make oldconfig.

Signed-off-by: default avatarSeyediman Seyedarab <imandevel@gmail.com>
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 82c09de2
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ commands:
                             Disable option directly after other option
	--module-after|-M beforeopt option
                             Turn option into module directly after other option
	--refresh            Refresh the config using old settings

	commands can be repeated multiple times

@@ -124,16 +125,22 @@ undef_var() {
	txt_delete "^# $name is not set" "$FN"
}

FN=.config
CMDS=()
while [[ $# -gt 0 ]]; do
	if [ "$1" = "--file" ]; then
	FN="$2"
	if [ "$FN" = "" ] ; then
		if [ "$2" = "" ]; then
			usage
		fi
		FN="$2"
		shift 2
	else
	FN=.config
		CMDS+=("$1")
		shift
	fi
done

set -- "${CMDS[@]}"
if [ "$1" = "" ] ; then
	usage
fi
@@ -217,9 +224,8 @@ while [ "$1" != "" ] ; do
		set_var "${CONFIG_}$B" "${CONFIG_}$B=m" "${CONFIG_}$A"
		;;

	# undocumented because it ignores --file (fixme)
	--refresh)
		yes "" | make oldconfig
		yes "" | make oldconfig KCONFIG_CONFIG=$FN
		;;

	*)