RSSyl: Do not use g_strsplit_set() to get the ID from message file, since the ID...
[claws.git] / src / plugins / rssyl / parse822.c
index 846fb6dd528edab0cf37ed35a4c9640a450a8433..01a7f7b74e713d43cadcd4c78975a6da014d6844 100644 (file)
@@ -50,7 +50,7 @@
  */
 FeedItem *rssyl_parse_folder_item_file(gchar *path)
 {
-       gchar *contents, **lines, **line, **splid;
+       gchar *contents, **lines, **line, **splid, *tmp, *tmp2;
        GError *error = NULL;
        FeedItem *item;
        RFeedCtx *ctx;
@@ -138,10 +138,15 @@ FeedItem *rssyl_parse_folder_item_file(gchar *path)
 
                                /* ID */
                                if( !strcmp(line[0], "Message-ID") ) {
-                                       splid = g_strsplit_set(line[1], "<>", 3);
-                                       if( strlen(splid[1]) != 0 )
-                                               feed_item_set_id(item, splid[1]);
-                                       g_strfreev(splid);
+                                       if (line[1][0] != '<' || line[1][strlen(line[1])-1] != '>') {
+                                               debug_print("RSSyl: malformed Message-ID, ignoring...\n");
+                                       } else {
+                                               /* Get the ID from within < and >. */
+                                               tmp = line[1] + 1;
+                                               tmp2 = g_strndup(tmp, strlen(tmp) - 1);
+                                               feed_item_set_id(item, tmp2);
+                                               g_free(tmp2);
+                                       }
                                }
 
                                /* Feed comments */