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

📄 formatsbr.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* formatsbr.h - definitions for fmtscan () *//* * This structure describes an "interesting" component.  It holds * the name & text from the component (if found) and one piece of * auxilary info.  The structure for a particular component is located * by hashing the name and using it as an index into the ptr array * "wantcomp".  All format entries that reference a particular component * point to its comp struct (so we only have to do component specific * processing once.  e.g., parse an address.). */struct comp {	char		*c_name;	/* component name (in lower case) */	struct	comp	*c_next;	/* hash chain linkage */	char		*c_text;	/* component text (if found) */	short		c_flags;	/* misc. flags (from formatsbr) */	short		c_type;		/* type info (from fmtcompile) */	union {		struct tws	*c_u_tws;		struct mailname *c_u_mn;	} c_un;#define c_tws c_un.c_u_tws#define c_mn c_un.c_u_mn};/* c_type bits */#define	CT_ADDR		1	/* referenced as address */#define	CT_DATE		2	/* referenced as date */#define	CT_MYMBOX	4	/* "mymbox" test being done */#define	CT_ADDRPARSE	8	/* address parse being done */extern int fmt_norm;struct	comp	*wantcomp[128];	/* hash table for deciding if a				 * component is "interesting" *//*  * Hash function for component name.  The function should be * case independent and probably shouldn't involve a routine * call.  This function is pretty good but will not work on * single character component names.   */#define	CHASH(nm)	(((((nm)[0]) - ((nm)[1])) & 0x1f) + (((nm)[2]) & 0x5f))#ifdef	GOULD_PN/* bug in the Gould PowerNode compiler: need a local pointer to name... */#define FINDCOMP(comp,name1) \	{ \	char *name = (name1); \	for (comp = wantcomp[CHASH(name)]; \		comp && strcmp(comp->c_name,name); \		comp = comp->c_next) ; \	}#else#define FINDCOMP(comp,name) \		for (comp = wantcomp[CHASH(name)]; \		     comp && strcmp(comp->c_name,name); \		     comp = comp->c_next) ;#endif/* * This structure defines one formatting instruction. */struct format {	unsigned char	f_type;	char		f_fill;	short		f_width;	/* output field width */#define f_skip f_width			/* instr to skip (false "if") */	union {		struct comp	*f_u_comp;	/* associated component */		char		*f_u_text;	/* literal text */		char		f_u_char;	/* literal character */		int		f_u_value;	/* literal value */	} f_un;#define f_comp f_un.f_u_comp#define f_text f_un.f_u_text#define f_char f_un.f_u_char#define f_value f_un.f_u_value};int	fmtscan ();char   *new_fs ();

⌨️ 快捷键说明

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