Implemented some CRTDLL string functions.

This commit is contained in:
Zygo Blaxell 1999-02-22 10:21:56 +00:00 committed by Alexandre Julliard
parent 61afa33b03
commit 6d7773c974
2 changed files with 68 additions and 0 deletions

View File

@ -28,6 +28,7 @@ C_SRCS = \
spooler.c \
spy.c \
stress.c \
string.c \
system.c \
tapi32.c \
toolhelp.c \

67
misc/string.c Normal file
View File

@ -0,0 +1,67 @@
/*
* implementation of MSDEVS extensions to string.h
*
* Copyright 1999 Corel Corporation (Albert den Haan)
*/
/* WARNING: The Wine declarations are in tchar.h for now since string.h is
* not available to be altered in most development environments. MSDEVS 5
* declarse these functions in its own "string.h" */
#include "tchar.h"
#include <ctype.h>
#include <assert.h>
char *_strlwr(char *string) {
char *cp;
assert(string != NULL);
for(cp = string; *cp; cp++) {
*cp = tolower(*cp);
}
return string;
}
char *_strrev(char *string) {
char *pcFirst, *pcLast;
assert(string != NULL);
pcFirst = pcLast = string;
/* find the last character of the string
* (i.e. before the assumed nul-character) */
while(*(pcLast + 1)) {
pcLast++;
}
/* if the following ASSERT fails look for a bad (i.e. not nul-terminated)
* string */
assert(pcFirst <= pcLast);
/* reverse the string */
while(pcFirst < pcLast) {
/* swap characters across the middle */
char cTemp = *pcFirst;
*pcFirst = *pcLast;
*pcLast = cTemp;
/* move towards the middle of the string */
pcFirst++;
pcLast--;
}
return string;
}
char *_strupr(char *string) {
char *cp;
assert(string != NULL);
for(cp = string; *cp; cp++) {
*cp = toupper(*cp);
}
return string;
}