Index: third_party/xdg-utils/scripts/xdg-desktop-icon |
=================================================================== |
--- third_party/xdg-utils/scripts/xdg-desktop-icon (revision 57942) |
+++ third_party/xdg-utils/scripts/xdg-desktop-icon (working copy) |
@@ -301,7 +301,7 @@ |
} |
#------------------------------------------------------------ |
-# Exit script on insufficient permission to read a specified file |
+# Exit script on insufficient permission to write a specified file |
exit_failure_file_permission_write() |
{ |
@@ -378,7 +378,7 @@ |
;; |
--version) |
- echo "xdg-desktop-icon 1.0.1" |
+ echo "xdg-desktop-icon 1.0.2" |
exit_success |
;; |
esac |
@@ -404,7 +404,8 @@ |
{ |
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; |
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; |
- elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; |
+ elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome; |
+ elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; |
fi |
} |
@@ -425,7 +426,7 @@ |
return 0 |
} |
-[ x"$1" != x"" ] || exit_failure_syntax |
+[ x"$1" != x"" ] || exit_failure_syntax |
action= |
desktop_file= |
@@ -482,7 +483,7 @@ |
fi |
filetype= |
-case $desktop_file in |
+case "$desktop_file" in |
*.desktop) |
filetype=desktop |
if [ "$vendor" = "true" -a "$action" = "install" ] ; then |
@@ -495,52 +496,56 @@ |
esac |
my_umask=077 |
-desktop_dir="$HOME/Desktop" |
+if xdg-user-dir 2>/dev/null 1>&2; then |
+ desktop_dir=`xdg-user-dir DESKTOP` |
+fi |
desktop_dir_kde=`kde${KDE_SESSION_VERSION}-config --userpath desktop 2> /dev/null` |
if gconftool-2 -g /apps/nautilus/preferences/desktop_is_home_dir 2> /dev/null | grep true > /dev/null; then |
desktop_dir_gnome="$HOME" |
# Don't create $HOME/Desktop if it doesn't exist |
- [ -w $desktop_dir ] || desktop_dir= |
+ [ -w "$desktop_dir" ] || desktop_dir= |
fi |
if [ -n "$desktop_dir_kde" ]; then |
if [ ! -d "$desktop_dir_kde" ]; then |
save_umask=`umask` |
umask $my_umask |
- mkdir -p $desktop_dir_kde |
+ mkdir -p "$desktop_dir_kde" |
umask $save_umask |
fi |
# Is the KDE desktop dir != $HOME/Desktop ? |
if [ x`readlink -f "$desktop_dir"` != x`readlink -f "$desktop_dir_kde"` ]; then |
# If so, don't create $HOME/Desktop if it doesn't exist |
- [ -w $desktop_dir ] || desktop_dir= |
+ [ -w "$desktop_dir" ] || desktop_dir= |
else |
desktop_dir_kde= |
fi |
fi |
-desktop_dir="$desktop_dir $desktop_dir_kde $desktop_dir_gnome" |
basefile=`basename "$desktop_file"` |
-DEBUG 1 "$action $desktop_file in $desktop_dir" |
+DEBUG 1 "$action $desktop_file in $desktop_dir $desktop_dir_kde $desktop_dir_gnome" |
case $action in |
install) |
save_umask=`umask` |
umask $my_umask |
- for x in $desktop_dir ; do |
- mkdir -p $x |
- eval 'cp $desktop_file $x/$basefile'$xdg_redirect_output |
+ for x in "$desktop_dir" "$desktop_dir_kde" "$desktop_dir_gnome" ; do |
+ if [ -n "$x" ]; then |
+ mkdir -p "$x" |
+ eval 'cp "$desktop_file" "$x/$basefile"'$xdg_redirect_output |
+ fi |
done |
umask $save_umask |
;; |
uninstall) |
- for x in $desktop_dir ; do |
- rm -f $x/$basefile |
+ for x in "$desktop_dir" "$desktop_dir_kde" "$desktop_dir_gnome" ; do |
+ if [ -n "$x" ]; then |
+ rm -f "$x/$basefile" |
+ fi |
done |
- |
;; |
esac |