Blame src/minicom.h

Packit 15a96c
/*
Packit 15a96c
 * minicom.h	Constants, defaults, globals etc.
Packit 15a96c
 *
Packit 15a96c
 *		$Id: minicom.h,v 1.26 2009-06-06 21:19:36 al-guest Exp $
Packit 15a96c
 *
Packit 15a96c
 *		This file is part of the minicom communications package,
Packit 15a96c
 *		Copyright 1991-1995 Miquel van Smoorenburg.
Packit 15a96c
 *
Packit 15a96c
 *		This program is free software; you can redistribute it and/or
Packit 15a96c
 *		modify it under the terms of the GNU General Public License
Packit 15a96c
 *		as published by the Free Software Foundation; either version
Packit 15a96c
 *		2 of the License, or (at your option) any later version.
Packit 15a96c
 *
Packit 15a96c
 *  You should have received a copy of the GNU General Public License along
Packit 15a96c
 *  with this program; if not, write to the Free Software Foundation, Inc.,
Packit 15a96c
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Packit 15a96c
 *
Packit 15a96c
 * fmg 1/11/94 colors
Packit 15a96c
 * fmg 8/22/97 History Buffer Search support
Packit 15a96c
 * jl  23.06.97 sec parameter to m_dtrtoggle
Packit 15a96c
 * jl  04.09.97 conversion tables
Packit 15a96c
 * jl  09.09.97 loadconv and saveconv protos
Packit 15a96c
 * jl  05.10.97 changed return value of dial() to long
Packit 15a96c
 * jseymour@jimsun.LinxNet.com (Jim Seymour) 03/26/98 - Added prototype
Packit 15a96c
 *    for new "get_port()" function in util.c.
Packit 15a96c
 */
Packit 15a96c
Packit 15a96c
/* First include all other application-dependant include files. */
Packit 15a96c
#include "config.h"
Packit 15a96c
#include "configsym.h"
Packit 15a96c
#include "window.h"
Packit 15a96c
#include "keyboard.h"
Packit 15a96c
#include "vt100.h"
Packit 15a96c
#include "libport.h"
Packit 15a96c
Packit 15a96c
#include <time.h>
Packit 15a96c
#include <stdbool.h>
Packit 15a96c
Packit 15a96c
#if HAVE_LOCKDEV
Packit 15a96c
#include <ttylock.h>
Packit 15a96c
#endif
Packit 15a96c
Packit 15a96c
#ifdef USE_SOCKET
Packit 15a96c
#include <sys/socket.h>
Packit 15a96c
#include <sys/un.h>
Packit 15a96c
#endif
Packit 15a96c
Packit 15a96c
/*
Packit 15a96c
 * kubota@debian.or.jp 08/08/98
Packit 15a96c
 * COLS must be equal to or less than MAXCOLS.
Packit 15a96c
 */
Packit 15a96c
#define MAXCOLS 256
Packit 15a96c
Packit 15a96c
#define XA_OK_EXIST	1
Packit 15a96c
#define XA_OK_NOTEXIST	2
Packit 15a96c
Packit 15a96c
#ifndef EXTERN
Packit 15a96c
# define EXTERN extern
Packit 15a96c
#endif
Packit 15a96c
Packit 15a96c
#ifdef _UWIN2P0
Packit 15a96c
EXTERN int LINES;
Packit 15a96c
EXTERN int COLS;
Packit 15a96c
#endif
Packit 15a96c
Packit 15a96c
EXTERN int dosetup;
Packit 15a96c
Packit 15a96c
EXTERN char stdattr;	/* Standard attribute */
Packit 15a96c
Packit 15a96c
EXTERN WIN *us;		/* User screen */
Packit 15a96c
EXTERN WIN *st;		/* Status Line */
Packit 15a96c
Packit 15a96c
EXTERN short terminal;	/* terminal type */
Packit 15a96c
EXTERN time_t online;	/* Time online in minutes */
Packit 15a96c
EXTERN long linespd;	/* Line speed */
Packit 15a96c
EXTERN short portfd;	/* File descriptor of the serial port. */
Packit 15a96c
EXTERN short lines;	/* Nr. of lines on the screen */
Packit 15a96c
EXTERN short cols;	/* Nr. of cols of the screen */
Packit 15a96c
EXTERN int keypadmode;	/* Mode of keypad */
Packit 15a96c
EXTERN int cursormode;	/* Mode of cursor (arrow) keys */
Packit 15a96c
Packit 15a96c
EXTERN int docap;	/* Capture data to capture file */
Packit 15a96c
EXTERN FILE *capfp;	/* File to capture to */
Packit 15a96c
EXTERN int addlf;	/* Add LF after CR */
Packit 15a96c
EXTERN int addcr;	/* Insert CR before LF */
Packit 15a96c
EXTERN int wrapln;	/* Linewrap default */
Packit 15a96c
EXTERN int display_hex; /* Display in hex */
Packit 15a96c
EXTERN int tempst;	/* Status line is temporary */
Packit 15a96c
EXTERN int escape;	/* Escape code. */
Packit 15a96c
EXTERN int option_T_used; /* option -T has been supplied, obsolete, print warning */
Packit 15a96c
Packit 15a96c
EXTERN char lockfile[128]; /* UUCP lock file of terminal */
Packit 15a96c
EXTERN char homedir[256];  /* Home directory of user */
Packit 15a96c
EXTERN char logfname[PARS_VAL_LEN]; /* Name of the logfile */
Packit 15a96c
EXTERN char username[16];  /* Who is using minicom? */
Packit 15a96c
Packit 15a96c
EXTERN int bogus_dcd;	/* This indicates the dcd status if no 'real' dcd */
Packit 15a96c
EXTERN int alt_override;/* -m option */
Packit 15a96c
Packit 15a96c
EXTERN char parfile[256]; /* Global parameter file */
Packit 15a96c
EXTERN char pparfile[256]; /* Personal parameter file */
Packit 15a96c
Packit 15a96c
EXTERN char scr_name[256];  /* Name of last script */
Packit 15a96c
EXTERN char scr_user[33];   /* Login name to use with script */
Packit 15a96c
EXTERN char scr_passwd[33]; /* Password to use with script */
Packit 15a96c
Packit 15a96c
EXTERN char termtype[32];  /* Value of getenv("TERM"); */
Packit 15a96c
EXTERN char *dial_tty;     /* tty to use. */
Packit 15a96c
Packit 15a96c
EXTERN char *dial_name;	    /* System we're conneced to */
Packit 15a96c
EXTERN char *dial_number;   /* Number we've dialed. */
Packit 15a96c
EXTERN char *dial_user;     /* Our username there */
Packit 15a96c
EXTERN char *dial_pass;     /* Our password */
Packit 15a96c
Packit 15a96c
#ifdef USE_SOCKET
Packit 15a96c
EXTERN int portfd_is_socket;	/* File descriptor is a unix socket */
Packit 15a96c
EXTERN int portfd_is_connected;	/* 1 if the socket is connected */
Packit 15a96c
EXTERN struct sockaddr_un portfd_sock_addr;	/* the unix socket address */
Packit 15a96c
#define portfd_connected ((portfd_is_socket && !portfd_is_connected) \
Packit 15a96c
                           ? -1 : portfd)
Packit 15a96c
#else
Packit 15a96c
#define portfd_connected portfd
Packit 15a96c
#define portfd_is_socket 0
Packit 15a96c
#define portfd_is_connected 0
Packit 15a96c
#endif /* USE_SOCKET */
Packit 15a96c
Packit 15a96c
/*
Packit 15a96c
 * fmg 8/22/97
Packit 15a96c
 * Search pattern can be THIS long (x characters)
Packit 15a96c
 */
Packit 15a96c
#define MAX_SEARCH      30
Packit 15a96c
Packit 15a96c
/* fmg 1/11/94 colors */
Packit 15a96c
Packit 15a96c
EXTERN int mfcolor;     /* Menu Foreground Color */
Packit 15a96c
EXTERN int mbcolor;     /* Menu Background Color */
Packit 15a96c
EXTERN int tfcolor;     /* Terminal Foreground Color */
Packit 15a96c
EXTERN int tbcolor;     /* Terminal Background Color */
Packit 15a96c
EXTERN int sfcolor;     /* Status Bar Foreground Color */
Packit 15a96c
EXTERN int sbcolor;     /* Status Bar Background Color */
Packit 15a96c
EXTERN int st_attr;	/* Status Bar attributes. */
Packit 15a96c
Packit 15a96c
/* jl 04.09.97 conversion tables */
Packit 15a96c
EXTERN unsigned char vt_outmap[256], vt_inmap[256];
Packit 15a96c
Packit 15a96c
/* MARK updated 02/17/95 - history buffer */
Packit 15a96c
EXTERN int num_hist_lines;  /* History buffer size */
Packit 15a96c
Packit 15a96c
/* fmg 1/11/94 colors - convert color word to # */
Packit 15a96c
Packit 15a96c
int Jcolor(char *);
Packit 15a96c
Packit 15a96c
EXTERN int size_changed;     /* Window size has changed */
Packit 15a96c
extern const char *Version;  /* Minicom verson */
Packit 15a96c
Packit 15a96c
EXTERN int local_echo;      /* Local echo on/off. */
Packit 15a96c
Packit 15a96c
/* Forward declaration. */
Packit 15a96c
struct dialent;
Packit 15a96c
Packit 15a96c
/* Global functions */
Packit 15a96c
Packit 15a96c
/* Prototypes from file: config.c */
Packit 15a96c
void read_parms(void);
Packit 15a96c
int  waccess(char *s);
Packit 15a96c
int  config(int setup);
Packit 15a96c
void get_bbp(char *ba, char *bi, char *pa, char *stopb, int curr_ok);
Packit 15a96c
int update_bbp_from_char(char c, char *ba, char *bi, char *pa, char *stopb,
Packit 15a96c
                         int curr_ok);
Packit 15a96c
const char *yesno(int k);
Packit 15a96c
int  dotermmenu(void);
Packit 15a96c
int  dodflsave(void);	/* fmg - need it */
Packit 15a96c
void vdodflsave(void);	/* fmg - need it */
Packit 15a96c
int  domacsave(void);	/* fmg - need it */
Packit 15a96c
int  loadconv(char *);	/* jl */
Packit 15a96c
int  saveconv(char *);	/* jl */
Packit 15a96c
int  speed_valid(unsigned int);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: common.c */
Packit 15a96c
char *pfix_home( char *s);
Packit 15a96c
void do_log(const char *line, ...);
Packit 15a96c
size_t one_mbtowc (wchar_t *pwc, const char *s, size_t n);
Packit 15a96c
size_t one_wctomb (char *s, wchar_t wchar);
Packit 15a96c
size_t mbslen (const char *s);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: dial.c */
Packit 15a96c
#if VC_MUSIC
Packit 15a96c
void music(void);
Packit 15a96c
#endif
Packit 15a96c
void mputs(const char *s , int how);
Packit 15a96c
void modeminit(void);
Packit 15a96c
void modemreset(void);
Packit 15a96c
void hangup(void);
Packit 15a96c
void sendbreak(void);
Packit 15a96c
long dial(struct dialent *d , struct dialent **d2);
Packit 15a96c
int  readdialdir(void);
Packit 15a96c
void dialone(char *entry);
Packit 15a96c
void dialdir(void);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: file.c */
Packit 15a96c
char *filedir(int how_many, int downloading);
Packit 15a96c
void init_dir(char dir);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: util.c */
Packit 15a96c
int fastexec(char *cmd);
Packit 15a96c
int fastsystem(char *cmd, char *in, char *out, char *err);
Packit 15a96c
char *get_port(char *);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: help.c */
Packit 15a96c
int help(void);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: ipc.c */
Packit 15a96c
int check_io(int fd1, int fd2, int tmout, char *buf, int buf_size, int *bytes_red);
Packit 15a96c
int keyboard(int cmd, int arg);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: keyserv.c */
Packit 15a96c
void handler(int dummy);
Packit 15a96c
void sendstr(char *s);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: main.c */
Packit 15a96c
extern time_t old_online;
Packit 15a96c
void leave(const char *s) __attribute__((noreturn));
Packit 15a96c
char *esc_key(void);
Packit 15a96c
void term_socket_connect(void);
Packit 15a96c
void term_socket_close(void);
Packit 15a96c
int  open_term(int doinit, int show_win_on_error, int no_msgs);
Packit 15a96c
void init_emul(int type, int do_init);
Packit 15a96c
void timer_update(void);
Packit 15a96c
void show_status(void);
Packit 15a96c
void set_status_line_format(const char *s);
Packit 15a96c
void scriptname(const char *s);
Packit 15a96c
int  do_terminal(void);
Packit 15a96c
void status_set_display(const char *text, int duration_s);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: minicom.c */
Packit 15a96c
void port_init(void);
Packit 15a96c
void toggle_addlf(void);
Packit 15a96c
void toggle_local_echo(void);
Packit 15a96c
Packit 15a96c
void drawhist_look(WIN *w, int y, int r, wchar_t *look, int case_matters);
Packit 15a96c
void searchhist(WIN *w_hist, wchar_t *str);
Packit 15a96c
int  find_next(WIN *w, WIN *w_hist, int hit_line, wchar_t *look,
Packit 15a96c
               int case_matters);
Packit 15a96c
const wchar_t *upcase(wchar_t *dest, wchar_t *src);
Packit 15a96c
wchar_t *StrStr(wchar_t *str1, wchar_t *str2, int case_matters);
Packit 15a96c
Packit 15a96c
void do_iconv(char **inbuf, size_t *inbytesleft,
Packit 15a96c
              char **outbuf, size_t *outbytesleft);
Packit 15a96c
int  using_iconv(void);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: rwconf.c */
Packit 15a96c
int writepars(FILE *fp, int all);
Packit 15a96c
int writemacs(FILE *fp);
Packit 15a96c
int readpars(FILE *fp, enum config_type conftype);
Packit 15a96c
int readmacs(FILE *fp, int init); /* fmg */
Packit 15a96c
Packit 15a96c
/* Prototypes from file: sysdep1.c */
Packit 15a96c
void m_sethwf(int fd, int on);
Packit 15a96c
void m_dtrtoggle(int fd, int sec);
Packit 15a96c
void m_break(int fd);
Packit 15a96c
int  m_getdcd(int fd);
Packit 15a96c
void m_setdcd(int fd, int what);
Packit 15a96c
void m_savestate(int fd);
Packit 15a96c
void m_restorestate(int fd);
Packit 15a96c
void m_nohang(int fd);
Packit 15a96c
void m_hupcl(int fd, int on);
Packit 15a96c
void m_flush(int fd);
Packit 15a96c
void m_flush_script( int fd);
Packit 15a96c
unsigned m_getmaxspd(void);
Packit 15a96c
void m_setparms(int fd, char *baudr, char *par, char *bits,
Packit 15a96c
                char *stopb, int hwf, int swf);
Packit 15a96c
int  m_wait(int *st);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: sysdep2.c */
Packit 15a96c
void getrowcols(int *rows, int *cols);
Packit 15a96c
int  setcbreak(int mode);
Packit 15a96c
void enab_sig(int onoff, int intrchar);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: updown.c */
Packit 15a96c
void updown(int what, int nr );
Packit 15a96c
int  mc_setenv(const char *, const char *);
Packit 15a96c
void kermit(void);
Packit 15a96c
void runscript(int ask, const char *s, const char *l, const char *p);
Packit 15a96c
int  paste_file(void);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: windiv.c */
Packit 15a96c
WIN *mc_tell(const char *, ...);
Packit 15a96c
void werror(const char *, ...);
Packit 15a96c
int ask(const char *what, const char *s[]);
Packit 15a96c
char *input(char *s, char *buf);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: wildmat.c */
Packit 15a96c
int wildmat(const char *, const char *);
Packit 15a96c
Packit 15a96c
/* Prototypes from file: wkeys.c */
Packit 15a96c
extern int io_pending, pendingkeys;
Packit 15a96c
Packit 15a96c
/* Prototypes from file: config.c */
Packit 15a96c
void domacros(void);
Packit 15a96c
Packit 15a96c
Packit 15a96c
int lockfile_create(int no_msgs);
Packit 15a96c
void lockfile_remove(void);
Packit 15a96c
Packit 15a96c
Packit 15a96c
Packit 15a96c
/* We want the ANSI offsetof macro to do some dirty stuff. */
Packit 15a96c
#ifndef offsetof
Packit 15a96c
#  define offsetof(type, member) ((int) &((type *)0)->member)
Packit 15a96c
#endif
Packit 15a96c
Packit 15a96c
/* Values for the "flags". */
Packit 15a96c
#define FL_ECHO		0x01	/* Local echo on/off. */
Packit 15a96c
#define FL_DEL		0x02	/* Backspace or DEL */
Packit 15a96c
#define FL_WRAP		0x04	/* Use autowrap. */
Packit 15a96c
#define FL_ANSI		0x08	/* Type of term emulation */
Packit 15a96c
#define FL_TAG		0x80	/* This entry is tagged. */
Packit 15a96c
#define FL_SAVE		0x0f	/* Which portions of flags to save. */
Packit 15a96c
Packit 15a96c
enum {
Packit 15a96c
  TIMESTAMP_LINE_OFF,
Packit 15a96c
  TIMESTAMP_LINE_SIMPLE,
Packit 15a96c
  TIMESTAMP_LINE_EXTENDED,
Packit 15a96c
  TIMESTAMP_LINE_PER_SECOND,
Packit 15a96c
  TIMESTAMP_LINE_NR_OF_OPTIONS, // must be last
Packit 15a96c
};