@@ -45,7 +45,7 @@ FILE *d;
4545 if (g -> nplus > 0 )
4646 fprintf (d , ", nplus %ld" , (long )g -> nplus );
4747 fprintf (d , "\n" );
48- s_print (g , d );
48+ s_print (r -> charset , g , d );
4949 for (i = 0 ; i < g -> ncategories ; i ++ ) {
5050 nincat [i ] = 0 ;
5151 for (c = CHAR_MIN ; c <= CHAR_MAX ; c ++ )
@@ -58,7 +58,7 @@ FILE *d;
5858 for (c = CHAR_MIN ; c <= CHAR_MAX ; c ++ )
5959 if (g -> categories [c ] == i )
6060 break ;
61- fprintf (d , ", %d=%s" , i , regchar (c ,buf ));
61+ fprintf (d , ", %d=%s" , i , regchar (r -> charset , c ,buf ));
6262 }
6363 fprintf (d , "\n" );
6464 for (i = 1 ; i < g -> ncategories ; i ++ )
@@ -68,14 +68,14 @@ FILE *d;
6868 for (c = CHAR_MIN ; c <= CHAR_MAX + 1 ; c ++ ) /* +1 does flush */
6969 if (c <= CHAR_MAX && g -> categories [c ] == i ) {
7070 if (last < 0 ) {
71- fprintf (d , "%s" , regchar (c ,buf ));
71+ fprintf (d , "%s" , regchar (r -> charset , c ,buf ));
7272 last = c ;
7373 }
7474 } else {
7575 if (last >= 0 ) {
7676 if (last != c - 1 )
7777 fprintf (d , "-%s" ,
78- regchar (c - 1 ,buf ));
78+ regchar (r -> charset , c - 1 ,buf ));
7979 last = -1 ;
8080 }
8181 }
@@ -88,7 +88,8 @@ FILE *d;
8888 == static void s_print(register struct re_guts *g, FILE *d);
8989 */
9090static void
91- s_print (g , d )
91+ s_print (charset , g , d )
92+ CHARSET_INFO * charset ;
9293register struct re_guts * g ;
9394FILE * d ;
9495{
@@ -127,7 +128,7 @@ FILE *d;
127128 if (strchr ("\\|()^$.[+*?{}!<> " , (char )opnd ) != NULL )
128129 fprintf (d , "\\%c" , (char )opnd );
129130 else
130- fprintf (d , "%s" , regchar ((char )opnd ,buf ));
131+ fprintf (d , "%s" , regchar (charset , (char )opnd ,buf ));
131132 break ;
132133 case OBOL :
133134 fprintf (d , "^" );
@@ -151,14 +152,14 @@ FILE *d;
151152 for (i = 0 ; i < g -> csetsize + 1 ; i ++ ) /* +1 flushes */
152153 if (CHIN (cs , i ) && i < g -> csetsize ) {
153154 if (last < 0 ) {
154- fprintf (d , "%s" , regchar (i ,buf ));
155+ fprintf (d , "%s" , regchar (charset , i ,buf ));
155156 last = i ;
156157 }
157158 } else {
158159 if (last >= 0 ) {
159160 if (last != i - 1 )
160161 fprintf (d , "-%s" ,
161- regchar (i - 1 ,buf ));
162+ regchar (charset , i - 1 ,buf ));
162163 last = -1 ;
163164 }
164165 }
@@ -230,12 +231,13 @@ FILE *d;
230231 == static char *regchar(int ch);
231232 */
232233static char * /* -> representation */
233- regchar (ch ,buf )
234+ regchar (charset ,ch ,buf )
235+ CHARSET_INFO * charset ;
234236int ch ;
235237char * buf ;
236238{
237239
238- if (isprint ( ch ) || ch == ' ' )
240+ if (my_isprint ( charset , ch ) || ch == ' ' )
239241 sprintf (buf , "%c" , ch );
240242 else
241243 sprintf (buf , "\\%o" , ch );
0 commit comments