home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume23 / tin / part01 next >
Text File  |  1991-09-25  |  53KB  |  1,601 lines

  1. Newsgroups: comp.sources.misc
  2. From: iain@estevax.uucp (Iain J. Lea)
  3. Subject:  v23i015:  tin - threaded full screen newsreader v1.0 PL2, Part01/09
  4. Message-ID: <csm-v23i015=tin.154849@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: b5aa4ffc0bd60998670606284e1ebce0
  6. Date: Wed, 25 Sep 1991 20:49:32 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: iain@estevax.uucp (Iain J. Lea)
  10. Posting-number: Volume 23, Issue 15
  11. Archive-name: tin/part01
  12. Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
  13.  
  14. This is version 1.0 PL2 (Patchlevel 2) of the tin newsreader.
  15.  
  16. Major improvements over tin 1.0 PL1 are the following:
  17.  
  18. o  -n option informs of any new newsgroups since last session.
  19. o  -S option saves news to private news structure for later reading.
  20. o  -U option forks a tin -u to update indexes while reading news in foregroud.
  21. o  Goto first / last unread article within a group (selectable).
  22. o  Resizes automatically if running under an Xterm.
  23. o  Added regex pattern matching to kill articles.
  24. o  Cancel a posted article from within tin.
  25. o  Backups .newsrc to .oldnewsrc on starting tin.
  26.  
  27. For more bugs fixes, other changes & additions read the CHANGES & TODO files.
  28. For the full blurb read README and tin.1 man page...
  29.  
  30.  Credits
  31.  -------
  32. I wish to give credit to the following people for the routines
  33. that they have written and I have used in tin:
  34.  
  35. Rich Skrenta  - tass v3.2 that tin is based upon.
  36. Syd Weinstein - curses.c is taken from the elm mailreader
  37. Rich Salz     - wildmat regex pattern matching routine
  38. Chris Smith   - multi-part uudecode routine 
  39.  
  40. I wish to thank the following people for bug reports/patchs/comments:
  41.  
  42. Klaus Arzig, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
  43. Andreas Brosig, Peter Dressler, Gerhard Ermer, Joachim Feld,
  44. Bernhard Gmelch, Viet Hoang, Joe Johnson, Cyrill Jung,
  45. Karl-Koenig Koenigsson, Hans-Juergen Knopp, Bob Lukas, Clifford Luke,
  46. Phillip Molloy, Toni Metz, Greg Miller, Klaus Neuberger, Otto Niesser,
  47. Wolf Paul, Nickolay Saukh, Rich Salz, Fredy Schwatz, Bernd Schwerin,
  48. Karl-Olav Serrander, Chris Smith, Cliff Stanford, Adri Verhoef,
  49. Cary Whitney
  50.  
  51. I may be off the net for a couple of months at the end of September, but
  52. will be contactable at the following address:
  53.     Iain J. Lea
  54.     BrueckenStr. 12
  55.     8500 Nuernberg 90
  56.     Germany.
  57.     Phone. +49-911-331963   (home)
  58.     Phone. +49-911-895-3853 (work until Sep 30)
  59.     Phone. +49-911-3089-407 (work from Oct 1)
  60.     Email. iain@estevax.uucp (will only be reading mailbox weekly)
  61.  
  62. ----------
  63. #!/bin/sh
  64. # This is tin1.02, a shell archive (shar 3.24)
  65. # made 09/24/1991 12:18 UTC by iain@estevax.uucp
  66. # Source directory /piez/iain/.src/tin
  67. #
  68. # existing files WILL be overwritten
  69. #
  70. # This is part 1 of a multipart archive                                    
  71. # do not concatenate these parts, unpack them in order with /bin/sh        
  72. #
  73. # This shar contains:
  74. # length  mode       name
  75. # ------ ---------- ------------------------------------------
  76. #   8986 -rw------- Makefile
  77. #    757 -rw------- MANIFEST
  78. #   4762 -rw------- README
  79. #  14067 -rw------- CHANGES
  80. #   1810 -rw------- TODO
  81. #    530 -rwx------ UPDATE_INDEX
  82. #  26331 -rw------- tin.1
  83. #   2247 -rw------- wildmat.3
  84. #  26620 -rw------- art.c
  85. #   6043 -rw------- curses.c
  86. #   2575 -rw------- debug.c
  87. #  11087 -rw------- feed.c
  88. #  19165 -rw------- group.c
  89. #   2811 -rw------- hashstr.c
  90. #   5124 -rw------- help.c
  91. #   9529 -rw------- kill.c
  92. #  17911 -rw------- lang.c
  93. #   7015 -rw------- main.c
  94. #   6239 -rw------- memory.c
  95. #  19195 -rw------- misc.c
  96. #  19674 -rw------- newsrc.c
  97. #   6736 -rw------- open.c
  98. #  24185 -rw------- page.c
  99. #  17061 -rw------- post.c
  100. #   3098 -rw------- prompt.c
  101. #  18379 -rw------- rcfile.c
  102. #  19585 -rw------- save.c
  103. #   2171 -rw------- screen.c
  104. #   7830 -rw------- search.c
  105. #  19579 -rw------- select.c
  106. #   7569 -rw------- signal.c
  107. #   4749 -rw------- wildmat.c
  108. #   9348 -rw------- tin.h
  109. #   9707 -rw------- lang.h
  110. #   3688 -rw------- nntp.h
  111. #  17147 -rw------- proto.h
  112. #     21 -rw------- patchlevel.h
  113. #
  114. if touch 2>&1 | fgrep '[-amc]' > /dev/null
  115.  then TOUCH=touch
  116.  else TOUCH=true
  117. fi
  118. if test -r shar3_seq_.tmp; then
  119.     echo "Must unpack archives in sequence!"
  120.     next=`cat shar3_seq_.tmp`; echo "Please unpack part $next next"
  121.     exit 1
  122. fi
  123. # ============= Makefile ==============
  124. echo "x - extracting Makefile (Text)"
  125. sed 's/^X//' << 'SHAR_EOF' > Makefile &&
  126. X# Makefile for tin
  127. X#
  128. X# NB. NNTP (NetNews Transport Protocol RFC 977) is required if you 
  129. X#     wish to read news remotely. It is a seperate package that is
  130. X#     available from many FTP and mailserver sites. 
  131. X
  132. X# command line compile flags
  133. X#
  134. X#  -D LIBDIR=\"\"
  135. X#    defaults to /usr/lib/news if not defined.
  136. X#
  137. X#  -D INEWSDIR=\"\"
  138. X#    define if inews is not in LIBDIR. defaults to LIBDIR if not defined.
  139. X#
  140. X#  -D SPOOLDIR=\"\"
  141. X#    defaults to /usr/spool/news if not defined.
  142. X#
  143. X#  You only need to worry about the following three defines if you have
  144. X#  defined NNTP to build a version to access news locally & remotely
  145. X#
  146. X#  -D USE_NNTP
  147. X#    include -DUSE_NNTP if you want to allow reading of news locally 
  148. X#    and also remotely via the -r option over an NNTP server.
  149. X#
  150. X#  -D NNTPLIB=
  151. X#    point NNTPLIB at the nntp clientlib.o support library
  152. X#
  153. X#  -D NETLIBS=
  154. X#    NETLIBS should be the networking libraries you need to link with
  155. X#    the nntp clientlib.o
  156. X#
  157. X#  -D POSIX_JOB_CONTROL
  158. X#    define if your machine uses sigaction() POSIX signal handling.
  159. X#    This is defined as default for SysVR4 machines in this makefile.
  160. X#
  161. X#  -D USE_MKDIR
  162. X#    define if your machine does not have the mkdir() system call.
  163. X#
  164. X#  -D USE_LONG_FILENAMES
  165. X#    include -DUSE_LONG_FILENAMES if filesystem supports filenames
  166. X#    longer than 14 chars. (default for BSD type systems)
  167. X#
  168. X#  -D USE_INVERSE_HACK
  169. X#    define if you want inverse video and highlighted bar disabled.
  170. X#    (default for SCO Unix & SysVR4) Can be toggled in tin by the
  171. X#    'I' command & highlight bar by 'M' command.
  172. X#
  173. X#  -D USE_CLEARSCREEN
  174. X#    define if the you wish screen to use ClearScreen() and not MoveCursor()
  175. X#    and CleartoEOLN(). This is perhaps faster on slow terminals but I have
  176. X#    not really run any speed tests. Not sure this option works anymore.
  177. X#
  178. X#  -D DONT_USE_REGEX
  179. X#    don't match strings using regular expressions, just use strstr().
  180. X#
  181. X#  -D DONT_USE_START_LINE
  182. X#    stop editor being started with line offset into file
  183. X#
  184. X#  -D SLOW_SCREEN_UPDATE
  185. X#    useful if running over a low speed connection (ie. 2400baud).
  186. X#    1) stops percentage being shown at bottom of select and group menus.
  187. X#    2) stops group being written to screen as it is subscribed/unsubscribed.
  188. X#
  189. X
  190. X# name of executable file
  191. X#
  192. XEXE=tin
  193. X
  194. X# name of dir where base version is for use by diff program
  195. X#
  196. XBASE_DIR=../tin-1.01
  197. X#BINDIR = /piez/iain/bin
  198. XBINDIR = /usr/local/bin
  199. XSTRIP = strip
  200. XROFF = + drf -F Helvetica -man3 
  201. XPRINT= -Pps0
  202. X
  203. XHFILES    =    tin.h lang.h nntp.h proto.h patchlevel.h
  204. X
  205. XCFILES    =    art.c curses.c debug.c feed.c group.c hashstr.c help.c kill.c \
  206. X        lang.c main.c memory.c misc.c newsrc.c open.c page.c post.c \
  207. X        prompt.c rcfile.c save.c screen.c search.c select.c signal.c wildmat.c
  208. X
  209. XOBJECTS    =    art.o curses.o debug.o feed.o group.o hashstr.o help.o kill.o \
  210. X        lang.o main.o memory.o misc.o newsrc.o open.o page.o post.o \
  211. X        prompt.o rcfile.o save.o screen.o search.o select.o signal.o wildmat.o
  212. X
  213. XSUPPORT = Makefile MANIFEST README CHANGES TODO UPDATE_INDEX *.[13]
  214. X
  215. XLINTFLAGS=-a -c -h -n -x 
  216. X
  217. X.c.o:
  218. X    $(CC) $(CFLAGS) $*.c
  219. X
  220. Xall: 
  221. X    @echo "There is no default. Specify one of the following targets."
  222. X    @echo "    make bsd       (BSD/Ultrix)"
  223. X    @echo "    make sysv      (SysV)"
  224. X    @echo "    make sysvr4    (SysV R4)"
  225. X    @echo "    make sco       (SCO Unix)"
  226. X    @echo "    make xenix     (Xenix 386)"
  227. X
  228. X# For Berkeley systems:
  229. Xbsd:
  230. X    @echo "Compiling for BSD/Ultrix..."
  231. X    @$(MAKE) CFLAGS='-c -O -DBSD -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  232. X             LIBS="-lcurses -ltermcap" \
  233. X             EXE=tin linkit
  234. X
  235. X# For System V:
  236. Xsysv:
  237. X    @echo "Compiling for System V..."
  238. X    @$(MAKE) CFLAGS='-c -O -DUSE_NNTP  -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  239. X             NNTPLIB="clientlib.o" \
  240. X             NETLIBS="-lnet -lnsl_s" \
  241. X             LIBS="-lcurses -ltermcap" \
  242. X             EXE=tin linkit
  243. X
  244. X# For System V Release 4:
  245. Xsysvr4:
  246. X    @echo "Compiling for System V Release 4..."
  247. X    @$(MAKE) CFLAGS='-c -O -DUSE_NNTP -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  248. X             NNTPLIB="./nntp/clientlib.o" \
  249. X             NETLIBS="-lnsl -lsocket" \
  250. X             LIBS="-lcurses -ltermcap -L/usr/ucblib -lucb" \
  251. X             EXE=tin linkit
  252. X
  253. X# For SCO Unix:
  254. Xsco:
  255. X    @echo "Compiling for SCO Unix..."
  256. X    @$(MAKE) CFLAGS='-c -O -UM_XENIX -DUSE_INVERSE_HACK  -DAUTO_RESIZE -DLIBDIR="\"/usr/lib/news\"" -DSPOOLDIR="\"/usr/spool/news\""' \
  257. X             LIBS="-lcurses -lgen -lc_s" \
  258. X             EXE=tin linkit
  259. X
  260. X# For Xenix 386:
  261. X#             NNTPLIB=clientlib.o
  262. X#             NETLIBS="-lsocket"
  263. Xxenix:
  264. X    @echo "Compiling for Xenix 386..."
  265. X    @$(MAKE) CFLAGS='-c -Zi -DSYSV -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
  266. X             LIBS="-lcurses -ltinfo -lx" \
  267. X             EXE=tin linkit
  268. X
  269. X# SITE SPECIFIC - IGNORE
  270. Xnorisc:
  271. X    @echo "Compiling for NORISC with NNTP..."
  272. X    @$(MAKE) CFLAGS='-c -g -DBSD -DUSE_NNTP -DAUTO_RESIZE -DLIBDIR=\"/news/lib\" -DSPOOLDIR=\"/news/spool\"' \
  273. X            NNTPLIB=/news/nntp/clientlib.o \
  274. X            LIBS="-lcurses -ltermcap" \
  275. X            EXE=tin linkit
  276. X
  277. X# SITE SPECIFIC - IGNORE
  278. Xestevax:
  279. X    @echo "Compiling for ESTEVAX with NNTP..."
  280. X    @$(MAKE) CFLAGS='-c -O -DBSD -DUSE_NNTP -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  281. X             NNTPLIB=/others/mtz/bnews2/NNTP/common/clientlib.o \
  282. X             LIBS="-lcurses -ltermcap" \
  283. X             EXE=tin linkit
  284. X
  285. X# SITE SPECIFIC - IGNORE
  286. Xkommu:
  287. X    @echo "Compiling for KOMMU with NNTP..."
  288. X    @$(MAKE) CFLAGS='-c -O -UM_XENIX -DUSE_INVERSE_HACK  -DAUTO_RESIZE -DUSE_NNTP -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
  289. X             NNTPLIB=/usr/spool/user/TONI/bnews2/NNTP/common/clientlib.o \
  290. X             NETLIBS="-lnsl_s -lsocket" \
  291. X             LIBS="-lcurses -lgen -lc_s" \
  292. X             EXE=tin linkit
  293. X
  294. Xlinkit: $(OBJECTS)
  295. X    @echo "Linking $(EXE)..."
  296. X#    $(CC) -Zi -o $(EXE) $(OBJECTS) $(NNTPLIB) $(NETLIBS) $(LIBS) 
  297. X    $(CC) -o $(EXE) $(OBJECTS) $(NNTPLIB) $(NETLIBS) $(LIBS) 
  298. X    @ls -l $(EXE)
  299. X
  300. Xinstall: all
  301. X    @echo "installing $(EXE)..."
  302. X    @$(STRIP) $(EXE)
  303. X    @-mv $(EXE) $(BINDIR)
  304. X    @chmod 755 $(BINDIR)/$(EXE)
  305. X
  306. Xinstall_setuid: all
  307. X    @echo "installing SETUID $(EXE)..."
  308. X    @mv $(EXE) $(BINDIR)
  309. X    @chown news $(BINDIR)/$(EXE) 
  310. X    @su news -c "chmod 4755 $(BINDIR)/$(EXE)"
  311. X
  312. Xproto:
  313. X    @echo "generating function prototypes for proto.h..."
  314. X    @echo "#ifdef __STDC__" > PROTO.H
  315. X    @echo " " >> PROTO.H
  316. X    @cproto $(CFILES) >> PROTO.H
  317. X    @echo " " >> PROTO.H
  318. X    @echo "#else" >> PROTO.H
  319. X    @echo " " >> PROTO.H
  320. X    @cproto -f1 $(CFILES) >> PROTO.H
  321. X    @echo " " >> PROTO.H
  322. X    @echo "#endif" >> PROTO.H
  323. X    @-mv PROTO.H proto.h
  324. X
  325. Xshar:
  326. X    @echo "generating shell archive..."
  327. X    @echo "MANIFEST for tin newsreader (`date`)" > MANIFEST
  328. X    @echo "--------------------------------------------------------------" >> MANIFEST
  329. X    @wc -c README CHANGES TODO UPDATE_INDEX Makefile *.[13] $(HFILES) $(CFILES) >> MANIFEST
  330. X    @shar -a -n $(EXE)1.02 -s iain@estevax.uucp -L50 -o ../$(EXE).shar $(SUPPORT) $(CFILES) $(HFILES)
  331. X
  332. Xuuencode:
  333. X    make tar
  334. X    @echo "uuencoding $(EXE).tar.Z..."
  335. X    @uuencode $(EXE).tar.Z $(EXE).tar.Z > $(EXE).tar.Z.uue
  336. X    @ls -l $(EXE).tar.Z.uue
  337. Xdiff:
  338. X    @echo "generating diffs against $(BASE_DIR) (results in $(EXE).diff)..."
  339. X    @-mv -f $(EXE).diff $(EXE).diff-
  340. X    @diff $(BASE_DIR) . > $(EXE).diff
  341. X
  342. Xtar:
  343. X    @echo "archiving files to $(EXE).tar..."
  344. X    @-rm $(EXE).tar $(EXE).tar.Z > /dev/null 2>&1
  345. X    @tar cvf $(EXE).tar $(SUPPORT) $(CFILES) $(HFILES) 
  346. X    @echo "compressing $(EXE).tar..."
  347. X    @compress $(EXE).tar 
  348. X    @ls -l $(EXE).tar.Z
  349. X
  350. Xzoo:
  351. X    @echo "archiving files to $(EXE).zoo..."
  352. X    @-rm $(EXE).zoo > /dev/null 2>&1
  353. X    @zoo ah $(EXE).zoo  $(SUPPORT) $(CFILES) $(HFILES)
  354. X    @ls -l $(EXE).zoo
  355. X
  356. Xtags:
  357. X    @echo "generating tags (results in ./tags)..."
  358. X    @-rm tags
  359. X    @ctags $(HFILES) $(CFILES) 
  360. X
  361. Xlint:
  362. X    @echo "linting source (results in ./LINT)..."
  363. X    @lint $(LINTFLAGS) -DUSE_NNTP $(CFILES) > LINT
  364. X
  365. Xclean:
  366. X    @echo "cleaning..."
  367. X    @-'rm' -rf *.o #* $(EXE).diff*
  368. X
  369. Xclobber:
  370. X    @echo "clobbering..."
  371. X    @-'rm' -rf *.o #* tags $(EXE) $(EXE).diff*
  372. X
  373. Xcflow:
  374. X    @echo "creating cflow for $(EXE)..."
  375. X    @cflow $(CFILES) > cflow.$(EXE) &
  376. X
  377. Xgrind:
  378. X    @echo "grinding tags index..."
  379. X    @ctags -v *.[ch] | sort -f > $(EXE).index
  380. X
  381. Xman:
  382. X    @echo "printing $(EXE) manual to $(PRINT)..."
  383. X    @$(ROFF) $(PRINT) $(EXE).1
  384. X
  385. Xprint:
  386. X    @for FILE in $(HFILES) $(CFILES); do \
  387. X    echo "printing $$FILE to $(PRINT)..."; \
  388. X    expand -4 $$FILE | enscript -2r -h -G $(PRINT) -b $$FILE; \
  389. X    done
  390. X
  391. Xdist:
  392. X    @for HOST in estevax kommu beperl; do \
  393. X    echo "copying to $$HOST..."; \
  394. X    rcp $(CFILES) $(HFILES) $(SUPPORT) $$HOST:.src/tin &; \
  395. X    done
  396. X
  397. Xart.o:        art.c $(HFILES)
  398. Xcurses.o:    curses.c
  399. Xdebug.o:    debug.c $(HFILES)
  400. Xfeed.o:        feed.c $(HFILES)
  401. Xgroup.o:    group.c $(HFILES)
  402. Xhashstr.o:    hashstr.c $(HFILES)
  403. Xhelp.o:        help.c $(HFILES)
  404. Xkill.o:        kill.c $(HFILES)
  405. Xlang.o:        lang.c $(HFILES)
  406. Xmain.o:        main.c $(HFILES)
  407. Xmemory.o:    memory.c $(HFILES)
  408. Xmisc.o:        misc.c $(HFILES)
  409. Xnewsrc.o:    newsrc.c $(HFILES)
  410. Xopen.o:        open.c $(HFILES)
  411. Xpage.o:        page.c $(HFILES)
  412. Xpost.o:        post.c $(HFILES)
  413. Xprompt.o:    prompt.c $(HFILES)
  414. Xrcfile.o:    rcfile.c $(HFILES)
  415. Xsave.o:        save.c $(HFILES)
  416. Xscreen.o:    screen.c $(HFILES)
  417. Xsearch.o:    search.c $(HFILES)
  418. Xselect.o:    select.c $(HFILES)
  419. Xsignal.o:    signal.c $(HFILES)
  420. Xwildmat.o:    wildmat.c $(HFILES)
  421. SHAR_EOF
  422. $TOUCH -am 0924141891 Makefile &&
  423. chmod 0600 Makefile ||
  424. echo "restore of Makefile failed"
  425. set `wc -c Makefile`;Wc_c=$1
  426. if test "$Wc_c" != "8986"; then
  427.     echo original size 8986, current size $Wc_c
  428. fi
  429. # ============= MANIFEST ==============
  430. echo "x - extracting MANIFEST (Text)"
  431. sed 's/^X//' << 'SHAR_EOF' > MANIFEST &&
  432. XMANIFEST for tin newsreader (Tue Sep 24 14:18:13 MET DST 1991)
  433. X--------------------------------------------------------------
  434. X    4762 README
  435. X   14067 CHANGES
  436. X    1810 TODO
  437. X     530 UPDATE_INDEX
  438. X    8986 Makefile
  439. X   26331 tin.1
  440. X    2247 wildmat.3
  441. X    9348 tin.h
  442. X    9707 lang.h
  443. X    3688 nntp.h
  444. X   17147 proto.h
  445. X      21 patchlevel.h
  446. X   26620 art.c
  447. X    6043 curses.c
  448. X    2575 debug.c
  449. X   11087 feed.c
  450. X   19165 group.c
  451. X    2811 hashstr.c
  452. X    5124 help.c
  453. X    9529 kill.c
  454. X   17911 lang.c
  455. X    7015 main.c
  456. X    6239 memory.c
  457. X   19195 misc.c
  458. X   19674 newsrc.c
  459. X    6736 open.c
  460. X   24185 page.c
  461. X   17061 post.c
  462. X    3098 prompt.c
  463. X   18379 rcfile.c
  464. X   19585 save.c
  465. X    2171 screen.c
  466. X    7830 search.c
  467. X   19579 select.c
  468. X    7569 signal.c
  469. X    4749 wildmat.c
  470. X  382574 total
  471. SHAR_EOF
  472. $TOUCH -am 0924141891 MANIFEST &&
  473. chmod 0600 MANIFEST ||
  474. echo "restore of MANIFEST failed"
  475. set `wc -c MANIFEST`;Wc_c=$1
  476. if test "$Wc_c" != "757"; then
  477.     echo original size 757, current size $Wc_c
  478. fi
  479. # ============= README ==============
  480. echo "x - extracting README (Text)"
  481. sed 's/^X//' << 'SHAR_EOF' > README &&
  482. XThis is version 1.0 PL2 (patchlevel 2) of the tin newsreader.
  483. X
  484. XMajor improvements over tin 1.0 PL1 are the following:
  485. X
  486. Xo  -n option informs of any new newsgroups since last session.
  487. X
  488. Xo  -S option saves news to private news structure for later reading.
  489. X
  490. Xo  -U option forks a tin -u to update indexes while reading news in foregroud.
  491. X
  492. Xo  Goto first / last unread article within a group (selectable).
  493. X
  494. Xo  Resizes automatically if running under an Xterm.
  495. X
  496. Xo  Added regex pattern matching to kill articles.
  497. X
  498. Xo  Cancel a posted article from within tin.
  499. X
  500. Xo  Backups .newsrc to .oldnewsrc on starting tin.
  501. X
  502. XFor more bugs fixes, other changes & additions read the CHANGES & TODO files.
  503. X
  504. XI am still looking for people to send me ideas/comments & bug reports.
  505. X
  506. XAnd now for a bit of blurb from the original version...
  507. X
  508. XTin is a full screen threaded newsreader that uses the tass newsreader as 
  509. Xits base. Tass was developed by Rich Skrenta (skrenta@blekko.commodore.com).
  510. XTin can read news locally and also via an NNTP server (-r option). Tin 
  511. Xcontains more features than tass but they are still accessable to the
  512. Xbeginner and expert alike. I tried to follow the tass UI conventions as 
  513. Xmuch as possible.
  514. X
  515. XThis is the only newsreader that I know of that threads on the Archive-name:
  516. Xfield as used in comp.sources.* groups as well as on the more normal Subject:
  517. Xfield. Before anyone comments on Subject: threading not being right and I 
  518. Xshould look at trn, I have and its threads are neat but I get more done with
  519. Xtin than trn. It is especially good at saving and processing saved articles
  520. X& threads.
  521. X
  522. Xo Organizes articles by threads.  Displays a really nice article selection
  523. X  page.
  524. X
  525. Xo Group selection page makes it easy to scan newsgroups, subscribe,
  526. X  unsubscribe, reorder your .newsrc.
  527. X
  528. Xo If you've ever used tass/notes, this is the program for you.
  529. X  Tin looks a lot like tass, but has many improvements.
  530. X
  531. XNewsreading style under tin tends to be different than with rn.  Instead of
  532. Xplowing through each group reading everything unread, you may find yourself
  533. Xreading fewer articles in more groups.  It's easier to skip about and only
  534. Xread interesting threads with tin.
  535. X
  536. XTin keeps an index file for each group.  The first time you enter a group,
  537. Xit will be a bit slow creating this file.  After that it will incrementally
  538. Xupdate the index file and there should be little delay.
  539. X
  540. XI may be off the net for a couple of months at the end of September, but
  541. Xwill be contactable at the following address:
  542. X    Iain J. Lea
  543. X    BrueckenStr. 12
  544. X    8500 Nuernberg 90
  545. X    Germany.
  546. X    Phone. +49-911-331963   (home)
  547. X    Phone. +49-911-895-3853 (work until Sep 30)
  548. X    Phone. +49-911-3089-407 (work from Oct 1)
  549. X    Email. iain@estevax.uucp (will only be reading mailbox weekly)
  550. X
  551. XBuilt & used on the following machines
  552. X--------------------------------------
  553. X    1)  Vax 8850 & Ultrix 4.1 (Developed on & most tested platform)
  554. X    3)  386 PC & Xenix 386
  555. X    2)  Vax 11/785 & BSD 4.3
  556. X    4)  386 PC & ATT SysVR4.0
  557. X    5)  386 PC & SCO SysVR3.2
  558. X    6)  386 PC & ISC SysVR3.2
  559. X    7)  ICL DRS6000 (sparc) & SysVR4.0 
  560. X    8)  Sun 3/4/IPC/Sparcstation & SunOS 4.0.3/4.1/4.1.1 
  561. X    9)  Intel303 & SysVR4
  562. X    10) DEC 5000 & Ultrix 4.1
  563. X    11) Sony News & SysVR4 / BSD 4.3
  564. X    12) Atari STe & Minix 1.5.10.3b
  565. X    13) Apricot VX/FT & SCO 3.2.2
  566. X    14) DIAB DS90 & D-NIX 5.3
  567. X       
  568. XBuilding Tin
  569. X------------
  570. X    1)  type 'make' and a few system types will be displayed
  571. X    2)  edit Makefile if you want to add/change -D DEFINES
  572. X    3)  type 'make <system type>' to compile for your system
  573. X    4)  type 'make install' / 'make install_setuid' to install
  574. X    
  575. X    Note: the supplied Makefile will not run directly on BSD. It 
  576. X    requires a little work (Any takers to write a good Makefile?)
  577. X
  578. XNB. NNTP (NetNews Transport Protocol RFC 977) is required if you 
  579. X    wish to read news remotely. It is a seperate package that is
  580. X    available from many FTP and mailserver sites. 
  581. X
  582. XCredits
  583. X-------
  584. XI wish to give credit to the following people for the routines
  585. Xthat they have written and I have used in tin:
  586. X
  587. XRich Skrenta  - tass v3.2 that tin is based upon.
  588. XSyd Weinstein - curses.c is taken from the elm mailreader
  589. XRich Salz     - wildmat regex pattern matching routine
  590. XChris Smith   - multi-part uudecode routine 
  591. X
  592. XI wish to thank the following people for bug reports/patchs/comments:
  593. X
  594. XKlaus Arzig, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
  595. XAndreas Brosig, Peter Dressler, Gerhard Ermer, Joachim Feld,
  596. XBernhard Gmelch, Viet Hoang, Joe Johnson, Cyrill Jung,
  597. XKarl-Koenig Koenigsson, Hans-Juergen Knopp, Bob Lukas, Clifford Luke,
  598. XPhillip Molloy, Toni Metz, Greg Miller, Klaus Neuberger, Otto Niesser,
  599. XWolf Paul, Nickolay Saukh, Rich Salz, Fredy Schwatz, Bernd Schwerin,
  600. XKarl-Olav Serrander, Chris Smith, Cliff Stanford, Adri Verhoef,
  601. XCary Whitney
  602. SHAR_EOF
  603. $TOUCH -am 0924141591 README &&
  604. chmod 0600 README ||
  605. echo "restore of README failed"
  606. set `wc -c README`;Wc_c=$1
  607. if test "$Wc_c" != "4762"; then
  608.     echo original size 4762, current size $Wc_c
  609. fi
  610. # ============= CHANGES ==============
  611. echo "x - extracting CHANGES (Text)"
  612. sed 's/^X//' << 'SHAR_EOF' > CHANGES &&
  613. XCHANGES tin v1.0 PL1 -> tin 1.0 PL2
  614. X-----------------------------------
  615. X
  616. X1)  rsalz@bbn.com (Rich Salz)
  617. X    Modified man page to format correctly.
  618. X
  619. X2)  iain@estevax.uucp (Iain Lea)
  620. X    BUG. if compiled on xenix DEFAULT_MAILBOX define is redefined later.
  621. X    FIX. tin.h - repositioned DEFAULT_MAILBOX define. 
  622. X
  623. X3)  uunet!sisd!jeh (Ed Hanway)
  624. X    BUG. If chars are signed, hash_str() will calculate a bad hash
  625. X         value if it hits a char with the high bit set.
  626. X    FIX. hashstr.c - changed hash routine to use unsigned char.
  627. X    
  628. X4)  iain@estevax.uucp (Iain Lea)
  629. X    BUG. Always put cursor on last unread article in newsgroup.
  630. X    FIX. select.c - set changed space_mode = FALSE to TRUE, so 
  631. X         that the cursor is positioned on the first unread art. 
  632. X
  633. X5)  rsalz@bbn.com (Rich Salz)
  634. X    Contributed a large patch file that changed numerous small
  635. X    things, such as deleted unused variables, changed fgets()'s
  636. X    to use sizeof() call on the buffer, corrected input parameters
  637. X    on qsort() compare functions to be char * and then cast inside
  638. X    the compare function. Many thanx and I'll have to have a look
  639. X    at Saber C. 
  640. X
  641. X6)  rdb@oasis.icl.co.uk (Roger Binns)
  642. X    BUG. I would prefer to press save, and then be presented with
  643. X         choices of post processing.  If you can't figure out which
  644. X         it is, offer the choice from the 'M' menu as default.
  645. X    FIX. feed.c - asks for processing type when saving article. 
  646. X
  647. X7)  rdb@oasis.icl.co.uk (Roger Binns)
  648. X    BUG. free_all_arrays() called inside signal_handler() causes errors.
  649. X    FIX. signal.c - deleted free_all_arrays() from signal_handler().
  650. X         
  651. X8)  rdb@oasis.icl.co.uk (Roger Binns)
  652. X    BUG. If the active file is empty, abort (I just learnt the hard
  653. X         way) - core dumps and other silly things happen.
  654. X    FIX. misc.c - changed read_active() to exit if no newsgroups.
  655. X
  656. X9)  cliff@norisc.uucp (Clifford Luke)
  657. X    BUG. When resizing under an xterm tin hangs / gets SIGSEGV.
  658. X    FIX. memory.c signal.c - modified to resize screen[] array.
  659. X
  660. X10) rdb@oasis.icl.co.uk (Roger Binns)
  661. X    ADD. backup_newsrc() copies .newsrc to .oldnewsrc for safety.
  662. X
  663. X11) iain@estevax.uucp (Iain Lea)
  664. X    BUG. follow-ups rejected by inews when to many '>' are in text.
  665. X    FIX. tin.h - added DEFAULT_COMMENT to let user specify comment
  666. X         string (default is ": ").
  667. X
  668. X12) nms@jvd.msk.su (Nickolay Saukh)
  669. X    BUG. Whats the reason to use file dead.article instead of .article?
  670. X    FIX. post.c - no reason at all. Fixed it - must have been asleep?!
  671. X
  672. X13) nms@jvd.msk.su (Nickolay Saukh)
  673. X    BUG. There should be a way to inform user about created newsgroups
  674. X         since last session.
  675. X    FIX. misc.c - added notify_groups() to check for new newsgroups. Use
  676. X         -n option to check for groups on starting tin. A tad sloooooww.
  677. X
  678. X14) whitney@zeus.unomaha.edu (Cary Whitney)
  679. X    BUG. I have found that saving articles in there news structure in my own
  680. X         area is an easy way for myself to organize articles.
  681. X    FIX. feed.c - feed_articles(). If '+<filename>' is given the '+' will be
  682. X         converted to <newsgroup>/<filename>.
  683. X
  684. X15) unido!tintin.rivm.nl!a3 (Adri Verhoef)
  685. X    BUG. The 'options' line in .newsrc is being reconized as a newsgroup.
  686. X    FIX. Ignores lines beginning with 'options ' when reading .newsrc
  687. X
  688. X16) cliff@demon.co.uk (Cliff Stanford)
  689. X    BUG. Because of the way setuid() works when the user is root, tin
  690. X         should test for this case when it is setuid news. Thanx for
  691. X         code patch for a subtle bug.
  692. X    FIX. main.c - changed test case for getuid() & geteuid().
  693. X
  694. X17) cliff@demon.co.uk (Cliff Stanford)
  695. X    BUG. When running setuid what happens to the index directory
  696. X         'index' in alt.sources & alt.sources.index? You effectively
  697. X         corrupt the directory.
  698. X    FIX. tin.h - changed the name of 'index' to '.index'
  699. X
  700. X18) juergen@norisc (Hans-Juergen Knopp)
  701. X    BUG. Allow user to select whether cursor should be positioned on 
  702. X         first / last unread article upon entering a newsgroup.
  703. X    FIX. rcfile.c - added 'Goto 1st unread' option.
  704. X
  705. X19) rdb@oasis.icl.co.uk (Roger Binns)
  706. X    BUG. When in the 'M' options menu try pressing return. It does 
  707. X         nothing, but if you press it again, it saves and exits.  
  708. X    FIX. rcfile.c - change_rcfile() does better input checking and
  709. X         saves and exits when char < '1' && char > '9'.
  710. X
  711. X20) rdb@oasis.icl.co.uk (Roger Binns)
  712. X    BUG. Will print articles straight away when 'o' is pressed.
  713. X    FIX. group.c - asks if you really want to print articles.
  714. X
  715. X21) rdb@oasis.icl.co.uk (Roger Binns)
  716. X    BUG. I have tried to use the pattern so that the word `rape' will
  717. X         be killed on. I tried regex patterns and nothing happened eg
  718. X         *rape*  or  *[Rr][Aa][Pp][Ee]*  and nothing was killed.
  719. X    FIX. kill.c - added regex pattern matching to kill routines.
  720. X
  721. X22) iain@estevax.uucp (Iain Lea)
  722. X    BUG. Hangs when running under a xterm window that is resized.
  723. X    FIX. signal.c - set_win_size() changed so that tin will resize
  724. X     to the new xterm window size. Allows big displays of info
  725. X     when run on a window system.
  726. X
  727. X23) molloy@icd.teradyne.com (Philip E. Molloy)
  728. X    BUG. If there is no file called ~/.tin/posted, then the first
  729. X         posting stays named as ~/.tin/posted.<pid> and you cannot
  730. X         use the "W" command. If you test for the existence of the
  731. X         file posted and create it if not there, this should work.
  732. X    FIX. misc.c - creates ~/.tin/posted empty if it does not exist.
  733. X
  734. X24) nms@jvd.msk.su (Nickolay Saukh)
  735. X    BUG. It should turn on arrow mode -> if inverse video is turned off.
  736. X    FIX. select.c group.c - turns on arrow -> if inverse video turned off.
  737. X
  738. X25) iain@estevax.uucp (Iain Lea)
  739. X    ADD. Added thread operators '<' & '>' to goto first & last article
  740. X         in current thread.
  741. X
  742. X26) nms@jvd.msk.su (Nickolay Saukh)
  743. X    BUG. There is no reason to enter groups with no articles in them.
  744. X    FIX. select.c - checks if arts in group otherwise will not enter.
  745. X
  746. X27) iain@estevax.uucp (Iain Lea)
  747. X    ADD. Added 'w' post base article command to group selection level
  748. X         so that even if there are no arts in a group one can still
  749. X         post articles to it.
  750. X
  751. X28) unido!tintin.rivm.nl!a3 (Adri Verhoef)
  752. X    BUG. Tagging articles 'T' causes a redraw of the entire index page.
  753. X         This is tiresome on very slow lines.
  754. X    FIX. group.c - fixed 'T' so it does not redraw the screen everytime.
  755. X
  756. X29) cliff@demon.co.uk (Cliff Stanford)
  757. X    BUG. Default mailer rmail does not work on SCO 3.2.2 & small fixes to
  758. X         Makefile. Thanx for the patches.
  759. X    FIX. Changed rmail to sendmail -t for default mailer. Only works
  760. X         if you have got tcp-ip package installed.
  761. X
  762. X30) iain@estevax.uucp (Iain Lea)
  763. X    ADD. post.c - added cancel_article() to cancel an article that was
  764. X         posted by the same user.
  765. X
  766. X31) miller@julian.uwo.CA (Greg Miller)
  767. X    ADD. How about a TINDIR environment variable so that if defined the
  768. X         .tin directory are set up there rather than $HOME.
  769. X
  770. X32) nms@jvd.msk.su (Nickolay Saukh)
  771. X    BUG. All sortable options should have reverse option.
  772. X    FIX. rcfile.c - added ascending & descending options to sort routines.
  773. X
  774. X33) kos@nd.se (Karl-Olov Serrander)
  775. X    BUG. SIGSEGV happens when debug routines are used.
  776. X    FIX. debug.c - applied supplied patch.
  777. X
  778. X34) cliff@demon.co.uk (Cliff Stanford)
  779. X    ADD. main.c - added -U option to fork a 'tin -u' and update index 
  780. X         files in background while reading the news in foreground.
  781. X
  782. XCHANGES tin v1.00 -> tin v1.0 PL1
  783. X---------------------------------
  784. X
  785. X1)  crs@siesoft.co.uk (Chris Smith)
  786. X    BUG. uudecoding multi-part archives sometimes does not work.
  787. X    FIX. Contibuted uuscram routine that was hacked into post_process_uud().
  788. X
  789. X2)  unido!mprgate.mpr.ca!lukas (Bob Lukas)
  790. X    BUG. The docs refer to various defaults as being $HOME/... In
  791. X         fact, they are relative to the pw_dir field from /etc/passwd,
  792. X         not the environment variable $HOME. (For obscure reasons, my
  793. X         $HOME is not pw_dir.)
  794. X    FIX. misc.c - init_selfinfo()
  795. X
  796. X3)  iain@estevax.uucp (Iain Lea)
  797. X    BUG. info string "Serching..." not cleared from bottom of screen
  798. X         when string is found.
  799. X    FIX. search.c - added clear_message() to various search routines.
  800. X
  801. X4)  unido!skuld.north.de!heimdall (Volker Beyer)
  802. X    BUG. Du versuchst den Vi aufzurufen, und zwar ind /usr/bin, bei
  803. X         Xenix steht er aber in /bin.Ausserdem sollte kein Editor
  804. X         definiert werden wenn die Shell-Variable EDITOR gesetzt ist
  805. X         (wird u.a. auch in vnews benutzt (der von bnews zumindestens)).
  806. X    FIX. tin.h - Added #ifdef M_XENIX #define DEFAULT_EDITOR /bin/vi #endif
  807. X
  808. X5)  rsalz@bbn.com (Rich Salz)
  809. X    Contributed newer version (June 91) of wildmat.c & wildmat.3 routines
  810. X
  811. X6)  v.hoang@att.com (Viet Hoang)
  812. X    BUG. <sys/types.h> defined in tin.h and open.c
  813. X    FIX. open.c - deleted <sys/types.h>
  814. X
  815. X7)  v.hoang@att.com (Viet Hoang)
  816. X    BUG. The entry for sysv in Makefile uses double backslash when it
  817. X         should only be single backslash.
  818. X    FIX. Makefile - changed \\ to \ in sysv entry.
  819. X
  820. X8)  kos@nd.se (Karl-Olov Serrander)
  821. X    BUG. If tin is suid news, it is not possible to create .tin and
  822. X         .tin/.tinrc when you use command M.
  823. X    FIX. rcfile.c - write_rcfile() now uses setuid() & setgid() routines.
  824. X
  825. X9)  iain@estevax.uucp (Iain Lea)
  826. X    BUG. If tin is suid news, it has problems creating files in users home
  827. X         dir.
  828. X    FIX. kill.c misc.c post.c - added setuid() & setgid() routines.
  829. X
  830. X10) unido!asd.tds.philips.se!kko (Karl-Koenig Koenigsson)
  831. X    BUG. If I do "tin -u" via cron, the job gets aborted due to the
  832. X         environment variable TERM not being defined.
  833. X    FIX. main.c - main() put do_update() before curses is initialized.
  834. X
  835. X11) iain@estevax.uucp (Iain Lea)
  836. X    BUG. Inverse video does not work correctly on sysV machines
  837. X    FIX. page.c group.c select.c screen.c - modified inverse routines.
  838. X
  839. X12) unido!gmdzi.gmd.de!brosig (Andreas Brosig)
  840. X    BUG. Ich hatte in TASS die Moeglichkeit mit !:kommando: shell-
  841. X         Kommandos abzugeben; gut, das geht mit TIN auch, aber nach
  842. X         der shell-Kommando Ausgabe wird direkt ein redraw des Screens
  843. X         gemacht, zu schnell fuer meine Augen. TASS wartete noch auf
  844. X         einen Tastendruck des Benutzers.
  845. X    FIX. misc.c - shell_escape() added continue_prompt() to wait for
  846. X         user input.
  847. X
  848. X13) cliff@norisc.uucp (Clifford Luke)
  849. X    BUG. When ^Z done in Options Menu 'M' incorrect screen is redrawn
  850. X         when process is restarted. Wrong signal handler set.
  851. X    FIX. signal.c rcfile.c - added signal handler for change_rcfile().
  852. X
  853. X14) cliff@norisc.uucp (Clifford Luke)
  854. X    BUG. When ^Z done under SysVR4 the screen goes into endless loop
  855. X         of redrawing itself. Many thanx for patches supplied.
  856. X    FIX. signal.c - added POSIX? signal handler code to all handlers.
  857. X
  858. X15) iain@estevax.uucp (Iain Lea)
  859. X    Added percentage info to bottom of group & select menus.
  860. X
  861. X16) rdb@oasis.icl.co.uk (Roger Binns)
  862. X    BUG. I would like it to do something about non-existent groups.
  863. X         It should delete them or something.
  864. X    FIX. newsrc.c - rewrite_newsrc() writes new newsrc with only
  865. X         newsgroups that are present in active file.
  866. X    
  867. X17) iain@estevax.uucp (Iain Lea)
  868. X    Rewrote mail,pipe,print & save commands to handle a)rticle, 
  869. X    t)thread r)egex pattern and T)agged articles.
  870. X
  871. X18) unido!tintin.rivm.nl!a3 (Adri Verhoef)
  872. X    BUG. Failed posts don't get saved (to dead.article).
  873. X    FIX. post.c - changed post_base() & post_response()
  874. X
  875. X19) unido!tintin.rivm.nl!a3 (Adri Verhoef)
  876. X    BUG. inews not found. (Mine is located in ~news/nntp)
  877. X         Thanx for the supplied patches.
  878. X    FIX. added INEWSDIR define. Set to inews dir otherwise
  879. X         defaults to LIBDIR.
  880. X
  881. X20) unido!tintin.rivm.nl!a3 (Adri Verhoef)
  882. X    BUG. From the options menu it is not clear that you use a <CR> to
  883. X         leave the option that you are toggling.
  884. X    FIX. lang.c - rewrote text messages to mention <CR> being needed.
  885. X
  886. X21) unido!tintin.rivm.nl!a3 (Adri Verhoef)
  887. X    BUG. Long newsgroup names cause troubles; when I jumped to the
  888. X         last newsgroup ($), the following appeared:
  889. X           191 alt.wpi.negativland.subgenii.for.rent
  890. X             2 general
  891. X           ^^
  892. X    FIX. select.c - changed max length of newsgroup name from 36 to 40.
  893. X
  894. X22) iain@estevax.uucp (Iain Lea)
  895. X    Finished man page.
  896. X
  897. X23) iain@estevax.uucp (Iain Lea)
  898. X    BUG. mail_setup () will not work if MAIL env varaible not set.
  899. X    FIX. mail.c - mail_setup() now checks mailbox path as well.
  900. X
  901. X24) crs@siesoft.co.uk (Chris Smith)
  902. X    BUG. help screens are hard coded for 25 line terminals so if 
  903. X         screen is bigger it cannot use the extra space.
  904. X    FIX. help.c - show_help_screen() rewrote to use maximum lines.
  905. X
  906. X25) bernd@norisc.uucp (Bernd Schwerin)
  907. X    BUG. Save operation doesnt ask for a base filename when saving
  908. X         tagged articles. After saving the tagged articles the
  909. X         pathnames are .01, .02 etc.
  910. X    FIX. feed.c - feed_articles () removed if () to allow tagged files
  911. X         sequence to ask for filename to save to.
  912. X
  913. XCHANGES tass v3.2 -> tin v1.00 
  914. X------------------------------
  915. X
  916. Xo  News can be read locally (ie. /usr/spool/news) or remotely by NNTP (-r option)
  917. Xo  User can config tin's options dynamically by 'M' command and have them
  918. X   saved to ~/.tin/tinrc.
  919. X
  920. Xo  Archive-name: mail header is used when saving and post processing 
  921. X   articles / threads.
  922. X
  923. Xo  Adjusts to size of screen for how much of Subject: & From: is displayed.
  924. X
  925. Xo  Post processes saved articles/threads. It will handle sh, uudecode,
  926. X   zoo, lharc, arc and zip (unzip) formats.
  927. X
  928. Xo  Articles can be sorted on Subject:, From:, Date: field or nothing. 
  929. X
  930. Xo  Killfile support (Not fully debugged). Kill articles at single group
  931. X   / all groups on Subject:,From: line or on user entered pattern.
  932. X
  933. Xo  Saves articles / threads to elm mailbox by pressing '=' when asked
  934. X   for name of saved file.
  935. X
  936. Xo  Displays history of user posted articles/replies & followups.
  937. X
  938. Xo  Higlighted bar / -> arrow can be used for selecting articles
  939. X
  940. Xo  Tagging of articles to save in a particular order
  941. X
  942. XAnd many other small changes.
  943. X
  944. SHAR_EOF
  945. $TOUCH -am 0923175591 CHANGES &&
  946. chmod 0600 CHANGES ||
  947. echo "restore of CHANGES failed"
  948. set `wc -c CHANGES`;Wc_c=$1
  949. if test "$Wc_c" != "14067"; then
  950.     echo original size 14067, current size $Wc_c
  951. fi
  952. # ============= TODO ==============
  953. echo "x - extracting TODO (Text)"
  954. sed 's/^X//' << 'SHAR_EOF' > TODO &&
  955. XFIX FEATURES
  956. X------------
  957. Xo  Fix uuscram code in uudecode.
  958. X
  959. Xo  Fix code to sort arts. At page level funny things happen.
  960. X
  961. Xo  Fix code to KILL articles. At page level funny things happen.
  962. X
  963. Xo  Fix code to KILL articles with 't' command.
  964. X
  965. Xo  Fix 'z' so that it stays unread even if a KILL is performed before
  966. X   leaving the group.
  967. X
  968. Xo  Fix so that it always finds unread messages. 
  969. X
  970. XADD FEATURES
  971. X------------
  972. Xo  Add crossposting of articles so that read ones are marked read in 
  973. X   other groups. in rn it uses Xref: line to do this. Perhaps just
  974. X   use update_group() to do it?
  975. X   Needs to handle 'c' 'C' 'k' 'K' commands. Perhaps it should be an
  976. X   option so that performance is not impaired.
  977. X
  978. Xo  Add 'C' command at group level to catchup present group and
  979. X   enter next group with unread news in it.
  980. X
  981. Xo  Add code to 'N' at group level so it goes to next group with unread news.
  982. X
  983. Xo  Add -s <dir> option to save new news to specifed spool dir for when
  984. X   one goes on holiday so that it can be read later by giving -S <dir>.
  985. X
  986. Xo  Add 'H' context senstive level help screens
  987. X
  988. Xo  Sort .newsrc according to preference. (sort active file as it is read)
  989. X
  990. Xo  Add code to do unpack patches
  991. X
  992. Xo  Add time period kill article
  993. X
  994. XPIPEDREAMS
  995. X----------
  996. Xo  Add rebindable keymaps and provide different terminal keymaps
  997. X   (ie. keymap.ansi, keymap.wy50 etc.)
  998. X
  999. Xo  Add support for german text messages.
  1000. X
  1001. Xo  Add Virtual newsgroups (combination of newsgroups ie. virtual.ibm
  1002. X   consists of comp.sys.ibm.* groups).
  1003. X
  1004. Xo  Add threading on References like trn with mthreads database.
  1005. X
  1006. Xo  Add full curses support instead of using printf()'s.
  1007. X
  1008. Xo  Sub all not empty groups by looking at min max values in active array
  1009. X   and Unsub all empty groups by looking at min max values in active 
  1010. X   array. have a command to do this in a toggle effect.
  1011. SHAR_EOF
  1012. $TOUCH -am 0923175591 TODO &&
  1013. chmod 0600 TODO ||
  1014. echo "restore of TODO failed"
  1015. set `wc -c TODO`;Wc_c=$1
  1016. if test "$Wc_c" != "1810"; then
  1017.     echo original size 1810, current size $Wc_c
  1018. fi
  1019. # ============= UPDATE_INDEX ==============
  1020. echo "x - extracting UPDATE_INDEX (Text)"
  1021. sed 's/^X//' << 'SHAR_EOF' > UPDATE_INDEX &&
  1022. X#! /bin/csh -f
  1023. X#  Iain Lea, 21-08-91
  1024. X#  Script to update tin indexes from the at queue 
  1025. X
  1026. X# required for at
  1027. Xsetenv HOME  /piez/iain
  1028. Xsetenv NAME  'Iain J. Lea'
  1029. Xsetenv GROUP 'piez'
  1030. Xsetenv PATH  :/usr/ucb:/bin:/usr/bin:/usr/local
  1031. X
  1032. X# specific for this script
  1033. Xsetenv SCRIPT /piez/iain/bin/UPDATE_INDEX
  1034. Xsetenv TIME 0700
  1035. Xsetenv TINDIR /piez/iain/bin
  1036. X
  1037. X# hangs update indexes onto system batch queue
  1038. X$TINDIR/tin -u > $HOME/UPDATE_LOG
  1039. X
  1040. X# sleeps and then submits this script again for tommorow
  1041. X/usr/bin/sleep 1200
  1042. X/usr/local/at $TIME $SCRIPT
  1043. SHAR_EOF
  1044. $TOUCH -am 0923175591 UPDATE_INDEX &&
  1045. chmod 0700 UPDATE_INDEX ||
  1046. echo "restore of UPDATE_INDEX failed"
  1047. set `wc -c UPDATE_INDEX`;Wc_c=$1
  1048. if test "$Wc_c" != "530"; then
  1049.     echo original size 530, current size $Wc_c
  1050. fi
  1051. # ============= tin.1 ==============
  1052. echo "x - extracting tin.1 (Text)"
  1053. sed 's/^X//' << 'SHAR_EOF' > tin.1 &&
  1054. X.TH TIN 1 "Version 1.0 PL2"
  1055. X.SH NAME
  1056. Xtin \- Visual threaded Usenet news reader
  1057. X.SH SYNOPSIS
  1058. X.B tin
  1059. X[options] [newsgroups]
  1060. X.SH DESCRIPTION
  1061. X.I Tin
  1062. Xis a full-screen threaded Usenet newsreader.  It can read news
  1063. Xlocally (ie. \fI/usr/spool/news\fP) or remotely (-r option) via
  1064. Xa NNTP (Network News Transport Protocol) server.
  1065. X.PP
  1066. XTin has three newsreading levels:
  1067. Xthe newsgroup selection page, the group index page and the article viewer.
  1068. XUse the 'h' (help) command to view a list of the commands available at a
  1069. Xparticular level, or the 'H' command to view context sensitive help.
  1070. X.PP
  1071. XOn startup Tin will show a list of the newsgroups found in \fI$HOME/.newsrc\fP.
  1072. XAn arrow '->' or highlighted bar will point to the first newsgroup.
  1073. XMove to a group by using the terminal arrow keys (ansi/at386/vt100 only) or
  1074. X'j' and 'k'. Use PgUp/PgDn (ansi/at386/vt100 only) or Ctrl-U and Ctrl-D to
  1075. Xpage up/down. Enter a newsgroup by pressing RETURN.
  1076. X.PP
  1077. XThe TAB key may be used to advance to the next newsgroup with unread articles
  1078. Xand enter it.
  1079. X.SH OPTIONS
  1080. X.TP 10
  1081. X\fB-c\fP
  1082. Xcreate/update index files for every group in \fI$HOME/.newsrc\fP or
  1083. Xfile specified by -f option and mark all articles as read.
  1084. X.TP
  1085. X\fB-d dir\fP
  1086. Xsave articles to directory. Default is \fI$HOME/News\fP.
  1087. X.TP
  1088. X\fB-f file\fP
  1089. XUse the indicated file in place of \fI$HOME/.newsrc\fP.
  1090. X.TP
  1091. X\fB-h\fP
  1092. Xhelp.
  1093. X.TP
  1094. X\fB-m file\fP
  1095. Xmail program to use for sending mail. Default is \fI/usr/ucb/mail\fP.
  1096. X.TP
  1097. X\fB-M dir\fP
  1098. Xmailbox directory to use. Default is \fI$HOME/Mail\fP.
  1099. X.TP
  1100. X\fB-n\fP
  1101. Xnotify the user of any new newsgroups since last session.
  1102. X.TP
  1103. X\fB-p file\fP
  1104. Xprint program with options. Default is \fI/usr/ucb/lpr\fP.
  1105. X.TP
  1106. X\fB-r\fP
  1107. Xread news remotely from the default NNTP server specified in the
  1108. Xenvironment variable NNTPSERVER or contained in the file
  1109. X\fI/etc/nntpserver\fP.
  1110. X.TP
  1111. X\fB-s dir\fP
  1112. Xspool directory where news is stored. Default is \fI/usr/spool/news\fP.
  1113. X.TP
  1114. X\fB-S\fP
  1115. Xsave news articles for later reading. Useful when going on holiday and
  1116. Xyou don't want to return and find that expire has removed a whole load
  1117. Xof unread articles. Best to run from crontab everyday while away. After
  1118. Xeach run the user will be mailed a report of which articles were saved
  1119. Xin which groups and the total number of articles saved. To keep your
  1120. X\fI$HOME/.newsrc\fP upto date specify the -u option as well. Articles
  1121. Xare saved in a private news structure under your <savedir> directory
  1122. X(default is \fI$HOME/News\fP). Be careful of using this option if you
  1123. Xread a lot of groups because you could overflow your filesystem. If
  1124. Xyou only want to save a few groups it would be best to backup your
  1125. Xfull \fI$HOME/.newsrc\fP and create a new one that only contains the
  1126. Xgroups you want to save. Saved news can be read later by starting tin
  1127. Xwith the -s <savedir> option.
  1128. X.TP
  1129. X\fB-u\fP
  1130. Xcreate/update index files for every group in \fI$HOME/.newsrc\fP or
  1131. Xfile specified by -f option.
  1132. X.TP
  1133. X\fB-U\fP
  1134. Xstart tin in the background to update index files while reading news 
  1135. Xin the foreground.
  1136. X.TP
  1137. X\fB-v\fP
  1138. Xcreate/update index files for every group in \fI$HOME/.newsrc\fP or
  1139. Xfile specified by -f option. Each group name is printed to stdout as
  1140. Xit is updated.
  1141. X.PP
  1142. XTin can also dynamically change its options by the 'M' menu command.
  1143. XAny changes are written to \fI$HOME/.tin/tinrc\fP.
  1144. X.SH "INDEX FILES"
  1145. XIn order to keep track of threads, Tin maintains an index for each group.
  1146. XIf Tin is made setuid to news, the indexes will be stored in the news spool
  1147. Xdirectory (typically \fI/usr/spool/news\fP). If Tin is not setuid, it
  1148. Xwill store index files in the subdirectory \fI$HOME/.tin/.index\fP.
  1149. XDo not make Tin setuid news if news will be obtained via NNTP and not
  1150. Xfrom \fI/usr/spool/news\fP.
  1151. X.PP
  1152. XEntering a group the first time tends to be slow because the index file must
  1153. Xbe built from scratch.  Subsequent readings of a group will cause
  1154. XTin to incrementally update the index file, adding or removing entries as new
  1155. Xarticles come in or as news expires. If reading news remotely indexing
  1156. Xwill be somewhat slower because the articles must be retrieved via the
  1157. XNNTP.
  1158. X.PP
  1159. XA good way to keep Tin index files current is to run tin -u from cron:
  1160. X.RS
  1161. X.nf
  1162. X20 6 * * * /usr/local/bin/tin -u -f /usr/lib/news/tin_groups
  1163. X.fi
  1164. X.RE
  1165. XThis would update the index files for those groups appearing in
  1166. X\fI/usr/lib/news/tin_groups\fP.  To index all of the groups on the
  1167. Xsystem, run tin -u with -f indicating the active file:
  1168. X.RS
  1169. X.nf
  1170. X20 6 * * * /usr/local/bin/tin -u -f /usr/lib/news/active
  1171. X.fi
  1172. X.RE
  1173. X.SH "SCREEN FORMAT"
  1174. XTin has three separate levels of operation: Selection Group level, Group level
  1175. Xand Article level.
  1176. X.PP
  1177. XAt the Selection Group level the newsgroups are displayed on the left
  1178. Xof the screen with the number of unread articles displayed on the same
  1179. Xline in the middle of the screen.
  1180. X.RS
  1181. X.nf
  1182. X.in +.5i
  1183. X.ta +\w'1  'u +\w'news.software.readers  'u
  1184. X<Selection Num> <Newsgroup> <Num of unread articles>
  1185. X.ti -.5i
  1186. Xi.e.,
  1187. X1    alt.sources            10
  1188. X2    comp.sources.misc        3
  1189. X3    news.software.readers        12
  1190. X.in -.5i
  1191. X.fi
  1192. X.RE
  1193. X.PP
  1194. XAt the Group level the following formats are possible:
  1195. X.RS
  1196. X.nf
  1197. X.in +.5i
  1198. X.ta +\w'1  'u +\w'+    'u +\w'This question has   'u +\w'1    'u
  1199. X<Selection Num> <Unread> <Responses> <Subject> <Author>
  1200. X.ti -.5i
  1201. Xi.e.,
  1202. X1    +    3    Bnews sources?        iain@estevax
  1203. X2        1    This question has        ether@net
  1204. X.ti -.5i
  1205. Xor
  1206. X.ta +\w'1  'u +\w'+    'u +\w'This question has a long subject line  'u
  1207. X<Selection Num> <Unread> <Responses> <Subject (longer)>
  1208. X.ti -.5i
  1209. Xi.e.,
  1210. X1    +    3    Bnews sources?
  1211. X2        1    This question has a longer subject line
  1212. X.in -.5i
  1213. X.fi
  1214. X.RE
  1215. X.PP
  1216. XAt the Article level the page header has the following format:
  1217. X.RS
  1218. X.nf
  1219. X.in +.5i
  1220. X.ta \w'<Date posted> <Newsgroup>    'u
  1221. X<Date posted> <Newsgroup>    <Thread 1 of n>
  1222. X<Article Num> <Subject>    <Num of responses in thread>
  1223. X<Author>    <Organization>
  1224. X
  1225. X<Article body>
  1226. X.ti -.5i
  1227. Xi.e.,
  1228. X.ta \w'24 Jul 15:20:03 GMT   'u +\w'Bnews sources?   'u
  1229. X24 Jul 15:20:03 GMT    alt.sources    Thread 1 of 2
  1230. XArticle 452    Bnews sources?    3 responses
  1231. Xiain@estevax        Siemens AG, Germany
  1232. X
  1233. X<Article boby>
  1234. X.in -.5i
  1235. X.fi
  1236. X.RE
  1237. X.SH "COMMON MOVING KEYS"
  1238. XThis table shows the common keys/commands for moving at all three levels
  1239. Xwithin Tin.
  1240. X.RS
  1241. X.nf
  1242. X.ta \w'Beginning of list/article  'u +\w'ansi/at386/vt100  'u
  1243. X    ansi/at386/vt100    Other Terminals
  1244. XBeginning of list/article    \fBHome\fP    \fB1\fP (\fB^R\fP or \fBg\fP at article level)
  1245. XEnd of list/article    \fBEnd\fP    \fB$\fP (also \fBG\fP at article level)
  1246. XPage Up    \fBPgUp\fP    \fB^U\fP or \fBb\fP 
  1247. XPage Down    \fBPgDn\fP    \fB^D\fP or \fB<SPACE>\fP
  1248. XLine Up    \fBUp arrow\fP    \fBk\fP (not at article level)
  1249. XLine Down    \fBDown arrow\fP    \fBj\fP (not at article level)
  1250. X.fi
  1251. X.RE
  1252. X.SH "NEWSGROUP SELECTION COMMANDS"
  1253. X.TP 10
  1254. X\fB4\fP
  1255. XSelect group 4.
  1256. X.TP
  1257. X\fB^K\fP
  1258. XDelete current group from \fI$HOME/.newsrc\fP file.
  1259. X.TP
  1260. X\fB^L\fP
  1261. XRedraw page.
  1262. X.TP
  1263. X\fB^R\fP
  1264. XReset \fI$HOME/.newsrc\fP file.
  1265. X.TP
  1266. X\fB<CR>\fP
  1267. XRead current group.
  1268. X.TP
  1269. X\fB<TAB>\fP
  1270. XView next unread group.
  1271. X.TP
  1272. X\fBB\fP
  1273. XMail a bug/gripe/comment to the author of tin. This is the best way
  1274. Xof getting bugs fixed and features added/changed.
  1275. X.TP
  1276. X\fBc\fP
  1277. XMark current group as all read and goto next group in group selection list.
  1278. X.TP
  1279. X\fBC\fP
  1280. XMark current group as all read and goto next unread group in group selection
  1281. Xlist.
  1282. X.TP
  1283. X\fBg\fP
  1284. XChoose a new group by name. The position of the group within the group
  1285. Xlist will also be asked for. By entering '1' the new group will be the
  1286. Xfirst group in the displayed list, by entering '8' the group will be
  1287. Xthe eighth group in the list etc. By entering '$' the group will be the
  1288. Xlast group displayed.
  1289. X.TP
  1290. X\fBh\fP
  1291. Xhelp screen of newsgroup selection commands.
  1292. X.TP
  1293. X\fBH\fP
  1294. Xhelp screen of context sensitive help about newsgroup selection level.
  1295. X.TP
  1296. X\fBI\fP
  1297. XToggle inverse video.
  1298. X.TP
  1299. X\fBm\fP
  1300. XMove the current group within the group selection list.
  1301. XBy entering '1' the group will become the first displayed group in
  1302. Xthe list, by entering '8' the eighth group in the list etc. By
  1303. Xentering '$' the group will be the last group displayed.
  1304. X.TP
  1305. X\fBM\fP
  1306. XUser configurable options menu (for more information see section Options Menu).
  1307. X.TP
  1308. X\fBq\fP
  1309. XQuit tin.
  1310. X.TP
  1311. X\fBs\fP
  1312. XSubscribe to current group.
  1313. X.TP
  1314. X\fBS\fP
  1315. XSubscribe to groups matching user specified pattern.
  1316. X.TP
  1317. X\fBu\fP
  1318. XUnsubscribe to current group.
  1319. X.TP
  1320. X\fBU\fP
  1321. XUnsubscribe to groups matching user specified pattern.
  1322. X.TP
  1323. X\fBv\fP
  1324. XPrint tin version number.
  1325. X.TP
  1326. X\fBw\fP
  1327. XPost an article to current group.
  1328. X.TP
  1329. X\fBW\fP
  1330. XList articles posted by user. The date posted, the newsgroup and the
  1331. Xsubject are listed.
  1332. X.TP
  1333. X\fBy\fP
  1334. XThe first time this command is called it will yank in all groups from
  1335. X\fI/usr/local/news/active\fP that are not in \fI$HOME/.newsrc\fP.
  1336. XAfter any groups have been subscribed/unsubscribed to, this command
  1337. Xif pressed again will reread \fI$HOME/.newsrc\fP and display only
  1338. Xsubscribed groups.
  1339. X.TP
  1340. X\fBY\fP
  1341. XReread group list from \fI$HOME/.newsrc\fP file.
  1342. X.TP
  1343. X\fBz\fP
  1344. XMark all articles in the current group as unread.
  1345. X.TP
  1346. X\fBZ\fP
  1347. XUndelete previously deleted group from \fI$HOME/.newsrc\fP file.
  1348. X.TP
  1349. X\fB/\fP
  1350. XGroup forward search.
  1351. X.TP
  1352. X\fB?\fP
  1353. XGroup backward search.
  1354. X.SH "GROUP INDEX COMMANDS"
  1355. X.TP 10
  1356. X\fB4\fP
  1357. XSelect article 4.
  1358. X.TP
  1359. X\fB^K\fP
  1360. XKill current article (for more information read section Kill Article Menu).
  1361. X.TP
  1362. X\fB^L\fP
  1363. XRedraw page.
  1364. X.TP
  1365. X\fB<CR>\fP
  1366. XRead current article.
  1367. X.TP
  1368. X\fB<TAB>\fP
  1369. XView next unread article or group.
  1370. X.TP
  1371. X\fBa\fP
  1372. XAuthor forward search.
  1373. X.TP
  1374. X\fBA\fP
  1375. XAuthor backward search.
  1376. X.TP
  1377. X\fBB\fP
  1378. XMail a bug/gripe/comment to the author of tin. This is the best way
  1379. Xof getting bugs fixed and features added/changed.
  1380. X.TP
  1381. X\fBc\fP
  1382. XMark all articles as read.
  1383. X.TP
  1384. X\fBC\fP
  1385. XCancel current article. It must have been posted by the same user. The
  1386. Xcancel message can be seen in the newsgroup 'control'.
  1387. X.TP
  1388. X\fBg\fP
  1389. XChoose a new group by name.
  1390. X.TP
  1391. X\fBh\fP
  1392. Xhelp screen of group index commands.
  1393. X.TP
  1394. X\fBH\fP
  1395. Xhelp screen of context sensitive help about group index level.
  1396. X.TP
  1397. X\fBI\fP
  1398. XToggle inverse video.
  1399. X.TP
  1400. X\fBK\fP
  1401. XMark article/thread as read and advance to next unread article/thread.
  1402. X.TP
  1403. X\fBm\fP
  1404. XMail current article / thread / articles matching pattern / tagged articles
  1405. Xto someone.
  1406. X.TP
  1407. X\fBM\fP
  1408. XUser configurable options menu (for more information see section Options Menu).
  1409. X.TP
  1410. X\fBn\fP
  1411. XGo to next group.
  1412. X.TP
  1413. X\fBN\fP
  1414. XGo to next unread group.
  1415. X.TP
  1416. X\fBo\fP
  1417. XOutput current article / thread / articles matching pattern / tagged articles
  1418. Xto printer.
  1419. X.TP
  1420. X\fBp\fP
  1421. XGo to previous group.
  1422. X.TP
  1423. X\fBP\fP
  1424. XGo to previous unread group.
  1425. X.TP
  1426. X\fBq\fP
  1427. XQuit tin.
  1428. X.TP
  1429. X\fBs\fP
  1430. XSave current article / thread / articles matching pattern / tagged articles
  1431. Xto file / files / mailbox. To save to a mailbox enter '=' or '=mailbox' when
  1432. Xasked for filename to save to. To save to <newsgroup name>/<filename> enter '+<filename>'.
  1433. X.TP
  1434. X\fBT\fP
  1435. XTag current article for mailing ('m') / piping ('|') / printing ('o') / saving ('s').
  1436. X.TP
  1437. X\fBt\fP
  1438. XReturn to group selection index.
  1439. X.TP
  1440. X\fBU\fP
  1441. XUntag all articles that were tagged for saving.
  1442. X.TP
  1443. X\fBv\fP
  1444. XPrint tin version number.
  1445. X.TP
  1446. X\fBw\fP
  1447. XPost an article to current group.
  1448. X.TP
  1449. X\fBW\fP
  1450. XList articles posted by user. The date posted, the newsgroup and the
  1451. Xsubject are listed.
  1452. X.TP
  1453. X\fBz\fP
  1454. XMark current article as unread.
  1455. X.TP
  1456. X\fBZ\fP
  1457. XMark current thread as unread.
  1458. X.TP
  1459. X\fB/\fP
  1460. XSearch forward for specified subject.
  1461. X.TP
  1462. X\fB?\fP
  1463. XSearch backward for specified subject.
  1464. X.TP
  1465. X\fB-\fP
  1466. XShow last message.
  1467. X.TP
  1468. X\fB|\fP
  1469. XPipe current article / thread / articles matching pattern / tagged articles
  1470. Xinto command.
  1471. X.SH "ARTICLE COMMANDS"
  1472. X.TP 10
  1473. X\fB0\fP
  1474. XRead the base article in this thread.
  1475. X.TP
  1476. X\fB4\fP
  1477. XRead response 4 in this thread.
  1478. X.TP
  1479. X\fB^H\fP
  1480. XShow all of the articles mail header.
  1481. X.TP
  1482. X\fB^K\fP
  1483. XKill current article (for more information read section Kill Article Menu).
  1484. X.TP
  1485. X\fB^L\fP
  1486. XRedraw page.
  1487. X.TP
  1488. X\fB<CR>\fP
  1489. XSkip to next base article.
  1490. X.TP
  1491. X\fB<TAB>\fP
  1492. XAdvance to next page or unread article.
  1493. X.TP
  1494. X\fBa\fP
  1495. XAuthor forward search.
  1496. X.TP
  1497. X\fBA\fP
  1498. XAuthor backward search.
  1499. X.TP
  1500. X\fBB\fP
  1501. XMail a bug/gripe/comment to the author of tin. This is the best way
  1502. Xof getting bugs fixed and features added/changed.
  1503. X.TP
  1504. X\fBc\fP
  1505. XMark all articles as read.
  1506. X.TP
  1507. X\fBd\fP
  1508. XToggle rot-13 decoding for this article.
  1509. X.TP
  1510. X\fBf\fP
  1511. XPost a followup to current article.
  1512. X.TP
  1513. X\fBF\fP
  1514. XPost a followup with a copy of the current article included.
  1515. X.TP
  1516. X\fBh\fP
  1517. XHelp screen of article page commands.
  1518. X.TP
  1519. X\fBH\fP
  1520. XHelp screen of context sensitive help about article page level.
  1521. X.TP
  1522. X\fBi\fP
  1523. XReturn to index page.
  1524. X.TP
  1525. X\fBI\fP
  1526. XToggle inverse video.
  1527. X.TP
  1528. X\fBk\fP
  1529. XMark article as read and advance to next unread article.
  1530. X.TP
  1531. X\fBK\fP
  1532. XMark thread as read and advance to next unread thread.
  1533. X.TP
  1534. X\fBm\fP
  1535. XMail current article / thread / articles matching pattern / tagged articles
  1536. Xto someone.
  1537. X.TP
  1538. X\fBM\fP
  1539. XUser configurable options menu (for more information see section Options Menu).
  1540. X.TP
  1541. X\fBn\fP
  1542. XGo to to the next article.
  1543. X.TP
  1544. X\fBN\fP
  1545. XGo to to the next unread article.
  1546. X.TP
  1547. X\fBo\fP
  1548. XOutput current article / thread / articles matching pattern / tagged articles
  1549. Xto printer.
  1550. X.TP
  1551. X\fBo\fP
  1552. XOutput article/thread/tagged articles to printer.
  1553. X.TP
  1554. X\fBp\fP
  1555. XGo to the previous article.
  1556. X.TP
  1557. X\fBP\fP
  1558. XGo to the previous unread article.
  1559. X.TP
  1560. X\fBq\fP
  1561. XQuit tin.
  1562. X.TP
  1563. X\fBr\fP
  1564. XReply through mail to author.
  1565. X.TP
  1566. X\fBR\fP
  1567. XReply through mail to author with a copy of the current article included.
  1568. X.TP
  1569. X\fBs\fP
  1570. XSave current article / thread / articles matching pattern / tagged articles
  1571. Xto file(s) / mailbox. To save to a mailbox enter '=' or '=mailbox' when
  1572. Xasked for filename to save to. To save to <newsgroup name>/<filename> enter '+<filename>'.
  1573. X.TP
  1574. X\fBt\fP
  1575. XReturn to group selection index.
  1576. X.TP
  1577. X\fBv\fP
  1578. XPrint tin version number.
  1579. X.TP
  1580. X\fBw\fP
  1581. XPost an article to current group.
  1582. X.TP
  1583. X\fBW\fP
  1584. XList articles posted by user. The date posted, the newsgroup and the
  1585. Xsubject are listed.
  1586. SHAR_EOF
  1587. echo "End of tin1.02 part 1"
  1588. echo "File tin.1 is continued in part 2"
  1589. echo "2" > shar3_seq_.tmp
  1590. exit 0
  1591.  
  1592. exit 0 # Just in case...
  1593. -- 
  1594. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1595. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1596. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1597. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1598.