mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 10:19:26 +00:00
Allow 'shutdown datespec' to work into the next century. Handle dates
in the 22nd century and beyond even though it's irrelevant with a 32-bit time_t which expires in the year 2038.
This commit is contained in:
parent
eb794faa90
commit
2dc3422762
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=32328
@ -30,7 +30,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: shutdown.c,v 1.7 1997/06/19 14:28:32 charnier Exp $
|
* $Id: shutdown.c,v 1.8 1997/08/23 14:10:34 joerg Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
@ -350,6 +350,7 @@ getoffset(timearg)
|
|||||||
register struct tm *lt;
|
register struct tm *lt;
|
||||||
register char *p;
|
register char *p;
|
||||||
time_t now;
|
time_t now;
|
||||||
|
int this_year;
|
||||||
|
|
||||||
if (!strcasecmp(timearg, "now")) { /* now */
|
if (!strcasecmp(timearg, "now")) { /* now */
|
||||||
offset = 0;
|
offset = 0;
|
||||||
@ -381,7 +382,17 @@ getoffset(timearg)
|
|||||||
|
|
||||||
switch(strlen(timearg)) {
|
switch(strlen(timearg)) {
|
||||||
case 10:
|
case 10:
|
||||||
|
this_year = lt->tm_year;
|
||||||
lt->tm_year = ATOI2(timearg);
|
lt->tm_year = ATOI2(timearg);
|
||||||
|
/*
|
||||||
|
* check if the specified year is in the next century.
|
||||||
|
* allow for one year of user error as many people will
|
||||||
|
* enter n - 1 at the start of year n.
|
||||||
|
*/
|
||||||
|
if (lt->tm_year < (this_year % 100) - 1)
|
||||||
|
lt->tm_year += 100;
|
||||||
|
/* adjust for centuries beyond 2000 */
|
||||||
|
lt->tm_year += (this_year - (this_year % 100));
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case 8:
|
case 8:
|
||||||
lt->tm_mon = ATOI2(timearg);
|
lt->tm_mon = ATOI2(timearg);
|
||||||
|
Loading…
Reference in New Issue
Block a user