home *** CD-ROM | disk | FTP | other *** search
/ Dr. Reference / dr_ref.zip / dr_ref / C_2_____ / STRLIB.ZIP / MEMCHR.C < prev    next >
Text File  |  1993-01-04  |  1KB  |  45 lines

  1.  
  2. /*  File   : memchr.c
  3.     Author : Richard A. O'Keefe.
  4.     Updated: 25 May 1984
  5.     Defines: memchr()
  6.  
  7.     memchr(src, chr, len)
  8.     searches the memory area pointed to by src extending for len bytes,
  9.     looking for an occurrence of the byte value chr.  It returns NullS
  10.     if there is no such occurrence.  Otherwise it returns a pointer to
  11.     the FIRST such occurrence.
  12.  
  13.     See the "Character Comparison" section in the READ-ME file.
  14. */
  15.  
  16. #include "strings.h"
  17.  
  18. #if     VaxAsm
  19.  
  20. char *memchr(src, chr, len)
  21.     char *src;
  22.     char chr;
  23.     int len;
  24.     {
  25.         asm("locc 8(ap),12(ap),*4(ap)");
  26.         asm("bneq L1");
  27.         asm("movl r1,r0");
  28.         asm("L1: ret");
  29.     }
  30.  
  31. #else  ~VaxAsm
  32.  
  33. char *memchr(src, chr, len)
  34.     register char *src;
  35.     register int chr;           /* should be char */
  36.     register int len;
  37.     {
  38.         while (--len >= 0)
  39.             if (*src++ == chr) return src-1;
  40.         return NullS;
  41.     }
  42.  
  43. #endif  VaxAsm
  44.  
  45.