mirror of
https://github.com/NishiOwO/JWasm.git
synced 2025-04-21 16:54:39 +00:00
73 lines
1.6 KiB
C
73 lines
1.6 KiB
C
/****************************************************************************
|
|
*
|
|
* This code is Public Domain.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* Description: API emulations:
|
|
* gcc: strupr()
|
|
* OW: CharUpperA()
|
|
*
|
|
****************************************************************************/
|
|
|
|
#if defined(__UNIX__)
|
|
|
|
/* v2.12: _splitpath()/_makepath() removed */
|
|
|
|
char *strupr( char *str )
|
|
/***********************/
|
|
{
|
|
char *p;
|
|
unsigned char c;
|
|
|
|
p = str;
|
|
while( (c = *p) ) {
|
|
c -= 'a';
|
|
if( c <= 'z' - 'a' ) {
|
|
c += 'A';
|
|
*p = c;
|
|
}
|
|
++p;
|
|
}
|
|
return( str );
|
|
}
|
|
|
|
#endif
|
|
|
|
/* emulations for Open Watcom */
|
|
|
|
#if defined(__WATCOMC__) && !defined(__UNIX__)
|
|
#ifdef __FLAT__
|
|
#ifndef DEBUG_OUT /* OW v1.8 WDW has a problem with locally defined imports */
|
|
|
|
union cu {
|
|
int c;
|
|
char *p;
|
|
};
|
|
|
|
/* this is an emulation of the Win32 function which is called
|
|
* by the OW runtime. It's the only USER32 function used.
|
|
* By defining it here the binary will just need KERNEL32 to load.
|
|
*/
|
|
char * _stdcall CharUpperA( char *lpsz )
|
|
/**************************************/
|
|
{
|
|
union cu p;
|
|
p.p = lpsz;
|
|
|
|
if ( p.c < 0x10000 )
|
|
if ( p.c >= 'a' )
|
|
return( (char *)p.c - 0x20 );
|
|
else
|
|
return( (char *)p.c );
|
|
else
|
|
for ( ; *p.p; p.p++ )
|
|
if ( *p.p >= 'a' )
|
|
*p.p = *p.p - 0x20;
|
|
return( lpsz );
|
|
}
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|