home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 109.lha / PD_C / lib / memchr.c < prev    next >
C/C++ Source or Header  |  1986-11-20  |  781b  |  36 lines

  1. /*
  2.  * memchr - search for a byte
  3.  *
  4.  * CHARBITS should be defined only if the compiler lacks "unsigned char".
  5.  * It should be a mask, e.g. 0377 for an 8-bit machine.
  6.  */
  7.  
  8. #define  NULL      0
  9.  
  10. #ifndef CHARBITS
  11. #        define    UNSCHAR(c)          ((unsigned char)(c))
  12. #else
  13. #        define    UNSCHAR(c)          ((c)&CHARBITS)
  14. #endif
  15.  
  16. VOIDSTAR
  17. memchr(s, ucharwanted, size)
  18. CONST VOIDSTAR s;
  19. int ucharwanted;
  20. SIZET size;
  21. {
  22.          register CONST char *scan;
  23.          register SIZET n;
  24.          register int uc;
  25.  
  26.          scan = s;
  27.          uc = UNSCHAR(ucharwanted);
  28.          for (n = size; n > 0; n--)
  29.                    if (UNSCHAR(*scan) == uc)
  30.                              return(scan);
  31.                    else
  32.                              scan++;
  33.  
  34.          return(NULL);
  35. }
  36.