-
-/*
- * seq_read.c -- read the .mh_sequence file and
+/* seq_read.c -- read the .mh_sequence file and
* -- initialize sequence information
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
#include <h/mh.h>
#include <h/utils.h>
+#include "lock_file.h"
/*
* static prototypes
{
int state;
char *cp, seqfile[PATH_MAX];
- char name[NAMESZ], field[BUFSIZ];
+ char name[NAMESZ], field[NMH_BUFSIZ];
FILE *fp;
- m_getfld_state_t gstate = 0;
+ m_getfld_state_t gstate;
/*
* If mh_seq == NULL or if *mh_seq == '\0' (the user has defined
== NULL)
return NOTOK;
- /* Use m_getfld to scan sequence file */
+ /* Use m_getfld2 to scan sequence file */
+ gstate = m_getfld_state_init(fp);
for (;;) {
int fieldsz = sizeof field;
- switch (state = m_getfld (&gstate, name, field, &fieldsz, fp)) {
+ switch (state = m_getfld2(&gstate, name, field, &fieldsz)) {
case FLD:
case FLDPLUS:
if (state == FLDPLUS) {
- cp = getcpy (field);
+ cp = mh_xstrdup(field);
while (state == FLDPLUS) {
fieldsz = sizeof field;
- state = m_getfld (&gstate, name, field, &fieldsz, fp);
+ state = m_getfld2(&gstate, name, field, &fieldsz);
cp = add (field, cp);
}
- seq_init (mp, getcpy (name), trimcpy (cp));
+ seq_init (mp, mh_xstrdup(name), trimcpy (cp));
free (cp);
} else {
- seq_init (mp, getcpy (name), trimcpy (field));
+ seq_init (mp, mh_xstrdup(name), trimcpy (field));
}
continue;
case BODY:
lkfclosedata (fp, seqfile);
- adios (NULL, "no blank lines are permitted in %s", seqfile);
- /* fall */
+ die("no blank lines are permitted in %s", seqfile);
+ break;
case FILEEOF:
break;
default:
lkfclosedata (fp, seqfile);
- adios (NULL, "%s is poorly formatted", seqfile);
+ die("%s is poorly formatted", seqfile);
}
break; /* break from for loop */
}
if (lockflag) {
mp->seqhandle = fp;
- mp->seqname = getcpy(seqfile);
+ mp->seqname = mh_xstrdup(seqfile);
} else {
lkfclosedata (fp, seqfile);
}
char *cp;
struct node *np;
- alen = strlen ("atr-");
+ alen = LEN("atr-");
plen = strlen (mp->foldpath) + 1;
for (np = m_defs; np; np = np->n_next) {
&& (j = strlen (np->n_name) - plen) > alen
&& *(np->n_name + j) == '-'
&& strcmp (mp->foldpath, np->n_name + j + 1) == 0) {
- cp = getcpy (np->n_name + alen);
+ cp = mh_xstrdup(np->n_name + alen);
*(cp + j - alen) = '\0';
if ((i = seq_init (mp, cp, getcpy (np->n_field))) != -1)
make_seq_private (mp, i);