home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume29 / tin / patch02a < prev    next >
Encoding:
Text File  |  1992-04-03  |  51.4 KB  |  1,725 lines

  1. Newsgroups: comp.sources.misc
  2. From: iain%anl433.uucp@germany.eu.net (Iain Lea)
  3. Subject:  v29i050:  tin - threaded full screen newsreader v1.1 PL2, Patch02a/4
  4. Message-ID: <csm-v29i050=tin.165804@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 2fdcc5b4c84c4a4a6d651b6709ad8c72
  6. Date: Fri, 3 Apr 1992 22:58:56 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: iain%anl433.uucp@germany.eu.net (Iain Lea)
  10. Posting-number: Volume 29, Issue 50
  11. Archive-name: tin/patch02a
  12. Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
  13. Patch-To: tin: Volume 29, Issue 19-30
  14.  
  15. This is version 1.1 PL1 (patchlevel 2) of the tin newsreader.
  16.  
  17. -  Based more on Notes and tass than rn type newreaders.
  18.  
  19. -  Full screen, easy to use with on-line help at all levels.
  20.  
  21. -  Reads news locally (ie. /usr/spool/news) and via NNTP.
  22.  
  23. -  Threads on Subject: and/or Archive-name: mail headers.
  24.  
  25. -  Four different operating levels:
  26.    o  Group selection level
  27.    o  Thread selection level
  28.    o  Article selection level
  29.    o  Article viewer
  30.  
  31. -  Same interface to mail, pipe, print and save articles.
  32.  
  33. -  Batch mode to mail/save news when user is on holiday.
  34.  
  35. NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
  36.  
  37. Major improvements over tin 1.1 PL1 are the following:
  38.  
  39. o  Fixed saving and unpacking of articles.
  40.  
  41. o  Fixed setuid news version to use fewer setuid calls.
  42.  
  43. o  Fixed builtin inews to add .signature file to article.
  44.  
  45. o  Fixed Subject sorting to be case insensitive.
  46.  
  47. o  Fixed posting to check if a blank line exists between header and body.
  48.  
  49. o  Fixed more signal() code that was using SVR4 specific features.
  50.  
  51. o  Fixed #includes so that SCO Unix would compile.
  52.  
  53. For more bug fixes, changes & additions read the CHANGES & TODO files.
  54.  
  55. For compilation and installation information read the INSTALL file.
  56.  
  57. Enjoy
  58.     Iain.
  59.  
  60. #!/bin/sh
  61. # This is tin, a shell archive (shar 3.47)
  62. # made 03/29/1992 14:57 UTC by iain%anl433.uucp@germany.eu.net (Iain Lea)
  63. # Source directory /var/home/lea/.src/tin/112
  64. #
  65. # existing files will NOT be overwritten unless -c is specified
  66. #
  67. # This is part 1 of a multipart archive                                    
  68. # do not concatenate these parts, unpack them in order with /bin/sh        
  69. #
  70. # This shar contains:
  71. # length  mode       name
  72. # ------ ---------- ------------------------------------------
  73. # 150807 -rw------- tin.patch112
  74. #
  75. if test -r _shar_seq_.tmp; then
  76.     echo 'Must unpack archives in sequence!'
  77.     echo Please unpack part `cat _shar_seq_.tmp` next
  78.     exit 1
  79. fi
  80. # ============= tin.patch112 ==============
  81. if test -f 'tin.patch112' -a X"$1" != X"-c"; then
  82.     echo 'x - skipping tin.patch112 (File already exists)'
  83.     rm -f _shar_wnt_.tmp
  84. else
  85. > _shar_wnt_.tmp
  86. echo 'x - extracting tin.patch112 (Text)'
  87. sed 's/^X//' << 'SHAR_EOF' > 'tin.patch112' &&
  88. diff -rcs ../111/CHANGES ./CHANGES
  89. *** ../111/CHANGES    Fri Mar 27 14:00:15 1992
  90. --- ./CHANGES    Sun Mar 29 12:15:21 1992
  91. ***************
  92. *** 1,172 ****
  93. ! CHANGES tin v1.1 PL0 -> tin 1.1 PL1
  94. X  -----------------------------------
  95. X  
  96. ! 1)  crs89rdb@brunel.ac.uk (Roger Binns)
  97. !     BUG. active file is read in but if new news arrives while one
  98. !          is already reading news it will not be shown.
  99. !     FIX. active.c - added resync_active_file() to read active file
  100. !          at set intervals.
  101. X  
  102. ! 2)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  103. !     BUG. 5% of all recieved bug reports are empty!?!
  104. !     FIX. post.c - added confirm question before mailing bug report. 
  105. X  
  106. X  3)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  107. !     BUG. Under SYSV doing a Ctrl-\ in foreground process when tin -U 
  108. !          kills background updating process.
  109. !     FIX. main.c - added signal (SIGQUIT, SIG_IGN) to background process.
  110. X  
  111. ! 4) m31z@jupiter.sun.csd.unb.ca (Steven Cogswell)
  112. !     BUG. When editing 'M' entries or killing an articles get SIGSEGV.
  113. !     FIX. prompt.c - changed input parameter from (char *) 0 to "".
  114. X  
  115. ! 5)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  116. !     BUG. error_message() is missing 2nd parameter in some cases.
  117. !     FIX. getline.c main.c misc.c open.c - added "" as 2nd parameter.
  118. X  
  119. ! 6)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  120. !     BUG. tin -U background indexing process dies if foreground tin exits
  121. !          or receives certain signals. 
  122. !     FIX. main.c - set background process to be its own process leader 
  123. !          and to disassociate its control terminal and ignore signals.
  124. X  
  125. ! 7)  mfaurot@bogart.uucp (Michael Faurot)
  126. !     BUG. The opening welcome screen is garbled on certain machines.
  127. !     FIX. main.c - applied supplied patch.
  128. X  
  129. ! 8)  uunet!atlantis!bugs (Dan Berry) 
  130. !     BUG. Various functions had wrong number of parameters.
  131. !     FIX. main.c getline.c - applied supplied patch.
  132. X  
  133. ! 9)  robinson@mdivax1.mdd.comm.mot.com (Jim Robinson)
  134. !     BUG. Help message about 'u' command at group level missing.
  135. !     FIX. help.c - added txt_help_u string to group help array.
  136. X  
  137. ! 10) robert@sys.sweden.dg.com (Robert Claeson)
  138. !     ADD. main.c - added NNTP_ONLY define to always read via NNTP.
  139. X  
  140. ! 11) iain%anl433.uucp@germany.eu.net (Iain Lea)
  141. !     BUG. During compilation warning are issued that signal() call has
  142. !          incorrect return type (ie. void / int).
  143. !     FIX. tin.h - added #define SIGTYPE gobbly-gook for a few different
  144. !          compilers and machines.
  145. X  
  146. ! 12) iain%anl433.uucp@germany.eu.net (Iain Lea)
  147. !     BUG. Under interactive SYSVR3.2 tin does not auto resize under an xterm.
  148. !     FIX. tin.h - removed AUTO_RESIZE define and added a few #include files.
  149. !  
  150. ! 13) djm@eng.umd.edu (David MacKenzie)
  151. !     BUG. POSIX_JOB_CONTROL relied on SVR4 extensions.
  152. !     FIX. signal.c - applied supplied patch.
  153. X  
  154. ! 14) hakanl@lulea.telesoft.se (Hakan Lennestal)
  155. !     BUG. SunOS 4.1.1 does not handle setreuid() & setregid() correctly.
  156. !     FIX. misc.c - applied supplied patch.
  157. ! 15) marc@CAM.ORG (Marc Boucher)
  158. !     BUG. SVR4 can support LONG_FILENAMES and replaced libucb (buggy).
  159. !     FIX. Makefile - applied supplied patch. 
  160. ! 16) crs89rdb@brunel.ac.uk (Roger Binns)
  161. !     BUG. Resizing a xterm while tin is suspended causes tin to use the
  162. !          wrong screen size when it is restarted.
  163. !     FIX. signal.c - added routine to check window size when restarted.
  164. ! 17) ted@isgtec.UUCP (Ted Richards)
  165. !     BUG. On BSD 'o' command forces -Pps0 to be used instead of -Pps.
  166. !     FIX. feed.c - changed default printer from -Pps0 to -Pps.
  167. ! 18) otto@norisc.uucp (Otto Niesser)
  168. !     BUG. TAB command at page level was changed for the worst ???
  169. !     FIX. page.c - Due to HUGE outcry put an #ifdef in TAB command so
  170. !          people have have the 1.0 PL7 / 1.1 PL0 behaviour. For #ifdef
  171. !          info read the INSTALL file and Makefile.
  172. ! 19) iain%anl433.uucp@germany.eu.net (Iain Lea)
  173. !     BUG. Mailing a thread is a little tiresome when asked to confirm
  174. !          the sending of every article.
  175. !     FIX. feed.c post.c - added code to ask once to send all the thread.
  176. ! 20) unido!bermuda!dansmith (Daniel Smith)
  177. !     BUG. ~/Mail & ~/News directories are always created whether -d or
  178. !          -m are defined.
  179. !     FIX. init.c main.c - if -d / -f are used they will override ~/Mail
  180. !          and ~/News default values.
  181. ! 21) kleeman@informatik.uni-wuerzburg.de (Fritz Kleeman)
  182. !     BUG. Error in copy_fp() when printing/piping a thread via NNTP.
  183. !     FIX. open.c - applied supplied patch.
  184. ! 22) iain%anl433.uucp@germany.eu.net (Iain Lea)
  185. !     BUG. 'c' command does not automatically goto next page of groups.
  186. !     FIX. select.c - changed code to goto next page if at  bottom.
  187. ! 23) john@iti.org (John Sauter)
  188. !     BUG. Always points to 2nd group in group selection index.
  189. !     FIX. main.c - check_any_unread_news() was not always returning
  190. !          a valid value. Only occured on BSD and sony NEWS here?!?.
  191. ! 24) iain%anl433.uucp@germany.eu.net (Iain Lea)
  192. !     ADD. Added XUSER nntp extension to log_user() to log client user
  193. !          info to nntp server logfile.
  194. ! 25) iain%anl433.uucp@germany.eu.net (Iain Lea)
  195. !     ADD. Added auto_subscribe_groups() routine to automatically subscribe
  196. !          user to groups specified in /usr/lib/news/subscriptions by news
  197. !          admin. If reading via NNTP does a LIST SUBSCRIPTIONS command.
  198. !   
  199. ! 26) nelson@csd.uwm.edu (Nelson Kading)
  200. !     BUG. Man page does not format correctly.
  201. !     FIX. tin.1 - applied supplied patch.
  202. ! 27) nelson@csd.uwm.edu (Nelson Kading)
  203. !     BUG. Does not compile on Convex machines.
  204. !     FIX. tin.h init.c - applied supplied patch.  
  205. ! 28) iain%anl433.uucp@germany.eu.net (Iain Lea)
  206. !     ADD. Added XINDEX nntp extension to allow NNTP client to get group
  207. !          index files from NNTP server machine if my NNTP XINDEX patch
  208. !          is installed. Define NNTP_EXTS to use NNTP_XUSER & NNTP_XINDEX
  209. ! 29) iain%anl433.uucp@germany.eu.net (Iain Lea)
  210. !     BUG. -s has no real use and -d should be -s (ie. save news dir)
  211. !     FIX. main.c tin.1 - did as noted above.
  212. ! 30) john_palkovic@ssc.gov (John Palkovic)
  213. !     BIG. Under BSD the DEFAULT_MAILER should be /bin/mail not /bin/mail.
  214. !     FIX. tin.h - replaced /bin/rmail with /bin/mail for DEFAULT_MAILER.
  215. ! 31) leilabd@syma.sussex.ac.uk (Leila Burrell-Davis)
  216. !     BUG. $EDITOR variable is documented in man page but $VISUAL is used.
  217. !     FIX. tin.1 - changed all references of $EDITOR to $VISUAL.
  218. ! 32) robinson@mdivax1.mdd.comm.mot.com (Jim Robinson)
  219. !     NOTE. Supplied a 110K patch to add features & fix problems:
  220. !     This man deserves a gold star for fixing some irking bugs!
  221. !     FIX. misc.c - mark_unthreaded_groups() always needed to strcmp().
  222. !     FIX. art.c - read_group() could index into arts[] with neg number.
  223. !     FIX. newsrc.c - parse_unread() fixed one off error in unread arts.
  224. !     FIX. page.c - show_page() return value was being treated like an
  225. !          index into 'arts'. It is actually an index into 'base'.
  226. !     FIX. post.c - post_response() find_mail_header() is setting global
  227. !          variable 'note_h_subj'. This can cause problems. Replaced use
  228. !          of 'note_h_subj' with local variable.
  229. !     FIX. kill.c - kill_any_articles() replaced arts[i].tagged with
  230. !          arts[i].killed to make killing work.
  231. !     FIX. art.c - reload_index() after load_index() and before find_base()
  232. !          it is necessary to call read_newsrc_line().
  233. !     FIX. thread.c - main loop index was being incorrectly initialized. 
  234. !     FIX. thread.c - show_thread_page() fixed to page properly.
  235. !     FIX. search.c - search_author() was wrapping around incorrectly.
  236. !     FIX. group.c - show_group_page() so only new arts are counted in
  237. !          show only unread mode.
  238. !     FIX. newsrc.c - print_seq() totally rewritten (It needed it! :-))
  239. !     ADD. group.c -     'r' command to toggle show_unread_only mode.
  240. !     ADD. thread.c - 'T' command to tag articles at thread listing level
  241. ! 33) iain%anl433.uucp@germany.eu.net (Iain Lea)
  242. !     BUG. If 'c' catchup done at article level from within thread level
  243. !          a SIGSEGV is produced upon returning to grouyp level.
  244. !     FIX. group.c - add check to see if index_point < 0.
  245. --- 1,61 ----
  246. ! CHANGES tin v1.1 PL1 -> tin 1.1 PL2
  247. X  -----------------------------------
  248. X  
  249. ! 1)  fischer-michael@cs.yale.edu (Michael Fischer)
  250. !     BUG. #ifdef INDEX_DAEMON should be #ifndef in create_path()
  251. !     FIX. save.c - applied supplied patch.
  252. X  
  253. ! 2)  nms@jvd.msk.su (Nickolay Saukh)
  254. !     BUG. When freeing active array max_active is used in loop
  255. !          when number of allocated entries is num_active.
  256. !     FIX. memory.c - applied supplied patch.
  257. X  
  258. X  3)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  259. !     BUG. SVR4 specific signal handling code used in 2 routines.
  260. !     FIX. kill.c rcfile.c - added #ifdefs around SVR4 signal code.
  261. X  
  262. ! 4)  hakanl@lulea.telesoft.se (Hakan Lennestal)
  263. !     BUG. setuid tin changes between real & tin uid so many times that
  264. !          its now very hard to follow what is happening.
  265. !     FIX. applied supplied patch.
  266. X  
  267. ! 5)  hakanl@lulea.telesoft.se (Hakan Lennestal)
  268. !     BUG. inews will eat posted message until it finds the 1st blank line.
  269. !     FIX. post.c - applied supplied patch.
  270. X  
  271. ! 6)  cjm@trillion.mincom.oz.au (Chris Moran)
  272. !     BUG. Sorting on Subject: & From: should be case insensitive.
  273. !     FIX. art.c misc.c - applied supplied patch.
  274. X  
  275. ! 7)  cjm@trillion.mincom.oz.au (Chris Moran)
  276. !     BUG. Auto-save should do not post process arts if process type is None.
  277. !     FIX. feed.c - applied supplied patch.
  278. X  
  279. ! 8)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  280. !     BUG. To use an editor without start line offset tin has to be explicity
  281. !          recompiled with feature enabled/disabled.
  282. !     FIX. Added option to 'M' menu to toggle ON/OFF.
  283. X  
  284. ! 9)  iain%anl433.uucp@germany.eu.net (Iain Lea)
  285. !     BUG. Saving articles can sometimes not unpack articles because they were
  286. !          saved in the wrong order.
  287. !     FIX. save.c - save_comp() now recognizes Archive-name: & Subject: headers. 
  288. X  
  289. ! 10) lusgr@chili.cc.lehigh.edu (Stephen G. Roseman)
  290. !     BUG. IBM AIX entry uses wrong wrong mailer & hostname call. Also
  291. !          NNTP_INEWS inews does not add .signature file.
  292. !     FIX. tin.h inews.c - applied supplied patch
  293. X  
  294. ! 11) cjm@trillion.mincom.oz.au (Chris Moran)
  295. !     BUG. -u option does a LF which causes cron to send mail to user everytime
  296. !          it is run.
  297. !     FIX. active.c - applied supplied patch.
  298. X  
  299. ! 12) Nickolay.Saukh@jvd.msk.su (Nickolay.Saukh)
  300. !     BUG. Could not enter Russian chars (high bit) problem.
  301. !     FIX. tin.h getline.c main.c - applied supplied patch.
  302. X  
  303. ! 13) kronung@jlug-gw.uni-giessen.dbp.de (Bernhard Kroenung)
  304. !     BUG. #include <sys/pty.h> does not exist under SCO Unix.
  305. !     FIX. tin.h - added #ifndef SCO_UNIX around #include file.
  306. !  
  307. diff -rcs ../111/INSTALL ./INSTALL
  308. *** ../111/INSTALL    Fri Mar 27 14:00:15 1992
  309. --- ./INSTALL    Fri Mar 27 09:18:34 1992
  310. ***************
  311. *** 1,4 ****
  312. ! Compilation and installation notes for tin - 24-03-92 
  313. X  -----------------------------------------------------
  314. X  
  315. X  Tin has been compiled on a wide range of Un*x machines with cc and gcc.
  316. --- 1,4 ----
  317. ! Compilation and installation notes for tin - 26-03-92 
  318. X  -----------------------------------------------------
  319. X  
  320. X  Tin has been compiled on a wide range of Un*x machines with cc and gcc.
  321. ***************
  322. *** 168,176 ****
  323. X  NO_REGEX
  324. X  Define if you do not want to use regular expression pattern matching.
  325. X  
  326. - NO_START_LINE
  327. - Do not start editor with line offset into file.
  328. X  NO_SHELL_ESCAPE
  329. X  Do not allow shell escapes.
  330. X  
  331. --- 168,173 ----
  332. ***************
  333. *** 201,217 ****
  334. X  4) * Sun 3/4/IPC/SS1/SS2 & SunOS 4.0.3/4.1/4.1.1 
  335. X  5) * Dec 5000/Vax & Ultrix 4.1/4.2
  336. X  6) * Vax 11/785 & BSD 4.3
  337. ! 7)   ICL DRS6000 & SysVR4.0 
  338. ! 8)   Apricot VX/FT & SCO 3.2.2
  339. ! 9)   DIAB DS90 & D-NIX 5.3
  340. ! 10)  Amdahl & SysVR3
  341. ! 11)  HP 720/845 & HP-UX 7.0
  342. ! 12)  IBM RS/6000 & AIX 3.1.5
  343. ! 13)  NCR Tower & SysV
  344. ! 14)  Atari STe & Minix 1.5.10.3b
  345. ! 15)  Powerbook 140 & MacMinix
  346. ! 16)  386 PC & Minix 386
  347. ! 17)  DG Aviion & DG-UX
  348. X  18)  Sequent S81 & PTX 1.3
  349. X  19)  Convex C220 & Convex Un*x
  350. X  
  351. --- 198,214 ----
  352. X  4) * Sun 3/4/IPC/SS1/SS2 & SunOS 4.0.3/4.1/4.1.1 
  353. X  5) * Dec 5000/Vax & Ultrix 4.1/4.2
  354. X  6) * Vax 11/785 & BSD 4.3
  355. ! 7) * DG Aviion 300 & DG-UX
  356. ! 8)   ICL DRS6000 & SysVR4.0 
  357. ! 9)   Apricot VX/FT & SCO 3.2.2
  358. ! 10)  DIAB DS90 & D-NIX 5.3
  359. ! 11)  Amdahl & SysVR3
  360. ! 12)  HP 720/845 & HP-UX 7.0
  361. ! 13)  IBM RS/6000 & AIX 3.1.5
  362. ! 14)  NCR Tower & SysV
  363. ! 15)  Atari STe & Minix 1.5.10.3b
  364. ! 16)  Powerbook 140 & MacMinix
  365. ! 17)  386 PC & Minix 386
  366. X  18)  Sequent S81 & PTX 1.3
  367. X  19)  Convex C220 & Convex Un*x
  368. X  
  369. diff -rcs ../111/MANIFEST ./MANIFEST
  370. *** ../111/MANIFEST    Fri Mar 27 14:00:14 1992
  371. --- ./MANIFEST    Sun Mar 29 16:57:24 1992
  372. ***************
  373. *** 1,46 ****
  374. ! MANIFEST for tin newsreader (Sun Mar 22 18:07:24 MET 1992)
  375. X  ----------------------------------------------------------
  376. !    10466 Makefile
  377. !      118 MANIFEST
  378. !     3253 README
  379. !     7851 CHANGES
  380. !     3490 TODO
  381. !     7863 INSTALL
  382. !    35435 tin.1
  383. X      2247 wildmat.3
  384. !    44431 tin.nrf
  385. !    10183 tin.h
  386. !    14795 extern.h
  387. X      3725 nntp.h
  388. !    24466 proto.h
  389. !      584 patchlev.h
  390. !     8707 active.c
  391. !    24273 art.c
  392. !     7612 curses.c
  393. X      3371 debug.c
  394. !    12199 feed.c
  395. !    11438 getline.c
  396. !    22085 group.c
  397. X      2510 hashstr.c
  398. !     5257 help.c
  399. !     2409 inews.c
  400. !    11316 init.c
  401. !    11211 kill.c
  402. !    20905 lang.c
  403. !    12102 main.c
  404. X      6765 memory.c
  405. !    15357 misc.c
  406. !    21037 newsrc.c
  407. !    12769 open.c
  408. !    22692 page.c
  409. !    20624 post.c
  410. !     3318 prompt.c
  411. !    22745 rcfile.c
  412. !    25511 save.c
  413. !     2662 screen.c
  414. X      7141 search.c
  415. !    20378 select.c
  416. X     12160 signal.c
  417. X     14471 thread.c
  418. X      4749 wildmat.c
  419. !   536681 total
  420. --- 1,46 ----
  421. ! MANIFEST for tin newsreader (Sun Mar 29 16:57:23 MET DST 1992)
  422. X  ----------------------------------------------------------
  423. !    11319 Makefile
  424. !      122 MANIFEST
  425. !     2208 README
  426. !     2528 CHANGES
  427. !     3320 TODO
  428. !     7804 INSTALL
  429. !    35602 tin.1
  430. X      2247 wildmat.3
  431. !    44628 tin.nrf
  432. !    10264 tin.h
  433. !    14877 extern.h
  434. X      3725 nntp.h
  435. !    24790 proto.h
  436. !      633 patchlev.h
  437. !     8563 active.c
  438. !    24186 art.c
  439. !     7800 curses.c
  440. X      3371 debug.c
  441. !    12285 feed.c
  442. !    11452 getline.c
  443. !    21926 group.c
  444. X      2510 hashstr.c
  445. !     5275 help.c
  446. !     2428 inews.c
  447. !    11183 init.c
  448. !    11206 kill.c
  449. !    21092 lang.c
  450. !    12389 main.c
  451. X      6765 memory.c
  452. !    15519 misc.c
  453. !    20341 newsrc.c
  454. !    13060 open.c
  455. !    22496 page.c
  456. !    21286 post.c
  457. !     3822 prompt.c
  458. !    23032 rcfile.c
  459. !    25405 save.c
  460. !     2992 screen.c
  461. X      7141 search.c
  462. !    20659 select.c
  463. X     12160 signal.c
  464. X     14471 thread.c
  465. X      4749 wildmat.c
  466. !   533631 total
  467. diff -rcs ../111/Makefile ./Makefile
  468. *** ../111/Makefile    Fri Mar 27 14:00:13 1992
  469. --- ./Makefile    Sun Mar 29 16:57:04 1992
  470. ***************
  471. *** 1,6 ****
  472. X  # Makefile for tin - for tin compiler flag options read INSTALL and README.
  473. X  EXE    = tin
  474. X  BINDIR    = /usr/local/bin
  475. X  MANDIR    = /usr/man/man1
  476. X  
  477. --- 1,6 ----
  478. X  # Makefile for tin - for tin compiler flag options read INSTALL and README.
  479. X  EXE    = tin
  480. + EXED    = tind
  481. X  BINDIR    = /usr/local/bin
  482. X  MANDIR    = /usr/man/man1
  483. X  
  484. ***************
  485. *** 7,17 ****
  486. X  STRIP    = strip
  487. X  ROFF    = + drf -F Helvetica -man3 
  488. X  PRINT    = -Pps0
  489. ! BASE_VER= ../110
  490. ! PATCH_VER = 110
  491. ! MAIL_ADDR = iain%anl433.uucp@germany.eu.net
  492. X  
  493. ! HFILES    = tin.h extern.h nntp.h proto.h patchlev.h
  494. X  
  495. X  CFILES    = active.c art.c curses.c debug.c feed.c getline.c group.c \
  496. X          hashstr.c help.c inews.c init.c kill.c lang.c main.c memory.c \
  497. --- 7,17 ----
  498. X  STRIP    = strip
  499. X  ROFF    = + drf -F Helvetica -man3 
  500. X  PRINT    = -Pps0
  501. ! BASE_VER= ../111
  502. ! PATCH_VER = 112
  503. ! MAIL_ADDR = "iain%anl433.uucp@germany.eu.net (Iain Lea)"
  504. X  
  505. ! HFILES    = tin.h extern.h nntp.h proto.h
  506. X  
  507. X  CFILES    = active.c art.c curses.c debug.c feed.c getline.c group.c \
  508. X          hashstr.c help.c inews.c init.c kill.c lang.c main.c memory.c \
  509. ***************
  510. *** 60,65 ****
  511. --- 60,66 ----
  512. X  #
  513. X  sysv:
  514. X      @echo "Compiling for System V..."
  515. +     @$(MAKE) timestamp
  516. X      @$(MAKE) CFLAGS='-c -O -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  517. X               LIBS="-lcurses -ltermcap" \
  518. X               EXE=tin linkit
  519. ***************
  520. *** 140,149 ****
  521. X               LIBS="-lcurses" \
  522. X               EXE=tin linkit
  523. X  
  524. ! # THE FOLLOWING ARE SITE SPECIFIC - IGNORE !!!
  525. X  anl433:
  526. X      @echo "Compiling for ANL433 with NNTP ONLY..."
  527. !     @$(MAKE) CFLAGS='-c -g -DNNTP_ONLY -DNNTP_EXTS -DNNTP_INEWS -DDEBUG -DSIGTYPE=void -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  528. X               LIBS="-lcurses -ltermcap" \
  529. X               NNTPLIB=clientlib.o \
  530. X               NETLIBS="-linet -lnsl_s" \
  531. --- 141,151 ----
  532. X               LIBS="-lcurses" \
  533. X               EXE=tin linkit
  534. X  
  535. ! # !!!  THE FOLLOWING ARE SITE SPECIFIC - IGNORE  !!!
  536. X  anl433:
  537. X      @echo "Compiling for ANL433 with NNTP ONLY..."
  538. !     @$(MAKE) timestamp
  539. !     @$(MAKE) CFLAGS='-c -O -DNNTP_ONLY -DNNTP_EXTS -DNNTP_INEWS -DDEBUG -DSIGTYPE=void -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  540. X               LIBS="-lcurses -ltermcap" \
  541. X               NNTPLIB=clientlib.o \
  542. X               NETLIBS="-linet -lnsl_s" \
  543. ***************
  544. *** 151,167 ****
  545. X  
  546. X  daemon:
  547. X      @echo "Compiling for ANL433 with INDEX DAEMON..."
  548. X      @$(MAKE) CFLAGS='-c -O -DINDEX_DAEMON -DDEBUG -DSIGTYPE=void -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  549. !              EXE=tind linkit
  550. X  
  551. X  home:
  552. X      @echo "Compiling for (HOME) Xenix 386..."
  553. !     @$(MAKE) CFLAGS='-c -W2 -Zi -DSYSV -DRESYNC_ACTIVE_SECS=30 -DDEBUG -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
  554. X               LIBS="-lcurses -ltinfo -lx" \
  555. X               LFLAGS=-Zi EXE=tin linkit
  556. X  
  557. X  mx331:
  558. X      @echo "Compiling for MX331 with NNTP ONLY..."
  559. X      @$(MAKE) CFLAGS='-c -O -DNNTP_ONLY -DNNTP_EXTS -DNNTP_INEWS -DUSE_MKDIR -DLIBDIR=\\"/usr/lib/news\\" -DSPOOLDIR=\\"/usr/spool/news\\"' \
  560. X               NNTPLIB=clientlib.o \
  561. X               LIBS="-lcurses" \
  562. --- 153,179 ----
  563. X  
  564. X  daemon:
  565. X      @echo "Compiling for ANL433 with INDEX DAEMON..."
  566. +     @$(MAKE) timestamp
  567. X      @$(MAKE) CFLAGS='-c -O -DINDEX_DAEMON -DDEBUG -DSIGTYPE=void -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  568. !              EXE=$(EXED) linkit
  569. X  
  570. + dg01:
  571. +     @echo "Compiling for DG01 with NNTP ONLY..."
  572. +     @$(MAKE) CFLAGS='-c -O -DNNTP_ONLY -DNNTP_EXTS -DNNTP_INEWS -DDEBUG -DUSE_LONG_FILENAMES -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  573. +             LIBS="-lcurses" \
  574. +             NNTPLIB=clientlib.o \
  575. +             EXE=tin linkit
  576. X  home:
  577. X      @echo "Compiling for (HOME) Xenix 386..."
  578. !     @$(MAKE) timestamp
  579. !     @$(MAKE) CFLAGS='-c -W2 -Zi -DSYSV -DDEBUG -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
  580. X               LIBS="-lcurses -ltinfo -lx" \
  581. X               LFLAGS=-Zi EXE=tin linkit
  582. X  
  583. X  mx331:
  584. X      @echo "Compiling for MX331 with NNTP ONLY..."
  585. +     @$(MAKE) timestamp
  586. X      @$(MAKE) CFLAGS='-c -O -DNNTP_ONLY -DNNTP_EXTS -DNNTP_INEWS -DUSE_MKDIR -DLIBDIR=\\"/usr/lib/news\\" -DSPOOLDIR=\\"/usr/spool/news\\"' \
  587. X               NNTPLIB=clientlib.o \
  588. X               LIBS="-lcurses" \
  589. ***************
  590. *** 169,174 ****
  591. --- 181,187 ----
  592. X  
  593. X  mx351:
  594. X      @echo "Compiling for MX351 with NNTP ONLY..."
  595. +     @$(MAKE) timestamp
  596. X      @$(MAKE) CFLAGS='-c -O -DSVR4 -DNNTP_ONLY -DNNTP_EXTS -DNNTP_INEWS -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
  597. X               NNTPLIB=clientlib.o \
  598. X               NETLIBS="-lnsl -lsocket" \
  599. ***************
  600. *** 177,182 ****
  601. --- 190,196 ----
  602. X  
  603. X  norisc:
  604. X      @echo "Compiling for NORISC with NNTP..."
  605. +     @$(MAKE) timestamp
  606. X      @$(MAKE) CFLAGS='-c -O -DBSD -DNNTP_ABLE -DDEBUG -DLIBDIR=\"/news/lib\" -DSPOOLDIR=\"/news/spool\"' \
  607. X              NNTPLIB=/news/nntp/clientlib.o \
  608. X              LIBS="-lcurses -ltermcap" \
  609. ***************
  610. *** 201,206 ****
  611. --- 215,227 ----
  612. X      $(CC) $(LFLAGS) -o $(EXE) $(OFILES) $(NNTPLIB) $(NETLIBS) $(LIBS) 
  613. X      @ls -l $(EXE)
  614. X  
  615. + timestamp:
  616. +     @echo "Generating timestamp..."
  617. +     @-cp patchlev.h patchlev.h.old
  618. +     @sed /COMPILED/d patchlev.h > PATCHLEV.H
  619. +     @echo #define COMPILED \"`date`\" >> PATCHLEV.H
  620. +     @-mv PATCHLEV.H patchlev.h
  621. X  install:
  622. X      @echo "Installing $(EXE)..."
  623. X      @$(STRIP) $(EXE)
  624. ***************
  625. *** 223,232 ****
  626. X      @ls -l $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
  627. X      @cp $(EXE).1 $(MANDIR)
  628. X  
  629. X  proto:
  630. X      @echo "Generating function prototypes for proto.h..."
  631. - #    @cextract -DSIGTSTP -DSIGWINCH $(CFILES) > PROTO.H
  632. - #    @-mv PROTO.H proto.h
  633. X      @echo "#if __STDC__" > PROTO.H
  634. X      @echo " " >> PROTO.H
  635. X      @cproto -e $(CFILES) >> PROTO.H
  636. --- 244,259 ----
  637. X      @ls -l $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
  638. X      @cp $(EXE).1 $(MANDIR)
  639. X  
  640. + install_daemon:
  641. +     @echo "Installing index daemon $(EXED)..."
  642. +     @$(STRIP) $(EXED)
  643. +     @-mv $(EXED) $(BINDIR)
  644. +     @chown news $(BINDIR)/$(EXED) 
  645. +     @chmod 0755 $(BINDIR)/$(EXED)"
  646. +     @ls -l $(BINDIR)/$(EXED)
  647. X  proto:
  648. X      @echo "Generating function prototypes for proto.h..."
  649. X      @echo "#if __STDC__" > PROTO.H
  650. X      @echo " " >> PROTO.H
  651. X      @cproto -e $(CFILES) >> PROTO.H
  652. ***************
  653. *** 246,258 ****
  654. X      @echo "Creating MANIFEST..."
  655. X      @echo "MANIFEST for tin newsreader (`date`)" > MANIFEST
  656. X      @echo "----------------------------------------------------------" >> MANIFEST
  657. !     @wc -c $(SUPPORT) $(HFILES) $(CFILES) >> MANIFEST
  658. X  
  659. X  shar:
  660. X      @echo "Generating shell archive..."
  661. X      @make nroff
  662. X      @make manifest
  663. !     @shar -a -n $(EXE)1.1 -s $(MAIL_ADDR) -L50 -o ../$(EXE).shar $(SUPPORT) $(CFILES) $(HFILES)
  664. X  
  665. X  uuencode:
  666. X      @make tar
  667. --- 273,285 ----
  668. X      @echo "Creating MANIFEST..."
  669. X      @echo "MANIFEST for tin newsreader (`date`)" > MANIFEST
  670. X      @echo "----------------------------------------------------------" >> MANIFEST
  671. !     @wc -c $(SUPPORT) $(HFILES) patchlev.h $(CFILES) >> MANIFEST
  672. X  
  673. X  shar:
  674. X      @echo "Generating shell archive..."
  675. X      @make nroff
  676. X      @make manifest
  677. !     @shar -a -n $(EXE)1.1 -s $(MAIL_ADDR) -L50 -o ../$(EXE).shar $(SUPPORT) $(CFILES) $(HFILES) patchlev.h
  678. X  
  679. X  uuencode:
  680. X      @make tar
  681. ***************
  682. *** 272,284 ****
  683. X      @make diff
  684. X      @echo "Generating patch against $(BASE_VER)..."
  685. X      @-mv $(EXE).diff $(EXE).patch$(PATCH_VER)
  686. !     @shar -a -n $(EXE) -s $(MAIL_ADDR) -L50 -o patch$(PATCH_VER).shar $(EXE).patch$(PATCH_VER)
  687. !     @ls -l patch$(PATCH_VER).shar*
  688. X  
  689. X  tar:
  690. X      @echo "Generating compressed tar file..."
  691. X      @-rm $(EXE).tar $(EXE).tar.Z > /dev/null 2>&1
  692. !     @tar cvf $(EXE).tar $(SUPPORT) $(CFILES) $(HFILES) 
  693. X      @echo "Compressing $(EXE).tar..."
  694. X      @compress $(EXE).tar 
  695. X      @ls -l $(EXE).tar.Z
  696. --- 299,311 ----
  697. X      @make diff
  698. X      @echo "Generating patch against $(BASE_VER)..."
  699. X      @-mv $(EXE).diff $(EXE).patch$(PATCH_VER)
  700. !     @shar -a -n $(EXE) -s $(MAIL_ADDR) -L50 -o ../patch$(PATCH_VER).shar $(EXE).patch$(PATCH_VER)
  701. !     @ls -l ../patch$(PATCH_VER).shar*
  702. X  
  703. X  tar:
  704. X      @echo "Generating compressed tar file..."
  705. X      @-rm $(EXE).tar $(EXE).tar.Z > /dev/null 2>&1
  706. !     @tar cvf $(EXE).tar $(SUPPORT) $(CFILES) $(HFILES) patchlev.h 
  707. X      @echo "Compressing $(EXE).tar..."
  708. X      @compress $(EXE).tar 
  709. X      @ls -l $(EXE).tar.Z
  710. ***************
  711. *** 286,298 ****
  712. X  zoo:
  713. X      @echo "Generating zoo archive file..."
  714. X      @-rm $(EXE).zoo > /dev/null 2>&1
  715. !     @zoo ah $(EXE).zoo  $(SUPPORT) $(CFILES) $(HFILES)
  716. X      @ls -l $(EXE).zoo
  717. X  
  718. X  tags:
  719. X      @echo "Generating tags (results in ./tags)..."
  720. X      @-rm tags
  721. !     @ctags $(HFILES) $(CFILES) 
  722. X  
  723. X  lint:
  724. X      @echo "Linting source (results in ./LINT)..."
  725. --- 313,325 ----
  726. X  zoo:
  727. X      @echo "Generating zoo archive file..."
  728. X      @-rm $(EXE).zoo > /dev/null 2>&1
  729. !     @zoo ah $(EXE).zoo  $(SUPPORT) $(CFILES) $(HFILES) patchlev.h
  730. X      @ls -l $(EXE).zoo
  731. X  
  732. X  tags:
  733. X      @echo "Generating tags (results in ./tags)..."
  734. X      @-rm tags
  735. !     @ctags $(HFILES) patchlev.h $(CFILES) 
  736. X  
  737. X  lint:
  738. X      @echo "Linting source (results in ./LINT)..."
  739. ***************
  740. *** 312,318 ****
  741. X  
  742. X  cscope:
  743. X      @echo "Creating cscope database $(EXE)..."
  744. !     @cscope $(SUPPORT) $(HFILES) $(CFILES)
  745. X  
  746. X  man:
  747. X      @echo "Printing $(EXE) manual to $(PRINT)..."
  748. --- 339,345 ----
  749. X  
  750. X  cscope:
  751. X      @echo "Creating cscope database $(EXE)..."
  752. !     @cscope $(SUPPORT) $(HFILES) patchlev.h $(CFILES)
  753. X  
  754. X  man:
  755. X      @echo "Printing $(EXE) manual to $(PRINT)..."
  756. ***************
  757. *** 319,325 ****
  758. X      @$(ROFF) $(PRINT) $(EXE).1
  759. X  
  760. X  print:
  761. !     @for FILE in $(HFILES) $(CFILES) $(SUPPORT); do \
  762. X      echo "Printing $$FILE to $(PRINT)..."; \
  763. X      expand -4 $$FILE | enscript -2r -h -G $(PRINT) -b $$FILE; \
  764. X      done
  765. --- 346,352 ----
  766. X      @$(ROFF) $(PRINT) $(EXE).1
  767. X  
  768. X  print:
  769. !     @for FILE in $(HFILES) patchlev.h $(CFILES) $(SUPPORT); do \
  770. X      echo "Printing $$FILE to $(PRINT)..."; \
  771. X      expand -4 $$FILE | enscript -2r -h -G $(PRINT) -b $$FILE; \
  772. X      done
  773. ***************
  774. *** 337,343 ****
  775. X  init.o:        init.c $(HFILES)
  776. X  kill.o:        kill.c $(HFILES)
  777. X  lang.o:        lang.c $(HFILES)
  778. ! main.o:        main.c $(HFILES)
  779. X  memory.o:    memory.c $(HFILES)
  780. X  misc.o:        misc.c $(HFILES)
  781. X  newsrc.o:    newsrc.c $(HFILES)
  782. --- 364,370 ----
  783. X  init.o:        init.c $(HFILES)
  784. X  kill.o:        kill.c $(HFILES)
  785. X  lang.o:        lang.c $(HFILES)
  786. ! main.o:        main.c $(HFILES) patchlev.h
  787. X  memory.o:    memory.c $(HFILES)
  788. X  misc.o:        misc.c $(HFILES)
  789. X  newsrc.o:    newsrc.c $(HFILES)
  790. Only in .: Makefile~
  791. diff -rcs ../111/README ./README
  792. *** ../111/README    Fri Mar 27 14:00:14 1992
  793. --- ./README    Sun Mar 29 12:17:29 1992
  794. ***************
  795. *** 1,4 ****
  796. ! This is version 1.1 PL1 (patchlevel 1) of the tin newsreader.
  797. X  
  798. X  -  Based more on Notes and tass than rn type newreaders.
  799. X  
  800. --- 1,4 ----
  801. ! This is version 1.1 PL1 (patchlevel 2) of the tin newsreader.
  802. X  
  803. X  -  Based more on Notes and tass than rn type newreaders.
  804. X  
  805. ***************
  806. *** 20,73 ****
  807. X  
  808. X  NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
  809. X  
  810. ! Major improvements over tin 1.1 PL0 are the following:
  811. X  
  812. ! o  Added builtin NNTP inews so no need for mini-inews on client machines.
  813. X  
  814. ! o  Added -DNNTP_ONLY define to compile tin to always read via NNTP.
  815. X  
  816. ! o  Added XUSER and XINDEX extensions to NNTP protocol (RFC977) to allow
  817. !    index files to be stored on the NNTP server and retreived by clients
  818. !    to save each client having their own copy of the same index files.
  819. !    (NOTE. I will be posting the patches to NNTP in the NEAR future)
  820. X  
  821. ! o  Added routine to reread active file at set intervals. A little 
  822. !    shakey so if you do not want it define -DNO_RESYNC_ACTIVE_FILE
  823. !    in Makefile at compile time. Default time is every 5 minutes.
  824. X  
  825. ! o  Added tind index file daemon so that only one copy of each index
  826. !    file is required and this can be stored locally / on the NNTP server.
  827. X  
  828. ! o  Added 'r' command at group level to toggle display of all and just
  829. !    unread articles.
  830. X  
  831. ! o  Added 'T' command at thread level to tag articles.
  832. X  
  833. - o  Added support for Convex 200 series machines.
  834. - o  Fixed TAB command to default to previous behaviour as in tin v1.0 PL7.
  835. - o  Fixed input editing routine that was causing SIGSEGV errors.
  836. - o  Fixed printing/piping threads under NNTP.
  837. - o  Fixed to check window size when restarted after being suspended.
  838. - o  Fixed tin -U background indexing process to become a full daemon
  839. -    if foreground process quits/dies.
  840. - o  Fixed opening welcome screen so as not to be garbled.
  841. - o  Fixed POSIX_JOB_CONTROL because it relied on SVR4 extensions.
  842. X  For more bug fixes, changes & additions read the CHANGES & TODO files.
  843. X  
  844. X  For compilation and installation information read the INSTALL file.
  845. X  
  846. ! I wish to thank all the people (and especially jim Robinson) that sent
  847. ! me bug fixes and comments for tin. I still want to hear of any bug 
  848. ! reports, gripes and comments but please read the INSTALL and tin.1 man
  849. ! page before anything :-)!.
  850. X  
  851. X  I am still off the net, but am contactable at the following address:
  852. X  
  853. --- 20,49 ----
  854. X  
  855. X  NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
  856. X  
  857. ! Major improvements over tin 1.1 PL1 are the following:
  858. X  
  859. ! o  Fixed saving and unpacking of articles.
  860. X  
  861. ! o  Fixed setuid news version to use fewer setuid calls.
  862. X  
  863. ! o  Fixed builtin inews to add .signature file to article.
  864. X  
  865. ! o  Fixed Subject sorting to be case insensitive.
  866. X  
  867. ! o  Fixed posting to check if a blank line exists between header and body.
  868. X  
  869. ! o  Fixed more signal() code that was using SVR4 specific features.
  870. X  
  871. ! o  Fixed #includes so that SCO Unix would compile.
  872. X  
  873. X  For more bug fixes, changes & additions read the CHANGES & TODO files.
  874. X  
  875. X  For compilation and installation information read the INSTALL file.
  876. X  
  877. ! I wish to thank all the people (especially Hakan Lennestal) that sent me 
  878. ! bug fixes and comments for tin. I still want to hear of any bug reports,
  879. ! gripes and comments but please read the INSTALL and tin.1 man page before
  880. ! anything :-)!.
  881. X  
  882. X  I am still off the net, but am contactable at the following address:
  883. X  
  884. diff -rcs ../111/TODO ./TODO
  885. *** ../111/TODO    Fri Mar 27 14:00:15 1992
  886. --- ./TODO    Sat Mar 28 12:58:18 1992
  887. ***************
  888. *** 13,21 ****
  889. X     it still has the old arts headers when going into next group. Where is it
  890. X     free'd?
  891. X  
  892. ! o  Add crossposting of articles so that read ones are marked read in 
  893. !    other groups. in rn it uses Xref: line to do this. Perhaps just
  894. !    use update_group() to do it?
  895. X     Needs to handle 'c' 'C' 'k' 'K' commands. Perhaps it should be an
  896. X     option so that performance is not impaired. (JIM).
  897. X  
  898. --- 13,20 ----
  899. X     it still has the old arts headers when going into next group. Where is it
  900. X     free'd?
  901. X  
  902. ! o  Add Xref handling of articles so that read ones are marked read in 
  903. !    other groups. Use update_group() to do it?
  904. X     Needs to handle 'c' 'C' 'k' 'K' commands. Perhaps it should be an
  905. X     option so that performance is not impaired. (JIM).
  906. X  
  907. ***************
  908. *** 47,54 ****
  909. X  o  Fix code to display only groups with unread news. look at
  910. X     setup_base() also for killing.
  911. X  
  912. - o  Add nntp code to read 4th field (ynm) in active file in scanf()
  913. X  FIX FEATURES V2.0
  914. X  -----------------
  915. X  
  916. --- 46,51 ----
  917. ***************
  918. *** 59,66 ****
  919. X  o  Fix code to KILL articles. At page level funny things happen.
  920. X  
  921. X  o  Fix code to KILL articles with 't' command.
  922. - o  Fix so that it always finds unread messages. 
  923. X  
  924. X  o  Fix 'z' so that it stays unread even if a KILL is performed before
  925. X     leaving the group.
  926. --- 56,61 ----
  927. diff -rcs ../111/active.c ./active.c
  928. *** ../111/active.c    Fri Mar 27 14:00:28 1992
  929. --- ./active.c    Sun Mar 29 04:45:45 1992
  930. ***************
  931. *** 3,9 ****
  932. X   *  Module    : active.c
  933. X   *  Author    : I.Lea
  934. X   *  Created   : 16-02-92
  935. !  *  Updated   : 01-03-92
  936. X   *  Notes     :
  937. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea
  938. X   *              You may  freely  copy or  redistribute  this software,
  939. --- 3,9 ----
  940. X   *  Module    : active.c
  941. X   *  Author    : I.Lea
  942. X   *  Created   : 16-02-92
  943. !  *  Updated   : 28-03-92
  944. X   *  Notes     :
  945. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea
  946. X   *              You may  freely  copy or  redistribute  this software,
  947. ***************
  948. *** 18,26 ****
  949. X  int reread_active_file = FALSE;
  950. X  
  951. X  
  952. - int test_reread = 0;
  953. X  /*
  954. X   *  Resync active file when SIGALRM signal reeived that
  955. X   *  is triggered by alarm (RESYNC_ACTIVE_SECS) call.
  956. --- 18,23 ----
  957. ***************
  958. *** 28,34 ****
  959. X  
  960. X  void resync_active_file ()
  961. X  {
  962. - #ifndef NO_RESYNC_ACTIVE_FILE     
  963. X      if (reread_active_file) {
  964. X          wait_message (txt_reading_active_file);
  965. X          free_active_arrays ();
  966. --- 25,30 ----
  967. ***************
  968. *** 36,47 ****
  969. X          expand_active ();
  970. X          read_active_file ();
  971. X          read_newsrc (TRUE);
  972. !         reread_active_file = FALSE;
  973. X          alarm (RESYNC_ACTIVE_SECS);        /* reset alarm clock */
  974. X          group_selection_page ();
  975. -         test_reread++;        
  976. X      }
  977. - #endif
  978. X  }
  979. X  
  980. X  /*
  981. --- 32,43 ----
  982. X          expand_active ();
  983. X          read_active_file ();
  984. X          read_newsrc (TRUE);
  985. ! #ifndef NO_RESYNC_ACTIVE_FILE     
  986. X          alarm (RESYNC_ACTIVE_SECS);        /* reset alarm clock */
  987. + #endif
  988. +         reread_active_file = FALSE;
  989. X          group_selection_page ();
  990. X      }
  991. X  }
  992. X  
  993. X  /*
  994. ***************
  995. *** 154,160 ****
  996. X      debug_print_active ();
  997. X  
  998. X      if (cmd_line || (read_news_via_nntp && update == FALSE)) {
  999. !         wait_message ("\n");
  1000. X      }
  1001. X  
  1002. X      return (created);
  1003. --- 150,158 ----
  1004. X      debug_print_active ();
  1005. X  
  1006. X      if (cmd_line || (read_news_via_nntp && update == FALSE)) {
  1007. !         if (! (update && ! verbose)) {
  1008. !             wait_message ("\n");
  1009. !         }
  1010. X      }
  1011. X  
  1012. X      return (created);
  1013. ***************
  1014. *** 173,180 ****
  1015. X      int i;
  1016. X      struct stat sb;
  1017. X      
  1018. -     set_real_uid_gid ();
  1019. -     
  1020. X      sprintf (buf, "%s/active", rcdir);
  1021. X      
  1022. X      if (create) {
  1023. --- 171,176 ----
  1024. ***************
  1025. *** 193,199 ****
  1026. X      }
  1027. X  
  1028. X  backup_active_done:
  1029. -     set_tin_uid_gid ();
  1030. X      return (created);
  1031. X  }
  1032. X  
  1033. --- 189,194 ----
  1034. ***************
  1035. *** 215,226 ****
  1036. X          int len;
  1037. X      } *old_active;
  1038. X      
  1039. -     set_real_uid_gid ();
  1040. -     
  1041. X      sprintf (buf, "%s/active", rcdir);
  1042. X      
  1043. X      if ((fp = fopen (buf, "r")) == NULL) {
  1044. !         error_message (txt_cannot_open, buf);
  1045. X          goto notify_groups_done;
  1046. X      }
  1047. X  
  1048. --- 210,219 ----
  1049. X          int len;
  1050. X      } *old_active;
  1051. X      
  1052. X      sprintf (buf, "%s/active", rcdir);
  1053. X      
  1054. X      if ((fp = fopen (buf, "r")) == NULL) {
  1055. !         perror_message (txt_cannot_open, buf);
  1056. X          goto notify_groups_done;
  1057. X      }
  1058. X  
  1059. ***************
  1060. *** 282,288 ****
  1061. X      }
  1062. X  
  1063. X  notify_groups_done:
  1064. -     set_tin_uid_gid ();
  1065. X  }
  1066. X  
  1067. X  #endif
  1068. --- 275,280 ----
  1069. ***************
  1070. *** 302,313 ****
  1071. X          int visited;
  1072. X      } *old_active;
  1073. X      
  1074. -     set_real_uid_gid ();
  1075. -     
  1076. X      sprintf (buf, "%s/active", rcdir);
  1077. X      
  1078. X      if ((fp = fopen (buf, "r")) == NULL) {
  1079. !         error_message (txt_cannot_open, buf);
  1080. X          goto notify_groups_done;
  1081. X      }
  1082. X  
  1083. --- 294,303 ----
  1084. X          int visited;
  1085. X      } *old_active;
  1086. X      
  1087. X      sprintf (buf, "%s/active", rcdir);
  1088. X      
  1089. X      if ((fp = fopen (buf, "r")) == NULL) {
  1090. !         perror_message (txt_cannot_open, buf);
  1091. X          goto notify_groups_done;
  1092. X      }
  1093. X  
  1094. ***************
  1095. *** 331,337 ****
  1096. X          if (num >= max_old_active) {
  1097. X              max_old_active= max_old_active + (max_old_active / 2);
  1098. X              old_active= (struct notify_t*) my_realloc(
  1099. !                 (struct notify_t*) old_active, 
  1100. X                  (unsigned) sizeof(struct notify_t) * max_old_active);
  1101. X              if (old_active == (struct notify_t *) 0) {
  1102. X                  error_message (txt_out_of_memory, progname);
  1103. --- 321,327 ----
  1104. X          if (num >= max_old_active) {
  1105. X              max_old_active= max_old_active + (max_old_active / 2);
  1106. X              old_active= (struct notify_t*) my_realloc(
  1107. !                 (char *) old_active, 
  1108. X                  (unsigned) sizeof(struct notify_t) * max_old_active);
  1109. X              if (old_active == (struct notify_t *) 0) {
  1110. X                  error_message (txt_out_of_memory, progname);
  1111. ***************
  1112. *** 395,399 ****
  1113. X      }
  1114. X  
  1115. X  notify_groups_done:
  1116. !     set_tin_uid_gid ();
  1117. X  }
  1118. --- 385,389 ----
  1119. X      }
  1120. X  
  1121. X  notify_groups_done:
  1122. !     ;
  1123. X  }
  1124. Only in .: active.o
  1125. diff -rcs ../111/art.c ./art.c
  1126. *** ../111/art.c    Fri Mar 27 14:00:33 1992
  1127. --- ./art.c    Thu Mar 26 16:29:01 1992
  1128. ***************
  1129. *** 3,9 ****
  1130. X   *  Module    : art.c
  1131. X   *  Author    : I.Lea & R.Skrenta
  1132. X   *  Created   : 01-04-91
  1133. !  *  Updated   : 21-03-92
  1134. X   *  Notes     :
  1135. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
  1136. X   *              You may  freely  copy or  redistribute  this software,
  1137. --- 3,9 ----
  1138. X   *  Module    : art.c
  1139. X   *  Author    : I.Lea & R.Skrenta
  1140. X   *  Created   : 01-04-91
  1141. !  *  Updated   : 25-03-92
  1142. X   *  Notes     :
  1143. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
  1144. X   *              You may  freely  copy or  redistribute  this software,
  1145. ***************
  1146. *** 171,179 ****
  1147. X      killed = kill_any_articles (group);
  1148. X      
  1149. X      if (modified || killed || purge_needed()) {
  1150. -         if (local_index) {        /* writing index in home directory */
  1151. -             set_real_uid_gid ();    /* so become them */
  1152. -         }
  1153. X  
  1154. X          if (killed) {
  1155. X              reload_index_file (group, killed);
  1156. --- 171,176 ----
  1157. ***************
  1158. *** 183,192 ****
  1159. X              make_threads (FALSE);
  1160. X              find_base (show_only_unread);
  1161. X          }
  1162. -         if (local_index) {
  1163. -             set_tin_uid_gid ();
  1164. -         }
  1165. X      } else {
  1166. X          read_newsrc_line (group);
  1167. X          make_threads (FALSE);
  1168. --- 180,185 ----
  1169. ***************
  1170. *** 439,447 ****
  1171. X      int realnum;
  1172. X      register int i;
  1173. X  
  1174. !     sprintf (nam, "%s.%d", index_file, process_id);
  1175. X      if ((fp = fopen (nam, "w")) == NULL) {
  1176. !         error_message (txt_cannot_open, nam);
  1177. X          return;
  1178. X      }
  1179. X  
  1180. --- 432,442 ----
  1181. X      int realnum;
  1182. X      register int i;
  1183. X  
  1184. !     set_tin_uid_gid();
  1185. !         sprintf (nam, "%s.%d", index_file, process_id);
  1186. X      if ((fp = fopen (nam, "w")) == NULL) {
  1187. !         perror_message (txt_cannot_open, nam);
  1188. X          return;
  1189. X      }
  1190. X  
  1191. ***************
  1192. *** 558,563 ****
  1193. --- 553,559 ----
  1194. X      fclose (fp);
  1195. X      chmod (index_file, 0644);
  1196. X      rename_file (nam, index_file);
  1197. +     set_real_uid_gid();
  1198. X      if (debug == 2) {
  1199. X          sprintf (msg, "cp %s INDEX", index_file);
  1200. X          system (msg);
  1201. ***************
  1202. *** 807,813 ****
  1203. --- 803,811 ----
  1204. X          system (msg);
  1205. X      }
  1206. X  
  1207. +     set_tin_uid_gid();
  1208. X      unlink (index_file);
  1209. +     set_real_uid_gid();
  1210. X      top = 0;
  1211. X      return FALSE;
  1212. X  }
  1213. ***************
  1214. *** 821,828 ****
  1215. X   *  we find an existing file that matches our group.
  1216. X   */
  1217. X  
  1218. ! void find_index_file (group)
  1219. X      char *group;
  1220. X  {
  1221. X      char *p;
  1222. X      FILE *fp;
  1223. --- 819,827 ----
  1224. X   *  we find an existing file that matches our group.
  1225. X   */
  1226. X  
  1227. ! void find_index_file (group, group_path)
  1228. X      char *group;
  1229. +     char *group_path;
  1230. X  {
  1231. X      char *p;
  1232. X      FILE *fp;
  1233. ***************
  1234. *** 842,848 ****
  1235. X      if (local_index) {
  1236. X          strcpy (dir, indexdir);
  1237. X      } else {
  1238. !         sprintf (dir, "%s/%s", spooldir, INDEXDIR);
  1239. X      }
  1240. X  #endif    
  1241. X      
  1242. --- 841,848 ----
  1243. X      if (local_index) {
  1244. X          strcpy (dir, indexdir);
  1245. X      } else {
  1246. !         sprintf (index_file, "%s/%s/%s", spooldir, group_path, INDEXDIR);
  1247. !         return;
  1248. X      }
  1249. X  #endif    
  1250. X      
  1251. ***************
  1252. *** 926,935 ****
  1253. X      char group_path[LEN];
  1254. X      char *p;
  1255. X  
  1256. -     if (local_index) {            /* writing index in home directory */
  1257. -         set_real_uid_gid ();    /* so become them */
  1258. -     }
  1259. X      strcpy (group_path, group);            /* turn comp.unix.amiga into */
  1260. X      for (p = group_path; *p; p++)        /* comp/unix/amiga */
  1261. X          if (*p == '.')
  1262. --- 926,931 ----
  1263. ***************
  1264. *** 948,956 ****
  1265. X          if (! update) {
  1266. X              wait_message (txt_unkilling_arts);
  1267. X          }
  1268. !         find_index_file (group);
  1269. X  
  1270. X          unlink (index_file);    /* delete index file */
  1271. X  
  1272. X          index_file_killed = FALSE;
  1273. X          last_read_article = 0L;
  1274. --- 944,954 ----
  1275. X          if (! update) {
  1276. X              wait_message (txt_unkilling_arts);
  1277. X          }
  1278. !         find_index_file (group, group_path);
  1279. X  
  1280. +         set_tin_uid_gid();
  1281. X          unlink (index_file);    /* delete index file */
  1282. +         set_real_uid_gid();
  1283. X  
  1284. X          index_file_killed = FALSE;
  1285. X          last_read_article = 0L;
  1286. ***************
  1287. *** 963,972 ****
  1288. X      make_threads (TRUE);
  1289. X      find_base (show_only_unread);
  1290. X  
  1291. -     if (local_index) {
  1292. -         set_tin_uid_gid ();
  1293. -     }
  1294. X      return; 
  1295. X  }
  1296. X  
  1297. --- 961,966 ----
  1298. ***************
  1299. *** 1103,1110 ****
  1300. X  
  1301. X      /* return result of strcmp (reversed for descending) */
  1302. X      return (sort_art_type == SORT_BY_SUBJ_ASCEND 
  1303. !             ? strcmp (s1->subject, s2->subject) 
  1304. !             : strcmp (s2->subject, s1->subject));
  1305. X  }
  1306. X  
  1307. X  
  1308. --- 1097,1104 ----
  1309. X  
  1310. X      /* return result of strcmp (reversed for descending) */
  1311. X      return (sort_art_type == SORT_BY_SUBJ_ASCEND 
  1312. !             ? my_stricmp (s1->subject, s2->subject) 
  1313. !             : my_stricmp (s2->subject, s1->subject));
  1314. X  }
  1315. X  
  1316. X  
  1317. ***************
  1318. *** 1117,1124 ****
  1319. X  
  1320. X      /* return result of strcmp (reversed for descending) */
  1321. X      return (sort_art_type == SORT_BY_FROM_ASCEND 
  1322. !             ? strcmp (s1->from, s2->from) 
  1323. !             : strcmp (s2->from, s1->from));
  1324. X  }
  1325. X  
  1326. X  
  1327. --- 1111,1118 ----
  1328. X  
  1329. X      /* return result of strcmp (reversed for descending) */
  1330. X      return (sort_art_type == SORT_BY_FROM_ASCEND 
  1331. !             ? my_stricmp (s1->from, s2->from) 
  1332. !             : my_stricmp (s2->from, s1->from));
  1333. X  }
  1334. X  
  1335. X  
  1336. Only in .: art.o
  1337. Only in .: clientlib.c
  1338. Only in .: core
  1339. diff -rcs ../111/curses.c ./curses.c
  1340. *** ../111/curses.c    Fri Mar 27 14:00:33 1992
  1341. --- ./curses.c    Wed Mar 25 17:49:13 1992
  1342. ***************
  1343. *** 3,9 ****
  1344. X   *  Module    : curses.c
  1345. X   *  Author    : D.Taylor & I.Lea
  1346. X   *  Created   : ??-??-86
  1347. !  *  Updated   : 22-03-92
  1348. X   *  Notes     : This is a screen management library borrowed with permission
  1349. X   *              from the Elm mail system (a great mailer--I highly recommend
  1350. X   *              it!).This library was hacked to provide what tin needs.
  1351. --- 3,9 ----
  1352. X   *  Module    : curses.c
  1353. X   *  Author    : D.Taylor & I.Lea
  1354. X   *  Created   : ??-??-86
  1355. !  *  Updated   : 25-03-92
  1356. X   *  Notes     : This is a screen management library borrowed with permission
  1357. X   *              from the Elm mail system (a great mailer--I highly recommend
  1358. X   *              it!).This library was hacked to provide what tin needs.
  1359. ***************
  1360. *** 13,18 ****
  1361. --- 13,19 ----
  1362. X  
  1363. X  #include <stdio.h>
  1364. X  #include <curses.h>
  1365. + #include <sys/errno.h>
  1366. X  
  1367. X  #define DEFAULT_LINES_ON_TERMINAL    24
  1368. X  #define DEFAULT_COLUMNS_ON_TERMINAL    80
  1369. ***************
  1370. *** 367,382 ****
  1371. X  int ReadCh()
  1372. X  {
  1373. X  #ifndef INDEX_DAEMON
  1374. !     register int result;
  1375. !     char ch;
  1376. X      
  1377. X  #ifdef READ_CHAR_HACK
  1378. X  #undef getc
  1379. !     ch = getc (stdin);
  1380. X      return ((ch == EOF) ? EOF : ch & 0xFF);
  1381. X  #else
  1382. !     result = read(0, &ch, 1);
  1383. X          return((result <= 0 ) ? EOF : ch & 0xFF);
  1384. X  #endif        
  1385. X  
  1386. --- 368,394 ----
  1387. X  int ReadCh()
  1388. X  {
  1389. X  #ifndef INDEX_DAEMON
  1390. !     extern int errno;
  1391. !     char ch = 0;
  1392. !     register int result = 0;
  1393. X      
  1394. X  #ifdef READ_CHAR_HACK
  1395. X  #undef getc
  1396. !     while (ch == 0 || errno == EINTR) {
  1397. !         ch = 0;
  1398. !         errno = 0;
  1399. !         ch = getc (stdin);
  1400. !     }
  1401. X      return ((ch == EOF) ? EOF : ch & 0xFF);
  1402. X  #else
  1403. !     while (result == 0 || errno == EINTR) {
  1404. !         result = 0;
  1405. !         errno = 0;
  1406. !         result = read(0, &ch, 1);
  1407. !     }
  1408. X          return((result <= 0 ) ? EOF : ch & 0xFF);
  1409. X  #endif        
  1410. X  
  1411. Only in .: curses.o
  1412. Files ../111/debug.c and ./debug.c are identical
  1413. Only in .: debug.o
  1414. diff -rcs ../111/extern.h ./extern.h
  1415. *** ../111/extern.h    Fri Mar 27 14:01:17 1992
  1416. --- ./extern.h    Sun Mar 29 04:50:18 1992
  1417. ***************
  1418. *** 3,9 ****
  1419. X   *  Module    : lang.h
  1420. X   *  Author    : I.Lea
  1421. X   *  Created   : 01-04-91
  1422. !  *  Updated   : 21-03-92
  1423. X   *  Notes     :
  1424. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea
  1425. X   *              You may  freely  copy or  redistribute  this software,
  1426. --- 3,9 ----
  1427. X   *  Module    : lang.h
  1428. X   *  Author    : I.Lea
  1429. X   *  Created   : 01-04-91
  1430. !  *  Updated   : 28-03-92
  1431. X   *  Notes     :
  1432. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea
  1433. X   *              You may  freely  copy or  redistribute  this software,
  1434. ***************
  1435. *** 136,141 ****
  1436. --- 136,142 ----
  1437. X  extern char txt_help_ctrl_k[];
  1438. X  extern char txt_help_ctrl_l[];
  1439. X  extern char txt_help_ctrl_d[];
  1440. + extern char txt_help_ctrl_y[];
  1441. X  extern char txt_help_i_cr[];
  1442. X  extern char txt_help_i_tab[];
  1443. X  extern char txt_help_d[];
  1444. ***************
  1445. *** 292,298 ****
  1446. X  extern char txt_mail_bug_report_confirm[];
  1447. X  extern char txt_reply_to_author[];
  1448. X  extern char txt_opt_autosave[];
  1449. ! extern char txt_opt_save_separate[];
  1450. X  extern char txt_opt_mark_saved_read[];
  1451. X  extern char txt_opt_kill_articles[];
  1452. X  extern char txt_opt_show_author[];
  1453. --- 293,299 ----
  1454. X  extern char txt_mail_bug_report_confirm[];
  1455. X  extern char txt_reply_to_author[];
  1456. X  extern char txt_opt_autosave[];
  1457. ! extern char txt_opt_start_editor_offset[];
  1458. X  extern char txt_opt_mark_saved_read[];
  1459. X  extern char txt_opt_kill_articles[];
  1460. X  extern char txt_opt_show_author[];
  1461. ***************
  1462. *** 327,333 ****
  1463. X  extern char txt_opt_printer[];
  1464. X  extern char txt_options_menu[];
  1465. X  extern char txt_help_autosave[];
  1466. ! extern char txt_help_save_separate[];
  1467. X  extern char txt_help_print_header[];
  1468. X  extern char txt_help_pos_first_unread[];
  1469. X  extern char txt_help_show_author[];
  1470. --- 328,334 ----
  1471. X  extern char txt_opt_printer[];
  1472. X  extern char txt_options_menu[];
  1473. X  extern char txt_help_autosave[];
  1474. ! extern char txt_help_start_editor_offset[];
  1475. X  extern char txt_help_print_header[];
  1476. X  extern char txt_help_pos_first_unread[];
  1477. X  extern char txt_help_show_author[];
  1478. ***************
  1479. *** 394,399 ****
  1480. --- 395,401 ----
  1481. X  extern char txt_help_t_4[];
  1482. X  extern char txt_help_t_cr[];
  1483. X  extern char txt_help_t_tab[];
  1484. + extern char txt_no_blank_line[];
  1485. X  
  1486. X  extern int LINES, COLS;
  1487. X  extern int MORE_POS;
  1488. ***************
  1489. *** 444,454 ****
  1490. X  extern int save_archive_name;
  1491. X  extern int save_news;
  1492. X  extern int save_num;
  1493. - extern int save_separate;
  1494. X  extern int show_author;
  1495. X  extern int show_only_unread;
  1496. X  extern int sort_art_type;
  1497. X  extern int space_mode;
  1498. X  extern int start_line_offset;
  1499. X  extern int thread_arts;
  1500. X  extern int tin_gid;
  1501. --- 446,456 ----
  1502. X  extern int save_archive_name;
  1503. X  extern int save_news;
  1504. X  extern int save_num;
  1505. X  extern int show_author;
  1506. X  extern int show_only_unread;
  1507. X  extern int sort_art_type;
  1508. X  extern int space_mode;
  1509. + extern int start_editor_offset;
  1510. X  extern int start_line_offset;
  1511. X  extern int thread_arts;
  1512. X  extern int tin_gid;
  1513. diff -rcs ../111/feed.c ./feed.c
  1514. *** ../111/feed.c    Fri Mar 27 14:00:34 1992
  1515. --- ./feed.c    Fri Mar 27 14:32:28 1992
  1516. ***************
  1517. *** 3,9 ****
  1518. X   *  Module    : feed.c
  1519. X   *  Author    : I.Lea
  1520. X   *  Created   : 31-08-91
  1521. !  *  Updated   : 18-03-92
  1522. X   *  Notes     : provides same interface to mail,pipe,print and save commands
  1523. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea
  1524. X   *              You may  freely  copy or  redistribute  this software,
  1525. --- 3,9 ----
  1526. X   *  Module    : feed.c
  1527. X   *  Author    : I.Lea
  1528. X   *  Created   : 31-08-91
  1529. !  *  Updated   : 25-03-92
  1530. X   *  Notes     : provides same interface to mail,pipe,print and save commands
  1531. X   *  Copyright : (c) Copyright 1991-92 by Iain Lea
  1532. X   *              You may  freely  copy or  redistribute  this software,
  1533. ***************
  1534. *** 84,96 ****
  1535. X      } else {
  1536. X          file[0] = '\0';
  1537. X          ch = ch_default;
  1538. !         if (str_str (glob_group, "sources", 7)) {
  1539. !             proc_ch = 's';        /* *source* group */ 
  1540. !         } else if (str_str (glob_group, "binaries", 8)) {
  1541. !             proc_ch = 'u';        /* *binaries* group */
  1542. !         } else {
  1543. !             proc_ch = 's';
  1544. !         }
  1545. X      }
  1546. X  
  1547. X      if (ch == 'e' || ch == ESC) {    /* exit */
  1548. --- 84,98 ----
  1549. X      } else {
  1550. X          file[0] = '\0';
  1551. X          ch = ch_default;
  1552. !         if (proc_ch != 'n') {
  1553. !             if (str_str (glob_group, "sources", 7)) {
  1554. !                 proc_ch = 's';        /* *source* group */ 
  1555. !             } else if (str_str (glob_group, "binaries", 8)) {
  1556. !                 proc_ch = 'u';        /* *binaries* group */
  1557. !             } else {
  1558. !                 proc_ch = 's';
  1559. !             }
  1560. !         }    
  1561. X      }
  1562. X  
  1563. X      if (ch == 'e' || ch == ESC) {    /* exit */
  1564. ***************
  1565. *** 151,158 ****
  1566. X                  }
  1567. X              }
  1568. X  
  1569. !             if ((fp = popen (command, "w")) == NULL) {
  1570. !                 error_message (txt_command_failed_s, command);
  1571. X                  return;
  1572. X              }
  1573. X              wait_message (txt_piping);
  1574. --- 153,160 ----
  1575. X                  }
  1576. X              }
  1577. X  
  1578. !             if ((fp = (FILE *) popen (command, "w")) == NULL) {
  1579. !                 perror_message (txt_command_failed_s, command);
  1580. X                  return;
  1581. X              }
  1582. X              wait_message (txt_piping);
  1583. ***************
  1584. *** 176,183 ****
  1585. X                          printer, redirect_output);
  1586. X                  }
  1587. X              }
  1588. !             if ((fp = popen (command, "w")) == NULL) {
  1589. !                 error_message (txt_command_failed_s, command);
  1590. X                  return;
  1591. X              }
  1592. X              break;
  1593. --- 178,185 ----
  1594. X                          printer, redirect_output);
  1595. X                  }
  1596. X              }
  1597. !             if ((fp = (FILE *) popen (command, "w")) == NULL) {
  1598. !                 perror_message (txt_command_failed_s, command);
  1599. X                  return;
  1600. X              }
  1601. X              break;
  1602. ***************
  1603. *** 274,281 ****
  1604. X              confirm = TRUE;
  1605. X              for (i = (int) base[b]; i >= 0; i = arts[i].thread) {
  1606. X                  if (function == FEED_PRINT) {
  1607. !                     if ((fp = popen (command, "w")) == NULL) {
  1608. !                         error_message (txt_command_failed_s, command);
  1609. X                          return;
  1610. X                      }
  1611. X                  }
  1612. --- 276,283 ----
  1613. X              confirm = TRUE;
  1614. X              for (i = (int) base[b]; i >= 0; i = arts[i].thread) {
  1615. X                  if (function == FEED_PRINT) {
  1616. !                     if ((fp = (FILE *) popen (command, "w")) == NULL) {
  1617. !                         perror_message (txt_command_failed_s, command);
  1618. X                          return;
  1619. X                      }
  1620. X                  }
  1621. ***************
  1622. *** 318,325 ****
  1623. X                  for (j=0 ; j < top ; j++) {
  1624. X                      if (arts[j].tagged && arts[j].tagged == i) { 
  1625. X                          if (function == FEED_PRINT) {
  1626. !                             if ((fp = popen (command, "w")) == NULL) {
  1627. !                                 error_message (txt_command_failed_s, command);
  1628. X                                  return;
  1629. X                              }
  1630. X                          }
  1631. --- 320,327 ----
  1632. X                  for (j=0 ; j < top ; j++) {
  1633. X                      if (arts[j].tagged && arts[j].tagged == i) { 
  1634. X                          if (function == FEED_PRINT) {
  1635. !                             if ((fp = (FILE *) popen (command, "w")) == NULL) {
  1636. !                                 perror_message (txt_command_failed_s, command);
  1637. X                                  return;
  1638. X                              }
  1639. X                          }
  1640. ***************
  1641. *** 367,374 ****
  1642. X                  if (wildmat (arts[i].subject, pattern)) {
  1643. X  #endif        
  1644. X                      if (function == FEED_PRINT) {
  1645. !                         if ((fp = popen (command, "w")) == NULL) {
  1646. !                             error_message (txt_command_failed_s, command);
  1647. X                              return;
  1648. X                          }
  1649. X                      }
  1650. --- 369,376 ----
  1651. X                  if (wildmat (arts[i].subject, pattern)) {
  1652. X  #endif        
  1653. X                      if (function == FEED_PRINT) {
  1654. !                         if ((fp = (FILE *) popen (command, "w")) == NULL) {
  1655. !                             perror_message (txt_command_failed_s, command);
  1656. X                              return;
  1657. X                          }
  1658. X                      }
  1659. Only in .: feed.o
  1660. diff -rcs ../111/getline.c ./getline.c
  1661. *** ../111/getline.c    Fri Mar 27 14:00:35 1992
  1662. --- ./getline.c    Sun Mar 29 10:52:30 1992
  1663. ***************
  1664. *** 1,9 ****
  1665. X  /*
  1666. X   *  Project   : tin - a threaded Netnews reader
  1667. SHAR_EOF
  1668. true || echo 'restore of tin.patch112 failed'
  1669. fi
  1670. echo 'End of tin part 1'
  1671. echo 'File tin.patch112 is continued in part 2'
  1672. echo 2 > _shar_seq_.tmp
  1673. exit 0
  1674. -- 
  1675.  Dr. med. dipl.-math Dieter Becker           Tel.: (0 / +49) 6841 - 16 3046
  1676.  Medizinische Universitaets- und Poliklinik  Fax.: (0 / +49) 6841 - 16 3369
  1677.  Innere Medizin III                         
  1678.  D - 6650 Homburg / Saar                     Email: becker@med-in.uni-sb.de
  1679. exit 0 # Just in case...
  1680.