1418 |
string_multibyte = SBYTES (string) > SCHARS (string); |
string_multibyte = SBYTES (string) > SCHARS (string); |
1419 |
|
|
1420 |
bzero (fastmap, sizeof fastmap); |
bzero (fastmap, sizeof fastmap); |
|
if (multibyte) |
|
|
char_ranges = (int *) alloca (SCHARS (string) * (sizeof (int)) * 2); |
|
1421 |
|
|
1422 |
str = SDATA (string); |
str = SDATA (string); |
1423 |
size_byte = SBYTES (string); |
size_byte = SBYTES (string); |
1500 |
fastmap[CHAR_LEADING_CODE (c)] = 1; |
fastmap[CHAR_LEADING_CODE (c)] = 1; |
1501 |
range_start_byte = i; |
range_start_byte = i; |
1502 |
range_start_char = c; |
range_start_char = c; |
1503 |
|
char_ranges = (int *) alloca (sizeof (int) * 128 * 2); |
1504 |
for (i = 129; i < 0400; i++) |
for (i = 129; i < 0400; i++) |
1505 |
{ |
{ |
1506 |
c = unibyte_char_to_multibyte (i); |
c = unibyte_char_to_multibyte (i); |
1519 |
+ range_start_char); |
+ range_start_char); |
1520 |
} |
} |
1521 |
} |
} |
1522 |
else |
else /* STRING is multibyte */ |
1523 |
{ |
{ |
1524 |
|
char_ranges = (int *) alloca (sizeof (int) * SCHARS (string) * 2); |
1525 |
|
|
1526 |
while (i_byte < size_byte) |
while (i_byte < size_byte) |
1527 |
{ |
{ |
1528 |
unsigned char leading_code; |
unsigned char leading_code; |
1565 |
i_byte += len; |
i_byte += len; |
1566 |
} |
} |
1567 |
|
|
1568 |
|
if (c > c2) |
1569 |
|
continue; |
1570 |
if (ASCII_CHAR_P (c)) |
if (ASCII_CHAR_P (c)) |
1571 |
{ |
{ |
1572 |
while (c <= c2 && c < 0x80) |
while (c <= c2 && c < 0x80) |