⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pager.h

📁 使用Modem发送网上传呼
💻 H
字号:
/*	-*- mode: c; mode: fold -*-	*/# ifndef	__PAGER_H# define	__PAGER_H		1# include	<stdio.h>/*{{{	definitions, macros */# ifndef	NDEBUG# define	V(lvl,msg)	((void) (((lvl) <= verbose) && verbout ? (*verbout) msg, fflush (stdout) : 0))# define	MCHK(xxx)	((void) ((xxx) && ((xxx) -> magic != MAGIC) ? fprintf (stderr, "Invalid magic: expect %ld got %ld in %s:%d\n", MAGIC, (xxx) -> magic, __FILE__, __LINE__) : 0))# define	MKMAGIC(ch1,ch2,ch3,ch4)					\				((long) ((((unsigned char) (ch1)) << 24) |	\					 (((unsigned char) (ch2)) << 16) |	\					 (((unsigned char) (ch3)) << 8) |	\					 ((unsigned char) (ch4))))# else		/* NDEBUG */# define	V(lvl,msg)# define	MCHK(xxx)# endif		/* NDEBUG */# define	NO_ERR		0# define	ERR_FAIL	(-1)# define	ERR_FATAL	(-2)# define	ERR_ABORT	(-3)# define	ECONT(xxx)	(((xxx) == NO_ERR) || ((xxx) == ERR_FAIL))# define	ESTOP(xxx)	(((xxx) == ERR_FATAL) || ((xxx) == ERR_ABORT))# define	LGS_SENT	'+'# define	LGF_SENT	'-'# define	LGS_INF		'*'# define	LGF_INF		'/'# define	LG_INF		'i'# define	LG_COST		'c'# define	LG_SSESSION	's'# define	LG_ESESSION	'e'# define	LG_PROTO	'p'/*}}}*//*{{{	typedefs */typedef enum {	False = 0,	True = ! False}	Bool;typedef enum {	Unknown,	Ascii,	Script,	Tap,	Ucp}	Protocol;typedef unsigned char	char_t;typedef struct {	char_t	*str;		/* the string itself			*/	int	len;		/* the current length			*/	int	size;		/* the allocated size			*/}	string_t;typedef struct {	int	day, mon, year;	int	hour, min, sec;}	date_t;/*}}}*//*{{{	prototypes *//*{{{	utility */extern char	*skip (char *str);extern char	*skipch (char *str, char ch);extern char	*getline (FILE *fp, Bool cont);extern int	verbose_out (char *, ...);/*}}}*//*{{{	string handling */extern string_t	*snewc (char *str);extern string_t	*snew (char_t *str, int len);extern Bool	sexpand (string_t *s, int nsize);extern Bool	scopy (string_t *dst, string_t *src);extern Bool	scat (string_t *dst, string_t *src);extern Bool	scopyc (string_t *dst, char *src);extern Bool	scatc (string_t *dst, char *src);extern string_t	*scut (string_t *str, int start, int len);extern void	sdel (string_t *str, int start, int len);extern Bool	sput (string_t *str, string_t *ins, int pos, int len);extern Bool	sputc (string_t *str, char *ins, int pos, int len);extern char	*sextract (string_t *s);extern char	*schar (string_t *s);extern void	*sfree (string_t *s);extern void	srelease (string_t *s);extern Bool	siscntrl (string_t *s, int pos);extern Bool	sisspace (string_t *s, int pos);extern Bool	sisdigit (string_t *s, int pos);extern int	stoi (string_t *s);/*}}}*//*{{{	date handling */extern date_t	*dat_free (date_t *d);extern date_t	*dat_parse (char *str);extern int	dat_diff (date_t *d1, date_t *d2);extern void	dat_clear (date_t *d);extern void	dat_localtime (date_t *d);/*}}}*//*{{{	tty handling */extern void	*tty_open (char *dev, char *lckprefix, char *lckmethod);extern void	*tty_close (void *sp);extern Bool	tty_reopen (void *s, int msec);extern void	tty_hangup (void *sp, int msec);extern int	tty_fd (void *sp);extern int	tty_setup (void *sp, Bool raw, Bool modem, int speed, int bpb, int sb, char parity);extern void	tty_set_line_callback (void *sp, void (*func) (void *, string_t *, char_t, void *), char *sep, void *data);extern void	tty_suspend_callback (void *sp, Bool susp);extern int	tty_send (void *sp, char *str, int len);extern int	tty_send_string (void *sp, char *str);extern int	tty_expect (void *sp, int tout, ...);extern int	tty_expect_list (void *sp, int tout, char **strs, int *lens);extern int	tty_expect_string (void *sp, int tout, char *str);extern int	tty_send_expect (void *sp, int deftout, char *str, char **opts);extern void	tty_mdrain (void *sp, int msecs);extern void	tty_drain (void *sp, int secs);/*}}}*//*{{{	configuration */extern void	*cfg_new (char *sep);extern void	*cfg_read (char *fname, void *bp, char *sep);extern void	*cfg_end (void *bp);extern void	cfg_modify (void *bp, char *bname, char *var, char *val);extern char	*cfg_get (void *bp, char *bname, char *var, char *dflt);extern int	cfg_iget (void *bp, char *bname, char *var, int dflt);extern Bool	cfg_bget (void *bp, char *bname, char *var, Bool dflt);extern char	*cfg_block_get (void *bp, char *bname, char *var, char *dflt);extern int	cfg_block_iget (void *bp, char *bname, char *var, int dflt);extern Bool	cfg_block_bget (void *bp, char *bname, char *var, Bool dflt);/*}}}*//*{{{	converting */extern void	*cv_new (void);extern void	*cv_free (void *cv);extern void	*cv_reverse (void *src);extern void	cv_define (void *cv, char_t src, char_t dst);extern void	cv_sdefine (void *cv, char *src, char *dst);extern void	cv_undefine (void *cv, char_t ch);extern void	cv_sundefine (void *cv, char *ch);extern void	cv_invalid (void *cv, char_t ch);extern void	cv_sinvalid (void *cv, char *ch);extern int	cv_read_table (void *cv, char *fname);extern int	cv_write_table (void *cv, char *fname);extern void	cv_merge (void *cv, void *in, Bool second);extern int	cv_conv (void *cv, char_t ch);/*}}}*//*{{{	ASCII protocol */extern int	asc_login (void *ap, string_t *callid);extern int	asc_logout (void *ap);extern int	asc_transmit (void *ap, char *pid, char *msg);extern int	asc_next (void *ap);extern int	asc_sync (void *ap);extern void	asc_config (void *ap, void (*logger) (char, char *, ...),			    int deftout, char *alogin, char *alogout, char *apid, char *amsg, char *anext, char *async,			    date_t *delay, date_t *expire, Bool rds);extern void	asc_set_convtable (void *ap, void *ctab);extern void	asc_add_convtable (void *ap, void *ctab);extern void	*asc_new (void *sp);extern void	*asc_free (void *ap);extern int	asc_preinit (void);extern void	asc_postdeinit (void);/*}}}*//*{{{	scripting protocol */extern int	scr_execute (void *sp, char *label, char *parm);extern int	scr_load_string (void *sp, char *scr);extern int	scr_load_file (void *sp, char *fname);extern void	scr_config (void *sp, void (*logger) (char, char *, ...), date_t *delay, date_t *expire, Bool rds);extern void	scr_set_convtable (void *sp, void *ctab);extern void	scr_add_convtable (void *sp, void *ctab);extern void	*scr_new (void *sp, char *typ, char *libdir);extern void	*scr_free (void *sp);extern int	scr_preinit (char *libdir);extern void	scr_postdeinit (void);/*}}}*//*{{{	Telocator Alphanumeric Protocol */extern int	tap_login (void *tp, char *stype, char ttype, char *passwd, string_t *callid);extern int	tap_logout (void *tp);extern int	tap_transmit (void *tp, string_t **field, Bool last);extern void	tap_config (void *tp, void (*logger) (char, char *, ...), Bool pre16);extern void	tap_timeouts (void *tp, int t1, int t2, int t3, int t4, int t5);extern void	tap_retries (void *tp, int n1, int n2, int n3, int licnt, int locnt);extern void	tap_set_convtable (void *tp, void *ctab);extern void	tap_add_convtable (void *tp, void *ctab);extern void	*tap_new (void *sp);extern void	*tap_free (void *tp);extern int	tap_preinit (void);extern void	tap_postdeinit (void);/*}}}*//*{{{	Universal Computer Protocol */extern int	ucp_login (void *up, string_t *callid);extern int	ucp_logout (void *up);extern int	ucp_transmit (void *up, string_t *pagerid, string_t *msg, Bool last);extern void	ucp_config (void *up, void (*logger) (char, char *, ...),			    Bool xtend, int stout, int retry, int rtout,			    date_t *delay, date_t *expire, Bool rds);extern void	ucp_set_convtable (void *up, void *ctab);extern void	ucp_add_convtable (void *up, void *ctab);extern void	*ucp_new (void *sp);extern void	*ucp_free (void *up);extern int	ucp_preinit (void);extern void	ucp_postdeinit (void);/*}}}*//*}}}*//*{{{	global variables */extern int	verbose;extern int	(*verbout) (char *, ...);/*}}}*/# endif		/* __PAGER_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -