mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-07 10:20:29 +00:00
retab: 'set et', stray ^I
This commit is contained in:
parent
60813003a3
commit
f224719b1d
24 changed files with 292 additions and 292 deletions
|
@ -157,14 +157,14 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The follow should be set to reflect the type of system you have:
|
* The follow should be set to reflect the type of system you have:
|
||||||
* JOBS -> 1 if you have Berkeley job control, 0 otherwise.
|
* JOBS -> 1 if you have Berkeley job control, 0 otherwise.
|
||||||
* SHORTNAMES -> 1 if your linker cannot handle long names.
|
* SHORTNAMES -> 1 if your linker cannot handle long names.
|
||||||
* define BSD if you are running 4.2 BSD or later.
|
* define BSD if you are running 4.2 BSD or later.
|
||||||
* define SYSV if you are running under System V.
|
* define SYSV if you are running under System V.
|
||||||
* define DEBUG=1 to compile in debugging ('set -o debug' to turn on)
|
* define DEBUG=1 to compile in debugging ('set -o debug' to turn on)
|
||||||
* define DEBUG=2 to compile in and turn on debugging.
|
* define DEBUG=2 to compile in and turn on debugging.
|
||||||
* define DO_SHAREDVFORK to indicate that vfork(2) shares its address
|
* define DO_SHAREDVFORK to indicate that vfork(2) shares its address
|
||||||
* with its parent.
|
* with its parent.
|
||||||
*
|
*
|
||||||
* When debugging is on, debugging info will be written to ./trace and
|
* When debugging is on, debugging info will be written to ./trace and
|
||||||
* a quit signal will generate a core dump.
|
* a quit signal will generate a core dump.
|
||||||
|
@ -6604,10 +6604,10 @@ static struct job *growjobtab(void) {
|
||||||
* own process group. Jp is a job structure that the job is to be added to.
|
* own process group. Jp is a job structure that the job is to be added to.
|
||||||
* N is the command that will be evaluated by the child. Both jp and n may
|
* N is the command that will be evaluated by the child. Both jp and n may
|
||||||
* be NULL. The mode parameter can be one of the following:
|
* be NULL. The mode parameter can be one of the following:
|
||||||
* FORK_FG - Fork off a foreground process.
|
* FORK_FG - Fork off a foreground process.
|
||||||
* FORK_BG - Fork off a background process.
|
* FORK_BG - Fork off a background process.
|
||||||
* FORK_NOJOB - Like FORK_FG, but don't give the process its own
|
* FORK_NOJOB - Like FORK_FG, but don't give the process its own
|
||||||
* process group even if job control is on.
|
* process group even if job control is on.
|
||||||
*
|
*
|
||||||
* When job control is turned off, background processes have their standard
|
* When job control is turned off, background processes have their standard
|
||||||
* input redirected to /dev/null (except for the second and later processes
|
* input redirected to /dev/null (except for the second and later processes
|
||||||
|
@ -8403,10 +8403,10 @@ static void nlnoprompt(void) {
|
||||||
/*
|
/*
|
||||||
* Read the next input token.
|
* Read the next input token.
|
||||||
* If the token is a word, we set backquotelist to the list of cmds in
|
* If the token is a word, we set backquotelist to the list of cmds in
|
||||||
* backquotes. We set quoteflag to true if any part of the word was
|
* backquotes. We set quoteflag to true if any part of the word was
|
||||||
* quoted.
|
* quoted.
|
||||||
* If the token is TREDIR, then we set redirnode to a structure containing
|
* If the token is TREDIR, then we set redirnode to a structure containing
|
||||||
* the redirection.
|
* the redirection.
|
||||||
*
|
*
|
||||||
* [Change comment: here documents and internal procedures]
|
* [Change comment: here documents and internal procedures]
|
||||||
* [Readtoken shouldn't have any arguments. Perhaps we should make the
|
* [Readtoken shouldn't have any arguments. Perhaps we should make the
|
||||||
|
@ -9767,7 +9767,7 @@ out:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Print SysV echo(1) style escape string
|
* Print SysV echo(1) style escape string
|
||||||
* Halts processing string if a \c escape is encountered.
|
* Halts processing string if a \c escape is encountered.
|
||||||
*/
|
*/
|
||||||
static int conv_escape_str(char *str, char **sp) {
|
static int conv_escape_str(char *str, char **sp) {
|
||||||
int c;
|
int c;
|
||||||
|
@ -9941,10 +9941,10 @@ static int echocmd(int argc, char **argv) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* test(1) accepts the following grammar:
|
/* test(1) accepts the following grammar:
|
||||||
oexpr ::= aexpr | aexpr "-o" oexpr ;
|
oexpr ::= aexpr | aexpr "-o" oexpr ;
|
||||||
aexpr ::= nexpr | nexpr "-a" aexpr ;
|
aexpr ::= nexpr | nexpr "-a" aexpr ;
|
||||||
nexpr ::= primary | "!" primary
|
nexpr ::= primary | "!" primary
|
||||||
primary ::= unary-operator operand
|
primary ::= unary-operator operand
|
||||||
| operand binary-operator operand
|
| operand binary-operator operand
|
||||||
| operand
|
| operand
|
||||||
| "(" oexpr ")"
|
| "(" oexpr ")"
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
* @param tz is completely ignored
|
* @param tz is completely ignored
|
||||||
* @return 0 on success, or -1 w/ errno
|
* @return 0 on success, or -1 w/ errno
|
||||||
* @raise EFAULT if `tv` points to invalid memory
|
* @raise EFAULT if `tv` points to invalid memory
|
||||||
* @see clock_gettime() for nanosecond precision
|
* @see clock_gettime() for nanosecond precision
|
||||||
* @see strftime() for string formatting
|
* @see strftime() for string formatting
|
||||||
* @asyncsignalsafe
|
* @asyncsignalsafe
|
||||||
* @vforksafe
|
* @vforksafe
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
/**
|
/**
|
||||||
* Timestamp of process start.
|
* Timestamp of process start.
|
||||||
*
|
*
|
||||||
* @see libc/runtime/winmain.greg.h
|
* @see libc/runtime/winmain.greg.h
|
||||||
* @see libc/crt/crt.S
|
* @see libc/crt/crt.S
|
||||||
*/
|
*/
|
||||||
uint64_t kStartTsc;
|
uint64_t kStartTsc;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
* Clears eof and error state indicators on stream.
|
* Clears eof and error state indicators on stream.
|
||||||
*
|
*
|
||||||
* @param f is file object stream pointer
|
* @param f is file object stream pointer
|
||||||
* @see clearerr_unlocked()
|
* @see clearerr_unlocked()
|
||||||
*/
|
*/
|
||||||
void clearerr(FILE *f) {
|
void clearerr(FILE *f) {
|
||||||
flockfile(f);
|
flockfile(f);
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
* Clears eof and error state indicators on stream.
|
* Clears eof and error state indicators on stream.
|
||||||
*
|
*
|
||||||
* @param f is file object stream pointer
|
* @param f is file object stream pointer
|
||||||
* @see clearerr()
|
* @see clearerr()
|
||||||
*/
|
*/
|
||||||
void clearerr_unlocked(FILE *f) {
|
void clearerr_unlocked(FILE *f) {
|
||||||
f->state = 0;
|
f->state = 0;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
* Returns true if stream is in end-of-file state.
|
* Returns true if stream is in end-of-file state.
|
||||||
*
|
*
|
||||||
* @param f is file object stream pointer
|
* @param f is file object stream pointer
|
||||||
* @see feof_unlocked()
|
* @see feof_unlocked()
|
||||||
*/
|
*/
|
||||||
int feof(FILE *f) {
|
int feof(FILE *f) {
|
||||||
int rc;
|
int rc;
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
* Returns true if stream is in end-of-file state.
|
* Returns true if stream is in end-of-file state.
|
||||||
*
|
*
|
||||||
* @param f is file object stream pointer
|
* @param f is file object stream pointer
|
||||||
* @see feof()
|
* @see feof()
|
||||||
*/
|
*/
|
||||||
int feof_unlocked(FILE *f) {
|
int feof_unlocked(FILE *f) {
|
||||||
return f->state == -1;
|
return f->state == -1;
|
||||||
|
|
|
@ -27,9 +27,9 @@
|
||||||
* defined as variables. By convention, system calls and other
|
* defined as variables. By convention, system calls and other
|
||||||
* functions do not update this variable when nothing's broken.
|
* functions do not update this variable when nothing's broken.
|
||||||
*
|
*
|
||||||
* @see libc/sysv/consts.sh
|
* @see libc/sysv/consts.sh
|
||||||
* @see libc/sysv/errfuns.h
|
* @see libc/sysv/errfuns.h
|
||||||
* @see __errno_location() stable abi
|
* @see __errno_location() stable abi
|
||||||
*/
|
*/
|
||||||
errno_t __errno;
|
errno_t __errno;
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ biased_exponent (float f)
|
||||||
if (UNLIKELY (ex == 0))
|
if (UNLIKELY (ex == 0))
|
||||||
{
|
{
|
||||||
/* Subnormal case - we still need to get the exponent right for subnormal
|
/* Subnormal case - we still need to get the exponent right for subnormal
|
||||||
numbers as division may take us back inside the normal range. */
|
numbers as division may take us back inside the normal range. */
|
||||||
return ex - __builtin_clz (fi << 9);
|
return ex - __builtin_clz (fi << 9);
|
||||||
}
|
}
|
||||||
return ex;
|
return ex;
|
||||||
|
@ -64,7 +64,7 @@ biased_exponent (float f)
|
||||||
/* Fast implementation of scalar atan2f. Largest observed error is
|
/* Fast implementation of scalar atan2f. Largest observed error is
|
||||||
2.88ulps in [99.0, 101.0] x [99.0, 101.0]:
|
2.88ulps in [99.0, 101.0] x [99.0, 101.0]:
|
||||||
atan2f(0x1.9332d8p+6, 0x1.8cb6c4p+6) got 0x1.964646p-1
|
atan2f(0x1.9332d8p+6, 0x1.8cb6c4p+6) got 0x1.964646p-1
|
||||||
want 0x1.964640p-1. */
|
want 0x1.964640p-1. */
|
||||||
float
|
float
|
||||||
atan2f (float y, float x)
|
atan2f (float y, float x)
|
||||||
{
|
{
|
||||||
|
@ -96,15 +96,15 @@ atan2f (float y, float x)
|
||||||
if (UNLIKELY (iay == 0 || (exp_diff >= POLY_UFLOW_BOUND && m >= 2)))
|
if (UNLIKELY (iay == 0 || (exp_diff >= POLY_UFLOW_BOUND && m >= 2)))
|
||||||
{
|
{
|
||||||
switch (m)
|
switch (m)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
return y; /* atan(+-0,+anything)=+-0. */
|
return y; /* atan(+-0,+anything)=+-0. */
|
||||||
case 2:
|
case 2:
|
||||||
return Pi; /* atan(+0,-anything) = pi. */
|
return Pi; /* atan(+0,-anything) = pi. */
|
||||||
case 3:
|
case 3:
|
||||||
return -Pi; /* atan(-0,-anything) =-pi. */
|
return -Pi; /* atan(-0,-anything) =-pi. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Special case for (x, y) either on or very close to the y axis. Either x =
|
/* Special case for (x, y) either on or very close to the y axis. Either x =
|
||||||
0, or x is tiny and y is huge (difference in exponents >=
|
0, or x is tiny and y is huge (difference in exponents >=
|
||||||
|
@ -116,33 +116,33 @@ atan2f (float y, float x)
|
||||||
if (iax == 0x7f800000)
|
if (iax == 0x7f800000)
|
||||||
{
|
{
|
||||||
if (iay == 0x7f800000)
|
if (iay == 0x7f800000)
|
||||||
{
|
{
|
||||||
switch (m)
|
switch (m)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return PiOver4; /* atan(+INF,+INF). */
|
return PiOver4; /* atan(+INF,+INF). */
|
||||||
case 1:
|
case 1:
|
||||||
return -PiOver4; /* atan(-INF,+INF). */
|
return -PiOver4; /* atan(-INF,+INF). */
|
||||||
case 2:
|
case 2:
|
||||||
return 3.0f * PiOver4; /* atan(+INF,-INF). */
|
return 3.0f * PiOver4; /* atan(+INF,-INF). */
|
||||||
case 3:
|
case 3:
|
||||||
return -3.0f * PiOver4; /* atan(-INF,-INF). */
|
return -3.0f * PiOver4; /* atan(-INF,-INF). */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (m)
|
switch (m)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return 0.0f; /* atan(+...,+INF). */
|
return 0.0f; /* atan(+...,+INF). */
|
||||||
case 1:
|
case 1:
|
||||||
return -0.0f; /* atan(-...,+INF). */
|
return -0.0f; /* atan(-...,+INF). */
|
||||||
case 2:
|
case 2:
|
||||||
return Pi; /* atan(+...,-INF). */
|
return Pi; /* atan(+...,-INF). */
|
||||||
case 3:
|
case 3:
|
||||||
return -Pi; /* atan(-...,-INF). */
|
return -Pi; /* atan(-...,-INF). */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* y is INF. */
|
/* y is INF. */
|
||||||
if (iay == 0x7f800000)
|
if (iay == 0x7f800000)
|
||||||
|
@ -164,7 +164,7 @@ atan2f (float y, float x)
|
||||||
if (UNLIKELY (m < 2 && exp_diff >= POLY_UFLOW_BOUND))
|
if (UNLIKELY (m < 2 && exp_diff >= POLY_UFLOW_BOUND))
|
||||||
{
|
{
|
||||||
/* If (x, y) is very close to x axis and x is positive, the polynomial
|
/* If (x, y) is very close to x axis and x is positive, the polynomial
|
||||||
will underflow and evaluate to z. */
|
will underflow and evaluate to z. */
|
||||||
ret = z;
|
ret = z;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -35,12 +35,12 @@ asm(".include \"libc/disclaimer.inc\"");
|
||||||
|
|
||||||
const struct atan_poly_data __atan_poly_data = {
|
const struct atan_poly_data __atan_poly_data = {
|
||||||
.poly = {/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
|
.poly = {/* Coefficients of polynomial P such that atan(x)~x+x*P(x^2) on
|
||||||
[2**-1022, 1.0]. See atan.sollya for details of how these were
|
[2**-1022, 1.0]. See atan.sollya for details of how these were
|
||||||
generated. */
|
generated. */
|
||||||
-0x1.5555555555555p-2, 0x1.99999999996c1p-3, -0x1.2492492478f88p-3,
|
-0x1.5555555555555p-2, 0x1.99999999996c1p-3, -0x1.2492492478f88p-3,
|
||||||
0x1.c71c71bc3951cp-4, -0x1.745d160a7e368p-4, 0x1.3b139b6a88ba1p-4,
|
0x1.c71c71bc3951cp-4, -0x1.745d160a7e368p-4, 0x1.3b139b6a88ba1p-4,
|
||||||
-0x1.11100ee084227p-4, 0x1.e1d0f9696f63bp-5, -0x1.aebfe7b418581p-5,
|
-0x1.11100ee084227p-4, 0x1.e1d0f9696f63bp-5, -0x1.aebfe7b418581p-5,
|
||||||
0x1.842dbe9b0d916p-5, -0x1.5d30140ae5e99p-5, 0x1.338e31eb2fbbcp-5,
|
0x1.842dbe9b0d916p-5, -0x1.5d30140ae5e99p-5, 0x1.338e31eb2fbbcp-5,
|
||||||
-0x1.00e6eece7de8p-5, 0x1.860897b29e5efp-6, -0x1.0051381722a59p-6,
|
-0x1.00e6eece7de8p-5, 0x1.860897b29e5efp-6, -0x1.0051381722a59p-6,
|
||||||
0x1.14e9dc19a4a4ep-7, -0x1.d0062b42fe3bfp-9, 0x1.17739e210171ap-10,
|
0x1.14e9dc19a4a4ep-7, -0x1.d0062b42fe3bfp-9, 0x1.17739e210171ap-10,
|
||||||
-0x1.ab24da7be7402p-13, 0x1.358851160a528p-16}};
|
-0x1.ab24da7be7402p-13, 0x1.358851160a528p-16}};
|
||||||
|
|
|
@ -37,5 +37,5 @@ asm(".include \"libc/disclaimer.inc\"");
|
||||||
*/
|
*/
|
||||||
const struct atanf_poly_data __atanf_poly_data = {
|
const struct atanf_poly_data __atanf_poly_data = {
|
||||||
.poly = {/* See atanf.sollya for details of how these were generated. */
|
.poly = {/* See atanf.sollya for details of how these were generated. */
|
||||||
-0x1.55555p-2f, 0x1.99935ep-3f, -0x1.24051ep-3f, 0x1.bd7368p-4f,
|
-0x1.55555p-2f, 0x1.99935ep-3f, -0x1.24051ep-3f, 0x1.bd7368p-4f,
|
||||||
-0x1.491f0ep-4f, 0x1.93a2c0p-5f, -0x1.4c3c60p-6f, 0x1.01fd88p-8f}};
|
-0x1.491f0ep-4f, 0x1.93a2c0p-5f, -0x1.4c3c60p-6f, 0x1.01fd88p-8f}};
|
||||||
|
|
|
@ -105,35 +105,35 @@ log1pf (float x)
|
||||||
|
|
||||||
/* Handle special cases first. */
|
/* Handle special cases first. */
|
||||||
if (UNLIKELY (ia12 >= 0x7f8 || ix >= 0xbf800000 || ix == 0x80000000
|
if (UNLIKELY (ia12 >= 0x7f8 || ix >= 0xbf800000 || ix == 0x80000000
|
||||||
|| e <= TINY_BOUND_BEXP))
|
|| e <= TINY_BOUND_BEXP))
|
||||||
{
|
{
|
||||||
if (ix == 0xff800000)
|
if (ix == 0xff800000)
|
||||||
{
|
{
|
||||||
/* x == -Inf => log1pf(x) = NaN. */
|
/* x == -Inf => log1pf(x) = NaN. */
|
||||||
return NAN;
|
return NAN;
|
||||||
}
|
}
|
||||||
if ((ix == 0x7f800000 || e <= TINY_BOUND_BEXP) && ia12 <= 0x7f8)
|
if ((ix == 0x7f800000 || e <= TINY_BOUND_BEXP) && ia12 <= 0x7f8)
|
||||||
{
|
{
|
||||||
/* |x| < TinyBound => log1p(x) = x.
|
/* |x| < TinyBound => log1p(x) = x.
|
||||||
x == Inf => log1pf(x) = Inf. */
|
x == Inf => log1pf(x) = Inf. */
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
if (ix == 0xbf800000)
|
if (ix == 0xbf800000)
|
||||||
{
|
{
|
||||||
/* x == -1.0 => log1pf(x) = -Inf. */
|
/* x == -1.0 => log1pf(x) = -Inf. */
|
||||||
return __math_divzerof (-1);
|
return __math_divzerof (-1);
|
||||||
}
|
}
|
||||||
if (ia12 >= 0x7f8)
|
if (ia12 >= 0x7f8)
|
||||||
{
|
{
|
||||||
/* x == +/-NaN => log1pf(x) = NaN. */
|
/* x == +/-NaN => log1pf(x) = NaN. */
|
||||||
return __math_invalidf (asfloat (ia));
|
return __math_invalidf (asfloat (ia));
|
||||||
}
|
}
|
||||||
/* x < -1.0 => log1pf(x) = NaN. */
|
/* x < -1.0 => log1pf(x) = NaN. */
|
||||||
return __math_invalidf (x);
|
return __math_invalidf (x);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m
|
/* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m
|
||||||
is in [-0.25, 0.5]):
|
is in [-0.25, 0.5]):
|
||||||
log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2).
|
log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2).
|
||||||
|
|
||||||
We approximate log1p(m) with a polynomial, then scale by
|
We approximate log1p(m) with a polynomial, then scale by
|
||||||
|
@ -144,8 +144,8 @@ log1pf (float x)
|
||||||
if (ix <= 0x3f000000 || ia <= 0x3e800000)
|
if (ix <= 0x3f000000 || ia <= 0x3e800000)
|
||||||
{
|
{
|
||||||
/* If x is in [-0.25, 0.5] then we can shortcut all the logic
|
/* If x is in [-0.25, 0.5] then we can shortcut all the logic
|
||||||
below, as k = 0 and m = x. All we need is to return the
|
below, as k = 0 and m = x. All we need is to return the
|
||||||
polynomial. */
|
polynomial. */
|
||||||
return eval_poly (x, e);
|
return eval_poly (x, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,10 +154,10 @@ log1pf (float x)
|
||||||
/* k is used scale the input. 0x3f400000 is chosen as we are trying to
|
/* k is used scale the input. 0x3f400000 is chosen as we are trying to
|
||||||
reduce x to the range [-0.25, 0.5]. Inside this range, k is 0.
|
reduce x to the range [-0.25, 0.5]. Inside this range, k is 0.
|
||||||
Outside this range, if k is reinterpreted as (NOT CONVERTED TO) float:
|
Outside this range, if k is reinterpreted as (NOT CONVERTED TO) float:
|
||||||
let k = sign * 2^p where sign = -1 if x < 0
|
let k = sign * 2^p where sign = -1 if x < 0
|
||||||
1 otherwise
|
1 otherwise
|
||||||
and p is a negative integer whose magnitude increases with the
|
and p is a negative integer whose magnitude increases with the
|
||||||
magnitude of x. */
|
magnitude of x. */
|
||||||
int k = (asuint (m) - 0x3f400000) & 0xff800000;
|
int k = (asuint (m) - 0x3f400000) & 0xff800000;
|
||||||
|
|
||||||
/* By using integer arithmetic, we obtain the necessary scaling by
|
/* By using integer arithmetic, we obtain the necessary scaling by
|
||||||
|
|
|
@ -37,5 +37,5 @@ asm(".include \"libc/disclaimer.inc\"");
|
||||||
algorithm, see tools/log1pf.sollya for details. */
|
algorithm, see tools/log1pf.sollya for details. */
|
||||||
const struct log1pf_data __log1pf_data
|
const struct log1pf_data __log1pf_data
|
||||||
= {.coeffs = {-0x1p-1f, 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f,
|
= {.coeffs = {-0x1p-1f, 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f,
|
||||||
-0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f, 0x1.abcb6p-4f,
|
-0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f, 0x1.abcb6p-4f,
|
||||||
-0x1.6f0d5ep-5f}};
|
-0x1.6f0d5ep-5f}};
|
||||||
|
|
|
@ -52,14 +52,14 @@ sincosf (float y, float *sinp, float *cosp)
|
||||||
double x2 = x * x;
|
double x2 = x * x;
|
||||||
|
|
||||||
if (UNLIKELY (abstop12 (y) < abstop12 (0x1p-12f)))
|
if (UNLIKELY (abstop12 (y) < abstop12 (0x1p-12f)))
|
||||||
{
|
{
|
||||||
if (UNLIKELY (abstop12 (y) < abstop12 (0x1p-126f)))
|
if (UNLIKELY (abstop12 (y) < abstop12 (0x1p-126f)))
|
||||||
/* Force underflow for tiny y. */
|
/* Force underflow for tiny y. */
|
||||||
FORCE_EVAL (x2);
|
FORCE_EVAL (x2);
|
||||||
*sinp = y;
|
*sinp = y;
|
||||||
*cosp = 1.0f;
|
*cosp = 1.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sincosf_poly (x, x2, p, 0, sinp, cosp);
|
sincosf_poly (x, x2, p, 0, sinp, cosp);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ sincosf (float y, float *sinp, float *cosp)
|
||||||
s = p->sign[n & 3];
|
s = p->sign[n & 3];
|
||||||
|
|
||||||
if (n & 2)
|
if (n & 2)
|
||||||
p = &__sincosf_table[1];
|
p = &__sincosf_table[1];
|
||||||
|
|
||||||
sincosf_poly (x * s, x * x, p, n, sinp, cosp);
|
sincosf_poly (x * s, x * x, p, n, sinp, cosp);
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ sincosf (float y, float *sinp, float *cosp)
|
||||||
s = p->sign[(n + sign) & 3];
|
s = p->sign[(n + sign) & 3];
|
||||||
|
|
||||||
if ((n + sign) & 2)
|
if ((n + sign) & 2)
|
||||||
p = &__sincosf_table[1];
|
p = &__sincosf_table[1];
|
||||||
|
|
||||||
sincosf_poly (x * s, x * x, p, n, sinp, cosp);
|
sincosf_poly (x * s, x * x, p, n, sinp, cosp);
|
||||||
}
|
}
|
||||||
|
@ -96,8 +96,8 @@ sincosf (float y, float *sinp, float *cosp)
|
||||||
*sinp = *cosp = y - y;
|
*sinp = *cosp = y - y;
|
||||||
#if WANT_ERRNO
|
#if WANT_ERRNO
|
||||||
/* Needed to set errno for +-Inf, the add is a hack to work
|
/* Needed to set errno for +-Inf, the add is a hack to work
|
||||||
around a gcc register allocation issue: just passing y
|
around a gcc register allocation issue: just passing y
|
||||||
affects code generation in the fast path. */
|
affects code generation in the fast path. */
|
||||||
__math_invalidf (y + y);
|
__math_invalidf (y + y);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ const sincos_t __sincosf_table[2] =
|
||||||
only 8 new bits are added per entry, making the table 4 times larger. */
|
only 8 new bits are added per entry, making the table 4 times larger. */
|
||||||
const uint32_t __inv_pio4[24] =
|
const uint32_t __inv_pio4[24] =
|
||||||
{
|
{
|
||||||
0xa2, 0xa2f9, 0xa2f983, 0xa2f9836e,
|
0xa2, 0xa2f9, 0xa2f983, 0xa2f9836e,
|
||||||
0xf9836e4e, 0x836e4e44, 0x6e4e4415, 0x4e441529,
|
0xf9836e4e, 0x836e4e44, 0x6e4e4415, 0x4e441529,
|
||||||
0x441529fc, 0x1529fc27, 0x29fc2757, 0xfc2757d1,
|
0x441529fc, 0x1529fc27, 0x29fc2757, 0xfc2757d1,
|
||||||
0x2757d1f5, 0x57d1f534, 0xd1f534dd, 0xf534ddc0,
|
0x2757d1f5, 0x57d1f534, 0xd1f534dd, 0xf534ddc0,
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DUL '_.!~*'"'"'();&=+$,-' -iskEscapeAuthority
|
// o//tool/build/xlat.com -DUL '_.!~*'"'"'();&=+$,-' -iskEscapeAuthority
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ␠ “# % / ! $ &‘()*+,-. 0x20
|
// ␠ “# % / ! $ &‘()*+,-. 0x20
|
||||||
// : < >⁇ 0123456789 ; = 0x30
|
// : < >⁇ 0123456789 ; = 0x30
|
||||||
// @ ABCDEFGHIJKLMNO 0x40
|
// @ ABCDEFGHIJKLMNO 0x40
|
||||||
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
||||||
// ` abcdefghijklmno 0x60
|
// ` abcdefghijklmno 0x60
|
||||||
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kEscapeAuthority[256] = {
|
const char kEscapeAuthority[256] = {
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DUL '/?.~_@:!$&'"'"'()*+,;=-' -iskEscapeFragment
|
// o//tool/build/xlat.com -DUL '/?.~_@:!$&'"'"'()*+,;=-' -iskEscapeFragment
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ␠ “# % ! § &‘()*+,-./ 0x20
|
// ␠ “# % ! § &‘()*+,-./ 0x20
|
||||||
// < > 0123456789:; = ⁇ 0x30
|
// < > 0123456789:; = ⁇ 0x30
|
||||||
// @ABCDEFGHIJKLMNO 0x40
|
// @ABCDEFGHIJKLMNO 0x40
|
||||||
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
||||||
// ` abcdefghijklmno 0x60
|
// ` abcdefghijklmno 0x60
|
||||||
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kEscapeFragment[256] = {
|
const char kEscapeFragment[256] = {
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DUL '_-.!~*'"'"'();&=+$,:' -iskEscapeIp
|
// o//tool/build/xlat.com -DUL '_-.!~*'"'"'();&=+$,:' -iskEscapeIp
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ␠ “# % / ! § &‘()*+,-. 0x20
|
// ␠ “# % / ! § &‘()*+,-. 0x20
|
||||||
// < >⁇ 0123456789:; = 0x30
|
// < >⁇ 0123456789:; = 0x30
|
||||||
// @ ABCDEFGHIJKLMNO 0x40
|
// @ ABCDEFGHIJKLMNO 0x40
|
||||||
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
||||||
// ` abcdefghijklmno 0x60
|
// ` abcdefghijklmno 0x60
|
||||||
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kEscapeIp[256] = {
|
const char kEscapeIp[256] = {
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DUL '.-*_' -iskEscapeParam
|
// o//tool/build/xlat.com -DUL '.-*_' -iskEscapeParam
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ␠!“#§%&‘() +, / * -. 0x20
|
// ␠!“#§%&‘() +, / * -. 0x20
|
||||||
// :;<=>⁇ 0123456789 0x30
|
// :;<=>⁇ 0123456789 0x30
|
||||||
// @ ABCDEFGHIJKLMNO 0x40
|
// @ ABCDEFGHIJKLMNO 0x40
|
||||||
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
||||||
// ` abcdefghijklmno 0x60
|
// ` abcdefghijklmno 0x60
|
||||||
// {|}~⌂ pqrstuvwxyz 0x70
|
// {|}~⌂ pqrstuvwxyz 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kEscapeParam[256] = {
|
const char kEscapeParam[256] = {
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DUL '.-~_@:!$&'"'"'()*+,;=/' -iskEscapePath
|
// o//tool/build/xlat.com -DUL '.-~_@:!$&'"'"'()*+,;=/' -iskEscapePath
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ␠ “# % ! § &‘()*+,-./ 0x20
|
// ␠ “# % ! § &‘()*+,-./ 0x20
|
||||||
// < >⁇ 0123456789:; = 0x30
|
// < >⁇ 0123456789:; = 0x30
|
||||||
// @ABCDEFGHIJKLMNO 0x40
|
// @ABCDEFGHIJKLMNO 0x40
|
||||||
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
||||||
// ` abcdefghijklmno 0x60
|
// ` abcdefghijklmno 0x60
|
||||||
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kEscapePath[256] = {
|
const char kEscapePath[256] = {
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DUL '.-~_@:!$&'"'"'()*+,;=' -iskEscapeSegment
|
// o//tool/build/xlat.com -DUL '.-~_@:!$&'"'"'()*+,;=' -iskEscapeSegment
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ␠ “# % / ! § &‘()*+,-. 0x20
|
// ␠ “# % / ! § &‘()*+,-. 0x20
|
||||||
// < >⁇ 0123456789:; = 0x30
|
// < >⁇ 0123456789:; = 0x30
|
||||||
// @ABCDEFGHIJKLMNO 0x40
|
// @ABCDEFGHIJKLMNO 0x40
|
||||||
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
// [⭝]^ PQRSTUVWXYZ _ 0x50
|
||||||
// ` abcdefghijklmno 0x60
|
// ` abcdefghijklmno 0x60
|
||||||
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
// {|} ⌂ pqrstuvwxyz ~ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kEscapeSegment[256] = {
|
const char kEscapeSegment[256] = {
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -DA _- -skHostChars
|
// o//tool/build/xlat.com -DA _- -skHostChars
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// - ␠!“#§%&‘()*+, ./ 0x20
|
// - ␠!“#§%&‘()*+, ./ 0x20
|
||||||
// 0123456789 :;<=>⁇ 0x30
|
// 0123456789 :;<=>⁇ 0x30
|
||||||
// ABCDEFGHIJKLMNO @ 0x40
|
// ABCDEFGHIJKLMNO @ 0x40
|
||||||
// PQRSTUVWXYZ _ [⭝]^ 0x50
|
// PQRSTUVWXYZ _ [⭝]^ 0x50
|
||||||
// abcdefghijklmno ` 0x60
|
// abcdefghijklmno ` 0x60
|
||||||
// pqrstuvwxyz {|}~⌂ 0x70
|
// pqrstuvwxyz {|}~⌂ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kHostChars[256] = {
|
const char kHostChars[256] = {
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x00
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x00
|
||||||
|
|
|
@ -18,27 +18,27 @@
|
||||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||||
#include "net/http/escape.h"
|
#include "net/http/escape.h"
|
||||||
|
|
||||||
// generated by:
|
// generated by:
|
||||||
// o//tool/build/xlat.com -TiC ' ()<>@,;:\"/[]?={}' -iskHttpToken
|
// o//tool/build/xlat.com -TiC ' ()<>@,;:\"/[]?={}' -iskHttpToken
|
||||||
//
|
//
|
||||||
// present absent
|
// present absent
|
||||||
// ──────────────── ────────────────
|
// ──────────────── ────────────────
|
||||||
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
// ∅☺☻♥♦♣♠•◘○◙♂♀♪♫☼ 0x00
|
||||||
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
// ►◄↕‼¶§▬↨↑↓→←∟↔▲▼ 0x10
|
||||||
// ! #$%&‘ *+ -. ␠ “ () , / 0x20
|
// ! #$%&‘ *+ -. ␠ “ () , / 0x20
|
||||||
// 0123456789 :;<=>⁇ 0x30
|
// 0123456789 :;<=>⁇ 0x30
|
||||||
// ABCDEFGHIJKLMNO @ 0x40
|
// ABCDEFGHIJKLMNO @ 0x40
|
||||||
// PQRSTUVWXYZ ^_ [⭝] 0x50
|
// PQRSTUVWXYZ ^_ [⭝] 0x50
|
||||||
// `abcdefghijklmno 0x60
|
// `abcdefghijklmno 0x60
|
||||||
// pqrstuvwxyz | ~ { } ⌂ 0x70
|
// pqrstuvwxyz | ~ { } ⌂ 0x70
|
||||||
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
// ÇüéâäàåçêëèïîìÄÅ 0x80
|
||||||
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
// ÉæÆôöòûùÿÖÜ¢£¥€ƒ 0x90
|
||||||
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
// áíóúñѪº¿⌐¬½¼¡«» 0xa0
|
||||||
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
// ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐ 0xb0
|
||||||
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
// └┴┬├─┼╞╟╚╔╩╦╠═╬╧ 0xc0
|
||||||
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
// ╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ 0xd0
|
||||||
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
// αßΓπΣσμτΦΘΩδ∞φε∩ 0xe0
|
||||||
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
// ≡±≥≤⌠⌡÷≈°∙×√ⁿ²■λ 0xf0
|
||||||
|
|
||||||
const char kHttpToken[256] = {
|
const char kHttpToken[256] = {
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x00
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x00
|
||||||
|
@ -59,14 +59,14 @@ const char kHttpToken[256] = {
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xf0
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xf0
|
||||||
};
|
};
|
||||||
|
|
||||||
// @see RFC2616
|
// @see RFC2616
|
||||||
// CHAR = <any US-ASCII character (octets 0 - 127)>
|
// CHAR = <any US-ASCII character (octets 0 - 127)>
|
||||||
// SP = <US-ASCII SP, space (32)>
|
// SP = <US-ASCII SP, space (32)>
|
||||||
// HT = <US-ASCII HT, horizontal-tab (9)>
|
// HT = <US-ASCII HT, horizontal-tab (9)>
|
||||||
// CTL = <any US-ASCII control character
|
// CTL = <any US-ASCII control character
|
||||||
// (octets 0 - 31) and DEL (127)>
|
// (octets 0 - 31) and DEL (127)>
|
||||||
// token = 1*<any CHAR except CTLs or separators>
|
// token = 1*<any CHAR except CTLs or separators>
|
||||||
// separators = "(" | ")" | "<" | ">" | "@"
|
// separators = "(" | ")" | "<" | ">" | "@"
|
||||||
// | "," | ";" | ":" | "\" | <">
|
// | "," | ";" | ":" | "\" | <">
|
||||||
// | "/" | "[" | "]" | "?" | "="
|
// | "/" | "[" | "]" | "?" | "="
|
||||||
// | "{" | "}" | SP | HT
|
// | "{" | "}" | SP | HT
|
||||||
|
|
|
@ -53,7 +53,7 @@ static const char kRet31337[] = {
|
||||||
};
|
};
|
||||||
#elif defined(__aarch64__)
|
#elif defined(__aarch64__)
|
||||||
static const uint32_t kRet31337[] = {
|
static const uint32_t kRet31337[] = {
|
||||||
0x528f4d20, // mov w0,#31337
|
0x528f4d20, // mov w0,#31337
|
||||||
0xd65f03c0, // ret
|
0xd65f03c0, // ret
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue