mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.1 KiB
66 lines
1.1 KiB
/***
|
|
*_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 <cruntime.h>
|
|
#include <string.h>
|
|
|
|
/***
|
|
*_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 );
|
|
}
|
|
|
|
|