/*** *_c2pstr.c - contains c2pstr() routine * * Copyright (c) 1985-1995, Microsoft Corporation. All rights reserved. * *Purpose: * converts a 'C' string to a PASCAL string in place * *Revision History: * 02-04-92 RID C version created. * 03-24-92 PLM Changed name * *******************************************************************************/ #include #include /*** *_c2pstr - return the pointer to the pascal string after conversion. * *Purpose: * Convert a 'C' null terminated string into a pascal byte count * pre-fixed string. This conversion is in place and removes * the trailing null. * *Entry: * char * str - string to be converted * *Exit: * char * str of converted string. * *Exceptions: * *******************************************************************************/ unsigned char * _CALLTYPE1 _c2pstr ( char * str ) { if ( str && *str ) { unsigned char *pch; unsigned char ch; unsigned char chT; int cch; pch = str; ch = *pch; do { chT = *++pch; *pch = ch; ch = chT; } while( ch ); cch = pch - str; *str = ( cch > 255 ) ? 255 : cch; } return( str ); }