diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-11-14 21:29:31 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-11-14 21:29:31 -0800 |
commit | 4e21fffe3f824247dceba0af38d36996afad2c13 (patch) | |
tree | 926a0d75f4826642d393c0c918c63bd47eecdca4 /system/lib/libc/musl/src/regex/regerror.c | |
parent | 1cdb5b33158a12f950b2def5a6cbf7dddb49b07e (diff) | |
parent | eee1dad79e3f4736c10be166ced7f62b082289f4 (diff) |
Merge branch 'regex-impl' of github.com:waywardmonkeys/emscripten into incoming1.7.6
Conflicts:
tools/shared.py
Diffstat (limited to 'system/lib/libc/musl/src/regex/regerror.c')
-rw-r--r-- | system/lib/libc/musl/src/regex/regerror.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/system/lib/libc/musl/src/regex/regerror.c b/system/lib/libc/musl/src/regex/regerror.c new file mode 100644 index 00000000..df4afa4f --- /dev/null +++ b/system/lib/libc/musl/src/regex/regerror.c @@ -0,0 +1,35 @@ +#include <string.h> +#include <regex.h> +#include <stdio.h> + +/* Error message strings for error codes listed in `regex.h'. This list + needs to be in sync with the codes listed there, naturally. */ + +/* Converted to single string by Rich Felker to remove the need for + * data relocations at runtime, 27 Feb 2006. */ + +static const char messages[] = { + "No error\0" + "No match\0" + "Invalid regexp\0" + "Unknown collating element\0" + "Unknown character class name\0" + "Trailing backslash\0" + "Invalid back reference\0" + "Missing ']'\0" + "Missing ')'\0" + "Missing '}'\0" + "Invalid contents of {}\0" + "Invalid character range\0" + "Out of memory\0" + "Repetition not preceded by valid expression\0" + "\0Unknown error" +}; + +size_t regerror(int e, const regex_t *restrict preg, char *restrict buf, size_t size) +{ + const char *s; + for (s=messages; e && *s; e--, s+=strlen(s)+1); + if (!*s) s++; + return 1+snprintf(buf, size, "%s", s); +} |