[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Ayttm-commits] CVS: ayttm/src browser.c,1.7,1.8
From: |
Colin Leroy <address@hidden> |
Subject: |
[Ayttm-commits] CVS: ayttm/src browser.c,1.7,1.8 |
Date: |
Tue, 14 Jan 2003 08:06:03 -0500 |
Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv31238/src
Modified Files:
browser.c
Log Message:
better escaping urls
Index: browser.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/browser.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- browser.c 14 Jan 2003 12:03:12 -0000 1.7
+++ browser.c 14 Jan 2003 13:06:01 -0000 1.8
@@ -58,15 +58,35 @@
gint web_browser = BROWSER_NETSCAPE;
-void open_url(GtkWidget *w, char *url) {
- open_url_nw(w,url);
-}
-
void open_url_nw(GtkWidget *w, char *url) {
char *browser = NULL;
- char *command = g_malloc(1024);
+ char *command = malloc(1281);
char *url_pos = NULL;
- char *esc_url = g_strdup_printf("\"%s\"", url);
+ char esc_url[1024];
+ int i=0,j=1;
+
+ esc_url[0]='"'; j=1;
+ if (url[0]=='\'' || url[0]=='"')
+ i++;
+ for (i; i< strlen(url) && j < 1023; i++,j++) {
+ switch(url[i]) {
+ case '$':
+ case '\'':
+ case '"':
+ case ' ':
+ case '\\':
+ if (i==strlen(url)-1)
+ break;
+ esc_url[j]='\\';
+ j++;
+ esc_url[j]=url[i];
+ break;
+ default:
+ esc_url[j]=url[i];
+ }
+ }
+ esc_url[j++]='"';
+ esc_url[j++]=0;
if (iGetLocalPref("use_alternate_browser"))
browser = cGetLocalPref("alternate_browser");
@@ -86,16 +106,23 @@
int pre_len = url_pos-browser;
strncpy(command, browser, pre_len);
command[pre_len] = 0;
- strncat(command, esc_url, 1024 - pre_len);
- strncat(command, url_pos+2, 1024 - strlen(command));
- strncat(command, " &", 1024 - strlen(command));
+ strncat(command, esc_url, 1280 - pre_len);
+ strncat(command, url_pos+2, 1280 - strlen(command));
+ strncat(command, " &", 1280 - strlen(command));
g_free(esc_url);
} else {
- g_snprintf(command, 1024, "%s \"%s\" &", browser, url);
+ strncpy(command, browser, 1280);
+ strncat(command," ",1280-strlen(command));
+ strncat(command,esc_url,1280-strlen(command));
+ strncat(command, " &", 1280 - strlen(command));
}
eb_debug(DBG_CORE, "launching %s\n", command);
system(command);
g_free(command);
+}
+
+void open_url(GtkWidget *w, char *url) {
+ open_url_nw(w,url);
}
#else
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Ayttm-commits] CVS: ayttm/src browser.c,1.7,1.8,
Colin Leroy <address@hidden> <=
- Prev by Date:
[Ayttm-commits] CVS: ayttm/modules/msn2 msn.C,1.24,1.25
- Next by Date:
[Ayttm-commits] CVS: ayttm ChangeLog,1.104,1.105 configure.in,1.101,1.102
- Previous by thread:
[Ayttm-commits] CVS: ayttm/modules/msn2 msn.C,1.24,1.25
- Next by thread:
[Ayttm-commits] CVS: ayttm ChangeLog,1.104,1.105 configure.in,1.101,1.102
- Index(es):