[nautilus-sendto] Escape commas as well as ampersands in filenames
- From: Bastien Nocera <hadess src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus-sendto] Escape commas as well as ampersands in filenames
- Date: Fri, 30 Oct 2009 15:15:15 +0000 (UTC)
commit 48103ab87df65fbdca6f66e322ff837ff23b2b8c
Author: Bastien Nocera <hadess hadess net>
Date: Fri Oct 30 15:05:16 2009 +0000
Escape commas as well as ampersands in filenames
For Thunderbird to parse filenames properly.
https://bugzilla.gnome.org/show_bug.cgi?id=599388
src/nautilus-sendto-command.c | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
---
diff --git a/src/nautilus-sendto-command.c b/src/nautilus-sendto-command.c
index 3e8859d..b9653b1 100644
--- a/src/nautilus-sendto-command.c
+++ b/src/nautilus-sendto-command.c
@@ -682,20 +682,25 @@ nautilus_sendto_plugin_init (void)
}
static char *
-escape_ampersands (const char *url)
+escape_ampersands_and_commas (const char *url)
{
int i;
char *str, *ptr;
- /* Count the number of ampersands */
+ /* Count the number of ampersands & commas */
i = 0;
ptr = (char *) url;
while ((ptr = strchr (ptr, '&')) != NULL) {
i++;
ptr++;
}
+ ptr = (char *) url;
+ while ((ptr = strchr (ptr, ',')) != NULL) {
+ i++;
+ ptr++;
+ }
- /* No ampersands ? */
+ /* No ampersands or commas ? */
if (i == 0)
return NULL;
@@ -703,12 +708,16 @@ escape_ampersands (const char *url)
str = g_malloc0 (strlen (url) - i + 3 * i + 1);
ptr = str;
for (i = 0; url[i] != '\0'; i++) {
- if (url[i] != '&') {
- *ptr++ = url[i];
- } else {
+ if (url[i] == '&') {
*ptr++ = '%';
*ptr++ = '2';
*ptr++ = '6';
+ } else if (url[i] == ',') {
+ *ptr++ = '%';
+ *ptr++ = '2';
+ *ptr++ = 'C';
+ } else {
+ *ptr++ = url[i];
}
}
@@ -737,7 +746,7 @@ nautilus_sendto_init (void)
uri = g_filename_to_uri (filename, NULL, NULL);
g_free (filename);
- escaped = escape_ampersands (uri);
+ escaped = escape_ampersands_and_commas (uri);
if (escaped == NULL) {
file_list = g_list_prepend (file_list, uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]