X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/e63b2f75607905fedf00cfd9fe644b26af715ffd..0dd441e803f3563839541e7526f8294032aa7743:/avr/cmd_date.c diff --git a/avr/cmd_date.c b/avr/cmd_date.c index 3beebee..cbc4a32 100644 --- a/avr/cmd_date.c +++ b/avr/cmd_date.c @@ -1,18 +1,18 @@ /* + * (C) Copyright 2014 Leo C. + * * (C) Copyright 2001 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * - * SPDX-License-Identifier: GPL-2.0+ + * SPDX-License-Identifier: GPL-2.0 */ /* * RTC, Date & Time support: get and set date & time */ -#include "common.h" -#include +#include "cmd_date.h" #include "time.h" #include "rtc.h" -#include "command.h" /* @@ -123,20 +123,22 @@ int mk_date (const char *datestr, struct tm *tmp) return (-1); } -command_ret_t do_date(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +command_ret_t do_date(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[]) { struct tm t; char buf[30]; - int rcode = CMD_RET_SUCCESS; + int rc; + command_ret_t rcode = CMD_RET_FAILURE; (void) cmdtp; (void) flag; switch (argc) { case 2: /* set date & time */ /* initialize t with current time */ - rcode = rtc_get (&t); - - if(!rcode) { + if(rtc_get(&t) < 0) { + my_puts_P(PSTR("## Get date failed\n")); + break; + } else { /* insert new date & time */ if (mk_date (argv[1], &t) != 0) { my_puts_P(PSTR("## Bad date format\n")); @@ -148,22 +150,24 @@ command_ret_t do_date(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) gmtime_r(&time, &t); /* and write to RTC */ - rcode = rtc_set (&t); - if(rcode) + if(rtc_set(&t) < 0) { my_puts_P(PSTR("## Set date failed\n")); - } else { - my_puts_P(PSTR("## Get date failed\n")); + break; + } } /* FALL TROUGH */ case 1: /* get date & time */ - rcode = rtc_get (&t); - - if (rcode) { + rc = rtc_get(&t); + if (rc >= 0) { + asctime_r(&t, buf); + printf_P(PSTR("%s"), buf); + if (rc == 1) + printf_P(PSTR(" (Invalid)")); + putchar('\n'); + rcode = CMD_RET_SUCCESS; + } else { my_puts_P(PSTR("## Get date failed\n")); - break; } - asctime_r(&t, buf); - printf_P(PSTR("%s\n"), buf); break; default: