From dd57c01bef9bd24fc8000175f61bf6071901289a Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Mon, 7 May 2012 01:30:45 -0400 Subject: simplify yearday_to_daymonth() --- firmware/usbstack/usb_storage.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) (limited to 'firmware') diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index 2da3e85a34..c1f278b0ff 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c @@ -333,25 +333,15 @@ static enum { #if CONFIG_RTC static void yearday_to_daymonth(int yd, int y, int *d, int *m) { - static const char tnl[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; - static const char tl[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; - const char *t; - int i=0; - - if((y%4 == 0 && y%100 != 0) || y%400 == 0) - { - t=tl; - } - else - { - t=tnl; - } + static char t[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + + bool leap = (y%4 == 0 && y%100 != 0) || y%400 == 0; + t[2] = leap ? 29 : 28; + + int i; + for (i = 0; i < 12 && yd >= t[i]; i++) + yd -= t[i]; - while(i<12 && yd >= t[i]) - { - yd-=t[i]; - i++; - } *d = yd+1; *m = i; } @@ -757,8 +747,7 @@ static void handle_scsi(struct command_block_wrapper* cbw) struct storage_info info; unsigned int length = cbw->data_transfer_length; - unsigned int block_size = 0; - unsigned int block_count = 0; + unsigned int block_size, block_count; bool lun_present=true; unsigned char lun = cbw->lun; unsigned int block_size_mult = 1; -- cgit v1.2.3