version 1.65, 2001/04/06 16:46:59 |
version 1.66, 2001/04/14 17:04:42 |
|
|
off_t size; |
off_t size; |
int setimes, targisdir, wrerrno = 0; |
int setimes, targisdir, wrerrno = 0; |
char ch, *cp, *np, *targ, *why, *vect[1], buf[2048]; |
char ch, *cp, *np, *targ, *why, *vect[1], buf[2048]; |
int dummy_usec; |
|
struct timeval tv[2]; |
struct timeval tv[2]; |
|
|
|
#define atime tv[0] |
|
#define mtime tv[1] |
#define SCREWUP(str) { why = str; goto screwup; } |
#define SCREWUP(str) { why = str; goto screwup; } |
|
|
setimes = targisdir = 0; |
setimes = targisdir = 0; |
|
|
if (ch == '\n') |
if (ch == '\n') |
*--cp = 0; |
*--cp = 0; |
|
|
#define getnum(t) (t) = 0; \ |
|
while (*cp >= '0' && *cp <= '9') (t) = (t) * 10 + (*cp++ - '0'); |
|
cp = buf; |
cp = buf; |
if (*cp == 'T') { |
if (*cp == 'T') { |
setimes++; |
setimes++; |
cp++; |
cp++; |
getnum(tv[1].tv_sec); |
mtime.tv_sec = strtol(cp, &cp, 10); |
if (*cp++ != ' ') |
if (!cp || *cp++ != ' ') |
SCREWUP("mtime.sec not delimited"); |
SCREWUP("mtime.sec not delimited"); |
getnum(dummy_usec); |
mtime.tv_usec = strtol(cp, &cp, 10); |
tv[1].tv_usec = 0; |
if (!cp || *cp++ != ' ') |
if (*cp++ != ' ') |
|
SCREWUP("mtime.usec not delimited"); |
SCREWUP("mtime.usec not delimited"); |
getnum(tv[0].tv_sec); |
atime.tv_sec = strtol(cp, &cp, 10); |
if (*cp++ != ' ') |
if (!cp || *cp++ != ' ') |
SCREWUP("atime.sec not delimited"); |
SCREWUP("atime.sec not delimited"); |
getnum(dummy_usec); |
atime.tv_usec = strtol(cp, &cp, 10); |
tv[0].tv_usec = 0; |
if (!cp || *cp++ != '\0') |
if (*cp++ != '\0') |
|
SCREWUP("atime.usec not delimited"); |
SCREWUP("atime.usec not delimited"); |
(void) atomicio(write, remout, "", 1); |
(void) atomicio(write, remout, "", 1); |
continue; |
continue; |