Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3e48c66

Browse files
committed
Fix code to work when isalpha and friends are macros, not functions.
1 parent72a3902 commit3e48c66

File tree

1 file changed

+63
-8
lines changed

1 file changed

+63
-8
lines changed

‎src/backend/regex/regcomp.c

Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,13 @@ static void findmust(struct parse * p, struct re_guts * g);
124124
staticsopnopluscount(structparse*p,structre_guts*g);
125125
staticintpg_isdigit(intc);
126126
staticintpg_isalpha(intc);
127+
staticintpg_isalnum(intc);
127128
staticintpg_isupper(intc);
128129
staticintpg_islower(intc);
130+
staticintpg_iscntrl(intc);
131+
staticintpg_isgraph(intc);
132+
staticintpg_isprint(intc);
133+
staticintpg_ispunct(intc);
129134

130135
staticpg_wcharnuls[10];/* place to point scanner in event of
131136
* error */
@@ -1709,6 +1714,16 @@ pg_isalpha(int c)
17091714
#endif
17101715
}
17111716

1717+
staticint
1718+
pg_isalnum(intc)
1719+
{
1720+
#ifdefMULTIBYTE
1721+
return (c >=0&&c <=UCHAR_MAX&&isalnum((unsignedchar)c));
1722+
#else
1723+
return (isalnum((unsignedchar)c));
1724+
#endif
1725+
}
1726+
17121727
staticint
17131728
pg_isupper(intc)
17141729
{
@@ -1729,6 +1744,46 @@ pg_islower(int c)
17291744
#endif
17301745
}
17311746

1747+
staticint
1748+
pg_iscntrl(intc)
1749+
{
1750+
#ifdefMULTIBYTE
1751+
return (c >=0&&c <=UCHAR_MAX&&iscntrl((unsignedchar)c));
1752+
#else
1753+
return (iscntrl((unsignedchar)c));
1754+
#endif
1755+
}
1756+
1757+
staticint
1758+
pg_isgraph(intc)
1759+
{
1760+
#ifdefMULTIBYTE
1761+
return (c >=0&&c <=UCHAR_MAX&&isgraph((unsignedchar)c));
1762+
#else
1763+
return (isgraph((unsignedchar)c));
1764+
#endif
1765+
}
1766+
1767+
staticint
1768+
pg_isprint(intc)
1769+
{
1770+
#ifdefMULTIBYTE
1771+
return (c >=0&&c <=UCHAR_MAX&&isprint((unsignedchar)c));
1772+
#else
1773+
return (isprint((unsignedchar)c));
1774+
#endif
1775+
}
1776+
1777+
staticint
1778+
pg_ispunct(intc)
1779+
{
1780+
#ifdefMULTIBYTE
1781+
return (c >=0&&c <=UCHAR_MAX&&ispunct((unsignedchar)c));
1782+
#else
1783+
return (ispunct((unsignedchar)c));
1784+
#endif
1785+
}
1786+
17321787
staticstructcclass*
17331788
cclass_init(void)
17341789
{
@@ -1756,17 +1811,17 @@ cclass_init(void)
17561811
char*chars;
17571812
}cclass_factories []=
17581813
{
1759-
{"alnum",isalnum,NULL },
1760-
{"alpha",isalpha,NULL },
1814+
{"alnum",pg_isalnum,NULL },
1815+
{"alpha",pg_isalpha,NULL },
17611816
{"blank",NULL," \t" },
1762-
{"cntrl",iscntrl,NULL },
1817+
{"cntrl",pg_iscntrl,NULL },
17631818
{"digit",NULL,"0123456789" },
1764-
{"graph",isgraph,NULL },
1765-
{"lower",islower,NULL },
1766-
{"print",isprint,NULL },
1767-
{"punct",ispunct,NULL },
1819+
{"graph",pg_isgraph,NULL },
1820+
{"lower",pg_islower,NULL },
1821+
{"print",pg_isprint,NULL },
1822+
{"punct",pg_ispunct,NULL },
17681823
{"space",NULL,"\t\n\v\f\r " },
1769-
{"upper",isupper,NULL },
1824+
{"upper",pg_isupper,NULL },
17701825
{"xdigit",NULL,"0123456789ABCDEFabcdef" },
17711826
{NULL,NULL,NULL }
17721827
};

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp