7 char haveinttab = FALSE;
9 * ECS Support - This module provides support for international >7FH and
10 * TWO-BYTE character sets. The toupper routine uses the DOS MAP_CASE call.
11 * In addition, STRING.C contains a default_tab containing a default lead
12 * byte table for two byte character sets. If single byte operation is
13 * desired, modify this table as follows: ="\000". If this utility
14 * is run on a DOS with Function 63H support, the default table will
15 * be replaced by the table in the DOS. The lbtbl_ptr is the far ptr to
16 * which ever table is in use.
19 char *default_tab="\201\237\340\374\000\000";
20 char have_lbtbl = FALSE;
22 struct InterTbl Currtab;
31 regs.x.dx = (unsigned) &Currtab ;
32 intdos (®s, ®s) ; /* INIT the table */
37 return(IToupper(c,Currtab.casecall));
49 * A note about the following " & 0xFF" stuff. This is
50 * to prevent the damn C compiler from converting bytes
51 * to words with the CBW instruction which is NOT correct
52 * for routines like toupper
55 if(testkanj(*p1 & 0xFF))
58 *p1++ = toupper(*p1 & 0xFF);
60 *p1++ = toupper(*p1 & 0xFF);
66 char *strpbrk(string1,string2)
72 while (*string1 != NULL) {
74 * A note about the following " & 0xFF" stuff. This is
75 * to prevent the damn C compiler from converting bytes
76 * to words with the CBW instruction which is NOT correct
77 * for routines like toupper
80 if(testkanj(*string1 & 0xFF))
95 return(NULL); /* no matches found */
106 p1 = (long *)&lbtbl_ptr ;
108 (char far *)lbtbl_ptr = (char far *)default_tab ; /* Load offset in pointer */
113 if ( test_ecs( c, lbtbl_ptr ))