Mercurial > pidgin
changeset 28920:8c8871afd063
Strip both \n and \r at the end of the lines when parsing a smiley theme.
Closes #10521.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Thu, 28 Jan 2010 20:39:24 +0000 |
parents | 9c3e0f2e82ea |
children | 2930170ca3c0 6e207cd68b25 |
files | pidgin/gtkthemes.c |
diffstat | 1 files changed, 9 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtkthemes.c Thu Jan 28 19:57:00 2010 +0000 +++ b/pidgin/gtkthemes.c Thu Jan 28 20:39:24 2010 +0000 @@ -263,7 +263,14 @@ if (buf[0] == '#' || buf[0] == '\0') continue; - + else { + int len = strlen(buf); + while (len && (buf[len - 1] == '\r' || buf[len - 1] == '\n')) + buf[--len] = '\0'; + if (len == 0) + continue; + } + i = buf; while (isspace(*i)) i++; @@ -280,25 +287,17 @@ list->smileys = g_slist_reverse(list->smileys); list = child; } else if (!g_ascii_strncasecmp(i, "Name=", strlen("Name="))) { - int len; g_free(theme->name); theme->name = g_strdup(i + strlen("Name=")); - len = strlen(theme->name); - theme->name[len-1] = 0; - if(len > 2 && theme->name[len-2] == '\r') - theme->name[len-2] = 0; } else if (!g_ascii_strncasecmp(i, "Description=", strlen("Description="))) { g_free(theme->desc); theme->desc = g_strdup(i + strlen("Description=")); - theme->desc[strlen(theme->desc)-1] = 0; } else if (!g_ascii_strncasecmp(i, "Icon=", strlen("Icon="))) { g_free(theme->icon); theme->icon = g_build_filename(dirname, i + strlen("Icon="), NULL); - theme->icon[strlen(theme->icon)-1] = 0; } else if (!g_ascii_strncasecmp(i, "Author=", strlen("Author="))) { g_free(theme->author); theme->author = g_strdup(i + strlen("Author=")); - theme->author[strlen(theme->author)-1] = 0; } else if (load && list) { gboolean hidden = FALSE; char *sfile = NULL; @@ -311,7 +310,7 @@ char l[64]; int li = 0; while (!isspace(*i) && li < sizeof(l) - 1) { - if (*i == '\\' && *(i+1) != '\0' && *(i+1) != '\n' && *(i+1) != '\r') + if (*i == '\\' && *(i+1) != '\0') i++; l[li++] = *(i++); }