On 02/24/2010 01:16 PM, Pacho Ramos wrote:
> El mar, 23-02-2010 a las 20:26 -0500, Jonathan Callen escribió:
>> Attached is a patch to properly comply with the part of the FDO Desktop
>> Menu Specification pertaining to Categories (namely, always ensuring
>> that the list ends in a ";") and the part of the FDO Desktop Entry
>> Specification and Icon Theme Specification pertaining to icons (namely,
>> that non-absolute paths MUST NOT have an extension).
> 
> Would be nice if you would have time to look at the following old
> make_desktop_entry bug:
> http://bugs.gentoo.org/show_bug.cgi?id=191000
> 
> Thanks a lot :-D

I edited the patch to include a fix for but 191000 as well.  See attached.
--- eutils.eclass
+++ eutils.eclass.new
@@ -961,6 +961,7 @@ make_desktop_entry() {
                                        news)   type=News;;
                                        nntp)   type=News;;
                                        p2p)    type=FileTransfer;;
+                                       voip)   type=Telephony;;
                                        *)              type=;;
                                esac
                                type="Network;${type}"
@@ -979,7 +980,7 @@ make_desktop_entry() {
                                        visual*) type=DataVisualization;;
                                        *)               type=;;
                                esac
-                               type="Science;${type}"
+                               type="Education;Science;${type}"
                                ;;
 
                        sys)
@@ -991,7 +992,7 @@ make_desktop_entry() {
                                        client) type=WebBrowser;;
                                        *)              type=;;
                                esac
-                               type="Network"
+                               type="Network;${type}"
                                ;;
 
                        *)
@@ -1007,6 +1008,17 @@ make_desktop_entry() {
        local desktop="${T}/$(echo ${exec} | sed 
's:[[:space:]/:]:_:g')-${desktop_name}.desktop"
        #local desktop=${T}/${exec%% *:-${desktop_name}}.desktop
 
+       # Don't append another ";" when a valid category value is provided.
+       [[ -n ${type} && ${type} != *';' ]] && type+=";"
+
+       eshopts_push -s extglob
+       if [[ -n ${icon} && ${icon} != /* && ${icon} == *.@(xpm|png|svg) ]]; 
then
+               ewarn "As described in the Icon Theme Specification, icon file 
extensions are not"
+               ewarn "allowed in .desktop files if the value is not an 
absolute path."
+               icon=${icon%.@(xpm|png|svg)}
+       fi
+       eshopts_pop
+
        cat <<-EOF > "${desktop}"
        [Desktop Entry]
        Name=${name}
@@ -1015,7 +1027,7 @@ make_desktop_entry() {
        Exec=${exec}
        TryExec=${exec%% *}
        Icon=${icon}
-       Categories=${type};
+       Categories=${type}
        EOF
 
        [[ ${path} ]] && echo "Path=${path}" >> "${desktop}"

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to