Commit a24b15d0 by Alan Mishchenko

Suggested changes for the case when the file begings with a new line.

parent ee228339
...@@ -126,41 +126,52 @@ void Amap_RemoveComments( char * pBuffer, int * pnDots, int * pnLines ) ...@@ -126,41 +126,52 @@ void Amap_RemoveComments( char * pBuffer, int * pnDots, int * pnLines )
// (in the BLIF file, comments are lines starting with "#") // (in the BLIF file, comments are lines starting with "#")
nDots = nLines = 0; nDots = nLines = 0;
for ( pCur = pBuffer; *pCur; pCur++ ) for ( pCur = pBuffer; *pCur; pCur++ )
{ {
// if this is the beginning of comment // if this is the beginning of comment
// clean it with spaces until the new line statement // clean it with spaces until the new line statement
if ( *pCur == '#' ) if ( *pCur == '#' ) {
while ( *pCur != '\n' ) while ( *pCur != '\n' ) {
*pCur++ = ' '; *pCur++ = ' ';
}
}
// count the number of new lines and dots // count the number of new lines and dots
if ( *pCur == '\n' ) { if ( *pCur == '\n' ) {
if (*(pCur-1)=='\r') { if (pCur > pBuffer) {
// DOS(R) file support if (*(pCur - 1) == '\r') {
if (*(pCur-2)!='\\') nLines++; // DOS(R) file support
else { if (pCur > (pBuffer + 1)) {
// rewind to backslash and overwrite with a space if (*(pCur - 2)!='\\') {
*(pCur-2) = ' '; nLines++;
*(pCur-1) = ' '; }
*pCur = ' '; else {
} // rewind to backslash and overwrite with a space
} else { *(pCur - 2) = ' ';
// UNIX(TM) file support *(pCur - 1) = ' ';
if (*(pCur-1)!='\\') nLines++; *pCur = ' ';
else { }
// rewind to backslash and overwrite with a space }
*(pCur-1) = ' '; } else {
*pCur = ' '; // UNIX(TM) file support
if (*(pCur - 1) != '\\') {
nLines++;
}
else {
// rewind to backslash and overwrite with a space
*(pCur-1) = ' ';
*pCur = ' ';
}
}
}
} }
else if ( *pCur == '.' ) {
nDots++;
} }
} }
else if ( *pCur == '.' )
nDots++;
}
if ( pnDots ) if ( pnDots )
*pnDots = nDots; *pnDots = nDots;
if ( pnLines ) if ( pnLines )
*pnLines = nLines; *pnLines = nLines;
} }
/**Function************************************************************* /**Function*************************************************************
...@@ -491,4 +502,3 @@ Amap_Lib_t * Amap_LibReadFile( char * pFileName, int fVerbose ) ...@@ -491,4 +502,3 @@ Amap_Lib_t * Amap_LibReadFile( char * pFileName, int fVerbose )
ABC_NAMESPACE_IMPL_END ABC_NAMESPACE_IMPL_END
...@@ -734,37 +734,48 @@ void Io_ReadFileRemoveComments( char * pBuffer, int * pnDots, int * pnLines ) ...@@ -734,37 +734,48 @@ void Io_ReadFileRemoveComments( char * pBuffer, int * pnDots, int * pnLines )
// (in the BLIF file, comments are lines starting with "#") // (in the BLIF file, comments are lines starting with "#")
nDots = nLines = 0; nDots = nLines = 0;
for ( pCur = pBuffer; *pCur; pCur++ ) for ( pCur = pBuffer; *pCur; pCur++ )
{ {
// if this is the beginning of comment // if this is the beginning of comment
// clean it with spaces until the new line statement // clean it with spaces until the new line statement
if ( *pCur == '#' ) if ( *pCur == '#' ) {
while ( *pCur != '\n' ) while ( *pCur != '\n' ) {
*pCur++ = ' '; *pCur++ = ' ';
}
}
// count the number of new lines and dots // count the number of new lines and dots
if ( *pCur == '\n' ) { if ( *pCur == '\n' ) {
if (*(pCur-1)=='\r') { if (pCur > pBuffer) {
// DOS(R) file support if (*(pCur - 1) == '\r') {
if (*(pCur-2)!='\\') nLines++; // DOS(R) file support
else { if (pCur > (pBuffer + 1)) {
// rewind to backslash and overwrite with a space if (*(pCur - 2) != '\\') {
*(pCur-2) = ' '; nLines++;
*(pCur-1) = ' '; }
*pCur = ' '; else {
} // rewind to backslash and overwrite with a space
} else { *(pCur - 2) = ' ';
// UNIX(TM) file support *(pCur - 1) = ' ';
if (*(pCur-1)!='\\') nLines++; *pCur = ' ';
else { }
// rewind to backslash and overwrite with a space }
*(pCur-1) = ' '; } else {
*pCur = ' '; // UNIX(TM) file support
if (*(pCur - 1) != '\\') {
nLines++;
}
else {
// rewind to backslash and overwrite with a space
*(pCur - 1) = ' ';
*pCur = ' ';
}
}
}
} }
else if ( *pCur == '.' ) {
nDots++;
} }
} }
else if ( *pCur == '.' )
nDots++;
}
if ( pnDots ) if ( pnDots )
*pnDots = nDots; *pnDots = nDots;
if ( pnLines ) if ( pnLines )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment