Change a number of expressions like 1<<10 to 1u<<10.
This commit is contained in:
parent
590bc16842
commit
95c9d011e3
|
@ -149,6 +149,9 @@ from Ross Burton.
|
||||||
36. Disable SSE2 JIT optimizations in x86 CPUs when SSE2 is not available.
|
36. Disable SSE2 JIT optimizations in x86 CPUs when SSE2 is not available.
|
||||||
Patch by Guillem Jover.
|
Patch by Guillem Jover.
|
||||||
|
|
||||||
|
37. Changed expressions such as 1<<10 to 1u<<10 in many places because compiler
|
||||||
|
warnings were reported.
|
||||||
|
|
||||||
|
|
||||||
Version 10.32 10-September-2018
|
Version 10.32 10-September-2018
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1051,7 +1051,7 @@ for(;;)
|
||||||
if (chr > 255) break;
|
if (chr > 255) break;
|
||||||
class_bitset = (uint8_t *)
|
class_bitset = (uint8_t *)
|
||||||
((list_ptr == list ? code : base_end) - list_ptr[2]);
|
((list_ptr == list ? code : base_end) - list_ptr[2]);
|
||||||
if ((class_bitset[chr >> 3] & (1 << (chr & 7))) != 0) return FALSE;
|
if ((class_bitset[chr >> 3] & (1u << (chr & 7))) != 0) return FALSE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef SUPPORT_WIDE_CHARS
|
#ifdef SUPPORT_WIDE_CHARS
|
||||||
|
|
|
@ -368,17 +368,17 @@ enum { PSKIP_ALT, PSKIP_CLASS, PSKIP_KET };
|
||||||
experimenting to figure out how to stop gcc 5.3.0 from warning with
|
experimenting to figure out how to stop gcc 5.3.0 from warning with
|
||||||
-Wconversion. This version gets a warning:
|
-Wconversion. This version gets a warning:
|
||||||
|
|
||||||
#define SETBIT(a,b) a[(b)/8] |= (uint8_t)(1 << ((b)&7))
|
#define SETBIT(a,b) a[(b)/8] |= (uint8_t)(1u << ((b)&7))
|
||||||
|
|
||||||
Let's hope the apparently less efficient version isn't actually so bad if the
|
Let's hope the apparently less efficient version isn't actually so bad if the
|
||||||
compiler is clever with identical subexpressions. */
|
compiler is clever with identical subexpressions. */
|
||||||
|
|
||||||
#define SETBIT(a,b) a[(b)/8] = (uint8_t)(a[(b)/8] | (1 << ((b)&7)))
|
#define SETBIT(a,b) a[(b)/8] = (uint8_t)(a[(b)/8] | (1u << ((b)&7)))
|
||||||
|
|
||||||
/* Private flags added to firstcu and reqcu. */
|
/* Private flags added to firstcu and reqcu. */
|
||||||
|
|
||||||
#define REQ_CASELESS (1 << 0) /* Indicates caselessness */
|
#define REQ_CASELESS (1u << 0) /* Indicates caselessness */
|
||||||
#define REQ_VARY (1 << 1) /* reqcu followed non-literal item */
|
#define REQ_VARY (1u << 1) /* reqcu followed non-literal item */
|
||||||
/* Negative values for the firstcu and reqcu flags */
|
/* Negative values for the firstcu and reqcu flags */
|
||||||
#define REQ_UNSET (-2) /* Not yet found anything */
|
#define REQ_UNSET (-2) /* Not yet found anything */
|
||||||
#define REQ_NONE (-1) /* Found not fixed char */
|
#define REQ_NONE (-1) /* Found not fixed char */
|
||||||
|
|
|
@ -2567,7 +2567,7 @@ for (;;)
|
||||||
if (clen > 0)
|
if (clen > 0)
|
||||||
{
|
{
|
||||||
isinclass = (c > 255)? (codevalue == OP_NCLASS) :
|
isinclass = (c > 255)? (codevalue == OP_NCLASS) :
|
||||||
((((uint8_t *)(code + 1))[c/8] & (1 << (c&7))) != 0);
|
((((uint8_t *)(code + 1))[c/8] & (1u << (c&7))) != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3609,7 +3609,7 @@ for (;;)
|
||||||
#if PCRE2_CODE_UNIT_WIDTH != 8
|
#if PCRE2_CODE_UNIT_WIDTH != 8
|
||||||
if (c > 255) c = 255;
|
if (c > 255) c = 255;
|
||||||
#endif
|
#endif
|
||||||
ok = (start_bits[c/8] & (1 << (c&7))) != 0;
|
ok = (start_bits[c/8] & (1u << (c&7))) != 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!ok) break;
|
if (!ok) break;
|
||||||
|
@ -3720,7 +3720,7 @@ for (;;)
|
||||||
#if PCRE2_CODE_UNIT_WIDTH != 8
|
#if PCRE2_CODE_UNIT_WIDTH != 8
|
||||||
if (c > 255) c = 255;
|
if (c > 255) c = 255;
|
||||||
#endif
|
#endif
|
||||||
if ((start_bits[c/8] & (1 << (c&7))) != 0) break;
|
if ((start_bits[c/8] & (1u << (c&7))) != 0) break;
|
||||||
start_match++;
|
start_match++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -100,7 +100,7 @@ while (eptr < end_subject)
|
||||||
int len = 1;
|
int len = 1;
|
||||||
if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
|
if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
|
||||||
rgb = UCD_GRAPHBREAK(c);
|
rgb = UCD_GRAPHBREAK(c);
|
||||||
if ((PRIV(ucp_gbtable)[lgb] & (1 << rgb)) == 0) break;
|
if ((PRIV(ucp_gbtable)[lgb] & (1u << rgb)) == 0) break;
|
||||||
|
|
||||||
/* Not breaking between Regional Indicators is allowed only if there
|
/* Not breaking between Regional Indicators is allowed only if there
|
||||||
are an even number of preceding RIs. */
|
are an even number of preceding RIs. */
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -114,17 +114,17 @@ test for alnum specially. */
|
||||||
memset(p, 0, cbit_length);
|
memset(p, 0, cbit_length);
|
||||||
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
||||||
{
|
{
|
||||||
if (isdigit(i)) p[cbit_digit + i/8] |= 1 << (i&7);
|
if (isdigit(i)) p[cbit_digit + i/8] |= 1u << (i&7);
|
||||||
if (isupper(i)) p[cbit_upper + i/8] |= 1 << (i&7);
|
if (isupper(i)) p[cbit_upper + i/8] |= 1u << (i&7);
|
||||||
if (islower(i)) p[cbit_lower + i/8] |= 1 << (i&7);
|
if (islower(i)) p[cbit_lower + i/8] |= 1u << (i&7);
|
||||||
if (isalnum(i)) p[cbit_word + i/8] |= 1 << (i&7);
|
if (isalnum(i)) p[cbit_word + i/8] |= 1u << (i&7);
|
||||||
if (i == '_') p[cbit_word + i/8] |= 1 << (i&7);
|
if (i == '_') p[cbit_word + i/8] |= 1u << (i&7);
|
||||||
if (isspace(i)) p[cbit_space + i/8] |= 1 << (i&7);
|
if (isspace(i)) p[cbit_space + i/8] |= 1u << (i&7);
|
||||||
if (isxdigit(i))p[cbit_xdigit + i/8] |= 1 << (i&7);
|
if (isxdigit(i))p[cbit_xdigit + i/8] |= 1u << (i&7);
|
||||||
if (isgraph(i)) p[cbit_graph + i/8] |= 1 << (i&7);
|
if (isgraph(i)) p[cbit_graph + i/8] |= 1u << (i&7);
|
||||||
if (isprint(i)) p[cbit_print + i/8] |= 1 << (i&7);
|
if (isprint(i)) p[cbit_print + i/8] |= 1u << (i&7);
|
||||||
if (ispunct(i)) p[cbit_punct + i/8] |= 1 << (i&7);
|
if (ispunct(i)) p[cbit_punct + i/8] |= 1u << (i&7);
|
||||||
if (iscntrl(i)) p[cbit_cntrl + i/8] |= 1 << (i&7);
|
if (iscntrl(i)) p[cbit_cntrl + i/8] |= 1u << (i&7);
|
||||||
}
|
}
|
||||||
p += cbit_length;
|
p += cbit_length;
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2015-2018 University of Cambridge
|
New API code Copyright (c) 2015-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1849,7 +1849,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
if (Fop == OP_CLASS) RRETURN(MATCH_NOMATCH);
|
if (Fop == OP_CLASS) RRETURN(MATCH_NOMATCH);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((Lbyte_map[fc/8] & (1 << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
if ((Lbyte_map[fc/8] & (1u << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1871,7 +1871,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if ((Lbyte_map[fc/8] & (1 << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
if ((Lbyte_map[fc/8] & (1u << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1903,7 +1903,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
if (Fop == OP_CLASS) RRETURN(MATCH_NOMATCH);
|
if (Fop == OP_CLASS) RRETURN(MATCH_NOMATCH);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((Lbyte_map[fc/8] & (1 << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
if ((Lbyte_map[fc/8] & (1u << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1928,7 +1928,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if ((Lbyte_map[fc/8] & (1 << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
if ((Lbyte_map[fc/8] & (1u << (fc&7))) == 0) RRETURN(MATCH_NOMATCH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Control never gets here */
|
/* Control never gets here */
|
||||||
|
@ -1957,7 +1957,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
if (Fop == OP_CLASS) break;
|
if (Fop == OP_CLASS) break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((Lbyte_map[fc/8] & (1 << (fc&7))) == 0) break;
|
if ((Lbyte_map[fc/8] & (1u << (fc&7))) == 0) break;
|
||||||
Feptr += len;
|
Feptr += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1994,7 +1994,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if ((Lbyte_map[fc/8] & (1 << (fc&7))) == 0) break;
|
if ((Lbyte_map[fc/8] & (1u << (fc&7))) == 0) break;
|
||||||
Feptr++;
|
Feptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4085,7 +4085,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode);
|
||||||
GETCHAR(fc, fptr);
|
GETCHAR(fc, fptr);
|
||||||
}
|
}
|
||||||
lgb = UCD_GRAPHBREAK(fc);
|
lgb = UCD_GRAPHBREAK(fc);
|
||||||
if ((PRIV(ucp_gbtable)[lgb] & (1 << rgb)) == 0) break;
|
if ((PRIV(ucp_gbtable)[lgb] & (1u << rgb)) == 0) break;
|
||||||
Feptr = fptr;
|
Feptr = fptr;
|
||||||
rgb = lgb;
|
rgb = lgb;
|
||||||
}
|
}
|
||||||
|
@ -6459,7 +6459,7 @@ for(;;)
|
||||||
#if PCRE2_CODE_UNIT_WIDTH != 8
|
#if PCRE2_CODE_UNIT_WIDTH != 8
|
||||||
if (c > 255) c = 255;
|
if (c > 255) c = 255;
|
||||||
#endif
|
#endif
|
||||||
ok = (start_bits[c/8] & (1 << (c&7))) != 0;
|
ok = (start_bits[c/8] & (1u << (c&7))) != 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!ok)
|
if (!ok)
|
||||||
|
@ -6576,7 +6576,7 @@ for(;;)
|
||||||
#if PCRE2_CODE_UNIT_WIDTH != 8
|
#if PCRE2_CODE_UNIT_WIDTH != 8
|
||||||
if (c > 255) c = 255;
|
if (c > 255) c = 255;
|
||||||
#endif
|
#endif
|
||||||
if ((start_bits[c/8] & (1 << (c&7))) != 0) break;
|
if ((start_bits[c/8] & (1u << (c&7))) != 0) break;
|
||||||
start_match++;
|
start_match++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -679,11 +679,11 @@ for(;;)
|
||||||
|
|
||||||
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
||||||
{
|
{
|
||||||
if ((map[i/8] & (1 << (i&7))) != 0)
|
if ((map[i/8] & (1u << (i&7))) != 0)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
for (j = i+1; j < 256; j++)
|
for (j = i+1; j < 256; j++)
|
||||||
if ((map[j/8] & (1 << (j&7))) == 0) break;
|
if ((map[j/8] & (1u << (j&7))) == 0) break;
|
||||||
if (i == '-' || i == ']') fprintf(f, "\\");
|
if (i == '-' || i == ']') fprintf(f, "\\");
|
||||||
if (PRINTABLE(i)) fprintf(f, "%c", i);
|
if (PRINTABLE(i)) fprintf(f, "%c", i);
|
||||||
else fprintf(f, "\\x%02x", i);
|
else fprintf(f, "\\x%02x", i);
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -54,7 +54,7 @@ collecting data (e.g. minimum matching length). */
|
||||||
|
|
||||||
/* Set a bit in the starting code unit bit map. */
|
/* Set a bit in the starting code unit bit map. */
|
||||||
|
|
||||||
#define SET_BIT(c) re->start_bitmap[(c)/8] |= (1 << ((c)&7))
|
#define SET_BIT(c) re->start_bitmap[(c)/8] |= (1u << ((c)&7))
|
||||||
|
|
||||||
/* Returns from set_start_bits() */
|
/* Returns from set_start_bits() */
|
||||||
|
|
||||||
|
@ -843,7 +843,7 @@ for (c = 0; c < table_limit; c++)
|
||||||
if (table_limit == 32) return;
|
if (table_limit == 32) return;
|
||||||
for (c = 128; c < 256; c++)
|
for (c = 128; c < 256; c++)
|
||||||
{
|
{
|
||||||
if ((re->tables[cbits_offset + c/8] & (1 << (c&7))) != 0)
|
if ((re->tables[cbits_offset + c/8] & (1u << (c&7))) != 0)
|
||||||
{
|
{
|
||||||
PCRE2_UCHAR buff[6];
|
PCRE2_UCHAR buff[6];
|
||||||
(void)PRIV(ord2utf)(c, buff);
|
(void)PRIV(ord2utf)(c, buff);
|
||||||
|
@ -1507,10 +1507,10 @@ do
|
||||||
for (c = 0; c < 16; c++) re->start_bitmap[c] |= classmap[c];
|
for (c = 0; c < 16; c++) re->start_bitmap[c] |= classmap[c];
|
||||||
for (c = 128; c < 256; c++)
|
for (c = 128; c < 256; c++)
|
||||||
{
|
{
|
||||||
if ((classmap[c/8] & (1 << (c&7))) != 0)
|
if ((classmap[c/8] & (1u << (c&7))) != 0)
|
||||||
{
|
{
|
||||||
int d = (c >> 6) | 0xc0; /* Set bit for this starter */
|
int d = (c >> 6) | 0xc0; /* Set bit for this starter */
|
||||||
re->start_bitmap[d/8] |= (1 << (d&7)); /* and then skip on to the */
|
re->start_bitmap[d/8] |= (1u << (d&7)); /* and then skip on to the */
|
||||||
c = (c & 0xc0) + 0x40 - 1; /* next relevant character. */
|
c = (c & 0xc0) + 0x40 - 1; /* next relevant character. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -716,7 +716,7 @@ do
|
||||||
{
|
{
|
||||||
if (((code->tables + cbits_offset +
|
if (((code->tables + cbits_offset +
|
||||||
((forcecase > 0)? cbit_upper:cbit_lower)
|
((forcecase > 0)? cbit_upper:cbit_lower)
|
||||||
)[ch/8] & (1 << (ch%8))) == 0)
|
)[ch/8] & (1u << (ch%8))) == 0)
|
||||||
ch = (code->tables + fcc_offset)[ch];
|
ch = (code->tables + fcc_offset)[ch];
|
||||||
}
|
}
|
||||||
forcecase = forcecasereset;
|
forcecase = forcecasereset;
|
||||||
|
@ -818,7 +818,7 @@ do
|
||||||
{
|
{
|
||||||
if (((code->tables + cbits_offset +
|
if (((code->tables + cbits_offset +
|
||||||
((forcecase > 0)? cbit_upper:cbit_lower)
|
((forcecase > 0)? cbit_upper:cbit_lower)
|
||||||
)[ch/8] & (1 << (ch%8))) == 0)
|
)[ch/8] & (1u << (ch%8))) == 0)
|
||||||
ch = (code->tables + fcc_offset)[ch];
|
ch = (code->tables + fcc_offset)[ch];
|
||||||
}
|
}
|
||||||
forcecase = forcecasereset;
|
forcecase = forcecasereset;
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -142,7 +142,7 @@ ucp_gbXX values defined in pcre2_ucp.h. These changed between Unicode versions
|
||||||
code points. The left property selects a word from the table, and the right
|
code points. The left property selects a word from the table, and the right
|
||||||
property selects a bit from that word like this:
|
property selects a bit from that word like this:
|
||||||
|
|
||||||
PRIV(ucp_gbtable)[left-property] & (1 << right-property)
|
PRIV(ucp_gbtable)[left-property] & (1u << right-property)
|
||||||
|
|
||||||
The value is non-zero if a grapheme break is NOT permitted between the relevant
|
The value is non-zero if a grapheme break is NOT permitted between the relevant
|
||||||
two code points. The breaking rules are as follows:
|
two code points. The breaking rules are as follows:
|
||||||
|
@ -183,25 +183,25 @@ are implementing).
|
||||||
#define ESZ (1<<ucp_gbExtend)|(1<<ucp_gbSpacingMark)|(1<<ucp_gbZWJ)
|
#define ESZ (1<<ucp_gbExtend)|(1<<ucp_gbSpacingMark)|(1<<ucp_gbZWJ)
|
||||||
|
|
||||||
const uint32_t PRIV(ucp_gbtable)[] = {
|
const uint32_t PRIV(ucp_gbtable)[] = {
|
||||||
(1<<ucp_gbLF), /* 0 CR */
|
(1u<<ucp_gbLF), /* 0 CR */
|
||||||
0, /* 1 LF */
|
0, /* 1 LF */
|
||||||
0, /* 2 Control */
|
0, /* 2 Control */
|
||||||
ESZ, /* 3 Extend */
|
ESZ, /* 3 Extend */
|
||||||
ESZ|(1<<ucp_gbPrepend)| /* 4 Prepend */
|
ESZ|(1u<<ucp_gbPrepend)| /* 4 Prepend */
|
||||||
(1<<ucp_gbL)|(1<<ucp_gbV)|(1<<ucp_gbT)|
|
(1u<<ucp_gbL)|(1u<<ucp_gbV)|(1u<<ucp_gbT)|
|
||||||
(1<<ucp_gbLV)|(1<<ucp_gbLVT)|(1<<ucp_gbOther)|
|
(1u<<ucp_gbLV)|(1u<<ucp_gbLVT)|(1u<<ucp_gbOther)|
|
||||||
(1<<ucp_gbRegionalIndicator),
|
(1u<<ucp_gbRegionalIndicator),
|
||||||
ESZ, /* 5 SpacingMark */
|
ESZ, /* 5 SpacingMark */
|
||||||
ESZ|(1<<ucp_gbL)|(1<<ucp_gbV)|(1<<ucp_gbLV)| /* 6 L */
|
ESZ|(1u<<ucp_gbL)|(1u<<ucp_gbV)|(1u<<ucp_gbLV)| /* 6 L */
|
||||||
(1<<ucp_gbLVT),
|
(1u<<ucp_gbLVT),
|
||||||
ESZ|(1<<ucp_gbV)|(1<<ucp_gbT), /* 7 V */
|
ESZ|(1u<<ucp_gbV)|(1u<<ucp_gbT), /* 7 V */
|
||||||
ESZ|(1<<ucp_gbT), /* 8 T */
|
ESZ|(1u<<ucp_gbT), /* 8 T */
|
||||||
ESZ|(1<<ucp_gbV)|(1<<ucp_gbT), /* 9 LV */
|
ESZ|(1u<<ucp_gbV)|(1u<<ucp_gbT), /* 9 LV */
|
||||||
ESZ|(1<<ucp_gbT), /* 10 LVT */
|
ESZ|(1u<<ucp_gbT), /* 10 LVT */
|
||||||
(1<<ucp_gbRegionalIndicator), /* 11 RegionalIndicator */
|
(1u<<ucp_gbRegionalIndicator), /* 11 RegionalIndicator */
|
||||||
ESZ, /* 12 Other */
|
ESZ, /* 12 Other */
|
||||||
ESZ, /* 13 ZWJ */
|
ESZ, /* 13 ZWJ */
|
||||||
ESZ|(1<<ucp_gbExtended_Pictographic) /* 14 Extended Pictographic */
|
ESZ|(1u<<ucp_gbExtended_Pictographic) /* 14 Extended Pictographic */
|
||||||
};
|
};
|
||||||
|
|
||||||
#undef ESZ
|
#undef ESZ
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -85,10 +85,10 @@ if (c < 256)
|
||||||
if ((*data & XCL_HASPROP) == 0)
|
if ((*data & XCL_HASPROP) == 0)
|
||||||
{
|
{
|
||||||
if ((*data & XCL_MAP) == 0) return negated;
|
if ((*data & XCL_MAP) == 0) return negated;
|
||||||
return (((uint8_t *)(data + 1))[c/8] & (1 << (c&7))) != 0;
|
return (((uint8_t *)(data + 1))[c/8] & (1u << (c&7))) != 0;
|
||||||
}
|
}
|
||||||
if ((*data & XCL_MAP) != 0 &&
|
if ((*data & XCL_MAP) != 0 &&
|
||||||
(((uint8_t *)(data + 1))[c/8] & (1 << (c&7))) != 0)
|
(((uint8_t *)(data + 1))[c/8] & (1u << (c&7))) != 0)
|
||||||
return !negated; /* char found */
|
return !negated; /* char found */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ hacked-up (non-) design had also run out of steam.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original code Copyright (c) 1997-2012 University of Cambridge
|
Original code Copyright (c) 1997-2012 University of Cambridge
|
||||||
Rewritten code Copyright (c) 2016-2018 University of Cambridge
|
Rewritten code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -4659,7 +4659,7 @@ if ((pat_patctl.control & CTL_INFO) != 0)
|
||||||
fprintf(outfile, "Starting code units: ");
|
fprintf(outfile, "Starting code units: ");
|
||||||
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
||||||
{
|
{
|
||||||
if ((start_bits[i/8] & (1<<(i&7))) != 0)
|
if ((start_bits[i/8] & (1u << (i&7))) != 0)
|
||||||
{
|
{
|
||||||
if (c > 75)
|
if (c > 75)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue