From f7483ab7b10f3611421bdfb623a6db3a5c83dbec Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 8 Aug 2009 15:14:10 +0000 Subject: [PATCH] strftime fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2014 42af7a65-404d-4744-a932-0658087f49c3 --- lib/lib_strftime.c | 21 +++++++++++++++------ netutils/thttpd/fdwatch.c | 10 ++++++---- netutils/thttpd/libhttpd.c | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/lib_strftime.c b/lib/lib_strftime.c index 02cce388be..0085869739 100644 --- a/lib/lib_strftime.c +++ b/lib/lib_strftime.c @@ -1,7 +1,7 @@ /**************************************************************************** * lib/lib_strftime.c * - * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2009 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -70,13 +70,13 @@ * Private Data ****************************************************************************/ -static const char *g_abbrevmonthname[12] = +static const char * const g_abbrevmonthname[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; -static const char *g_monthname[12] = +static const char * const g_monthname[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" @@ -163,12 +163,21 @@ size_t strftime(char *s, size_t max, const char *format, const struct tm *tm) /* Handle the format character */ + format++; len = 0; - value = 0; - str = "??"; - switch (*++format) + switch (*format++) { + /* %a: A three-letter abbreviation for the day of the week. */ + /* %A: The full name for the day of the week. */ + + case 'a': + case 'A': + { + len = snprintf(dest, chleft, "Day"); /* Not supported */ + } + break; + /* %h: Equivalent to %b */ case 'h': diff --git a/netutils/thttpd/fdwatch.c b/netutils/thttpd/fdwatch.c index 45673e3f4a..a402b8f715 100644 --- a/netutils/thttpd/fdwatch.c +++ b/netutils/thttpd/fdwatch.c @@ -177,7 +177,7 @@ void fdwatch_uninitialize(struct fdwatch_s *fw) void fdwatch_add_fd(struct fdwatch_s *fw, int fd, void *client_data, int rw) { - nvdbg("fd: %d\n", fd); + nvdbg("fd: %d client_data: %p\n", fd, client_data); #ifdef CONFIG_DEBUG if (fd < CONFIG_NFILE_DESCRIPTORS || @@ -347,11 +347,13 @@ int fdwatch_check_fd(struct fdwatch_s *fw, int fd) void *fdwatch_get_next_client_data(struct fdwatch_s *fw) { - if (fw->next >= fw->nfds) + if (fw->next >= fw->nwatched) { - ndbg("All client data returned: %d\n", fw->next); - return NULL; + nvdbg("All client data returned: %d\n", fw->next); + return (void*)-1; } + + nvdbg("client_data[%d]: %p\n", fw->next, fw->client[fw->next].data); return fw->client[fw->next++].data; } diff --git a/netutils/thttpd/libhttpd.c b/netutils/thttpd/libhttpd.c index 68e1e5c489..1fe609dffe 100644 --- a/netutils/thttpd/libhttpd.c +++ b/netutils/thttpd/libhttpd.c @@ -372,10 +372,10 @@ static void add_response(httpd_conn *hc, char *str) len = strlen(str); resplen = hc->buflen + len; - DEBUGASSERT(resplen < CONFIG_THTTPD_IOBUFFERSIZE); if (resplen > CONFIG_THTTPD_IOBUFFERSIZE) { + ndbg("resplen(%d) > buffer size(%d)\n", resplen, CONFIG_THTTPD_IOBUFFERSIZE); resplen = CONFIG_THTTPD_IOBUFFERSIZE; len = resplen - hc->buflen; }