diff options
| author | Kevin B Kenny <kennykb@acm.org> | 2004-09-08 18:46:17 (GMT) | 
|---|---|---|
| committer | Kevin B Kenny <kennykb@acm.org> | 2004-09-08 18:46:17 (GMT) | 
| commit | 87c2dd66e6f6eddae4893d3419acb99267d38f89 (patch) | |
| tree | e15fc5c8dd8792a5d76e1119e59a7a86383b7d7b /compat/strftime.c | |
| parent | 2f031d1ecf704c2ede0aa066b1c820f32396ce4f (diff) | |
| download | tcl-87c2dd66e6f6eddae4893d3419acb99267d38f89.zip tcl-87c2dd66e6f6eddae4893d3419acb99267d38f89.tar.gz tcl-87c2dd66e6f6eddae4893d3419acb99267d38f89.tar.bz2 | |
* compat/strftime.c (_conv): Corrected a problem where hour 0
would format as a blank format group with %k.
* tests/clock.test (clock-41.1): Added regression test case for
%k at the zero hour.
Diffstat (limited to 'compat/strftime.c')
| -rw-r--r-- | compat/strftime.c | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/compat/strftime.c b/compat/strftime.c index 8204a83..91e7057 100644 --- a/compat/strftime.c +++ b/compat/strftime.c @@ -10,7 +10,7 @@   *   * Changes 2002 Copyright (c) 2002 ActiveState Corporation.   * - * RCS: @(#) $Id: strftime.c,v 1.16 2004/05/18 21:45:55 kennykb Exp $ + * RCS: @(#) $Id: strftime.c,v 1.17 2004/09/08 18:46:18 kennykb Exp $   */  /* @@ -47,7 +47,7 @@   */  #if defined(LIBC_SCCS) -static char *rcsid = "$Id: strftime.c,v 1.16 2004/05/18 21:45:55 kennykb Exp $"; +static char *rcsid = "$Id: strftime.c,v 1.17 2004/09/08 18:46:18 kennykb Exp $";  #endif /* LIBC_SCCS */  #include <time.h> @@ -457,8 +457,14 @@ _conv(n, digits, pad)      static char buf[10];      register char *p; -    for (p = buf + sizeof(buf) - 2; n > 0 && p > buf; n /= 10, --digits) -	*p-- = (char)(n % 10 + '0'); +    p = buf + sizeof( buf ) - 1; +    *p-- = '\0'; +    if ( n == 0 ) { +	*p-- = '0'; +    } else { +	for (; n > 0 && p > buf; n /= 10, --digits) +	    *p-- = (char)(n % 10 + '0'); +    }      while (p > buf && digits-- > 0)  	*p-- = (char) pad;      return(_add(++p)); | 
