From: Adam Glass Date: Tue, 6 Apr 1993 00:00:00 +0000 (+0000) Subject: Fixes for crontab and crond X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/7b1a346cd2997fb7ee50ffef1dde199359a52220 Fixes for crontab and crond /usr/src/libexec/crond fixed such that it compiles quitely, many type casts cleaned up and/or added. /usr/usr/usr.bin/crontab fixed such that it compiles quitely, installs with the correct permissions, installs both manual pages, Updated crontab.386bsd to be a pseudo model crontab much more suited to 386bsd. AUTHOR: Adam Glass (glass@postgres.berkeley.edu) 386BSD-Patchkit: patch00131 --- diff --git a/usr/src/libexec/crond/crond.c b/usr/src/libexec/crond/crond.c index 971c0fab13..c9f905993d 100644 --- a/usr/src/libexec/crond/crond.c +++ b/usr/src/libexec/crond/crond.c @@ -18,6 +18,14 @@ static char rcsid[] = "$Header: /home/local/site/cron2.1/orig/RCS/crond.c,v 2.2 * I'll try to keep a version up to date. I can be reached as follows: * Paul Vixie, 329 Noe Street, San Francisco, CA, 94114, (415) 864-7013, * paul@vixie.sf.ca.us || {hoptoad,pacbell,decwrl,crash}!vixie!paul + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00131 + * -------------------- ----- ---------------------- + * + * 06 Apr 93 Adam Glass Fixes so it compiles quitely + * */ @@ -262,7 +270,7 @@ sigchld_handler() for (;;) { - pid = wait3(&waiter, WNOHANG, (struct rusage *)0); + pid = wait3((int *) &waiter, WNOHANG, (struct rusage *)0); switch (pid) { case -1: diff --git a/usr/src/libexec/crond/do_command.c b/usr/src/libexec/crond/do_command.c index 62b3eeb6e6..e5e7f08f8b 100644 --- a/usr/src/libexec/crond/do_command.c +++ b/usr/src/libexec/crond/do_command.c @@ -29,6 +29,14 @@ static char rcsid[] = "$Header: do_command.c,v 2.1 90/07/18 00:23:38 vixie Exp $ * * Revision 1.1 87/01/26 23:47:00 paul * Initial revision + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00131 + * -------------------- ----- ---------------------- + * + * 06 Apr 93 Adam Glass Fixes so it compiles quitely + * */ /* Copyright 1988,1990 by Paul Vixie @@ -97,7 +105,7 @@ do_command(cmd, u) } -static void +void child_process(cmd, u) char *cmd; user *u; @@ -424,7 +432,7 @@ child_process(cmd, u) if (mailto) { extern FILE *popen(); - extern char *sprintf(), *print_cmd(); + extern char *print_cmd(); register char **env; auto char mailcmd[MAX_COMMAND]; auto char hostname[MAXHOSTNAMELEN]; @@ -513,7 +521,7 @@ child_process(cmd, u) Debug(DPROC, ("[%d] waiting for grandchild #%d to finish\n", getpid(), children)) - pid = wait(&waiter); + pid = wait((int *) &waiter); if (pid < OK) { Debug(DPROC, ("[%d] no more grandchildren--mail written?\n", getpid())) diff --git a/usr/src/libexec/crond/env.c b/usr/src/libexec/crond/env.c index 01199db03a..bb9a0c6c14 100644 --- a/usr/src/libexec/crond/env.c +++ b/usr/src/libexec/crond/env.c @@ -18,6 +18,14 @@ static char rcsid[] = "$Header: env.c,v 2.2 90/07/18 00:23:48 vixie Exp $"; * I'll try to keep a version up to date. I can be reached as follows: * Paul Vixie, 329 Noe Street, San Francisco, CA, 94114, (415) 864-7013, * paul@vixie.sf.ca.us || {hoptoad,pacbell,decwrl,crash}!vixie!paul + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00131 + * -------------------- ----- ---------------------- + * + * 06 Apr 93 Adam Glass Fixes so it compiles quitely + * */ @@ -92,7 +100,6 @@ load_env(envstr, f) * FALSE = not an env setting (file was repositioned) * TRUE = was an env setting */ - char *strcpy(), *sprintf(); long filepos; int fileline; char name[MAX_TEMPSTR], val[MAX_ENVSTR]; diff --git a/usr/src/libexec/crond/misc.c b/usr/src/libexec/crond/misc.c index 46b5d14877..d906f87394 100644 --- a/usr/src/libexec/crond/misc.c +++ b/usr/src/libexec/crond/misc.c @@ -5,6 +5,14 @@ static char rcsid[] = "$Header: misc.c,v 2.1 90/07/18 00:24:33 vixie Exp $"; /* vix 26jan87 [RCS has the rest of the log] * vix 15jan87 [added TIOCNOTTY, thanks csg@pyramid] * vix 30dec86 [written] + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00131 + * -------------------- ----- ---------------------- + * + * 06 Apr 93 Adam Glass Fixes so it compiles quitely + * */ /* Copyright 1988,1990 by Paul Vixie @@ -286,7 +294,6 @@ be_different() * do an IOCTL to void tty association */ - extern int getpid(), setpgrp(), open(), ioctl(), close(); auto int fd; (void) setpgrp(0, getpid()); diff --git a/usr/src/libexec/crond/user.c b/usr/src/libexec/crond/user.c index 5e288bd78c..9d99852e22 100644 --- a/usr/src/libexec/crond/user.c +++ b/usr/src/libexec/crond/user.c @@ -3,6 +3,14 @@ static char rcsid[] = "$Header: user.c,v 2.1 90/07/18 00:23:45 vixie Exp $"; #endif /* vix 26jan87 [log is in RCS file] + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00131 + * -------------------- ----- ---------------------- + * + * 06 Apr 93 Adam Glass Fixes so it compiles quitely + * */ /* Copyright 1988,1990 by Paul Vixie @@ -54,7 +62,7 @@ load_user(crontab_fd, name, uid, gid, dir, shell) char *dir; char *shell; { - char *malloc(), *sprintf(), **env_init(), **env_set(); + char **env_init(), **env_set(); int load_env(); entry *load_entry(); diff --git a/usr/src/usr.bin/crontab/Makefile b/usr/src/usr.bin/crontab/Makefile index fa6a1e03fc..20e43fe7b9 100644 --- a/usr/src/usr.bin/crontab/Makefile +++ b/usr/src/usr.bin/crontab/Makefile @@ -1,8 +1,25 @@ - +# +# PATCHES MAGIC LEVEL PATCH THAT GOT US HERE +# -------------------- ----- ---------------------- +# CURRENT PATCH LEVEL: 1 00131 +# -------------------- ----- ---------------------- +# +# 06 Apr 93 Adam Glass Fixed so manual pages install, install crontab +# with proper permissions and owners +# PROG= crontab SRCS= crontab.c misc.c entry.c env.c CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../../libexec/crond -DDEBUGGING=1 -DBSD -DCRONDIR='"/var/cron"' -fstrength-reduce -MAN5= crontab.0 +BINOWN =root +BINMODE=4111 +MAN1= crontab.0 +CLEANFILES=crontab.5.0 + +crontab.0: crontab.5.0 + +afterinstall: + install -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} crontab.5.0 \ + ${DESTDIR}${MANDIR}5/crontab.0 .include .PATH: ${.CURDIR}/../../libexec/crond diff --git a/usr/src/usr.bin/crontab/crontab.386bsd b/usr/src/usr.bin/crontab/crontab.386bsd index 8157b97ad6..9070efa38c 100644 --- a/usr/src/usr.bin/crontab/crontab.386bsd +++ b/usr/src/usr.bin/crontab/crontab.386bsd @@ -1,8 +1,14 @@ # /etc/crontab.src - root's crontab for Vixie's cron # +# PATCHES MAGIC LEVEL PATCH THAT GOT US HERE +# -------------------- ----- ---------------------- +# CURRENT PATCH LEVEL: 1 00131 +# -------------------- ----- ---------------------- +# +# 06 Apr 93 Adam Glass Fixed to be a better template for 386bsd +# SHELL=/bin/sh -PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin -MAILTO=rich +PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # #minute hour mday month wday command @@ -12,10 +18,10 @@ HOME=/var/log #37 4 * * * ./cronrun-day > cronout-day 2>&1 #43 4 * * Sun ./cronrun-wk > cronout-wk 2>&1 #51 4 1 * * ./cronrun-mon > cronout-mon 2>&1 -#0/15 * * * * /usr/libexec/atrun +0/15 * * * * /usr/libexec/atrun 0 2 * * * /etc/daily > /var/log/daily.out 2>&1 30 3 * * 6 /etc/weekly > /var/log/weekly.out 2>&1 30 5 1 * * /etc/monthly > /var/log/monthly.out 2>&1 #45 * * * * /bin/echo /usr/local/bin/uucico -r1 | /bin/su uucpa -0-59/5 * * * * /usr/local/bin/uucico -r1 -37 * * * * touch /var/spool/uucp/jpunix/C./C.A0000 +#0-59/5 * * * * /usr/local/bin/uucico -r1 +#37 * * * * touch /var/spool/uucp/jpunix/C./C.A0000 diff --git a/usr/src/usr.bin/crontab/crontab.5 b/usr/src/usr.bin/crontab/crontab.5 deleted file mode 100644 index fb981eaf88..0000000000 --- a/usr/src/usr.bin/crontab/crontab.5 +++ /dev/null @@ -1,188 +0,0 @@ -.\" $Header: crontab.5,v 2.1 90/07/18 00:23:50 vixie Exp $ -.\" -.\"/* Copyright 1988,1990 by Paul Vixie -.\" * All rights reserved -.\" * -.\" * Distribute freely, except: don't remove my name from the source or -.\" * documentation (don't take credit for my work), mark your changes (don't -.\" * get me blamed for your possible bugs), don't alter or remove this -.\" * notice. May be sold if buildable source is provided to buyer. No -.\" * warrantee of any kind, express or implied, is included with this -.\" * software; use at your own risk, responsibility for damages (if any) to -.\" * anyone resulting from the use of this software rests entirely with the -.\" * user. -.\" * -.\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and -.\" * I'll try to keep a version up to date. I can be reached as follows: -.\" * Paul Vixie, 329 Noe Street, San Francisco, CA, 94114, (415) 864-7013, -.\" * paul@vixie.sf.ca.us || {hoptoad,pacbell,decwrl,crash}!vixie!paul -.\" */ -.TH CRONTAB 5 "15 January 1990" -.UC 4 -.SH NAME -crontab \- tables for driving cron -.SH DESCRIPTION -A -.I crontab -file contains instructions to the -.IR crond (8) -daemon of the general form: ``run this command at this time on this date''. -Each user has their own crontab, and commands in any given crontab will be -executed as the user who owns the crontab. Uucp and News will usually have -their own crontabs, eliminating the need for explicitly running -.IR su (1) -as part of a cron command. -.PP -Blank lines and leading spaces and tabs are ignored. Lines whose first -non-space character is a pound-sign (#) are comments, and are ignored. -Note that comments are not allowed on the same line as cron commands, since -they will be taken to be part of the command. Similarly, comments are not -allowed on the same line as environment variable settings. -.PP -An active line in a crontab will be either an environment setting or a cron -command. An environment setting is of the form, -.PP - name = value -.PP -where the spaces around the equal-sign (=) are optional, and any subsequent -non-leading spaces in -.I value -will be part of the value assigned to -.IR name . -The -.I value -string may be placed in quotes (single or double, but matching) to preserve -leading or trailing blanks. -.PP -Several environment variables are set up -automatically by the -.IR crond (8) -daemon from the /etc/passwd line of the crontab's owner: USER, HOME, and SHELL. -HOME and SHELL may be overridden by settings in the crontab; USER may not. -.PP -(Note: for UUCP, always set SHELL=/bin/sh, or -.IR crond (8) -will cheerfully try to execute your commands using /usr/lib/uucp/uucico.) -.PP -(Another note: the USER variable is sometimes called LOGNAME or worse on -System V... on these systems, LOGNAME will be set rather than USER.) -.PP -In addition to USER, HOME, and SHELL, -.IR crond (8) -will look at MAILTO if it has any reason to send mail as a result of running -commands in ``this'' crontab. If MAILTO is defined (and non-empty), mail is -sent to the user so named. If MAILTO is defined but empty (MAILTO=""), no -mail will be sent. Otherwise mail is sent to the owner of the crontab. This -option is useful if you decide on /bin/mail instead of /usr/lib/sendmail as -your mailer when you install cron -- /bin/mail doesn't do aliasing, and UUCP -usually doesn't read its mail. -.PP -The format of a cron command is very much the V7 standard, with a number of -upward-compatible extensions. Each line has five time and date fields, -followed by a command. Commands are executed by -.IR crond (8) -when the minute, hour, and month of year fields match the current time, -.I and -when at least one of the two day fields (day of month, or day of week) -match the current time (see ``Note'' below). -.IR crond (8) -examines cron entries once every minute. -The time and date fields are: -.IP -.ta 1.5i -field allowed values -.br ------ -------------- -.br -minute 0-59 -.br -hour 0-23 -.br -day of month 0-31 -.br -month 0-12 (or names, see below) -.br -day of week 0-7 (0 or 7 is Sun, or use names) -.br -.PP -A field may be an asterisk (*), which always matches the -current time. -.PP -Ranges of numbers are allowed. Ranges are two numbers separated -with a hyphen. The specified range is inclusive. For example, -8-11 for an ``hours'' entry specifies execution at hours 8, 9, 10 -and 11. -.PP -Lists are allowed. A list is a set of numbers (or ranges) -separated by commas. Examples: ``1,2,5,9'', ``0-4,8-12''. -.PP -Step values can be used in conjunction with ranges. Following -a range with ``/'' specifies skips of the number's value -through the range. For example, ``0-23/2'' can be used in the hours -field to specify command execution every other hour (the alternative -in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22''). -.PP -Names can also be used for the ``month'' and ``day of week'' -fields. Use the first three letters of the particular -day or month (case doesn't matter). Ranges or -lists of names are not allowed. -.PP -The ``sixth'' field (the rest of the line) specifies the command to be -run. -The entire command portion of the line, up to a newline or % -character, will be executed by the user's login shell or by the shell -specified in the SHELL variable of the cronfile. -Percent-signs (%) in the command, unless escaped with backslash -(\\), will be changed into newline characters, and all data -after the first % will be sent to the command as standard -input. -.PP -Note: The day of a command's execution can be specified by two -fields \(em day of month, and day of week. If both fields are -restricted (ie, aren't *), the command will be run when -.I either -field matches the current time. For example, -.br -``30 4 1,15 * 5'' -would cause a command to be run at 4:30 am on the 1st and 15th of each -month, plus every Friday. -.SH EXAMPLE CRON FILE -.nf - -# use /bin/sh to run commands, no matter what /etc/passwd says -SHELL=/bin/sh -# mail any output to `paul', no matter whose crontab this is -MAILTO=paul -# -# run five minutes after midnight, every day -5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 -# run at 2:15pm on the first of every month -- output mailed to paul -15 14 1 * * $HOME/bin/monthly -# run at 10 pm on weekdays, annoy Joe -0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% -23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" -5 4 * * sun echo "run at 5 after 4 every sunday" -.fi -.SH SEE ALSO -crond(8), crontab(1) -.SH EXTENSIONS -When specifying day of week, both day 0 and day 7 will be considered Sunday. -BSD and ATT seem to disagree about this. -.PP -Lists and ranges are allowed to co-exist in the same field. "1-3,7-9" would -be rejected by ATT or BSD cron -- they want to see "1-3" or "7,8,9" ONLY. -.PP -Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9". -.PP -Names of months or days of the week can be specified by name. -.PP -Environment variables can be set in the crontab. In BSD or ATT, the -environment handed to child processes is basically the one from /etc/rc. -.PP -Command output is mailed to the crontab owner (BSD can't do this), can be -mailed to a person other than the crontab owner (SysV can't do this), or the -feature can be turned off and no mail will be sent at all (SysV can't do this -either). -.SH AUTHOR -.nf -Paul Vixie, paul@vixie.sf.ca.us diff --git a/usr/src/usr.bin/crontab/crontab.5.5 b/usr/src/usr.bin/crontab/crontab.5.5 new file mode 100644 index 0000000000..fb981eaf88 --- /dev/null +++ b/usr/src/usr.bin/crontab/crontab.5.5 @@ -0,0 +1,188 @@ +.\" $Header: crontab.5,v 2.1 90/07/18 00:23:50 vixie Exp $ +.\" +.\"/* Copyright 1988,1990 by Paul Vixie +.\" * All rights reserved +.\" * +.\" * Distribute freely, except: don't remove my name from the source or +.\" * documentation (don't take credit for my work), mark your changes (don't +.\" * get me blamed for your possible bugs), don't alter or remove this +.\" * notice. May be sold if buildable source is provided to buyer. No +.\" * warrantee of any kind, express or implied, is included with this +.\" * software; use at your own risk, responsibility for damages (if any) to +.\" * anyone resulting from the use of this software rests entirely with the +.\" * user. +.\" * +.\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and +.\" * I'll try to keep a version up to date. I can be reached as follows: +.\" * Paul Vixie, 329 Noe Street, San Francisco, CA, 94114, (415) 864-7013, +.\" * paul@vixie.sf.ca.us || {hoptoad,pacbell,decwrl,crash}!vixie!paul +.\" */ +.TH CRONTAB 5 "15 January 1990" +.UC 4 +.SH NAME +crontab \- tables for driving cron +.SH DESCRIPTION +A +.I crontab +file contains instructions to the +.IR crond (8) +daemon of the general form: ``run this command at this time on this date''. +Each user has their own crontab, and commands in any given crontab will be +executed as the user who owns the crontab. Uucp and News will usually have +their own crontabs, eliminating the need for explicitly running +.IR su (1) +as part of a cron command. +.PP +Blank lines and leading spaces and tabs are ignored. Lines whose first +non-space character is a pound-sign (#) are comments, and are ignored. +Note that comments are not allowed on the same line as cron commands, since +they will be taken to be part of the command. Similarly, comments are not +allowed on the same line as environment variable settings. +.PP +An active line in a crontab will be either an environment setting or a cron +command. An environment setting is of the form, +.PP + name = value +.PP +where the spaces around the equal-sign (=) are optional, and any subsequent +non-leading spaces in +.I value +will be part of the value assigned to +.IR name . +The +.I value +string may be placed in quotes (single or double, but matching) to preserve +leading or trailing blanks. +.PP +Several environment variables are set up +automatically by the +.IR crond (8) +daemon from the /etc/passwd line of the crontab's owner: USER, HOME, and SHELL. +HOME and SHELL may be overridden by settings in the crontab; USER may not. +.PP +(Note: for UUCP, always set SHELL=/bin/sh, or +.IR crond (8) +will cheerfully try to execute your commands using /usr/lib/uucp/uucico.) +.PP +(Another note: the USER variable is sometimes called LOGNAME or worse on +System V... on these systems, LOGNAME will be set rather than USER.) +.PP +In addition to USER, HOME, and SHELL, +.IR crond (8) +will look at MAILTO if it has any reason to send mail as a result of running +commands in ``this'' crontab. If MAILTO is defined (and non-empty), mail is +sent to the user so named. If MAILTO is defined but empty (MAILTO=""), no +mail will be sent. Otherwise mail is sent to the owner of the crontab. This +option is useful if you decide on /bin/mail instead of /usr/lib/sendmail as +your mailer when you install cron -- /bin/mail doesn't do aliasing, and UUCP +usually doesn't read its mail. +.PP +The format of a cron command is very much the V7 standard, with a number of +upward-compatible extensions. Each line has five time and date fields, +followed by a command. Commands are executed by +.IR crond (8) +when the minute, hour, and month of year fields match the current time, +.I and +when at least one of the two day fields (day of month, or day of week) +match the current time (see ``Note'' below). +.IR crond (8) +examines cron entries once every minute. +The time and date fields are: +.IP +.ta 1.5i +field allowed values +.br +----- -------------- +.br +minute 0-59 +.br +hour 0-23 +.br +day of month 0-31 +.br +month 0-12 (or names, see below) +.br +day of week 0-7 (0 or 7 is Sun, or use names) +.br +.PP +A field may be an asterisk (*), which always matches the +current time. +.PP +Ranges of numbers are allowed. Ranges are two numbers separated +with a hyphen. The specified range is inclusive. For example, +8-11 for an ``hours'' entry specifies execution at hours 8, 9, 10 +and 11. +.PP +Lists are allowed. A list is a set of numbers (or ranges) +separated by commas. Examples: ``1,2,5,9'', ``0-4,8-12''. +.PP +Step values can be used in conjunction with ranges. Following +a range with ``/'' specifies skips of the number's value +through the range. For example, ``0-23/2'' can be used in the hours +field to specify command execution every other hour (the alternative +in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22''). +.PP +Names can also be used for the ``month'' and ``day of week'' +fields. Use the first three letters of the particular +day or month (case doesn't matter). Ranges or +lists of names are not allowed. +.PP +The ``sixth'' field (the rest of the line) specifies the command to be +run. +The entire command portion of the line, up to a newline or % +character, will be executed by the user's login shell or by the shell +specified in the SHELL variable of the cronfile. +Percent-signs (%) in the command, unless escaped with backslash +(\\), will be changed into newline characters, and all data +after the first % will be sent to the command as standard +input. +.PP +Note: The day of a command's execution can be specified by two +fields \(em day of month, and day of week. If both fields are +restricted (ie, aren't *), the command will be run when +.I either +field matches the current time. For example, +.br +``30 4 1,15 * 5'' +would cause a command to be run at 4:30 am on the 1st and 15th of each +month, plus every Friday. +.SH EXAMPLE CRON FILE +.nf + +# use /bin/sh to run commands, no matter what /etc/passwd says +SHELL=/bin/sh +# mail any output to `paul', no matter whose crontab this is +MAILTO=paul +# +# run five minutes after midnight, every day +5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 +# run at 2:15pm on the first of every month -- output mailed to paul +15 14 1 * * $HOME/bin/monthly +# run at 10 pm on weekdays, annoy Joe +0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% +23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" +5 4 * * sun echo "run at 5 after 4 every sunday" +.fi +.SH SEE ALSO +crond(8), crontab(1) +.SH EXTENSIONS +When specifying day of week, both day 0 and day 7 will be considered Sunday. +BSD and ATT seem to disagree about this. +.PP +Lists and ranges are allowed to co-exist in the same field. "1-3,7-9" would +be rejected by ATT or BSD cron -- they want to see "1-3" or "7,8,9" ONLY. +.PP +Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9". +.PP +Names of months or days of the week can be specified by name. +.PP +Environment variables can be set in the crontab. In BSD or ATT, the +environment handed to child processes is basically the one from /etc/rc. +.PP +Command output is mailed to the crontab owner (BSD can't do this), can be +mailed to a person other than the crontab owner (SysV can't do this), or the +feature can be turned off and no mail will be sent at all (SysV can't do this +either). +.SH AUTHOR +.nf +Paul Vixie, paul@vixie.sf.ca.us diff --git a/usr/src/usr.bin/crontab/crontab.c b/usr/src/usr.bin/crontab/crontab.c index a2c290d50f..c457ca1747 100644 --- a/usr/src/usr.bin/crontab/crontab.c +++ b/usr/src/usr.bin/crontab/crontab.c @@ -22,6 +22,14 @@ static char rcsid[] = "$Header: /home/local/site/cron2.1/orig/RCS/crontab.c,v 2. * * Revision 1.1 87/01/26 23:49:06 paul * Initial revision + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00131 + * -------------------- ----- ---------------------- + * + * 06 Apr 93 Adam Glass Fixes so it compiles quitely + * */ /* Copyright 1988,1990 by Paul Vixie @@ -71,7 +79,7 @@ extern void log_it(); static char *Options[] = {"???", "list", "delete", "replace"}; #endif -static void +void usage() { fprintf(stderr, "usage: %s [-u user] ...\n", ProgramName); @@ -86,8 +94,8 @@ main(argc, argv) int argc; char *argv[]; { - void parse_args(), set_cron_uid(), set_cron_cwd(), - list_cmd(), delete_cmd(), replace_cmd(); + void parse_args(), set_cron_uid(), set_cron_cwd(), + list_cmd(), delete_cmd(), replace_cmd(); Pid = getpid(); ProgramName = argv[0]; @@ -117,7 +125,7 @@ main(argc, argv) } -static void + void parse_args(argc, argv) int argc; char *argv[]; @@ -219,7 +227,7 @@ parse_args(argc, argv) } -static void + void list_cmd() { extern errno; @@ -247,7 +255,7 @@ list_cmd() } -static void + void delete_cmd() { extern errno; @@ -269,7 +277,7 @@ delete_cmd() } -static void + void check_error(msg) char *msg; { @@ -278,10 +286,9 @@ check_error(msg) } -static void + void replace_cmd() { - char *sprintf(); entry *load_entry(); int load_env(); int unlink(); @@ -318,7 +325,7 @@ replace_cmd() fflush(tmp); rewind(tmp); if (ferror(tmp)) { - fprintf("%s: error while writing new crontab to %s\n", + fprintf(stderr, "%s: error while writing new crontab to %s\n", ProgramName, tn); fclose(tmp); unlink(tn); exit(ERROR_EXIT); @@ -383,7 +390,7 @@ replace_cmd() } -static void + void poke_daemon() { #if defined(BSD)