Reactos
at master 56 lines 1.6 kB view raw
1/*** 2*mbsninc.c - Increment MBCS string pointer by specified char count. 3* 4* Copyright (c) Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* Increment MBCS string pointer by specified char count. 8* 9*******************************************************************************/ 10#ifndef _MBCS 11 #error This file should only be compiled with _MBCS defined 12#endif 13 14#include <corecrt_internal_mbstring.h> 15#include <mbstring.h> 16#include <stddef.h> 17 18/*** 19*_mbsninc - Increment MBCS string pointer by specified char count. 20* 21*Purpose: 22* Increment the supplied string pointer by the specified number 23* of characters. MBCS characters are handled correctly. 24* 25*Entry: 26* const unsigned char *string = pointer to string 27* unsigned int ccnt = number of char to advance the pointer 28* 29*Exit: 30* Returns pointer after advancing it. 31* Returns pointer to end of string if string is not ccnt chars long. 32* Returns nullptr is supplied pointer is nullptr. 33* 34*Exceptions: 35* 36*******************************************************************************/ 37 38extern "C" unsigned char * __cdecl _mbsninc_l( 39 const unsigned char *string, 40 size_t ccnt, 41 _locale_t plocinfo 42 ) 43{ 44 if (string == nullptr) 45 return nullptr; 46 47 return const_cast<unsigned char*>(string) + (unsigned int)_mbsnbcnt_l(string, ccnt, plocinfo); 48} 49 50extern "C" unsigned char * (__cdecl _mbsninc)( 51 const unsigned char *string, 52 size_t ccnt 53 ) 54{ 55 return _mbsninc_l(string, ccnt, nullptr); 56}