home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ckc190.zip / ckvold.c < prev    next >
C/C++ Source or Header  |  1993-10-21  |  1KB  |  74 lines

  1. #module ckvold "1.0-003"
  2.  
  3. /* C K V O L D  --  C-Kermit file system support for VAX/VMS V4.  */
  4.  
  5. /* Edit history
  6.  * 001 22-Jan-91 wb  Initial version with memcpy, memmove
  7.  * 002 24-Apr-91 wb  Added memset
  8.  * 003 01-Jul-91 wb  Added strstr
  9.  * 004 26-Nov-91 wb  Added system
  10.  */
  11.  
  12. void *memcpy(d, s, n)
  13. void *d, *s;
  14. register int n;
  15. {
  16.     register char *ss = (char *)s, *dd = (char *)d;
  17.     while (n-- > 0)
  18.     *dd++ = *ss++;
  19.     return d;
  20. }
  21.  
  22. void *memmove(d, s, n)
  23. void *d;
  24. const void *s;
  25. register int n;
  26. {
  27.     register char *dd = (char *)d, *ss = (char *)s;
  28.     if (dd < ss || dd - ss >= n) {
  29.     while (n-- > 0)
  30.         *dd++ = *ss++;
  31.     } else if (n > 0) {
  32.     dd += n;
  33.     ss += n;
  34.     while (n-- > 0)
  35.         *--dd = *--ss;
  36.     }
  37.     return d;
  38. }
  39.  
  40. void *memset(d, c, n)
  41. void *d;
  42. register int c;
  43. register int n;
  44. {
  45.     register char *dd = (char *)d;
  46.     while (n-- > 0)
  47.     *dd++ = c;
  48.     return d;
  49. }
  50.  
  51. char *strstr(a, b)
  52. const char *a;
  53. const char *b;
  54. {
  55.     int len;
  56.  
  57.     if (!a || !b) return((char *)0);
  58.     if (!*b) return(a);
  59.     len = strlen(b);
  60.     while (*a) {
  61.         if (!strncmp(a, b, len)) return(a);
  62.         a++;
  63.     }
  64.     return((char *)0);
  65. }        
  66.  
  67. int system(s)
  68. char *s;
  69. {
  70.     while (*s == ' ' || *s == '$') s++;
  71.     zsyscmd(s);
  72.     return(1);
  73. }
  74.