fix degade
This commit is contained in:
parent
336fc21761
commit
303041abc5
|
@ -79,6 +79,15 @@ strcaseeq(const char *s1, const char *s2)
|
||||||
return a == b;
|
return a == b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
case_fold(pic_state *pic, int c)
|
||||||
|
{
|
||||||
|
if (pic->reader->typecase == PIC_CASE_FOLD) {
|
||||||
|
c = tolower(c);
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
read_comment(pic_state *pic, struct pic_port *port, int c)
|
read_comment(pic_state *pic, struct pic_port *port, int c)
|
||||||
{
|
{
|
||||||
|
@ -198,17 +207,14 @@ read_symbol(pic_state *pic, struct pic_port *port, int c)
|
||||||
|
|
||||||
len = 1;
|
len = 1;
|
||||||
buf = pic_alloc(pic, len + 1);
|
buf = pic_alloc(pic, len + 1);
|
||||||
buf[0] = c;
|
buf[0] = case_fold(pic, c);
|
||||||
buf[1] = 0;
|
buf[1] = 0;
|
||||||
|
|
||||||
while (! isdelim(peek(port))) {
|
while (! isdelim(peek(port))) {
|
||||||
c = next(port);
|
c = next(port);
|
||||||
if (pic->reader->typecase == PIC_CASE_FOLD) {
|
|
||||||
c = tolower(c);
|
|
||||||
}
|
|
||||||
len += 1;
|
len += 1;
|
||||||
buf = pic_realloc(pic, buf, len + 1);
|
buf = pic_realloc(pic, buf, len + 1);
|
||||||
buf[len - 1] = c;
|
buf[len - 1] = case_fold(pic, c);
|
||||||
buf[len] = 0;
|
buf[len] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue