X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/1b2d733af23599b2cc173c8a275b895760f66258..d6e6ecbdbf0452ec95afc98c2700076e39b4692f:/syscall.c?ds=sidebyside diff --git a/syscall.c b/syscall.c index 31528590..5bf3e476 100644 --- a/syscall.c +++ b/syscall.c @@ -95,3 +95,59 @@ char *do_mktemp(char *template) if (dry_run) return NULL; return mktemp(template); } + +int do_stat(const char *fname, STRUCT_STAT *st) +{ +#if HAVE_OFF64_T + return stat64(fname, st); +#else + return stat(fname, st); +#endif +} + +#if SUPPORT_LINKS +int do_lstat(const char *fname, STRUCT_STAT *st) +{ +#if HAVE_OFF64_T + return lstat64(fname, st); +#else + return lstat(fname, st); +#endif +} +#endif + +int do_fstat(int fd, STRUCT_STAT *st) +{ +#if HAVE_OFF64_T + return fstat64(fd, st); +#else + return fstat(fd, st); +#endif +} + +OFF_T do_lseek(int fd, OFF_T offset, int whence) +{ +#if HAVE_OFF64_T + return lseek64(fd, offset, whence); +#else + return lseek(fd, offset, whence); +#endif +} + +char *d_name(struct dirent *di) +{ +#if defined(SunOS) && SunOS >= 50 + static int first = 1; + static int broken; + if (first) { + first = 0; + if (!di->d_name[0] && strcmp(".", di->d_name-2)==0) { + fprintf(stderr,"WARNING: broken readdir\n"); + broken = 1; + } + } + if (broken) + return (di->d_name - 2); +#endif + return di->d_name; +}