From 427fef92fe104eb4e3fd26342d0b2e6c753a1d55 Mon Sep 17 00:00:00 2001 From: Ken Neighbors Date: Fri, 19 Sep 2014 09:29:49 -0700 Subject: xdg-settings: convert multi-group desktop file to XFCE WebBrowser helper file When generating an XFCE helper file for the default WebBrowser, the XFCE keys cannot always simply be appended to the end of the file, but must be placed in the first group under "[Desktop Entry]". (A desktop file can contain additional group headers, such as "X-Ayatana-Desktop-Shortcuts" groups.) --- scripts/xdg-settings.in | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/xdg-settings.in b/scripts/xdg-settings.in index eaed991..460ffc9 100644 --- a/scripts/xdg-settings.in +++ b/scripts/xdg-settings.in @@ -407,13 +407,15 @@ check_xfce_desktop_file() # Found a file to convert. target="${XDG_DATA_HOME:-$HOME/.local/share}/xfce4/helpers" mkdir -p "$target" - grep -v "^Type=" "$file" > "$target/$1" - echo "Type=X-XFCE-Helper" >> "$target/$1" + # Copy file up to first "Exec=" line. + sed -e 's/^Type=.*/Type=X-XFCE-Helper/' -e '/^Exec[=[]/,$d' "$file" > "$target/$1" echo "X-XFCE-Category=WebBrowser" >> "$target/$1" # Change %F, %f, %U, and %u to "%s". - command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | sed -e 's/%[FfUu]/"%s"/g'`" + command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | sed -e 's/%[FfUu]/"%s"/g' | head -1`" echo "X-XFCE-Commands=`echo "$command" | first_word`" >> "$target/$1" echo "X-XFCE-CommandsWithParameter=$command" >> "$target/$1" + # Copy rest of file (from first "Exec=" line to end-of-file). + sed -n -e 's/^Type=.*/Type=X-XFCE-Helper/' -e '/^Exec[=[]/,$p' "$file" >> "$target/$1" return fi done -- 2.1.0