Disable terminal flow control
This opens up C-o, C-q and C-s for key bindings without C-v.master
parent
200842aa64
commit
facc3aa9a0
1
chat.h
1
chat.h
|
@ -145,6 +145,7 @@ enum TermEvent {
|
|||
TermPasteEnd,
|
||||
};
|
||||
void termInit(void);
|
||||
void termNoFlow(void);
|
||||
void termTitle(const char *title);
|
||||
void termMode(enum TermMode mode, bool set);
|
||||
enum TermEvent termEvent(char ch);
|
||||
|
|
11
term.c
11
term.c
|
@ -18,6 +18,8 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "chat.h"
|
||||
|
||||
|
@ -28,6 +30,15 @@ void termInit(void) {
|
|||
xterm = term && !strncmp(term, "xterm", 5);
|
||||
}
|
||||
|
||||
void termNoFlow(void) {
|
||||
struct termios attr;
|
||||
int error = tcgetattr(STDIN_FILENO, &attr);
|
||||
if (error) return;
|
||||
attr.c_iflag &= ~IXON;
|
||||
attr.c_cc[VDISCARD] = _POSIX_VDISABLE;
|
||||
tcsetattr(STDIN_FILENO, TCSANOW, &attr);
|
||||
}
|
||||
|
||||
void termTitle(const char *title) {
|
||||
if (!xterm) return;
|
||||
printf("\33]0;%s\33\\", title);
|
||||
|
|
Loading…
Reference in New Issue