1/*
2 * Copyright 2008, Axel D��rfler, axeld@pinc-software.de.
3 * Distributed under the terms of the MIT license.
4 */
5
6
7#include <stdbool.h>
8#include <string.h>
9#include <SupportDefs.h>
10
11
12#define LACKS_ZERO_BYTE(value) \
13	(((value - 0x01010101) & ~value & 0x80808080) == 0)
14
15int
16strcmp(char const *a, char const *b)
17{
18	while (true) {
19		int cmp = (unsigned char)*a - (unsigned char)*b++;
20		if (cmp != 0 || *a++ == '\0')
21			return cmp;
22	}
23}
24