// **************************************************************************** // // Function Name: RMergeData::ReadTabDelimitedString( ) // // Description: Read a string that is tab delimited from the storage. // Eat the delimeter character also (eof, cr/lf, tab). // // Returns: Nothing // // Exceptions: Any File Exception, will not send through on kEndOfFile // // **************************************************************************** // RMergeData::EDataDelimiter RMergeData::ReadTabDelimitedString( RStorage& storage, RMBCString& string ) { EDataDelimiter delimiter = kTab; try { uBYTE ubChar( 0 ); RCharacter character; // First, make sure the string is empty string.Empty( ); // Loop until I hit a EOF, TAB, CR, or LF while ( 1 ) { storage >> ubChar; if ( (ubChar == '\t') || (ubChar == '\r') || (ubChar == '\n') ) break; // Check for multi-Byte character = ubChar; if ( character.IsLead( ) ) { UntestedCode( ); uBYTE lead = ubChar; uBYTE trail; storage >> trail; character = RCharacter( lead, trail ); } string += character; } // If I found a CR or a LF, make sure the other is not also present. if ( (ubChar == '\r') || (ubChar == '\n') ) { storage >> ubChar; // If character is NOT a CR or LF, rewind one character if ( !((ubChar == '\r') || (ubChar == '\n')) ) storage.SeekRelative( -1 ); delimiter = kEOL; }
// **************************************************************************** // // Function Name: RFont::GetCompensationAmount( ) // // Description: Return the compensation amount of the font // // Returns: The requested compensation amount // // Exceptions: Nothing // // **************************************************************************** // YKernSize RFont::GetCompensationAmount( ) { return( ( GetCharacterWidth( RCharacter( 0x20 ) ) / 4 ) ); // REVEIW RAH will this do? }