1/*
2FUNCTION
3	<<memchr>>---find character in memory
4
5INDEX
6	memchr
7
8ANSI_SYNOPSIS
9	#include <string.h>
10	void *memchr(const void *<[src]>, int <[c]>, size_t <[length]>);
11
12TRAD_SYNOPSIS
13	#include <string.h>
14	void *memchr(<[src]>, <[c]>, <[length]>)
15	void *<[src]>;
16	void *<[c]>;
17	size_t <[length]>;
18
19DESCRIPTION
20	This function searches memory starting at <<*<[src]>>> for the
21	character <[c]>.  The search only ends with the first
22	occurrence of <[c]>, or after <[length]> characters; in
23	particular, <<NULL>> does not terminate the search.
24
25RETURNS
26	If the character <[c]> is found within <[length]> characters
27	of <<*<[src]>>>, a pointer to the character is returned. If
28	<[c]> is not found, then <<NULL>> is returned.
29
30PORTABILITY
31<<memchr>>  requires no supporting OS subroutines.
32
33QUICKREF
34	memchr ansi pure
35
36*/
37
38#include <ansidecl.h>
39#ifdef __STDC__
40#include <stddef.h>
41#else
42#define size_t unsigned long
43#endif
44
45PTR
46memchr (src_void, c, length)
47     register const PTR src_void;
48     int c;
49     size_t length;
50{
51  const unsigned char *src = (const unsigned char *)src_void;
52
53  while (length-- > 0)
54  {
55    if (*src == c)
56     return (PTR)src;
57    src++;
58  }
59  return NULL;
60}
61