mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
1998-09-24 Ulrich Drepper <drepper@cygnus.com> * debug/catchsegv.sh: Also produce output if cloned process died. 1998-09-24 Paul Eggert <eggert@twinsun.com> * strftime.c (f_wkday): Remove duplicate definition. (f_wkday, f_month, a_wkday, a_month, ampm): Define as macros when !defined _NL_CURRENT && !HAVE_STRFTIME; this propagates the 1998-09-11 fix to this case. (wkday_len, month_len): Remove these macros; they're no longer needed. 1998-09-24 Paul Eggert <eggert@twinsun.com> * strftime.c (my_strftime): Don't store past the end of a zero-sized buffer. * time/strftime.c (underlying_strftime): * time/strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000.
This commit is contained in:
21
ChangeLog
21
ChangeLog
@ -1,13 +1,30 @@
|
|||||||
|
1998-09-24 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* debug/catchsegv.sh: Also produce output if cloned process died.
|
||||||
|
|
||||||
1998-09-24 Paul Eggert <eggert@twinsun.com>
|
1998-09-24 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
* strftime.c (underlying_strftime):
|
* strftime.c (f_wkday): Remove duplicate definition.
|
||||||
|
(f_wkday, f_month, a_wkday, a_month, ampm): Define as macros when
|
||||||
|
!defined _NL_CURRENT && !HAVE_STRFTIME; this propagates the
|
||||||
|
1998-09-11 fix to this case.
|
||||||
|
(wkday_len, month_len): Remove these macros; they're no longer needed.
|
||||||
|
|
||||||
|
1998-09-24 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
* strftime.c (my_strftime): Don't store past the end of a
|
||||||
|
zero-sized buffer.
|
||||||
|
|
||||||
|
1998-09-24 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
* time/strftime.c (underlying_strftime):
|
||||||
Set the buffer to a nonzero value before calling
|
Set the buffer to a nonzero value before calling
|
||||||
strftime, and check to see whether strftime has set the buffer to zero.
|
strftime, and check to see whether strftime has set the buffer to zero.
|
||||||
This lets us distinguish between an empty buffer and an error.
|
This lets us distinguish between an empty buffer and an error.
|
||||||
|
|
||||||
1998-09-24 Paul Eggert <eggert@shade.twinsun.com>
|
1998-09-24 Paul Eggert <eggert@shade.twinsun.com>
|
||||||
|
|
||||||
* strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000.
|
* time/strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000.
|
||||||
This fix is propagated from tzcode1998g.tar.gz.
|
This fix is propagated from tzcode1998g.tar.gz.
|
||||||
|
|
||||||
1998-09-24 Mark Kettenis <kettenis@phys.uva.nl>
|
1998-09-24 Mark Kettenis <kettenis@phys.uva.nl>
|
||||||
|
@ -51,6 +51,8 @@ Written by Ulrich Drepper.'
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
segv_output=`basename "$prog"`.segv.$$
|
segv_output=`basename "$prog"`.segv.$$
|
||||||
|
# Make sure this output file does not exist.
|
||||||
|
rm -f "$segv_output"
|
||||||
|
|
||||||
# Redirect stderr to avoid termination message from shell.
|
# Redirect stderr to avoid termination message from shell.
|
||||||
(exec 3>&2 2>/dev/null
|
(exec 3>&2 2>/dev/null
|
||||||
@ -60,8 +62,10 @@ SEGFAULT_OUTPUT_NAME=$segv_output \
|
|||||||
"$prog" ${1+"$@"} 2>&3 3>&-)
|
"$prog" ${1+"$@"} 2>&3 3>&-)
|
||||||
exval=$?
|
exval=$?
|
||||||
|
|
||||||
# Check for signal termination.
|
# Check for output. Even if the program terminated correctly it might
|
||||||
if test $exval -gt 128 && test -f "$segv_output"; then
|
# be that a inor process (clone) failed. Therefore we do not check the
|
||||||
|
# exit code.
|
||||||
|
if test -f "$segv_output"; then
|
||||||
# The program caught a signal. The output is in the file with the
|
# The program caught a signal. The output is in the file with the
|
||||||
# name we have in SEGFAULT_OUTPUT_NAME. In the output the names of
|
# name we have in SEGFAULT_OUTPUT_NAME. In the output the names of
|
||||||
# functions in shared objects are available, but names in the static
|
# functions in shared objects are available, but names in the static
|
||||||
|
@ -416,15 +416,14 @@ my_strftime (s, maxsize, format, tp)
|
|||||||
{
|
{
|
||||||
int hour12 = tp->tm_hour;
|
int hour12 = tp->tm_hour;
|
||||||
#ifdef _NL_CURRENT
|
#ifdef _NL_CURRENT
|
||||||
/* We cannot make the following values variables since we must dealy
|
/* We cannot make the following values variables since we must delay
|
||||||
the evaluation of these values until really needed since some
|
the evaluation of these values until really needed since some
|
||||||
expressions might not be valid in every situation. The `struct tm'
|
expressions might not be valid in every situation. The `struct tm'
|
||||||
might be generated by a strptime() call and therefore initialized
|
might be generated by a strptime() call that initialized
|
||||||
only a few elements. Dereference the pointers only if the format
|
only a few elements. Dereference the pointers only if the format
|
||||||
requires this. Then it is ok to fail if the pointers are invalid. */
|
requires this. Then it is ok to fail if the pointers are invalid. */
|
||||||
# define a_wkday _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday)
|
# define a_wkday _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday)
|
||||||
# define f_wkday _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday)
|
# define f_wkday _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday)
|
||||||
# define f_wkday _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday)
|
|
||||||
# define a_month _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon)
|
# define a_month _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon)
|
||||||
# define f_month _NL_CURRENT (LC_TIME, MON_1 + tp->tm_mon)
|
# define f_month _NL_CURRENT (LC_TIME, MON_1 + tp->tm_mon)
|
||||||
# define ampm _NL_CURRENT (LC_TIME, tp->tm_hour > 11 ? PM_STR : AM_STR)
|
# define ampm _NL_CURRENT (LC_TIME, tp->tm_hour > 11 ? PM_STR : AM_STR)
|
||||||
@ -432,22 +431,17 @@ my_strftime (s, maxsize, format, tp)
|
|||||||
# define aw_len strlen (a_wkday)
|
# define aw_len strlen (a_wkday)
|
||||||
# define am_len strlen (a_month)
|
# define am_len strlen (a_month)
|
||||||
# define ap_len strlen (ampm)
|
# define ap_len strlen (ampm)
|
||||||
|
|
||||||
# define wkday_len strlen (f_wkday)
|
|
||||||
# define month_len strlen (f_month)
|
|
||||||
#else
|
#else
|
||||||
# if !HAVE_STRFTIME
|
# if !HAVE_STRFTIME
|
||||||
const char *const f_wkday = weekday_name[tp->tm_wday];
|
# define f_wkday (weekday_name[tp->tm_wday])
|
||||||
const char *const f_month = month_name[tp->tm_mon];
|
# define f_month (month_name[tp->tm_mon])
|
||||||
const char *const a_wkday = f_wkday;
|
# define a_wkday f_wkday
|
||||||
const char *const a_month = f_month;
|
# define a_month f_month
|
||||||
const char *const ampm = "AMPM" + 2 * (hour12 > 11);
|
# define ampm ("AMPM" + 2 * (tp->tm_hour > 11))
|
||||||
|
|
||||||
size_t aw_len = 3;
|
size_t aw_len = 3;
|
||||||
size_t am_len = 3;
|
size_t am_len = 3;
|
||||||
size_t ap_len = 2;
|
size_t ap_len = 2;
|
||||||
|
|
||||||
size_t wkday_len = strlen (f_wkday);
|
|
||||||
size_t month_len = strlen (f_month);
|
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
const char *zone;
|
const char *zone;
|
||||||
@ -669,7 +663,7 @@ my_strftime (s, maxsize, format, tp)
|
|||||||
to_lowcase = 0;
|
to_lowcase = 0;
|
||||||
}
|
}
|
||||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||||
cpy (wkday_len, f_wkday);
|
cpy (strlen (f_wkday), f_wkday);
|
||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
goto underlying_strftime;
|
goto underlying_strftime;
|
||||||
@ -695,7 +689,7 @@ my_strftime (s, maxsize, format, tp)
|
|||||||
to_lowcase = 0;
|
to_lowcase = 0;
|
||||||
}
|
}
|
||||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||||
cpy (month_len, f_month);
|
cpy (strlen (f_month), f_month);
|
||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
goto underlying_strftime;
|
goto underlying_strftime;
|
||||||
@ -1227,7 +1221,7 @@ my_strftime (s, maxsize, format, tp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p)
|
if (p && i < maxsize)
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user