home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-11-29 | 49.5 KB | 1,732 lines |
- Newsgroups: comp.sources.misc
- From: iain@estevax.uucp (Iain J. Lea)
- Subject: v26i081: tin - threaded full screen newsreader, Patch07a/2
- Message-ID: <csm-v26i081=tin.204224@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 0fb3bafcdc69f53d9a7c96b8e2fcc021
- Date: Sat, 30 Nov 1991 02:43:00 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: iain@estevax.uucp (Iain J. Lea)
- Posting-number: Volume 26, Issue 81
- Archive-name: tin/patch07a
- Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
- Patch-To: tin: Volume 23, Issue 15-23
-
- This is version 1.0 PL7 (patchlevel 7) of the tin newsreader.
-
- NOTE: This patch has not been as heavily tested on different machines
- and OS's as I would have liked. On my main development machine
- everything in this patch works OK. Your mileage may vary.
- Therefore please make a copy of your PL6 code before applying
- the following patch.
-
- NOTE: The index file format has changed as an extra field (full name)
- has been added.
- BEFORE RUNNING PL6/PL7 DELETE ALL OLD INDEX FILES IN ~/.tin/.index
-
- NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
-
- Major improvements over tin 1.0 PL6 are the following:
-
- o Fixed an indexing (error 11) bug introduced in PL6.
-
- o Added code to read 4th field of active file.
-
- o Small fixes.
-
- For more bugs fixes, other changes & additions read the CHANGES & TODO files.
-
- #!/bin/sh
- # This is tin, a shell archive (shar 3.24)
- # made 11/07/1991 18:27 UTC by iain@estevax.uucp
- # Source directory /rna/iain/tin/107
- #
- # existing files WILL be overwritten
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 55873 -rw------- tin.patch07
- #
- if touch 2>&1 | fgrep '[-amc]' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- if test -r shar3_seq_.tmp; then
- echo "Must unpack archives in sequence!"
- next=`cat shar3_seq_.tmp`; echo "Please unpack part $next next"
- exit 1
- fi
- # ============= tin.patch07 ==============
- echo "x - extracting tin.patch07 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > tin.patch07 &&
- Xdiff -rcs ../106/CHANGES ./CHANGES
- X*** ../106/CHANGES Mon Nov 4 18:14:01 1991
- X--- ./CHANGES Thu Nov 7 07:36:49 1991
- X***************
- X*** 1,3 ****
- X--- 1,30 ----
- X+ CHANGES tin v1.0 PL6 -> tin 1.0 PL7
- X+ -----------------------------------
- X+
- X+ 1) iain@estevax.uucp (Iain Lea)
- X+ ADD. lang.c lag.h help.c - added help line for shell escape command.
- X+
- X+ 2) iain@estevax.uucp (Iain Lea)
- X+ ADD. misc.c - added code to read_active() to read 4th field of active file.
- X+
- X+ 3) iain@estevax.uucp (Iain Lea)
- X+ BUG. Major BooBoo when indexing caused error 11 in index scheme.
- X+ FIX. art.c - 3 line patch to check if name should same as from field.
- X+
- X+ 4) john@iti.org (John Sauter)
- X+ BUG. The Date: field was not parsed correctly in parse_date(). It assumes
- X+ dates in the form - "10 Nov 91 16:50:12 GMT", but there are other
- X+ formats.
- X+ FIX. art.c - applied the supplied patch. Thanx for the patch.
- X+
- X+ 5) john@iti.org (John Sauter)
- X+ BUG. Sort order is reversed from what I would expect.
- X+ FIX. art.c - applied the supplied patch. Thanx for the patch.
- X+
- X+ 6) iain@estevax.uucp (Iain Lea)
- X+ BUG. Article(s) saved/mailed never displayed at article level.
- X+ FIX. feed.c - only do a clear_message() if piping articles at art level.
- X+
- X CHANGES tin v1.0 PL5 -> tin 1.0 PL6
- X -----------------------------------
- X
- Xdiff -rcs ../106/MANIFEST ./MANIFEST
- X*** ../106/MANIFEST Mon Nov 4 19:13:32 1991
- X--- ./MANIFEST Thu Nov 7 19:26:51 1991
- X***************
- X*** 1,40 ****
- X! MANIFEST for tin newsreader (Mon Nov 4 19:13:30 MET 1991)
- X ----------------------------------------------------------
- X! 4057 README
- X! 27968 CHANGES
- X 2291 TODO
- X 530 UPDATE_INDEX
- X! 10905 Makefile
- X! 29528 tin.1
- X 2247 wildmat.3
- X! 39218 tin.nrf
- X! 10754 tin.h
- X! 10196 lang.h
- X 3720 nntp.h
- X! 17743 proto.h
- X! 21 patchlevel.h
- X! 29913 art.c
- X 6944 curses.c
- X! 3170 debug.c
- X! 12187 feed.c
- X! 21400 group.c
- X 2620 hashstr.c
- X! 5227 help.c
- X 11241 kill.c
- X! 18912 lang.c
- X! 8945 main.c
- X 6241 memory.c
- X! 25183 misc.c
- X 19753 newsrc.c
- X 7180 open.c
- X! 24844 page.c
- X! 17973 post.c
- X 4687 prompt.c
- X 20698 rcfile.c
- X 19945 save.c
- X 2244 screen.c
- X 8185 search.c
- X! 20520 select.c
- X 7940 signal.c
- X 4749 wildmat.c
- X! 469879 total
- X--- 1,39 ----
- X! MANIFEST for tin newsreader (Thu Nov 7 19:26:49 MET 1991)
- X ----------------------------------------------------------
- X! 3692 README
- X! 29042 CHANGES
- X 2291 TODO
- X 530 UPDATE_INDEX
- X! 10964 Makefile
- X! 29541 tin.1
- X 2247 wildmat.3
- X! 39230 tin.nrf
- X! 11088 tin.h
- X! 10283 lang.h
- X 3720 nntp.h
- X! 17799 proto.h
- X! 29683 art.c
- X 6944 curses.c
- X! 3208 debug.c
- X! 12188 feed.c
- X! 21483 group.c
- X 2620 hashstr.c
- X! 5384 help.c
- X 11241 kill.c
- X! 19089 lang.c
- X! 8921 main.c
- X 6241 memory.c
- X! 25378 misc.c
- X 19753 newsrc.c
- X 7180 open.c
- X! 24928 page.c
- X! 18731 post.c
- X 4687 prompt.c
- X 20698 rcfile.c
- X 19945 save.c
- X 2244 screen.c
- X 8185 search.c
- X! 20671 select.c
- X 7940 signal.c
- X 4749 wildmat.c
- X! 472518 total
- Xdiff -rcs ../106/Makefile ./Makefile
- X*** ../106/Makefile Mon Nov 4 19:11:30 1991
- X--- ./Makefile Thu Nov 7 19:26:36 1991
- X***************
- X*** 64,69 ****
- X--- 64,72 ----
- X # 1) stops percentage being shown at bottom of select and group menus.
- X # 2) stops group being written to screen as it is subscribed/unsubscribed.
- X #
- X+ # -D NO_SHELL_ESCAPE
- X+ # Do not allow shell escapes.
- X+ #
- X
- X # name of executable file
- X #
- X***************
- X*** 71,77 ****
- X
- X BINDIR = /usr/local/bin
- X MANDIR = /usr/man/man1
- X! #BINDIR = /piez/iain/bin
- X #BINDIR = /usr0g/iain/bin
- X #MANDIR = .
- X
- X--- 74,80 ----
- X
- X BINDIR = /usr/local/bin
- X MANDIR = /usr/man/man1
- X! #BINDIR = /rna/iain/bin
- X #BINDIR = /usr0g/iain/bin
- X #MANDIR = .
- X
- X***************
- X*** 78,85 ****
- X STRIP = strip
- X ROFF = + drf -F Helvetica -man3
- X PRINT= -Pps0
- X! BASE_VER = ../105
- X! PATCH_VER = 06
- X
- X HFILES = tin.h lang.h nntp.h proto.h patchlevel.h
- X
- X--- 81,88 ----
- X STRIP = strip
- X ROFF = + drf -F Helvetica -man3
- X PRINT= -Pps0
- X! BASE_VER = ../106
- X! PATCH_VER = 07
- X
- X HFILES = tin.h lang.h nntp.h proto.h patchlevel.h
- X
- X***************
- X*** 239,245 ****
- X @-rm $(BINDIR)/r$(EXE)
- X @ln $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
- X @su news -c "chmod 4755 $(BINDIR)/$(EXE)"
- X! @su news -c "chmod 755 $(BINDIR)/r$(EXE)"
- X @ls -l $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
- X @cp $(EXE).1 $(MANDIR)
- X
- X--- 242,248 ----
- X @-rm $(BINDIR)/r$(EXE)
- X @ln $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
- X @su news -c "chmod 4755 $(BINDIR)/$(EXE)"
- X! @su news -c "chmod 4755 $(BINDIR)/r$(EXE)"
- X @ls -l $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
- X @cp $(EXE).1 $(MANDIR)
- X
- X***************
- X*** 292,298 ****
- X @make diff
- X @echo "Generating patch against $(BASE_VER)..."
- X @-mv $(EXE).diff $(EXE).patch$(PATCH_VER)
- X! @shar -a -n $(EXE) -s iain@estevax.uucp -L55 -o patch$(PATCH_VER).shar $(EXE).patch$(PATCH_VER)
- X @ls -l patch$(PATCH_VER).shar*
- X
- X tar:
- X--- 295,301 ----
- X @make diff
- X @echo "Generating patch against $(BASE_VER)..."
- X @-mv $(EXE).diff $(EXE).patch$(PATCH_VER)
- X! @shar -a -n $(EXE) -s iain@estevax.uucp -L50 -o patch$(PATCH_VER).shar $(EXE).patch$(PATCH_VER)
- X @ls -l patch$(PATCH_VER).shar*
- X
- X tar:
- X***************
- X*** 320,326 ****
- X
- X clean:
- X @echo "Cleaning..."
- X! @-'rm' -rf $(OBJECTS) #* $(EXE).diff*
- X
- X clobber:
- X @echo "Clobbering..."
- X--- 323,329 ----
- X
- X clean:
- X @echo "Cleaning..."
- X! @-'rm' -rf $(OBJECTS) '#*' $(EXE).diff*
- X
- X clobber:
- X @echo "Clobbering..."
- Xdiff -rcs ../106/README ./README
- X*** ../106/README Mon Nov 4 18:04:28 1991
- X--- ./README Thu Nov 7 19:18:17 1991
- X***************
- X*** 1,34 ****
- X! This is version 1.0 PL6 (patchlevel 6) of the tin newsreader.
- X
- X NOTE: This patch has not been as heavily tested on different machines
- X and OS's as I would have liked. On my main development machine
- X everything in this patch works OK. Your mileage may vary.
- X! Therefore please make a copy of your PL5 code before applying
- X the following patch.
- X
- X NOTE: The index file format has changed as an extra field (full name)
- X has been added.
- X! BEFORE RUNNING PL6 DELETE ALL OLD INDEX FILES IN ~/.tin/.index
- X
- X NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
- X
- X! Major improvements over tin 1.0 PL5 are the following:
- X
- X! o Added support for Minix 386.
- X
- X! o Can now display From: line address part/full name/both format.
- X
- X! o Displays all articles/only unread articles. Configurable by M options menu.
- X! NOTE: This is a little flakey and will be improved on in the next patch.
- X
- X- o Scroll half/full page of groups/articles. Configurable by M options menu.
- X-
- X- o Thread/unthread all groups. Configurable by M options menu.
- X-
- X- o Added -M option to mail new news to specified user.
- X-
- X- o Fixed (I hope) scrolling in Sun cmdtool windows when invoking a shell.
- X-
- X For more bugs fixes, other changes & additions read the CHANGES & TODO files.
- X
- X I am still looking for people to send me ideas/comments & bug reports.
- X--- 1,25 ----
- X! This is version 1.0 PL7 (patchlevel 7) of the tin newsreader.
- X
- X NOTE: This patch has not been as heavily tested on different machines
- X and OS's as I would have liked. On my main development machine
- X everything in this patch works OK. Your mileage may vary.
- X! Therefore please make a copy of your PL6 code before applying
- X the following patch.
- X
- X NOTE: The index file format has changed as an extra field (full name)
- X has been added.
- X! BEFORE RUNNING PL6/PL7 DELETE ALL OLD INDEX FILES IN ~/.tin/.index
- X
- X NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
- X
- X! Major improvements over tin 1.0 PL6 are the following:
- X
- X! o Fixed an indexing (error 11) bug introduced in PL6.
- X
- X! o Added code to read 4th field of active file.
- X
- X! o Small fixes.
- X
- X For more bugs fixes, other changes & additions read the CHANGES & TODO files.
- X
- X I am still looking for people to send me ideas/comments & bug reports.
- X***************
- X*** 75,80 ****
- X--- 66,72 ----
- X 18) SNI MX300 & Sinix 5.22
- X 19) NCR Tower & SysV
- X 20) 386 PC & Minix 386
- X+ 21) SNI MX500 & Sinix 5.24
- X
- X Credits
- X -------
- X***************
- X*** 90,97 ****
- X
- X Anton Aylward, Ned Danieley, Brent Ermlick, Carl Hage, Ed Hanway,
- X Karl-Koenig Koenigsson, Kris Kugel, Hakan Lennestal, Clifford Luke,
- X! Bill Poitras, Nickolay Saukh, Rich Salz, Bart Sears, Karl-Olav Serrander,
- X! Doug Sewell, Cliff Stanford, Adri Verhoef, Cary Whitney
- X
- X I wish to thank the following people for bug reports/comments:
- X
- X--- 82,89 ----
- X
- X Anton Aylward, Ned Danieley, Brent Ermlick, Carl Hage, Ed Hanway,
- X Karl-Koenig Koenigsson, Kris Kugel, Hakan Lennestal, Clifford Luke,
- X! Bill Poitras, Nickolay Saukh, Rich Salz, John Sauter, Bart Sears,
- X! Karl-Olav Serrander, Doug Sewell, Cliff Stanford, Adri Verhoef, Cary Whitney
- X
- X I wish to thank the following people for bug reports/comments:
- X
- XFiles ../106/TODO and ./TODO are identical
- XFiles ../106/UPDATE_INDEX and ./UPDATE_INDEX are identical
- Xdiff -rcs ../106/art.c ./art.c
- X*** ../106/art.c Mon Nov 4 18:41:45 1991
- X--- ./art.c Thu Nov 7 07:37:22 1991
- X***************
- X*** 3,9 ****
- X * Module : art.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 04-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : art.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 07-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 738,748 ****
- X
- X if (buf[0] == '%') {
- X n = atoi (&buf[1]);
- X! if (n >= top || n < 0) {
- X error = 11;
- X goto corrupt_index;
- X }
- X! arts[top].name = arts[n].name;
- X } else if (buf[0] == ' ') {
- X for (p = &buf[1]; *p && *p != '\n'; p++)
- X continue;
- X--- 738,752 ----
- X
- X if (buf[0] == '%') {
- X n = atoi (&buf[1]);
- X! if (n > top || n < 0) {
- X error = 11;
- X goto corrupt_index;
- X }
- X! if (n == top) { /* no full name so .name = .from */
- X! arts[top].name = arts[top].from;
- X! } else {
- X! arts[top].name = arts[n].name;
- X! }
- X } else if (buf[0] == ' ') {
- X for (p = &buf[1]; *p && *p != '\n'; p++)
- X continue;
- X***************
- X*** 1198,1204 ****
- X }
- X
- X /*
- X! * convert date from "24 Jul 91 12:59:59" to "910724125959"
- X */
- X
- X char *parse_date (date, str)
- X--- 1202,1211 ----
- X }
- X
- X /*
- X! * convert date from ctime format to sortable format
- X! * "24 Jul 91 12:59:59", "Mon, 24 Jul 91 12:59:59" and
- X! * "Mon, 24 Jul 1991 12:59:59" are parsed and produce
- X! * output of the form "910724125959"
- X */
- X
- X char *parse_date (date, str)
- X***************
- X*** 1206,1220 ****
- X char *str;
- X {
- X char buf[4];
- X! int i = 3;
- X
- X! if (date[1] == ' ') { /* ie. "2 Aug..." instead of "12 Aug... */
- X str[4] = '0'; /* day */
- X! str[5] = date[0];
- X! i = 2;
- X } else {
- X! str[4] = date[0]; /* day */
- X! str[5] = date[1];
- X }
- X
- X buf[0] = date[i++]; /* month in Jan,Feb,.. form */
- X--- 1213,1233 ----
- X char *str;
- X {
- X char buf[4];
- X! int i = 0;
- X
- X! /* Check for extraneous day-of-week at start of date */
- X! while (isalpha(date[i]) || date[i] == ',' || date[i] == ' ') {
- X! i++;
- X! }
- X!
- X! if (date[i+1] == ' ') { /* ie. "2 Aug..." instead of "12 Aug... */
- X str[4] = '0'; /* day */
- X! str[5] = date[i++];
- X! i++;
- X } else {
- X! str[4] = date[i++]; /* day */
- X! str[5] = date[i++];
- X! i++;
- X }
- X
- X buf[0] = date[i++]; /* month in Jan,Feb,.. form */
- X***************
- X*** 1226,1231 ****
- X--- 1239,1248 ----
- X
- X str[0] = date[i++]; /* year */
- X str[1] = date[i++];
- X+ if (isdigit(date[i])) { /* 19xx format */
- X+ str[0] = date[i++];
- X+ str[1] = date[i++];
- X+ }
- X
- X i++;
- X
- X***************
- X*** 1315,1329 ****
- X struct header *s1 = (struct header *) p1;
- X struct header *s2 = (struct header *) p2;
- X
- X! /* s1->subject less than s2->subject */
- X! if (strcmp (s1->subject, s2->subject) < 0) {
- X! return (sort_art_type == SORT_BY_SUBJ_DESCEND ? -1 : 1);
- X! }
- X! /* s1->subject greater than s2->subject */
- X! if (strcmp (s1->subject, s2->subject) > 0) {
- X! return (sort_art_type == SORT_BY_SUBJ_DESCEND ? 1 : -1);
- X! }
- X! return 0;
- X }
- X
- X
- X--- 1332,1341 ----
- X struct header *s1 = (struct header *) p1;
- X struct header *s2 = (struct header *) p2;
- X
- X! /* return result of strcmp (reversed for descending) */
- X! return (sort_art_type == SORT_BY_SUBJ_ASCEND
- X! ? strcmp (s1->subject, s2->subject)
- X! : strcmp (s2->subject, s1->subject));
- X }
- X
- X
- X***************
- X*** 1334,1359 ****
- X struct header *s1 = (struct header *) p1;
- X struct header *s2 = (struct header *) p2;
- X
- X! if (show_author == SHOW_FROM_NAME) {
- X! /* s1->name less than s2->name */
- X! if (strcmp (s1->name, s2->name) < 0) {
- X! return (sort_art_type == SORT_BY_FROM_DESCEND ? -1 : 1);
- X! }
- X! /* s1->name greater than s2->name */
- X! if (strcmp (s1->name, s2->name) > 0) {
- X! return (sort_art_type == SORT_BY_FROM_DESCEND ? 1 : -1);
- X! }
- X! } else { /* SHOW_FROM_ADDR */
- X! /* s1->from less than s2->from */
- X! if (strcmp (s1->from, s2->from) < 0) {
- X! return (sort_art_type == SORT_BY_FROM_DESCEND ? -1 : 1);
- X! }
- X! /* s1->from greater than s2->from */
- X! if (strcmp (s1->from, s2->from) > 0) {
- X! return (sort_art_type == SORT_BY_FROM_DESCEND ? 1 : -1);
- X! }
- X! }
- X! return 0;
- X }
- X
- X
- X--- 1346,1355 ----
- X struct header *s1 = (struct header *) p1;
- X struct header *s2 = (struct header *) p2;
- X
- X! /* return result of strcmp (reversed for descending) */
- X! return (sort_art_type == SORT_BY_FROM_ASCEND
- X! ? strcmp (s1->from, s2->from)
- X! : strcmp (s2->from, s1->from));
- X }
- X
- X
- X***************
- X*** 1363,1378 ****
- X {
- X struct header *s1 = (struct header *) p1;
- X struct header *s2 = (struct header *) p2;
- X!
- X! /* s1->date less than s2->date */
- X! if (strcmp (s1->date, s2->date) < 0) {
- X! return (sort_art_type == SORT_BY_DATE_DESCEND ? -1 : 1);
- X! }
- X! /* s1->date greater than s2->date */
- X! if (strcmp (s1->date, s2->date) > 0) {
- X! return (sort_art_type == SORT_BY_DATE_DESCEND ? 1 : -1);
- X! }
- X! return 0;
- X }
- X
- X
- X--- 1359,1368 ----
- X {
- X struct header *s1 = (struct header *) p1;
- X struct header *s2 = (struct header *) p2;
- X! /* return result of strcmp (reversed for descending) */
- X! return (sort_art_type == SORT_BY_DATE_ASCEND
- X! ? strcmp (s1->date, s2->date)
- X! : strcmp (s2->date, s1->date));
- X }
- X
- X
- XFiles ../106/curses.c and ./curses.c are identical
- Xdiff -rcs ../106/debug.c ./debug.c
- X*** ../106/debug.c Mon Nov 4 15:03:25 1991
- X--- ./debug.c Wed Nov 6 14:20:29 1991
- X***************
- X*** 3,9 ****
- X * Module : debug.c
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 04-11-91
- X * Release : 1.0
- X * Notes : debug routines
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X--- 3,9 ----
- X * Module : debug.c
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 06-11-91
- X * Release : 1.0
- X * Notes : debug routines
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X***************
- X*** 121,128 ****
- X
- X if ((fp = fopen ("/tmp/ACTIVE","w")) != NULL) {
- X for (i = 0; i < num_active; i++) { /* for each group */
- X! fprintf (fp, "[%4d]=[%-28s] max=[%4ld] min=[%4ld] nxt=[%4d] flag=[%d] read=[%d] thread=[%d]\n",
- X! i, active[i].name, active[i].max, active[i].min, active[i].next, active[i].flag, active[i].read, active[i].thread);
- X }
- X fflush (fp);
- X fclose (fp);
- X--- 121,130 ----
- X
- X if ((fp = fopen ("/tmp/ACTIVE","w")) != NULL) {
- X for (i = 0; i < num_active; i++) { /* for each group */
- X! fprintf (fp, "[%4d]=[%-28s] max=[%4ld] min=[%4ld] mod=[%c] nxt=[%4d] flag=[%d] read=[%d] thread=[%d]\n",
- X! i, active[i].name, active[i].max, active[i].min,
- X! active[i].moderated, active[i].next, active[i].flag,
- X! active[i].read, active[i].thread);
- X }
- X fflush (fp);
- X fclose (fp);
- X***************
- X*** 143,149 ****
- X
- X if ((fp = fopen (LOG_USER_FILE, "a+")) != NULL) {
- X my_strncpy (buf, myentry->pw_gecos, 32);
- X! fprintf (fp, "%s%d: %-32s (%-8s) %s", version, PATCHLEVEL,
- X buf, myentry->pw_name, ctime (&epoch));
- X fclose (fp);
- X chmod (LOG_USER_FILE, 0666);
- X--- 145,151 ----
- X
- X if ((fp = fopen (LOG_USER_FILE, "a+")) != NULL) {
- X my_strncpy (buf, myentry->pw_gecos, 32);
- X! fprintf (fp, "%s%d: %-32s (%-8s) %s", VERSION, PATCHLEVEL,
- X buf, myentry->pw_name, ctime (&epoch));
- X fclose (fp);
- X chmod (LOG_USER_FILE, 0666);
- Xdiff -rcs ../106/feed.c ./feed.c
- X*** ../106/feed.c Tue Oct 29 19:17:51 1991
- X--- ./feed.c Thu Nov 7 07:20:20 1991
- X***************
- X*** 242,248 ****
- X case FEED_PRINT:
- X wait_message (txt_printing);
- X if (print_header) {
- X! fseek(note_fp, 0L, 0);
- X } else {
- X fprintf (fp, "From: %s (%s)\n",
- X arts[respnum].from,arts[respnum].name);
- X--- 242,248 ----
- X case FEED_PRINT:
- X wait_message (txt_printing);
- X if (print_header) {
- X! fseek (note_fp, 0L, 0);
- X } else {
- X fprintf (fp, "From: %s (%s)\n",
- X arts[respnum].from,arts[respnum].name);
- X***************
- X*** 250,256 ****
- X fprintf (fp, "Date: %s\n\n", note_h_date);
- X fseek (note_fp, note_mark[0], 0);
- X }
- X! copy_fp(note_fp, fp, "");
- X pclose (fp);
- X break;
- X case FEED_SAVE:
- X--- 250,256 ----
- X fprintf (fp, "Date: %s\n\n", note_h_date);
- X fseek (note_fp, note_mark[0], 0);
- X }
- X! copy_fp (note_fp, fp, "");
- X pclose (fp);
- X break;
- X case FEED_SAVE:
- X***************
- X*** 456,462 ****
- X redraw_page (respnum, glob_group);
- X }
- X } else {
- X! if (function != FEED_PRINT) {
- X clear_message ();
- X }
- X }
- X--- 456,462 ----
- X redraw_page (respnum, glob_group);
- X }
- X } else {
- X! if (function == FEED_PIPE) {
- X clear_message ();
- X }
- X }
- Xdiff -rcs ../106/group.c ./group.c
- X*** ../106/group.c Mon Nov 4 18:11:09 1991
- X--- ./group.c Wed Nov 6 14:21:57 1991
- X***************
- X*** 35,45 ****
- X char *p;
- X int flag, i, n;
- X int kill_state;
- X- long old_artnum;
- X int old_top;
- X int sav_groupnum;
- X int scroll_lines;
- X int thread_marked_unread = FALSE;
- X
- X active[my_group[cur_groupnum]].read = TRUE;
- X
- X--- 35,46 ----
- X char *p;
- X int flag, i, n;
- X int kill_state;
- X int old_top;
- X+ int posted;
- X int sav_groupnum;
- X int scroll_lines;
- X int thread_marked_unread = FALSE;
- X+ long old_artnum;
- X
- X active[my_group[cur_groupnum]].read = TRUE;
- X
- X***************
- X*** 89,98 ****
- X--- 90,101 ----
- X if (ch > '0' && ch <= '9') { /* 0 goes to basenote */
- X prompt_subject_num(ch, group);
- X } else switch (ch) {
- X+ #ifndef NO_SHELL_ESCAPE
- X case '!':
- X shell_escape ();
- X show_group_page (group);
- X break;
- X+ #endif
- X
- X case '$': /* show last page of articles */
- X end_of_list:
- X***************
- X*** 577,587 ****
- X break;
- X }
- X #endif
- X! if (post_base (group)) {
- X! update_newsrc (group, my_group[cur_groupnum], FALSE);
- X! index_group (group, group_path);
- X! read_newsrc_line (group);
- X! index_point = top_base - 1;
- X show_group_page (group);
- X }
- X break;
- X--- 580,592 ----
- X break;
- X }
- X #endif
- X! if (post_base (group, &posted)) {
- X! if (posted) {
- X! update_newsrc (group, my_group[cur_groupnum], FALSE);
- X! index_group (group, group_path);
- X! read_newsrc_line (group);
- X! index_point = top_base - 1;
- X! }
- X show_group_page (group);
- X }
- X break;
- XFiles ../106/hashstr.c and ./hashstr.c are identical
- Xdiff -rcs ../106/help.c ./help.c
- X*** ../106/help.c Fri Oct 18 09:41:33 1991
- X--- ./help.c Wed Nov 6 14:23:46 1991
- X***************
- X*** 3,9 ****
- X * Module : help.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 18-09-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : help.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 06-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 33,38 ****
- X--- 33,39 ----
- X txt_help_I,
- X txt_help_m,
- X txt_help_M,
- X+ txt_help_n,
- X txt_help_q,
- X txt_help_s,
- X txt_help_S,
- X***************
- X*** 43,48 ****
- X--- 44,52 ----
- X txt_help_g_dollar,
- X txt_help_g_z,
- X txt_help_g_search,
- X+ #ifndef NO_SHELL_ESCAPE
- X+ txt_help_shell,
- X+ #endif
- X (char *) 0
- X };
- X
- X***************
- X*** 77,82 ****
- X--- 81,89 ----
- X txt_help_W,
- X txt_help_p_z,
- X txt_help_i_search,
- X+ #ifndef NO_SHELL_ESCAPE
- X+ txt_help_shell,
- X+ #endif
- X txt_help_dash,
- X txt_help_pipe,
- X (char *) 0
- X***************
- X*** 118,123 ****
- X--- 125,133 ----
- X txt_help_W,
- X txt_help_p_z,
- X txt_help_p_search,
- X+ #ifndef NO_SHELL_ESCAPE
- X+ txt_help_shell,
- X+ #endif
- X txt_help_dash,
- X txt_help_pipe,
- X txt_help_thread,
- XFiles ../106/kill.c and ./kill.c are identical
- Xdiff -rcs ../106/lang.c ./lang.c
- X*** ../106/lang.c Thu Oct 31 09:10:16 1991
- X--- ./lang.c Wed Nov 6 14:24:21 1991
- X***************
- X*** 3,9 ****
- X * Module : lang.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 31-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : lang.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 06-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 84,90 ****
- X char txt_help_ctrl_l[] = "^L Redraw page\r\n";
- X char txt_help_ctrl_d[] = "^D^U Down (^U=up) a page\r\n";
- X char txt_help_i_cr[] = "<CR> Read current article\r\n";
- X! char txt_help_i_tab[] = "<TAB> View next unread article or group\r\n";
- X char txt_help_m[] = "m Move current group within group selection list\r\n";
- X char txt_help_M[] = "M Menu of configurable options\r\n";
- X char txt_help_a[] = "aA Author forward (A=backward) search\r\n";
- X--- 84,90 ----
- X char txt_help_ctrl_l[] = "^L Redraw page\r\n";
- X char txt_help_ctrl_d[] = "^D^U Down (^U=up) a page\r\n";
- X char txt_help_i_cr[] = "<CR> Read current article\r\n";
- X! char txt_help_i_tab[] = "<TAB> Goto next unread article or group\r\n";
- X char txt_help_m[] = "m Move current group within group selection list\r\n";
- X char txt_help_M[] = "M Menu of configurable options\r\n";
- X char txt_help_a[] = "aA Author forward (A=backward) search\r\n";
- X***************
- X*** 106,111 ****
- X--- 106,114 ----
- X char txt_help_w[] = "w Post an article to current group\r\n";
- X char txt_help_i_search[] = "/? Subject forward (?=backward) search\r\n";
- X char txt_help_thread[] = "<> Goto first (>=last) article in current thread";
- X+ #ifndef NO_SHELL_ESCAPE
- X+ char txt_help_shell[] = "! Shell escape\r\n";
- X+ #endif
- X char txt_help_dash[] = "- Show last message\r\n";
- X #ifdef DONT_USE_REGEX
- X char txt_save_pattern[] = "Enter save pattern [%s]> ";
- X***************
- X*** 150,156 ****
- X
- X char txt_not_in_active_file[] = "Group %s not found in active file";
- X char txt_screen_init_failed[] = "%s: Screen initialization failed";
- X! char txt_bad_active_file[] = "Active file corrupt";
- X
- X /*
- X * misc.c
- X--- 153,159 ----
- X
- X char txt_not_in_active_file[] = "Group %s not found in active file";
- X char txt_screen_init_failed[] = "%s: Screen initialization failed";
- X! char txt_bad_active_file[] = "Active file corrupt - %s";
- X
- X /*
- X * misc.c
- X***************
- X*** 200,206 ****
- X char txt_help_p_0[] = "0 Read the base article in current thread\r\n";
- X char txt_help_p_4[] = "4 Read response 4 in current thread\r\n";
- X char txt_help_p_cr[] = "<CR> Goto to next thread\r\n";
- X! char txt_help_p_tab[] = "<TAB> Advance to next page or unread article\r\n";
- X char txt_help_b[] = "b<SPACE> Back (<SPACE>=forward) a page\r\n";
- X char txt_help_bug[] = "B Mail bug/gripe/comment to %s\r\n";
- X char txt_help_p_f[] = "fF Post (F=copy text) a followup\r\n";
- X--- 203,209 ----
- X char txt_help_p_0[] = "0 Read the base article in current thread\r\n";
- X char txt_help_p_4[] = "4 Read response 4 in current thread\r\n";
- X char txt_help_p_cr[] = "<CR> Goto to next thread\r\n";
- X! char txt_help_p_tab[] = "<TAB> Goto next page or unread article\r\n";
- X char txt_help_b[] = "b<SPACE> Back (<SPACE>=forward) a page\r\n";
- X char txt_help_bug[] = "B Mail bug/gripe/comment to %s\r\n";
- X char txt_help_p_f[] = "fF Post (F=copy text) a followup\r\n";
- X***************
- X*** 371,378 ****
- X char txt_help_g_ctrl_r[] = "^R Reset .newsrc\r\n";
- X char txt_help_g_ctrl_k[] = "^KZ Delete (Z=undelete) group from .newsrc\r\n";
- X char txt_help_g_cr[] = "<CR> Read current group\r\n";
- X- char txt_help_g_tab[] = "<TAB> View next unread group\r\n";
- X char txt_help_g_c[] = "c Mark group as all read\r\n";
- X char txt_help_W[] = "W List articles posted by user\r\n";
- X char txt_help_g_z[] = "z Mark current group as unread\r\n";
- X char txt_help_g_y[] = "y Yank in groups that are not in the .newsrc\r\n";
- X--- 374,382 ----
- X char txt_help_g_ctrl_r[] = "^R Reset .newsrc\r\n";
- X char txt_help_g_ctrl_k[] = "^KZ Delete (Z=undelete) group from .newsrc\r\n";
- X char txt_help_g_cr[] = "<CR> Read current group\r\n";
- X char txt_help_g_c[] = "c Mark group as all read\r\n";
- X+ char txt_help_g_tab[] = "n<TAB> Goto next group with unread news and enter it\r\n";
- X+ char txt_help_n[] = "N Goto next group with unread news\r\n";
- X char txt_help_W[] = "W List articles posted by user\r\n";
- X char txt_help_g_z[] = "z Mark current group as unread\r\n";
- X char txt_help_g_y[] = "y Yank in groups that are not in the .newsrc\r\n";
- Xdiff -rcs ../106/lang.h ./lang.h
- X*** ../106/lang.h Tue Oct 29 19:54:38 1991
- X--- ./lang.h Wed Nov 6 14:24:56 1991
- X***************
- X*** 3,9 ****
- X * Module : lang.h
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 29-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X--- 3,9 ----
- X * Module : lang.h
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 05-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X***************
- X*** 103,108 ****
- X--- 103,111 ----
- X extern char txt_help_w[];
- X extern char txt_help_i_search[];
- X extern char txt_help_thread[];
- X+ #ifndef NO_SHELL_ESCAPE
- X+ extern char txt_help_shell[];
- X+ #endif
- X extern char txt_help_dash[];
- X extern char txt_save_pattern[];
- X extern char txt_saved_pattern_to[];
- X***************
- X*** 361,366 ****
- X--- 364,370 ----
- X extern char txt_help_g_cr[];
- X extern char txt_help_g_tab[];
- X extern char txt_help_g_c[];
- X+ extern char txt_help_n[];
- X extern char txt_help_W[];
- X extern char txt_help_g_y[];
- X extern char txt_help_g_z[];
- Xdiff -rcs ../106/main.c ./main.c
- X*** ../106/main.c Mon Nov 4 10:01:13 1991
- X--- ./main.c Wed Nov 6 14:18:22 1991
- X***************
- X*** 3,9 ****
- X * Module : main.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 04-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : main.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 06-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 15,21 ****
- X
- X #include "tin.h"
- X
- X- char *version = "v1.0";
- X char cvers[LEN];
- X char nntp_server[LEN];
- X
- X--- 15,20 ----
- X***************
- X*** 193,199 ****
- X }
- X }
- X
- X! sprintf (page_header, "%s %s PL%d%s", progname, version, PATCHLEVEL, is_remote ());
- X sprintf (cvers, "%s (c) Copyright 1991 Iain Lea.", page_header);
- X
- X if (! update) {
- X--- 192,198 ----
- X }
- X }
- X
- X! sprintf (page_header, "%s %s PL%d%s", progname, VERSION, PATCHLEVEL, is_remote ());
- X sprintf (cvers, "%s (c) Copyright 1991 Iain Lea.", page_header);
- X
- X if (! update) {
- X***************
- X*** 313,319 ****
- X void usage (progname)
- X char *progname;
- X {
- X! sprintf (msg, "%s %s PL%d - threaded usenet newsreader. Copyright 1991 Iain Lea.\n", progname, version, PATCHLEVEL);
- X error_message (msg, (char *) 0);
- X error_message ("Usage: %s [options] [newsgroups]", progname);
- X error_message (" -c mark all news as read in subscribed newsgroups (batch mode)", (char *) 0);
- X--- 312,318 ----
- X void usage (progname)
- X char *progname;
- X {
- X! sprintf (msg, "%s %s PL%d - threaded usenet newsreader. Copyright 1991 Iain Lea.\n", progname, VERSION, PATCHLEVEL);
- X error_message (msg, (char *) 0);
- X error_message ("Usage: %s [options] [newsgroups]", progname);
- X error_message (" -c mark all news as read in subscribed newsgroups (batch mode)", (char *) 0);
- XFiles ../106/memory.c and ./memory.c are identical
- Xdiff -rcs ../106/misc.c ./misc.c
- X*** ../106/misc.c Mon Nov 4 13:24:43 1991
- X--- ./misc.c Tue Nov 5 14:22:43 1991
- X***************
- X*** 596,603 ****
- X int read_active ()
- X {
- X FILE *fp;
- X! char *p, *q;
- X char buf[LEN];
- X int created, i;
- X long h;
- X
- X--- 596,604 ----
- X int read_active ()
- X {
- X FILE *fp;
- X! char *p, *q, *r;
- X char buf[LEN];
- X+ char moderated;
- X int created, i;
- X long h;
- X
- X***************
- X*** 619,625 ****
- X for (p = buf; *p && *p != ' '; p++)
- X continue;
- X if (*p != ' ') {
- X! error_message (txt_bad_active_file, "");
- X continue;
- X }
- X *p++ = '\0';
- X--- 620,626 ----
- X for (p = buf; *p && *p != ' '; p++)
- X continue;
- X if (*p != ' ') {
- X! error_message (txt_bad_active_file, buf);
- X continue;
- X }
- X *p++ = '\0';
- X***************
- X*** 645,657 ****
- X for (q = p; *q && *q != ' '; q++)
- X continue;
- X if (*q != ' ') {
- X! error_message (txt_bad_active_file, "");
- X continue;
- X }
- X
- X active[num_active].name = str_dup (buf);
- X active[num_active].max = (long) atol (p);
- X active[num_active].min = (long) atol (q);
- X active[num_active].next = -1; /* hash chaining */
- X active[num_active].flag = NOTGOT; /* not in my_group[] yet */
- X active[num_active].read = FALSE; /* read/unread */
- X--- 646,667 ----
- X for (q = p; *q && *q != ' '; q++)
- X continue;
- X if (*q != ' ') {
- X! error_message (txt_bad_active_file, buf);
- X continue;
- X }
- X+ *q++ = '\0';
- X
- X+ for (r = q; *r && *r != '\n'; r++) {
- X+ if (*r == 'y' || *r == 'm') {
- X+ moderated = *r;
- X+ break;
- X+ }
- X+ }
- X+
- X active[num_active].name = str_dup (buf);
- X active[num_active].max = (long) atol (p);
- X active[num_active].min = (long) atol (q);
- X+ active[num_active].moderated = moderated;
- X active[num_active].next = -1; /* hash chaining */
- X active[num_active].flag = NOTGOT; /* not in my_group[] yet */
- X active[num_active].read = FALSE; /* read/unread */
- XFiles ../106/newsrc.c and ./newsrc.c are identical
- XFiles ../106/nntp.h and ./nntp.h are identical
- XFiles ../106/open.c and ./open.c are identical
- Xdiff -rcs ../106/page.c ./page.c
- X*** ../106/page.c Mon Nov 4 17:56:18 1991
- X--- ./page.c Wed Nov 6 14:22:36 1991
- X***************
- X*** 3,9 ****
- X * Module : page.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 31-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : page.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 06-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 54,59 ****
- X--- 54,60 ----
- X int kill_state = NO_KILLING;
- X int old_sort_art_type = sort_art_type;
- X int old_top;
- X+ int posted;
- X long old_artnum;
- X long art;
- X
- X***************
- X*** 134,143 ****
- X--- 135,146 ----
- X }
- X break;
- X
- X+ #ifndef NO_SHELL_ESCAPE
- X case '!':
- X shell_escape ();
- X redraw_page (respnum, group);
- X break;
- X+ #endif
- X
- X case '$': /* goto end of article */
- X case 'G': /* 'less' compatible */
- X***************
- X*** 583,592 ****
- X break;
- X }
- X #endif
- X! if (post_base (group)) {
- X! update_newsrc (group, my_group[cur_groupnum], FALSE);
- X! index_group (group, group_path);
- X! read_newsrc_line (group);
- X redraw_page (respnum, group);
- X }
- X break;
- X--- 586,597 ----
- X break;
- X }
- X #endif
- X! if (post_base (group, &posted)) {
- X! if (posted) {
- X! update_newsrc (group, my_group[cur_groupnum], FALSE);
- X! index_group (group, group_path);
- X! read_newsrc_line (group);
- X! }
- X redraw_page (respnum, group);
- X }
- X break;
- X***************
- X*** 593,605 ****
- X
- X case 'W': /* display messages posted by user */
- X if (user_posted_messages ()) {
- X! redraw_page(respnum, group);
- X }
- X break;
- X
- X case 'z': /* mark article as unread (to return) */
- X arts[respnum].unread = ART_WILL_RETURN;
- X! info_message(txt_art_marked_as_unread);
- X break;
- X
- X default:
- X--- 598,610 ----
- X
- X case 'W': /* display messages posted by user */
- X if (user_posted_messages ()) {
- X! redraw_page (respnum, group);
- X }
- X break;
- X
- X case 'z': /* mark article as unread (to return) */
- X arts[respnum].unread = ART_WILL_RETURN;
- X! info_message (txt_art_marked_as_unread);
- X break;
- X
- X default:
- XOnly in .: patch07.shar.01
- XOnly in .: patch07.shar.02
- XOnly in ../106: patchlevel.h
- Xdiff -rcs ../106/post.c ./post.c
- X*** ../106/post.c Thu Oct 31 18:21:59 1991
- X--- ./post.c Thu Nov 7 07:58:16 1991
- X***************
- X*** 3,9 ****
- X * Module : post.c
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 31-10-91
- X * Release : 1.0
- X * Notes : mailing/posting/replying/followup & cancel article routines
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : post.c
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 07-11-91
- X * Release : 1.0
- X * Notes : mailing/posting/replying/followup & cancel article routines
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 20,28 ****
- X extern char note_h_messageid[LEN]; /* Message-ID: */
- X extern char note_h_newsgroups[LEN]; /* Newsgroups: */
- X extern char note_h_subj[LEN]; /* Subject: */
- X-
- X extern FILE *note_fp; /* the body of the current article */
- X!
- X extern long note_mark[MAX_PAGES]; /* ftells on beginnings of pages */
- X
- X char default_post_subject[LEN]; /* offers user default choice */
- X--- 20,27 ----
- X extern char note_h_messageid[LEN]; /* Message-ID: */
- X extern char note_h_newsgroups[LEN]; /* Newsgroups: */
- X extern char note_h_subj[LEN]; /* Subject: */
- X extern FILE *note_fp; /* the body of the current article */
- X! extern int cur_groupnum;
- X extern long note_mark[MAX_PAGES]; /* ftells on beginnings of pages */
- X
- X char default_post_subject[LEN]; /* offers user default choice */
- X***************
- X*** 137,144 ****
- X * Post an original article (not a followup)
- X */
- X
- X! int post_base (group)
- X char *group;
- X {
- X FILE *fp;
- X char ch;
- X--- 136,144 ----
- X * Post an original article (not a followup)
- X */
- X
- X! int post_base (group, posted)
- X char *group;
- X+ int *posted;
- X {
- X FILE *fp;
- X char ch;
- X***************
- X*** 147,154 ****
- X--- 147,163 ----
- X char buf[LEN];
- X int redraw_screen = FALSE;
- X
- X+ *posted = FALSE;
- X start_line_offset = 4;
- X
- X+ if (active[my_group[cur_groupnum]].moderated == 'm') {
- X+ sprintf (msg, "Group %s is moderated. Continue? (y/n): ", group);
- X+ if (! prompt_yn (LINES, msg, 'y')) {
- X+ clear_message ();
- X+ return (redraw_screen);
- X+ }
- X+ }
- X+
- X sprintf (msg, txt_post_subject, default_post_subject);
- X
- X if (! parse_string (msg, subj)) {
- X***************
- X*** 215,220 ****
- X--- 224,230 ----
- X if (submit_file (article)) {
- X unlink (article);
- X info_message (txt_art_posted);
- X+ *posted = TRUE;
- X goto post_base_done;
- X } else {
- X rename_file (article, dead_article);
- X***************
- X*** 237,242 ****
- X--- 247,253 ----
- X
- X post_base_done:
- X set_tin_uid_gid ();
- X+ find_mail_header (HEADER_SUBJECT, article, subj);
- X update_art_posted_file (group, subj);
- X return (redraw_screen);
- X }
- X***************
- X*** 372,381 ****
- X post_response_done:
- X set_tin_uid_gid ();
- X
- X! if (*note_h_followup && strcmp(note_h_followup, "poster") != 0)
- X update_art_posted_file (note_h_followup, note_h_subj);
- X! else
- X update_art_posted_file (note_h_newsgroups, note_h_subj);
- X
- X return (redraw_screen);
- X }
- X--- 383,395 ----
- X post_response_done:
- X set_tin_uid_gid ();
- X
- X! if (*note_h_followup && strcmp(note_h_followup, "poster") != 0) {
- X! find_mail_header (HEADER_SUBJECT, article, note_h_subj);
- X update_art_posted_file (note_h_followup, note_h_subj);
- X! } else {
- X! find_mail_header (HEADER_SUBJECT, article, note_h_subj);
- X update_art_posted_file (note_h_newsgroups, note_h_subj);
- X+ }
- X
- X return (redraw_screen);
- X }
- X***************
- X*** 457,463 ****
- X * Open letter and get the To: line in case they changed it with
- X * the editor
- X */
- X! find_new_to (nam, mail_to);
- X sprintf (msg, txt_mailing_to, mail_to);
- X wait_message (msg);
- X sprintf (buf, "%s \"%s\" < %s", mailer, mail_to, nam);
- X--- 471,477 ----
- X * Open letter and get the To: line in case they changed it with
- X * the editor
- X */
- X! find_mail_header (HEADER_TO, nam, mail_to);
- X sprintf (msg, txt_mailing_to, mail_to);
- X wait_message (msg);
- X sprintf (buf, "%s \"%s\" < %s", mailer, mail_to, nam);
- X***************
- X*** 505,511 ****
- X
- X fprintf (fp, "To: %s\n", bug_addr);
- X fprintf (fp, "Subject: BUG REPORT %s %s PL%d %s\n", progname,
- X! version, PATCHLEVEL, (compiled_with_nntp ? "(NNTP)" : ""));
- X if (*my_org) {
- X fprintf (fp, "Organization: %s\n", my_org);
- X start_line_offset++;
- X--- 519,525 ----
- X
- X fprintf (fp, "To: %s\n", bug_addr);
- X fprintf (fp, "Subject: BUG REPORT %s %s PL%d %s\n", progname,
- X! VERSION, PATCHLEVEL, (compiled_with_nntp ? "(NNTP)" : ""));
- X if (*my_org) {
- X fprintf (fp, "Organization: %s\n", my_org);
- X start_line_offset++;
- X***************
- X*** 549,555 ****
- X
- X case 's':
- X strcpy (mail_to, bug_addr);
- X! find_new_to (nam, mail_to);
- X sprintf (msg, txt_mailing_to, mail_to);
- X wait_message (msg);
- X sprintf (buf, "%s \"%s\" < %s", mailer, mail_to, nam);
- X--- 563,569 ----
- X
- X case 's':
- X strcpy (mail_to, bug_addr);
- X! find_mail_header (HEADER_TO, nam, mail_to);
- X sprintf (msg, txt_mailing_to, mail_to);
- X wait_message (msg);
- X sprintf (buf, "%s \"%s\" < %s", mailer, mail_to, nam);
- X***************
- X*** 644,650 ****
- X
- X case 's':
- X strcpy (mail_to, arts[respnum].from);
- X! find_new_to (nam, mail_to);
- X sprintf (msg, txt_mailing_to, mail_to);
- X wait_message (msg);
- X sprintf (buf, "%s \"%s\" < %s", mailer, mail_to, nam);
- X--- 658,664 ----
- X
- X case 's':
- X strcpy (mail_to, arts[respnum].from);
- X! find_mail_header (HEADER_TO, nam, mail_to);
- X sprintf (msg, txt_mailing_to, mail_to);
- X wait_message (msg);
- X sprintf (buf, "%s \"%s\" < %s", mailer, mail_to, nam);
- X***************
- X*** 674,697 ****
- X }
- X
- X /*
- X! * Read a file grabbing the address given for To: and
- X! * sticking it in mail_to
- X */
- X
- X! void find_new_to (nam, mail_to)
- X! char *nam;
- X! char *mail_to;
- X {
- X FILE *fp;
- X char buf[LEN];
- X char buf2[LEN];
- X! char new_mail_to[LEN];
- X char *p;
- X
- X! *new_mail_to = '\0';
- X
- X! if ((fp = fopen(nam, "r")) == NULL) {
- X! fprintf(stderr, txt_cannot_open, nam);
- X return;
- X }
- X
- X--- 688,711 ----
- X }
- X
- X /*
- X! * Read a file grabbing the value of the specified mail header line
- X */
- X
- X! void find_mail_header (header, file, value)
- X! int header;
- X! char *file;
- X! char *value;
- X {
- X FILE *fp;
- X char buf[LEN];
- X char buf2[LEN];
- X! char new_value[LEN];
- X char *p;
- X
- X! *new_value = '\0';
- X
- X! if ((fp = fopen (file, "r")) == NULL) {
- X! error_message (txt_cannot_open, file);
- X return;
- X }
- X
- X***************
- X*** 703,724 ****
- X if (*buf == '\0')
- X break;
- X
- X! if (strncmp(buf, "To: ", 4) == 0) {
- X! strncpy(buf2, &buf[4], LEN);
- X! buf2[LEN-1] = '\0';
- X! yank_to_addr(buf2, new_mail_to);
- X! } else if (strncmp(buf, "Cc: ", 4) == 0) {
- X! strncpy(buf2, &buf[4], LEN);
- X! buf2[LEN-1] = '\0';
- X! yank_to_addr(buf2, new_mail_to);
- X }
- X }
- X
- X fclose (fp);
- X! if (new_mail_to[0] == ' ')
- X! my_strncpy (mail_to, &new_mail_to[1], LEN);
- X! else
- X! my_strncpy (mail_to, new_mail_to, LEN);
- X }
- X
- X
- X--- 717,750 ----
- X if (*buf == '\0')
- X break;
- X
- X! switch (header) {
- X! case HEADER_TO:
- X! if (strncmp (buf, "To: ", 4) == 0) {
- X! my_strncpy (buf2, &buf[4], LEN);
- X! buf2[LEN-1] = '\0';
- X! yank_to_addr (buf2, new_value);
- X! } else if (strncmp (buf, "Cc: ", 4) == 0) {
- X! my_strncpy (buf2, &buf[4], LEN);
- X! buf2[LEN-1] = '\0';
- X! yank_to_addr (buf2, new_value);
- X! }
- X! break;
- X!
- X! case HEADER_SUBJECT:
- X! if (strncmp (buf, "Subject: ", 9) == 0) {
- X! my_strncpy (buf2, &buf[9], LEN);
- X! buf2[LEN-1] = '\0';
- X! }
- X }
- X }
- X
- X fclose (fp);
- X!
- X! if (new_value[0] == ' ') {
- X! my_strncpy (value, &new_value[1], LEN);
- X! } else {
- X! my_strncpy (value, new_value, LEN);
- X! }
- X }
- X
- X
- XFiles ../106/prompt.c and ./prompt.c are identical
- Xdiff -rcs ../106/proto.h ./proto.h
- X*** ../106/proto.h Thu Oct 31 18:36:04 1991
- X--- ./proto.h Thu Nov 7 08:01:22 1991
- X***************
- X*** 169,180 ****
- X /* post.c */
- X int user_posted_messages(void);
- X void update_art_posted_file(char *group, char *subj);
- X! int post_base(char *group);
- X int post_response(char *group, int respnum);
- X int mail_to_someone(char *address);
- X int mail_bug_report(void);
- X int mail_to_author(int respnum, int copy_text);
- X! void find_new_to(char *nam, char *mail_to);
- X int cancel_article(void);
- X int submit_file(char *name);
- X /* prompt.c */
- X--- 169,180 ----
- X /* post.c */
- X int user_posted_messages(void);
- X void update_art_posted_file(char *group, char *subj);
- X! int post_base(char *group, int posted);
- X int post_response(char *group, int respnum);
- X int mail_to_someone(char *address);
- X int mail_bug_report(void);
- X int mail_to_author(int respnum, int copy_text);
- X! void find_mail_header(int header, char *file, char *value);
- X int cancel_article(void);
- X int submit_file(char *name);
- X /* prompt.c */
- X***************
- X*** 426,437 ****
- X /* post.c */
- X int user_posted_messages(/*void*/);
- X void update_art_posted_file(/*char *group, char *subj*/);
- X! int post_base(/*char *group*/);
- X int post_response(/*char *group, int respnum*/);
- X int mail_to_someone(/*char *address*/);
- X int mail_bug_report(/*void*/);
- X int mail_to_author(/*int respnum, int copy_text*/);
- X! void find_new_to(/*char *nam, char *mail_to*/);
- X int cancel_article(/*void*/);
- X int submit_file(/*char *name*/);
- X /* prompt.c */
- X--- 426,437 ----
- X /* post.c */
- X int user_posted_messages(/*void*/);
- X void update_art_posted_file(/*char *group, char *subj*/);
- X! int post_base(/*char *group, int posted*/);
- X int post_response(/*char *group, int respnum*/);
- X int mail_to_someone(/*char *address*/);
- X int mail_bug_report(/*void*/);
- X int mail_to_author(/*int respnum, int copy_text*/);
- X! void find_mail_header(/*int header, char *file, char *value*/);
- X int cancel_article(/*void*/);
- X int submit_file(/*char *name*/);
- X /* prompt.c */
- XFiles ../106/rcfile.c and ./rcfile.c are identical
- XFiles ../106/save.c and ./save.c are identical
- XFiles ../106/screen.c and ./screen.c are identical
- XFiles ../106/search.c and ./search.c are identical
- Xdiff -rcs ../106/select.c ./select.c
- X*** ../106/select.c Fri Oct 25 20:29:17 1991
- X--- ./select.c Wed Nov 6 14:21:21 1991
- X***************
- X*** 3,9 ****
- X * Module : select.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 25-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : select.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 05-11-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 33,38 ****
- X--- 33,39 ----
- X char ch;
- X int i, n;
- X int patlen;
- X+ int posted;
- X int scroll_lines;
- X int subscribe_num;
- X
- X***************
- X*** 53,62 ****
- X--- 54,65 ----
- X if (ch > '0' && ch <= '9') {
- X prompt_group_num (ch);
- X } else switch (ch) {
- X+ #ifndef NO_SHELL_ESCAPE
- X case '!':
- X shell_escape ();
- X group_selection_page ();
- X break;
- X+ #endif
- X
- X case '$': /* show last page of groups */
- X end_of_list:
- X***************
- X*** 90,95 ****
- X--- 93,99 ----
- X break;
- X
- X case '\t': /* enter next group containing unread articles */
- X+ case 'n':
- X next_unread_group (TRUE);
- X break;
- X
- X***************
- X*** 337,342 ****
- X--- 341,350 ----
- X group_selection_page ();
- X break;
- X
- X+ case 'N': /* goto next unread group */
- X+ next_unread_group (FALSE);
- X+ break;
- X+
- X case 'q': /* quit */
- X tin_done (0);
- X break;
- X***************
- X*** 456,462 ****
- X break;
- X }
- X #endif
- X! if (post_base (active[my_group[cur_groupnum]].name)) {
- X group_selection_page ();
- X }
- X break;
- X--- 464,470 ----
- X break;
- X }
- X #endif
- X! if (post_base (active[my_group[cur_groupnum]].name, &posted)) {
- X group_selection_page ();
- X }
- X break;
- XFiles ../106/signal.c and ./signal.c are identical
- Xdiff -rcs ../106/tin.1 ./tin.1
- X*** ../106/tin.1 Mon Nov 4 19:12:57 1991
- X--- ./tin.1 Thu Nov 7 19:18:25 1991
- X***************
- X*** 1,4 ****
- X! .TH TIN 1 "Version 1.0 PL6"
- X .SH NAME
- X tin \- Visual threaded Usenet news reader
- X .SH SYNOPSIS
- X--- 1,4 ----
- X! .TH TIN 1 "Version 1.0 PL7"
- X .SH NAME
- X tin \- Visual threaded Usenet news reader
- X .SH SYNOPSIS
- X***************
- X*** 904,911 ****
- SHAR_EOF
- echo "End of tin part 1"
- echo "File tin.patch07 is continued in part 2"
- echo "2" > shar3_seq_.tmp
- exit 0
-
- --
- Dr. med. dipl.-math Dieter Becker Tel.: (0 / +49) 6841 - 16 3046
- Medizinische Universitaets- und Poliklinik Fax.: (0 / +49) 6841 - 16 3369
- Innere Medizin III
- D - 6650 Homburg / Saar Email: becker@med-in.uni-sb.de
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-