home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume23
/
tin
/
part01
next >
Wrap
Text File
|
1991-09-25
|
53KB
|
1,601 lines
Newsgroups: comp.sources.misc
From: iain@estevax.uucp (Iain J. Lea)
Subject: v23i015: tin - threaded full screen newsreader v1.0 PL2, Part01/09
Message-ID: <csm-v23i015=tin.154849@sparky.IMD.Sterling.COM>
X-Md4-Signature: b5aa4ffc0bd60998670606284e1ebce0
Date: Wed, 25 Sep 1991 20:49:32 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: iain@estevax.uucp (Iain J. Lea)
Posting-number: Volume 23, Issue 15
Archive-name: tin/part01
Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
This is version 1.0 PL2 (Patchlevel 2) of the tin newsreader.
Major improvements over tin 1.0 PL1 are the following:
o -n option informs of any new newsgroups since last session.
o -S option saves news to private news structure for later reading.
o -U option forks a tin -u to update indexes while reading news in foregroud.
o Goto first / last unread article within a group (selectable).
o Resizes automatically if running under an Xterm.
o Added regex pattern matching to kill articles.
o Cancel a posted article from within tin.
o Backups .newsrc to .oldnewsrc on starting tin.
For more bugs fixes, other changes & additions read the CHANGES & TODO files.
For the full blurb read README and tin.1 man page...
Credits
-------
I wish to give credit to the following people for the routines
that they have written and I have used in tin:
Rich Skrenta - tass v3.2 that tin is based upon.
Syd Weinstein - curses.c is taken from the elm mailreader
Rich Salz - wildmat regex pattern matching routine
Chris Smith - multi-part uudecode routine
I wish to thank the following people for bug reports/patchs/comments:
Klaus Arzig, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
Andreas Brosig, Peter Dressler, Gerhard Ermer, Joachim Feld,
Bernhard Gmelch, Viet Hoang, Joe Johnson, Cyrill Jung,
Karl-Koenig Koenigsson, Hans-Juergen Knopp, Bob Lukas, Clifford Luke,
Phillip Molloy, Toni Metz, Greg Miller, Klaus Neuberger, Otto Niesser,
Wolf Paul, Nickolay Saukh, Rich Salz, Fredy Schwatz, Bernd Schwerin,
Karl-Olav Serrander, Chris Smith, Cliff Stanford, Adri Verhoef,
Cary Whitney
I may be off the net for a couple of months at the end of September, but
will be contactable at the following address:
Iain J. Lea
BrueckenStr. 12
8500 Nuernberg 90
Germany.
Phone. +49-911-331963 (home)
Phone. +49-911-895-3853 (work until Sep 30)
Phone. +49-911-3089-407 (work from Oct 1)
Email. iain@estevax.uucp (will only be reading mailbox weekly)
----------
#!/bin/sh
# This is tin1.02, a shell archive (shar 3.24)
# made 09/24/1991 12:18 UTC by iain@estevax.uucp
# Source directory /piez/iain/.src/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
# ------ ---------- ------------------------------------------
# 8986 -rw------- Makefile
# 757 -rw------- MANIFEST
# 4762 -rw------- README
# 14067 -rw------- CHANGES
# 1810 -rw------- TODO
# 530 -rwx------ UPDATE_INDEX
# 26331 -rw------- tin.1
# 2247 -rw------- wildmat.3
# 26620 -rw------- art.c
# 6043 -rw------- curses.c
# 2575 -rw------- debug.c
# 11087 -rw------- feed.c
# 19165 -rw------- group.c
# 2811 -rw------- hashstr.c
# 5124 -rw------- help.c
# 9529 -rw------- kill.c
# 17911 -rw------- lang.c
# 7015 -rw------- main.c
# 6239 -rw------- memory.c
# 19195 -rw------- misc.c
# 19674 -rw------- newsrc.c
# 6736 -rw------- open.c
# 24185 -rw------- page.c
# 17061 -rw------- post.c
# 3098 -rw------- prompt.c
# 18379 -rw------- rcfile.c
# 19585 -rw------- save.c
# 2171 -rw------- screen.c
# 7830 -rw------- search.c
# 19579 -rw------- select.c
# 7569 -rw------- signal.c
# 4749 -rw------- wildmat.c
# 9348 -rw------- tin.h
# 9707 -rw------- lang.h
# 3688 -rw------- nntp.h
# 17147 -rw------- proto.h
# 21 -rw------- patchlevel.h
#
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
# ============= Makefile ==============
echo "x - extracting Makefile (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile &&
X# Makefile for tin
X#
X# NB. NNTP (NetNews Transport Protocol RFC 977) is required if you
X# wish to read news remotely. It is a seperate package that is
X# available from many FTP and mailserver sites.
X
X# command line compile flags
X#
X# -D LIBDIR=\"\"
X# defaults to /usr/lib/news if not defined.
X#
X# -D INEWSDIR=\"\"
X# define if inews is not in LIBDIR. defaults to LIBDIR if not defined.
X#
X# -D SPOOLDIR=\"\"
X# defaults to /usr/spool/news if not defined.
X#
X# You only need to worry about the following three defines if you have
X# defined NNTP to build a version to access news locally & remotely
X#
X# -D USE_NNTP
X# include -DUSE_NNTP if you want to allow reading of news locally
X# and also remotely via the -r option over an NNTP server.
X#
X# -D NNTPLIB=
X# point NNTPLIB at the nntp clientlib.o support library
X#
X# -D NETLIBS=
X# NETLIBS should be the networking libraries you need to link with
X# the nntp clientlib.o
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# -D USE_MKDIR
X# define if your machine does not have the mkdir() system call.
X#
X# -D USE_LONG_FILENAMES
X# include -DUSE_LONG_FILENAMES if filesystem supports filenames
X# longer than 14 chars. (default for BSD type systems)
X#
X# -D USE_INVERSE_HACK
X# define if you want inverse video and highlighted bar disabled.
X# (default for SCO Unix & SysVR4) Can be toggled in tin by the
X# 'I' command & highlight bar by 'M' command.
X#
X# -D USE_CLEARSCREEN
X# define if the you wish screen to use ClearScreen() and not MoveCursor()
X# and CleartoEOLN(). This is perhaps faster on slow terminals but I have
X# not really run any speed tests. Not sure this option works anymore.
X#
X# -D DONT_USE_REGEX
X# don't match strings using regular expressions, just use strstr().
X#
X# -D DONT_USE_START_LINE
X# stop editor being started with line offset into file
X#
X# -D SLOW_SCREEN_UPDATE
X# useful if running over a low speed connection (ie. 2400baud).
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
X# name of executable file
X#
XEXE=tin
X
X# name of dir where base version is for use by diff program
X#
XBASE_DIR=../tin-1.01
X
X#BINDIR = /piez/iain/bin
XBINDIR = /usr/local/bin
XSTRIP = strip
XROFF = + drf -F Helvetica -man3
XPRINT= -Pps0
X
XHFILES = tin.h lang.h nntp.h proto.h patchlevel.h
X
XCFILES = art.c curses.c debug.c feed.c group.c hashstr.c help.c kill.c \
X lang.c main.c memory.c misc.c newsrc.c open.c page.c post.c \
X prompt.c rcfile.c save.c screen.c search.c select.c signal.c wildmat.c
X
XOBJECTS = art.o curses.o debug.o feed.o group.o hashstr.o help.o kill.o \
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
XSUPPORT = Makefile MANIFEST README CHANGES TODO UPDATE_INDEX *.[13]
X
XLINTFLAGS=-a -c -h -n -x
X
X.c.o:
X $(CC) $(CFLAGS) $*.c
X
Xall:
X @echo "There is no default. Specify one of the following targets."
X @echo " make bsd (BSD/Ultrix)"
X @echo " make sysv (SysV)"
X @echo " make sysvr4 (SysV R4)"
X @echo " make sco (SCO Unix)"
X @echo " make xenix (Xenix 386)"
X
X# For Berkeley systems:
Xbsd:
X @echo "Compiling for BSD/Ultrix..."
X @$(MAKE) CFLAGS='-c -O -DBSD -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
X# For System V:
Xsysv:
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 EXE=tin linkit
X
X# For System V Release 4:
Xsysvr4:
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# For SCO Unix:
Xsco:
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# For Xenix 386:
X# NNTPLIB=clientlib.o
X# NETLIBS="-lsocket"
Xxenix:
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
Xnorisc:
X @echo "Compiling for NORISC with NNTP..."
X @$(MAKE) CFLAGS='-c -g -DBSD -DUSE_NNTP -DAUTO_RESIZE -DLIBDIR=\"/news/lib\" -DSPOOLDIR=\"/news/spool\"' \
X NNTPLIB=/news/nntp/clientlib.o \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
X# SITE SPECIFIC - IGNORE
Xestevax:
X @echo "Compiling for ESTEVAX with NNTP..."
X @$(MAKE) CFLAGS='-c -O -DBSD -DUSE_NNTP -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X NNTPLIB=/others/mtz/bnews2/NNTP/common/clientlib.o \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
X# SITE SPECIFIC - IGNORE
Xkommu:
X @echo "Compiling for KOMMU with NNTP..."
X @$(MAKE) CFLAGS='-c -O -UM_XENIX -DUSE_INVERSE_HACK -DAUTO_RESIZE -DUSE_NNTP -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
X NNTPLIB=/usr/spool/user/TONI/bnews2/NNTP/common/clientlib.o \
X NETLIBS="-lnsl_s -lsocket" \
X LIBS="-lcurses -lgen -lc_s" \
X EXE=tin linkit
X
Xlinkit: $(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
Xinstall: all
X @echo "installing $(EXE)..."
X @$(STRIP) $(EXE)
X @-mv $(EXE) $(BINDIR)
X @chmod 755 $(BINDIR)/$(EXE)
X
Xinstall_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
Xproto:
X @echo "generating function prototypes for proto.h..."
X @echo "#ifdef __STDC__" > PROTO.H
X @echo " " >> PROTO.H
X @cproto $(CFILES) >> PROTO.H
X @echo " " >> PROTO.H
X @echo "#else" >> PROTO.H
X @echo " " >> PROTO.H
X @cproto -f1 $(CFILES) >> PROTO.H
X @echo " " >> PROTO.H
X @echo "#endif" >> PROTO.H
X @-mv PROTO.H proto.h
X
Xshar:
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 @shar -a -n $(EXE)1.02 -s iain@estevax.uucp -L50 -o ../$(EXE).shar $(SUPPORT) $(CFILES) $(HFILES)
X
Xuuencode:
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
Xdiff:
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
Xtar:
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
Xzoo:
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
Xtags:
X @echo "generating tags (results in ./tags)..."
X @-rm tags
X @ctags $(HFILES) $(CFILES)
X
Xlint:
X @echo "linting source (results in ./LINT)..."
X @lint $(LINTFLAGS) -DUSE_NNTP $(CFILES) > LINT
X
Xclean:
X @echo "cleaning..."
X @-'rm' -rf *.o #* $(EXE).diff*
X
Xclobber:
X @echo "clobbering..."
X @-'rm' -rf *.o #* tags $(EXE) $(EXE).diff*
X
Xcflow:
X @echo "creating cflow for $(EXE)..."
X @cflow $(CFILES) > cflow.$(EXE) &
X
Xgrind:
X @echo "grinding tags index..."
X @ctags -v *.[ch] | sort -f > $(EXE).index
X
Xman:
X @echo "printing $(EXE) manual to $(PRINT)..."
X @$(ROFF) $(PRINT) $(EXE).1
X
Xprint:
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
Xdist:
X @for HOST in estevax kommu beperl; do \
X echo "copying to $$HOST..."; \
X rcp $(CFILES) $(HFILES) $(SUPPORT) $$HOST:.src/tin &; \
X done
X
Xart.o: art.c $(HFILES)
Xcurses.o: curses.c
Xdebug.o: debug.c $(HFILES)
Xfeed.o: feed.c $(HFILES)
Xgroup.o: group.c $(HFILES)
Xhashstr.o: hashstr.c $(HFILES)
Xhelp.o: help.c $(HFILES)
Xkill.o: kill.c $(HFILES)
Xlang.o: lang.c $(HFILES)
Xmain.o: main.c $(HFILES)
Xmemory.o: memory.c $(HFILES)
Xmisc.o: misc.c $(HFILES)
Xnewsrc.o: newsrc.c $(HFILES)
Xopen.o: open.c $(HFILES)
Xpage.o: page.c $(HFILES)
Xpost.o: post.c $(HFILES)
Xprompt.o: prompt.c $(HFILES)
Xrcfile.o: rcfile.c $(HFILES)
Xsave.o: save.c $(HFILES)
Xscreen.o: screen.c $(HFILES)
Xsearch.o: search.c $(HFILES)
Xselect.o: select.c $(HFILES)
Xsignal.o: signal.c $(HFILES)
Xwildmat.o: wildmat.c $(HFILES)
SHAR_EOF
$TOUCH -am 0924141891 Makefile &&
chmod 0600 Makefile ||
echo "restore of Makefile failed"
set `wc -c Makefile`;Wc_c=$1
if test "$Wc_c" != "8986"; then
echo original size 8986, current size $Wc_c
fi
# ============= MANIFEST ==============
echo "x - extracting MANIFEST (Text)"
sed 's/^X//' << 'SHAR_EOF' > MANIFEST &&
XMANIFEST 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
SHAR_EOF
$TOUCH -am 0924141891 MANIFEST &&
chmod 0600 MANIFEST ||
echo "restore of MANIFEST failed"
set `wc -c MANIFEST`;Wc_c=$1
if test "$Wc_c" != "757"; then
echo original size 757, current size $Wc_c
fi
# ============= README ==============
echo "x - extracting README (Text)"
sed 's/^X//' << 'SHAR_EOF' > README &&
XThis is version 1.0 PL2 (patchlevel 2) of the tin newsreader.
X
XMajor improvements over tin 1.0 PL1 are the following:
X
Xo -n option informs of any new newsgroups since last session.
X
Xo -S option saves news to private news structure for later reading.
X
Xo -U option forks a tin -u to update indexes while reading news in foregroud.
X
Xo Goto first / last unread article within a group (selectable).
X
Xo Resizes automatically if running under an Xterm.
X
Xo Added regex pattern matching to kill articles.
X
Xo Cancel a posted article from within tin.
X
Xo Backups .newsrc to .oldnewsrc on starting tin.
X
XFor more bugs fixes, other changes & additions read the CHANGES & TODO files.
X
XI am still looking for people to send me ideas/comments & bug reports.
X
XAnd now for a bit of blurb from the original version...
X
XTin is a full screen threaded newsreader that uses the tass newsreader as
Xits base. Tass was developed by Rich Skrenta (skrenta@blekko.commodore.com).
XTin can read news locally and also via an NNTP server (-r option). Tin
Xcontains more features than tass but they are still accessable to the
Xbeginner and expert alike. I tried to follow the tass UI conventions as
Xmuch as possible.
X
XThis is the only newsreader that I know of that threads on the Archive-name:
Xfield as used in comp.sources.* groups as well as on the more normal Subject:
Xfield. Before anyone comments on Subject: threading not being right and I
Xshould look at trn, I have and its threads are neat but I get more done with
Xtin than trn. It is especially good at saving and processing saved articles
X& threads.
X
Xo Organizes articles by threads. Displays a really nice article selection
X page.
X
Xo Group selection page makes it easy to scan newsgroups, subscribe,
X unsubscribe, reorder your .newsrc.
X
Xo If you've ever used tass/notes, this is the program for you.
X Tin looks a lot like tass, but has many improvements.
X
XNewsreading style under tin tends to be different than with rn. Instead of
Xplowing through each group reading everything unread, you may find yourself
Xreading fewer articles in more groups. It's easier to skip about and only
Xread interesting threads with tin.
X
XTin keeps an index file for each group. The first time you enter a group,
Xit will be a bit slow creating this file. After that it will incrementally
Xupdate the index file and there should be little delay.
X
XI may be off the net for a couple of months at the end of September, but
Xwill be contactable at the following address:
X Iain J. Lea
X BrueckenStr. 12
X 8500 Nuernberg 90
X Germany.
X Phone. +49-911-331963 (home)
X Phone. +49-911-895-3853 (work until Sep 30)
X Phone. +49-911-3089-407 (work from Oct 1)
X Email. iain@estevax.uucp (will only be reading mailbox weekly)
X
XBuilt & used on the following machines
X--------------------------------------
X 1) Vax 8850 & Ultrix 4.1 (Developed on & most tested platform)
X 3) 386 PC & Xenix 386
X 2) Vax 11/785 & BSD 4.3
X 4) 386 PC & ATT SysVR4.0
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 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
XBuilding Tin
X------------
X 1) type 'make' and a few system types will be displayed
X 2) edit Makefile if you want to add/change -D DEFINES
X 3) type 'make <system type>' to compile for your system
X 4) type 'make install' / 'make install_setuid' to install
X
X Note: the supplied Makefile will not run directly on BSD. It
X requires a little work (Any takers to write a good Makefile?)
X
XNB. NNTP (NetNews Transport Protocol RFC 977) is required if you
X wish to read news remotely. It is a seperate package that is
X available from many FTP and mailserver sites.
X
XCredits
X-------
XI wish to give credit to the following people for the routines
Xthat they have written and I have used in tin:
X
XRich Skrenta - tass v3.2 that tin is based upon.
XSyd Weinstein - curses.c is taken from the elm mailreader
XRich Salz - wildmat regex pattern matching routine
XChris Smith - multi-part uudecode routine
X
XI wish to thank the following people for bug reports/patchs/comments:
X
XKlaus Arzig, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
XAndreas Brosig, Peter Dressler, Gerhard Ermer, Joachim Feld,
XBernhard Gmelch, Viet Hoang, Joe Johnson, Cyrill Jung,
XKarl-Koenig Koenigsson, Hans-Juergen Knopp, Bob Lukas, Clifford Luke,
XPhillip Molloy, Toni Metz, Greg Miller, Klaus Neuberger, Otto Niesser,
XWolf Paul, Nickolay Saukh, Rich Salz, Fredy Schwatz, Bernd Schwerin,
XKarl-Olav Serrander, Chris Smith, Cliff Stanford, Adri Verhoef,
XCary Whitney
SHAR_EOF
$TOUCH -am 0924141591 README &&
chmod 0600 README ||
echo "restore of README failed"
set `wc -c README`;Wc_c=$1
if test "$Wc_c" != "4762"; then
echo original size 4762, current size $Wc_c
fi
# ============= CHANGES ==============
echo "x - extracting CHANGES (Text)"
sed 's/^X//' << 'SHAR_EOF' > CHANGES &&
XCHANGES tin v1.0 PL1 -> tin 1.0 PL2
X-----------------------------------
X
X1) rsalz@bbn.com (Rich Salz)
X Modified man page to format correctly.
X
X2) iain@estevax.uucp (Iain Lea)
X BUG. if compiled on xenix DEFAULT_MAILBOX define is redefined later.
X FIX. tin.h - repositioned DEFAULT_MAILBOX define.
X
X3) uunet!sisd!jeh (Ed Hanway)
X BUG. If chars are signed, hash_str() will calculate a bad hash
X value if it hits a char with the high bit set.
X FIX. hashstr.c - changed hash routine to use unsigned char.
X
X4) iain@estevax.uucp (Iain Lea)
X BUG. Always put cursor on last unread article in newsgroup.
X FIX. select.c - set changed space_mode = FALSE to TRUE, so
X that the cursor is positioned on the first unread art.
X
X5) rsalz@bbn.com (Rich Salz)
X Contributed a large patch file that changed numerous small
X things, such as deleted unused variables, changed fgets()'s
X to use sizeof() call on the buffer, corrected input parameters
X on qsort() compare functions to be char * and then cast inside
X the compare function. Many thanx and I'll have to have a look
X at Saber C.
X
X6) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. I would prefer to press save, and then be presented with
X choices of post processing. If you can't figure out which
X it is, offer the choice from the 'M' menu as default.
X FIX. feed.c - asks for processing type when saving article.
X
X7) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. free_all_arrays() called inside signal_handler() causes errors.
X FIX. signal.c - deleted free_all_arrays() from signal_handler().
X
X8) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. If the active file is empty, abort (I just learnt the hard
X way) - core dumps and other silly things happen.
X FIX. misc.c - changed read_active() to exit if no newsgroups.
X
X9) cliff@norisc.uucp (Clifford Luke)
X BUG. When resizing under an xterm tin hangs / gets SIGSEGV.
X FIX. memory.c signal.c - modified to resize screen[] array.
X
X10) rdb@oasis.icl.co.uk (Roger Binns)
X ADD. backup_newsrc() copies .newsrc to .oldnewsrc for safety.
X
X11) iain@estevax.uucp (Iain Lea)
X BUG. follow-ups rejected by inews when to many '>' are in text.
X FIX. tin.h - added DEFAULT_COMMENT to let user specify comment
X string (default is ": ").
X
X12) nms@jvd.msk.su (Nickolay Saukh)
X BUG. Whats the reason to use file dead.article instead of .article?
X FIX. post.c - no reason at all. Fixed it - must have been asleep?!
X
X13) nms@jvd.msk.su (Nickolay Saukh)
X BUG. There should be a way to inform user about created newsgroups
X since last session.
X FIX. misc.c - added notify_groups() to check for new newsgroups. Use
X -n option to check for groups on starting tin. A tad sloooooww.
X
X14) whitney@zeus.unomaha.edu (Cary Whitney)
X BUG. I have found that saving articles in there news structure in my own
X area is an easy way for myself to organize articles.
X FIX. feed.c - feed_articles(). If '+<filename>' is given the '+' will be
X converted to <newsgroup>/<filename>.
X
X15) unido!tintin.rivm.nl!a3 (Adri Verhoef)
X BUG. The 'options' line in .newsrc is being reconized as a newsgroup.
X FIX. Ignores lines beginning with 'options ' when reading .newsrc
X
X16) cliff@demon.co.uk (Cliff Stanford)
X BUG. Because of the way setuid() works when the user is root, tin
X should test for this case when it is setuid news. Thanx for
X code patch for a subtle bug.
X FIX. main.c - changed test case for getuid() & geteuid().
X
X17) cliff@demon.co.uk (Cliff Stanford)
X BUG. When running setuid what happens to the index directory
X 'index' in alt.sources & alt.sources.index? You effectively
X corrupt the directory.
X FIX. tin.h - changed the name of 'index' to '.index'
X
X18) juergen@norisc (Hans-Juergen Knopp)
X BUG. Allow user to select whether cursor should be positioned on
X first / last unread article upon entering a newsgroup.
X FIX. rcfile.c - added 'Goto 1st unread' option.
X
X19) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. When in the 'M' options menu try pressing return. It does
X nothing, but if you press it again, it saves and exits.
X FIX. rcfile.c - change_rcfile() does better input checking and
X saves and exits when char < '1' && char > '9'.
X
X20) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. Will print articles straight away when 'o' is pressed.
X FIX. group.c - asks if you really want to print articles.
X
X21) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. I have tried to use the pattern so that the word `rape' will
X be killed on. I tried regex patterns and nothing happened eg
X *rape* or *[Rr][Aa][Pp][Ee]* and nothing was killed.
X FIX. kill.c - added regex pattern matching to kill routines.
X
X22) iain@estevax.uucp (Iain Lea)
X BUG. Hangs when running under a xterm window that is resized.
X FIX. signal.c - set_win_size() changed so that tin will resize
X to the new xterm window size. Allows big displays of info
X when run on a window system.
X
X23) molloy@icd.teradyne.com (Philip E. Molloy)
X BUG. If there is no file called ~/.tin/posted, then the first
X posting stays named as ~/.tin/posted.<pid> and you cannot
X use the "W" command. If you test for the existence of the
X file posted and create it if not there, this should work.
X FIX. misc.c - creates ~/.tin/posted empty if it does not exist.
X
X24) nms@jvd.msk.su (Nickolay Saukh)
X BUG. It should turn on arrow mode -> if inverse video is turned off.
X FIX. select.c group.c - turns on arrow -> if inverse video turned off.
X
X25) iain@estevax.uucp (Iain Lea)
X ADD. Added thread operators '<' & '>' to goto first & last article
X in current thread.
X
X26) nms@jvd.msk.su (Nickolay Saukh)
X BUG. There is no reason to enter groups with no articles in them.
X FIX. select.c - checks if arts in group otherwise will not enter.
X
X27) iain@estevax.uucp (Iain Lea)
X ADD. Added 'w' post base article command to group selection level
X so that even if there are no arts in a group one can still
X post articles to it.
X
X28) unido!tintin.rivm.nl!a3 (Adri Verhoef)
X BUG. Tagging articles 'T' causes a redraw of the entire index page.
X This is tiresome on very slow lines.
X FIX. group.c - fixed 'T' so it does not redraw the screen everytime.
X
X29) cliff@demon.co.uk (Cliff Stanford)
X BUG. Default mailer rmail does not work on SCO 3.2.2 & small fixes to
X Makefile. Thanx for the patches.
X FIX. Changed rmail to sendmail -t for default mailer. Only works
X if you have got tcp-ip package installed.
X
X30) iain@estevax.uucp (Iain Lea)
X ADD. post.c - added cancel_article() to cancel an article that was
X posted by the same user.
X
X31) miller@julian.uwo.CA (Greg Miller)
X ADD. How about a TINDIR environment variable so that if defined the
X .tin directory are set up there rather than $HOME.
X
X32) nms@jvd.msk.su (Nickolay Saukh)
X BUG. All sortable options should have reverse option.
X FIX. rcfile.c - added ascending & descending options to sort routines.
X
X33) kos@nd.se (Karl-Olov Serrander)
X BUG. SIGSEGV happens when debug routines are used.
X FIX. debug.c - applied supplied patch.
X
X34) cliff@demon.co.uk (Cliff Stanford)
X ADD. main.c - added -U option to fork a 'tin -u' and update index
X files in background while reading the news in foreground.
X
XCHANGES tin v1.00 -> tin v1.0 PL1
X---------------------------------
X
X1) crs@siesoft.co.uk (Chris Smith)
X BUG. uudecoding multi-part archives sometimes does not work.
X FIX. Contibuted uuscram routine that was hacked into post_process_uud().
X
X2) unido!mprgate.mpr.ca!lukas (Bob Lukas)
X BUG. The docs refer to various defaults as being $HOME/... In
X fact, they are relative to the pw_dir field from /etc/passwd,
X not the environment variable $HOME. (For obscure reasons, my
X $HOME is not pw_dir.)
X FIX. misc.c - init_selfinfo()
X
X3) iain@estevax.uucp (Iain Lea)
X BUG. info string "Serching..." not cleared from bottom of screen
X when string is found.
X FIX. search.c - added clear_message() to various search routines.
X
X4) unido!skuld.north.de!heimdall (Volker Beyer)
X BUG. Du versuchst den Vi aufzurufen, und zwar ind /usr/bin, bei
X Xenix steht er aber in /bin.Ausserdem sollte kein Editor
X definiert werden wenn die Shell-Variable EDITOR gesetzt ist
X (wird u.a. auch in vnews benutzt (der von bnews zumindestens)).
X FIX. tin.h - Added #ifdef M_XENIX #define DEFAULT_EDITOR /bin/vi #endif
X
X5) rsalz@bbn.com (Rich Salz)
X Contributed newer version (June 91) of wildmat.c & wildmat.3 routines
X
X6) v.hoang@att.com (Viet Hoang)
X BUG. <sys/types.h> defined in tin.h and open.c
X FIX. open.c - deleted <sys/types.h>
X
X7) v.hoang@att.com (Viet Hoang)
X BUG. The entry for sysv in Makefile uses double backslash when it
X should only be single backslash.
X FIX. Makefile - changed \\ to \ in sysv entry.
X
X8) kos@nd.se (Karl-Olov Serrander)
X BUG. If tin is suid news, it is not possible to create .tin and
X .tin/.tinrc when you use command M.
X FIX. rcfile.c - write_rcfile() now uses setuid() & setgid() routines.
X
X9) iain@estevax.uucp (Iain Lea)
X BUG. If tin is suid news, it has problems creating files in users home
X dir.
X FIX. kill.c misc.c post.c - added setuid() & setgid() routines.
X
X10) unido!asd.tds.philips.se!kko (Karl-Koenig Koenigsson)
X BUG. If I do "tin -u" via cron, the job gets aborted due to the
X environment variable TERM not being defined.
X FIX. main.c - main() put do_update() before curses is initialized.
X
X11) iain@estevax.uucp (Iain Lea)
X BUG. Inverse video does not work correctly on sysV machines
X FIX. page.c group.c select.c screen.c - modified inverse routines.
X
X12) unido!gmdzi.gmd.de!brosig (Andreas Brosig)
X BUG. Ich hatte in TASS die Moeglichkeit mit !:kommando: shell-
X Kommandos abzugeben; gut, das geht mit TIN auch, aber nach
X der shell-Kommando Ausgabe wird direkt ein redraw des Screens
X gemacht, zu schnell fuer meine Augen. TASS wartete noch auf
X einen Tastendruck des Benutzers.
X FIX. misc.c - shell_escape() added continue_prompt() to wait for
X user input.
X
X13) cliff@norisc.uucp (Clifford Luke)
X BUG. When ^Z done in Options Menu 'M' incorrect screen is redrawn
X when process is restarted. Wrong signal handler set.
X FIX. signal.c rcfile.c - added signal handler for change_rcfile().
X
X14) cliff@norisc.uucp (Clifford Luke)
X BUG. When ^Z done under SysVR4 the screen goes into endless loop
X of redrawing itself. Many thanx for patches supplied.
X FIX. signal.c - added POSIX? signal handler code to all handlers.
X
X15) iain@estevax.uucp (Iain Lea)
X Added percentage info to bottom of group & select menus.
X
X16) rdb@oasis.icl.co.uk (Roger Binns)
X BUG. I would like it to do something about non-existent groups.
X It should delete them or something.
X FIX. newsrc.c - rewrite_newsrc() writes new newsrc with only
X newsgroups that are present in active file.
X
X17) iain@estevax.uucp (Iain Lea)
X Rewrote mail,pipe,print & save commands to handle a)rticle,
X t)thread r)egex pattern and T)agged articles.
X
X18) unido!tintin.rivm.nl!a3 (Adri Verhoef)
X BUG. Failed posts don't get saved (to dead.article).
X FIX. post.c - changed post_base() & post_response()
X
X19) unido!tintin.rivm.nl!a3 (Adri Verhoef)
X BUG. inews not found. (Mine is located in ~news/nntp)
X Thanx for the supplied patches.
X FIX. added INEWSDIR define. Set to inews dir otherwise
X defaults to LIBDIR.
X
X20) unido!tintin.rivm.nl!a3 (Adri Verhoef)
X BUG. From the options menu it is not clear that you use a <CR> to
X leave the option that you are toggling.
X FIX. lang.c - rewrote text messages to mention <CR> being needed.
X
X21) unido!tintin.rivm.nl!a3 (Adri Verhoef)
X BUG. Long newsgroup names cause troubles; when I jumped to the
X last newsgroup ($), the following appeared:
X 191 alt.wpi.negativland.subgenii.for.rent
X 2 general
X ^^
X FIX. select.c - changed max length of newsgroup name from 36 to 40.
X
X22) iain@estevax.uucp (Iain Lea)
X Finished man page.
X
X23) iain@estevax.uucp (Iain Lea)
X BUG. mail_setup () will not work if MAIL env varaible not set.
X FIX. mail.c - mail_setup() now checks mailbox path as well.
X
X24) crs@siesoft.co.uk (Chris Smith)
X BUG. help screens are hard coded for 25 line terminals so if
X screen is bigger it cannot use the extra space.
X FIX. help.c - show_help_screen() rewrote to use maximum lines.
X
X25) bernd@norisc.uucp (Bernd Schwerin)
X BUG. Save operation doesnt ask for a base filename when saving
X tagged articles. After saving the tagged articles the
X pathnames are .01, .02 etc.
X FIX. feed.c - feed_articles () removed if () to allow tagged files
X sequence to ask for filename to save to.
X
XCHANGES tass v3.2 -> tin v1.00
X------------------------------
X
Xo News can be read locally (ie. /usr/spool/news) or remotely by NNTP (-r option)
X
Xo User can config tin's options dynamically by 'M' command and have them
X saved to ~/.tin/tinrc.
X
Xo Archive-name: mail header is used when saving and post processing
X articles / threads.
X
Xo Adjusts to size of screen for how much of Subject: & From: is displayed.
X
Xo Post processes saved articles/threads. It will handle sh, uudecode,
X zoo, lharc, arc and zip (unzip) formats.
X
Xo Articles can be sorted on Subject:, From:, Date: field or nothing.
X
Xo Killfile support (Not fully debugged). Kill articles at single group
X / all groups on Subject:,From: line or on user entered pattern.
X
Xo Saves articles / threads to elm mailbox by pressing '=' when asked
X for name of saved file.
X
Xo Displays history of user posted articles/replies & followups.
X
Xo Higlighted bar / -> arrow can be used for selecting articles
X
Xo Tagging of articles to save in a particular order
X
XAnd many other small changes.
X
SHAR_EOF
$TOUCH -am 0923175591 CHANGES &&
chmod 0600 CHANGES ||
echo "restore of CHANGES failed"
set `wc -c CHANGES`;Wc_c=$1
if test "$Wc_c" != "14067"; then
echo original size 14067, current size $Wc_c
fi
# ============= TODO ==============
echo "x - extracting TODO (Text)"
sed 's/^X//' << 'SHAR_EOF' > TODO &&
XFIX FEATURES
X------------
Xo Fix uuscram code in uudecode.
X
Xo Fix code to sort arts. At page level funny things happen.
X
Xo Fix code to KILL articles. At page level funny things happen.
X
Xo Fix code to KILL articles with 't' command.
X
Xo Fix 'z' so that it stays unread even if a KILL is performed before
X leaving the group.
X
Xo Fix so that it always finds unread messages.
X
XADD FEATURES
X------------
Xo 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 Needs to handle 'c' 'C' 'k' 'K' commands. Perhaps it should be an
X option so that performance is not impaired.
X
Xo Add 'C' command at group level to catchup present group and
X enter next group with unread news in it.
X
Xo Add code to 'N' at group level so it goes to next group with unread news.
X
Xo 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
Xo Add 'H' context senstive level help screens
X
Xo Sort .newsrc according to preference. (sort active file as it is read)
X
Xo Add code to do unpack patches
X
Xo Add time period kill article
X
XPIPEDREAMS
X----------
Xo Add rebindable keymaps and provide different terminal keymaps
X (ie. keymap.ansi, keymap.wy50 etc.)
X
Xo Add support for german text messages.
X
Xo Add Virtual newsgroups (combination of newsgroups ie. virtual.ibm
X consists of comp.sys.ibm.* groups).
X
Xo Add threading on References like trn with mthreads database.
X
Xo Add full curses support instead of using printf()'s.
X
Xo Sub all not empty groups by looking at min max values in active array
X and Unsub all empty groups by looking at min max values in active
X array. have a command to do this in a toggle effect.
SHAR_EOF
$TOUCH -am 0923175591 TODO &&
chmod 0600 TODO ||
echo "restore of TODO failed"
set `wc -c TODO`;Wc_c=$1
if test "$Wc_c" != "1810"; then
echo original size 1810, current size $Wc_c
fi
# ============= UPDATE_INDEX ==============
echo "x - extracting UPDATE_INDEX (Text)"
sed 's/^X//' << 'SHAR_EOF' > UPDATE_INDEX &&
X#! /bin/csh -f
X# Iain Lea, 21-08-91
X# Script to update tin indexes from the at queue
X
X# required for at
Xsetenv HOME /piez/iain
Xsetenv NAME 'Iain J. Lea'
Xsetenv GROUP 'piez'
Xsetenv PATH :/usr/ucb:/bin:/usr/bin:/usr/local
X
X# specific for this script
Xsetenv SCRIPT /piez/iain/bin/UPDATE_INDEX
Xsetenv TIME 0700
Xsetenv TINDIR /piez/iain/bin
X
X# hangs update indexes onto system batch queue
X$TINDIR/tin -u > $HOME/UPDATE_LOG
X
X# sleeps and then submits this script again for tommorow
X/usr/bin/sleep 1200
X/usr/local/at $TIME $SCRIPT
SHAR_EOF
$TOUCH -am 0923175591 UPDATE_INDEX &&
chmod 0700 UPDATE_INDEX ||
echo "restore of UPDATE_INDEX failed"
set `wc -c UPDATE_INDEX`;Wc_c=$1
if test "$Wc_c" != "530"; then
echo original size 530, current size $Wc_c
fi
# ============= tin.1 ==============
echo "x - extracting tin.1 (Text)"
sed 's/^X//' << 'SHAR_EOF' > tin.1 &&
X.TH TIN 1 "Version 1.0 PL2"
X.SH NAME
Xtin \- Visual threaded Usenet news reader
X.SH SYNOPSIS
X.B tin
X[options] [newsgroups]
X.SH DESCRIPTION
X.I Tin
Xis a full-screen threaded Usenet newsreader. It can read news
Xlocally (ie. \fI/usr/spool/news\fP) or remotely (-r option) via
Xa NNTP (Network News Transport Protocol) server.
X.PP
XTin has three newsreading levels:
Xthe newsgroup selection page, the group index page and the article viewer.
XUse the 'h' (help) command to view a list of the commands available at a
Xparticular level, or the 'H' command to view context sensitive help.
X.PP
XOn startup Tin will show a list of the newsgroups found in \fI$HOME/.newsrc\fP.
XAn arrow '->' or highlighted bar will point to the first newsgroup.
XMove to a group by using the terminal arrow keys (ansi/at386/vt100 only) or
X'j' and 'k'. Use PgUp/PgDn (ansi/at386/vt100 only) or Ctrl-U and Ctrl-D to
Xpage up/down. Enter a newsgroup by pressing RETURN.
X.PP
XThe TAB key may be used to advance to the next newsgroup with unread articles
Xand enter it.
X.SH OPTIONS
X.TP 10
X\fB-c\fP
Xcreate/update index files for every group in \fI$HOME/.newsrc\fP or
Xfile specified by -f option and mark all articles as read.
X.TP
X\fB-d dir\fP
Xsave articles to directory. Default is \fI$HOME/News\fP.
X.TP
X\fB-f file\fP
XUse the indicated file in place of \fI$HOME/.newsrc\fP.
X.TP
X\fB-h\fP
Xhelp.
X.TP
X\fB-m file\fP
Xmail program to use for sending mail. Default is \fI/usr/ucb/mail\fP.
X.TP
X\fB-M dir\fP
Xmailbox directory to use. Default is \fI$HOME/Mail\fP.
X.TP
X\fB-n\fP
Xnotify the user of any new newsgroups since last session.
X.TP
X\fB-p file\fP
Xprint program with options. Default is \fI/usr/ucb/lpr\fP.
X.TP
X\fB-r\fP
Xread news remotely from the default NNTP server specified in the
Xenvironment variable NNTPSERVER or contained in the file
X\fI/etc/nntpserver\fP.
X.TP
X\fB-s dir\fP
Xspool directory where news is stored. Default is \fI/usr/spool/news\fP.
X.TP
X\fB-S\fP
Xsave news articles for later reading. Useful when going on holiday and
Xyou don't want to return and find that expire has removed a whole load
Xof unread articles. Best to run from crontab everyday while away. After
Xeach run the user will be mailed a report of which articles were saved
Xin which groups and the total number of articles saved. To keep your
X\fI$HOME/.newsrc\fP upto date specify the -u option as well. Articles
Xare saved in a private news structure under your <savedir> directory
X(default is \fI$HOME/News\fP). Be careful of using this option if you
Xread a lot of groups because you could overflow your filesystem. If
Xyou only want to save a few groups it would be best to backup your
Xfull \fI$HOME/.newsrc\fP and create a new one that only contains the
Xgroups you want to save. Saved news can be read later by starting tin
Xwith the -s <savedir> option.
X.TP
X\fB-u\fP
Xcreate/update index files for every group in \fI$HOME/.newsrc\fP or
Xfile specified by -f option.
X.TP
X\fB-U\fP
Xstart tin in the background to update index files while reading news
Xin the foreground.
X.TP
X\fB-v\fP
Xcreate/update index files for every group in \fI$HOME/.newsrc\fP or
Xfile specified by -f option. Each group name is printed to stdout as
Xit is updated.
X.PP
XTin can also dynamically change its options by the 'M' menu command.
XAny changes are written to \fI$HOME/.tin/tinrc\fP.
X.SH "INDEX FILES"
XIn order to keep track of threads, Tin maintains an index for each group.
XIf Tin is made setuid to news, the indexes will be stored in the news spool
Xdirectory (typically \fI/usr/spool/news\fP). If Tin is not setuid, it
Xwill store index files in the subdirectory \fI$HOME/.tin/.index\fP.
XDo not make Tin setuid news if news will be obtained via NNTP and not
Xfrom \fI/usr/spool/news\fP.
X.PP
XEntering a group the first time tends to be slow because the index file must
Xbe built from scratch. Subsequent readings of a group will cause
XTin to incrementally update the index file, adding or removing entries as new
Xarticles come in or as news expires. If reading news remotely indexing
Xwill be somewhat slower because the articles must be retrieved via the
XNNTP.
X.PP
XA good way to keep Tin index files current is to run tin -u from cron:
X.RS
X.nf
X20 6 * * * /usr/local/bin/tin -u -f /usr/lib/news/tin_groups
X.fi
X.RE
XThis would update the index files for those groups appearing in
X\fI/usr/lib/news/tin_groups\fP. To index all of the groups on the
Xsystem, run tin -u with -f indicating the active file:
X.RS
X.nf
X20 6 * * * /usr/local/bin/tin -u -f /usr/lib/news/active
X.fi
X.RE
X.SH "SCREEN FORMAT"
XTin has three separate levels of operation: Selection Group level, Group level
Xand Article level.
X.PP
XAt the Selection Group level the newsgroups are displayed on the left
Xof the screen with the number of unread articles displayed on the same
Xline in the middle of the screen.
X.RS
X.nf
X.in +.5i
X.ta +\w'1 'u +\w'news.software.readers 'u
X<Selection Num> <Newsgroup> <Num of unread articles>
X.ti -.5i
Xi.e.,
X1 alt.sources 10
X2 comp.sources.misc 3
X3 news.software.readers 12
X.in -.5i
X.fi
X.RE
X.PP
XAt the Group level the following formats are possible:
X.RS
X.nf
X.in +.5i
X.ta +\w'1 'u +\w'+ 'u +\w'This question has 'u +\w'1 'u
X<Selection Num> <Unread> <Responses> <Subject> <Author>
X.ti -.5i
Xi.e.,
X1 + 3 Bnews sources? iain@estevax
X2 1 This question has ether@net
X.ti -.5i
Xor
X.ta +\w'1 'u +\w'+ 'u +\w'This question has a long subject line 'u
X<Selection Num> <Unread> <Responses> <Subject (longer)>
X.ti -.5i
Xi.e.,
X1 + 3 Bnews sources?
X2 1 This question has a longer subject line
X.in -.5i
X.fi
X.RE
X.PP
XAt the Article level the page header has the following format:
X.RS
X.nf
X.in +.5i
X.ta \w'<Date posted> <Newsgroup> 'u
X<Date posted> <Newsgroup> <Thread 1 of n>
X<Article Num> <Subject> <Num of responses in thread>
X<Author> <Organization>
X
X<Article body>
X.ti -.5i
Xi.e.,
X.ta \w'24 Jul 15:20:03 GMT 'u +\w'Bnews sources? 'u
X24 Jul 15:20:03 GMT alt.sources Thread 1 of 2
XArticle 452 Bnews sources? 3 responses
Xiain@estevax Siemens AG, Germany
X
X<Article boby>
X.in -.5i
X.fi
X.RE
X.SH "COMMON MOVING KEYS"
XThis table shows the common keys/commands for moving at all three levels
Xwithin Tin.
X.RS
X.nf
X.ta \w'Beginning of list/article 'u +\w'ansi/at386/vt100 'u
X ansi/at386/vt100 Other Terminals
XBeginning of list/article \fBHome\fP \fB1\fP (\fB^R\fP or \fBg\fP at article level)
XEnd of list/article \fBEnd\fP \fB$\fP (also \fBG\fP at article level)
XPage Up \fBPgUp\fP \fB^U\fP or \fBb\fP
XPage Down \fBPgDn\fP \fB^D\fP or \fB<SPACE>\fP
XLine Up \fBUp arrow\fP \fBk\fP (not at article level)
XLine Down \fBDown arrow\fP \fBj\fP (not at article level)
X.fi
X.RE
X.SH "NEWSGROUP SELECTION COMMANDS"
X.TP 10
X\fB4\fP
XSelect group 4.
X.TP
X\fB^K\fP
XDelete current group from \fI$HOME/.newsrc\fP file.
X.TP
X\fB^L\fP
XRedraw page.
X.TP
X\fB^R\fP
XReset \fI$HOME/.newsrc\fP file.
X.TP
X\fB<CR>\fP
XRead current group.
X.TP
X\fB<TAB>\fP
XView next unread group.
X.TP
X\fBB\fP
XMail a bug/gripe/comment to the author of tin. This is the best way
Xof getting bugs fixed and features added/changed.
X.TP
X\fBc\fP
XMark current group as all read and goto next group in group selection list.
X.TP
X\fBC\fP
XMark current group as all read and goto next unread group in group selection
Xlist.
X.TP
X\fBg\fP
XChoose a new group by name. The position of the group within the group
Xlist will also be asked for. By entering '1' the new group will be the
Xfirst group in the displayed list, by entering '8' the group will be
Xthe eighth group in the list etc. By entering '$' the group will be the
Xlast group displayed.
X.TP
X\fBh\fP
Xhelp screen of newsgroup selection commands.
X.TP
X\fBH\fP
Xhelp screen of context sensitive help about newsgroup selection level.
X.TP
X\fBI\fP
XToggle inverse video.
X.TP
X\fBm\fP
XMove the current group within the group selection list.
XBy entering '1' the group will become the first displayed group in
Xthe list, by entering '8' the eighth group in the list etc. By
Xentering '$' the group will be the last group displayed.
X.TP
X\fBM\fP
XUser configurable options menu (for more information see section Options Menu).
X.TP
X\fBq\fP
XQuit tin.
X.TP
X\fBs\fP
XSubscribe to current group.
X.TP
X\fBS\fP
XSubscribe to groups matching user specified pattern.
X.TP
X\fBu\fP
XUnsubscribe to current group.
X.TP
X\fBU\fP
XUnsubscribe to groups matching user specified pattern.
X.TP
X\fBv\fP
XPrint tin version number.
X.TP
X\fBw\fP
XPost an article to current group.
X.TP
X\fBW\fP
XList articles posted by user. The date posted, the newsgroup and the
Xsubject are listed.
X.TP
X\fBy\fP
XThe first time this command is called it will yank in all groups from
X\fI/usr/local/news/active\fP that are not in \fI$HOME/.newsrc\fP.
XAfter any groups have been subscribed/unsubscribed to, this command
Xif pressed again will reread \fI$HOME/.newsrc\fP and display only
Xsubscribed groups.
X.TP
X\fBY\fP
XReread group list from \fI$HOME/.newsrc\fP file.
X.TP
X\fBz\fP
XMark all articles in the current group as unread.
X.TP
X\fBZ\fP
XUndelete previously deleted group from \fI$HOME/.newsrc\fP file.
X.TP
X\fB/\fP
XGroup forward search.
X.TP
X\fB?\fP
XGroup backward search.
X.SH "GROUP INDEX COMMANDS"
X.TP 10
X\fB4\fP
XSelect article 4.
X.TP
X\fB^K\fP
XKill current article (for more information read section Kill Article Menu).
X.TP
X\fB^L\fP
XRedraw page.
X.TP
X\fB<CR>\fP
XRead current article.
X.TP
X\fB<TAB>\fP
XView next unread article or group.
X.TP
X\fBa\fP
XAuthor forward search.
X.TP
X\fBA\fP
XAuthor backward search.
X.TP
X\fBB\fP
XMail a bug/gripe/comment to the author of tin. This is the best way
Xof getting bugs fixed and features added/changed.
X.TP
X\fBc\fP
XMark all articles as read.
X.TP
X\fBC\fP
XCancel current article. It must have been posted by the same user. The
Xcancel message can be seen in the newsgroup 'control'.
X.TP
X\fBg\fP
XChoose a new group by name.
X.TP
X\fBh\fP
Xhelp screen of group index commands.
X.TP
X\fBH\fP
Xhelp screen of context sensitive help about group index level.
X.TP
X\fBI\fP
XToggle inverse video.
X.TP
X\fBK\fP
XMark article/thread as read and advance to next unread article/thread.
X.TP
X\fBm\fP
XMail current article / thread / articles matching pattern / tagged articles
Xto someone.
X.TP
X\fBM\fP
XUser configurable options menu (for more information see section Options Menu).
X.TP
X\fBn\fP
XGo to next group.
X.TP
X\fBN\fP
XGo to next unread group.
X.TP
X\fBo\fP
XOutput current article / thread / articles matching pattern / tagged articles
Xto printer.
X.TP
X\fBp\fP
XGo to previous group.
X.TP
X\fBP\fP
XGo to previous unread group.
X.TP
X\fBq\fP
XQuit tin.
X.TP
X\fBs\fP
XSave current article / thread / articles matching pattern / tagged articles
Xto file / files / mailbox. To save to a mailbox enter '=' or '=mailbox' when
Xasked for filename to save to. To save to <newsgroup name>/<filename> enter '+<filename>'.
X.TP
X\fBT\fP
XTag current article for mailing ('m') / piping ('|') / printing ('o') / saving ('s').
X.TP
X\fBt\fP
XReturn to group selection index.
X.TP
X\fBU\fP
XUntag all articles that were tagged for saving.
X.TP
X\fBv\fP
XPrint tin version number.
X.TP
X\fBw\fP
XPost an article to current group.
X.TP
X\fBW\fP
XList articles posted by user. The date posted, the newsgroup and the
Xsubject are listed.
X.TP
X\fBz\fP
XMark current article as unread.
X.TP
X\fBZ\fP
XMark current thread as unread.
X.TP
X\fB/\fP
XSearch forward for specified subject.
X.TP
X\fB?\fP
XSearch backward for specified subject.
X.TP
X\fB-\fP
XShow last message.
X.TP
X\fB|\fP
XPipe current article / thread / articles matching pattern / tagged articles
Xinto command.
X.SH "ARTICLE COMMANDS"
X.TP 10
X\fB0\fP
XRead the base article in this thread.
X.TP
X\fB4\fP
XRead response 4 in this thread.
X.TP
X\fB^H\fP
XShow all of the articles mail header.
X.TP
X\fB^K\fP
XKill current article (for more information read section Kill Article Menu).
X.TP
X\fB^L\fP
XRedraw page.
X.TP
X\fB<CR>\fP
XSkip to next base article.
X.TP
X\fB<TAB>\fP
XAdvance to next page or unread article.
X.TP
X\fBa\fP
XAuthor forward search.
X.TP
X\fBA\fP
XAuthor backward search.
X.TP
X\fBB\fP
XMail a bug/gripe/comment to the author of tin. This is the best way
Xof getting bugs fixed and features added/changed.
X.TP
X\fBc\fP
XMark all articles as read.
X.TP
X\fBd\fP
XToggle rot-13 decoding for this article.
X.TP
X\fBf\fP
XPost a followup to current article.
X.TP
X\fBF\fP
XPost a followup with a copy of the current article included.
X.TP
X\fBh\fP
XHelp screen of article page commands.
X.TP
X\fBH\fP
XHelp screen of context sensitive help about article page level.
X.TP
X\fBi\fP
XReturn to index page.
X.TP
X\fBI\fP
XToggle inverse video.
X.TP
X\fBk\fP
XMark article as read and advance to next unread article.
X.TP
X\fBK\fP
XMark thread as read and advance to next unread thread.
X.TP
X\fBm\fP
XMail current article / thread / articles matching pattern / tagged articles
Xto someone.
X.TP
X\fBM\fP
XUser configurable options menu (for more information see section Options Menu).
X.TP
X\fBn\fP
XGo to to the next article.
X.TP
X\fBN\fP
XGo to to the next unread article.
X.TP
X\fBo\fP
XOutput current article / thread / articles matching pattern / tagged articles
Xto printer.
X.TP
X\fBo\fP
XOutput article/thread/tagged articles to printer.
X.TP
X\fBp\fP
XGo to the previous article.
X.TP
X\fBP\fP
XGo to the previous unread article.
X.TP
X\fBq\fP
XQuit tin.
X.TP
X\fBr\fP
XReply through mail to author.
X.TP
X\fBR\fP
XReply through mail to author with a copy of the current article included.
X.TP
X\fBs\fP
XSave current article / thread / articles matching pattern / tagged articles
Xto file(s) / mailbox. To save to a mailbox enter '=' or '=mailbox' when
Xasked for filename to save to. To save to <newsgroup name>/<filename> enter '+<filename>'.
X.TP
X\fBt\fP
XReturn to group selection index.
X.TP
X\fBv\fP
XPrint tin version number.
X.TP
X\fBw\fP
XPost an article to current group.
X.TP
X\fBW\fP
XList articles posted by user. The date posted, the newsgroup and the
Xsubject are listed.
SHAR_EOF
echo "End of tin1.02 part 1"
echo "File tin.1 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.