1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:17:35 +00:00

LibRegex: Tweak get_error() function

- Return StringView instead of DeprecatedString from function
  returning only literals
- Remove redundant cast
- Remove "inline" -- the function is defined in a cpp file,
  so there's no need for the linkage implications of `inline`.
  And compilers know to inline static functions with a single
  use without it. (Normally I'd remove the `static` instead,
  but this is in an `extern "C"` block, and it doesn't matter
  enough to end that block before the helper function and
  reopen it enough after)
This commit is contained in:
Nico Weber 2023-01-04 12:56:54 -05:00 committed by Linus Groh
parent a96f307af1
commit 5fdef94d53

View file

@ -152,61 +152,43 @@ int regexec(regex_t const* reg, char const* string, size_t nmatch, regmatch_t pm
return REG_NOMATCH; return REG_NOMATCH;
} }
inline static DeprecatedString get_error(ReError errcode) static StringView get_error(ReError errcode)
{ {
DeprecatedString error; switch (errcode) {
switch ((ReError)errcode) {
case REG_NOERR: case REG_NOERR:
error = "No error"; return "No error"sv;
break;
case REG_NOMATCH: case REG_NOMATCH:
error = "regexec() failed to match."; return "regexec() failed to match."sv;
break;
case REG_BADPAT: case REG_BADPAT:
error = "Invalid regular expression."; return "Invalid regular expression."sv;
break;
case REG_ECOLLATE: case REG_ECOLLATE:
error = "Invalid collating element referenced."; return "Invalid collating element referenced."sv;
break;
case REG_ECTYPE: case REG_ECTYPE:
error = "Invalid character class type referenced."; return "Invalid character class type referenced."sv;
break;
case REG_EESCAPE: case REG_EESCAPE:
error = "Trailing \\ in pattern."; return "Trailing \\ in pattern."sv;
break;
case REG_ESUBREG: case REG_ESUBREG:
error = "Number in \\digit invalid or in error."; return "Number in \\digit invalid or in error."sv;
break;
case REG_EBRACK: case REG_EBRACK:
error = "[ ] imbalance."; return "[ ] imbalance."sv;
break;
case REG_EPAREN: case REG_EPAREN:
error = "\\( \\) or ( ) imbalance."; return "\\( \\) or ( ) imbalance."sv;
break;
case REG_EBRACE: case REG_EBRACE:
error = "\\{ \\} imbalance."; return "\\{ \\} imbalance."sv;
break;
case REG_BADBR: case REG_BADBR:
error = "Content of \\{ \\} invalid: not a number, number too large, more than two numbers, first larger than second."; return "Content of \\{ \\} invalid: not a number, number too large, more than two numbers, first larger than second."sv;
break;
case REG_ERANGE: case REG_ERANGE:
error = "Invalid endpoint in range expression."; return "Invalid endpoint in range expression."sv;
break;
case REG_ESPACE: case REG_ESPACE:
error = "Out of memory."; return "Out of memory."sv;
break;
case REG_BADRPT: case REG_BADRPT:
error = "?, * or + not preceded by valid regular expression."; return "?, * or + not preceded by valid regular expression."sv;
break;
case REG_ENOSYS: case REG_ENOSYS:
error = "The implementation does not support the function."; return "The implementation does not support the function."sv;
break;
case REG_EMPTY_EXPR: case REG_EMPTY_EXPR:
error = "Empty expression provided"; return "Empty expression provided"sv;
break;
} }
return {};
return error;
} }
size_t regerror(int errcode, regex_t const* reg, char* errbuf, size_t errbuf_size) size_t regerror(int errcode, regex_t const* reg, char* errbuf, size_t errbuf_size)