Fri Jul 5 12:22:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

This commit is contained in:
Roland McGrath 1996-07-06 11:01:20 +00:00
parent a0da2d51da
commit 66219c0794
3 changed files with 101 additions and 95 deletions

View File

@ -5,6 +5,7 @@ Fri Jul 5 17:34:47 1996 Miles Bader <miles@gnu.ai.mit.edu>
* login/pututline_r.c (pututline_r): Since we assign RESULT from
lseek now, check that it's >= 0, not == 0.
Fri Jul 5 12:22:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
Wed Jul 3 13:28:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
* login/login.c (login): Make a copy of *UT, fill in various
@ -14,7 +15,6 @@ Wed Jul 3 13:28:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
* login/getutline_r.c (getutline_r): When we return ESRCH, mark
UTMP_DATA->ubuf invalid (by setting UTMP_DATA->loc_utmp to 0).
Fri Jul 5 12:22:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* hurd/hurdsig.c (_hurd_internal_post_signal): In case of handled
signal during critical section doing interruptible RPC, if

17
FAQ
View File

@ -1,7 +1,7 @@
Frequently Asked Question on GNU C Library
As every FAQ this one also tries to answer questions the user might have
when using the pacakge. Please make sure you read this before sending
when using the package. Please make sure you read this before sending
questions or bug reports to the maintainers.
The GNU C Library is very complex. The building process exploits the
@ -39,6 +39,9 @@ please let me know.
[Q9] ``Why does getlogin() always return NULL on my Linux box?''
[Q10] ``Where are the DST_* constants found in <sys/time.h> on many
systems?''
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems does the GNU C Library run on?''
@ -259,6 +262,18 @@ means to support the new techniques later.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q10] ``Where are the DST_* constants found in <sys/time.h> on many
systems?''
[A10] {UD} These constants come from the old BSD days and are not used
today anymore (even the Linux based glibc does not implement the handling
although the cosntants are defined).
Instead GNU libc contains the zone database handling and compatibility
code for POSIX TZ environment variable handling.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Answers were given by:
{UD} Ulrich Drepper, <drepper@cygnus.com>

View File

@ -28,8 +28,8 @@ struct keyword_t ;
#define MIN_WORD_LENGTH 3
#define MAX_WORD_LENGTH 17
#define MIN_HASH_VALUE 3
#define MAX_HASH_VALUE 185
/* maximum key range = 183, duplicates = 0 */
#define MAX_HASH_VALUE 132
/* maximum key range = 130, duplicates = 0 */
#ifdef __GNUC__
inline
@ -39,19 +39,19 @@ hash (register const char *str, register int len)
{
static const unsigned char asso_values[] =
{
186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 0, 0, 0,
0, 0, 186, 0, 186, 186, 0, 186, 0, 35,
186, 186, 0, 0, 0, 5, 186, 186, 186, 0,
186, 186, 186, 186, 186, 15, 186, 0, 0, 5,
15, 10, 55, 30, 15, 75, 186, 20, 5, 40,
10, 0, 0, 186, 35, 30, 0, 70, 186, 10,
20, 75, 186, 186, 186, 186, 186, 186,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 0, 0, 0,
0, 0, 133, 0, 133, 133, 0, 133, 0, 20,
133, 133, 0, 0, 0, 5, 133, 133, 133, 5,
133, 133, 133, 133, 133, 5, 133, 0, 60, 0,
15, 10, 20, 40, 5, 20, 133, 0, 45, 40,
10, 0, 0, 133, 15, 50, 0, 30, 0, 10,
15, 15, 133, 133, 133, 133, 133, 133,
};
register int hval = len;
@ -59,16 +59,16 @@ hash (register const char *str, register int len)
{
default:
case 5:
hval += asso_values[(int) str[4]];
hval += asso_values[str[4]];
case 4:
case 3:
case 2:
hval += asso_values[(int) str[1]];
hval += asso_values[str[1]];
case 1:
hval += asso_values[(int) str[0]];
hval += asso_values[str[0]];
break;
}
return hval + asso_values[(int) str[len - 1]];
return hval + asso_values[str[len - 1]];
}
#ifdef __GNUC__
@ -86,113 +86,104 @@ locfile_hash (register const char *str, register int len)
{"LC_TIME", tok_lc_time, 0},
{"LC_CTYPE", tok_lc_ctype, 0},
{"",},
{"alpha", tok_alpha, 0},
{"t_fmt", tok_t_fmt, 0},
{"LC_MESSAGES", tok_lc_messages, 0},
{"",}, {"",},
{"",},
{"charconv", tok_charconv, 0},
{"UNDEFINED", tok_undefined, 0},
{"LC_NUMERIC", tok_lc_numeric, 0},
{"",}, {"",},
{"position", tok_position, 0},
{"",},
{"t_fmt", tok_t_fmt, 0},
{"",},
{"collating-element", tok_collating_element, 0},
{"positive_sign", tok_positive_sign, 0},
{"",},
{"abmon", tok_abmon, 0},
{"collating-symbol", tok_collating_symbol, 0},
{"",}, {"",}, {"",},
{"cntrl", tok_cntrl, 0},
{"",}, {"",},
{"backward", tok_backward, 0},
{"",},
{"d_fmt", tok_d_fmt, 0},
{"",}, {"",}, {"",},
{"p_sep_by_space", tok_p_sep_by_space, 0},
{"position", tok_position, 0},
{"copy", tok_copy, 0},
{"print", tok_print, 0},
{"",},
{"toupper", tok_toupper, 0},
{"negative_sign", tok_negative_sign, 0},
{"",},
{"LC_COLLATE", tok_lc_collate, 0},
{"LC_MONETARY", tok_lc_monetary, 0},
{"positive_sign", tok_positive_sign, 0},
{"",},
{"d_fmt", tok_d_fmt, 0},
{"",}, {"",},
{"era", tok_era, 0},
{"n_sep_by_space", tok_n_sep_by_space, 0},
{"blank", tok_blank, 0},
{"p_sep_by_space", tok_p_sep_by_space, 0},
{"LC_COLLATE", tok_lc_collate, 0},
{"noexpr", tok_noexpr, 0},
{"tolower", tok_tolower, 0},
{"mon", tok_mon, 0},
{"day", tok_day, 0},
{"era_t_fmt", tok_era_t_fmt, 0},
{"space", tok_space, 0},
{"",},
{"mon_thousands_sep", tok_mon_thousands_sep, 0},
{"thousands_sep", tok_thousands_sep, 0},
{"",},
{"alt_digits", tok_alt_digits, 0},
{"",},
{"punct", tok_punct, 0},
{"LC_MONETARY", tok_lc_monetary, 0},
{"comment_char", tok_comment_char, 0},
{"",},
{"charclass", tok_charclass, 0},
{"t_fmt_ampm", tok_t_fmt_ampm, 0},
{"p_sign_posn", tok_p_sign_posn, 0},
{"charmap", tok_charmap, 0},
{"n_sep_by_space", tok_n_sep_by_space, 0},
{"digit", tok_digit, 0},
{"order_start", tok_order_start, 0},
{"forward", tok_forward, 0},
{"negative_sign", tok_negative_sign, 0},
{"",},
{"nostr", tok_nostr, 0},
{"yesstr", tok_yesstr, 0},
{"d_t_fmt", tok_d_t_fmt, 0},
{"",},
{"era_d_fmt", tok_era_d_fmt, 0},
{"",},
{"alpha", tok_alpha, 0},
{"era_d_t_fmt", tok_era_d_t_fmt, 0},
{"",},
{"mon", tok_mon, 0},
{"order_end", tok_order_end, 0},
{"t_fmt_ampm", tok_t_fmt_ampm, 0},
{"xdigit", tok_xdigit, 0},
{"mon_thousands_sep", tok_mon_thousands_sep, 0},
{"",}, {"",}, {"",},
{"collating-symbol", tok_collating_symbol, 0},
{"yesexpr", tok_yesexpr, 0},
{"era_year", tok_era_year, 0},
{"charclass", tok_charclass, 0},
{"upper", tok_upper, 0},
{"p_sign_posn", tok_p_sign_posn, 0},
{"",},
{"thousands_sep", tok_thousands_sep, 0},
{"",},
{"graph", tok_graph, 0},
{"",},
{"mon_decimal_point", tok_mon_decimal_point, 0},
{"p_cs_precedes", tok_p_cs_precedes, 0},
{"",},
{"punct", tok_punct, 0},
{"space", tok_space, 0},
{"n_sign_posn", tok_n_sign_posn, 0},
{"forward", tok_forward, 0},
{"",},
{"decimal_point", tok_decimal_point, 0},
{"",},
{"from", tok_from, 0},
{"lower", tok_lower, 0},
{"order_start", tok_order_start, 0},
{"",},
{"",}, {"",},
{"n_cs_precedes", tok_n_cs_precedes, 0},
{"copy", tok_copy, 0},
{"nostr", tok_nostr, 0},
{"",},
{"abmon", tok_abmon, 0},
{"escape_char", tok_escape_char, 0},
{"",}, {"",}, {"",},
{"alnum", tok_alnum, 0},
{"",},
{"d_t_fmt", tok_d_t_fmt, 0},
{"day", tok_day, 0},
{"order_end", tok_order_end, 0},
{"digit", tok_digit, 0},
{"",}, {"",}, {"",}, {"",},
{"graph", tok_graph, 0},
{"int_curr_symbol", tok_int_curr_symbol, 0},
{"",}, {"",},
{"backward", tok_backward, 0},
{"",},
{"abday", tok_abday, 0},
{"",}, {"",}, {"",}, {"",},
{"currency_symbol", tok_currency_symbol, 0},
{"frac_digits", tok_frac_digits, 0},
{"",},
{"grouping", tok_grouping, 0},
{"",},
{"currency_symbol", tok_currency_symbol, 0},
{"cntrl", tok_cntrl, 0},
{"",}, {"",}, {"",}, {"",},
{"int_curr_symbol", tok_int_curr_symbol, 0},
{"blank", tok_blank, 0},
{"",}, {"",}, {"",}, {"",},
{"int_frac_digits", tok_int_frac_digits, 0},
{"",}, {"",}, {"",}, {"",},
{"alt_digits", tok_alt_digits, 0},
{"",}, {"",}, {"",}, {"",},
{"am_pm", tok_am_pm, 0},
{"",}, {"",}, {"",}, {"",},
{"alnum", tok_alnum, 0},
{"",},
{"mon_grouping", tok_mon_grouping, 0},
{"",}, {"",}, {"",},
{"xdigit", tok_xdigit, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"am_pm", tok_am_pm, 0},
{"yesstr", tok_yesstr, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"from", tok_from, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"",},
{"upper", tok_upper, 0},
{"frac_digits", tok_frac_digits, 0},
{"yesexpr", tok_yesexpr, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"abday", tok_abday, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"era_year", tok_era_year, 0},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
{"",}, {"",}, {"",},
{"int_frac_digits", tok_int_frac_digits, 0},
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)