Strip comments from end of line in INI parser

Mike Hearn mike at navi.cx
Mon May 24 05:58:29 CDT 2004


Mike Hearn <mike at navi.cx>
Strip comments and whitespace from end of line in PROFILE_CopyString

Index: dlls/kernel/profile.c
===================================================================
RCS file: /cvstrees/crossover/office/wine/dlls/kernel/profile.c,v
retrieving revision 1.2.4.1
diff -u -B -w -r1.2.4.1 profile.c
--- dlls/kernel/profile.c	3 May 2004 02:50:54 -0000	1.2.4.1
+++ dlls/kernel/profile.c	24 May 2004 10:55:03 -0000
@@ -111,6 +111,7 @@
                                BOOL strip_quote )
 {
     WCHAR quote = '\0';
+    WCHAR *comment = NULL, *rpos;
 
     if(!buffer) return;
 
@@ -120,6 +121,17 @@
     }
 
     lstrcpynW( buffer, value, len );
+
+    /* strip comments */
+    while (TRUE) {
+        comment = strrchrW( buffer, ';' );
+        if (comment) *comment = (WCHAR)0; else break;
+    }
+
+    /* strip whitespace again now we may have removed comments */
+    rpos = buffer + (strlenW( buffer )-1);
+    while ((isspaceW(*rpos) || (*rpos == (WCHAR)'\t')) && (rpos >= buffer)) *(rpos--) = '\0';
+    
     if (quote && (len >= strlenW(value))) buffer[strlenW(buffer)-1] = '\0';
 }
 





More information about the wine-patches mailing list