usenet@ucbvax.UUCP (07/07/83)
diff -r -c 2.10/README 2.10.1/README
*** 2.10/README Wed May 4 14:07:36 1983
--- 2.10.1/README Fri Jun 24 16:43:28 1983
***************
*** 1,3
Notes for 2.10:
There are some incompatiblities between 2.9 and 2.10. None of them
--- 1,34 -----
+ Notes for 2.10.1:
+
+ This distribution is an interim distribution, fixing some serious bugs
+ found in 2.10, but providing no user enhancements. It is provided since
+ 2.11 will not be out for a few months.
+
+ The : prompt at the end of a long article has proven to be very unpopular.
+ It will go away in 2.11 in favor of a mechanism allowing the user to
+ receive a command prompt after headers, after the body, or both.
+ If you wish to disable it in the meantime, you can enable NOCOLON in
+ defs.h. Be warned that NOCOLON will not be present in 2.11.
+ A fancier method providing a -D option, to let the users disable colon
+ individually, has been posted, but is beyond the scope of this distribution,
+ since it would involve changing the documentation and help files,
+ and is a temporary measure.
+
+ Preview of 2.11:
+ 2.11 will incorporate
+ A large number of less serious bug fixes and improvements.
+ Several enhancements that have been posted to the net,
+ such as the recursive expire options.
+ A considerably revamped user interface which sorts newsgroups
+ to put discussions together (as much as possible,
+ given the nature of how people follow things up).
+ The msgs and mail interfaces are more cleanly integrated.
+ Turning off discussions is a possibility.
+ Some kind of screen oriented interface will probably be
+ included as an alternative to readnews.
+ Possible improved batching software, as it develops.
+ No significant enhancements to the inews portion are planned for 2.11.
+
Notes for 2.10:
There are some incompatiblities between 2.9 and 2.10. None of them
Common subdirectories: 2.10/config and 2.10.1/config
Common subdirectories: 2.10/cvt and 2.10.1/cvt
Common subdirectories: 2.10/doc and 2.10.1/doc
Common subdirectories: 2.10/man and 2.10.1/man
Common subdirectories: 2.10/misc and 2.10.1/misc
Common subdirectories: 2.10/src and 2.10.1/src
Common subdirectories: 2.10/uucp and 2.10.1/uucp
Only in 2.10.1/cvt: newactive.sh
diff -r -c 2.10/src/Makefile.usg 2.10.1/src/Makefile.usg
*** 2.10/src/Makefile.usg Wed Mar 30 15:39:52 1983
--- 2.10.1/src/Makefile.usg Sat Jun 25 00:31:33 1983
***************
*** 55,61
Makefile: Makefile.usg localize.sh
sh localize.sh
! install:
sh install.usg $(SPOOLDIR) $(LIBDIR) $(NEWSUSR) $(NEWSGRP)
make cp
--- 55,61 -----
Makefile: Makefile.usg localize.sh
sh localize.sh
! install active:
sh install.usg $(SPOOLDIR) $(LIBDIR) $(NEWSUSR) $(NEWSGRP)
cd ../cvt ; newactive.sh ../src/active $(LIBDIR) $(SPOOLDIR)
mv active oldactive
***************
*** 57,62
install:
sh install.usg $(SPOOLDIR) $(LIBDIR) $(NEWSUSR) $(NEWSGRP)
make cp
--- 57,64 -----
install active:
sh install.usg $(SPOOLDIR) $(LIBDIR) $(NEWSUSR) $(NEWSGRP)
+ cd ../cvt ; newactive.sh ../src/active $(LIBDIR) $(SPOOLDIR)
+ mv active oldactive
make cp
diff -r -c 2.10/src/Makefile.v7 2.10.1/src/Makefile.v7
*** 2.10/src/Makefile.v7 Wed Mar 30 15:39:53 1983
--- 2.10.1/src/Makefile.v7 Sat Jun 25 00:31:44 1983
***************
*** 44,51
Makefile: Makefile.v7 localize.sh
sh localize.sh
! install: cp
! sh install.v7 $(SPOOLDIR) $(LIBDIR) $(NEWSUSR) $(NEWSGRP)
clean:
rm -f $(COMMANDS) *.o
--- 44,53 -----
Makefile: Makefile.v7 localize.sh
sh localize.sh
! install: active cp
! sh install.v7 $(SPOOLDIR) $(LIBDIR) $(NEWSUSR) $(NEWSGRP)
! cd ../cvt ; newactive.sh ../src/active $(LIBDIR) $(SPOOLDIR)
! mv active oldactive
clean:
rm -f $(COMMANDS) *.o
diff -r -c 2.10/src/control.c 2.10.1/src/control.c
*** 2.10/src/control.c Tue May 3 14:48:54 1983
--- 2.10.1/src/control.c Fri Jun 24 16:27:09 1983
***************
*** 5,11
* See defs.h "news_version" for the real version of netnews.
*/
! static char *SccsId = "@(#)control.c 2.18 5/3/83 (this is NOT the netnews version!)";
#include "iparams.h"
--- 5,11 -----
* See defs.h "news_version" for the real version of netnews.
*/
! static char *SccsId = "@(#)control.c 2.20 6/24/83 (this is NOT the netnews version!)";
#include "iparams.h"
***************
*** 172,179
/* update ngfile */
fd = fopen(NGFILE, "a");
! fprintf(fd, "%s 00000\n", argv[1]);
! fclose(NGFILE);
#ifdef NOTIFY
/*
--- 172,179 -----
/* update ngfile */
fd = fopen(NGFILE, "a");
! fprintf(fd, "%s\n", argv[1]);
! fclose(fd);
#ifdef NOTIFY
/*
***************
*** 296,302
su = 1;
poster = senderof(&header);
if (!su && strcmp(whatsisname, poster)) {
! sprintf(msgbuf, "Not contributor: %s and %s", header.path, whatsisname);
xerror(msgbuf);
}
--- 296,302 -----
su = 1;
poster = senderof(&header);
if (!su && strcmp(whatsisname, poster)) {
! sprintf(msgbuf, "Not contributor: posted by %s, and you are %s", poster, whatsisname);
xerror(msgbuf);
}
***************
*** 502,508
{
int p[2];
register myside, hisside, pid;
! char *sendto;
if (hptr)
sendto = replyname(hptr);
--- 502,508 -----
{
int p[2];
register myside, hisside, pid;
! char *sendto = NULL;
if (hptr)
sendto = replyname(hptr);
***************
*** 506,512
if (hptr)
sendto = replyname(hptr);
! else
#ifdef NOTIFY
sendto = TELLME;
#else
--- 506,512 -----
if (hptr)
sendto = replyname(hptr);
! else {
#ifdef NOTIFY
if (TELLME && *TELLME)
sendto = TELLME;
***************
*** 508,516
sendto = replyname(hptr);
else
#ifdef NOTIFY
! sendto = TELLME;
! #else
! return NULL;
#endif NOTIFY
verifyname(sendto);
if(pipe(p) < 0)
--- 508,515 -----
sendto = replyname(hptr);
else {
#ifdef NOTIFY
! if (TELLME && *TELLME)
! sendto = TELLME;
#endif NOTIFY
if (sendto == NULL)
return NULL;
***************
*** 512,517
#else
return NULL;
#endif NOTIFY
verifyname(sendto);
if(pipe(p) < 0)
return NULL;
--- 511,519 -----
if (TELLME && *TELLME)
sendto = TELLME;
#endif NOTIFY
+ if (sendto == NULL)
+ return NULL;
+ }
verifyname(sendto);
if(pipe(p) < 0)
return NULL;
***************
*** 577,583
if (hptr)
to = replyname(hptr);
#ifdef NOTIFY
! else
to = TELLME;
#endif NOTIFY
if ((fp = mhopen(hptr)) != NULL) {
--- 579,585 -----
if (hptr)
to = replyname(hptr);
#ifdef NOTIFY
! if (TELLME && *TELLME)
to = TELLME;
#endif NOTIFY
if ((fp = mhopen(hptr)) != NULL) {
diff -r -c 2.10/src/defs.dist 2.10.1/src/defs.dist
*** 2.10/src/defs.dist Tue May 3 14:50:42 1983
--- 2.10.1/src/defs.dist Fri Jun 24 16:35:28 1983
***************
*** 10,17
* to be news_version below.
*/
! static char *news_version = "B 2.10 5/3/83";
! /* SCCS ID @(#)defs.dist 2.23 5/3/83 */
#define DAYS (60L*60L*24L)
#define WEEKS (7*DAYS)
--- 10,17 -----
* to be news_version below.
*/
! static char *news_version = "B 2.10.1 6/24/83";
! /* SCCS ID @(#)defs.dist 2.23 (hand edited) 5/3/83 */
#define DAYS (60L*60L*24L)
#define WEEKS (7*DAYS)
***************
*** 47,52
/* #define OLD /* Add extra headers for old neighbors */
/* #define UNAME /* If uname call is available. */
/* #define GHNAME /* If gethostname call is available. */
#define V7MAIL /* Local mail format is V7 ("From ") */
#define MYORG "Frobozz Inc., St. Louis" /* My organization. Please */
/* include your city (and state, and */
--- 47,53 -----
/* #define OLD /* Add extra headers for old neighbors */
/* #define UNAME /* If uname call is available. */
/* #define GHNAME /* If gethostname call is available. */
+ /* #define NOCOLON /* Don't do :. Will go away in 2.11. */
#define V7MAIL /* Local mail format is V7 ("From ") */
#define MYORG "Frobozz Inc., St. Louis" /* My organization. Please */
/* include your city (and state, and */
diff -r -c 2.10/src/expire.c 2.10.1/src/expire.c
*** 2.10/src/expire.c Wed Mar 30 15:39:57 1983
--- 2.10.1/src/expire.c Fri Jun 24 16:27:07 1983
***************
*** 11,17
* convert this 2.9 style code.
*/
! static char *SccsId = "@(#)expire.c 2.15 3/28/83";
#include "params.h"
#include "ndir.h"
--- 11,17 -----
* convert this 2.9 style code.
*/
! static char *SccsId = "@(#)expire.c 2.16 6/24/83";
#include "params.h"
#include "ndir.h"
***************
*** 427,432
mkparents(buf);
sprintf(sysbuf, "mkdir %s", buf);
rc = system(sysbuf);
if (verbose)
printf("mkdir %s, rc %d\n", sysbuf, rc);
chmod(sysbuf, 0755);
--- 427,433 -----
mkparents(buf);
sprintf(sysbuf, "mkdir %s", buf);
rc = system(sysbuf);
+ strcpy(sysbuf, buf);
if (verbose)
printf("mkdir %s, rc %d\n", sysbuf, rc);
chmod(sysbuf, 0755);
diff -r -c 2.10/src/funcs.c 2.10.1/src/funcs.c
*** 2.10/src/funcs.c Tue May 3 14:48:57 1983
--- 2.10.1/src/funcs.c Fri Jun 24 16:27:09 1983
***************
*** 2,8
* funcs - functions used by both inews and readnews.
*/
! static char *SccsId = "@(#)funcs.c 2.9 5/3/83";
#include "params.h"
--- 2,8 -----
* funcs - functions used by both inews and readnews.
*/
! static char *SccsId = "@(#)funcs.c 2.10 6/24/83";
#include "params.h"
***************
*** 544,550
char *q, *tp;
if (hp->sender[0])
! return hp->sender;
if (hp->from[0])
return hp->from;
--- 544,559 -----
char *q, *tp;
if (hp->sender[0])
! tp = hp->sender;
! else if (hp->from[0])
! tp = hp->from;
! else
! tp = tailpath(hp);
!
! /* Remove full name */
! q = index(tp, ' ');
! if (q)
! *q = '\0';
q = malloc(strlen(tp) + 1);
strcpy(q, tp);
***************
*** 546,555
if (hp->sender[0])
return hp->sender;
- if (hp->from[0])
- return hp->from;
-
- tp = tailpath(hp);
q = malloc(strlen(tp) + 1);
strcpy(q, tp);
return q;
--- 555,560 -----
if (q)
*q = '\0';
q = malloc(strlen(tp) + 1);
strcpy(q, tp);
return q;
diff -r -c 2.10/src/header.c 2.10.1/src/header.c
*** 2.10/src/header.c Sun Apr 3 20:05:00 1983
--- 2.10.1/src/header.c Fri Jun 24 15:32:20 1983
***************
*** 2,8
* header.c - header functions plus some other goodies
*/
! static char *SccsId = "@(#)header.c 2.16 4/3/83";
#include <stdio.h>
#include <sys/types.h>
--- 2,8 -----
* header.c - header functions plus some other goodies
*/
! static char *SccsId = "@(#)header.c 2.20 6/24/83";
#include <stdio.h>
#include <sys/types.h>
***************
*** 14,19
char *hfgets();
/*
* Read header from file fp into *hp. If wholething is FALSE,
* it's an incremental read, otherwise start from scratch.
--- 14,21 -----
char *hfgets();
+ static int seenrelay;
+
/*
* Read header from file fp into *hp. If wholething is FALSE,
* it's an incremental read, otherwise start from scratch.
***************
*** 30,35
if (wholething)
bclear((char *) hp, sizeof (*hp));
/* Check that it's a B news style header. */
if (((hfgets(bfr, PATHLEN, fp) != NULL &&
*bfr >= 'A' && *bfr <= 'Z') && index(bfr, ':')))
--- 32,39 -----
if (wholething)
bclear((char *) hp, sizeof (*hp));
+ seenrelay = 0;
+
/* Check that it's a B news style header. */
if (((hfgets(bfr, PATHLEN, fp) != NULL &&
*bfr >= 'A' && *bfr <= 'Z') && index(bfr, ':')))
***************
*** 102,107
#define ORGANIZATION 18
#define NUMLINES 19
#define KEYWORDS 20
#define OTHER 99
char *malloc();
--- 106,112 -----
#define ORGANIZATION 18
#define NUMLINES 19
#define KEYWORDS 20
+ #define APPROVED 21
#define OTHER 99
char *malloc();
***************
*** 182,187
case KEYWORDS:
getfield(hp->keywords);
break;
case RELAYVERSION:
/*
* Only believe a relay version if it's the first
--- 187,195 -----
case KEYWORDS:
getfield(hp->keywords);
break;
+ case APPROVED:
+ getfield(hp->approved);
+ break;
case RELAYVERSION:
/*
* Only believe a relay version if it's the first
***************
*** 188,194
* line, otherwise it probably got passed through
* by some old neighbor.
*/
! if (hdrlineno == 1)
getfield(hp->relayversion);
break;
case OTHER:
--- 196,202 -----
* line, otherwise it probably got passed through
* by some old neighbor.
*/
! if (hdrlineno == 1) {
getfield(hp->relayversion);
seenrelay = 1;
}
***************
*** 190,195
*/
if (hdrlineno == 1)
getfield(hp->relayversion);
break;
case OTHER:
if (unreccnt < NUNREC) {
--- 198,205 -----
*/
if (hdrlineno == 1) {
getfield(hp->relayversion);
+ seenrelay = 1;
+ }
break;
case OTHER:
if (unreccnt < NUNREC) {
***************
*** 218,223
char *tp;
char *user, *host, *fullname;
char *tailpath(), *rindex();
tp = tailpath(hp);
user = rindex(tp, '!');
--- 228,234 -----
char *tp;
char *user, *host, *fullname;
char *tailpath(), *rindex();
+ char *at, *dot;
tp = tailpath(hp);
user = rindex(tp, '!');
***************
*** 225,230
user = tp;
else
*user++ = '\0';
if (tp[0] == '.')
host = index(tp, '!') + 1;
else if (user == tp)
--- 236,254 -----
user = tp;
else
*user++ = '\0';
+
+ /* Check for an existing Internet address on the end. */
+ at = index(user, '@');
+ if (at) {
+ dot = index(at, '.');
+ if (dot) {
+ strcpy(hp->from, user);
+ return;
+ }
+ /* @ signs are illegal except for the biggie, so */
+ *at = '%';
+ }
+
if (tp[0] == '.')
host = index(tp, '!') + 1;
else if (user == tp)
***************
*** 231,236
host = FULLSYSNAME;
else
host = tp;
tp = index(host, '@');
if (tp != NULL)
*tp = 0;
--- 255,261 -----
host = FULLSYSNAME;
else
host = tp;
+
tp = index(host, '@');
if (tp != NULL)
*tp = 0;
***************
*** 262,268
return;
}
*p++ = '\0';
! sprintf(hp->ident, "<%s@%s%s>", p, lbuf, MYDOMAIN);
}
#ifdef OLD
--- 287,302 -----
return;
}
*p++ = '\0';
! /*
! * It may seem strange that we hardwire ".UUCP" in
! * here instead of MYDOMAIN. However, we are trying
! * to guess what the domain was on the posting system,
! * not the local system. Since we don't really know
! * what the posting system does, we just go with the
! * majority - almost everyone will be a .UUCP if they
! * didn't fill in their Message-ID.
! */
! sprintf(hp->ident, "<%s@%s%s>", p, lbuf, ".UUCP");
}
#ifdef OLD
***************
*** 275,280
}
*p++ = '\0';
q = index(p, '.');
if (q)
*q++ = '\0';
sprintf(hp->oident, "%8s.%s", p, lbuf+1);
--- 309,316 -----
}
*p++ = '\0';
q = index(p, '.');
+ if (!q)
+ q = index(p, '>');
if (q)
*q++ = '\0';
p[SNLN] = '\0';
***************
*** 277,283
q = index(p, '.');
if (q)
*q++ = '\0';
! sprintf(hp->oident, "%8s.%s", p, lbuf+1);
}
#endif
}
--- 313,320 -----
q = index(p, '>');
if (q)
*q++ = '\0';
! p[SNLN] = '\0';
! sprintf(hp->oident, "%s.%s", p, lbuf+1);
}
#endif
}
***************
*** 317,323
if (!colon || colon + 1 != space)
return FALSE;
if (its("From: "))
! if (index(ptr, '@') && !index(ptr, '!'))
return FROM;
else
return PATH;
--- 354,360 -----
if (!colon || colon + 1 != space)
return FALSE;
if (its("From: "))
! if (index(ptr, '@') && !index(ptr, '!') && seenrelay)
return FROM;
else
return PATH;
***************
*** 359,364
return NUMLINES;
if (its("Keywords: "))
return KEYWORDS;
return OTHER;
}
--- 396,403 -----
return NUMLINES;
if (its("Keywords: "))
return KEYWORDS;
+ if (its("Approved: "))
+ return APPROVED;
return OTHER;
}
***************
*** 466,471
fprintf(fp, "Lines: %s\n", hp->numlines);
if (*hp->keywords)
fprintf(fp, "Keywords: %s\n", hp->keywords);
for (iu = 0; iu < NUNREC; iu++) {
if (hp->unrec[iu])
fprintf(fp, "%s", &hp->unrec[iu][0]);
--- 505,512 -----
fprintf(fp, "Lines: %s\n", hp->numlines);
if (*hp->keywords)
fprintf(fp, "Keywords: %s\n", hp->keywords);
+ if (*hp->approved)
+ fprintf(fp, "Approved: %s\n", hp->approved);
for (iu = 0; iu < NUNREC; iu++) {
if (hp->unrec[iu])
fprintf(fp, "%s", &hp->unrec[iu][0]);
diff -r -c 2.10/src/inews.c 2.10.1/src/inews.c
*** 2.10/src/inews.c Tue May 3 14:49:01 1983
--- 2.10.1/src/inews.c Fri Jun 24 16:27:08 1983
***************
*** 2,8
* inews - insert, receive, and transmit news articles.
*/
! static char *SccsId = "@(#)inews.c 2.29 5/3/83";
#include "iparams.h"
--- 2,8 -----
* inews - insert, receive, and transmit news articles.
*/
! static char *SccsId = "@(#)inews.c 2.30 6/24/83";
#include "iparams.h"
***************
*** 308,314
ngcat(header.nbuf);
}
if (forgedname[0]) {
! gensender(&header, forgedname);
sprintf(header.sender, "%s@%s%s",
username, SYSNAME, MYDOMAIN);
} else {
--- 308,314 -----
ngcat(header.nbuf);
}
if (forgedname[0]) {
! strcpy(header.from, forgedname);
sprintf(header.sender, "%s@%s%s",
username, SYSNAME, MYDOMAIN);
} else {
diff -r -c 2.10/src/install.v7 2.10.1/src/install.v7
*** 2.10/src/install.v7 Wed Mar 30 15:40:05 1983
--- 2.10.1/src/install.v7 Fri Jun 24 16:33:40 1983
***************
*** 1,4
! : '@(#)install.v7 2.6 3/3/83'
if test "$#" != 4
then
echo "usage: $0 spooldir libdir nuser ngroup"
--- 1,4 -----
! : '%W% %G%'
if test "$#" != 4
then
echo "usage: $0 spooldir libdir nuser ngroup"
***************
*** 38,43
: Ensure certain files in LIBDIR exist
touch $LIBDIR/history $LIBDIR/active $LIBDIR/log $LIBDIR/users
chmod 666 $LIBDIR/users
: If no sys file, make one.
--- 38,44 -----
: Ensure certain files in LIBDIR exist
touch $LIBDIR/history $LIBDIR/active $LIBDIR/log $LIBDIR/users
+ touch $LIBDIR/history.dir $LIBDIR/history.pag
chmod 666 $LIBDIR/users
: If no sys file, make one.
diff -r -c 2.10/src/readnews.c 2.10.1/src/readnews.c
*** 2.10/src/readnews.c Sun Apr 24 23:58:34 1983
--- 2.10.1/src/readnews.c Fri Jun 24 16:33:19 1983
***************
*** 328,334
first = *searchfor;
for (p=index(string, first); p; p = index(p+1, first)) {
! if (p>string && p[-1] != '!' && strncmp(p, searchfor, strlen(searchfor)) == 0)
return TRUE;
}
return FALSE;
--- 328,334 -----
first = *searchfor;
for (p=index(string, first); p; p = index(p+1, first)) {
! if (p==string || (p>string && p[-1] != '!' && strncmp(p, searchfor, strlen(searchfor)) == 0))
return TRUE;
}
return FALSE;
diff -r -c 2.10/src/readr.c 2.10.1/src/readr.c
*** 2.10/src/readr.c Tue May 3 14:49:06 1983
--- 2.10.1/src/readr.c Fri Jun 24 16:33:26 1983
***************
*** 11,17
#define saveart oobit = bit;strcpy(ofilename1, filename);strcpy(ogroupdir, groupdir);hbufcp(&hbuf1, &h);ongsize = pngsize
#define NLINES(h, fp) (h.numlines[0] ? h.intnumlines : (h.intnumlines=linecnt(fp),sprintf(h.numlines, "%d", h.intnumlines), h.intnumlines))
! char *tft = "/usr/tmp/folXXXXXX";
static int hascaught = 0;
static catchintr()
--- 11,17 -----
#define saveart oobit = bit;strcpy(ofilename1, filename);strcpy(ogroupdir, groupdir);hbufcp(&hbuf1, &h);ongsize = pngsize
#define NLINES(h, fp) (h.numlines[0] ? h.intnumlines : (h.intnumlines=linecnt(fp),sprintf(h.numlines, "%d", h.intnumlines), h.intnumlines))
! char *tft = "/tmp/folXXXXXX";
static int hascaught = 0;
static catchintr()
***************
*** 77,82
if (pflag && ignoring())
ignorenews = TRUE;
if (uflag)
time(&timelastsaved);
--- 77,84 -----
if (pflag && ignoring())
ignorenews = TRUE;
+ if (xflag)
+ uflag = 0;
if (uflag)
time(&timelastsaved);
***************
*** 950,955
}
else
pout(ofp);
holdup = TRUE;
fprintf(ofp, ":");
fflush(ofp);
--- 952,958 -----
}
else
pout(ofp);
+ # ifndef NOCOLON
holdup = TRUE;
# endif NOCOLON
}
***************
*** 951,958
else
pout(ofp);
holdup = TRUE;
! fprintf(ofp, ":");
! fflush(ofp);
}
else
#endif
--- 954,960 -----
pout(ofp);
# ifndef NOCOLON
holdup = TRUE;
! # endif NOCOLON
}
else
#endif
***************
*** 1076,1081
if (rfq)
return;
/* Wait for user to read previous article. */
if (holdup) {
holdup = FALSE;
--- 1078,1084 -----
if (rfq)
return;
+ #ifndef NOCOLON
/* Wait for user to read previous article. */
if (holdup) {
fprintf(ofp, ":");
***************
*** 1078,1083
/* Wait for user to read previous article. */
if (holdup) {
holdup = FALSE;
gets(bfr);
if (bfr[0])
--- 1081,1088 -----
#ifndef NOCOLON
/* Wait for user to read previous article. */
if (holdup) {
+ fprintf(ofp, ":");
+ fflush(ofp);
holdup = FALSE;
bfr[0] = '\0';
gets(bfr);
***************
*** 1079,1084
/* Wait for user to read previous article. */
if (holdup) {
holdup = FALSE;
gets(bfr);
if (bfr[0])
explaincolon();
--- 1084,1090 -----
fprintf(ofp, ":");
fflush(ofp);
holdup = FALSE;
+ bfr[0] = '\0';
gets(bfr);
if (bfr[0])
explaincolon();
***************
*** 1083,1088
if (bfr[0])
explaincolon();
}
if (lflag || eflag) {
hprint(&h, ofp, 0);
--- 1089,1095 -----
if (bfr[0])
explaincolon();
}
+ #endif NOCOLON
if (lflag || eflag) {
hprint(&h, ofp, 0);
***************
*** 1103,1108
explaincolon()
{
fprintf(ofp, "\n'%s' ignored.\n", bfr);
fprintf(ofp, "The colon is to give you a chance to finish reading the\n");
fprintf(ofp, "previous article before the next header scrolls it off\n");
--- 1110,1117 -----
explaincolon()
{
+ static int calledbefore = 0;
+
fprintf(ofp, "\n'%s' ignored.\n", bfr);
if (calledbefore++ == 0) {
fprintf(ofp, "The colon is to give you a chance to finish reading the\n");
***************
*** 1104,1113
explaincolon()
{
fprintf(ofp, "\n'%s' ignored.\n", bfr);
! fprintf(ofp, "The colon is to give you a chance to finish reading the\n");
! fprintf(ofp, "previous article before the next header scrolls it off\n");
! fprintf(ofp, "the top of the screen. You should hit `return' or `newline'\n");
! fprintf(ofp, "when you are ready to go on to the next article.\n\n");
fflush(ofp);
}
--- 1113,1124 -----
static int calledbefore = 0;
fprintf(ofp, "\n'%s' ignored.\n", bfr);
! if (calledbefore++ == 0) {
! fprintf(ofp, "The colon is to give you a chance to finish reading the\n");
! fprintf(ofp, "previous article before the next header scrolls it off\n");
! fprintf(ofp, "the top of the screen. You should hit `return' or `newline'\n");
! fprintf(ofp, "when you are ready to go on to the next article.\n\n");
! }
fflush(ofp);
}
***************
*** 1125,1131
} else {
fprintf(ofp, "%s%s, ", tstr, title);
if (bit == pngsize)
! fprintf(ofp, "%d\n", pngsize);
else
fprintf(ofp, "%d-%d\n", bit, pngsize);
}
--- 1136,1142 -----
} else {
fprintf(ofp, "%s%s, ", tstr, title);
if (bit == pngsize)
! fprintf(ofp, "%ld\n", pngsize);
else
fprintf(ofp, "%d-%ld\n", bit, pngsize);
}
***************
*** 1127,1133
if (bit == pngsize)
fprintf(ofp, "%d\n", pngsize);
else
! fprintf(ofp, "%d-%d\n", bit, pngsize);
}
fprintf(ofp, "\n");
}
--- 1138,1144 -----
if (bit == pngsize)
fprintf(ofp, "%ld\n", pngsize);
else
! fprintf(ofp, "%d-%ld\n", bit, pngsize);
}
fprintf(ofp, "\n");
}
Only in 2.10.1/src: rmgrp