-int
-mbx_write(char *mailbox, int md, FILE *fp, int id, long last,
- long pos, off_t stop, int mapping, int noisy)
-{
- int i, j, size;
- off_t start;
- long off;
- char *cp;
- char buffer[BUFSIZ];
-
- off = (long) lseek (md, (off_t) 0, SEEK_CUR);
- j = strlen (mmdlm1);
- if (write (md, mmdlm1, j) != j)
- return NOTOK;
- start = lseek (md, (off_t) 0, SEEK_CUR);
- size = 0;
-
- fseek (fp, pos, SEEK_SET);
- while (fgets (buffer, sizeof(buffer), fp) && (pos < stop)) {
- i = strlen (buffer);
- for ( ; (j = stringdex (mmdlm1, buffer)) >= 0; buffer[j]++)
- continue;
- for ( ; (j = stringdex (mmdlm2, buffer)) >= 0; buffer[j]++)
- continue;
- if (write (md, buffer, i) != i)
- return NOTOK;
- pos += (long) i;
- if (mapping)
- for (cp = buffer; i-- > 0; size++)
- if (*cp++ == '\n')
- size++;
- }
-
- stop = lseek (md, (off_t) 0, SEEK_CUR);
- j = strlen (mmdlm2);
- if (write (md, mmdlm2, j) != j)
- return NOTOK;
- if (mapping)
- map_write (mailbox, md, id, last, start, stop, off, size, noisy);
-
- return OK;
-}
-
-