Bug #1432 ยป at.diff
| usr.bin/at/at.c | ||
|---|---|---|
|
static void list_jobs(long *, int);
|
||
|
static long nextjob(void);
|
||
|
static time_t ttime(const char *arg);
|
||
|
static char * timer2str(time_t runtimer);
|
||
|
static int in_job_list(long, long *, int);
|
||
|
static long *get_job_list(int, char *[], int *);
|
||
| ... | ... | |
|
perr("cannot give away file");
|
||
|
close(fd2);
|
||
|
/* Print output. */
|
||
|
char *timestr = timer2str(runtimer);
|
||
|
fprintf(stderr, "Job %ld will be executed using /bin/sh\n", jobno);
|
||
|
fprintf(stderr, "Job %ld at %s\n", jobno, timestr);
|
||
|
free(timestr);
|
||
|
}
|
||
|
static int
|
||
| ... | ... | |
|
DIR *spool;
|
||
|
struct dirent *dirent;
|
||
|
struct stat buf;
|
||
|
struct tm runtime;
|
||
|
unsigned long ctm;
|
||
|
char queue;
|
||
|
long jobno;
|
||
|
time_t runtimer;
|
||
|
char timestr[TIMESIZE];
|
||
|
char *timestr;
|
||
|
int first=1;
|
||
|
|
||
|
setlocale(LC_TIME, "");
|
||
| ... | ... | |
|
continue;
|
||
|
runtimer = 60*(time_t) ctm;
|
||
|
runtime = *localtime(&runtimer);
|
||
|
strftime(timestr, TIMESIZE, nl_langinfo(D_T_FMT), &runtime);
|
||
|
timestr = timer2str(runtimer);
|
||
|
if (first) {
|
||
|
printf("Date\t\t\t\tOwner\t\tQueue\tJob#\n");
|
||
|
first=0;
|
||
| ... | ... | |
|
queue,
|
||
|
(S_IXUSR & buf.st_mode) ? "":"(done)",
|
||
|
jobno);
|
||
|
free(timestr);
|
||
|
}
|
||
|
closedir(spool);
|
||
| ... | ... | |
|
"out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]");
|
||
|
}
|
||
|
/* The caller must free up the memory. */
|
||
|
static char *
|
||
|
timer2str(time_t runtimer)
|
||
|
{
|
||
|
struct tm runtime;
|
||
|
char *timestr;
|
||
|
size_t rv;
|
||
|
timestr = malloc(TIMESIZE);
|
||
|
if (timestr == NULL)
|
||
|
panic("out of memory");
|
||
|
runtime = *localtime(&runtimer);
|
||
|
rv = strftime(timestr, TIMESIZE, nl_langinfo(D_T_FMT), &runtime);
|
||
|
if (rv == 0)
|
||
|
panic("TIMESIZE too low");
|
||
|
return (timestr);
|
||
|
}
|
||
|
static long *
|
||
|
get_job_list(int argc, char *argv[], int *joblen)
|
||
|
{
|
||