#ifndef TERM_H_
#define TERM_H_

#include <stdio.h>

void term_reg_socket(int socket);
/* register socket */

void term_unr_socket(int socket);
/* unregister socket */

int term_raw_key(int *key, int msecTmo);

int term_wait_socket(int socket, int msecTmo);
/* wait for a read event on socket or timeout
   special case socket=0: wait for a read event on any socket
   return socket number
   or 0 for timeout
*/

int term_get_key(int *key, int msecTmo);

void term_clear(void);

int term_get_line(char *buf, int size, int *pos, char *prompt, fd_set *mask);

FILE *term_open_pref(int temp, char *head, char *mode);
/* open a user specific preferences or temporary file */

char *term_fgets(char *buf, int size, FILE *fil);
/* fgets without newline */

void term_read_hist(char *id, char *instr);
/* read history from temporary file with id */

void term_save_hist(int trimlast);
/* store history (without last line if trimlast) */

void term_off(void);

void term_define_key(char *cmd, int keyArg);

void term_save_keys(FILE *fil, void (*out)(char *));
/* save keys on file */

void term_load_keys(FILE *fil, void (*out)(char *));
/* load keys on file */

#endif /* TERM_H_ */
