X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/c915e11a95bdfb6157eecc81c5df82de65c86796..600d446465259dea809dd1223d0e727585ddac6b:/sbr/seq_add.c diff --git a/sbr/seq_add.c b/sbr/seq_add.c index d5109b0d..9c27f302 100644 --- a/sbr/seq_add.c +++ b/sbr/seq_add.c @@ -1,13 +1,14 @@ - -/* - * seq_add.c -- add message(s) to a sequence +/* seq_add.c -- add message(s) to a sequence * * 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 +#include "h/mh.h" +#include "seq_nameok.h" +#include "seq_add.h" +#include "error.h" /* @@ -26,7 +27,7 @@ int seq_addsel (struct msgs *mp, char *cp, int public, int zero) { unsigned int i; - int msgnum, new_seq = 1; + int msgnum; if (!seq_nameok (cp)) return 0; @@ -41,9 +42,10 @@ seq_addsel (struct msgs *mp, char *cp, int public, int zero) /* * Get the number for this sequence */ - for (i = 0; mp->msgattrs[i]; i++) { - if (!strcmp (mp->msgattrs[i], cp)) { - new_seq = 0; + bool new_seq = true; + for (i = 0; i < svector_size (mp->msgattrs); i++) { + if (!strcmp (svector_at (mp->msgattrs, i), cp)) { + new_seq = false; break; } } @@ -52,15 +54,10 @@ seq_addsel (struct msgs *mp, char *cp, int public, int zero) * If this is a new sequence, add a slot for it */ if (new_seq) { - if (i >= NUMATTRS) { - advise (NULL, "only %d sequences allowed (no room for %s)!", NUMATTRS, cp); - return 0; - } - if (!(mp->msgattrs[i] = strdup (cp))) { - advise (NULL, "strdup failed"); + if (!(svector_push_back (mp->msgattrs, strdup (cp)))) { + inform("strdup failed"); return 0; } - mp->msgattrs[i + 1] = NULL; } /* @@ -119,7 +116,7 @@ int seq_addmsg (struct msgs *mp, char *cp, int msgnum, int public, int zero) { unsigned int i; - int j, new_seq = 1; + int j; if (!seq_nameok (cp)) return 0; @@ -133,9 +130,10 @@ seq_addmsg (struct msgs *mp, char *cp, int msgnum, int public, int zero) /* * Get the number for this sequence */ - for (i = 0; mp->msgattrs[i]; i++) { - if (!strcmp (mp->msgattrs[i], cp)) { - new_seq = 0; + bool new_seq = true; + for (i = 0; i < svector_size (mp->msgattrs); i++) { + if (!strcmp (svector_at (mp->msgattrs, i), cp)) { + new_seq = false; break; } } @@ -144,15 +142,10 @@ seq_addmsg (struct msgs *mp, char *cp, int msgnum, int public, int zero) * If this is a new sequence, add a slot for it */ if (new_seq) { - if (i >= NUMATTRS) { - advise (NULL, "only %d sequences allowed (no room for %s)!", NUMATTRS, cp); - return 0; - } - if (!(mp->msgattrs[i] = strdup (cp))) { - advise (NULL, "strdup failed"); + if (!(svector_push_back (mp->msgattrs, strdup (cp)))) { + inform("strdup failed"); return 0; } - mp->msgattrs[i + 1] = NULL; } /*