From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- private/crt32/string/wcsrev.c | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 private/crt32/string/wcsrev.c (limited to 'private/crt32/string/wcsrev.c') diff --git a/private/crt32/string/wcsrev.c b/private/crt32/string/wcsrev.c new file mode 100644 index 000000000..0ea09b944 --- /dev/null +++ b/private/crt32/string/wcsrev.c @@ -0,0 +1,56 @@ +/*** +*wcsrev.c - reverse a wide-character string in place +* +* Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved. +* +*Purpose: +* defines _wcsrev() - reverse a wchar_t string in place (not including +* L'\0' character) +* +*Revision History: +* 09-09-91 ETC Created from strrev.c. +* 04-07-92 KRS Updated and ripped out _INTL switches. +* +*******************************************************************************/ + +#include +#include + +/*** +*wchar_t *_wcsrev(string) - reverse a wide-character string in place +* +*Purpose: +* Reverses the order of characters in the string. The terminating +* null character remains in place (wide-characters). +* +*Entry: +* wchar_t *string - string to reverse +* +*Exit: +* returns string - now with reversed characters +* +*Exceptions: +* +*******************************************************************************/ + +wchar_t * _CALLTYPE1 _wcsrev ( + wchar_t * string + ) +{ + wchar_t *start = string; + wchar_t *left = string; + wchar_t ch; + + while (*string++) /* find end of string */ + ; + string -= 2; + + while (left < string) + { + ch = *left; + *left++ = *string; + *string-- = ch; + } + + return(start); +} -- cgit v1.2.3