--- 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}"