projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix nl_langinfo table for LC_TIME era-related items
[musl]
/
src
/
regex
/
regcomp.c
diff --git
a/src/regex/regcomp.c
b/src/regex/regcomp.c
index
322a5e6
..
d907627
100644
(file)
--- a/
src/regex/regcomp.c
+++ b/
src/regex/regcomp.c
@@
-30,7
+30,6
@@
*/
#include <string.h>
*/
#include <string.h>
-#include <errno.h>
#include <stdlib.h>
#include <regex.h>
#include <limits.h>
#include <stdlib.h>
#include <regex.h>
#include <limits.h>
@@
-53,7
+52,6
@@
typedef struct {
tre_ctype_t class;
tre_ctype_t *neg_classes;
int backref;
tre_ctype_t class;
tre_ctype_t *neg_classes;
int backref;
- int *params;
} tre_pos_and_tags_t;
} tre_pos_and_tags_t;
@@
-103,10
+101,7
@@
typedef struct {
long code_min;
long code_max;
int position;
long code_min;
long code_max;
int position;
- union {
- tre_ctype_t class;
- int *params;
- } u;
+ tre_ctype_t class;
tre_ctype_t *neg_classes;
} tre_literal_t;
tre_ctype_t *neg_classes;
} tre_literal_t;
@@
-520,7
+515,7
@@
tre_new_item(tre_mem_t mem, int min, int max, int *i, int *max_i,
if (*max_i > 1024)
return REG_ESPACE;
*max_i *= 2;
if (*max_i > 1024)
return REG_ESPACE;
*max_i *= 2;
- new_items = xrealloc(array, sizeof(*
items
) * *max_i);
+ new_items = xrealloc(array, sizeof(*
array
) * *max_i);
if (new_items == NULL)
return REG_ESPACE;
*items = array = new_items;
if (new_items == NULL)
return REG_ESPACE;
*items = array = new_items;
@@
-652,7
+647,7
@@
tre_parse_bracket_items(tre_parse_ctx_t *ctx, int negate,
status = tre_new_item(ctx->mem, min, max, &i, &max_i, items);
if (status != REG_OK)
break;
status = tre_new_item(ctx->mem, min, max, &i, &max_i, items);
if (status != REG_OK)
break;
- ((tre_literal_t*)((*items)[i-1])->obj)->
u.
class = class;
+ ((tre_literal_t*)((*items)[i-1])->obj)->class = class;
}
/* Add opposite-case counterpoints if REG_ICASE is present.
}
/* Add opposite-case counterpoints if REG_ICASE is present.
@@
-769,7
+764,7
@@
tre_parse_bracket(tre_parse_ctx_t *ctx, tre_ast_node_t **result)
if (num_neg_classes > 0)
{
l->neg_classes = tre_mem_alloc(ctx->mem,
if (num_neg_classes > 0)
{
l->neg_classes = tre_mem_alloc(ctx->mem,
- (sizeof(l->neg_classes)
+ (sizeof(
*
l->neg_classes)
* (num_neg_classes + 1)));
if (l->neg_classes == NULL)
{
* (num_neg_classes + 1)));
if (l->neg_classes == NULL)
{
@@
-809,7
+804,7
@@
tre_parse_bracket(tre_parse_ctx_t *ctx, tre_ast_node_t **result)
if (num_neg_classes > 0)
{
l->neg_classes = tre_mem_alloc(ctx->mem,
if (num_neg_classes > 0)
{
l->neg_classes = tre_mem_alloc(ctx->mem,
- (sizeof(l->neg_classes)
+ (sizeof(
*
l->neg_classes)
* (num_neg_classes + 1)));
if (l->neg_classes == NULL)
{
* (num_neg_classes + 1)));
if (l->neg_classes == NULL)
{
@@
-2231,8
+2226,7
@@
typedef enum {
iteration count to a catenated sequence of copies of the node. */
static reg_errcode_t
tre_expand_ast(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *ast,
iteration count to a catenated sequence of copies of the node. */
static reg_errcode_t
tre_expand_ast(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *ast,
- int *position, tre_tag_direction_t *tag_directions,
- int *max_depth)
+ int *position, tre_tag_direction_t *tag_directions)
{
reg_errcode_t status = REG_OK;
int bottom = tre_stack_num_objects(stack);
{
reg_errcode_t status = REG_OK;
int bottom = tre_stack_num_objects(stack);
@@
-2531,8
+2525,7
@@
tre_set_union(tre_mem_t mem, tre_pos_and_tags_t *set1, tre_pos_and_tags_t *set2,
set to the number of tags seen on the path. */
static reg_errcode_t
tre_match_empty(tre_stack_t *stack, tre_ast_node_t *node, int *tags,
set to the number of tags seen on the path. */
static reg_errcode_t
tre_match_empty(tre_stack_t *stack, tre_ast_node_t *node, int *tags,
- int *assertions, int *params, int *num_tags_seen,
- int *params_seen)
+ int *assertions, int *num_tags_seen)
{
tre_literal_t *lit;
tre_union_t *uni;
{
tre_literal_t *lit;
tre_union_t *uni;
@@
-2703,7
+2696,7
@@
tre_compute_nfl(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *tree)
node->lastpos = tre_set_one(mem, lit->position,
(int)lit->code_min,
(int)lit->code_max,
node->lastpos = tre_set_one(mem, lit->position,
(int)lit->code_min,
(int)lit->code_max,
- lit->
u.
class, lit->neg_classes,
+ lit->class, lit->neg_classes,
-1);
if (!node->lastpos)
return REG_ESPACE;
-1);
if (!node->lastpos)
return REG_ESPACE;
@@
-2774,8
+2767,7
@@
tre_compute_nfl(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *tree)
case NFL_POST_CATENATION:
{
case NFL_POST_CATENATION:
{
- int num_tags, *tags, assertions, params_seen;
- int *params;
+ int num_tags, *tags, assertions;
reg_errcode_t status;
tre_catenation_t *cat = node->obj;
node->nullable = cat->left->nullable && cat->right->nullable;
reg_errcode_t status;
tre_catenation_t *cat = node->obj;
node->nullable = cat->left->nullable && cat->right->nullable;
@@
-2787,8
+2779,7
@@
tre_compute_nfl(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *tree)
with tre_match_empty() to get the number of tags and
parameters. */
status = tre_match_empty(stack, cat->left,
with tre_match_empty() to get the number of tags and
parameters. */
status = tre_match_empty(stack, cat->left,
- NULL, NULL, NULL, &num_tags,
- ¶ms_seen);
+ NULL, NULL, &num_tags);
if (status != REG_OK)
return status;
/* Allocate arrays for the tags and parameters. */
if (status != REG_OK)
return status;
/* Allocate arrays for the tags and parameters. */
@@
-2800,7
+2791,7
@@
tre_compute_nfl(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *tree)
/* Second pass with tre_mach_empty() to get the list of
tags and parameters. */
status = tre_match_empty(stack, cat->left, tags,
/* Second pass with tre_mach_empty() to get the list of
tags and parameters. */
status = tre_match_empty(stack, cat->left, tags,
- &assertions,
params, NULL,
NULL);
+ &assertions, NULL);
if (status != REG_OK)
{
xfree(tags);
if (status != REG_OK)
{
xfree(tags);
@@
-2825,8
+2816,7
@@
tre_compute_nfl(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *tree)
with tre_match_empty() to get the number of tags and
parameters. */
status = tre_match_empty(stack, cat->right,
with tre_match_empty() to get the number of tags and
parameters. */
status = tre_match_empty(stack, cat->right,
- NULL, NULL, NULL, &num_tags,
- ¶ms_seen);
+ NULL, NULL, &num_tags);
if (status != REG_OK)
return status;
/* Allocate arrays for the tags and parameters. */
if (status != REG_OK)
return status;
/* Allocate arrays for the tags and parameters. */
@@
-2838,7
+2828,7
@@
tre_compute_nfl(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *tree)
/* Second pass with tre_mach_empty() to get the list of
tags and parameters. */
status = tre_match_empty(stack, cat->right, tags,
/* Second pass with tre_mach_empty() to get the list of
tags and parameters. */
status = tre_match_empty(stack, cat->right, tags,
- &assertions,
params, NULL,
NULL);
+ &assertions, NULL);
if (status != REG_OK)
{
xfree(tags);
if (status != REG_OK)
{
xfree(tags);
@@
-3091,7
+3081,7
@@
tre_ast_to_tnfa(tre_ast_node_t *node, tre_tnfa_transition_t *transitions,
int
int
-regcomp(regex_t *
preg, const char *
regex, int cflags)
+regcomp(regex_t *
restrict preg, const char *restrict
regex, int cflags)
{
tre_stack_t *stack;
tre_ast_node_t *tree, *tmp_ast_l, *tmp_ast_r;
{
tre_stack_t *stack;
tre_ast_node_t *tree, *tmp_ast_l, *tmp_ast_r;
@@
-3176,7
+3166,7
@@
regcomp(regex_t *preg, const char *regex, int cflags)
sizeof(*tag_directions) * (tnfa->num_tags + 1));
}
tnfa->minimal_tags = xcalloc((unsigned)tnfa->num_tags * 2 + 1,
sizeof(*tag_directions) * (tnfa->num_tags + 1));
}
tnfa->minimal_tags = xcalloc((unsigned)tnfa->num_tags * 2 + 1,
- sizeof(tnfa->minimal_tags));
+ sizeof(
*
tnfa->minimal_tags));
if (tnfa->minimal_tags == NULL)
ERROR_EXIT(REG_ESPACE);
if (tnfa->minimal_tags == NULL)
ERROR_EXIT(REG_ESPACE);
@@
-3194,7
+3184,7
@@
regcomp(regex_t *preg, const char *regex, int cflags)
/* Expand iteration nodes. */
errcode = tre_expand_ast(mem, stack, tree, &parse_ctx.position,
/* Expand iteration nodes. */
errcode = tre_expand_ast(mem, stack, tree, &parse_ctx.position,
- tag_directions
, &tnfa->params_depth
);
+ tag_directions);
if (errcode != REG_OK)
ERROR_EXIT(errcode);
if (errcode != REG_OK)
ERROR_EXIT(errcode);