/*
- * fmt_compile.c -- "compile" format strings for fmt_scan
- *
- * This code is Copyright (c) 2002, by the authors of nmh. See the
- * COPYRIGHT file in the root directory of the nmh distribution for
- * complete copyright information.
- */
+** fmt_compile.c -- "compile" format strings for fmt_scan
+**
+** This code is Copyright (c) 2002, by the authors of nmh. See the
+** COPYRIGHT file in the root directory of the nmh distribution for
+** complete copyright information.
+*/
#include <h/mh.h>
#include <h/addrsbr.h>
#endif
/*
- * hash table for deciding if a component is "interesting"
- */
+** hash table for deciding if a component is "interesting"
+*/
struct comp *wantcomp[128];
static struct format *formatvec; /* array to hold formats */
#define TF_NOP 8 /* like expr but no result */
/* ftable->flags */
-/* NB that TFL_PUTS is also used to decide whether the test
- * in a "%<(function)..." should be a string or numeric one.
- */
+/*
+** NB that TFL_PUTS is also used to decide whether the test
+** in a "%<(function)..." should be a string or numeric one.
+*/
#define TFL_PUTS 1 /* implicit putstr if top level */
#define TFL_PUTN 2 /* implicit putnum if top level */
#define CERROR(str) compile_error (str, cp)
/*
- * external prototypes
- */
+** external prototypes
+*/
extern char *getusername(void);
/*
- * static prototypes
- */
+** static prototypes
+*/
static struct ftable *lookup(char *);
static void compile_error(char *, char *);
static char *compile (char *);
}
/*
- * Compile format string "fstring" into format list "fmt".
- * Return the number of header components found in the format
- * string.
- */
+** Compile format string "fstring" into format list "fmt".
+** Return the number of header components found in the format
+** string.
+*/
int
fmt_compile(char *fstring, struct format **fmt)
memset((char *) &fmt_mnull, 0, sizeof(fmt_mnull));
- /* it takes at least 4 char to generate one format so we
- * allocate a worst-case format array using 1/4 the length
- * of the format string. We actually need twice this much
- * to handle both pre-processing (e.g., address parsing) and
- * normal processing.
- */
+ /*
+ ** it takes at least 4 char to generate one format so we
+ ** allocate a worst-case format array using 1/4 the length
+ ** of the format string. We actually need twice this much
+ ** to handle both pre-processing (e.g., address parsing) and
+ ** normal processing.
+ */
i = strlen(fstring)/2 + 1;
if (i == 1)
i++;
if (ftbl->f_type >= IF_FUNCS)
fp->f_type = ftbl->extra;
else {
- /* Put out a string test or a value
- * test depending on what this
- * function 's return type is.
- */
+ /*
+ ** Put out a string test or a value
+ ** test depending on what this
+ ** function 's return type is.
+ */
if (ftbl->flags & TFL_PUTS) {
LV (FT_IF_S, 0);
} else {