diff --git a/src/socket.c b/src/socket.c index 89a10e3..1d7d15d 100644 --- a/src/socket.c +++ b/src/socket.c @@ -41,9 +41,9 @@ static int sockfd; static int clientfds[MAX_SOCKET_CLIENTS]; static int socket_family = AF_UNSPEC; static int port_number = SOCKET_PORT_DEFAULT; -static bool map_i_nl_cr = false; -static bool map_i_cr_nl = false; -static bool map_ign_cr = false; +bool map_i_nl_cr = false; +bool map_i_cr_nl = false; +bool map_ign_cr = false; static const char *socket_filename(void) { @@ -126,9 +126,6 @@ void socket_configure(void) struct sockaddr_in6 sockaddr_inet6 = {}; struct sockaddr *sockaddr_p; socklen_t socklen; - bool token_found = true; - char *token = NULL; - char *buffer; /* Parse socket string */ @@ -181,41 +178,6 @@ void socket_configure(void) exit(EXIT_FAILURE); } - /* Configure any specified input mappings */ - buffer = strdup(option.map); - while (token_found == true) - { - if (token == NULL) - { - token = strtok(buffer,","); - } - else - { - token = strtok(NULL, ","); - } - - if (token != NULL) - { - if (strcmp(token,"INLCR") == 0) - { - map_i_nl_cr = true; - } - else if (strcmp(token,"IGNCR") == 0) - { - map_ign_cr = true; - } - else if (strcmp(token,"ICRNL") == 0) - { - map_i_cr_nl = true; - } - } - else - { - token_found = false; - } - } - free(buffer); - /* Configure socket */ switch (socket_family) diff --git a/src/socket.h b/src/socket.h index 2caffaf..53c343e 100644 --- a/src/socket.h +++ b/src/socket.h @@ -25,6 +25,10 @@ #include #include +extern bool map_i_nl_cr; +extern bool map_i_cr_nl; +extern bool map_ign_cr; + void socket_configure(void); void socket_write(char input_char); int socket_add_fds(fd_set *fds, bool connected); diff --git a/src/tty.c b/src/tty.c index 92bcb7e..9c4c8c1 100644 --- a/src/tty.c +++ b/src/tty.c @@ -987,14 +987,17 @@ void tty_configure(void) if (strcmp(token,"INLCR") == 0) { tio.c_iflag |= INLCR; + map_i_nl_cr = true; } else if (strcmp(token,"IGNCR") == 0) { tio.c_iflag |= IGNCR; + map_ign_cr = true; } else if (strcmp(token,"ICRNL") == 0) { tio.c_iflag |= ICRNL; + map_i_cr_nl = true; } else if (strcmp(token,"OCRNL") == 0) {