Coverage Report

Created: 2025-12-03 06:10

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/jq/vendor/oniguruma/src/regsyntax.c
Line
Count
Source
1
/**********************************************************************
2
  regsyntax.c -  Oniguruma (regular expression library)
3
**********************************************************************/
4
/*-
5
 * Copyright (c) 2002-2024  K.Kosako
6
 * All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
 * SUCH DAMAGE.
28
 */
29
30
#include "regint.h"
31
32
OnigSyntaxType OnigSyntaxASIS = {
33
    0
34
  , ONIG_SYN_OP2_INEFFECTIVE_ESCAPE
35
  , 0
36
  , ONIG_OPTION_NONE
37
  ,
38
  {
39
      (OnigCodePoint )'\\'                       /* esc */
40
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
41
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
42
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
43
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
44
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
45
  }
46
};
47
48
OnigSyntaxType OnigSyntaxPosixBasic = {
49
  ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_ESC_LPAREN_SUBEXP |
50
    ONIG_SYN_OP_ESC_BRACE_INTERVAL )
51
  , 0
52
  , ( ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP )
53
  , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE )
54
  ,
55
  {
56
      (OnigCodePoint )'\\'                       /* esc */
57
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
58
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
59
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
60
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
61
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
62
  }
63
};
64
65
OnigSyntaxType OnigSyntaxPosixExtended = {
66
  ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_LPAREN_SUBEXP |
67
    ONIG_SYN_OP_BRACE_INTERVAL |
68
    ONIG_SYN_OP_PLUS_ONE_INF | ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_VBAR_ALT )
69
  , 0
70
  , ( ONIG_SYN_CONTEXT_INDEP_ANCHORS |
71
      ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS | ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS |
72
      ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP |
73
      ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC )
74
  , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE )
75
  ,
76
  {
77
      (OnigCodePoint )'\\'                       /* esc */
78
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
79
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
80
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
81
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
82
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
83
  }
84
};
85
86
OnigSyntaxType OnigSyntaxEmacs = {
87
  ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC |
88
    ONIG_SYN_OP_ESC_BRACE_INTERVAL |
89
    ONIG_SYN_OP_ESC_LPAREN_SUBEXP | ONIG_SYN_OP_ESC_VBAR_ALT |
90
    ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF |
91
    ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_DECIMAL_BACKREF |
92
    ONIG_SYN_OP_LINE_ANCHOR | ONIG_SYN_OP_ESC_CONTROL_CHARS )
93
  , ( ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR | ONIG_SYN_OP2_QMARK_GROUP_EFFECT )
94
  , ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC
95
  , ONIG_OPTION_NONE
96
  ,
97
  {
98
      (OnigCodePoint )'\\'                       /* esc */
99
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
100
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
101
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
102
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
103
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
104
  }
105
};
106
107
OnigSyntaxType OnigSyntaxGrep = {
108
  ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | ONIG_SYN_OP_POSIX_BRACKET |
109
    ONIG_SYN_OP_ESC_BRACE_INTERVAL | ONIG_SYN_OP_ESC_LPAREN_SUBEXP |
110
    ONIG_SYN_OP_ESC_VBAR_ALT |
111
    ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_ESC_PLUS_ONE_INF |
112
    ONIG_SYN_OP_ESC_QMARK_ZERO_ONE | ONIG_SYN_OP_LINE_ANCHOR |
113
    ONIG_SYN_OP_ESC_W_WORD | ONIG_SYN_OP_ESC_B_WORD_BOUND |
114
    ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_DECIMAL_BACKREF )
115
  , 0
116
  , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC |
117
      ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP )
118
  , ONIG_OPTION_NONE
119
  ,
120
  {
121
      (OnigCodePoint )'\\'                       /* esc */
122
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
123
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
124
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
125
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
126
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
127
  }
128
};
129
130
OnigSyntaxType OnigSyntaxGnuRegex = {
131
  SYN_GNU_REGEX_OP
132
  , 0
133
  , SYN_GNU_REGEX_BV
134
  , ONIG_OPTION_NONE
135
  ,
136
  {
137
      (OnigCodePoint )'\\'                       /* esc */
138
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
139
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
140
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
141
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
142
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
143
  }
144
};
145
146
OnigSyntaxType OnigSyntaxJava = {
147
  (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |
148
     ONIG_SYN_OP_ESC_CONTROL_CHARS | ONIG_SYN_OP_ESC_C_CONTROL |
149
     ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 )
150
   & ~(ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_POSIX_BRACKET) )
151
  , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE | ONIG_SYN_OP2_QMARK_GROUP_EFFECT |
152
      ONIG_SYN_OP2_OPTION_PERL | ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT |
153
      ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL | ONIG_SYN_OP2_CCLASS_SET_OP |
154
      ONIG_SYN_OP2_ESC_V_VTAB | ONIG_SYN_OP2_ESC_U_HEX4 |
155
      ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY )
156
  , ( SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH |
157
      ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND |
158
      ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND |
159
      ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC )
160
  , ONIG_OPTION_SINGLELINE
161
  ,
162
  {
163
      (OnigCodePoint )'\\'                       /* esc */
164
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
165
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
166
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
167
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
168
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
169
  }
170
};
171
172
OnigSyntaxType OnigSyntaxPerl = {
173
  (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |
174
     ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |
175
     ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL |
176
     ONIG_SYN_OP_ESC_CONTROL_CHARS |
177
     ONIG_SYN_OP_ESC_C_CONTROL )
178
   & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )
179
  , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE |
180
      ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL |
181
      ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL |
182
      ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |
183
      ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP |
184
      ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS |
185
      ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME    |
186
      ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT |
187
      ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY |
188
      ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |
189
      ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |
190
      ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE |
191
      ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT )
192
  , (SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH |
193
     ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC )
194
  , ONIG_OPTION_SINGLELINE
195
  ,
196
  {
197
      (OnigCodePoint )'\\'                       /* esc */
198
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
199
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
200
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
201
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
202
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
203
  }
204
};
205
206
/* Perl + named group */
207
OnigSyntaxType OnigSyntaxPerl_NG = {
208
  (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |
209
     ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |
210
     ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL |
211
     ONIG_SYN_OP_ESC_CONTROL_CHARS |
212
     ONIG_SYN_OP_ESC_C_CONTROL )
213
   & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )
214
  , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE |
215
      ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL |
216
      ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL |
217
      ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |
218
      ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP |
219
      ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS |
220
      ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME    |
221
      ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT |
222
      ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY  |
223
      ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |
224
      ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP       |
225
      ONIG_SYN_OP2_ESC_K_NAMED_BACKREF        |
226
      ONIG_SYN_OP2_ESC_G_SUBEXP_CALL |
227
      ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |
228
      ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE |
229
      ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT |
230
      ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL )
231
  , ( SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH |
232
      ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP |
233
      ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME |
234
      ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC )
235
  , ONIG_OPTION_SINGLELINE
236
  ,
237
  {
238
      (OnigCodePoint )'\\'                       /* esc */
239
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
240
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
241
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
242
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
243
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
244
  }
245
};
246
247
/* Python 3.9 */
248
OnigSyntaxType OnigSyntaxPython = {
249
  (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |
250
     ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |
251
     ONIG_SYN_OP_ESC_CONTROL_CHARS |
252
     ONIG_SYN_OP_ESC_C_CONTROL )
253
   & ~(ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_POSIX_BRACKET) )
254
  , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL |
255
      ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |
256
      ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME    |
257
      ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY  |
258
      ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |
259
      ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME       |
260
      ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |
261
      ONIG_SYN_OP2_ESC_V_VTAB | ONIG_SYN_OP2_ESC_U_HEX4 )
262
  , ( SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH |
263
      ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV | ONIG_SYN_PYTHON )
264
  , ONIG_OPTION_SINGLELINE
265
  ,
266
  {
267
      (OnigCodePoint )'\\'                       /* esc */
268
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.'  */
269
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*'  */
270
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
271
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
272
    , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
273
  }
274
};
275
276
277
278
extern int
279
onig_set_default_syntax(OnigSyntaxType* syntax)
280
0
{
281
0
  if (IS_NULL(syntax))
282
0
    syntax = ONIG_SYNTAX_ONIGURUMA;
283
284
0
  OnigDefaultSyntax = syntax;
285
0
  return 0;
286
0
}
287
288
extern void
289
onig_copy_syntax(OnigSyntaxType* to, OnigSyntaxType* from)
290
0
{
291
0
  *to = *from;
292
0
}
293
294
extern void
295
onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op)
296
0
{
297
0
  syntax->op = op;
298
0
}
299
300
extern void
301
onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2)
302
0
{
303
0
  syntax->op2 = op2;
304
0
}
305
306
extern void
307
onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior)
308
0
{
309
0
  syntax->behavior = behavior;
310
0
}
311
312
extern void
313
onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options)
314
0
{
315
0
  syntax->options = options;
316
0
}
317
318
extern unsigned int
319
onig_get_syntax_op(OnigSyntaxType* syntax)
320
0
{
321
0
  return syntax->op;
322
0
}
323
324
extern unsigned int
325
onig_get_syntax_op2(OnigSyntaxType* syntax)
326
0
{
327
0
  return syntax->op2;
328
0
}
329
330
extern unsigned int
331
onig_get_syntax_behavior(OnigSyntaxType* syntax)
332
0
{
333
0
  return syntax->behavior;
334
0
}
335
336
extern OnigOptionType
337
onig_get_syntax_options(OnigSyntaxType* syntax)
338
0
{
339
0
  return syntax->options;
340
0
}
341
342
#ifdef USE_VARIABLE_META_CHARS
343
extern int onig_set_meta_char(OnigSyntaxType* enc,
344
                              unsigned int what, OnigCodePoint code)
345
0
{
346
0
  switch (what) {
347
0
  case ONIG_META_CHAR_ESCAPE:
348
0
    enc->meta_char_table.esc = code;
349
0
    break;
350
0
  case ONIG_META_CHAR_ANYCHAR:
351
0
    enc->meta_char_table.anychar = code;
352
0
    break;
353
0
  case ONIG_META_CHAR_ANYTIME:
354
0
    enc->meta_char_table.anytime = code;
355
0
    break;
356
0
  case ONIG_META_CHAR_ZERO_OR_ONE_TIME:
357
0
    enc->meta_char_table.zero_or_one_time = code;
358
0
    break;
359
0
  case ONIG_META_CHAR_ONE_OR_MORE_TIME:
360
0
    enc->meta_char_table.one_or_more_time = code;
361
0
    break;
362
0
  case ONIG_META_CHAR_ANYCHAR_ANYTIME:
363
0
    enc->meta_char_table.anychar_anytime = code;
364
0
    break;
365
0
  default:
366
0
    return ONIGERR_INVALID_ARGUMENT;
367
0
    break;
368
0
  }
369
0
  return 0;
370
0
}
371
#endif /* USE_VARIABLE_META_CHARS */