]> git.wh0rd.org - fontconfig.git/commitdiff
Strip \r and whitespace from input; fixes bug 3454.
authorPatrick Lam <plam@MIT.EDU>
Wed, 22 Feb 2006 04:50:16 +0000 (04:50 +0000)
committerPatrick Lam <plam@MIT.EDU>
Wed, 22 Feb 2006 04:50:16 +0000 (04:50 +0000)
ChangeLog
fc-lang/fc-lang.c

index 5265c6d999875e82840a877f68ee1e5cc28b5301..4aec46da10af5a1d604fdac55d4392df592d04ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2006-02-21  Patrick Lam  <plam@mit.edu>
-       * fc-lang/fc-lang.c:
+       * fc-lang/fc-lang.c (scan):
+
+       Strip \r and whitespace from input; fixes bug 3454.
+
+2006-02-21  Patrick Lam  <plam@mit.edu>
+       * fc-lang/fc-lang.c (main):
 
        Allocate large arrays statically in fc-lang to fix crashes under
        MinGW/MSYS.
index ebb853953d0753d03a0af08b5b999daffc627978..1efd0c1fe66d47445b4adcac161187f69aba253a 100644 (file)
@@ -80,12 +80,18 @@ static char *
 get_line (FILE *f, char *line, int *lineno)
 {
     char    *hash;
+    int            end;
     if (!fgets (line, 1024, f))
        return 0;
     ++(*lineno);
     hash = strchr (line, '#');
     if (hash)
        *hash = '\0';
+
+    end = strlen (line);
+    while (end > 0 && isspace (line[end-1]))
+      line[--end] = '\0';
+
     if (line[0] == '\0' || line[0] == '\n' || line[0] == '\032' || line[0] == '\r')
        return get_line (f, line, lineno);
     return line;
@@ -134,11 +140,8 @@ scan (FILE *f, char *file)
        if (!strncmp (line, "include", 7))
        {
            file = strchr (line, ' ');
-           while (*file == ' ')
+           while (isspace(*file))
                file++;
-           end = strlen (file);
-           if (file[end-1] == '\n')
-               file[end-1] = '\0';
            f = scanopen (file);
            if (!f)
                fatal (file, 0, "can't open");