X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Ffolder_delmsgs.c;h=ac93068d4313e6f8f54b790bc68e6cf6b43ec53e;hp=0636d119e64d80b5625ab03bdca5d7085bf0dfa7;hb=240013872c392fe644bd4f79382d9f5314b4ea60;hpb=a485ed478abbd599d8c9aab48934e7a26733ecb1 diff --git a/sbr/folder_delmsgs.c b/sbr/folder_delmsgs.c index 0636d11..ac93068 100644 --- a/sbr/folder_delmsgs.c +++ b/sbr/folder_delmsgs.c @@ -1,25 +1,25 @@ /* - * folder_delmsgs.c -- "remove" SELECTED messages from a folder - * - * 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. - */ +** folder_delmsgs.c -- "remove" SELECTED messages from a folder +** +** 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 /* - * 1) If we are using an external rmmproc, then exec it. - * 2) Else if unlink_msgs is non-zero, then unlink the - * SELECTED messages. - * 3) Else rename SELECTED messages by prefixing name - * with backup_prefix. - * - * If there is an error, return -1, else return 0. - */ +** 1) If we are using an external rmmproc, then exec it. +** 2) Else if unlink_msgs is non-zero, then unlink the +** SELECTED messages. +** 3) Else rename SELECTED messages by prefixing name +** with backup_prefix. +** +** If there is an error, return -1, else return 0. +*/ int -folder_delmsgs (struct msgs *mp, int unlink_msgs, int nohook) +folder_delmsgs(struct msgs *mp, int unlink_msgs, int nohook) { pid_t pid; int msgnum, vecp, retval = 0; @@ -27,101 +27,103 @@ folder_delmsgs (struct msgs *mp, int unlink_msgs, int nohook) char msgpath[BUFSIZ]; /* - * If "rmmproc" is defined, exec it to remove messages. - */ + ** If "rmmproc" is defined, exec it to remove messages. + */ if (rmmproc) { /* Unset the EXISTS flag for each message to be removed */ for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) { - if (is_selected (mp, msgnum)) - unset_exists (mp, msgnum); + if (is_selected(mp, msgnum)) + unset_exists(mp, msgnum); } /* Mark that the sequence information has changed */ mp->msgflags |= SEQMOD; if (mp->numsel > MAXARGS - 2) - adios (NULL, "more than %d messages for %s exec", MAXARGS - 2, + adios(NULL, "more than %d messages for %s exec", MAXARGS - 2, rmmproc); - vec = (char **) calloc ((size_t) (mp->numsel + 2), sizeof(*vec)); + vec = (char **) calloc((size_t) (mp->numsel + 2), sizeof(*vec)); if (vec == NULL) - adios (NULL, "unable to allocate exec vector"); + adios(NULL, "unable to allocate exec vector"); vecp = 1; for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) { - if (is_selected (mp, msgnum) && - !(vec[vecp++] = strdup (m_name (msgnum)))) - adios (NULL, "strdup failed"); + if (is_selected(mp, msgnum) && + !(vec[vecp++] = strdup(m_name(msgnum)))) + adios(NULL, "strdup failed"); } vec[vecp] = NULL; - fflush (stdout); - vec[0] = r1bindex (rmmproc, '/'); + fflush(stdout); + vec[0] = mhbasename(rmmproc); switch (pid = vfork()) { case -1: - advise ("fork", "unable to"); + advise("fork", "unable to"); return -1; case 0: - execvp (rmmproc, vec); - fprintf (stderr, "unable to exec "); - perror (rmmproc); - _exit (-1); + execvp(rmmproc, vec); + fprintf(stderr, "unable to exec "); + perror(rmmproc); + _exit(-1); default: - return (pidwait (pid, -1)); + return (pidwait(pid, -1)); } } /* - * Either unlink or rename the SELECTED messages - */ + ** Either unlink or rename the SELECTED messages + */ for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) { - if (is_selected (mp, msgnum)) { + if (is_selected(mp, msgnum)) { /* unselect message */ - unset_selected (mp, msgnum); + unset_selected(mp, msgnum); mp->numsel--; /* - * Run the external hook on the message if one was specified in the context. - * All we have is the message number; we have changed to the directory - * containing the message. So, we need to extract that directory to form - * the complete path. Note that the caller knows the directory, but has - * no way of passing that to us. - */ + ** Run the external hook on the message if one + ** was specified in the context. All we have + ** is the message number; we have changed to + ** the directory containing the message. So, + ** we need to extract that directory to form the + ** complete path. Note that the caller knows the + ** directory, but has no way of passing that to us. + */ if (!nohook) { (void)snprintf(msgpath, sizeof (msgpath), "%s/%d", mp->foldpath, msgnum); (void)ext_hook("del-hook", msgpath, (char *)0); } - dp = m_name (msgnum); + dp = m_name(msgnum); if (unlink_msgs) { /* just unlink the messages */ - if (unlink (dp) == -1) { - admonish (dp, "unable to unlink"); + if (unlink(dp) == -1) { + admonish(dp, "unable to unlink"); retval = -1; continue; } } else { /* or rename messages with standard prefix */ - strncpy (buf, m_backup (dp), sizeof(buf)); - if (rename (dp, buf) == -1) { - admonish (buf, "unable to rename %s to", dp); + strncpy(buf, m_backup(dp), sizeof(buf)); + if (rename(dp, buf) == -1) { + admonish(buf, "unable to rename %s to", dp); retval = -1; continue; } } /* If removal was successful, decrement message count */ - unset_exists (mp, msgnum); + unset_exists(mp, msgnum); mp->nummsg--; } } /* Sanity check */ if (mp->numsel != 0) - adios (NULL, "oops, mp->numsel should be 0"); + adios(NULL, "oops, mp->numsel should be 0"); /* Mark that the sequence information has changed */ mp->msgflags |= SEQMOD;