Fixed a CR/LF problem on Windows
authorWerner Koch <wk@gnupg.org>
Wed, 19 Jan 2011 17:05:15 +0000 (18:05 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 19 Jan 2011 17:05:15 +0000 (18:05 +0100)
agent/ChangeLog
agent/trustlist.c

index ce1fdcc..542695b 100644 (file)
@@ -1,3 +1,7 @@
+2011-01-19  Werner Koch  <wk@g10code.com>
+
+       * trustlist.c (read_one_trustfile): Also chop an CR.
+
 2010-12-02  Werner Koch  <wk@g10code.com>
 
        * gpg-agent.c (CHECK_OWN_SOCKET_INTERVAL) [W32CE]: Set to 60
index 791df96..d565982 100644 (file)
@@ -139,8 +139,9 @@ read_one_trustfile (const char *fname, int allow_include,
   while (es_fgets (line, DIM(line)-1, fp))
     {
       lnr++;
-      
-      if (!*line || line[strlen(line)-1] != '\n')
+
+      n = strlen (line);
+      if (!n || line[n-1] != '\n')
         {
           /* Eat until end of line. */
           while ( (c=es_getc (fp)) != EOF && c != '\n')
@@ -151,7 +152,9 @@ read_one_trustfile (const char *fname, int allow_include,
                      fname, lnr, gpg_strerror (err));
           continue;
         }
-      line[strlen(line)-1] = 0; /* Chop the LF. */
+      line[--n] = 0; /* Chop the LF. */
+      if (n && line[n-1] == '\r')
+        line[--n] = 0; /* Chop an optional CR. */
       
       /* Allow for empty lines and spaces */
       for (p=line; spacep (p); p++)