From ceaa7da2a037323e0038cd1cc338bca3d8c2a60a Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 5 Oct 2024 04:18:01 +0500 Subject: [PATCH] Update PW_DESKTOP_FILES_REGEX --- data_from_portwine/scripts/functions_helper | 21 ++++-------- data_from_portwine/scripts/start.sh | 37 ++++++++------------- 2 files changed, 20 insertions(+), 38 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 08ec756..2e5838b 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -5851,21 +5851,12 @@ button_click () { --desktop) kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1 PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }" - if [[ $PW_DESKTOP_FILES_REGEX == "1" ]] ; then - PW_YAD_SET="${PW_YAD_SET//#+_1#/\(}" - PW_YAD_SET="${PW_YAD_SET//#+_2#/\)}" - PW_YAD_SET="${PW_YAD_SET//#+_3#/\!}" - PW_YAD_SET="${PW_YAD_SET//#+_4#/\$}" - PW_YAD_SET="${PW_YAD_SET//#+_5#/\%}" - PW_YAD_SET="${PW_YAD_SET//#+_6#/\&}" - PW_YAD_SET="${PW_YAD_SET//#+_7#/\`}" - PW_YAD_SET="${PW_YAD_SET//#+_8#/\'}" - PW_YAD_SET="${PW_YAD_SET//#+_9#/\"}" - PW_YAD_SET="${PW_YAD_SET//#+_10#/\>}" - PW_YAD_SET="${PW_YAD_SET//#+_11#/\<}" - PW_YAD_SET="${PW_YAD_SET//#+_12#/\\}" - PW_YAD_SET="${PW_YAD_SET//#+_13#/\|}" - PW_YAD_SET="${PW_YAD_SET//#+_14#/\;}" + if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then + count=1 + for y in ${PW_DESKTOP_FILES_REGEX[@]} ; do + PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}" + (( count++ )) + done fi if check_flatpak then PW_EXEC_FROM_DESKTOP="$(grep Exec "$PW_YAD_SET" | head -n 1 | sed 's|flatpak run ru.linux_gaming.PortProton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 67b83d9..12c102b 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -639,30 +639,21 @@ else resize_png "${PW_NAME_D_ICON_NEW}" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48" resize_png "${PW_NAME_D_ICON_NEW}" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128" fi - if [[ $PW_DESKTOP_FILES =~ [\(\)\!\$\%\&\`\'\"\>\<\\\|\;] ]] ; then - export PW_DESKTOP_FILES_REGEX="1" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES//\!/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\%/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\$/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\&/}" - PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\/#+_10#}" - PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\\<\\\|\;] ]] ; then + PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<) + PW_DESKTOP_FILES_REGEX=(\( \) \! \$ % \& \` \' \" \> \< \\ \| \;) + + for i in ${PW_DESKTOP_FILES_SHOW_REGEX[@]} ; do + PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}" + done + + count=1 + for j in ${PW_DESKTOP_FILES_REGEX[@]} ; do + PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}" + (( count++ )) + done fi PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%" done