#include <h/tws.h>
#include <h/mts.h>
#include <errno.h>
-#include <setjmp.h>
#include <signal.h>
#include <h/msh.h>
#include <h/picksbr.h>
static int mhlnum;
static FILE *mhlfp;
-#if defined(NNTP) && defined(MPOP)
-# undef MPOP
-#endif
-
-#ifdef MPOP
-# ifdef BPOP
-extern int pmsh;
-extern char response[];
-# endif
-#endif /* MPOP */
-
/*
* Type for a compare function for qsort. This keeps
* the compiler happy.
*/
typedef int (*qsort_comp) (const void *, const void *);
-/*
- * prototypes
- */
-void clear_screen (void); /* from termsbr.c */
-int SOprintf (char *, ...); /* from termsbr.c */
-int sc_width (void); /* from termsbr.c */
-
/*
* static prototypes
*/
static void copy_message (int, FILE *);
static void copy_digest (int, FILE *);
-/* from mhlsbr.c */
-int mhlsbr (int, char **, FILE *(*)());
-
void
forkcmd (char **args, char *pgm)
{
helpcmd (char **args)
{
int i;
+ NMH_UNUSED (args);
for (i = 0; hlpmsg[i]; i++) {
printf (hlpmsg[i], invo_name);
markcmd (char **args)
{
int addsw = 0, deletesw = 0, debugsw = 0;
- int listsw = 0, zerosw = 0, seqp = 0;
+ int listsw = 0, zerosw = 0;
+ size_t seqp = 0;
int msgp = 0, msgnum;
char *cp, buf[BUFSIZ];
char *seqs[NUMATTRS + 1], *msgs[MAXARGS];
{ "noauto", 0 },
#define MHNDEBUGSW 2
{ "debug", -5 },
-#define MHNEBCDICSW 3
- { "ebcdicsafe", 0 },
-#define MHNNEBCDICSW 4
- { "noebcdicsafe", 0 },
-#define MHNFORMSW 5
+#define MHNFORMSW 3
{ "form formfile", 4 },
-#define MHNHEADSW 6
+#define MHNHEADSW 4
{ "headers", 0 },
-#define MHNNHEADSW 7
+#define MHNNHEADSW 5
{ "noheaders", 0 },
-#define MHNLISTSW 8
+#define MHNLISTSW 6
{ "list", 0 },
-#define MHNNLISTSW 9
+#define MHNNLISTSW 7
{ "nolist", 0 },
-#define MHNPARTSW 10
+#define MHNPARTSW 8
{ "part number", 0 },
-#define MHNSIZESW 11
+#define MHNSIZESW 9
{ "realsize", 0 },
-#define MHNNSIZESW 12
+#define MHNNSIZESW 10
{ "norealsize", 0 },
-#define MHNRFC934SW 13
+#define MHNRFC934SW 11
{ "rfc934mode", 0 },
-#define MHNNRFC934SW 14
+#define MHNNRFC934SW 12
{ "norfc934mode", 0 },
-#define MHNSERIALSW 15
+#define MHNSERIALSW 13
{ "serialonly", 0 },
-#define MHNNSERIALSW 16
+#define MHNNSERIALSW 14
{ "noserialonly", 0 },
-#define MHNSHOWSW 17
+#define MHNSHOWSW 15
{ "show", 0 },
-#define MHNNSHOWSW 18
+#define MHNNSHOWSW 16
{ "noshow", 0 },
-#define MHNSTORESW 19
+#define MHNSTORESW 17
{ "store", 0 },
-#define MHNNSTORESW 20
+#define MHNNSTORESW 18
{ "nostore", 0 },
-#define MHNTYPESW 21
+#define MHNTYPESW 19
{ "type content", 0 },
-#define MHNVERBSW 22
+#define MHNVERBSW 20
{ "verbose", 0 },
-#define MHNNVERBSW 23
+#define MHNNVERBSW 21
{ "noverbose", 0 },
-#define MHNHELPSW 24
+#define MHNHELPSW 22
{ "help", 0 },
-#define MHNPROGSW 25
+#define MHNPROGSW 23
{ "moreproc program", -4 },
-#define MHNNPROGSW 26
+#define MHNNPROGSW 24
{ "nomoreproc", -3 },
-#define MHNLENSW 27
+#define MHNLENSW 25
{ "length lines", -4 },
-#define MHNWIDSW 28
+#define MHNWIDSW 26
{ "width columns", -4 },
{ NULL, 0 }
};
case MHNAUTOSW:
case MHNNAUTOSW:
case MHNDEBUGSW:
- case MHNEBCDICSW:
- case MHNNEBCDICSW:
case MHNHEADSW:
case MHNNHEADSW:
case MHNLISTSW:
void
pickcmd (char **args)
{
- int zerosw = 1, msgp = 0, seqp = 0;
+ int zerosw = 1, msgp = 0;
+ size_t seqp = 0;
int vecp = 0, hi, lo, msgnum;
char *cp, buf[BUFSIZ], *msgs[MAXARGS];
char *seqs[NUMATTRS], *vec[MAXARGS];
if (is_selected (mp, msgnum)) {
set_deleted (mp, msgnum);
unset_exists (mp, msgnum);
-#ifdef MPOP
-#ifdef BPOP
- if (pmsh && pop_dele (msgnum) != OK)
- fprintf (stderr, "%s", response);
-#endif
-#endif /* MPOP */
}
if ((mp->nummsg -= mp->numsel) <= 0) {
char *cp, *form = NULL, *format = NULL;
char buf[BUFSIZ], *nfs, *msgs[MAXARGS];
register FILE *zp;
-#ifdef MPOP
-#ifdef BPOP
- static int p_optim = 0;
-#endif
-#endif /* MPOP */
static int s_optim = 0;
static char *s_form = NULL, *s_format = NULL;
s_form = form ? getcpy (form) : NULL;
s_format = format ? getcpy (format) : NULL;
-#ifdef MPOP
-#ifdef BPOP
- if (pmsh) {
- int i;
- char *dp, *ep, *fp;
-
- if (width == 0)
- width = sc_width ();
-
- for (dp = nfs, i = 0; *dp; dp++, i++)
- if (*dp == '\\' || *dp == '"' || *dp == '\n')
- i++;
- i++;
- ep = mh_xmalloc ((unsigned) i);
- for (dp = nfs, fp = ep; *dp; dp++) {
- if (*dp == '\n') {
- *fp++ = '\\', *fp++ = 'n';
- continue;
- }
- if (*dp == '"' || *dp == '\\')
- *fp++ = '\\';
- *fp++ = *dp;
- }
- *fp = NULL;
-
- if (pop_command ("XTND SCAN %d \"%s\"", width, ep) == OK)
- p_optim = 1;
-
- free (ep);
- }
-#endif
-#endif /* MPOP */
}
else
optim = equiv (s_form, form) && equiv (s_format, format);
-#ifdef MPOP
-#ifdef BPOP
- if (p_optim && optim) {
- for (msgnum = mp->lowmsg; msgnum <= mp->hghmsg; msgnum++)
- if (!is_selected(mp, msgnum) || Msgs[msgnum].m_scanl)
- break;
- if (msgnum > mp->hghmsg && pop_command ("LIST") == OK) {
- fprintf (stderr, "Stand-by...");
- fflush (stderr);
-
- for (;;) {
- int size;
-
- switch (pop_multiline ()) {
- case NOTOK:
- fprintf (stderr, "%s", response);
- /* and fall... */
- case DONE:
- fprintf (stderr,"\n");
- break;
-
- case OK:
- if (sscanf (response, "%d %d", &msgnum, &size) == 2
- && mp->lowmsg <= msgnum
- && msgnum <= mp->hghmsg
- && (cp = strchr(response, '#'))
- && *++cp)
- Msgs[msgnum].m_scanl = concat (cp, "\n", NULL);
- continue;
- }
- break;
- }
- }
- }
-#endif
-#endif /* MPOP */
-
interrupted = 0;
for (msgnum = mp->lowsel;
msgnum <= mp->hghsel && !interrupted;
if (optim && Msgs[msgnum].m_scanl)
printf ("%s", Msgs[msgnum].m_scanl);
else {
-#ifdef MPOP
-#ifdef BPOP
- if (p_optim
- && optim
- && is_virtual (mp, msgnum)
- && pop_command ("LIST %d", msgnum) == OK
- && (cp = strchr(response, '#'))
- && *++cp) {
- Msgs[msgnum].m_scanl = concat (cp, "\n", NULL);
- printf ("%s", Msgs[msgnum].m_scanl);
- continue;
- }
-#endif
-#endif /* MPOP */
zp = msh_ready (msgnum, 0);
switch (state = scan (zp, msgnum, 0, nfs, width,
return;
seq_setprev (mp);
- if (!nshow && !getenv ("NOMHNPROC"))
+ if (!nshow)
for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++)
if (is_selected (mp, msgnum) && is_nontext (msgnum)) {
proc = showmimeproc;
static int
eom_action (int c)
{
+ NMH_UNUSED (c);
+
return (ftell (mhlfp) >= Msgs[mhlnum].m_stop);
}
fflush (stdout);
buf[0] = 0;
-#ifndef BSD42
read (fileno (stdout), buf, sizeof buf);
-#else /* BSD42 */
- switch (setjmp (sigenv)) {
- case OK:
- should_intr = 1;
- read (fileno (stdout), buf, sizeof buf);/* fall... */
-
- default:
- should_intr = 0;
- break;
- }
-#endif /* BSD42 */
if (strchr(buf, '\n') == NULL)
putchar ('\n');