scroll mode for very long start menus
[reactos.git] / reactos / apps / utils / sdkparse / strip_comments.cpp
1 // strip_comments.cpp
2
3 #ifdef _MSC_VER
4 #pragma warning ( disable : 4786 )
5 #endif//_MSC_VER
6
7 #include "strip_comments.h"
8
9 void strip_comments ( std::string& s, bool strip_lf )
10 {
11 char* src = &s[0];
12 char* dst = src;
13 while ( *src )
14 {
15 if ( src[0] == '/' && src[1] == '/' )
16 {
17 src += 2;
18 while ( *src && *src != '\n' )
19 src++;
20 if ( *src )
21 src++; // skip newline
22 }
23 else if ( src[0] == '/' && src[1] == '*' )
24 {
25 src += 2;
26 char* newsrc = strstr ( src, "*/" );
27 if ( !newsrc )
28 break;
29 src = newsrc;
30 //while ( *src && ( src[0] != '*' || src[1] != '/' ) )
31 // src++;
32 if ( *src ) src++;
33 if ( *src ) src++;
34 }
35 else if ( src[0] == '\r' && strip_lf )
36 src++;
37 else
38 *dst++ = *src++;
39 }
40 *dst = '\0';
41
42 s.resize ( dst-&s[0] );
43 }