Skip to content

Commit e8aee7d

Browse files
committed
patch 7.4.1793
Problem: Some character classes may differ between systems. On OS/X the regexp test fails. Solution: Make this less dependent on the system. (idea by Kazunobu Kuriyama)
1 parent ab30221 commit e8aee7d

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/regexp.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2542,12 +2542,12 @@ regatom(int *flagp)
25422542
}
25432543
break;
25442544
case CLASS_ALNUM:
2545-
for (cu = 1; cu <= 255; cu++)
2545+
for (cu = 1; cu < 128; cu++)
25462546
if (isalnum(cu))
25472547
regmbc(cu);
25482548
break;
25492549
case CLASS_ALPHA:
2550-
for (cu = 1; cu <= 255; cu++)
2550+
for (cu = 1; cu < 128; cu++)
25512551
if (isalpha(cu))
25522552
regmbc(cu);
25532553
break;
@@ -2572,7 +2572,8 @@ regatom(int *flagp)
25722572
break;
25732573
case CLASS_LOWER:
25742574
for (cu = 1; cu <= 255; cu++)
2575-
if (MB_ISLOWER(cu))
2575+
if (MB_ISLOWER(cu) && cu != 170
2576+
&& cu != 186)
25762577
regmbc(cu);
25772578
break;
25782579
case CLASS_PRINT:
@@ -2581,7 +2582,7 @@ regatom(int *flagp)
25812582
regmbc(cu);
25822583
break;
25832584
case CLASS_PUNCT:
2584-
for (cu = 1; cu <= 255; cu++)
2585+
for (cu = 1; cu < 128; cu++)
25852586
if (ispunct(cu))
25862587
regmbc(cu);
25872588
break;

src/regexp_nfa.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4837,11 +4837,11 @@ check_char_class(int class, int c)
48374837
switch (class)
48384838
{
48394839
case NFA_CLASS_ALNUM:
4840-
if (c >= 1 && c <= 255 && isalnum(c))
4840+
if (c >= 1 && c < 128 && isalnum(c))
48414841
return OK;
48424842
break;
48434843
case NFA_CLASS_ALPHA:
4844-
if (c >= 1 && c <= 255 && isalpha(c))
4844+
if (c >= 1 && c < 128 && isalpha(c))
48454845
return OK;
48464846
break;
48474847
case NFA_CLASS_BLANK:
@@ -4861,15 +4861,15 @@ check_char_class(int class, int c)
48614861
return OK;
48624862
break;
48634863
case NFA_CLASS_LOWER:
4864-
if (MB_ISLOWER(c))
4864+
if (MB_ISLOWER(c) && c != 170 && c != 186)
48654865
return OK;
48664866
break;
48674867
case NFA_CLASS_PRINT:
48684868
if (vim_isprintc(c))
48694869
return OK;
48704870
break;
48714871
case NFA_CLASS_PUNCT:
4872-
if (c >= 1 && c <= 255 && ispunct(c))
4872+
if (c >= 1 && c < 128 && ispunct(c))
48734873
return OK;
48744874
break;
48754875
case NFA_CLASS_SPACE:

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,8 @@ static char *(features[]) =
753753

754754
static int included_patches[] =
755755
{ /* Add new patch number below this line */
756+
/**/
757+
1793,
756758
/**/
757759
1792,
758760
/**/

0 commit comments

Comments
 (0)