pidgin/gtkthemes.c

changeset 29252
0fa50eacbcb3
parent 29251
aef092405bd5
child 31294
73607ab89c6f
equal deleted inserted replaced
29251:aef092405bd5 29252:0fa50eacbcb3
261 break; 261 break;
262 } 262 }
263 263
264 if (buf[0] == '#' || buf[0] == '\0') 264 if (buf[0] == '#' || buf[0] == '\0')
265 continue; 265 continue;
266 266 else {
267 int len = strlen(buf);
268 while (len && (buf[len - 1] == '\r' || buf[len - 1] == '\n'))
269 buf[--len] = '\0';
270 if (len == 0)
271 continue;
272 }
273
267 i = buf; 274 i = buf;
268 while (isspace(*i)) 275 while (isspace(*i))
269 i++; 276 i++;
270 277
271 if (*i == '[' && strchr(i, ']') && load) { 278 if (*i == '[' && strchr(i, ']') && load) {
278 /* Reverse the Smiley list since it was built in reverse order for efficiency reasons */ 285 /* Reverse the Smiley list since it was built in reverse order for efficiency reasons */
279 if (list != NULL) 286 if (list != NULL)
280 list->smileys = g_slist_reverse(list->smileys); 287 list->smileys = g_slist_reverse(list->smileys);
281 list = child; 288 list = child;
282 } else if (!g_ascii_strncasecmp(i, "Name=", strlen("Name="))) { 289 } else if (!g_ascii_strncasecmp(i, "Name=", strlen("Name="))) {
283 int len;
284 g_free(theme->name); 290 g_free(theme->name);
285 theme->name = g_strdup(i + strlen("Name=")); 291 theme->name = g_strdup(i + strlen("Name="));
286 len = strlen(theme->name);
287 theme->name[len-1] = 0;
288 if(len > 2 && theme->name[len-2] == '\r')
289 theme->name[len-2] = 0;
290 } else if (!g_ascii_strncasecmp(i, "Description=", strlen("Description="))) { 292 } else if (!g_ascii_strncasecmp(i, "Description=", strlen("Description="))) {
291 g_free(theme->desc); 293 g_free(theme->desc);
292 theme->desc = g_strdup(i + strlen("Description=")); 294 theme->desc = g_strdup(i + strlen("Description="));
293 theme->desc[strlen(theme->desc)-1] = 0;
294 } else if (!g_ascii_strncasecmp(i, "Icon=", strlen("Icon="))) { 295 } else if (!g_ascii_strncasecmp(i, "Icon=", strlen("Icon="))) {
295 g_free(theme->icon); 296 g_free(theme->icon);
296 theme->icon = g_build_filename(dirname, i + strlen("Icon="), NULL); 297 theme->icon = g_build_filename(dirname, i + strlen("Icon="), NULL);
297 theme->icon[strlen(theme->icon)-1] = 0;
298 } else if (!g_ascii_strncasecmp(i, "Author=", strlen("Author="))) { 298 } else if (!g_ascii_strncasecmp(i, "Author=", strlen("Author="))) {
299 g_free(theme->author); 299 g_free(theme->author);
300 theme->author = g_strdup(i + strlen("Author=")); 300 theme->author = g_strdup(i + strlen("Author="));
301 theme->author[strlen(theme->author)-1] = 0;
302 } else if (load && list) { 301 } else if (load && list) {
303 gboolean hidden = FALSE; 302 gboolean hidden = FALSE;
304 char *sfile = NULL; 303 char *sfile = NULL;
305 304
306 if (*i == '!' && *(i + 1) == ' ') { 305 if (*i == '!' && *(i + 1) == ' ') {
309 } 308 }
310 while (*i) { 309 while (*i) {
311 char l[64]; 310 char l[64];
312 int li = 0; 311 int li = 0;
313 while (*i && !isspace(*i) && li < sizeof(l) - 1) { 312 while (*i && !isspace(*i) && li < sizeof(l) - 1) {
314 if (*i == '\\' && *(i+1) != '\0' && *(i+1) != '\n' && *(i+1) != '\r') 313 if (*i == '\\' && *(i+1) != '\0')
315 i++; 314 i++;
316 l[li++] = *(i++); 315 l[li++] = *(i++);
317 } 316 }
318 l[li] = 0; 317 l[li] = 0;
319 if (!sfile) { 318 if (!sfile) {

mercurial