summaryrefslogtreecommitdiffhomepage
path: root/src/u16_wcsncmp.c
blob: 66bbcb5ff48a4a6b70b8d651b0bfb209cdd5619b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*******************************************************************/
/*  u16ports: u16 variants of wide character string functions.     */
/*  Copyright (C) 2017  Z. Gilboa                                  */
/*  Released under the Standard MIT License; see COPYING.U16PORTS. */
/*******************************************************************/

#include <stdint.h>
#include <u16ports/u16ports.h>

int u16_wcsncmp(const uint16_t * src, const uint16_t * dst, size_t len)
{
	const uint16_t * lch;
	const uint16_t * rch;
	const uint16_t * cap;

	cap = src + len;
	lch = src;
	rch = dst;

	for (; lch<cap && *lch && *rch && *lch==*rch; lch++, rch++)
		(void)0;

	return (lch == cap) ? 0 : *lch - *rch;
}