… | |
… | |
3674 | seen_esc = true; |
3674 | seen_esc = true; |
3675 | continue; |
3675 | continue; |
3676 | } |
3676 | } |
3677 | else if (ch == C0_BEL || ch == CHAR_ST) |
3677 | else if (ch == C0_BEL || ch == CHAR_ST) |
3678 | break; |
3678 | break; |
|
|
3679 | else if (ch == C0_SYN) |
|
|
3680 | ch = cmd_get8 (); |
3679 | else if (ch < 0x20) |
3681 | else if (ch < 0x20) |
3680 | return NULL; /* other control character - exit */ |
3682 | return NULL; /* other control character - exit */ |
3681 | |
3683 | |
3682 | seen_esc = false; |
3684 | seen_esc = false; |
3683 | |
3685 | |
3684 | if (n >= STRING_MAX - 1) |
3686 | if (n >= STRING_MAX - 1) |
3685 | // stop at some sane length |
3687 | // stop at some sane length |
3686 | return NULL; |
3688 | return NULL; |
3687 | |
3689 | |
3688 | if (ch == C0_SYN) |
|
|
3689 | string[n++] = cmd_get8 (); |
|
|
3690 | else |
|
|
3691 | string[n++] = ch; |
3690 | string[n++] = ch; |
3692 | } |
3691 | } |
3693 | |
3692 | |
3694 | string[n++] = '\0'; |
3693 | string[n++] = '\0'; |
3695 | |
3694 | |
3696 | ends_how = (ch == 0x5c ? C0_ESC : ch); |
3695 | ends_how = (ch == 0x5c ? C0_ESC : ch); |