Remove every control char after colon
authorRicardo Mones <ricardo@mones.org>
Fri, 24 May 2013 12:38:28 +0000 (14:38 +0200)
committerRicardo Mones <ricardo@mones.org>
Fri, 24 May 2013 12:38:28 +0000 (14:38 +0200)
The extraheaderrc format doesn't allow data after the header
colon. Other OSes may insert extra characters other than \n,
so, remove them all.

src/compose.c

index 77370de..7b2e6fa 100644 (file)
@@ -6625,9 +6625,9 @@ void compose_add_extra_header_entries(GtkListStore *model)
                        goto extra_headers_done;
                }
                while (fgets(buf, BUFFSIZE, exh) != NULL) {
-                       lastc = strlen(buf) - 1;        /* remove trailing \n */
-                       buf[lastc] = (buf[lastc] == '\n')? '\0': buf[lastc];
-                       --lastc;
+                       lastc = strlen(buf) - 1;        /* remove trailing control chars */
+                       while (lastc >= 0 && buf[lastc] != ':')
+                               buf[lastc--] = '\0';
                        if (lastc > 0 && buf[0] != '#' && buf[lastc] == ':') {
                                buf[lastc] = '\0'; /* remove trailing : for comparison */
                                if (custom_header_is_allowed(buf)) {