X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fm_draft.c;h=b3659f9896349655b63a307d45a626fa3f8d5d7c;hb=43c31a90ba57b93a5504c39a28b9ef55a9b6e801;hp=77ea394ae4856d9268776fb52e65b81d32d0b00a;hpb=a3ba584be2a9daf451bbe3c488d73703d14e8d53;p=mmh diff --git a/sbr/m_draft.c b/sbr/m_draft.c index 77ea394..b3659f9 100644 --- a/sbr/m_draft.c +++ b/sbr/m_draft.c @@ -9,11 +9,12 @@ #include #include #include +#include /* -** `which' should either be "cur" to use the current draft -** or "new" to start with a new draft. +** `which' should either be the cur sequence to use the current draft +** or the beyond sequence to start with a new draft. */ char * m_draft(char *which) @@ -23,34 +24,35 @@ m_draft(char *which) char *folder; folder = getcpy(toabsdir(draftfolder)); - create_folder(folder, 0, done); + create_folder(folder, 0, exit); if (!(mp = folder_read(folder))) { - adios(NULL, "unable to read folder %s", folder); + adios(EX_IOERR, NULL, "unable to read folder %s", folder); } + free(folder); /* ** Make sure we have enough message status space for all - ** the message numbers from 1 to "new", since we might + ** the message numbers from 1 to one beyond last, since we might ** select an empty slot. If we add more space at the ** end, go ahead and add 10 additional slots. */ if (mp->hghmsg >= mp->hghoff) { if (!(mp = folder_realloc(mp, 1, mp->hghmsg + 10))) - adios(NULL, "unable to allocate folder storage"); + adios(EX_OSERR, NULL, "unable to allocate folder storage"); } else if (mp->lowoff > 1) { if (!(mp = folder_realloc(mp, 1, mp->hghoff))) - adios(NULL, "unable to allocate folder storage"); + adios(EX_OSERR, NULL, "unable to allocate folder storage"); } - mp->msgflags |= ALLOW_NEW; /* allow the "new" sequence */ + mp->msgflags |= ALLOW_BEYOND; /* allow the beyond sequence */ /* ** The draft message name to return is defined by `which'. - ** Usually it is "cur" (for the current draft) or "new" + ** Usually it is seq_cur (for the current draft) or seq_beyond ** (to start a new draft). */ if (!m_convert(mp, which)) - done(1); + exit(EX_SOFTWARE); seq_setprev(mp); snprintf(buffer, sizeof(buffer), "%s/%s", mp->foldpath,