home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-10-19 | 49.1 KB | 1,724 lines |
- Newsgroups: comp.sources.misc
- From: iain@norisc.siemens.de (Iain J. Lea)
- Subject: v23i078: tin - threaded full screen newsreader, Patch03a/4
- Message-ID: <csm-v23i078=tin.221835@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 3179fb740cf6f2393878dc1f4d6d448d
- Date: Sun, 20 Oct 1991 03:19:46 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: iain@norisc.siemens.de (Iain J. Lea)
- Posting-number: Volume 23, Issue 78
- Archive-name: tin/patch03a
- Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
- Patch-To: tin: Volume 23, Issue 15-23
-
- This patch updates tin 1.0 PL2 to PL3 (patchlevel 3).
-
- To apply unpack all 4 parts of this patch and then enter:
-
- patch < tin.patch03
-
- Major changes over tin 1.0 PL2 are the following:
-
- o added -z and -Z options (see man page for more info).
- o added 'g' and `G` commands to pager for 'less' users.
- o added option to switch threading off on a group basis.
- o added nroff formatted man page for SCO Unix users without troff.
- o fixed auto-save articles routine that I broke in PL2.
- o fixed -U option that was causing char echo if a ^Z was done.
- o fixed a memory leak in 'W' command.
-
- For more bugs fixes, other changes & additions read the CHANGES & TODO files.
-
- --cut here--
- #!/bin/sh
- # This is tin1.0, a shell archive (shar 3.24)
- # made 09/30/1991 18:09 UTC by iain@estevax.uucp
- # Source directory /piez/iain/tin
- #
- # 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
- # ------ ---------- ------------------------------------------
- # 141957 -rw------- tin.patch03
- # 36817 -rw------- tin.nrf
- #
- 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.patch03 ==============
- echo "x - extracting tin.patch03 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > tin.patch03 &&
- Xdiff -rcs 102/CHANGES 103/CHANGES
- X*** 102/CHANGES Mon Sep 23 17:55:37 1991
- X--- 103/CHANGES Mon Sep 30 14:52:28 1991
- X***************
- X*** 1,3 ****
- X--- 1,94 ----
- X+ CHANGES tin v1.0 PL2 -> tin 1.0 PL3
- X+ -----------------------------------
- X+
- X+ 1) iain@estevax.uucp (Iain Lea)
- X+ ADD. help.c - added 'g' and `G` commands to show_info_page().
- X+
- X+ 2) iain@estevax.uucp (Iain Lea)
- X+ ADD. art.c - added #ifdef SLOW_SCREEN_UPDATE to indexing routine.
- X+
- X+ 3) otto@norisc.uucp (Otto Niesser)
- X+ BUG. Beim Befehl 'y' wird bei nicht mehr vorhandenen Gruppen die
- X+ Meldung 'Group not in active file' ausgegeben. Die einzelnen
- X+ Meldungen sind zwar durch <lf>, nicht aber durch <cr>
- X+ voneinander getrennt, d.h. stehen durcheinander auf dem screen.
- X+ FIX. newsrc.c - added '\r' to string that is passed to wait_message.
- X+
- X+ 4) iain@estevax.uucp (Iain Lea)
- X+ BUG. While modifying feed.c I broke the auto-save articles routine.
- X+ FIX. feed.c - fixed it (things happen when one meddles!)
- X+
- X+ 5) hugh@slee01.sr1.ford.com (Hugh Fader)
- X+ BUG. It world help in installation to make the location of the file
- X+ containing the nntp server name configurable with a define.
- X+ FIX. Makefile - added define NNTP_SERVER_FILE.
- X+
- X+ 6) spear@druco.att.com (Steve Spearman)
- X+ BUG. SysV has -DUSE_NNTP set as default in Makefile when NNTP is
- X+ only an option on most systems.
- X+ FIX. Makefile - removed -DUSE_NNTP from sysv & sysvr4 make options.
- X+
- X+ 7) iain@estevax.uucp (Iain Lea)
- X+ ADD. group.c - added define UNREAD_ART_CHAR (default is '+'). I use 'U'.
- X+
- X+ 8) klamer@mi.el.utwente.nl (Klamer Schutte)
- X+ BUG. When suspending tin while in the kill article menu, tin redraws
- X+ the display from the group index menu, not from the kill article menu.
- X+ FIX. kill.c - added signal handler to ignore ^Z while in kill_art_menu().
- X+
- X+ 9) arj@cam-orl.co.uk (Andy Jackson)
- X+ ADD. add an option to switch off article threading so behaviour is
- X+ like vanilla rn.
- X+ FIX. art.c rcfile.c - added var thread_arts to control threading.
- X+
- X+ 10) anton@analsyn (Anton Aylward)
- X+ BUG. main.c - you omit a ',""' in one of the help messages.
- X+ FIX. main.c - added a ',""'.
- X+
- X+ 11) spear@druco.att.com (Steve Spearman)
- X+ ADD. vn has the ability to quickly mark all groups which were
- X+ examined as read on exiting.
- X+ FIX. misc.c - asks user if entered groups should all be marked read.
- X+
- X+ 12) arj@cam-orl.co.uk (Andy Jackson)
- X+ BUG. When started with -U update option and tin is suspended with
- X+ ^Z and then restarted, the terminal I/O state gets changed and
- X+ characters are echoed to the screen and missed by tin.
- X+ FIX. main.c - set update=FALSE in parent process after child is
- X+ forked to update indexes in the background.
- X+
- X+ 13) unido!asd.tds.philips.se!kko (Karl-Koenig Koenigsson)
- X+ BUG. If the last line of an article is the last displayed line
- X+ --More--(100%) [<num>/<num>] will be displayed and if SPACE
- X+ is pressed an empty page will be displayed.
- X+ FIX. page.c - compare note_size with note_mark[note_page] and if
- X+ they are the same set note_end to TRUE.
- X+
- X+ 14) iain@estevax.uucp (Iain Lea)
- X+ BUG. 'W' command causes a memory leak because it dynamically allocates
- X+ memory but never frees it.
- X+ FIX. post.c - added free() call to free allocated memory.
- X+
- X+ 15) tho@slxger.specialix.de (Torsten Homeyer)
- X+ BUG. SCO Unix base systems cannot format man page because it is sold
- X+ without troff/nroff because all man pages are already in catman
- X+ format.
- X+ FIX. tin.nrf - nroff formatted version of tin.1 man page (> 35K).
- X+
- X+ 16) iain@estevax.uucp (Iain Lea)
- X+ ADD. misc.c - added default command to shell_escape () routine.
- X+
- X+ 17) cc_paul@rcvie.co.at (Wolf N. Paul)
- X+ ADD. Could tin have a command line option which will cause it to
- X+ simply terminate with 0 exit status if there is no new news.
- X+ FIX. art.c main.c - added -Z option to return exit 0 no news 2 news.
- X+
- X+ 18) hakanl@lulea.telesoft.se (Hakan Lennestal)
- X+ BUG. Rn makes .oldnewsrc as a hard link to .newsrc. Tin copies
- X+ .newsrc to .oldnewsrc, the file gets copied to itself, and
- X+ the result is an empty file.
- X+ FIX. newsrc.c - added unlink() .oldnewsrc before backing up copy.
- X+
- X CHANGES tin v1.0 PL1 -> tin 1.0 PL2
- X -----------------------------------
- X
- XOnly in 103: LINT
- Xdiff -rcs 102/MANIFEST 103/MANIFEST
- X*** 102/MANIFEST Tue Sep 24 14:18:15 1991
- X--- 103/MANIFEST Mon Sep 30 07:58:33 1991
- X***************
- X*** 1,39 ****
- X! MANIFEST for tin newsreader (Tue Sep 24 14:18:13 MET DST 1991)
- X --------------------------------------------------------------
- X! 4762 README
- X! 14067 CHANGES
- X! 1810 TODO
- X 530 UPDATE_INDEX
- X! 8986 Makefile
- X! 26331 tin.1
- X 2247 wildmat.3
- X! 9348 tin.h
- X! 9707 lang.h
- X! 3688 nntp.h
- X! 17147 proto.h
- X 21 patchlevel.h
- X! 26620 art.c
- X 6043 curses.c
- X! 2575 debug.c
- X! 11087 feed.c
- X! 19165 group.c
- X! 2811 hashstr.c
- X! 5124 help.c
- X! 9529 kill.c
- X! 17911 lang.c
- X! 7015 main.c
- X 6239 memory.c
- X! 19195 misc.c
- X! 19674 newsrc.c
- X! 6736 open.c
- X! 24185 page.c
- X! 17061 post.c
- X 3098 prompt.c
- X! 18379 rcfile.c
- X! 19585 save.c
- X 2171 screen.c
- X 7830 search.c
- X! 19579 select.c
- X! 7569 signal.c
- X 4749 wildmat.c
- X! 382574 total
- X--- 1,39 ----
- X! MANIFEST for tin newsreader (Mon Sep 30 07:55:48 MET 1991)
- X --------------------------------------------------------------
- X! 4698 README
- X! 17602 CHANGES
- X! 2060 TODO
- X 530 UPDATE_INDEX
- X! 9042 Makefile
- X! 27729 tin.1
- X 2247 wildmat.3
- X! 9798 tin.h
- X! 9739 lang.h
- X! 3720 nntp.h
- X! 17303 proto.h
- X 21 patchlevel.h
- X! 28499 art.c
- X 6043 curses.c
- X! 2631 debug.c
- X! 11387 feed.c
- X! 19434 group.c
- X! 2818 hashstr.c
- X! 5150 help.c
- X! 10301 kill.c
- X! 17947 lang.c
- X! 8130 main.c
- X 6239 memory.c
- X! 20999 misc.c
- X! 19676 newsrc.c
- X! 6791 open.c
- X! 24789 page.c
- X! 17279 post.c
- X 3098 prompt.c
- X! 18671 rcfile.c
- X! 19589 save.c
- X 2171 screen.c
- X 7830 search.c
- X! 19856 select.c
- X! 7531 signal.c
- X 4749 wildmat.c
- X! 396097 total
- Xdiff -rcs 102/Makefile 103/Makefile
- X*** 102/Makefile Tue Sep 24 14:18:09 1991
- X--- 103/Makefile Mon Sep 30 19:07:47 1991
- X***************
- X*** 29,34 ****
- X--- 29,37 ----
- X # NETLIBS should be the networking libraries you need to link with
- X # the nntp clientlib.o
- X #
- X+ # -D NNTP_SERVER_FILE
- X+ # only define if your nntpserver file is other than /etc/nntpserver
- X+ #
- X # -D POSIX_JOB_CONTROL
- X # define if your machine uses sigaction() POSIX signal handling.
- X # This is defined as default for SysVR4 machines in this makefile.
- X***************
- X*** 66,75 ****
- X #
- X EXE=tin
- X
- X- # name of dir where base version is for use by diff program
- X- #
- X- BASE_DIR=../tin-1.01
- X-
- X #BINDIR = /piez/iain/bin
- X BINDIR = /usr/local/bin
- X STRIP = strip
- X--- 69,74 ----
- X***************
- X*** 86,92 ****
- X lang.o main.o memory.o misc.o newsrc.o open.o page.o post.o \
- X prompt.o rcfile.o save.o screen.o search.o select.o signal.o wildmat.o
- X
- X! SUPPORT = Makefile MANIFEST README CHANGES TODO UPDATE_INDEX *.[13]
- X
- X LINTFLAGS=-a -c -h -n -x
- X
- X--- 85,91 ----
- X lang.o main.o memory.o misc.o newsrc.o open.o page.o post.o \
- X prompt.o rcfile.o save.o screen.o search.o select.o signal.o wildmat.o
- X
- X! SUPPORT = Makefile MANIFEST README CHANGES TODO UPDATE_INDEX *.[13] $(EXE).nrf
- X
- X LINTFLAGS=-a -c -h -n -x
- X
- X***************
- X*** 111,117 ****
- X # For System V:
- X sysv:
- X @echo "Compiling for System V..."
- X! @$(MAKE) CFLAGS='-c -O -DUSE_NNTP -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
- X NNTPLIB="clientlib.o" \
- X NETLIBS="-lnet -lnsl_s" \
- X LIBS="-lcurses -ltermcap" \
- X--- 110,116 ----
- X # For System V:
- X sysv:
- X @echo "Compiling for System V..."
- X! @$(MAKE) CFLAGS='-c -O -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
- X NNTPLIB="clientlib.o" \
- X NETLIBS="-lnet -lnsl_s" \
- X LIBS="-lcurses -ltermcap" \
- X***************
- X*** 118,128 ****
- X EXE=tin linkit
- X
- X # For System V Release 4:
- X sysvr4:
- X @echo "Compiling for System V Release 4..."
- X! @$(MAKE) CFLAGS='-c -O -DUSE_NNTP -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
- X! NNTPLIB="./nntp/clientlib.o" \
- X! NETLIBS="-lnsl -lsocket" \
- X LIBS="-lcurses -ltermcap -L/usr/ucblib -lucb" \
- X EXE=tin linkit
- X
- X--- 117,127 ----
- X EXE=tin linkit
- X
- X # For System V Release 4:
- X+ # NNTPLIB="./nntp/clientlib.o" \
- X+ # NETLIBS="-lnsl -lsocket" \
- X sysvr4:
- X @echo "Compiling for System V Release 4..."
- X! @$(MAKE) CFLAGS='-c -O -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
- X LIBS="-lcurses -ltermcap -L/usr/ucblib -lucb" \
- X EXE=tin linkit
- X
- X***************
- X*** 129,135 ****
- X # For SCO Unix:
- X sco:
- X @echo "Compiling for SCO Unix..."
- X! @$(MAKE) CFLAGS='-c -O -UM_XENIX -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR="\"/usr/lib/news\"" -DSPOOLDIR="\"/usr/spool/news\""' \
- X LIBS="-lcurses -lgen -lc_s" \
- X EXE=tin linkit
- X
- X--- 128,134 ----
- X # For SCO Unix:
- X sco:
- X @echo "Compiling for SCO Unix..."
- X! @$(MAKE) CFLAGS='-c -O -UM_XENIX -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR="\"/usr/lib/news\"" -DSPOOLDIR="\"/usr/spool/news\""' \
- X LIBS="-lcurses -lgen -lc_s" \
- X EXE=tin linkit
- X
- X***************
- X*** 140,146 ****
- X @echo "Compiling for Xenix 386..."
- X @$(MAKE) CFLAGS='-c -Zi -DSYSV -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
- X LIBS="-lcurses -ltinfo -lx" \
- X! EXE=tin linkit
- X
- X # SITE SPECIFIC - IGNORE
- X norisc:
- X--- 139,145 ----
- X @echo "Compiling for Xenix 386..."
- X @$(MAKE) CFLAGS='-c -Zi -DSYSV -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
- X LIBS="-lcurses -ltinfo -lx" \
- X! LFLAGS=-Zi EXE=tin linkit
- X
- X # SITE SPECIFIC - IGNORE
- X norisc:
- X***************
- X*** 169,192 ****
- X
- X linkit: $(OBJECTS)
- X @echo "Linking $(EXE)..."
- X! # $(CC) -Zi -o $(EXE) $(OBJECTS) $(NNTPLIB) $(NETLIBS) $(LIBS)
- X! $(CC) -o $(EXE) $(OBJECTS) $(NNTPLIB) $(NETLIBS) $(LIBS)
- X @ls -l $(EXE)
- X
- X! install: all
- X! @echo "installing $(EXE)..."
- X @$(STRIP) $(EXE)
- X @-mv $(EXE) $(BINDIR)
- X @chmod 755 $(BINDIR)/$(EXE)
- X
- X! install_setuid: all
- X! @echo "installing SETUID $(EXE)..."
- X @mv $(EXE) $(BINDIR)
- X @chown news $(BINDIR)/$(EXE)
- X @su news -c "chmod 4755 $(BINDIR)/$(EXE)"
- X
- X proto:
- X! @echo "generating function prototypes for proto.h..."
- X @echo "#ifdef __STDC__" > PROTO.H
- X @echo " " >> PROTO.H
- X @cproto $(CFILES) >> PROTO.H
- X--- 168,193 ----
- X
- X linkit: $(OBJECTS)
- X @echo "Linking $(EXE)..."
- X! $(CC) $(LFLAGS) -o $(EXE) $(OBJECTS) $(NNTPLIB) $(NETLIBS) $(LIBS)
- X @ls -l $(EXE)
- X
- X! install:
- X! @echo "Installing $(EXE)..."
- X @$(STRIP) $(EXE)
- X @-mv $(EXE) $(BINDIR)
- X @chmod 755 $(BINDIR)/$(EXE)
- X+ @ls -l $(BINDIR)/$(EXE)
- X
- X! install_setuid:
- X! @echo "Installing SETUID $(EXE)..."
- X! @$(STRIP) $(EXE)
- X @mv $(EXE) $(BINDIR)
- X @chown news $(BINDIR)/$(EXE)
- X @su news -c "chmod 4755 $(BINDIR)/$(EXE)"
- X+ @ls -l $(BINDIR)/$(EXE)
- X
- X proto:
- X! @echo "Generating function prototypes for proto.h..."
- X @echo "#ifdef __STDC__" > PROTO.H
- X @echo " " >> PROTO.H
- X @cproto $(CFILES) >> PROTO.H
- X***************
- X*** 199,205 ****
- X @-mv PROTO.H proto.h
- X
- X shar:
- X! @echo "generating shell archive..."
- X @echo "MANIFEST for tin newsreader (`date`)" > MANIFEST
- X @echo "--------------------------------------------------------------" >> MANIFEST
- X @wc -c README CHANGES TODO UPDATE_INDEX Makefile *.[13] $(HFILES) $(CFILES) >> MANIFEST
- X--- 200,209 ----
- X @-mv PROTO.H proto.h
- X
- X shar:
- X! @echo "Generating shell archive..."
- X! @echo "Creating nroff man page..."
- X! @nroff -man $(EXE).1 > $(EXE).nrf
- X! @echo "Creating MANIFEST..."
- X @echo "MANIFEST for tin newsreader (`date`)" > MANIFEST
- X @echo "--------------------------------------------------------------" >> MANIFEST
- X @wc -c README CHANGES TODO UPDATE_INDEX Makefile *.[13] $(HFILES) $(CFILES) >> MANIFEST
- X***************
- X*** 207,273 ****
- X
- X uuencode:
- X make tar
- X! @echo "uuencoding $(EXE).tar.Z..."
- X @uuencode $(EXE).tar.Z $(EXE).tar.Z > $(EXE).tar.Z.uue
- X @ls -l $(EXE).tar.Z.uue
- X
- X diff:
- X! @echo "generating diffs against $(BASE_DIR) (results in $(EXE).diff)..."
- X @-mv -f $(EXE).diff $(EXE).diff-
- X! @diff $(BASE_DIR) . > $(EXE).diff
- X
- X tar:
- X! @echo "archiving files to $(EXE).tar..."
- X @-rm $(EXE).tar $(EXE).tar.Z > /dev/null 2>&1
- X @tar cvf $(EXE).tar $(SUPPORT) $(CFILES) $(HFILES)
- X! @echo "compressing $(EXE).tar..."
- X @compress $(EXE).tar
- X @ls -l $(EXE).tar.Z
- X
- X zoo:
- X! @echo "archiving files to $(EXE).zoo..."
- X @-rm $(EXE).zoo > /dev/null 2>&1
- X @zoo ah $(EXE).zoo $(SUPPORT) $(CFILES) $(HFILES)
- X @ls -l $(EXE).zoo
- X
- X tags:
- X! @echo "generating tags (results in ./tags)..."
- X @-rm tags
- X @ctags $(HFILES) $(CFILES)
- X
- X lint:
- X! @echo "linting source (results in ./LINT)..."
- X @lint $(LINTFLAGS) -DUSE_NNTP $(CFILES) > LINT
- X
- X clean:
- X! @echo "cleaning..."
- X @-'rm' -rf *.o #* $(EXE).diff*
- X
- X clobber:
- X! @echo "clobbering..."
- X @-'rm' -rf *.o #* tags $(EXE) $(EXE).diff*
- X
- X cflow:
- X! @echo "creating cflow for $(EXE)..."
- X @cflow $(CFILES) > cflow.$(EXE) &
- X
- X- grind:
- X- @echo "grinding tags index..."
- X- @ctags -v *.[ch] | sort -f > $(EXE).index
- X-
- X man:
- X! @echo "printing $(EXE) manual to $(PRINT)..."
- X @$(ROFF) $(PRINT) $(EXE).1
- X
- X print:
- X @for FILE in $(HFILES) $(CFILES); do \
- X! echo "printing $$FILE to $(PRINT)..."; \
- X expand -4 $$FILE | enscript -2r -h -G $(PRINT) -b $$FILE; \
- X done
- X
- X dist:
- X @for HOST in estevax kommu beperl; do \
- X! echo "copying to $$HOST..."; \
- X rcp $(CFILES) $(HFILES) $(SUPPORT) $$HOST:.src/tin &; \
- X done
- X
- X--- 211,273 ----
- X
- X uuencode:
- X make tar
- X! @echo "Uuencoding $(EXE).tar.Z..."
- X @uuencode $(EXE).tar.Z $(EXE).tar.Z > $(EXE).tar.Z.uue
- X @ls -l $(EXE).tar.Z.uue
- X
- X diff:
- X! @echo "Generating diffs against 102 (results in $(EXE).diff)..."
- X @-mv -f $(EXE).diff $(EXE).diff-
- X! @diff -rcs 102 103 > $(EXE).diff
- X
- X tar:
- X! @echo "Archiving files to $(EXE).tar..."
- X @-rm $(EXE).tar $(EXE).tar.Z > /dev/null 2>&1
- X @tar cvf $(EXE).tar $(SUPPORT) $(CFILES) $(HFILES)
- X! @echo "Compressing $(EXE).tar..."
- X @compress $(EXE).tar
- X @ls -l $(EXE).tar.Z
- X
- X zoo:
- X! @echo "Archiving files to $(EXE).zoo..."
- X @-rm $(EXE).zoo > /dev/null 2>&1
- X @zoo ah $(EXE).zoo $(SUPPORT) $(CFILES) $(HFILES)
- X @ls -l $(EXE).zoo
- X
- X tags:
- X! @echo "Generating tags (results in ./tags)..."
- X @-rm tags
- X @ctags $(HFILES) $(CFILES)
- X
- X lint:
- X! @echo "Linting source (results in ./LINT)..."
- X @lint $(LINTFLAGS) -DUSE_NNTP $(CFILES) > LINT
- X
- X clean:
- X! @echo "Cleaning..."
- X @-'rm' -rf *.o #* $(EXE).diff*
- X
- X clobber:
- X! @echo "Clobbering..."
- X @-'rm' -rf *.o #* tags $(EXE) $(EXE).diff*
- X
- X cflow:
- X! @echo "Creating cflow for $(EXE)..."
- X @cflow $(CFILES) > cflow.$(EXE) &
- X
- X man:
- X! @echo "Printing $(EXE) manual to $(PRINT)..."
- X @$(ROFF) $(PRINT) $(EXE).1
- X
- X print:
- X @for FILE in $(HFILES) $(CFILES); do \
- X! echo "Printing $$FILE to $(PRINT)..."; \
- X expand -4 $$FILE | enscript -2r -h -G $(PRINT) -b $$FILE; \
- X done
- X
- X dist:
- X @for HOST in estevax kommu beperl; do \
- X! echo "Copying to $$HOST..."; \
- X rcp $(CFILES) $(HFILES) $(SUPPORT) $$HOST:.src/tin &; \
- X done
- X
- Xdiff -rcs 102/README 103/README
- X*** 102/README Tue Sep 24 14:15:14 1991
- X--- 103/README Mon Sep 30 14:53:14 1991
- X***************
- X*** 1,23 ****
- X! This is version 1.0 PL2 (patchlevel 2) of the tin newsreader.
- X
- X! Major improvements over tin 1.0 PL1 are the following:
- X
- X! o -n option informs of any new newsgroups since last session.
- X
- X! o -S option saves news to private news structure for later reading.
- X
- X! o -U option forks a tin -u to update indexes while reading news in foregroud.
- X
- X! o Goto first / last unread article within a group (selectable).
- X
- X! o Resizes automatically if running under an Xterm.
- X
- X! o Added regex pattern matching to kill articles.
- X
- X! o Cancel a posted article from within tin.
- X
- X- o Backups .newsrc to .oldnewsrc on starting tin.
- 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,21 ----
- X! This is version 1.0 PL3 (patchlevel 3) of the tin newsreader.
- X
- X! Major improvements over tin 1.0 PL2 are the following:
- X
- X! o added -z and -Z options.
- X
- X! o added 'g' and `G` commands to pager for 'less' users.
- X
- X! o added option to switch threading off on a group basis.
- X
- X! o added nroff formatted man page for SCO Unix users without troff.
- X
- X! o fixed auto-save articles routine that I broke in PL2.
- X
- X! o fixed -U option that was causing char echo if a ^Z was done.
- X
- X! o fixed a memory leak in 'W' command.
- 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*** 76,82 ****
- X 5) 386 PC & SCO SysVR3.2
- X 6) 386 PC & ISC SysVR3.2
- X 7) ICL DRS6000 (sparc) & SysVR4.0
- X! 8) Sun 3/4/IPC/Sparcstation & SunOS 4.0.3/4.1/4.1.1
- X 9) Intel303 & SysVR4
- X 10) DEC 5000 & Ultrix 4.1
- X 11) Sony News & SysVR4 / BSD 4.3
- X--- 74,80 ----
- X 5) 386 PC & SCO SysVR3.2
- X 6) 386 PC & ISC SysVR3.2
- X 7) ICL DRS6000 (sparc) & SysVR4.0
- X! 8) Sun 3/4/IPC/SS1/SS2 & SunOS 4.0.3/4.1/4.1.1
- X 9) Intel303 & SysVR4
- X 10) DEC 5000 & Ultrix 4.1
- X 11) Sony News & SysVR4 / BSD 4.3
- X***************
- X*** 83,89 ****
- X 12) Atari STe & Minix 1.5.10.3b
- X 13) Apricot VX/FT & SCO 3.2.2
- X 14) DIAB DS90 & D-NIX 5.3
- X!
- X Building Tin
- X ------------
- X 1) type 'make' and a few system types will be displayed
- X--- 81,88 ----
- X 12) Atari STe & Minix 1.5.10.3b
- X 13) Apricot VX/FT & SCO 3.2.2
- X 14) DIAB DS90 & D-NIX 5.3
- X! 15) Amdahl & SysVR3
- X!
- X Building Tin
- X ------------
- X 1) type 'make' and a few system types will be displayed
- X***************
- X*** 110,120 ****
- X
- X I wish to thank the following people for bug reports/patchs/comments:
- X
- X! Klaus Arzig, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
- X! Andreas Brosig, Peter Dressler, Gerhard Ermer, Joachim Feld,
- X! Bernhard Gmelch, Viet Hoang, Joe Johnson, Cyrill Jung,
- X! Karl-Koenig Koenigsson, Hans-Juergen Knopp, Bob Lukas, Clifford Luke,
- X! Phillip Molloy, Toni Metz, Greg Miller, Klaus Neuberger, Otto Niesser,
- X! Wolf Paul, Nickolay Saukh, Rich Salz, Fredy Schwatz, Bernd Schwerin,
- X! Karl-Olav Serrander, Chris Smith, Cliff Stanford, Adri Verhoef,
- X Cary Whitney
- X--- 109,120 ----
- X
- X I wish to thank the following people for bug reports/patchs/comments:
- X
- X! Klaus Arzig, Anton Aylward, Reiner Balling, Volker Beyer, Roger Binns,
- X! Georg Biehler, Andreas Brosig, Peter Dressler, Gerhard Ermer, Hugh Fader,
- X! Joachim Feld, Bernhard Gmelch, Viet Hoang, Torsten Homeyer, Andy Jackson,
- X! Joe Johnson, Cyrill Jung, Karl-Koenig Koenigsson, Hans-Juergen Knopp,
- X! Hakan Lennestal, Bob Lukas, Clifford Luke, Phillip Molloy, Toni Metz,
- X! Greg Miller, Klaus Neuberger, Otto Niesser, Wolf Paul, Nickolay Saukh,
- X! Rich Salz, Fredy Schwatz, Bernd Schwerin, Klamer Schutte, Karl-Olav
- X! Serrander, Chris Smith, Steve Spearman, Cliff Stanford, Adri Verhoef,
- X Cary Whitney
- Xdiff -rcs 102/TODO 103/TODO
- X*** 102/TODO Mon Sep 23 17:55:38 1991
- X--- 103/TODO Mon Sep 30 18:59:59 1991
- X***************
- X*** 8,20 ****
- X
- X o Fix code to KILL articles with 't' command.
- X
- X o Fix 'z' so that it stays unread even if a KILL is performed before
- X leaving the group.
- X
- X! o Fix so that it always finds unread messages.
- X
- X ADD FEATURES
- X ------------
- X o Add crossposting of articles so that read ones are marked read in
- X other groups. in rn it uses Xref: line to do this. Perhaps just
- X use update_group() to do it?
- X--- 8,34 ----
- X
- X o Fix code to KILL articles with 't' command.
- X
- X+ o Fix so that it always finds unread messages.
- X+
- X o Fix 'z' so that it stays unread even if a KILL is performed before
- X leaving the group.
- X
- X! o Fix 'z' at group selection level so whole screen is not redrawn.
- X
- X+ o Fix -s <savedir> -S so that an active is constructed when new
- X+ articles are saved to private news dir.
- X+
- X ADD FEATURES
- X ------------
- X+ o Add 2nd page to 'M' Options menu and put on the options:
- X+ 1) ask user if to update read groups on exits (al a vn)
- X+ 2) thread/unthread groups (read from ~/.tin/unthread)
- X+
- X+ o Add elm style print command with %s in it for printing in 'M'.
- X+
- X+
- X+ o Add mail/save to -S option. Selectable by 'M' menu.
- X+
- X o Add crossposting of articles so that read ones are marked read in
- X other groups. in rn it uses Xref: line to do this. Perhaps just
- X use update_group() to do it?
- X***************
- X*** 26,34 ****
- X
- X o Add code to 'N' at group level so it goes to next group with unread news.
- X
- X- o Add -s <dir> option to save new news to specifed spool dir for when
- X- one goes on holiday so that it can be read later by giving -S <dir>.
- X-
- X o Add 'H' context senstive level help screens
- X
- X o Sort .newsrc according to preference. (sort active file as it is read)
- X--- 40,45 ----
- X***************
- X*** 36,41 ****
- X--- 47,55 ----
- X o Add code to do unpack patches
- X
- X o Add time period kill article
- X+
- X+ o Add TAB like command to go to next group with unread news but don't
- X+ enter it
- X
- X PIPEDREAMS
- X ----------
- XFiles 102/UPDATE_INDEX and 103/UPDATE_INDEX are identical
- Xdiff -rcs 102/art.c 103/art.c
- X*** 102/art.c Tue Sep 24 08:13:21 1991
- X--- 103/art.c Mon Sep 30 18:33:02 1991
- X***************
- X*** 3,9 ****
- X * Module : art.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 24-09-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 : 29-09-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 19,25 ****
- X
- X extern int errno;
- X
- X! char index_file[LEN+1];
- X char *glob_art_group;
- X int index_file_killed = FALSE;
- X long last_read_article;
- X--- 19,25 ----
- X
- X extern int errno;
- X
- X! char index_file[LEN];
- X char *glob_art_group;
- X int index_file_killed = FALSE;
- X long last_read_article;
- X***************
- X*** 286,294 ****
- X CleartoEOLN ();
- X center_line (0, TRUE, group);
- X display_groupname = FALSE;
- X }
- X! sprintf (msg, txt_indexing, count);
- X wait_message (msg);
- X }
- X }
- X
- X--- 286,299 ----
- X CleartoEOLN ();
- X center_line (0, TRUE, group);
- X display_groupname = FALSE;
- X+ #ifdef SLOW_SCREEN_UPDATE
- X+ wait_message (txt_indexing);
- X+ #endif
- X }
- X! #ifndef SLOW_SCREEN_UPDATE
- X! sprintf (msg, txt_indexing_num, count);
- X wait_message (msg);
- X+ #endif
- X }
- X }
- X
- X***************
- X*** 307,312 ****
- X--- 312,318 ----
- X void make_threads (rethread)
- X int rethread;
- X {
- X+ extern int cur_groupnum;
- X register int i;
- X register int j;
- X
- X***************
- X*** 313,319 ****
- X /*
- X * .thread & .inthread need to be reset if re-threading arts[]
- X */
- X! if (rethread) {
- X for (i=0 ; i < top ; i++) {
- X arts[i].thread = ART_NORMAL;
- X arts[i].inthread = FALSE;
- X--- 319,326 ----
- X /*
- X * .thread & .inthread need to be reset if re-threading arts[]
- X */
- X! if (rethread && thread_arts &&
- X! active[my_group[cur_groupnum]].thread) {
- X for (i=0 ; i < top ; i++) {
- X arts[i].thread = ART_NORMAL;
- X arts[i].inthread = FALSE;
- X***************
- X*** 340,355 ****
- X break;
- X }
- X
- X! for (i = 0; i < top; i++) {
- X! if (arts[i].thread == ART_NORMAL) {
- X! for (j = i+1; j < top; j++) {
- X! if (arts[j].thread != ART_EXPIRED &&
- X! ((arts[i].subject == arts[j].subject) ||
- X! ((arts[i].part || arts[i].patch) &&
- X! arts[i].archive == arts[j].archive))) {
- X! arts[i].thread = j;
- X! arts[j].inthread = TRUE;
- X! break;
- X }
- X }
- X }
- X--- 347,364 ----
- X break;
- X }
- X
- X! if (thread_arts && active[my_group[cur_groupnum]].thread) {
- X! for (i = 0; i < top; i++) {
- X! if (arts[i].thread == ART_NORMAL) {
- X! for (j = i+1; j < top; j++) {
- X! if (arts[j].thread != ART_EXPIRED &&
- X! ((arts[i].subject == arts[j].subject) ||
- X! ((arts[i].part || arts[i].patch) &&
- X! arts[i].archive == arts[j].archive))) {
- X! arts[i].thread = j;
- X! arts[j].inthread = TRUE;
- X! break;
- X! }
- X }
- X }
- X }
- X***************
- X*** 501,507 ****
- X char *group;
- X int killed;
- X {
- X! char nam[LEN+1];
- X FILE *fp;
- X int *iptr;
- X int realnum;
- X--- 510,516 ----
- X char *group;
- X int killed;
- X {
- X! char nam[LEN];
- X FILE *fp;
- X int *iptr;
- X int realnum;
- X***************
- X*** 673,679 ****
- X {
- X int error = 0;
- X int i, n;
- X! char buf[LEN+1], *p;
- X FILE *fp;
- X
- X top = 0;
- X--- 682,688 ----
- X {
- X int error = 0;
- X int i, n;
- X! char buf[LEN], *p;
- X FILE *fp;
- X
- X top = 0;
- X***************
- X*** 882,888 ****
- X char *group;
- X {
- X unsigned long h;
- X! static char buf[LEN+1];
- X int i;
- X char *p;
- X FILE *fp;
- X--- 891,897 ----
- X char *group;
- X {
- X unsigned long h;
- X! static char buf[LEN];
- X int i;
- X char *p;
- X FILE *fp;
- X***************
- X*** 921,927 ****
- X void do_update()
- X {
- X int i, j;
- X! char group_path[LEN+1];
- X char *p;
- X long epoch;
- X
- X--- 930,936 ----
- X void do_update()
- X {
- X int i, j;
- X! char group_path[LEN];
- X char *p;
- X long epoch;
- X
- X***************
- X*** 960,970 ****
- X }
- X
- X /*
- X * Save any new articles to savedir and mark arts read and mail user
- X * and inform how many arts in which groups were saved.
- X */
- X
- X! void save_any_news ()
- X {
- X char buf[LEN], log[LEN], *p;
- X char group_path[LEN];
- X--- 969,984 ----
- X }
- X
- X /*
- X+ * Check for articles and say how many new/unread in each group.
- X+ * or
- X+ * Start if new/unread articles and return first group with new/unread.
- X+ * or
- X * Save any new articles to savedir and mark arts read and mail user
- X * and inform how many arts in which groups were saved.
- X */
- X
- X! int check_start_save_any_news (check_start_save)
- X! int check_start_save;
- X {
- X char buf[LEN], log[LEN], *p;
- X char group_path[LEN];
- X***************
- X*** 971,993 ****
- X extern FILE *note_fp;
- X FILE *fp, *fp_log;
- X int i, j, print_group;
- X int log_opened = TRUE;
- X int saved_arts = 0;
- X int saved_groups = 0;
- X long epoch;
- X
- X! sprintf (log, "%s/log", rcdir);
- X! if ((fp_log = fopen (log, "w")) == NULL) {
- X! error_message (txt_cannot_open, log);
- X! fp_log = stdout;
- X! verbose = FALSE;
- X! log_opened = FALSE;
- X! }
- X
- X- time (&epoch);
- X- fprintf (fp_log, "To: %s\r\n", userid);
- X- fprintf (fp_log, "Subject: NEWS LOG %s\r\n", ctime (&epoch));
- X-
- X for (i = 0; i < local_top; i++) {
- X strcpy (group_path, active[my_group[i]].name);
- X for (p = group_path; *p; p++) {
- X--- 985,1021 ----
- X extern FILE *note_fp;
- X FILE *fp, *fp_log;
- X int i, j, print_group;
- X+ int check_arts = 0;
- X int log_opened = TRUE;
- X+ int print_first = TRUE;
- X int saved_arts = 0;
- X int saved_groups = 0;
- X+ int unread_news = FALSE;
- X long epoch;
- X
- X! switch (check_start_save) {
- X! case CHECK_ANY_NEWS:
- X! if (verbose) {
- X! wait_message ("Checking for news...");
- X! }
- X! break;
- X! case START_ANY_NEWS:
- X! wait_message ("Checking for news...");
- X! break;
- X! case SAVE_ANY_NEWS:
- X! sprintf (log, "%s/log", rcdir);
- X! if ((fp_log = fopen (log, "w")) == NULL) {
- X! error_message (txt_cannot_open, log);
- X! fp_log = stdout;
- X! verbose = FALSE;
- X! log_opened = FALSE;
- X! }
- X! time (&epoch);
- X! fprintf (fp_log, "To: %s\r\n", userid);
- X! fprintf (fp_log, "Subject: NEWS LOG %s\r\n", ctime (&epoch));
- X! break;
- X! }
- X
- X for (i = 0; i < local_top; i++) {
- X strcpy (group_path, active[my_group[i]].name);
- X for (p = group_path; *p; p++) {
- X***************
- X*** 999,1066 ****
- X index_group (active[my_group[i]].name, group_path);
- X read_newsrc_line (active[my_group[i]].name);
- X print_group = TRUE;
- X
- X for (j = 0; j < top; j++) {
- X if (arts[j].unread == ART_UNREAD) {
- X! if (print_group) {
- X! sprintf (msg, "Saving %s...\r\n", active[my_group[i]].name);
- X! fprintf (fp_log, "%s", msg);
- X! if (verbose) {
- X! printf ("%s", msg);
- X! }
- X! print_group = FALSE;
- X! saved_groups++;
- X! sprintf (buf, "%s/dummy", group_path);
- X! create_path (buf);
- X! }
- X! sprintf (msg, "[%5ld] %s\r\n", arts[j].artnum, arts[j].subject);
- X! fprintf (fp_log, "%s", msg);
- X! if (verbose) {
- X! printf ("%s", msg);
- X! }
- X! saved_arts++;
- X!
- X! sprintf (buf, "%s/%s/%ld", savedir, group_path, arts[j].artnum);
- X! if ((fp = fopen (buf, "w")) == NULL) {
- X! fprintf (fp_log, txt_cannot_open, buf);
- X! error_message (txt_cannot_open, buf);
- X! continue;
- X! }
- X!
- X! open_note (arts[j].artnum, group_path);
- X
- X! fseek (note_fp, 0L, 0);
- X!
- X! copy_fp (note_fp, fp, (char *) 0);
- X
- X! note_cleanup ();
- X!
- X! fclose (fp);
- X }
- X }
- X! if (catchup) {
- X! for (j = 0; j < top; j++) {
- X! arts[j].unread = ART_READ;
- X }
- X! update_newsrc (active[my_group[i]].name, my_group[i], FALSE);
- X }
- X }
- X! sprintf (msg, "\r\nSaved %d articles from %d groups\r\n", saved_arts, saved_groups);
- X! fprintf (fp_log, "%s", msg);
- X! if (verbose) {
- X! printf ("%s", msg);
- X }
- X!
- X! if (log_opened) {
- X! fclose (fp_log);
- X! if (verbose) {
- X! printf ("Mailing log to %s\r\n", userid);
- X! }
- X! sprintf (buf, "%s \"%s\" < %s", mailer, userid, log);
- X! if (! invoke_cmd (buf)) {
- X! error_message (txt_command_failed_s, buf);
- X! }
- X! }
- X }
- X
- X /*
- X--- 1027,1136 ----
- X index_group (active[my_group[i]].name, group_path);
- X read_newsrc_line (active[my_group[i]].name);
- X print_group = TRUE;
- X+ check_arts = 0;
- X
- X for (j = 0; j < top; j++) {
- X if (arts[j].unread == ART_UNREAD) {
- X! switch (check_start_save) {
- X! case CHECK_ANY_NEWS:
- X! if (print_first && verbose) {
- X! putchar ('\n');
- X! print_first = FALSE;
- X! }
- X! check_arts++;
- X! break;
- X! case START_ANY_NEWS:
- X! return i; /* return first group with unread news */
- X! /* NOTREACHED */
- X! case SAVE_ANY_NEWS:
- X! if (print_group) {
- X! sprintf (msg, "Saved %s...\n", active[my_group[i]].name);
- X! fprintf (fp_log, "%s", msg);
- X! if (verbose) {
- X! wait_message (msg);
- X! }
- X! print_group = FALSE;
- X! saved_groups++;
- X! sprintf (buf, "%s/dummy", group_path);
- X! create_path (buf);
- X! }
- X! sprintf (msg, "[%5ld] %s\n", arts[j].artnum, arts[j].subject);
- X! fprintf (fp_log, "%s", msg);
- X! if (verbose) {
- X! wait_message (msg);
- X! }
- X! saved_arts++;
- X
- X! sprintf (buf, "%s/%s/%ld", savedir, group_path, arts[j].artnum);
- X! if ((fp = fopen (buf, "w")) == NULL) {
- X! fprintf (fp_log, txt_cannot_open, buf);
- X! error_message (txt_cannot_open, buf);
- X! continue;
- X! }
- X
- X! open_note (arts[j].artnum, group_path);
- X! fseek (note_fp, 0L, 0);
- X! copy_fp (note_fp, fp, (char *) 0);
- X! note_cleanup ();
- X! fclose (fp);
- X! break;
- X! }
- X }
- X }
- X!
- X! if (check_start_save == SAVE_ANY_NEWS) {
- X! if (catchup) {
- X! for (j = 0; j < top; j++) {
- X! arts[j].unread = ART_READ;
- X! }
- X! update_newsrc (active[my_group[i]].name, my_group[i], FALSE);
- X }
- X! } else {
- X! if (check_arts) {
- X! if (verbose) {
- X! sprintf (msg, "%4d unread articles in %s\n",
- X! check_arts, active[my_group[i]].name);
- X! wait_message (msg);
- X! }
- X! unread_news = TRUE;
- X! }
- X }
- X }
- X! switch (check_start_save) {
- X! case CHECK_ANY_NEWS:
- X! if (unread_news) {
- X! return 2;
- X! } else {
- X! if (verbose) {
- X! wait_message ("\nThere is no news\n");
- X! }
- X! return 0;
- X! }
- X! /* NOTREACHED */
- X! case START_ANY_NEWS:
- X! wait_message ("\nThere is no news\n");
- X! return -1;
- X! /* NOTREACHED */
- X! case SAVE_ANY_NEWS:
- X! sprintf (msg, "\nSaved %d article(s) from %d group(s)\n", saved_arts, saved_groups);
- X! fprintf (fp_log, "%s", msg);
- X! if (verbose) {
- X! wait_message (msg);
- X! }
- X! if (log_opened) {
- X! fclose (fp_log);
- X! if (verbose) {
- X! sprintf (msg, "Mailing log to %s\n", userid);
- X! wait_message (msg);
- X! }
- X! sprintf (buf, "%s \"%s\" < %s", mailer, userid, log);
- X! if (! invoke_cmd (buf)) {
- X! error_message (txt_command_failed_s, buf);
- X! }
- X! }
- X! /* NOTREACHED */
- X }
- X! return 0;
- X }
- X
- X /*
- X***************
- X*** 1071,1077 ****
- X char *group;
- X int killed;
- X {
- X! char group_path[LEN+1];
- X char *p;
- X
- X if (local_index) { /* writing index in home directory */
- X--- 1141,1147 ----
- X char *group;
- X int killed;
- X {
- X! char group_path[LEN];
- X char *p;
- X
- X if (local_index) { /* writing index in home directory */
- XFiles 102/curses.c and 103/curses.c are identical
- Xdiff -rcs 102/debug.c 103/debug.c
- X*** 102/debug.c Mon Sep 23 17:55:38 1991
- X--- 103/debug.c Mon Sep 30 07:58:05 1991
- X***************
- X*** 3,9 ****
- X * Module : debug.c
- X * Author : I.Lea
- X * Created : 01-04-91
- X! * Updated : 06-09-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 : 29-09-91
- X * Release : 1.0
- X * Notes : debug routines
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X***************
- X*** 115,122 ****
- 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]\n",
- X! i, active[i].name, active[i].max, active[i].min, active[i].next, active[i].flag);
- X }
- X fflush (fp);
- X fclose (fp);
- X--- 115,122 ----
- 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);
- Xdiff -rcs 102/feed.c 103/feed.c
- X*** 102/feed.c Mon Sep 23 17:55:38 1991
- X--- 103/feed.c Mon Sep 30 18:33:52 1991
- X***************
- X*** 3,9 ****
- X * Module : feed.c
- X * Author : I.Lea
- X * Created : 31-08-91
- X! * Updated : 22-09-91
- X * Release : 1.0
- X * Notes : provides same interface to mail,pipe,print and save commands
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X--- 3,9 ----
- X * Module : feed.c
- X * Author : I.Lea
- X * Created : 31-08-91
- X! * Updated : 30-09-91
- X * Release : 1.0
- X * Notes : provides same interface to mail,pipe,print and save commands
- X * Copyright : (c) Copyright 1991 by Iain Lea
- X***************
- X*** 16,23 ****
- X #include "tin.h"
- X
- X extern char *glob_group; /* Group name */
- X! extern char note_h_subj[LEN+1]; /* Subject: */
- X! extern char note_h_from[LEN+1]; /* From: */
- X extern FILE *note_fp; /* the body of the current article */
- X extern int note_end; /* end of article ? */
- X extern int note_page; /* what page we're on */
- X--- 16,23 ----
- X #include "tin.h"
- X
- X extern char *glob_group; /* Group name */
- X! extern char note_h_subj[LEN]; /* Subject: */
- X! extern char note_h_from[LEN]; /* From: */
- X extern FILE *note_fp; /* the body of the current article */
- X extern int note_end; /* end of article ? */
- X extern int note_page; /* what page we're on */
- X***************
- X*** 37,47 ****
- X int respnum;
- X char *group_path;
- X {
- X! char address[LEN+1];
- X! char command[LEN+1];
- X! char file[LEN+1], *p;
- X! char mailbox[LEN+1];
- X! char pattern[LEN+1];
- X char ch = 'a', ch_default = 'a';
- X char proc_ch = proc_ch_default;
- X FILE *fp;
- X--- 37,47 ----
- X int respnum;
- X char *group_path;
- X {
- X! char address[LEN];
- X! char command[LEN];
- X! char file[LEN], *p;
- X! char mailbox[LEN];
- X! char pattern[LEN];
- X char ch = 'a', ch_default = 'a';
- X char proc_ch = proc_ch_default;
- X FILE *fp;
- X***************
- X*** 49,55 ****
- X int is_mailbox = FALSE;
- X int orig_note_end;
- X int orig_note_page;
- X! int ret1, ret2;
- X int redraw_screen = FALSE;
- X
- X if (level == PAGE_LEVEL) {
- X--- 49,56 ----
- X int is_mailbox = FALSE;
- X int orig_note_end;
- X int orig_note_page;
- X! int ret1 = FALSE;
- X! int ret2 = FALSE;
- X int redraw_screen = FALSE;
- X
- X if (level == PAGE_LEVEL) {
- X***************
- X*** 65,78 ****
- X if (! num_of_tagged_files && nresp (b)) {
- X ch_default = 't';
- X }
- X- do {
- X- sprintf (msg, "%s%s%c", prompt, txt_art_thread_regex_tag, ch_default);
- X- wait_message (msg);
- X- MoveCursor (LINES, strlen (msg)-1);
- X- if ((ch = ReadCh ()) == CR)
- X- ch = ch_default;
- X- } while (ch != 'a' && ch != 't' && ch != 'T' && ch != 'r' && ch != 'e');
- X
- X if (ch == 'e') { /* exit */
- X clear_message ();
- X return;
- X--- 66,88 ----
- X if (! num_of_tagged_files && nresp (b)) {
- X ch_default = 't';
- X }
- X
- X+ if ((save_archive_name == FALSE || arts[respnum].archive == (char *) 0) ||
- X+ (save_archive_name == TRUE && function != FEED_SAVE) ||
- X+ ch_default == 'T') {
- X+ do {
- X+ sprintf (msg, "%s%s%c", prompt, txt_art_thread_regex_tag, ch_default);
- X+ wait_message (msg);
- X+ MoveCursor (LINES, (int) strlen (msg)-1);
- X+ if ((ch = ReadCh ()) == CR)
- X+ ch = ch_default;
- X+ } while (ch != 'a' && ch != 't' && ch != 'T' && ch != 'r' && ch != 'e');
- X+ } else {
- X+ file[0] = '\0';
- X+ ch = ch_default;
- X+ proc_ch = 's';
- X+ }
- X+
- X if (ch == 'e') { /* exit */
- X clear_message ();
- X return;
- X***************
- X*** 134,139 ****
- X--- 144,150 ----
- X error_message (txt_command_failed_s, command);
- X return;
- X }
- X+ wait_message ("Piping...");
- X Raw (FALSE);
- X break;
- X case FEED_PRINT:
- X***************
- X*** 194,205 ****
- X do {
- X sprintf (msg, "%s%c", txt_post_procees_type, proc_ch_default);
- X wait_message (msg);
- X! MoveCursor (LINES, strlen (msg)-1);
- X if ((proc_ch = ReadCh ()) == CR)
- X proc_ch = proc_ch_default;
- X! } while (proc_ch != 'n' && proc_ch != 's' &&
- X! proc_ch != 'u' && proc_ch != 'U' &&
- X! proc_ch != 'p');
- X }
- X }
- X clear_message ();
- X--- 205,216 ----
- X do {
- X sprintf (msg, "%s%c", txt_post_procees_type, proc_ch_default);
- X wait_message (msg);
- X! MoveCursor (LINES, (int) strlen (msg)-1);
- X if ((proc_ch = ReadCh ()) == CR)
- X proc_ch = proc_ch_default;
- X! } while (proc_ch != 'n' && proc_ch != 's' &&
- X! proc_ch != 'u' && proc_ch != 'U' &&
- X! proc_ch != 'p');
- X }
- X }
- X clear_message ();
- X***************
- X*** 232,237 ****
- X--- 243,249 ----
- X pclose (fp);
- X break;
- X case FEED_SAVE:
- X+ wait_message (txt_saving);
- X add_to_save_list (0, &arts[respnum], is_mailbox, file);
- X (void) save_art_to_file (respnum, 0, FALSE, "");
- X break;
- X***************
- X*** 242,248 ****
- X break;
- X
- X case 't': /* thread */
- X! for (i = base[b]; i >= 0; i = arts[i].thread) {
- X if (function == FEED_PRINT) {
- X if ((fp = popen (command, "w")) == NULL) {
- X error_message (txt_command_failed_s, command);
- X--- 254,260 ----
- X break;
- X
- X case 't': /* thread */
- X! for (i = (int) base[b]; i >= 0; i = arts[i].thread) {
- X if (function == FEED_PRINT) {
- X if ((fp = popen (command, "w")) == NULL) {
- X error_message (txt_command_failed_s, command);
- X***************
- X*** 395,405 ****
- X redraw_screen = mail_check (); /* in case of sending to oneself */
- X break;
- X case FEED_SAVE:
- X! ret1 = (mark_saved_read ? TRUE : FALSE);
- X if (proc_ch != 'n' && is_mailbox == FALSE) {
- X ret2 = post_process_files (proc_ch);
- X }
- X! if (ret1 || ret2) {
- X redraw_screen = TRUE;
- X }
- X free_save_array ();
- X--- 407,419 ----
- X redraw_screen = mail_check (); /* in case of sending to oneself */
- X break;
- X case FEED_SAVE:
- X! if (level == GROUP_LEVEL) {
- X! ret1 = (mark_saved_read ? TRUE : FALSE);
- X! }
- X if (proc_ch != 'n' && is_mailbox == FALSE) {
- X ret2 = post_process_files (proc_ch);
- X }
- X! if ((ret1 || ret2) && is_mailbox == FALSE) {
- X redraw_screen = TRUE;
- X }
- X free_save_array ();
- X***************
- X*** 419,424 ****
- X--- 433,440 ----
- X } else {
- X redraw_page (respnum, glob_group);
- X }
- X+ } else {
- X+ clear_message ();
- X }
- X } else {
- X if (redraw_screen) {
- Xdiff -rcs 102/group.c 103/group.c
- X*** 102/group.c Mon Sep 23 17:55:38 1991
- X--- 103/group.c Mon Sep 30 18:35:39 1991
- X***************
- X*** 3,9 ****
- X * Module : group.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 22-09-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : group.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 28-09-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! extern char cvers[LEN+1];
- X extern int cur_groupnum;
- X extern int last_resp; /* page.c */
- X extern int this_resp; /* page.c */
- X--- 15,21 ----
- X
- X #include "tin.h"
- X
- X! extern char cvers[LEN];
- X extern int cur_groupnum;
- X extern int last_resp; /* page.c */
- X extern int this_resp; /* page.c */
- X***************
- X*** 30,36 ****
- X void group_page (group)
- X char *group;
- X {
- X! char group_path[LEN+1];
- X char ch;
- X char *p;
- X int flag, i, n;
- X--- 30,36 ----
- X void group_page (group)
- X char *group;
- X {
- X! char group_path[LEN];
- X char ch;
- X char *p;
- X int flag, i, n;
- X***************
- X*** 40,45 ****
- X--- 40,47 ----
- X int sav_groupnum;
- X int thread_marked_unread = FALSE;
- X
- X+ active[my_group[cur_groupnum]].read = TRUE;
- X+
- X glob_group = group;
- X sav_groupnum = cur_groupnum;
- X
- X***************
- X*** 175,180 ****
- X--- 177,183 ----
- X
- X case 'I': /* ansi PgUp */
- X case 'V': /* at386 PgUp */
- X+ case 'v': /* emacs style */
- X goto group_page_up;
- X
- X case 'H': /* at386 Home */
- X***************
- X*** 190,197 ****
- X }
- X break;
- X
- X! case ctrl('D'): /* page down */
- X! case ' ':
- X group_page_down:
- X if (!top_base || index_point == top_base - 1)
- X break;
- X--- 193,201 ----
- X }
- X break;
- X
- X! case ' ': /* page down */
- X! case ctrl('D'): /* vi style */
- X! case ctrl('V'): /* emacs style */
- X group_page_down:
- X if (!top_base || index_point == top_base - 1)
- X break;
- X***************
- X*** 215,221 ****
- X }
- X if (kill_articles) {
- X old_top = top;
- X! n = base[index_point];
- X old_artnum = arts[n].artnum;
- X if (kill_art_menu (group, (int) base[index_point])) {
- X kill_any_articles (group);
- X--- 219,225 ----
- X }
- X if (kill_articles) {
- X old_top = top;
- X! n = (int) base[index_point];
- X old_artnum = arts[n].artnum;
- X if (kill_art_menu (group, (int) base[index_point])) {
- X kill_any_articles (group);
- X***************
- X*** 370,376 ****
- X break;
- X }
- X if (new_responses (index_point)) {
- X! for (i = base[index_point]; i >= 0; i = arts[i].thread)
- X arts[i].unread = 0;
- X mark_screen (SCREEN_READ_UNREAD, " ");
- X flag = FALSE;
- X--- 374,380 ----
- X break;
- X }
- X if (new_responses (index_point)) {
- X! for (i = (int) base[index_point]; i >= 0; i = arts[i].thread)
- X arts[i].unread = 0;
- X mark_screen (SCREEN_READ_UNREAD, " ");
- X flag = FALSE;
- X***************
- X*** 410,416 ****
- X
- X case 'M': /* options menu */
- X old_top = top;
- X! n = base[index_point];
- X old_artnum = arts[n].artnum;
- X n = sort_art_type;
- X kill_state = change_rcfile (group, TRUE);
- X--- 414,420 ----
- X
- X case 'M': /* options menu */
- X old_top = top;
- X! n = (int) base[index_point];
- X old_artnum = arts[n].artnum;
- X n = sort_art_type;
- X kill_state = change_rcfile (group, TRUE);
- X***************
- X*** 511,517 ****
- X
- X case 'T': /* tag/untag art for mailing/piping/printing/saving */
- X if (index_point >= 0) {
- X! n = base[index_point];
- X if (arts[n].tagged) {
- X arts[n].tagged = 0;
- X sprintf (msg, "%3s", (arts[n].unread ? " +" : " "));
- X--- 515,521 ----
- X
- X case 'T': /* tag/untag art for mailing/piping/printing/saving */
- X if (index_point >= 0) {
- X! n = (int) base[index_point];
- X if (arts[n].tagged) {
- X arts[n].tagged = 0;
- X sprintf (msg, "%3s", (arts[n].unread ? " +" : " "));
- X***************
- X*** 557,563 ****
- X info_message (txt_no_arts);
- X break;
- X }
- X! i = base[index_point];
- X arts[i].unread = ART_UNREAD;
- X mark_screen (SCREEN_READ_UNREAD, " +");
- X info_message (txt_art_marked_as_unread);
- X--- 561,567 ----
- X info_message (txt_no_arts);
- X break;
- X }
- X! i = (int) base[index_point];
- X arts[i].unread = ART_UNREAD;
- X mark_screen (SCREEN_READ_UNREAD, " +");
- X info_message (txt_art_marked_as_unread);
- X***************
- X*** 568,574 ****
- X info_message (txt_no_arts);
- X break;
- X }
- X! for (i = base[index_point] ; i != -1 ; i = arts[i].thread) {
- X arts[i].unread = ART_UNREAD;
- X thread_marked_unread = TRUE;
- X }
- X--- 572,578 ----
- X info_message (txt_no_arts);
- X break;
- X }
- X! for (i = (int) base[index_point] ; i != -1 ; i = arts[i].thread) {
- X arts[i].unread = ART_UNREAD;
- X thread_marked_unread = TRUE;
- X }
- X***************
- X*** 587,596 ****
- X group_done:
- X fix_new_highest (sav_groupnum);
- X update_newsrc (group, my_group[sav_groupnum], FALSE);
- X- clear_note_area ();
- X
- X! if (index_point == -2)
- SHAR_EOF
- echo "End of tin1.0 part 1"
- echo "File tin.patch03 is continued in part 2"
- echo "2" > shar3_seq_.tmp
- exit 0
-
- 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.
-