Skip to content

Commit 24d5d9c

Browse files
committed
rline: drain, don't flush, when switching modes
1 parent db7495c commit 24d5d9c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

lib/rline.c

+7-2
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,11 @@ static int paint_krk_numeral(struct syntax_state * state) {
672672
paint(1, FLAG_NUMERAL);
673673
while (isdigit(charat())) paint(1, FLAG_NUMERAL);
674674
}
675+
if (charat() == 'e' || charat() == 'E') {
676+
paint(1, FLAG_NUMERAL);
677+
if (charat() == '-' || charat() == '+') paint(1, FLAG_NUMERAL);
678+
while (isdigit(charat())) paint(1, FLAG_NUMERAL);
679+
}
675680
}
676681
return 0;
677682
}
@@ -2017,12 +2022,12 @@ static void set_unbuffered(void) {
20172022
_EOF = old.c_cc[VEOF];
20182023
struct termios new = old;
20192024
new.c_lflag &= (~ICANON & ~ECHO & ~ISIG);
2020-
tcsetattr(STDOUT_FILENO, TCSAFLUSH, &new);
2025+
tcsetattr(STDOUT_FILENO, TCSADRAIN, &new);
20212026
if (wcwidth(0x3042) != 2) setlocale(LC_CTYPE, "");
20222027
}
20232028

20242029
static void set_buffered(void) {
2025-
tcsetattr(STDOUT_FILENO, TCSAFLUSH, &old);
2030+
tcsetattr(STDOUT_FILENO, TCSADRAIN, &old);
20262031
}
20272032
#else
20282033
static unsigned int _INTR = 3;

0 commit comments

Comments
 (0)