]>
git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposerr.c
1 /**********************************************************************
2 regposerr.c - Oniguruma (regular expression library)
3 **********************************************************************/
5 * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
8 * Copyright (c) 2015, Hewlett Packard Enterprise Development, L.P.<BR>
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 /*#include "config.h"*/
33 #include "onigposix.h"
44 # define ARG_UNUSED __attribute__ ((unused))
49 static char* ESTRING
[] = {
51 "failed to match", /* REG_NOMATCH */
52 "Invalid regular expression", /* REG_BADPAT */
53 "invalid collating element referenced", /* REG_ECOLLATE */
54 "invalid character class type referenced", /* REG_ECTYPE */
55 "bad backslash-escape sequence", /* REG_EESCAPE */
56 "invalid back reference number", /* REG_ESUBREG */
57 "imbalanced [ and ]", /* REG_EBRACK */
58 "imbalanced ( and )", /* REG_EPAREN */
59 "imbalanced { and }", /* REG_EBRACE */
60 "invalid repeat range {n,m}", /* REG_BADBR */
61 "invalid range", /* REG_ERANGE */
62 "Out of memory", /* REG_ESPACE */
63 "? * + not preceded by valid regular expression", /* REG_BADRPT */
66 "internal error", /* REG_EONIG_INTERNAL */
67 "invalid wide char value", /* REG_EONIG_BADWC */
68 "invalid argument", /* REG_EONIG_BADARG */
69 "multi-thread error" /* REG_EONIG_THREAD */
76 regerror(int posix_ecode
, const regex_t
* reg ARG_UNUSED
, char* buf
,
84 && posix_ecode
< (int )(sizeof(ESTRING
) / sizeof(ESTRING
[0]))) {
85 s
= ESTRING
[posix_ecode
];
87 else if (posix_ecode
== 0) {
91 sprintf(tbuf
, "undefined error code (%d)", posix_ecode
);
95 len
= strlen_s(s
, MAX_STRING_SIZE
) + 1; /* use strlen() because s is ascii encoding. */
97 if (buf
!= NULL
&& size
> 0) {
98 strncpy_s(buf
, size
, s
, size
- 1);