Mercurial > hg > octave-lojdl > gnulib-hg
comparison regex.c @ 963:ed0235161e4b
(TRANSLATE, re_search_2, re_match_2_internal,bcmp_translate):
Use RE_TRANSLATE instead of accessing translate array directly.
author | Richard Stallman <rms@gnu.org> |
---|---|
date | Fri, 04 Jul 1997 20:46:22 +0000 |
parents | 6959c7741ed2 |
children | 03e78eed4997 |
comparison
equal
deleted
inserted
replaced
962:1bd42c6bc7a3 | 963:ed0235161e4b |
---|---|
1538 cast the subscript to translate because some data is declared as | 1538 cast the subscript to translate because some data is declared as |
1539 `char *', to avoid warnings when a string constant is passed. But | 1539 `char *', to avoid warnings when a string constant is passed. But |
1540 when we use a character as a subscript we must make it unsigned. */ | 1540 when we use a character as a subscript we must make it unsigned. */ |
1541 #ifndef TRANSLATE | 1541 #ifndef TRANSLATE |
1542 #define TRANSLATE(d) \ | 1542 #define TRANSLATE(d) \ |
1543 (translate ? (unsigned char) translate[(unsigned char) (d)] : (d)) | 1543 (translate ? (unsigned char) RE_TRANSLATE (translate, (unsigned char) (d)) : (d)) |
1544 #endif | 1544 #endif |
1545 | 1545 |
1546 | 1546 |
1547 /* Macros for outputting the compiled pattern into `buffer'. */ | 1547 /* Macros for outputting the compiled pattern into `buffer'. */ |
1548 | 1548 |
3808 /* Written out as an if-else to avoid testing `translate' | 3808 /* Written out as an if-else to avoid testing `translate' |
3809 inside the loop. */ | 3809 inside the loop. */ |
3810 if (translate) | 3810 if (translate) |
3811 while (range > lim | 3811 while (range > lim |
3812 && !fastmap[(unsigned char) | 3812 && !fastmap[(unsigned char) |
3813 translate[(unsigned char) *d++]]) | 3813 RE_TRANSLATE (translate, (unsigned char) *d++)]) |
3814 range--; | 3814 range--; |
3815 else | 3815 else |
3816 while (range > lim && !fastmap[(unsigned char) *d++]) | 3816 while (range > lim && !fastmap[(unsigned char) *d++]) |
3817 range--; | 3817 range--; |
3818 | 3818 |
4498 if (translate) | 4498 if (translate) |
4499 { | 4499 { |
4500 do | 4500 do |
4501 { | 4501 { |
4502 PREFETCH (); | 4502 PREFETCH (); |
4503 if ((unsigned char) translate[(unsigned char) *d++] | 4503 if ((unsigned char) RE_TRANSLATE (translate, (unsigned char) *d++) |
4504 != (unsigned char) *p++) | 4504 != (unsigned char) *p++) |
4505 goto fail; | 4505 goto fail; |
4506 } | 4506 } |
4507 while (--mcnt); | 4507 while (--mcnt); |
4508 } | 4508 } |
5893 RE_TRANSLATE_TYPE translate; | 5893 RE_TRANSLATE_TYPE translate; |
5894 { | 5894 { |
5895 register unsigned char *p1 = s1, *p2 = s2; | 5895 register unsigned char *p1 = s1, *p2 = s2; |
5896 while (len) | 5896 while (len) |
5897 { | 5897 { |
5898 if (translate[*p1++] != translate[*p2++]) return 1; | 5898 if (RE_TRANSLATE (translate, *p1++) != RE_TRANSLATE (translate, *p2++)) |
5899 return 1; | |
5899 len--; | 5900 len--; |
5900 } | 5901 } |
5901 return 0; | 5902 return 0; |
5902 } | 5903 } |
5903 | 5904 |