Only treat # as a comment marker if it's at the beginning of line or is preceded...
authorMichel Alexandre Salim <salimma@fedoraproject.org>
Fri, 18 Mar 2011 19:44:00 +0000 (20:44 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 19 Mar 2011 00:41:13 +0000 (17:41 -0700)
config.c

index 346fed8..9326c71 100644 (file)
--- a/config.c
+++ b/config.c
@@ -344,8 +344,14 @@ void bti_parse_configfile(struct session *session)
                if (line[n - 1] == '\n')
                        line[n - 1] = '\0';
 
-               /* '#' is comment markers, like bash style */
-               *strchrnul(line, '#') = '\0';
+               /* '#' is comment markers, like bash style
+                  but it is a valid character in some fields, so
+                  only treat it as a comment marker if it occurs
+                  at the beginning of the line, or after whitespace */
+               char *hashmarker = strchrnul(line, '#');
+               if (line == hashmarker) line[0] = '\0';
+               if (*(--hashmarker) == ' ' || *hashmarker == '\t')
+                       *hashmarker = '\0';
                c = line;
                while (isspace(*c))
                        c++;