/* * Copyright 1995, 2000 Perforce Software. All rights reserved. * * This file is part of Perforce - the FAST SCM System. */ # include # include # include # include "splr.h" // This simple class lets you read through a StrPtr's text, a "line" at a time. StrPtrLineReader::StrPtrLineReader( const StrPtr *buf ) { start = buf->Text(); } StrPtrLineReader::~StrPtrLineReader() { } int StrPtrLineReader::GetLine( StrBuf *line ) { if( !start || !(*start) ) return 0; const char *p = start; for( ; p && *p; p++ ) if( p[0] == '\n' ) break; line->Set( start, p - start ); start = (*p) ? p + 1 : 0 ; return 1; } int StrPtrLineReader::CountLines() { if( !start || !(*start) ) return 0; int numLines = 1; for( const char *p = start; *p; p++ ) if( *p == '\n' && p[1] != '\0' ) numLines++; return numLines; }