summaryrefslogtreecommitdiff
blob: 38570382c1c821d24c70afcc6ee357048b3eecfb (plain)
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
This patch disables external actions completely. Historically we created a
security-wise broken external action for opening URLs. We ignore them now and
unconditionally use the configured browser.

https://bugs.gentoo.org/show_bug.cgi?id=214204

--- centerim-4.22.3/src/centerim.cc
+++ centerim-4.22.3/src/centerim.cc
@@ -755,7 +755,7 @@
 
 void centerim::checkconfigs() {
     static const char *configs[] = {
-	"sounds", "colorscheme", "actions", "external", "keybindings", 0
+	"sounds", "colorscheme", "external", "keybindings", 0
     };
 
     struct stat st;
@@ -778,12 +778,9 @@
 			face.redraw();
 			break;
 		    case 2:
-			conf.loadactions();
-			break;
-		    case 3:
 			external.load();
 			break;
-		    case 4:
+		    case 3:
 			conf.loadkeys();
 			break;
 		}
@@ -1147,8 +1144,13 @@
 	    break;
 
 	case icqface::open:
-	    if(const imurl *m = static_cast<const imurl *>(&ev))
-		conf.execaction("openurl", m->geturl());
+	    if(const imurl *m = static_cast<const imurl *>(&ev)) {
+	        face.log (_("+ Opening URL %s"), m->geturl().c_str());
+	        if (fork () == 0) {
+	            execlp(conf.getbrowser().c_str(), conf.getbrowser().c_str(), m->geturl().c_str(), NULL);
+	            exit (-1);
+	        }
+	    }
 	    break;
 
 	case icqface::accept:
--- centerim-4.22.3/src/icqconf.cc
+++ centerim-4.22.3/src/icqconf.cc
@@ -212,7 +212,6 @@
     loadmainconfig();
     loadkeys();
     loadcolors();
-    loadactions();
     loadcaptcha();
     external.load();
 }
@@ -500,7 +499,7 @@
 	    if(param == "sort_by_activity") setsortmode(icqconf::sort_by_activity); else
 	    if(param == "sort_by_name") setsortmode(icqconf::sort_by_name); else
 	    if(param == "smtp") setsmtphost(buf); else
-	    if(param == "browser") setbrowser(browser); else
+	    if(param == "browser") setbrowser(buf); else
 	    if(param == "http_proxy") sethttpproxyhost(buf); else
 	    if(param == "log") makelog = true; else
 	    if(param == "proxy_connect") proxyconnect = true; else
--- centerim-4.22.3/src/icqdialogs.cc
+++ centerim-4.22.3/src/icqdialogs.cc
@@ -2060,7 +2060,6 @@
 			break;
 
 		    case 20: LJP_LIST("mood", moods, _("(none/custom)")); break;
-		    case 21: LJP_STR("music", _("Currently playing: ")); break;
 		    case 22: LJP_LIST("picture", pictures, _("(default)")); break;
 		    case 23: LJP_STR("mood", _("Current mood: ")); break;
 		    case 25: LJP_STR("taglist", _("Tags for the entry: ")); break;
@@ -2070,9 +2069,6 @@
 		    case 33: LJP_BOOL("backdated"); break;
 		}
 
-	    } else if(b == 1) {
-		ev->setfield("music", conf.execaction("detectmusic"));
-
 	    } else if(b == 2) {
 		r = true;
 
--- centerim-4.22.3/src/icqface.cc
+++ centerim-4.22.3/src/icqface.cc
@@ -2245,8 +2245,14 @@
 	for(i = extractedurls.begin(); i != extractedurls.end(); ++i)
 	    m.additem(" " + *i);
 
-	if(n = m.open())
-	    conf.execaction("openurl", extractedurls[n-1]);
+	if(n = m.open()) {
+	    log(_("+ Opening URL %s"), extractedurls[n-1].c_str());
+
+	    if (fork () == 0) {
+	        execlp(conf.getbrowser().c_str(), conf.getbrowser().c_str(), extractedurls[n-1].c_str(), NULL);
+		exit (-1);
+	    }
+	}
 
 	restoreworkarea();
     }