mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
[MINOR] tools: add hex2i() function to convert hex char to int
This commit is contained in:
parent
9e2e39e117
commit
da3b7c31f7
@ -117,6 +117,12 @@ extern const char *limit_r(unsigned long n, char *buffer, int size, const char *
|
||||
*/
|
||||
extern int ishex(char s);
|
||||
|
||||
/*
|
||||
* Return integer equivalent of character <c> for a hex digit (0-9, a-f, A-F),
|
||||
* otherwise -1.
|
||||
*/
|
||||
extern int hex2i(int c);
|
||||
|
||||
/*
|
||||
* Checks <name> for invalid characters. Valid chars are [A-Za-z0-9_:.-]. If an
|
||||
* invalid character is found, a pointer to it is returned. If everything is
|
||||
|
@ -158,6 +158,21 @@ int ishex(char s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return integer equivalent of character <c> for a hex digit (0-9, a-f, A-F),
|
||||
* otherwise -1. This compact form helps gcc produce efficient code.
|
||||
*/
|
||||
int hex2i(int c)
|
||||
{
|
||||
if ((unsigned char)(c -= '0') > 9) {
|
||||
if ((unsigned char)(c -= 'A' - '0') > 5 &&
|
||||
(unsigned char)(c -= 'a' - 'A') > 5)
|
||||
c = -11;
|
||||
c += 10;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks <name> for invalid characters. Valid chars are [A-Za-z0-9_:.-]. If an
|
||||
* invalid character is found, a pointer to it is returned. If everything is
|
||||
|
Loading…
x
Reference in New Issue
Block a user