home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume28 / tin / part11 < prev    next >
Text File  |  1992-02-23  |  35KB  |  944 lines

  1. Newsgroups: comp.sources.misc
  2. From: iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE (Iain Lea)
  3. Subject:  v28i055:  tin - threaded full screen newsreader v1.1, Part11/11
  4. Message-ID: <1992Feb18.044009.13547@sparky.imd.sterling.com>
  5. X-Md4-Signature: e8edf60abadc4e3d222095f13a1286ee
  6. Date: Tue, 18 Feb 1992 04:40:09 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE (Iain Lea)
  10. Posting-number: Volume 28, Issue 55
  11. Archive-name: tin/part11
  12. Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
  13. Supersedes: tin: Volume 23, Issue 15-23
  14.  
  15. #!/bin/sh
  16. # this is tin.shar.11 (part 11 of tin1.1)
  17. # do not concatenate these parts, unpack them in order with /bin/sh
  18. # file extern.h continued
  19. #
  20. if test ! -r _shar_seq_.tmp; then
  21.     echo 'Please unpack part 1 first!'
  22.     exit 1
  23. fi
  24. (read Scheck
  25.  if test "$Scheck" != 11; then
  26.     echo Please unpack part "$Scheck" next!
  27.     exit 1
  28.  else
  29.     exit 0
  30.  fi
  31. ) < _shar_seq_.tmp || exit 1
  32. if test ! -f _shar_wnt_.tmp; then
  33.     echo 'x - still skipping extern.h'
  34. else
  35. echo 'x - continuing file extern.h'
  36. sed 's/^X//' << 'SHAR_EOF' >> 'extern.h' &&
  37. extern char txt_help_post_proc_type[];
  38. extern char txt_help_sort_type[];
  39. extern char txt_help_savedir[];
  40. extern char txt_help_maildir[];
  41. extern char txt_help_printer[];
  42. extern char txt_select_rcfile_option[];
  43. extern char txt_post_processing[];
  44. extern char txt_post_processing_finished[];
  45. extern char txt_deleting[];
  46. extern char txt_uudecoding[];
  47. extern char txt_searching[];
  48. extern char txt_moving[];
  49. extern char txt_subscribe_pattern[];
  50. extern char txt_unsubscribe_pattern[];
  51. extern char txt_subscribing[];
  52. extern char txt_subscribing_to[];
  53. extern char txt_unsubscribing[];
  54. extern char txt_unsubscribing_from[];
  55. extern char txt_subscribed_num_groups[];
  56. extern char txt_unsubscribed_num_groups[];
  57. extern char txt_del_group_in_newsrc[];
  58. extern char txt_group_deleted[];
  59. extern char txt_group_undeleted[];
  60. extern char txt_mark_group_read[];
  61. extern char txt_no_groups_to_delete[];
  62. extern char txt_reset_newsrc[];
  63. extern char txt_post_newsgroup[];
  64. extern char txt_yanking_all_groups[];
  65. extern char txt_yanking_sub_groups[];
  66. extern char txt_no_groups_to_read[];
  67. extern char txt_added_groups[];
  68. extern char txt_plural[];
  69. extern char txt_no_groups_to_yank_in[];
  70. extern char txt_group_selection[];
  71. extern char txt_select_group[];
  72. extern char txt_group_select_com[];
  73. extern char txt_help_g_4[];
  74. extern char txt_help_g_ctrl_r[];
  75. extern char txt_help_g_ctrl_k[];
  76. extern char txt_help_g_cr[];
  77. extern char txt_help_g_tab[];
  78. extern char txt_help_g_c[];
  79. extern char txt_help_n[];
  80. extern char txt_help_W[];
  81. extern char txt_help_g_y[];
  82. extern char txt_help_g_z[];
  83. extern char txt_help_g_dollar[];
  84. extern char txt_help_g_search[];
  85. extern char txt_newsgroup[];
  86. extern char txt_newsgroup_position[];
  87. extern char txt_resizing_window[];
  88. extern char txt_no_resps_in_thread[];
  89. extern char txt_help_t_0[];
  90. extern char txt_help_t_4[];
  91. extern char txt_help_t_cr[];
  92. extern char txt_help_t_tab[];
  93. X
  94. extern int LINES, COLS;
  95. extern int MORE_POS;
  96. extern int NOTESLINES;
  97. extern int RIGHT_POS;
  98. extern int *my_group;
  99. extern int *unread;
  100. extern int active_num;
  101. extern int article_num;
  102. extern int can_post;
  103. extern int catchup;
  104. extern int catchup_read_groups;
  105. extern int cmd_line;
  106. extern int compiled_with_nntp;
  107. extern int created_rcdir;
  108. extern int debug;
  109. extern int default_printer;
  110. extern int default_show_author;
  111. #ifdef SIGTSTP
  112. extern int do_sigtstp;
  113. #endif
  114. extern int draw_arrow_mark;
  115. extern int full_page_scroll;
  116. extern int group_hash[TABLE_SIZE];
  117. extern int group_top;
  118. extern int index_file_killed;
  119. extern int inverse_okay;
  120. extern int kill_articles;
  121. extern int kill_num;
  122. extern int local_index;
  123. extern int mail_news;
  124. extern int mark_saved_read;
  125. extern int max_active;
  126. extern int max_art;
  127. extern int max_from;
  128. extern int max_subj;
  129. extern int max_kill;
  130. extern int max_save;
  131. extern int num_active;
  132. extern int num_of_killed_files;
  133. extern int num_of_tagged_files;
  134. extern int pos_first_unread;
  135. extern int post_proc_type;
  136. extern int print_header;
  137. extern int read_news_via_nntp;
  138. extern int real_gid;
  139. extern int real_uid;
  140. extern int save_archive_name;
  141. extern int save_news;
  142. extern int save_num;
  143. extern int save_separate;
  144. extern int show_author;
  145. extern int show_only_unread;
  146. extern int sort_art_type;
  147. extern int space_mode;
  148. extern int start_line_offset;
  149. extern int thread_arts;
  150. extern int tin_gid;
  151. extern int tin_uid;
  152. extern int top;
  153. extern int top_base;
  154. extern int update;
  155. extern int verbose;
  156. extern long *base;
  157. X
  158. extern struct article_t *arts;
  159. extern struct group_t *active;
  160. extern struct kill_t *killf;
  161. extern struct posted_t *posted;
  162. extern struct save_t *save;
  163. extern struct screen_t *screen;
  164. X
  165. #ifdef POSIX_JOB_CONTROL
  166. extern struct sigaction art_act;
  167. extern struct sigaction group_act;
  168. extern struct sigaction kill_act;
  169. extern struct sigaction main_act;
  170. extern struct sigaction old_act;
  171. extern struct sigaction page_act;
  172. extern struct sigaction rcfile_act;
  173. extern struct sigaction select_act;
  174. extern struct sigaction thread_act;
  175. #endif
  176. X
  177. SHAR_EOF
  178. echo 'File extern.h is complete' &&
  179. chmod 0600 extern.h ||
  180. echo 'restore of extern.h failed'
  181. Wc_c="`wc -c < 'extern.h'`"
  182. test 14178 -eq "$Wc_c" ||
  183.     echo 'extern.h: original size 14178, current size' "$Wc_c"
  184. rm -f _shar_wnt_.tmp
  185. fi
  186. # ============= nntp.h ==============
  187. if test -f 'nntp.h' -a X"$1" != X"-c"; then
  188.     echo 'x - skipping nntp.h (File already exists)'
  189.     rm -f _shar_wnt_.tmp
  190. else
  191. > _shar_wnt_.tmp
  192. echo 'x - extracting nntp.h (Text)'
  193. sed 's/^X//' << 'SHAR_EOF' > 'nntp.h' &&
  194. /*
  195. X *  Project   : tin - a threaded Netnews reader
  196. X *  Module    : nntp.h
  197. X *  Author    : R.Skrenta
  198. X *  Created   : 01-04-91
  199. X *  Updated   : 27-09-91
  200. X *  Notes     : Changed a bit so nntp knows about Tass
  201. X *              This file is originally from the nntp 1.5 source.
  202. X *  Copyright : (c) Copyright 1991-92 by Rich Skrenta
  203. X *                You may  freely  copy or  redistribute  this software,
  204. X *              so  long as there is no profit made from its use, sale
  205. X *              trade or  reproduction.  You may not change this copy-
  206. X *              right notice, and it must be included in any copy made
  207. X */
  208. X
  209. #ifndef    NNTP_SERVER_FILE
  210. #    define    NNTP_SERVER_FILE    "/etc/nntpserver"
  211. #endif
  212. X
  213. /*
  214. X *  External routine declarations
  215. X */
  216. X
  217. extern char *getserverbyfile();
  218. extern int server_init();
  219. extern int get_tcp_socket();
  220. extern int handle_server_response();
  221. extern void put_server();
  222. extern int get_server();
  223. extern void close_server();
  224. X
  225. /*
  226. X *  External file descriptors for the server connection
  227. X */
  228. X
  229. extern FILE *ser_wr_fp;
  230. X
  231. /*
  232. X * Response codes for NNTP server
  233. X *
  234. X * @(#)nntp.h    1.7    (Berkeley) 1/11/88
  235. X *
  236. X * First digit:
  237. X *
  238. X *    1xx    Informative message
  239. X *    2xx    Command ok
  240. X *    3xx    Command ok so far, continue
  241. X *    4xx    Command was correct, but couldn't be performed
  242. X *        for some specified reason.
  243. X *    5xx    Command unimplemented, incorrect, or a
  244. X *        program error has occured.
  245. X *
  246. X * Second digit:
  247. X *
  248. X *    x0x    Connection, setup, miscellaneous
  249. X *    x1x    Newsgroup selection
  250. X *    x2x    Article selection
  251. X *    x3x    Distribution
  252. X *    x4x    Posting
  253. X */
  254. X
  255. #define    CHAR_INF    '1'
  256. #define    CHAR_OK        '2'
  257. #define    CHAR_CONT    '3'
  258. #define    CHAR_ERR    '4'
  259. #define    CHAR_FATAL    '5'
  260. X
  261. #define    INF_HELP    100    /* Help text on way */
  262. #define    INF_DEBUG    199    /* Debug output */
  263. X
  264. #define    OK_CANPOST    200    /* Hello; you can post */
  265. #define    OK_NOPOST    201    /* Hello; you can't post */
  266. #define    OK_SLAVE    202    /* Slave status noted */
  267. #define    OK_GOODBYE    205    /* Closing connection */
  268. #define    OK_GROUP    211    /* Group selected */
  269. #define    OK_GROUPS    215    /* Newsgroups follow */
  270. X
  271. #define OK_TASSINDEX    218    /* Tass index follows */
  272. X
  273. #define    OK_ARTICLE    220    /* Article (head & body) follows */
  274. #define    OK_HEAD        221    /* Head follows */
  275. #define    OK_BODY        222    /* Body follows */
  276. #define    OK_NOTEXT    223    /* No text sent -- stat, next, last */
  277. #define    OK_NEWNEWS    230    /* New articles by message-id follow */
  278. #define    OK_NEWGROUPS    231    /* New newsgroups follow */
  279. #define    OK_XFERED    235    /* Article transferred successfully */
  280. #define    OK_POSTED    240    /* Article posted successfully */
  281. X
  282. #define CONT_XFER    335    /* Continue to send article */
  283. #define    CONT_POST    340    /* Continue to post article */
  284. X
  285. #define    ERR_GOODBYE    400    /* Have to hang up for some reason */
  286. #define    ERR_NOGROUP    411    /* No such newsgroup */
  287. #define    ERR_NCING    412    /* Not currently in newsgroup */
  288. X
  289. #define ERR_NOTASS    418    /* No tin index for this group */
  290. X
  291. #define    ERR_NOCRNT    420    /* No current article selected */
  292. #define    ERR_NONEXT    421    /* No next article in this group */
  293. #define    ERR_NOPREV    422    /* No previous article in this group */
  294. #define    ERR_NOARTIG    423    /* No such article in this group */
  295. #define ERR_NOART    430    /* No such article at all */
  296. #define ERR_GOTIT    435    /* Already got that article, don't send */
  297. #define ERR_XFERFAIL    436    /* Transfer failed */
  298. #define    ERR_XFERRJCT    437    /* Article rejected, don't resend */
  299. #define    ERR_NOPOST    440    /* Posting not allowed */
  300. #define    ERR_POSTFAIL    441    /* Posting failed */
  301. X
  302. #define    ERR_COMMAND    500    /* Command not recognized */
  303. #define    ERR_CMDSYN    501    /* Command syntax error */
  304. #define    ERR_ACCESS    502    /* Access to server denied */
  305. #define ERR_FAULT    503    /* Program fault, command not performed */
  306. X
  307. /* RFC 977 defines this; don't change it. */
  308. X
  309. #define    NNTP_STRLEN    512
  310. SHAR_EOF
  311. chmod 0600 nntp.h ||
  312. echo 'restore of nntp.h failed'
  313. Wc_c="`wc -c < 'nntp.h'`"
  314. test 3669 -eq "$Wc_c" ||
  315.     echo 'nntp.h: original size 3669, current size' "$Wc_c"
  316. rm -f _shar_wnt_.tmp
  317. fi
  318. # ============= proto.h ==============
  319. if test -f 'proto.h' -a X"$1" != X"-c"; then
  320.     echo 'x - skipping proto.h (File already exists)'
  321.     rm -f _shar_wnt_.tmp
  322. else
  323. > _shar_wnt_.tmp
  324. echo 'x - extracting proto.h (Text)'
  325. sed 's/^X//' << 'SHAR_EOF' > 'proto.h' &&
  326. #if __STDC__
  327. /* art.c */
  328. extern void find_base(int only_unread);
  329. extern int num_of_arts(void);
  330. extern int valid_artnum(long art);
  331. extern int purge_needed(void);
  332. extern void index_group(char *group, char *group_path);
  333. extern int read_group(char *group, char *group_path);
  334. extern void make_threads(int rethread);
  335. extern int parse_headers(int fd, struct article_t *h);
  336. extern void dump_index(char *group, int killed);
  337. extern int load_index(void);
  338. extern void find_local_index(char *group);
  339. extern void do_update(void);
  340. extern void reload_index_file(char *group, int killed);
  341. extern char *parse_date(char *date, char *str);
  342. extern int artnum_comp(char *p1, char *p2);
  343. extern int subj_comp(char *p1, char *p2);
  344. extern int from_comp(char *p1, char *p2);
  345. extern int date_comp(char *p1, char *p2);
  346. extern void set_article(struct article_t *art);
  347. /* curses.c */
  348. extern int InitScreen(void);
  349. extern void ScreenSize(int *num_lines, int *num_columns);
  350. extern void InitWin(void);
  351. extern void EndWin(void);
  352. extern void ClearScreen(void);
  353. extern void MoveCursor(int row, int col);
  354. extern void CleartoEOLN(void);
  355. extern void CleartoEOS(void);
  356. extern void StartInverse(void);
  357. extern void EndInverse(void);
  358. extern int RawState(void);
  359. extern void Raw(int state);
  360. extern int ReadCh(void);
  361. extern int outchar(int c);
  362. /* debug.c */
  363. extern void debug_print_arts(void);
  364. extern void debug_print_header(struct article_t *s);
  365. extern void debug_print_comment(char *comment);
  366. extern void debug_print_base(void);
  367. extern void debug_print_active(void);
  368. extern void log_user(void);
  369. /* feed.c */
  370. extern void feed_articles(int function, int level, char *prompt, int respnum, char *group_path);
  371. /* getline.c */
  372. extern char *getline(char *prompt, int number_only, char *str);
  373. /* group.c */
  374. extern void group_page(char *group);
  375. extern void fix_new_highest(int groupnum);
  376. extern void show_group_page(char *group);
  377. extern void draw_subject_arrow(void);
  378. extern void erase_subject_arrow(void);
  379. extern int prompt_subject_num(int ch, char *group);
  380. extern void clear_note_area(void);
  381. extern int find_new_pos(int old_top, long old_artnum, int cur_pos);
  382. extern void mark_screen(int col, char *value);
  383. /* hashstr.c */
  384. extern char *hash_str(char *s);
  385. extern struct hashnode *add_string(char *s);
  386. extern void hash_init(void);
  387. extern void hash_reclaim(void);
  388. /* help.c */
  389. extern void show_info_page(int type, char *help[], char *title);
  390. /* init.c */
  391. extern void init_selfinfo(void);
  392. /* kill.c */
  393. extern int read_kill_file(void);
  394. extern void write_kill_file(void);
  395. extern int kill_art_menu(char *group_name, int index);
  396. extern int unkill_all_articles(void);
  397. extern int kill_any_articles(char *group);
  398. /* lang.c */
  399. /* main.c */
  400. extern void main(int argc, char *argv[]);
  401. extern void usage(char *progname);
  402. extern void show_intro_page (int cmd_line);
  403. extern int check_for_any_new_news (int check_any_unread, int start_any_unread);
  404. extern void save_or_mail_new_news (void);
  405. extern void update_index_files (void);
  406. /* memory.c */
  407. extern void init_alloc(void);
  408. extern void expand_art(void);
  409. extern void free_art_array(void);
  410. extern void expand_active(void);
  411. extern void expand_kill(void);
  412. extern void expand_save(void);
  413. extern void init_screen_array(int allocate);
  414. extern void free_all_arrays(void);
  415. extern void free_kill_array(void);
  416. extern void free_save_array(void);
  417. extern char *my_malloc(unsigned size);
  418. extern char *my_realloc(char *p, unsigned size);
  419. /* misc.c */
  420. extern void asfail(char *file, int line, char *cond);
  421. extern void copy_fp(FILE *fp_ip, FILE *fp_op, char *prefix);
  422. extern char *get_val(char *env, char *def);
  423. extern int invoke_editor(char *nam);
  424. extern void shell_escape(void);
  425. extern void tin_done(int ret);
  426. extern int read_active(void);
  427. extern void mark_unthreaded_groups(void);
  428. extern int backup_active(int create);
  429. extern long hash_groupname(char *buf);
  430. extern void rename_file(char *old_filename, char *new_filename);
  431. extern char *str_dup(char *str);
  432. extern int invoke_cmd(char *nam);
  433. extern void draw_percent_mark(int cur_num, int max_num);
  434. extern void set_real_uid_gid(void);
  435. extern void set_tin_uid_gid(void);
  436. extern void notify_groups(void);
  437. extern void basename(char *dirname, char *program);
  438. extern void mail_setup(void);
  439. extern int mail_check(void);
  440. extern void parse_from(char *str, char *addr, char *name);
  441. extern long my_atol(char *s, int n);
  442. extern char *eat_re(char *s);
  443. extern long hash_s(char *s);
  444. extern void my_strncpy(char *p, char *q, int n);
  445. extern int untag_all_articles(void);
  446. extern char *str_str(char *text, char *pattern, int patlen);
  447. extern void get_author(int thread, int respnum, char *str);
  448. extern void toggle_inverse_video(void);
  449. extern int get_arrow_key(void);
  450. /* newsrc.c */
  451. extern void backup_newsrc(void);
  452. extern void read_newsrc(int sub_only);
  453. extern void write_newsrc(void);
  454. extern void rewrite_newsrc(void);
  455. extern void read_newsrc_line(char *group);
  456. extern void update_newsrc(char *group, int groupnum, int mark_unread);
  457. extern void subscribe(char *group, int ch, int num, int out_seq);
  458. extern void reset_newsrc(void);
  459. extern void delete_group(char *group);
  460. extern int undel_group(void);
  461. extern void mark_group_read(char *group, int groupnum);
  462. extern void parse_seq(char *s);
  463. extern int parse_unread(char *s, int groupnum);
  464. extern int get_line_unread(char *group, int groupnum);
  465. extern void print_seq(FILE *fp, int groupnum);
  466. extern int pos_group_in_newsrc(char *group, int pos);
  467. extern void mark_all_xref_read(char *xref_line);
  468. /* open.c */
  469. extern char *is_remote(void);
  470. extern void nntp_startup(void);
  471. extern void nntp_finish(void);
  472. extern FILE *open_active_fp(void);
  473. extern FILE *open_art_fp(char *group_path, long art);
  474. extern int open_header_fd(char *group_path, long art);
  475. extern int base_comp(char *p1, char *p2);
  476. extern void setup_base(char *group, char *group_path);
  477. extern int get_respcode(void);
  478. extern int stuff_nntp(char *fnam);
  479. extern FILE *nntp_to_fp(void);
  480. extern int nntp_to_fd(void);
  481. /* page.c */
  482. extern int show_page(int respnum, char *group, char *group_path);
  483. extern void redraw_page(int respnum, char *group);
  484. extern void show_note_page(int respnum, char *group);
  485. extern void show_first_header(int respnum, char *group);
  486. extern void show_cont_header(int respnum);
  487. extern void art_open(long art, char *group_path);
  488. extern void art_close(void);
  489. extern int prompt_response(int ch, int respnum);
  490. extern void yank_to_addr(char *orig, char *addr);
  491. extern int show_last_page(void);
  492. extern int match_header(char *buf, char *pat, char *body, int len);
  493. /* post.c */
  494. extern int user_posted_messages(void);
  495. extern void update_art_posted_file(char *group, char *subj);
  496. extern int post_base(char *group, int *posted);
  497. extern int post_response(char *group, int respnum, int copy_text);
  498. extern int mail_to_someone(char *address);
  499. extern int mail_bug_report(void);
  500. extern int mail_to_author(int respnum, int copy_text);
  501. extern void find_mail_header(int header, char *file, char *value);
  502. extern int cancel_article(void);
  503. extern int submit_file(char *name);
  504. extern void add_signature(FILE *fp, int flag);
  505. /* prompt.c */
  506. extern int prompt_num(int ch, char *prompt);
  507. extern int prompt_string(char *prompt, char *buf);
  508. extern int prompt_menu_string(int line, int col, char *var);
  509. extern int prompt_yn(int line, char *prompt, int default_ch);
  510. extern void prompt_on_off(int row, int col, int *var, char *help_text, char *prompt_text);
  511. extern void continue_prompt(void);
  512. /* rcfile.c */
  513. extern int read_rcfile(void);
  514. extern void write_rcfile(void);
  515. extern int change_rcfile(char *group, int kill_at_once);
  516. extern void show_rcfile_menu(void);
  517. extern void expand_rel_abs_pathname(int line, int col, char *str);
  518. extern void show_menu_help(char *help_message);
  519. /* save.c */
  520. extern int check_start_save_any_news(int check_start_save);
  521. extern int save_art_to_file(int respnum, int index, int mailbox, char *filename);
  522. extern int save_thread_to_file(int is_mailbox, char *group_path);
  523. extern int save_regex_arts(int is_mailbox, char *group_path);
  524. extern int append_to_existing_file(int i);
  525. extern int create_path(char *path);
  526. extern int create_sub_dir(int i);
  527. extern void add_to_save_list(int index, struct article_t *article, int is_mailbox, char *path);
  528. extern void sort_save_list(void);
  529. extern int save_comp(char *p1, char *p2);
  530. extern char *save_filename(int i);
  531. extern char *get_first_savefile(void);
  532. extern char *get_last_savefile(void);
  533. extern int post_process_files(int proc_type_ch);
  534. extern void post_process_uud(int pp);
  535. extern void post_process_sh(void);
  536. extern char *get_archive_file(char *dir, char *ext);
  537. extern void delete_processed_files(void);
  538. /* screen.c */
  539. extern void info_message(char *str);
  540. extern void wait_message(char *str);
  541. extern void error_message(char *template, char *str);
  542. extern void clear_message(void);
  543. extern void center_line(int line, int inverse, char *str);
  544. extern void draw_arrow(int line);
  545. extern void erase_arrow(int line);
  546. extern void show_title(char *title);
  547. extern void ring_bell(void);
  548. /* search.c */
  549. extern int search_author(int max_art, int current_art, int forward);
  550. extern void search_group(int forward);
  551. extern void search_subject(int forward, char *group);
  552. extern int search_article(int forward);
  553. extern void make_lower(char *s, char *t);
  554. /* select.c */
  555. extern void selection_index(int start_groupnum);
  556. extern void group_selection_page(void);
  557. extern int prompt_group_num(int ch);
  558. extern void erase_group_arrow(void);
  559. extern void draw_group_arrow(void);
  560. extern int choose_new_group(void);
  561. extern int add_group(char *s, int get_unread);
  562. extern int reposition_group(char *group, int default_num);
  563. extern void catchup_group(int goto_next_unread_group);
  564. extern void next_unread_group(int enter_group);
  565. /* signal.c */
  566. extern void set_signal_handlers(void);
  567. extern void signal_handler(int sig);
  568. extern void set_win_size(int *num_lines, int *num_cols);
  569. extern void set_signals_art(void);
  570. extern void set_signals_group(void);
  571. extern void set_signals_page(void);
  572. extern void set_signals_select(void);
  573. extern void set_signals_thread(void);
  574. extern void art_suspend(int sig);
  575. extern void main_suspend(int sig);
  576. extern void select_suspend(int sig);
  577. extern void group_suspend(int sig);
  578. extern void page_suspend(int sig);
  579. extern void thread_suspend(int sig);
  580. extern void rcfile_suspend(int sig);
  581. extern void art_resize(int sig);
  582. extern void main_resize(int sig);
  583. extern void select_resize(int sig);
  584. extern void group_resize(int sig);
  585. extern void page_resize(int sig);
  586. extern void thread_resize(int sig);
  587. /* thread.c */
  588. extern int show_thread(int respnum, char *group, char *group_path);
  589. extern void show_thread_page(void);
  590. extern void draw_thread_arrow(void);
  591. extern void erase_thread_arrow(void);
  592. extern int prompt_thread_num(int ch);
  593. extern int new_responses(int thread);
  594. extern int which_thread(int n);
  595. extern int which_response(int n);
  596. extern int num_of_responses(int n);
  597. extern int next_response(int n);
  598. extern int next_thread(int n);
  599. extern int prev_response(int n);
  600. extern int choose_response(int i, int n);
  601. extern int next_unread(int n);
  602. extern int prev_unread(int n);
  603. /* wildmat.c */
  604. extern int wildmat(char *text, char *p);
  605. #else
  606. /* art.c */
  607. extern void find_base(/*int only_unread*/);
  608. extern int num_of_arts(/*void*/);
  609. extern int valid_artnum(/*long art*/);
  610. extern int purge_needed(/*void*/);
  611. extern void index_group(/*char *group, char *group_path*/);
  612. extern int read_group(/*char *group, char *group_path*/);
  613. extern void make_threads(/*int rethread*/);
  614. extern int parse_headers(/*int fd, struct article_t *h*/);
  615. extern void dump_index(/*char *group, int killed*/);
  616. extern int load_index(/*void*/);
  617. extern void find_local_index(/*char *group*/);
  618. extern void do_update(/*void*/);
  619. extern void reload_index_file(/*char *group, int killed*/);
  620. extern char *parse_date(/*char *date, char *str*/);
  621. extern int artnum_comp(/*char *p1, char *p2*/);
  622. extern int subj_comp(/*char *p1, char *p2*/);
  623. extern int from_comp(/*char *p1, char *p2*/);
  624. extern int date_comp(/*char *p1, char *p2*/);
  625. extern void set_article(/*struct article_t *art*/);
  626. /* curses.c */
  627. extern int InitScreen(/*void*/);
  628. extern void ScreenSize(/*int *num_lines, int *num_columns*/);
  629. extern void InitWin(/*void*/);
  630. extern void EndWin(/*void*/);
  631. extern void ClearScreen(/*void*/);
  632. extern void MoveCursor(/*int row, int col*/);
  633. extern void CleartoEOLN(/*void*/);
  634. extern void CleartoEOS(/*void*/);
  635. extern void StartInverse(/*void*/);
  636. extern void EndInverse(/*void*/);
  637. extern int RawState(/*void*/);
  638. extern void Raw(/*int state*/);
  639. extern int ReadCh(/*void*/);
  640. extern int outchar(/*int c*/);
  641. /* debug.c */
  642. extern void debug_print_arts(/*void*/);
  643. extern void debug_print_header(/*struct article_t *s*/);
  644. extern void debug_print_comment(/*char *comment*/);
  645. extern void debug_print_base(/*void*/);
  646. extern void debug_print_active(/*void*/);
  647. extern void log_user(/*void*/);
  648. /* feed.c */
  649. extern void feed_articles(/*int function, int level, char *prompt, int respnum, char *group_path*/);
  650. /* getline.c */
  651. extern char *getline(/*char *prompt, int number_only, char *str*/);
  652. /* group.c */
  653. extern void group_page(/*char *group*/);
  654. extern void fix_new_highest(/*int groupnum*/);
  655. extern void show_group_page(/*char *group*/);
  656. extern void draw_subject_arrow(/*void*/);
  657. extern void erase_subject_arrow(/*void*/);
  658. extern int prompt_subject_num(/*int ch, char *group*/);
  659. extern void clear_note_area(/*void*/);
  660. extern int find_new_pos(/*int old_top, long old_artnum, int cur_pos*/);
  661. extern void mark_screen(/*int col, char *value*/);
  662. /* hashstr.c */
  663. extern char *hash_str(/*char *s*/);
  664. extern struct hashnode *add_string(/*char *s*/);
  665. extern void hash_init(/*void*/);
  666. extern void hash_reclaim(/*void*/);
  667. /* help.c */
  668. extern void show_info_page(/*int type, char *help[], char *title*/);
  669. /* init.c */
  670. extern void init_selfinfo(/*void*/);
  671. /* kill.c */
  672. extern int read_kill_file(/*void*/);
  673. extern void write_kill_file(/*void*/);
  674. extern int kill_art_menu(/*char *group_name, int index*/);
  675. extern int unkill_all_articles(/*void*/);
  676. extern int kill_any_articles(/*char *group*/);
  677. /* lang.c */
  678. /* main.c */
  679. extern void main(/*int argc, char *argv[]*/);
  680. extern void usage(/*char *progname*/);
  681. extern void show_intro_page (/*int cmd_line*/);
  682. extern int check_for_any_new_news (/*int check_any_unread, int start_any_unread*/);
  683. extern void save_or_mail_new_news (/*void*/);
  684. extern void update_index_files (/*void*/);
  685. /* memory.c */
  686. extern void init_alloc(/*void*/);
  687. extern void expand_art(/*void*/);
  688. extern void free_art_array(/*void*/);
  689. extern void expand_active(/*void*/);
  690. extern void expand_kill(/*void*/);
  691. extern void expand_save(/*void*/);
  692. extern void init_screen_array(/*int allocate*/);
  693. extern void free_all_arrays(/*void*/);
  694. extern void free_kill_array(/*void*/);
  695. extern void free_save_array(/*void*/);
  696. extern char *my_malloc(/*unsigned size*/);
  697. extern char *my_realloc(/*char *p, unsigned size*/);
  698. /* misc.c */
  699. extern void asfail(/*char *file, int line, char *cond*/);
  700. extern void copy_fp(/*FILE *fp_ip, FILE *fp_op, char *prefix*/);
  701. extern char *get_val(/*char *env, char *def*/);
  702. extern int invoke_editor(/*char *nam*/);
  703. extern void shell_escape(/*void*/);
  704. extern void tin_done(/*int ret*/);
  705. extern int read_active(/*void*/);
  706. extern void mark_unthreaded_groups(/*void*/);
  707. extern int backup_active(/*int create*/);
  708. extern long hash_groupname(/*char *buf*/);
  709. extern void rename_file(/*char *old_filename, char *new_filename*/);
  710. extern char *str_dup(/*char *str*/);
  711. extern int invoke_cmd(/*char *nam*/);
  712. extern void draw_percent_mark(/*int cur_num, int max_num*/);
  713. extern void set_real_uid_gid(/*void*/);
  714. extern void set_tin_uid_gid(/*void*/);
  715. extern void notify_groups(/*void*/);
  716. extern void basename(/*char *dirname, char *program*/);
  717. extern void mail_setup(/*void*/);
  718. extern int mail_check(/*void*/);
  719. extern void parse_from(/*char *str, char *addr, char *name*/);
  720. extern long my_atol(/*char *s, int n*/);
  721. extern char *eat_re(/*char *s*/);
  722. extern long hash_s(/*char *s*/);
  723. extern void my_strncpy(/*char *p, char *q, int n*/);
  724. extern int untag_all_articles(/*void*/);
  725. extern char *str_str(/*char *text, char *pattern, int patlen*/);
  726. extern void get_author(/*int thread, int respnum, char *str*/);
  727. extern void toggle_inverse_video(/*void*/);
  728. extern int get_arrow_key(/*void*/);
  729. /* newsrc.c */
  730. extern void backup_newsrc(/*void*/);
  731. extern void read_newsrc(/*int sub_only*/);
  732. extern void write_newsrc(/*void*/);
  733. extern void rewrite_newsrc(/*void*/);
  734. extern void read_newsrc_line(/*char *group*/);
  735. extern void update_newsrc(/*char *group, int groupnum, int mark_unread*/);
  736. extern void subscribe(/*char *group, int ch, int num, int out_seq*/);
  737. extern void reset_newsrc(/*void*/);
  738. extern void delete_group(/*char *group*/);
  739. extern int undel_group(/*void*/);
  740. extern void mark_group_read(/*char *group, int groupnum*/);
  741. extern void parse_seq(/*char *s*/);
  742. extern int parse_unread(/*char *s, int groupnum*/);
  743. extern int get_line_unread(/*char *group, int groupnum*/);
  744. extern void print_seq(/*FILE *fp, int groupnum*/);
  745. extern int pos_group_in_newsrc(/*char *group, int pos*/);
  746. extern void mark_all_xref_read(/*char *xref_line*/);
  747. /* open.c */
  748. extern char *is_remote(/*void*/);
  749. extern void nntp_startup(/*void*/);
  750. extern void nntp_finish(/*void*/);
  751. extern FILE *open_active_fp(/*void*/);
  752. extern FILE *open_art_fp(/*char *group_path, long art*/);
  753. extern int open_header_fd(/*char *group_path, long art*/);
  754. extern int base_comp(/*char *p1, char *p2*/);
  755. extern void setup_base(/*char *group, char *group_path*/);
  756. extern int get_respcode(/*void*/);
  757. extern int stuff_nntp(/*char *fnam*/);
  758. extern FILE *nntp_to_fp(/*void*/);
  759. extern int nntp_to_fd(/*void*/);
  760. /* page.c */
  761. extern int show_page(/*int respnum, char *group, char *group_path*/);
  762. extern void redraw_page(/*int respnum, char *group*/);
  763. extern void show_note_page(/*int respnum, char *group*/);
  764. extern void show_first_header(/*int respnum, char *group*/);
  765. extern void show_cont_header(/*int respnum*/);
  766. extern void art_open(/*long art, char *group_path*/);
  767. extern void art_close(/*void*/);
  768. extern int prompt_response(/*int ch, int respnum*/);
  769. extern void yank_to_addr(/*char *orig, char *addr*/);
  770. extern int show_last_page(/*void*/);
  771. extern int match_header(/*char *buf, char *pat, char *body, int len*/);
  772. /* post.c */
  773. extern int user_posted_messages(/*void*/);
  774. extern void update_art_posted_file(/*char *group, char *subj*/);
  775. extern int post_base(/*char *group, int *posted*/);
  776. extern int post_response(/*char *group, int respnum, int copy_text*/);
  777. extern int mail_to_someone(/*char *address*/);
  778. extern int mail_bug_report(/*void*/);
  779. extern int mail_to_author(/*int respnum, int copy_text*/);
  780. extern void find_mail_header(/*int header, char *file, char *value*/);
  781. extern int cancel_article(/*void*/);
  782. extern int submit_file(/*char *name*/);
  783. extern void add_signature(/*FILE *fp, int flag*/);
  784. /* prompt.c */
  785. extern int prompt_num(/*int ch, char *prompt*/);
  786. extern int prompt_string(/*char *prompt, char *buf*/);
  787. extern int prompt_menu_string(/*int line, int col, char *var*/);
  788. extern int prompt_yn(/*int line, char *prompt, int default_ch*/);
  789. extern void prompt_on_off(/*int row, int col, int *var, char *help_text, char *prompt_text*/);
  790. extern void continue_prompt(/*void*/);
  791. /* rcfile.c */
  792. extern int read_rcfile(/*void*/);
  793. extern void write_rcfile(/*void*/);
  794. extern int change_rcfile(/*char *group, int kill_at_once*/);
  795. extern void show_rcfile_menu(/*void*/);
  796. extern void expand_rel_abs_pathname(/*int line, int col, char *str*/);
  797. extern void show_menu_help(/*char *help_message*/);
  798. /* save.c */
  799. extern int check_start_save_any_news(/*int check_start_save*/);
  800. extern int save_art_to_file(/*int respnum, int index, int mailbox, char *filename*/);
  801. extern int save_thread_to_file(/*int is_mailbox, char *group_path*/);
  802. extern int save_regex_arts(/*int is_mailbox, char *group_path*/);
  803. extern int append_to_existing_file(/*int i*/);
  804. extern int create_path(/*char *path*/);
  805. extern int create_sub_dir(/*int i*/);
  806. extern void add_to_save_list(/*int index, struct article_t *article, int is_mailbox, char *path*/);
  807. extern void sort_save_list(/*void*/);
  808. extern int save_comp(/*char *p1, char *p2*/);
  809. extern char *save_filename(/*int i*/);
  810. extern char *get_first_savefile(/*void*/);
  811. extern char *get_last_savefile(/*void*/);
  812. extern int post_process_files(/*int proc_type_ch*/);
  813. extern void post_process_uud(/*int pp*/);
  814. extern void post_process_sh(/*void*/);
  815. extern char *get_archive_file(/*char *dir, char *ext*/);
  816. extern void delete_processed_files(/*void*/);
  817. /* screen.c */
  818. extern void info_message(/*char *str*/);
  819. extern void wait_message(/*char *str*/);
  820. extern void error_message(/*char *template, char *str*/);
  821. extern void clear_message(/*void*/);
  822. extern void center_line(/*int line, int inverse, char *str*/);
  823. extern void draw_arrow(/*int line*/);
  824. extern void erase_arrow(/*int line*/);
  825. extern void show_title(/*char *title*/);
  826. extern void ring_bell(/*void*/);
  827. /* search.c */
  828. extern int search_author(/*int max_art, int current_art, int forward*/);
  829. extern void search_group(/*int forward*/);
  830. extern void search_subject(/*int forward, char *group*/);
  831. extern int search_article(/*int forward*/);
  832. extern void make_lower(/*char *s, char *t*/);
  833. /* select.c */
  834. extern void selection_index(/*int start_groupnum*/);
  835. extern void group_selection_page(/*void*/);
  836. extern int prompt_group_num(/*int ch*/);
  837. extern void erase_group_arrow(/*void*/);
  838. extern void draw_group_arrow(/*void*/);
  839. extern int choose_new_group(/*void*/);
  840. extern int add_group(/*char *s, int get_unread*/);
  841. extern int reposition_group(/*char *group, int default_num*/);
  842. extern void catchup_group(/*int goto_next_unread_group*/);
  843. extern void next_unread_group(/*int enter_group*/);
  844. /* signal.c */
  845. extern void set_signal_handlers(/*void*/);
  846. extern void signal_handler(/*int sig*/);
  847. extern void set_win_size(/*int *num_lines, int *num_cols*/);
  848. extern void set_signals_art(/*void*/);
  849. extern void set_signals_group(/*void*/);
  850. extern void set_signals_page(/*void*/);
  851. extern void set_signals_select(/*void*/);
  852. extern void set_signals_thread(/*void*/);
  853. extern void art_suspend(/*int sig*/);
  854. extern void main_suspend(/*int sig*/);
  855. extern void select_suspend(/*int sig*/);
  856. extern void group_suspend(/*int sig*/);
  857. extern void page_suspend(/*int sig*/);
  858. extern void thread_suspend(/*int sig*/);
  859. extern void rcfile_suspend(/*int sig*/);
  860. extern void art_resize(/*int sig*/);
  861. extern void main_resize(/*int sig*/);
  862. extern void select_resize(/*int sig*/);
  863. extern void group_resize(/*int sig*/);
  864. extern void page_resize(/*int sig*/);
  865. extern void thread_resize(/*int sig*/);
  866. /* thread.c */
  867. extern int show_thread(/*int respnum, char *group, char *group_path*/);
  868. extern void show_thread_page(/*void*/);
  869. extern void draw_thread_arrow(/*void*/);
  870. extern void erase_thread_arrow(/*void*/);
  871. extern int prompt_thread_num(/*int ch*/);
  872. extern int new_responses(/*int thread*/);
  873. extern int which_thread(/*int n*/);
  874. extern int which_response(/*int n*/);
  875. extern int num_of_responses(/*int n*/);
  876. extern int next_response(/*int n*/);
  877. extern int next_thread(/*int n*/);
  878. extern int prev_response(/*int n*/);
  879. extern int choose_response(/*int i, int n*/);
  880. extern int next_unread(/*int n*/);
  881. extern int prev_unread(/*int n*/);
  882. /* wildmat.c */
  883. extern int wildmat(/*char *text, char *p*/);
  884. #endif
  885. SHAR_EOF
  886. chmod 0600 proto.h ||
  887. echo 'restore of proto.h failed'
  888. Wc_c="`wc -c < 'proto.h'`"
  889. test 23136 -eq "$Wc_c" ||
  890.     echo 'proto.h: original size 23136, current size' "$Wc_c"
  891. rm -f _shar_wnt_.tmp
  892. fi
  893. # ============= patchlev.h ==============
  894. if test -f 'patchlev.h' -a X"$1" != X"-c"; then
  895.     echo 'x - skipping patchlev.h (File already exists)'
  896.     rm -f _shar_wnt_.tmp
  897. else
  898. > _shar_wnt_.tmp
  899. echo 'x - extracting patchlev.h (Text)'
  900. sed 's/^X//' << 'SHAR_EOF' > 'patchlev.h' &&
  901. /*
  902. X *  Project   : tin - a threaded Netnews reader
  903. X *  Module    : patchlev.h
  904. X *  Author    : I.Lea
  905. X *  Created   : 01-04-91
  906. X *  Updated   : 10-12-91
  907. X *  Notes     :
  908. X *  Copyright : (c) Copyright 1991-92 by Iain Lea
  909. X *                You may  freely  copy or  redistribute  this software,
  910. X *              so  long as there is no profit made from its use, sale
  911. X *              trade or  reproduction.  You may not change this copy-
  912. X *              right notice, and it must be included in any copy made
  913. X */
  914. X
  915. #define VERSION        "1.1"
  916. #define PATCHLEVEL    0
  917. SHAR_EOF
  918. chmod 0600 patchlev.h ||
  919. echo 'restore of patchlev.h failed'
  920. Wc_c="`wc -c < 'patchlev.h'`"
  921. test 548 -eq "$Wc_c" ||
  922.     echo 'patchlev.h: original size 548, current size' "$Wc_c"
  923. rm -f _shar_wnt_.tmp
  924. fi
  925. rm -f _shar_seq_.tmp
  926. echo You have unpacked the last part
  927. exit 0
  928.  
  929. --
  930. NAME   Iain Lea
  931. EMAIL  iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
  932. SNAIL  Bruecken Strasse 12, 8500 Nuernberg 90, Germany
  933. PHONE  +49-911-331963 (home)  +49-911-3089-407 (work)
  934. -- 
  935.  Dr. med. dipl.-math Dieter Becker           Tel.: (0 / +49) 6841 - 16 3046
  936.  Medizinische Universitaets- und Poliklinik  Fax.: (0 / +49) 6841 - 16 3369
  937.  Innere Medizin III                         
  938.  D - 6650 Homburg / Saar                     Email: becker@med-in.uni-sb.de
  939. exit 0 # Just in case...
  940.