Procházet zdrojové kódy

qubes.GetImageRGBA: bugfixes

- when icon is not found in hicolor theme, search for in in other themes
- added -follow to find
Wojciech Zygmunt Porczyk před 10 roky
rodič
revize
27632a0b3b
1 změnil soubory, kde provedl 14 přidání a 6 odebrání
  1. 14 6
      qubes-rpc/qubes.GetImageRGBA

+ 14 - 6
qubes-rpc/qubes.GetImageRGBA

@@ -3,12 +3,18 @@ read filename
 
 if [[ "${filename}" = xdgicon:* ]]; then
     # get biggest icon from hicolor theme
-    candidate=$(find /usr/share/icons/hicolor -type f -name "${filename#*:}.png" | xargs ls --sort=size | head -1)
 
-    if [[ ! "$(basename "${candidate}")" = "${filename#*:}.png" ]]; then
-        # file not found, ls returned garbage
-        exit 1
-    fi
+    filename="${filename#*:}.png"
+    candidate=
+    for dir in /usr/share/icons/{hicolor/,}; do
+        candidate=$(find -L "${dir}" -type f -name "${filename}")
+        if [[ -n "${candidate}" ]]; then
+            candidate=$(echo "${candidate}" | xargs ls --sort=size | head -1)
+            break
+        fi
+    done
+
+    [[ -n "${candidate}" ]]
     filename="${candidate}"
 
 elif [[ "${filename}" = "-" ]] || [[ "${filename}" = *":-" ]]; then
@@ -23,7 +29,9 @@ elif ! [[ -r "${filename}" ]]; then
     exit 1
 fi
 
-identify -format '%w %h' "$filename"
+# identify in F18 (6.7) adds implicit '\n' to format,
+# whereas identify in F20 (6.8) does not
+identify -format '%w %h\n' "$filename" | sed -e '/^$/d'
 convert -depth 8 "$filename" rgba:-
 
 [[ -n "${tmpfile}" ]] && rm -f ${tmpfile} || true