mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-02-18 04:15:40 +00:00
Safer eval use / handle preset systems with spaces
This commit is contained in:
parent
e1de037035
commit
bec4b18bab
35
functions.sh
35
functions.sh
|
@ -348,7 +348,7 @@ set_setting_value() {
|
||||||
else
|
else
|
||||||
sed -i '\^\['"$current_section_name"'\]^,\^\^'"$setting_name_to_change"'=^s^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' $1
|
sed -i '\^\['"$current_section_name"'\]^,\^\^'"$setting_name_to_change"'=^s^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' $1
|
||||||
fi
|
fi
|
||||||
if [[ "$4" == "retrodeck" ]]; then # If a RetroDECK setting is being changed, also write it to memory for immediate use
|
if [[ "$4" == "retrodeck" && ("$current_section_name" == "" || "$current_section_name" == "paths" || "$current_section_name" == "options") ]]; then # If a RetroDECK setting is being changed, also write it to memory for immediate use
|
||||||
eval "$setting_name_to_change=$setting_value_to_change"
|
eval "$setting_name_to_change=$setting_value_to_change"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
@ -663,7 +663,7 @@ build_preset_config(){
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
done < <(eval cat "$presets_dir/$read_system_name"_presets.cfg)
|
done < <(cat "$presets_dir/$read_system_name"_presets.cfg)
|
||||||
fi
|
fi
|
||||||
done < <(printf '%s\n' "$preset_section")
|
done < <(printf '%s\n' "$preset_section")
|
||||||
done
|
done
|
||||||
|
@ -793,15 +793,15 @@ do
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"add_setting_line" )
|
"add_setting_line" )
|
||||||
eval add_setting_line $3 "$setting_name" $system_name $current_section
|
add_setting_line $3 "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"disable_setting" )
|
"disable_setting" )
|
||||||
eval disable_setting $3 "$setting_name" $system_name $current_section
|
disable_setting $3 "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_setting" )
|
"enable_setting" )
|
||||||
eval enable_setting $3 "$setting_name" $system_name $current_section
|
enable_setting $3 "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"change" )
|
"change" )
|
||||||
|
@ -835,23 +835,38 @@ do
|
||||||
case $action in
|
case $action in
|
||||||
|
|
||||||
"disable_file" )
|
"disable_file" )
|
||||||
eval disable_file "$config_file"
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
|
eval config_file="$config_file"
|
||||||
|
fi
|
||||||
|
disable_file "$config_file"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_file" )
|
"enable_file" )
|
||||||
eval enable_file "$config_file"
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
|
eval config_file="$config_file"
|
||||||
|
fi
|
||||||
|
enable_file "$config_file"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"add_setting_line" )
|
"add_setting_line" )
|
||||||
eval add_setting_line "$config_file" "$setting_name" $system_name $current_section
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
|
eval config_file="$config_file"
|
||||||
|
fi
|
||||||
|
add_setting_line "$config_file" "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"disable_setting" )
|
"disable_setting" )
|
||||||
eval disable_setting "$config_file" "$setting_name" $system_name $current_section
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
|
eval config_file="$config_file"
|
||||||
|
fi
|
||||||
|
disable_setting "$config_file" "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"enable_setting" )
|
"enable_setting" )
|
||||||
eval enable_setting "$config_file" "$setting_name" $system_name $current_section
|
if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
|
||||||
|
eval config_file="$config_file"
|
||||||
|
fi
|
||||||
|
enable_setting "$config_file" "$setting_name" $system_name $current_section
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"change" )
|
"change" )
|
||||||
|
|
Loading…
Reference in a new issue