⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inc.c.6.7

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 7
📖 第 1 页 / 共 2 页
字号:
	if ((in = lkfopen (newmail, "r")) == NULL)	    adios (NULLCP, "unable to lock and fopen %s", newmail);	(void) fstat (fileno(in), &s1);    }    if (audfile) {	if ((i = stat (audfile, &st)) == NOTOK)	    advise (NULLCP, "Creating Receive-Audit: %s", audfile);	if ((aud = fopen (audfile, "a")) == NULL)	    adios (audfile, "unable to append to");	else	    if (i == NOTOK)		(void) chmod (audfile, m_gmprot ());#ifndef	POP	fprintf (aud, from ? "<<inc>> %s  -ms %s\n" : "<<inc>> %s\n",		dtimenow (), from);#else	POP	fprintf (aud, from ? "<<inc>> %s -ms %s\n"			: host ? "<<inc>> %s -host %s -user %s%s\n"			: "<<inc>> %s\n",		dtimenow (), from ? from : host, user, rpop ? " -rpop" : "");#endif	POP    }#ifdef	MHE    if (m_find ("mhe")) {	cp = concat (maildir, "/++", NULLCP);	i = stat (cp, &st);	if ((mhe = fopen (cp, "a")) == NULL)	    admonish (cp, "unable to append to");	else	    if (i == NOTOK)		(void) chmod (cp, m_gmprot ());	free (cp);    }#endif	MHE    nfs = new_fs (form, format, FORMAT);    if (noisy) {	printf ("Incorporating new mail into %s...\n\n", folder);	(void) fflush (stdout);    }/*  */#ifdef	POP    if (host) {	if (file) {	    file = path (file, TFILE);	    if (stat (file, &st) == NOTOK) {		if (errno != ENOENT)		    adios (file, "error on file");		cp = concat ("Create file \"", file, "\"? ", NULLCP);		if (noisy && !getanswer (cp))		    done (1);		free (cp);	    }	    msgnum = map_count ();	    if ((pd = mbx_open (file, getuid (), getgid (), m_gmprot ()))		    == NOTOK)		adios (file, "unable to open");	    if ((pf = fdopen (pd, "w+")) == NULL)		adios (NULLCP, "unable to fdopen %s", file);	}	else {	    hghnum = msgnum = mp -> hghmsg;	    if ((mp = m_remsg (mp, 0, mp -> hghmsg + nmsgs)) == NULL)		adios (NULLCP, "unable to allocate folder storage");	}	for (i = 1; i <= nmsgs; i++) {	    msgnum++;	    if (file) {		(void) fseek (pf, 0L, 1);		pos = ftell (pf);		size = 0;		(void) fwrite (mmdlm1, 1, strlen (mmdlm1), pf);		start = ftell (pf);		if (pop_retr (i, pop_pack) == NOTOK)		    adios (NULLCP, "%s", response);		(void) fseek (pf, 0L, 1);		stop = ftell (pf);		if (fflush (pf))		    adios (file, "write error on");		(void) fseek (pf, start, 0);	    }	    else {		cp = getcpy (m_name (msgnum));		if ((pf = fopen (cp, "w+")) == NULL)		    adios (cp, "unable to write");		(void) chmod (cp, m_gmprot ());		start = stop = 0L;		if (pop_retr (i, pop_action) == NOTOK)		    adios (NULLCP, "%s", response);		if (fflush (pf))		    adios (cp, "write error on");		(void) fseek (pf, 0L, 0);	    }	    switch (p = scan (pf, msgnum, 0, nfs, width,			file ? 0 : msgnum == mp -> hghmsg + 1 && chgflag,			0, stop - start, noisy)) {		case SCNEOF: 		    printf ("%*d  empty\n", DMAXFOLDER, msgnum);		    break;		case SCNERR: 		case SCNNUM: 		    break;		case SCNMSG: 		case SCNENC:		default: 		    if (aud)			fputs (scanl, aud);#ifdef	MHE		    if (mhe)			fputs (scanl, mhe);#endif	MHE		    if (noisy)			(void) fflush (stdout);		    if (!file) {			mp -> msgstats[msgnum] = EXISTS;#ifdef	TMA			if (p == SCNENC) {			    if (mp -> lowsel == 0 || msgnum < mp -> lowsel)				mp -> lowsel = msgnum;			    if (mp -> hghsel == 0 || msgnum > mp -> hghsel)				mp -> hghsel = msgnum;			    mp -> numsel++;			    mp -> msgstats[msgnum] |= SELECTED;			}#endif	TMA			mp -> msgstats[msgnum] |= UNSEEN;			mp -> msgflags |= SEQMOD;		    }		    break;		}	    if (file) {		(void) fseek (pf, stop, 0);		(void) fwrite (mmdlm2, 1, strlen (mmdlm2), pf);		if (fflush (pf))		    adios (file, "write error on");		(void) map_write (file, pd, 0, 0L, start, stop, pos, size,			    noisy);	    }	    else {		if (ferror(pf) || fclose (pf))		    adios (file, "write error on");		free (cp);	    }	    if (trnflag && pop_dele (i) == NOTOK)		adios (NULLCP, "%s", response);	}	if (pop_quit () == NOTOK)	    adios (NULLCP, "%s", response);	if (file) {	    (void) mbx_close (file, pd);	    pd = NOTOK;	}    }    else {#endif	POP/*  */    m_unknown (in);		/* the MAGIC invocation... */    hghnum = msgnum = mp -> hghmsg;    for (;;) {	if (msgnum >= mp -> hghoff)	    if ((mp = m_remsg (mp, 0, mp -> hghoff + MAXFOLDER)) == NULL)		adios (NULLCP, "unable to allocate folder storage");	switch (i = scan (in, msgnum + 1, msgnum + 1, nfs, width,		    msgnum == hghnum && chgflag,		    0,		    0L,		    noisy)) {	    case SCNEOF: 		break;	    case SCNERR: 		if (aud)		    fputs ("inc aborted!\n", aud);		adios (NULLCP, "aborted!");	    case SCNNUM: 		adios (NULLCP, "more than %d messages in folder %s, %s not zero'd",			MAXFOLDER, folder, newmail);	    default: 		adios (NULLCP, "scan() botch (%d)", i);	    case SCNMSG:	    case SCNENC:		if (aud)		    fputs (scanl, aud);#ifdef	MHE		if (mhe)		    fputs (scanl, mhe);#endif	MHE		if (noisy)		    (void) fflush (stdout);		msgnum++, mp -> hghmsg++;		mp -> msgstats[msgnum] = EXISTS;#ifdef	TMA		if (i == SCNENC) {		    if (mp -> lowsel == 0 || mp -> lowsel > msgnum)			mp -> lowsel = msgnum;		    if (mp -> hghsel == 0 || mp -> hghsel < msgnum)			mp -> hghsel = msgnum;		    mp -> numsel++;		    mp -> msgstats[msgnum] |= SELECTED;		}#endif	TMA		mp -> msgstats[msgnum] |= UNSEEN;		mp -> msgflags |= SEQMOD;		continue;	}	break;    }#ifdef	POP    }#endif	POP    if (aud)	(void) fclose (aud);#ifdef	MHE    if (mhe)	(void) fclose (mhe);#endif	MHE    if (noisy)	(void) fflush (stdout);#ifdef	POP    if (host && file)	done (0);#endif	POP/*  */#ifdef	POP    if (host == NULL)#endif	POP    if (trnflag) {	if (stat (newmail, &st) != NOTOK && s1.st_mtime != st.st_mtime)	    advise (NULLCP, "new messages have arrived!\007");	else {	    if ((i = creat (newmail, 0600)) != NOTOK)		(void) close (i);	    else		admonish (newmail, "error zero'ing");	    (void) unlink (map_name (newmail));	}    }    else	if (noisy)	    printf ("%s not zero'd\n", newmail);    if (msgnum == hghnum)	admonish (NULLCP, "no messages incorporated");    else {	m_replace (pfolder, folder);	if (chgflag)	    mp -> curmsg = hghnum + 1;	mp -> hghmsg = msgnum;	if (mp -> lowmsg == 0)	    mp -> lowmsg = 1;	if (chgflag)		/* sigh... */	    m_setcur (mp, mp -> curmsg);    }#ifdef	POP    if (host == NULL)#endif	POP    if (locked)	(void) lkfclose (in, newmail);    else	(void) fclose (in);    m_setvis (mp, 0);    m_sync (mp);    m_update ();#ifdef	TMA    if (decflag && mp -> numsel > 0) {	if (noisy) {	    printf ("\nIncorporating encrypted mail into %s...\n\n", folder);	    (void) fflush (stdout);	}	tmastart (0);	for (msgnum = mp -> lowsel; msgnum <= mp -> hghsel; msgnum++)	    if (mp -> msgstats[msgnum] & SELECTED && decipher (msgnum) == OK) {		if ((in = fopen (cp = m_name (msgnum), "r")) == NULL) {		    admonish (cp, "unable to open message");		    free (cp);		    continue;		}		switch (scan (in, msgnum, 0, nfs, width,			msgnum == mp -> curmsg,			0,			fstat (fileno (in), &st) != NOTOK ? (long) st.st_size			    : 0L,			noisy)) {		    case SCNEOF: 			printf ("%*d  empty\n", DMAXFOLDER, msgnum);			break;		    default: 			break;		}		(void) fclose (in);		free (cp);	    }	tmastop ();	if (noisy)	    (void) fflush (stdout);    }#endif	TMA    done (0);}/*  */#ifdef	POPvoid	done (status)int	status;{    if (file && pd != NOTOK)	(void) mbx_close (file, pd);    exit (status);}#endif	POP/*  */#ifdef MFget_uucp_mail () {    int     child_id;    char    buffer[BUFSIZ];    struct stat st;    (void) sprintf (buffer, "%s/%s", UUCPDIR, UUCPFIL);    if (stat (buffer, &st) == NOTOK || st.st_size == 0)	return;    switch (child_id = vfork ()) {	case NOTOK: 	    admonish ("fork", "unable to");	    break;	case OK: 	    execlp (umincproc, r1bindex (umincproc, '/'), NULLCP);	    fprintf (stderr, "unable to exec ");	    perror (umincproc);	    _exit (-1);	default: 	    (void) pidXwait (child_id, umincproc);	    break;    }}#endif	MF/*  */#ifdef	POPstatic int  pop_action (s)register char *s;{    fprintf (pf, "%s\n", s);    stop += strlen (s) + 1;}static int  pop_pack (s)register char *s;{    register int    j;    char    buffer[BUFSIZ];    (void) sprintf (buffer, "%s\n", s);    for (j = 0; (j = stringdex (mmdlm1, buffer)) >= 0; buffer[j]++)	continue;    for (j = 0; (j = stringdex (mmdlm2, buffer)) >= 0; buffer[j]++)	continue;    fputs (buffer, pf);    size += strlen (buffer) + 1;}static int  map_count () {    int     md;    char   *cp;    struct drop d;    struct stat st;    if (stat (file, &st) == NOTOK)	return 0;    if ((md = open (cp = map_name (file), 0)) == NOTOK	    || map_chk (cp, md, &d, (long) st.st_size, 1)) {	if (md != NOTOK)	    (void) close (md);	return 0;    }    (void) close (md);    return (d.d_id);}#endif	POP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -