diff options
-rw-r--r-- | ChangeLog | 63 | ||||
-rw-r--r-- | localedata/ChangeLog | 4 | ||||
-rw-r--r-- | localedata/tst-numeric.data | 4 | ||||
-rw-r--r-- | posix/regcomp.c | 2 | ||||
-rw-r--r-- | posix/regex_internal.c | 22 | ||||
-rw-r--r-- | posix/regex_internal.h | 69 | ||||
-rw-r--r-- | posix/tst-rxspencer.c | 2 |
7 files changed, 121 insertions, 45 deletions
diff --git a/ChangeLog b/ChangeLog index ca16f8722f..31f1cb4cc1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,66 @@ +2003-12-22 Jakub Jelinek <jakub@redhat.com> + + * posix/regcomp.c: Remove C99-ism. + * posix/tst-rxspencer.c: Likewise. + Based on a patch by Alex Davis <alex14641@yahoo.com>. + +2002-12-17 Paolo Bonzini <bonzini@gnu.org> + + * posix/regex_internal.h [!_LIBC] (internal_function): Define. + (re_string_allocate, re_string_construct, re_string_reconstruct, + re_string_realloc_buffers, build_wcs_buffer, + build_wcs_upper_buffer, build_upper_buffer, + re_string_translate_buffer, re_string_destruct, + re_string_elem_size_at, re_string_char_size_at, + re_string_wchar_at, re_string_context_at, + re_node_set_alloc, re_node_set_init_1 + re_node_set_init_2, re_node_set_init_copy, + re_node_set_add_intersect, re_node_set_init_union, + re_node_set_merge, re_node_set_insert + re_node_set_compare, re_node_set_contains + re_node_set_remove_at, re_dfa_add_node, + re_acquire_state, re_acquire_state_context, + free_state): Add internal_function to declaration. + + * posix/regexec.c (match_ctx_init, match_ctx_clean, + match_ctx_free, match_ctx_free_subtops, + match_ctx_add_entry, search_cur_bkref_entry, + match_ctx_clear_flag, match_ctx_add_subtop, + match_ctx_add_sublast, sift_ctx_init, + re_search_internal, re_search_2_stub, re_search_stub, + re_copy_regs, acquire_init_state_context, + prune_impossible_nodes, check_matching, + check_halt_node_context, check_halt_state_context + update_regs, proceed_next_node, push_fail_stack, + pop_fail_stack, set_regs, free_fail_stack_return, + sift_states_iter_mb, sift_states_backward + update_cur_sifted_state, add_epsilon_src_nodes, + sub_epsilon_src_nodes, check_dst_limits, + check_dst_limits_calc_pos, check_subexp_limits, + sift_states_bkref, clean_state_log_if_need, + merge_state_array, transit_state, + check_subexp_matching_top, transit_state_sb, + transit_state_mb, transit_state_bkref, + get_subexp, get_subexp_sub, find_subexp_node, + check_arrival, check_arrival_add_next_nodes, + find_collation_sequence_value, check_arrival_expand_ecl, + check_arrival_expand_ecl_sub, expand_bkref_cache, + build_trtable, check_node_accept_bytes, extend_buffers, + group_nodes_into_DFAstates, check_node_accept): Likewise. + + * posix/regex_internal.c (re_string_construct_common, + re_string_skip_chars, create_newstate_common, + register_state, create_ci_newstate, create_cd_newstate, + calc_state_hash): Likewise. + (re_string_peek_byte_case, re_fetch_byte_case): Change + declaration from ANSI to K&R. + +2002-12-16 Paolo Bonzini <bonzini@gnu.org> + + * posix/regexec.c (build_trtable): Don't allocate the trtable + until state->word_trtable is known. Don't hardcode UINT_BITS + iterations on each bitset item. + 2003-12-22 Maciej W. Rozycki <macro@ds2.pg.gda.pl> * sysdeps/unix/sysv/linux/ia64/dl-static.c (_dl_static_init): diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 08079a3f67..24601c35aa 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,7 @@ +2003-12-22 Ulrich Drepper <drepper@redhat.com> + + * tst-numeric.data: Remove reliance on nb_NO.ISO-8859-1 locale. + 2003-12-05 Ulrich Drepper <drepper@redhat.com> * SUPPORTED: Add az_ZA.UTF-8, bn_BD, bn_IN, br_FR@euro, tt_RU, zh_SG. diff --git a/localedata/tst-numeric.data b/localedata/tst-numeric.data index 37c90b04b9..fc914a6763 100644 --- a/localedata/tst-numeric.data +++ b/localedata/tst-numeric.data @@ -41,9 +41,7 @@ C *%g* 1.23 *1.23* C %9g 1.23 1.23 C %9g -1.23 -1.23 # -# check both the norwegian locales and snprintf with that data +# Locale-dependent test. # -nb_NO.ISO-8859-1 %'g 123.45 123,45 -nb_NO.ISO-8859-1 %'g -123.45 -123,45 nn_NO.ISO-8859-1 %'g 123.45 123,45 nn_NO.ISO-8859-1 %'g -123.45 -123,45 diff --git a/posix/regcomp.c b/posix/regcomp.c index f44c3f3283..1a7e5192cf 100644 --- a/posix/regcomp.c +++ b/posix/regcomp.c @@ -2968,6 +2968,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err) #endif /* not RE_ENABLE_I18N */ bin_tree_t *work_tree; int token_len; + int first_round = 1; #ifdef _LIBC collseqmb = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); @@ -3027,7 +3028,6 @@ parse_bracket_exp (regexp, dfa, token, syntax, err) if (token->type == OP_CLOSE_BRACKET) token->type = CHARACTER; - int first_round = 1; while (1) { bracket_elem_t start_elem, end_elem; diff --git a/posix/regex_internal.c b/posix/regex_internal.c index ed377eb6dc..45b45aaaf0 100644 --- a/posix/regex_internal.c +++ b/posix/regex_internal.c @@ -21,25 +21,25 @@ static void re_string_construct_common (const char *str, int len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, int icase, - const re_dfa_t *dfa); + const re_dfa_t *dfa) internal_function; #ifdef RE_ENABLE_I18N static int re_string_skip_chars (re_string_t *pstr, int new_raw_idx, - wint_t *last_wc); + wint_t *last_wc) internal_function; #endif /* RE_ENABLE_I18N */ static re_dfastate_t *create_newstate_common (re_dfa_t *dfa, const re_node_set *nodes, - unsigned int hash); + unsigned int hash) internal_function; static reg_errcode_t register_state (re_dfa_t *dfa, re_dfastate_t *newstate, - unsigned int hash); + unsigned int hash) internal_function; static re_dfastate_t *create_ci_newstate (re_dfa_t *dfa, const re_node_set *nodes, - unsigned int hash); + unsigned int hash) internal_function; static re_dfastate_t *create_cd_newstate (re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, - unsigned int hash); + unsigned int hash) internal_function; static unsigned int inline calc_state_hash (const re_node_set *nodes, - unsigned int context); + unsigned int context) internal_function; /* Functions for string operation. */ @@ -746,8 +746,9 @@ re_string_reconstruct (pstr, idx, eflags, newline) } static unsigned char -re_string_peek_byte_case (const re_string_t *pstr, - int idx) +re_string_peek_byte_case (pstr, idx) + const re_string_t *pstr; + int idx; { int ch, off; @@ -784,7 +785,8 @@ re_string_peek_byte_case (const re_string_t *pstr, } static unsigned char -re_string_fetch_byte_case (re_string_t *pstr) +re_string_fetch_byte_case (pstr) + re_string_t *pstr; { int ch; diff --git a/posix/regex_internal.h b/posix/regex_internal.h index ea9a30c16e..8f11ba7a44 100644 --- a/posix/regex_internal.h +++ b/posix/regex_internal.h @@ -349,35 +349,44 @@ typedef struct re_string_t re_string_t; struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; + +#ifndef _LIBC +# ifdef __i386__ +# define internal_function __attribute ((regparm (3), stdcall)) +# else +# define internal_function +# endif +#endif + #ifndef RE_NO_INTERNAL_PROTOTYPES static reg_errcode_t re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len, RE_TRANSLATE_TYPE trans, int icase, - const re_dfa_t *dfa); + const re_dfa_t *dfa) internal_function; static reg_errcode_t re_string_construct (re_string_t *pstr, const char *str, int len, RE_TRANSLATE_TYPE trans, - int icase, const re_dfa_t *dfa); + int icase, const re_dfa_t *dfa) internal_function; static reg_errcode_t re_string_reconstruct (re_string_t *pstr, int idx, - int eflags, int newline); + int eflags, int newline) internal_function; static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, - int new_buf_len); + int new_buf_len) internal_function; # ifdef RE_ENABLE_I18N -static void build_wcs_buffer (re_string_t *pstr); -static int build_wcs_upper_buffer (re_string_t *pstr); +static void build_wcs_buffer (re_string_t *pstr) internal_function; +static int build_wcs_upper_buffer (re_string_t *pstr) internal_function; # endif /* RE_ENABLE_I18N */ -static void build_upper_buffer (re_string_t *pstr); -static void re_string_translate_buffer (re_string_t *pstr); -static void re_string_destruct (re_string_t *pstr); +static void build_upper_buffer (re_string_t *pstr) internal_function; +static void re_string_translate_buffer (re_string_t *pstr) internal_function; +static void re_string_destruct (re_string_t *pstr) internal_function; # ifdef RE_ENABLE_I18N -static int re_string_elem_size_at (const re_string_t *pstr, int idx); -static inline int re_string_char_size_at (const re_string_t *pstr, int idx); -static inline wint_t re_string_wchar_at (const re_string_t *pstr, int idx); +static int re_string_elem_size_at (const re_string_t *pstr, int idx) internal_function; +static inline int re_string_char_size_at (const re_string_t *pstr, int idx) internal_function; +static inline wint_t re_string_wchar_at (const re_string_t *pstr, int idx) internal_function; # endif /* RE_ENABLE_I18N */ static unsigned int re_string_context_at (const re_string_t *input, int idx, - int eflags, int newline_anchor); + int eflags, int newline_anchor) internal_function; static unsigned char re_string_peek_byte_case (const re_string_t *pstr, - int idx); -static unsigned char re_string_fetch_byte_case (re_string_t *pstr); + int idx) internal_function; +static unsigned char re_string_fetch_byte_case (re_string_t *pstr) internal_function; #endif #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) @@ -629,38 +638,38 @@ struct re_dfa_t }; #ifndef RE_NO_INTERNAL_PROTOTYPES -static reg_errcode_t re_node_set_alloc (re_node_set *set, int size); -static reg_errcode_t re_node_set_init_1 (re_node_set *set, int elem); +static reg_errcode_t re_node_set_alloc (re_node_set *set, int size) internal_function; +static reg_errcode_t re_node_set_init_1 (re_node_set *set, int elem) internal_function; static reg_errcode_t re_node_set_init_2 (re_node_set *set, int elem1, - int elem2); + int elem2) internal_function; #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) static reg_errcode_t re_node_set_init_copy (re_node_set *dest, - const re_node_set *src); + const re_node_set *src) internal_function; static reg_errcode_t re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, - const re_node_set *src2); + const re_node_set *src2) internal_function; static reg_errcode_t re_node_set_init_union (re_node_set *dest, const re_node_set *src1, - const re_node_set *src2); + const re_node_set *src2) internal_function; static reg_errcode_t re_node_set_merge (re_node_set *dest, - const re_node_set *src); -static int re_node_set_insert (re_node_set *set, int elem); + const re_node_set *src) internal_function; +static int re_node_set_insert (re_node_set *set, int elem) internal_function; static int re_node_set_compare (const re_node_set *set1, - const re_node_set *set2); -static int re_node_set_contains (const re_node_set *set, int elem); -static void re_node_set_remove_at (re_node_set *set, int idx); + const re_node_set *set2) internal_function; +static int re_node_set_contains (const re_node_set *set, int elem) internal_function; +static void re_node_set_remove_at (re_node_set *set, int idx) internal_function; #define re_node_set_remove(set,id) \ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) #define re_node_set_empty(p) ((p)->nelem = 0) #define re_node_set_free(set) re_free ((set)->elems) -static int re_dfa_add_node (re_dfa_t *dfa, re_token_t token, int mode); +static int re_dfa_add_node (re_dfa_t *dfa, re_token_t token, int mode) internal_function; static re_dfastate_t *re_acquire_state (reg_errcode_t *err, re_dfa_t *dfa, - const re_node_set *nodes); + const re_node_set *nodes) internal_function; static re_dfastate_t *re_acquire_state_context (reg_errcode_t *err, re_dfa_t *dfa, const re_node_set *nodes, - unsigned int context); -static void free_state (re_dfastate_t *state); + unsigned int context) internal_function; +static void free_state (re_dfastate_t *state) internal_function; #endif diff --git a/posix/tst-rxspencer.c b/posix/tst-rxspencer.c index e9a61ea375..cb40421797 100644 --- a/posix/tst-rxspencer.c +++ b/posix/tst-rxspencer.c @@ -214,6 +214,7 @@ test (const char *pattern, int cflags, const char *string, int eflags, n = regcomp (&re, pattern, cflags); if (n != 0) { + char buf[500]; if (eflags == -1) { static struct { reg_errcode_t code; const char *name; } codes [] @@ -239,7 +240,6 @@ test (const char *pattern, int cflags, const char *string, int eflags, return 1; } - char buf[500]; regerror (n, &re, buf, sizeof (buf)); printf ("%s regcomp failed: %s\n", fail, buf); return 1; |