summaryrefslogtreecommitdiff
path: root/x11-wm/fluxbox/files/patch-util__fluxbox-generate_menu.in
blob: 55e0b9e21d4da9e9bf721010517eb4a7d387f4b4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
--- util/fluxbox-generate_menu.in.orig	2015-02-08 10:44:45 UTC
+++ util/fluxbox-generate_menu.in
@@ -68,7 +68,7 @@ Options:
     -d  Other path(s) to recursively search for *.desktop files
     -ds Wider search for *.desktop files (takes more time)
     -i  Other path(s) to search for icons
-        e.g., "/usr/kde/3.3/share/icons/crystalsvg/16x16/*"
+        e.g., "%%LOCALBASE%%/share/icons/crystalsvg/16x16/*"
     -is Wider search for icons (worth the extra time)
     -in Skip icon search
 
@@ -85,7 +85,7 @@ Options:
   Only for packagers:
 
     -p  Prefix; default is @PREFIX@
-    -n  Gnome-prefix; /opt, /usr, /usr/X11R6 and /usr/local autodetected
+    -n  Gnome-prefix; %%LOCALBASE%% autodetected
     -q  KDE-prefix; idem dito
 
 
@@ -145,13 +145,42 @@ testoption() {
     esac
 }
 
-find_it() {
-    [ -n "$1" ] && hash $1 2> /dev/null && shift && "$@"
-}
+# some which's have a reliable return code, some don't
+# Lets figure out which which we have.
+if which this_program_does_not_exist-no_really-aA1zZ9 2> /dev/null 1> /dev/null; then
+    # can't rely on return value
+    find_it() {
+        file=`which $1 2> /dev/null`
+        if [ -x "$file" ]; then
+            if [ $# -gt 1 ]; then
+                shift
+                "$@"
+            fi
+            return 0
+        else
+            return 1
+        fi
+    }
 
-find_it_options() {
-    [ -n "$1" ] && hash $1 2> /dev/null
-}
+    find_it_options() {
+        file=`which $1 2> /dev/null`
+        if [ -x "$file" ]; then
+            return 0
+        else
+            return 1
+        fi
+    }
+
+else
+    # can rely on return value
+    find_it() {
+        which $1 > /dev/null 2>&1 && shift && "$@"
+    }
+
+    find_it_options() {
+        which $1 > /dev/null 2>&1
+    }
+fi
 
 #echo "replaceWithinString: $1, $2, $3" >&2
 #echo ${1//$2/$3} # causes error in BSD even though not used
@@ -203,7 +232,7 @@ convertIcon(){
     if [ -f "${entry_icon}" ]; then
         : echo "File exists. To overwrite, type: convert \"$1\" \"$entry_icon\"" >&2
     else
-        if hash convert 2> /dev/null; then
+        if which convert &> /dev/null; then
             convert "$1" "$entry_icon"
             # echo convert "$1" , "$entry_icon" >> $ICONMAPPING
         else
@@ -275,7 +304,7 @@ doSearch(){
     # echo -n "for $temp_icon"
     eval doSearchLoop $USER_ICONPATHS \
       "$FB_ICONDIR" \
-      "/usr/share/${execname%% *}" \
+      "%%LOCALBASE%%/share/${execname%% *}" \
       ${OTHER_ICONPATHS} \
 
 
@@ -558,7 +587,7 @@ rm -f ${MENUFILENAME}.tmp
 
 
 WHOAMI=`whoami`
-[ "$WHOAMI" = root ] && PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
+[ "$WHOAMI" = root ] && PATH=/bin:/usr/bin:%%LOCALBASE%%/bin
 
 # Check for Imlib2-support
 if @pkgprefix@fluxbox@pkgsuffix@@EXEEXT@ -info 2> /dev/null | grep -q "^IMLIB"; then
@@ -1271,16 +1300,16 @@ if [ ! "${INSTALL}" = Yes ]; then
 # These are prefixes; So if fluxbox is installed in @PREFIX@/bin/fluxbox
 # your prefix is: @PREFIX@
 
-# fluxbox-generate already looks in /usr/X11R6, /usr, /usr/local and /opt so
+# fluxbox-generate already looks in %%LOCALBASE%% so
 # there should be no need to specify them.
 #
 # PREFIX=@PREFIX@
-# GNOME_PREFIX=/opt/gnome
-# KDE_PREFIX=/opt/kde
+# GNOME_PREFIX=%%LOCALBASE%%
+# KDE_PREFIX=%%LOCALBASE%%
 
 
 # Separate the list of background dirs with colons ':'
-# BACKGROUND_DIRS="${USERFLUXDIR}/backgrounds/:@PREFIX@/share/fluxbox/backgrounds/:/usr/share/wallpapers"
+# BACKGROUND_DIRS="${USERFLUXDIR}/backgrounds/:@PREFIX@/share/fluxbox/backgrounds/:%%LOCALBASE%%/share/wallpapers"
 
 
 # --- Boolean variables.
@@ -1327,29 +1356,21 @@ while [ $# -gt 0 ]; do
         -g) GNOMEMENU=yes; shift;;
         -in) NO_ICON=yes; shift;;
         -is) OTHER_ICONPATHS="
-                /usr/share/icons
-                /usr/share/icons/mini
-                /usr/share/pixmaps
-                /usr/local/share/icons
-                /usr/local/share/icons/mini
-                /usr/local/share/pixmaps
-                /usr/share/xclass/icons
-                /usr/share/xclass/pixmaps
-                /usr/local/share/xclass/icons
-                /usr/local/share/xclass/pixmaps
-                /usr/X11R6/share/icons/default/16x16
-                /usr/X11R6/share/icons/kde/16x16
-                /usr/X11R6/share/icons/hicolor/16x16
-                /usr/local/X11R6/share/icons/default/16x16
-                /usr/local/X11R6/share/icons/kde/16x16
-                /usr/local/X11R6/share/icons/hicolor/16x16
+                %%LOCALBASE%%/share/icons
+                %%LOCALBASE%%/share/icons/mini
+                %%LOCALBASE%%/share/pixmaps
+                %%LOCALBASE%%/share/xclass/icons
+                %%LOCALBASE%%/share/xclass/pixmaps
+                %%LOCALBASE%%/share/icons/default/16x16
+                %%LOCALBASE%%/share/icons/kde/16x16
+                %%LOCALBASE%%/share/icons/hicolor/16x16
             "
             shift;;
         -ds) OTHER_DESKTOP_PATHS="
-                /usr/share/mimelnk 
-                /usr/share/applications
-                /usr/share/xsessions 
-                /usr/share/services 
+                %%LOCALBASE%%/share/mimelnk
+                %%LOCALBASE%%/share/applications
+                %%LOCALBASE%%/share/xsessions
+                %%LOCALBASE%%/share/services
             "
             # /usr/share/apps \
             shift;;
@@ -1420,13 +1441,12 @@ fi
 # prefix
 PREFIX="${PREFIX:=@PREFIX@}"
 if [  -z "${PREFIX}" -o ! -d "${PREFIX}" ]; then
-    hash @pkgprefix@fluxbox@pkgsuffix@@EXEEXT@
-    PREFIX=`hash | grep @pkgprefix@fluxbox@pkgsuffix@ | sed 's,.*\t/,/,' | sed 's,/bin/@pkgprefix@fluxbox@pkgsuffix@@EXEEXT@$,,'`
+    PREFIX=`which fluxbox | sed 's,/bin/fluxbox$,,'`
 fi
 
 
 # gnome prefix
-for GNOME_PREFIX in "${GNOME_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do
+for GNOME_PREFIX in "${GNOME_PREFIX}" %%LOCALBASE%% "${PREFIX}"; do
     if [ -n "${GNOME_PREFIX}" -a -d "$GNOME_PREFIX/share/gnome" ]; then
         break;
     fi
@@ -1434,7 +1454,7 @@ done
 # Will remain $PREFIX if all else fails
 
 # kde prefix
-for KDE_PREFIX in "${KDE_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do
+for KDE_PREFIX in "${KDE_PREFIX}" %%LOCALBASE%% "${PREFIX}"; do
     if [ -n "${KDE_PREFIX}" -a -d "$KDE_PREFIX/share/applnk" ]; then
         break;
     fi
@@ -1522,7 +1542,7 @@ if find_it_options $MY_BROWSER; then
 else
     [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2
     #The precise order is up for debate.
-    for browser in firefox mozilla-firefox chrome chromium google-chrome mozilla-firebird MozillaFirebird opera skipstone mozilla seamonkey galeon konqueror dillo netscape w3m amaya links lynx; do
+    for browser in firefox mozilla-firefox chrome chromium google-chrome mozilla-firebird MozillaFirebird linux-opera opera skipstone mozilla seamonkey galeon konqueror dillo netscape w3m amaya links lynx; do
         if find_it_options $browser; then
             DEFAULT_BROWSER=$browser
             break
@@ -1589,6 +1609,7 @@ case "$DEFAULT_BROWSERNAME" in
     chrome|chromium) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_BROWSER}}" ;;
     google-chrome) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_BROWSER}}" ;;
     konqueror) append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" ;;
+    linux-opera) append "[exec] (linux-opera) {env QT_XFT=true linux-opera}" ;;
     opera) append "[exec] (opera) {env QT_XFT=true opera}" ;;
     MozillaFirebird) append "[exec] (firebird) {MozillaFirebird}" ;;
     MozillaFirefox) append "[exec] (firefox) {MozillaFirefox}" ;;
@@ -1608,6 +1629,7 @@ append_submenu "${NETMENU}"
     append_submenu "${BROWSERMENU}"
         normal_find chrome chromium firefox google-chrome mozilla-firefox MozillaFirefox galeon mozilla seamonkey dillo netscape vncviewer
         find_it links       append "[exec]   (links-graphic) {links -driver x ${HOMEPAGE}}"
+        find_it linux-opera append "[exec]   (linux-opera) {env QT_XFT=true linux-opera}"
         find_it opera       append "[exec]   (opera) {env QT_XFT=true opera}"
         find_it konqueror   append "[exec]   (konqueror) {kfmclient openProfile webbrowsing}"
         find_it links       append "[exec]   (links) {${DEFAULT_TERM} -e links ${HOMEPAGE}}"