mirror of
https://github.com/reactos/reactos.git
synced 2024-11-07 07:00:19 +00:00
43 lines
772 B
C++
43 lines
772 B
C++
// strip_comments.cpp
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning ( disable : 4786 )
|
|
#endif//_MSC_VER
|
|
|
|
#include "strip_comments.h"
|
|
|
|
void strip_comments ( std::string& s, bool strip_lf )
|
|
{
|
|
char* src = &s[0];
|
|
char* dst = src;
|
|
while ( *src )
|
|
{
|
|
if ( src[0] == '/' && src[1] == '/' )
|
|
{
|
|
src += 2;
|
|
while ( *src && *src != '\n' )
|
|
src++;
|
|
if ( *src )
|
|
src++; // skip newline
|
|
}
|
|
else if ( src[0] == '/' && src[1] == '*' )
|
|
{
|
|
src += 2;
|
|
char* newsrc = strstr ( src, "*/" );
|
|
if ( !newsrc )
|
|
break;
|
|
src = newsrc;
|
|
//while ( *src && ( src[0] != '*' || src[1] != '/' ) )
|
|
// src++;
|
|
if ( *src ) src++;
|
|
if ( *src ) src++;
|
|
}
|
|
else if ( src[0] == '\r' && strip_lf )
|
|
src++;
|
|
else
|
|
*dst++ = *src++;
|
|
}
|
|
*dst = '\0';
|
|
|
|
s.resize ( dst-&s[0] );
|
|
}
|