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