home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-11-29 | 53.9 KB | 1,966 lines |
- Newsgroups: comp.sources.misc
- From: iain@estevax.uucp (Iain J. Lea)
- Subject: v26i079: tin - threaded full screen newsreader, Patch06d/5
- Message-ID: <1991Nov30.024029.14622@sparky.imd.sterling.com>
- X-Md4-Signature: 171c995778b4a5f43ff66adea0984741
- Date: Sat, 30 Nov 1991 02:40:29 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: iain@estevax.uucp (Iain J. Lea)
- Posting-number: Volume 26, Issue 79
- Archive-name: tin/patch06d
- Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
- Patch-To: tin: Volume 23, Issue 15-23
-
- #!/bin/sh
- # this is patch06.shar.04 (part 4 of tin)
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file tin.patch06 continued
- #
- if touch 2>&1 | fgrep '[-amc]' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- if test ! -r shar3_seq_.tmp; then
- echo "Please unpack part 1 first!"
- exit 1
- fi
- (read Scheck
- if test "$Scheck" != 4; then
- echo "Please unpack part $Scheck next!"
- exit 1
- else
- exit 0
- fi
- ) < shar3_seq_.tmp || exit 1
- echo "x - Continuing file tin.patch06"
- sed 's/^X//' << 'SHAR_EOF' >> tin.patch06 &&
- X! if (inverse) {
- X! StartInverse ();
- X! }
- X }
- X printf ("%s", str);
- X fflush (stdout);
- X! if (inverse && RawState ()) {
- X EndInverse ();
- X }
- X }
- Xdiff -rcs ../105/search.c ./search.c
- X*** ../105/search.c Tue Oct 8 19:29:35 1991
- X--- ./search.c Tue Oct 29 20:34:38 1991
- X***************
- X*** 3,9 ****
- X * Module : search.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 26-08-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : search.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 29-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 47,55 ****
- X {
- X char buf[LEN];
- X char buf2[LEN];
- X! int i;
- X
- X! clear_message();
- X
- X if (forward) {
- X sprintf (buf2, txt_author_search_forwards, author_search_string);
- X--- 47,55 ----
- X {
- X char buf[LEN];
- X char buf2[LEN];
- X! int i, patlen;
- X
- X! clear_message ();
- X
- X if (forward) {
- X sprintf (buf2, txt_author_search_forwards, author_search_string);
- X***************
- X*** 56,62 ****
- X } else {
- X sprintf (buf2, txt_author_search_backwards, author_search_string);
- X }
- X-
- X
- X if (! parse_string (buf2, buf)) {
- X return -1;
- X--- 56,61 ----
- X***************
- X*** 75,103 ****
- X
- X wait_message (txt_searching);
- X
- X! make_lower(author_search_string, buf);
- X
- X i = current_art;
- X
- X do {
- X if (forward) {
- X! i = next_response(i);
- X if (i < 0)
- X i = 0;
- X } else {
- X! i = prev_response(i);
- X if (i < 0)
- X i = top - 1;
- X }
- X
- X! make_lower(arts[i].from, buf2);
- X! if (str_str (buf2, buf) != 0) {
- X clear_message ();
- X return i;
- X }
- X } while (i != current_art);
- X
- X! info_message(txt_no_match);
- X return -1;
- X }
- X
- X--- 74,110 ----
- X
- X wait_message (txt_searching);
- X
- X! make_lower (author_search_string, buf);
- X
- X+ patlen = strlen (author_search_string);
- X+
- X i = current_art;
- X
- X do {
- X if (forward) {
- X! i = next_response (i);
- X if (i < 0)
- X i = 0;
- X } else {
- X! i = prev_response (i);
- X if (i < 0)
- X i = top - 1;
- X }
- X
- X! if (arts[i].name == (char *) 0) {
- X! make_lower (arts[i].from, buf2);
- X! } else {
- X! sprintf (msg, "%s (%s)", arts[i].from, arts[i].name);
- X! make_lower (msg, buf2);
- X! }
- X!
- X! if (str_str (buf2, buf, patlen) != 0) {
- X clear_message ();
- X return i;
- X }
- X } while (i != current_art);
- X
- X! info_message (txt_no_match);
- X return -1;
- X }
- X
- X***************
- X*** 110,118 ****
- X {
- X char buf[LEN];
- X char buf2[LEN];
- X! int i;
- X
- X! clear_message();
- X
- X if (forward) {
- X sprintf (buf2, txt_search_forwards, group_search_string);
- X--- 117,125 ----
- X {
- X char buf[LEN];
- X char buf2[LEN];
- X! int i, patlen;
- X
- X! clear_message ();
- X
- X if (forward) {
- X sprintf (buf2, txt_search_forwards, group_search_string);
- X***************
- X*** 137,146 ****
- X
- X wait_message (txt_searching);
- X
- X! i = cur_groupnum;
- X
- X! make_lower(group_search_string, buf);
- X
- X do {
- X if (forward)
- X i++;
- X--- 144,155 ----
- X
- X wait_message (txt_searching);
- X
- X! make_lower (group_search_string, buf);
- X
- X! patlen = strlen (group_search_string);
- X
- X+ i = cur_groupnum;
- X+
- X do {
- X if (forward)
- X i++;
- X***************
- X*** 152,174 ****
- X if (i < 0)
- X i = local_top - 1;
- X
- X! make_lower(active[my_group[i]].name, buf2);
- X! if (str_str (buf2, buf) != 0) {
- X if (i >= first_group_on_screen
- X && i < last_group_on_screen) {
- X clear_message ();
- X! erase_group_arrow();
- X cur_groupnum = i;
- X! draw_group_arrow();
- X } else {
- X cur_groupnum = i;
- X! group_selection_page();
- X }
- X return;
- X }
- X } while (i != cur_groupnum);
- X
- X! info_message(txt_no_match);
- X }
- X
- X /*
- X--- 161,184 ----
- X if (i < 0)
- X i = local_top - 1;
- X
- X! make_lower (active[my_group[i]].name, buf2);
- X!
- X! if (str_str (buf2, buf, patlen) != 0) {
- X if (i >= first_group_on_screen
- X && i < last_group_on_screen) {
- X clear_message ();
- X! erase_group_arrow ();
- X cur_groupnum = i;
- X! draw_group_arrow ();
- X } else {
- X cur_groupnum = i;
- X! group_selection_page ();
- X }
- X return;
- X }
- X } while (i != cur_groupnum);
- X
- X! info_message (txt_no_match);
- X }
- X
- X /*
- X***************
- X*** 181,187 ****
- X {
- X char buf[LEN];
- X char buf2[LEN];
- X! int i, j;
- X
- X if (index_point < 0) {
- X info_message (txt_no_arts);
- X--- 191,197 ----
- X {
- X char buf[LEN];
- X char buf2[LEN];
- X! int i, j, patlen;
- X
- X if (index_point < 0) {
- X info_message (txt_no_arts);
- X***************
- X*** 188,194 ****
- X return;
- X }
- X
- X! clear_message();
- X
- X if (forward) {
- X sprintf (buf2, txt_search_forwards, subject_search_string);
- X--- 198,204 ----
- X return;
- X }
- X
- X! clear_message ();
- X
- X if (forward) {
- X sprintf (buf2, txt_search_forwards, subject_search_string);
- X***************
- X*** 213,222 ****
- X
- X wait_message (txt_searching);
- X
- X! i = index_point;
- X
- X! make_lower(subject_search_string, buf);
- X
- X do {
- X if (forward)
- X i++;
- X--- 223,234 ----
- X
- X wait_message (txt_searching);
- X
- X! make_lower (subject_search_string, buf);
- X
- X! patlen = strlen (subject_search_string);
- X
- X+ i = index_point;
- X+
- X do {
- X if (forward)
- X i++;
- X***************
- X*** 229,251 ****
- X i = top_base - 1;
- X
- X j = (int) base[i];
- X! make_lower(arts[j].subject, buf2);
- X! if (str_str (buf2, buf) != 0) {
- X if (i >= first_subj_on_screen
- X && i < last_subj_on_screen) {
- X clear_message ();
- X! erase_subject_arrow();
- X index_point = i;
- X! draw_subject_arrow();
- X } else {
- X index_point = i;
- X! show_group_page(group);
- X }
- X return;
- X }
- X } while (i != index_point);
- X
- X! info_message(txt_no_match);
- X }
- X
- X /*
- X--- 241,265 ----
- X i = top_base - 1;
- X
- X j = (int) base[i];
- X!
- X! make_lower (arts[j].subject, buf2);
- X!
- X! if (str_str (buf2, buf, patlen) != 0) {
- X if (i >= first_subj_on_screen
- X && i < last_subj_on_screen) {
- X clear_message ();
- X! erase_subject_arrow ();
- X index_point = i;
- X! draw_subject_arrow ();
- X } else {
- X index_point = i;
- X! show_group_page (group);
- X }
- X return;
- X }
- X } while (i != index_point);
- X
- X! info_message (txt_no_match);
- X }
- X
- X /*
- X***************
- X*** 261,267 ****
- X char pattern[LEN];
- X char *p, *q;
- X int ctrl_L;
- X! int i, j;
- X int orig_note_end;
- X int orig_note_page;
- X
- X--- 275,281 ----
- X char pattern[LEN];
- X char *p, *q;
- X int ctrl_L;
- X! int i, j, patlen;
- X int orig_note_end;
- X int orig_note_page;
- X
- X***************
- X*** 288,301 ****
- X }
- X }
- X
- X make_lower (art_search_string, pattern);
- X /*
- X * save current position in article
- X */
- X orig_note_end = note_end;
- X orig_note_page = note_page;
- X-
- X- wait_message (txt_searching);
- X
- X while (! note_end) {
- X note_line = 1;
- X--- 302,318 ----
- X }
- X }
- X
- X+ wait_message (txt_searching);
- X+
- X make_lower (art_search_string, pattern);
- X+
- X+ patlen = strlen (art_search_string);
- X+
- X /*
- X * save current position in article
- X */
- X orig_note_end = note_end;
- X orig_note_page = note_page;
- X
- X while (! note_end) {
- X note_line = 1;
- X***************
- X*** 307,313 ****
- X note_line += 2;
- X }
- X while (note_line < LINES) {
- X! if (fgets(buf, sizeof buf, note_fp) == NULL) {
- X note_end = TRUE;
- X break;
- X }
- X--- 324,330 ----
- X note_line += 2;
- X }
- X while (note_line < LINES) {
- X! if (fgets (buf, sizeof buf, note_fp) == NULL) {
- X note_end = TRUE;
- X break;
- X }
- X***************
- X*** 335,343 ****
- X }
- X *q = '\0';
- X
- X! make_lower(buf2, string);
- X
- X! if (str_str (string, pattern) != 0) {
- X fseek (note_fp, note_mark[note_page], 0);
- X return TRUE;
- X }
- X--- 352,360 ----
- X }
- X *q = '\0';
- X
- X! make_lower (buf2, string);
- X
- X! if (str_str (string, pattern, patlen) != 0) {
- X fseek (note_fp, note_mark[note_page], 0);
- X return TRUE;
- X }
- X***************
- X*** 349,355 ****
- X }
- X }
- X if (! note_end) {
- X! note_mark[++note_page] = ftell(note_fp);
- X }
- X }
- X
- X--- 366,372 ----
- X }
- X }
- X if (! note_end) {
- X! note_mark[++note_page] = ftell (note_fp);
- X }
- X }
- X
- X***************
- X*** 364,381 ****
- X * ANSI C strstr () - Use Boyer-Moore algorithm. Downloaded from net.
- X */
- X
- X! char *str_str (text, pattern)
- X char *text;
- X char *pattern;
- X {
- X register unsigned char *p, *t;
- X register int i, p1, j, *delta;
- X int deltaspace[256];
- X- int patlen;
- X int textlen;
- X
- X! textlen= strlen (text);
- X! patlen = strlen (pattern);
- X
- X /* algorithm fails if pattern is empty */
- X if ((p1 = patlen) == 0)
- X--- 381,397 ----
- X * ANSI C strstr () - Use Boyer-Moore algorithm. Downloaded from net.
- X */
- X
- X! char *str_str (text, pattern, patlen)
- X char *text;
- X char *pattern;
- X+ int patlen;
- X {
- X register unsigned char *p, *t;
- X register int i, p1, j, *delta;
- X int deltaspace[256];
- X int textlen;
- X
- X! textlen = strlen (text);
- X
- X /* algorithm fails if pattern is empty */
- X if ((p1 = patlen) == 0)
- Xdiff -rcs ../105/select.c ./select.c
- X*** ../105/select.c Wed Oct 9 10:33:21 1991
- X--- ./select.c Fri Oct 25 20:29:17 1991
- X***************
- X*** 3,9 ****
- X * Module : select.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 09-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : select.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 25-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 16,27 ****
- X #include "tin.h"
- X
- X
- X- extern int index_point;
- X extern char cvers[LEN];
- X
- X int first_group_on_screen;
- X int last_group_on_screen;
- X- int cur_groupnum = 0;
- X int reread_active_file = TRUE;
- X int space_mode;
- X
- X--- 16,27 ----
- X #include "tin.h"
- X
- X
- X extern char cvers[LEN];
- X+ extern int index_point;
- X
- X+ int cur_groupnum = 0;
- X int first_group_on_screen;
- X int last_group_on_screen;
- X int reread_active_file = TRUE;
- X int space_mode;
- X
- X***************
- X*** 29,38 ****
- X void selection_index (start_groupnum)
- X int start_groupnum;
- X {
- X char ch;
- X int i, n;
- X int subscribe_num;
- X- char buf[LEN];
- X
- X cur_groupnum = start_groupnum;
- X
- X--- 29,40 ----
- X void selection_index (start_groupnum)
- X int start_groupnum;
- X {
- X+ char buf[LEN];
- X char ch;
- X int i, n;
- X+ int patlen;
- X+ int scroll_lines;
- X int subscribe_num;
- X
- X cur_groupnum = start_groupnum;
- X
- X***************
- X*** 133,148 ****
- X case ctrl('D'): /* vi style */
- X case ctrl('V'): /* emacs style */
- X select_page_down:
- X erase_group_arrow ();
- X! cur_groupnum += NOTESLINES / 2;
- X! if (cur_groupnum >= local_top)
- X! cur_groupnum = local_top - 1;
- X
- X if (cur_groupnum <= first_group_on_screen
- X || cur_groupnum >= last_group_on_screen)
- X! group_selection_page();
- X else
- X! draw_group_arrow();
- X break;
- X
- X case ctrl('K'):
- X--- 135,161 ----
- X case ctrl('D'): /* vi style */
- X case ctrl('V'): /* emacs style */
- X select_page_down:
- X+ if (local_top == 0) {
- X+ break;
- X+ }
- X+ if (cur_groupnum == local_top - 1) {
- X+ break;
- X+ }
- X erase_group_arrow ();
- X! scroll_lines = (full_page_scroll ? NOTESLINES : NOTESLINES / 2);
- X! cur_groupnum = ((cur_groupnum + scroll_lines) / scroll_lines) * scroll_lines;
- X! if (cur_groupnum >= local_top) {
- X! cur_groupnum = (local_top / scroll_lines) * scroll_lines;
- X! if (cur_groupnum < local_top - 1) {
- X! cur_groupnum = local_top - 1;
- X! }
- X! }
- X
- X if (cur_groupnum <= first_group_on_screen
- X || cur_groupnum >= last_group_on_screen)
- X! group_selection_page ();
- X else
- X! draw_group_arrow ();
- X break;
- X
- X case ctrl('K'):
- X***************
- X*** 172,178 ****
- X break;
- X
- X case ctrl('L'): /* redraw */
- X- case 't':
- X #ifndef USE_CLEARSCREEN
- X ClearScreen ();
- X #endif
- X--- 185,190 ----
- X***************
- X*** 182,190 ****
- X case ctrl('N'): /* line down */
- X case 'j':
- X select_down:
- X! if (cur_groupnum + 1 >= local_top)
- X break;
- X!
- X if (cur_groupnum + 1 >= last_group_on_screen) {
- X #ifndef USE_CLEARSCREEN
- X erase_group_arrow();
- X--- 194,202 ----
- X case ctrl('N'): /* line down */
- X case 'j':
- X select_down:
- X! if (cur_groupnum + 1 >= local_top) {
- X break;
- X! }
- X if (cur_groupnum + 1 >= last_group_on_screen) {
- X #ifndef USE_CLEARSCREEN
- X erase_group_arrow();
- X***************
- X*** 201,209 ****
- X case ctrl('P'): /* line up */
- X case 'k':
- X select_up:
- X! if (!cur_groupnum)
- X break;
- X!
- X if (cur_groupnum <= first_group_on_screen) {
- X cur_groupnum--;
- X group_selection_page();
- X--- 213,221 ----
- X case ctrl('P'): /* line up */
- X case 'k':
- X select_up:
- X! if (cur_groupnum == 0) {
- X break;
- X! }
- X if (cur_groupnum <= first_group_on_screen) {
- X cur_groupnum--;
- X group_selection_page();
- X***************
- X*** 225,239 ****
- X case ctrl('U'): /* page up */
- X case 'b':
- X select_page_up:
- X! erase_group_arrow();
- X! cur_groupnum -= NOTESLINES / 2;
- X! if (cur_groupnum < 0)
- X cur_groupnum = 0;
- X if (cur_groupnum < first_group_on_screen
- X || cur_groupnum >= last_group_on_screen)
- X! group_selection_page();
- X else
- X! draw_group_arrow();
- X break;
- X
- X case 'B': /* bug/gripe/comment mailed to author */
- X--- 237,263 ----
- X case ctrl('U'): /* page up */
- X case 'b':
- X select_page_up:
- X! if (local_top == 0) {
- X! break;
- X! }
- X! if (cur_groupnum == 0) {
- X! break;
- X! }
- X! erase_group_arrow ();
- X! scroll_lines = (full_page_scroll ? NOTESLINES : NOTESLINES / 2);
- X! if ((n = cur_groupnum % scroll_lines) > 0) {
- X! cur_groupnum = cur_groupnum - n;
- X! } else {
- X! cur_groupnum = ((cur_groupnum - scroll_lines) / scroll_lines) * scroll_lines;
- X! }
- X! if (cur_groupnum < 0) {
- X cur_groupnum = 0;
- X+ }
- X if (cur_groupnum < first_group_on_screen
- X || cur_groupnum >= last_group_on_screen)
- X! group_selection_page ();
- X else
- X! draw_group_arrow ();
- X break;
- X
- X case 'B': /* bug/gripe/comment mailed to author */
- X***************
- X*** 339,347 ****
- X case 'S': /* subscribe to groups matching pattern */
- X if (parse_string (txt_subscribe_pattern, buf) && buf[0]) {
- X wait_message (txt_subscribing);
- X for (subscribe_num=0, i=0 ; i < local_top ; i++) {
- X #ifdef DONT_USE_REGEX
- X! if (str_str (active[my_group[i]].name, buf)) {
- X #else
- X if (wildmat (active[my_group[i]].name, buf)) {
- X #endif
- X--- 363,372 ----
- X case 'S': /* subscribe to groups matching pattern */
- X if (parse_string (txt_subscribe_pattern, buf) && buf[0]) {
- X wait_message (txt_subscribing);
- X+ patlen = strlen (buf);
- X for (subscribe_num=0, i=0 ; i < local_top ; i++) {
- X #ifdef DONT_USE_REGEX
- X! if (str_str (active[my_group[i]].name, buf, patlen)) {
- X #else
- X if (wildmat (active[my_group[i]].name, buf)) {
- X #endif
- X***************
- X*** 390,398 ****
- X case 'U': /* unsubscribe to groups matching pattern */
- X if (parse_string (txt_unsubscribe_pattern, buf) && buf[0]) {
- X wait_message (txt_unsubscribing);
- X for (subscribe_num=0, i=0 ; i < local_top ; i++) {
- X #ifdef DONT_USE_REGEX
- X! if (str_str (active[my_group[i]].name, buf)) {
- X #else
- X if (wildmat (active[my_group[i]].name, buf)) {
- X #endif
- X--- 415,424 ----
- X case 'U': /* unsubscribe to groups matching pattern */
- X if (parse_string (txt_unsubscribe_pattern, buf) && buf[0]) {
- X wait_message (txt_unsubscribing);
- X+ patlen = strlen (buf);
- X for (subscribe_num=0, i=0 ; i < local_top ; i++) {
- X #ifdef DONT_USE_REGEX
- X! if (str_str (active[my_group[i]].name, buf, patlen)) {
- X #else
- X if (wildmat (active[my_group[i]].name, buf)) {
- X #endif
- X***************
- X*** 562,589 ****
- X
- X MoveCursor (INDEX_TOP, 0);
- X
- X! first_group_on_screen = (cur_groupnum / NOTESLINES) * NOTESLINES;
- X
- X last_group_on_screen = first_group_on_screen + NOTESLINES;
- X! if (last_group_on_screen >= local_top)
- X last_group_on_screen = local_top;
- X
- X for (j=0, i = first_group_on_screen; i < last_group_on_screen; i++,j++) {
- X switch (unread[i]) {
- X case -2:
- X! sprintf (new, "? ");
- X break;
- X
- X case -1:
- X! sprintf (new, "- ");
- X break;
- X
- X case 0:
- X! sprintf (new, " ");
- X break;
- X
- X default:
- X! sprintf (new, "%-4d", unread[i]);
- X }
- X
- X n = my_group[i];
- X--- 588,643 ----
- X
- X MoveCursor (INDEX_TOP, 0);
- X
- X! if (cur_groupnum >= local_top) {
- X! cur_groupnum = local_top - 1;
- X! }
- X!
- X! if (NOTESLINES <= 0) {
- X! first_group_on_screen = 0;
- X! } else {
- X! first_group_on_screen = (cur_groupnum / NOTESLINES) * NOTESLINES;
- X! if (first_group_on_screen < 0) {
- X! first_group_on_screen = 0;
- X! }
- X! }
- X
- X last_group_on_screen = first_group_on_screen + NOTESLINES;
- X!
- X! if (last_group_on_screen >= local_top) {
- X last_group_on_screen = local_top;
- X+ first_group_on_screen = (cur_groupnum / NOTESLINES) * NOTESLINES;
- X
- X+ if (first_group_on_screen == last_group_on_screen ||
- X+ first_group_on_screen < 0) {
- X+ if (first_group_on_screen < 0) {
- X+ first_group_on_screen = 0;
- X+ } else {
- X+ first_group_on_screen = last_group_on_screen - NOTESLINES;
- X+ }
- X+ }
- X+ }
- X+
- X+ if (local_top == 0) {
- X+ first_group_on_screen = 0;
- X+ last_group_on_screen = 0;
- X+ }
- X+
- X for (j=0, i = first_group_on_screen; i < last_group_on_screen; i++,j++) {
- X switch (unread[i]) {
- X case -2:
- X! sprintf (new, "? ");
- X break;
- X
- X case -1:
- X! sprintf (new, "- ");
- X break;
- X
- X case 0:
- X! sprintf (new, " ");
- X break;
- X
- X default:
- X! sprintf (new, "%-5d", unread[i]);
- X }
- X
- X n = my_group[i];
- Xdiff -rcs ../105/signal.c ./signal.c
- X*** ../105/signal.c Tue Oct 15 09:41:42 1991
- X--- ./signal.c Thu Oct 31 08:03:52 1991
- X***************
- X*** 3,9 ****
- X * Module : signal.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 15-10-91
- X * Release : 1.0
- X * Notes : signal handlers for different modes and window resizing
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : signal.c
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 29-10-91
- X * Release : 1.0
- X * Notes : signal handlers for different modes and window resizing
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 46,52 ****
- X
- X signal (SIGPIPE, SIG_IGN);
- X
- X! #ifdef SIGTSTP
- X {
- X void (*ptr)();
- X ptr = signal (SIGTSTP, SIG_DFL);
- X--- 46,52 ----
- X
- X signal (SIGPIPE, SIG_IGN);
- X
- X! #if defined(SIGTSTP) && ! defined(MINIX)
- X {
- X void (*ptr)();
- X ptr = signal (SIGTSTP, SIG_DFL);
- X***************
- X*** 129,135 ****
- X
- X init_screen_array (TRUE); /* allocate screen array for resize */
- X
- X! max_subj = (*num_cols / 2) - 2;
- X max_from = (*num_cols - max_subj) - 17;
- X RIGHT_POS = *num_cols - 18;
- X MORE_POS = *num_cols - 15;
- X--- 129,139 ----
- X
- X init_screen_array (TRUE); /* allocate screen array for resize */
- X
- X! if (show_author == SHOW_FROM_ADDR || show_author == SHOW_FROM_BOTH) {
- X! max_subj = (*num_cols / 2) - 2;
- X! } else {
- X! max_subj = (*num_cols / 2) + 5;
- X! }
- X max_from = (*num_cols - max_subj) - 17;
- X RIGHT_POS = *num_cols - 18;
- X MORE_POS = *num_cols - 15;
- Xdiff -rcs ../105/tin.1 ./tin.1
- X*** ../105/tin.1 Tue Oct 15 09:44:26 1991
- X--- ./tin.1 Mon Nov 4 19:12:57 1991
- X***************
- X*** 1,4 ****
- X! .TH TIN 1 "Version 1.0 PL5"
- X .SH NAME
- X tin \- Visual threaded Usenet news reader
- X .SH SYNOPSIS
- X--- 1,4 ----
- X! .TH TIN 1 "Version 1.0 PL6"
- X .SH NAME
- X tin \- Visual threaded Usenet news reader
- X .SH SYNOPSIS
- X***************
- X*** 13,24 ****
- X Tin has three newsreading levels:
- X the newsgroup selection page, the group index page and the article viewer.
- X Use the 'h' (help) command to view a list of the commands available at a
- X! particular level, or the 'H' command to view context sensitive help.
- X .PP
- X On startup Tin will show a list of the newsgroups found in \fI$HOME/.newsrc\fP.
- X An arrow '->' or highlighted bar will point to the first newsgroup.
- X! Move to a group by using the terminal arrow keys (ansi/at386/vt100 only) or
- X! 'j' and 'k'. Use PgUp/PgDn (ansi/at386/vt100 only) or Ctrl-U and Ctrl-D to
- X page up/down. Enter a newsgroup by pressing RETURN.
- X .PP
- X The TAB key may be used to advance to the next newsgroup with unread articles
- X--- 13,24 ----
- X Tin has three newsreading levels:
- X the newsgroup selection page, the group index page and the article viewer.
- X Use the 'h' (help) command to view a list of the commands available at a
- X! particular level.
- X .PP
- X On startup Tin will show a list of the newsgroups found in \fI$HOME/.newsrc\fP.
- X An arrow '->' or highlighted bar will point to the first newsgroup.
- X! Move to a group by using the terminal arrow keys (ansi/at386/vt100 only) or 'j'
- X! and 'k'. Use PgUp/PgDn (ansi/at386/vt100 only) or Ctrl-U and Ctrl-D to
- X page up/down. Enter a newsgroup by pressing RETURN.
- X .PP
- X The TAB key may be used to advance to the next newsgroup with unread articles
- X***************
- X*** 33,54 ****
- X save articles to directory. Default is \fI$HOME/News\fP.
- X .TP
- X \fB-f file\fP
- X! Use the indicated file in place of \fI$HOME/.newsrc\fP.
- X .TP
- X \fB-h\fP
- X help.
- X .TP
- X! \fB-m file\fP
- X! mail program to use for sending mail. Default is \fI/usr/ucb/mail\fP.
- X! .TP
- X! \fB-M dir\fP
- X mailbox directory to use. Default is \fI$HOME/Mail\fP.
- X .TP
- X \fB-n\fP
- X notify the user of any new newsgroups since last session.
- X .TP
- X \fB-p file\fP
- X! print program with options. Default is \fI/usr/ucb/lpr\fP.
- X .TP
- X \fB-r\fP
- X read news remotely from the default NNTP server specified in the
- X--- 33,55 ----
- X save articles to directory. Default is \fI$HOME/News\fP.
- X .TP
- X \fB-f file\fP
- X! Use the specified file in place of \fI$HOME/.newsrc\fP.
- X .TP
- X \fB-h\fP
- X help.
- X .TP
- X! \fB-m dir\fP
- X mailbox directory to use. Default is \fI$HOME/Mail\fP.
- X .TP
- X+ \fB-M user\fP
- X+ same as -S option, but instead of saving news to \fI$HOME/<savedir>\fP it
- X+ is mailed to the specified user address.
- X+ .TP
- X \fB-n\fP
- X notify the user of any new newsgroups since last session.
- X .TP
- X \fB-p file\fP
- X! print program with options.\fP.
- X .TP
- X \fB-r\fP
- X read news remotely from the default NNTP server specified in the
- X***************
- X*** 55,60 ****
- X--- 56,64 ----
- X environment variable NNTPSERVER or contained in the file
- X \fI/etc/nntpserver\fP.
- X .TP
- X+ \fB-R\fP
- X+ read news saved by -S option.
- X+ .TP
- X \fB-s dir\fP
- X spool directory where news is stored. Default is \fI/usr/spool/news\fP.
- X .TP
- X***************
- X*** 71,77 ****
- X you only want to save a few groups it would be best to backup your
- X full \fI$HOME/.newsrc\fP and create a new one that only contains the
- X groups you want to save. Saved news can be read later by starting tin
- X! with the -s <savedir> option.
- X .TP
- X \fB-u\fP
- X create/update index files for every group in \fI$HOME/.newsrc\fP or
- X--- 75,81 ----
- X you only want to save a few groups it would be best to backup your
- X full \fI$HOME/.newsrc\fP and create a new one that only contains the
- X groups you want to save. Saved news can be read later by starting tin
- X! with the -R option.
- X .TP
- X \fB-u\fP
- X create/update index files for every group in \fI$HOME/.newsrc\fP or
- X***************
- X*** 82,88 ****
- X in the foreground.
- X .TP
- X \fB-v\fP
- X! verbose mode for -c -u and -Z options.
- X .TP
- X \fB-z\fP
- X only start tin if there is any new/unread news. If there is news tin
- X--- 86,92 ----
- X in the foreground.
- X .TP
- X \fB-v\fP
- X! verbose mode for -c -M -S -u and -Z options.
- X .TP
- X \fB-z\fP
- X only start tin if there is any new/unread news. If there is news tin
- X***************
- X*** 160,166 ****
- X <Selection Num> <Unread> <Responses> <Subject> <Author>
- X .ti -.5i
- X i.e.,
- X! 1 + 3 Bnews sources? iain@estevax
- X 2 1 This question has ether@net
- X .ti -.5i
- X or
- X--- 164,170 ----
- X <Selection Num> <Unread> <Responses> <Subject> <Author>
- X .ti -.5i
- X i.e.,
- X! 1 + 3 Bnews sources? iain@estevax.uucp
- X 2 1 This question has ether@net
- X .ti -.5i
- X or
- X***************
- X*** 189,195 ****
- X .ta \w'24 Jul 15:20:03 GMT 'u +\w'Bnews sources? 'u
- X 24 Jul 15:20:03 GMT alt.sources Thread 1 of 2
- X Article 452 Bnews sources? 3 responses
- X! iain@estevax Siemens AG, Germany
- X
- X <Article boby>
- X .in -.5i
- X--- 193,199 ----
- X .ta \w'24 Jul 15:20:03 GMT 'u +\w'Bnews sources? 'u
- X 24 Jul 15:20:03 GMT alt.sources Thread 1 of 2
- X Article 452 Bnews sources? 3 responses
- X! iain@estevax.uucp Organization name
- X
- X <Article boby>
- X .in -.5i
- X***************
- X*** 587,597 ****
- X file \fI$HOME/.tin/kill\fP. Use <SPACE> to toggle ON/OFF and <CR>
- X to set.
- X .TP
- X- \fBShow Author\fP
- X- If set ON the Subject: & From: (author) lines from the articles header
- X- are displayed. If set OFF longer Subject: lines are displayed. Use
- X- <SPACE> to toggle ON/OFF and <CR> to set.
- X- .TP
- X \fBDraw arrow\fP
- X Allows groups/articles to be selected by an arrow '->' if set ON or
- X by an highlighted bar if set OFF. Use <SPACE> to toggle ON/OFF and
- X--- 591,596 ----
- X***************
- X*** 607,612 ****
- X--- 606,639 ----
- X upon entering a newsgroup with unread news. Use <SPACE> to toggle
- X ON/OFF and <CR> to set.
- X .TP
- X+ \fBScroll full page\fP
- X+ If set ON scrolling of groups/articles will be a full page at a time,
- X+ otherwise half a page at a time. Use <SPACE> to toggle ON/OFF and <CR>
- X+ to set.
- X+ .TP
- X+ \fBCatchup on quit\fP
- X+ If set ON the user is asked when quitting if all groups read during the
- X+ current session should be marked read. Use <SPACE> to toggle ON/OFF
- X+ and <CR> to set.
- X+ .TP
- X+ \fBThread articles\fP
- X+ If set ON articles will be threaded in all groups (default), otherwise
- X+ articles will be shown unthreaded. If set ON but certain user specified
- X+ groups are in \fI$HOME/.tin/unthread\fP, the specified groups will be
- X+ unthreaded and the rest will be threaded. Use <SPACE> to toggle ON/OFF
- X+ and <CR> to set.
- X+ .TP
- X+ \fBShow only unread\fP
- X+ If set ON show only new/unread articles, otherwise show all articles.
- X+ Use <SPACE> to toggle ON/OFF and <CR> to set.
- X+ .TP
- X+ \fBShow Author\fP
- X+ If set 'None' only the Subject: line will be displayed. If set 'Addr'
- X+ Subject: line & the address part of the From: line are displayed. If
- X+ set 'Name' Subject: line & the authors full name part of the From:
- X+ line are displayed. If set 'Both' Subject: line & all of the From: line
- X+ are displayed. Use <SPACE> to toggle the required type and <CR> to set.
- X+ .TP
- X \fBProcess type\fP
- X This specifies the default type of post processing to perform on saved
- X articles. The following types of processing are allowed:
- X***************
- X*** 623,631 ****
- X .ti -\w'\(em'u
- X \(emunpacking of multi-part uuencoded files that produce a *.zoo archive
- X whose contents is extracted.
- X- .ti -\w'\(em'u
- X- \(emunpacking of multi-part patches for use by \fIpatch\fP and applying
- X- them to specified source files.
- X .in -.5i
- X Use <SPACE> to toggle the required type and <CR> to set.
- X .TP
- X--- 650,655 ----
- X***************
- X*** 741,747 ****
- X .nf
- X NAME Iain Lea
- X EMAIL iain@estevax.uucp ...!unido!estevax!iain
- X! SNAIL Siemens AG, ANL 433SZ, 8510 Fuerth-Bislohe, Germany
- X PHONE +49-911-331963 (home) +49-911-3089-407 (work)
- X .fi
- X .RE
- X--- 765,771 ----
- X .nf
- X NAME Iain Lea
- X EMAIL iain@estevax.uucp ...!unido!estevax!iain
- X! SNAIL Bruecken Strasse 12, 8500 Nuernberg, Germany
- X PHONE +49-911-331963 (home) +49-911-3089-407 (work)
- X .fi
- X .RE
- X***************
- X*** 812,818 ****
- X .SH FILES
- X .nf
- X .ta \w'\fI$HOME/.tin/organization\fP 'u
- X! \fI$HOME/.newsrc\fP newgroups subscribed to.
- X \fI$HOME/.tin/tinrc\fP options.
- X \fI$HOME/.tin/.index\fP newsgroup index files directory.
- X \fI$HOME/.tin/add_address\fP address to add to when replying through mail.
- X--- 836,842 ----
- X .SH FILES
- X .nf
- X .ta \w'\fI$HOME/.tin/organization\fP 'u
- X! \fI$HOME/.newsrc\fP subscribed to newgroups.
- X \fI$HOME/.tin/tinrc\fP options.
- X \fI$HOME/.tin/.index\fP newsgroup index files directory.
- X \fI$HOME/.tin/add_address\fP address to add to when replying through mail.
- X***************
- X*** 847,853 ****
- X .SH HISTORY
- X Based on the tass newsreader that was developed by Rich Skrenta and posted
- X to alt.sources in March 1991. Tass was itself heavily infleuenced by NOTES
- X! which was developed at the University of Illinois in the 1970's.
- X .SH CREDITS
- X .TP
- X Rich Skrenta
- X--- 871,891 ----
- X .SH HISTORY
- X Based on the tass newsreader that was developed by Rich Skrenta and posted
- X to alt.sources in March 1991. Tass was itself heavily infleuenced by NOTES
- X! which was developed at the University of Illinois in the late 1970's.
- X! .PP
- X! Tin v1.00 (full distribution) was posted in 8 parts to alt.sources on 23 Aug 1991.
- X! .PP
- X! Tin v1.0 PL1 (full distribution) was posted in 8 parts to alt.sources on 03 Sep 1991.
- X! .PP
- X! Tin v1.0 PL2 (full distribution) was posted in 9 parts to alt.sources on 24 Sep 1991.
- X! .PP
- X! Tin v1.0 PL3 (patch) was posted in 4 parts to alt.sources on 30 Sep 1991.
- X! .PP
- X! Tin v1.0 PL4 (patch) was posted in 2 parts to alt.sources on 02 Oct 1991.
- X! .PP
- X! Tin v1.0 PL5 (patch) was posted in 4 parts to alt.sources on 17 Oct 1991.
- X! .PP
- X! Tin v1.0 PL6 (patch) was posted in 5 parts to alt.sources on 04 Nov 1991.
- X .SH CREDITS
- X .TP
- X Rich Skrenta
- X***************
- X*** 854,860 ****
- X author of tass v3.2 which this newsreader used as its base.
- X .TP
- X Syd Weinstein
- X! curses.c is taken from the elm mailreader
- X .TP
- X Rich Salz
- X author of wildmat.c pattern matching routines.
- X--- 892,898 ----
- X author of tass v3.2 which this newsreader used as its base.
- X .TP
- X Syd Weinstein
- X! curses.c is taken from the elm mailreader.
- X .TP
- X Rich Salz
- X author of wildmat.c pattern matching routines.
- X***************
- X*** 864,883 ****
- X .PP
- X I wish to thank the following people for supplying patchs:
- X
- X! Anton Aylward, Carl Hage, Ed Hanway, Karl-Koenig Koenigsson, Kris Kugel,
- X! Hakan Lennestal, Clifford Luke, Bill Poitras, Nickolay Saukh, Rich Salz,
- X! Bart Sears, Karl-Olav Serrander, Doug Sewell, Cliff Stanford, Adri Verhoef,
- X! Cary Whitney
- X .PP
- X I wish to thank the following people for bug reports/comments:
- X
- X! Klaus Arzig, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
- X! Ian Brown, Andreas Brosig, David Donovan, Peter Dressler, Gerhard Ermer,
- X! Hugh Fader, Joachim Feld, Paul Fox, Bernhard Gmelch, Viet Hoang,
- X! Torsten Homeyer, Andy Jackson, Joe Johnson, Cyrill Jung, Hans-Juergen
- X! Knopp, Bob Lukas, Phillip Molloy, Toni Metz, Greg Miller, Klaus Neuberger,
- X! Otto Niesser, Reiner Oelhaf, Wolf Paul, Fredy Schwatz, Bernd Schwerin,
- X! Klamer Schutte, Chris Smith, Steve Spearman
- X .SH AUTHOR
- X .TP
- X Iain Lea
- X--- 902,922 ----
- X .PP
- X I wish to thank the following people for supplying patchs:
- X
- X! Anton Aylward, Ned Danieley, Brent Ermlick, Carl Hage, Ed Hanway,
- X! Karl-Koenig Koenigsson, Kris Kugel, Hakan Lennestal, Clifford Luke,
- X! Bill Poitras, Nickolay Saukh, Rich Salz, Bart Sears, Karl-Olav Serrander,
- X! Doug Sewell, Cliff Stanford, Adri Verhoef, Cary Whitney
- X .PP
- X I wish to thank the following people for bug reports/comments:
- X
- X! Klaus Arzig, Scott Babb, Reiner Balling, Volker Beyer, Roger Binns, Georg Biehler,
- X! Ian Brown, Andreas Brosig, Steven Cogswell, Tom Czarnik, David Donovan,
- X! Peter Dressler, Gerhard Ermer, Hugh Fader, Joachim Feld, Paul Fox,
- X! Bernhard Gmelch, Viet Hoang, Torsten Homeyer, Andy Jackson, Joe Johnson,
- X! Cyrill Jung, Hans-Juergen Knopp, Bob Lukas, Phillip Molloy, Toni Metz,
- X! Greg Miller, Klaus Neuberger, Otto Niesser, Reiner Oelhaf, Wolf Paul,
- X! Andrew Phillips, Ted Richards, Fredy Schwatz, Bernd Schwerin, Klamer Schutte,
- X! Chris Smith, Steve Spearman, Hironobu Takahashi, Sven Werner
- X .SH AUTHOR
- X .TP
- X Iain Lea
- XOnly in .: tin.diff
- Xdiff -rcs ../105/tin.h ./tin.h
- X*** ../105/tin.h Thu Oct 10 20:25:10 1991
- X--- ./tin.h Thu Oct 31 13:42:35 1991
- X***************
- X*** 3,9 ****
- X * Module : tin.h
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 10-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X--- 3,9 ----
- X * Module : tin.h
- X * Author : R.Skrenta / I.Lea
- X * Created : 01-04-91
- X! * Updated : 31-10-91
- X * Release : 1.0
- X * Notes :
- X * Copyright : (c) Copyright 1991 by Rich Skrenta & Iain Lea
- X***************
- X*** 15,23 ****
- X
- X #include <stdio.h>
- X #include <signal.h>
- X- #include <pwd.h>
- X #include <sys/types.h>
- X! #include <memory.h>
- X #include <ctype.h>
- X #include <time.h>
- X #include <sys/stat.h>
- X--- 15,25 ----
- X
- X #include <stdio.h>
- X #include <signal.h>
- X #include <sys/types.h>
- X! #include <pwd.h>
- X! #ifndef MINIX
- X! # include <memory.h>
- X! #endif
- X #include <ctype.h>
- X #include <time.h>
- X #include <sys/stat.h>
- X***************
- X*** 26,32 ****
- X # include <strings.h>
- X #else
- X # include <string.h>
- X! # include <malloc.h>
- X #endif
- X
- X #ifdef SCO_UNIX
- X--- 28,38 ----
- X # include <strings.h>
- X #else
- X # include <string.h>
- X! # ifndef MINIX
- X! # include <malloc.h>
- X! # else
- X! # include <stdlib.h>
- X! # endif
- X #endif
- X
- X #ifdef SCO_UNIX
- X***************
- X*** 52,57 ****
- X--- 58,66 ----
- X #ifndef LIBDIR
- X # define LIBDIR "/usr/lib/news"
- X #endif
- X+ #ifndef INDEWSDIR
- X+ # define INEWSDIR LIBDIR
- X+ #endif
- X
- X #define RCDIR ".tin"
- X #define RCFILE "tinrc"
- X***************
- X*** 67,73 ****
- X # define DEFAULT_EDITOR "/usr/ucb/vi"
- X # define DEFAULT_MAILER "/bin/rmail"
- X # define DEFAULT_MAILBOX "/usr/spool/mail"
- X! # define DEFAULT_PRINTER "/usr/ucb/lpr"
- X # define DEFAULT_SUM "sum"
- X # ifndef USE_LONG_FILENAMES
- X # define USE_LONG_FILENAMES
- X--- 76,86 ----
- X # define DEFAULT_EDITOR "/usr/ucb/vi"
- X # define DEFAULT_MAILER "/bin/rmail"
- X # define DEFAULT_MAILBOX "/usr/spool/mail"
- X! # ifdef SINIX
- X! # define DEFAULT_PRINTER "/bin/lpr"
- X! # else
- X! # define DEFAULT_PRINTER "/usr/ucb/lpr"
- X! # endif
- X # define DEFAULT_SUM "sum"
- X # ifndef USE_LONG_FILENAMES
- X # define USE_LONG_FILENAMES
- X***************
- X*** 98,105 ****
- X # define DEFAULT_SUM "sum -r"
- X #endif
- X
- X! #define DEFAULT_ACTIVE_NUM 100 /* initial size of active array */
- X! #define DEFAULT_ARTICLE_NUM 400 /* initial size of art array */
- X #define DEFAULT_KILL_NUM 10 /* initial size of kill array */
- X #define DEFAULT_SAVE_NUM 10 /* initial size of save array */
- X
- X--- 111,118 ----
- X # define DEFAULT_SUM "sum -r"
- X #endif
- X
- X! #define DEFAULT_ACTIVE_NUM 400 /* initial size of active array */
- X! #define DEFAULT_ARTICLE_NUM 200 /* initial size of art array */
- X #define DEFAULT_KILL_NUM 10 /* initial size of kill array */
- X #define DEFAULT_SAVE_NUM 10 /* initial size of save array */
- X
- X***************
- X*** 136,146 ****
- X
- X
- X #ifdef USE_INVERSE_HACK
- X! # define BLANK_SELECT_COLS 59
- X # define BLANK_GROUP_COLS 2
- X # define BLANK_PAGE_COLS 2
- X #else
- X! # define BLANK_SELECT_COLS 57
- X # define BLANK_GROUP_COLS 0
- X # define BLANK_PAGE_COLS 0
- X #endif
- X--- 149,159 ----
- X
- X
- X #ifdef USE_INVERSE_HACK
- X! # define BLANK_SELECT_COLS 60
- X # define BLANK_GROUP_COLS 2
- X # define BLANK_PAGE_COLS 2
- X #else
- X! # define BLANK_SELECT_COLS 58
- X # define BLANK_GROUP_COLS 0
- X # define BLANK_PAGE_COLS 0
- X #endif
- X***************
- X*** 157,168 ****
- X #define SORT_BY_DATE_DESCEND 5
- X #define SORT_BY_DATE_ASCEND 6
- X
- X #define HELP_INFO 0
- X #define POST_INFO 1
- X
- X #define CHECK_ANY_NEWS 0
- X #define START_ANY_NEWS 1
- X! #define SAVE_ANY_NEWS 2
- X
- X extern int sort_art_type;
- X
- X--- 170,187 ----
- X #define SORT_BY_DATE_DESCEND 5
- X #define SORT_BY_DATE_ASCEND 6
- X
- X+ #define SHOW_FROM_NONE 0
- X+ #define SHOW_FROM_ADDR 1
- X+ #define SHOW_FROM_NAME 2
- X+ #define SHOW_FROM_BOTH 3
- X+
- X #define HELP_INFO 0
- X #define POST_INFO 1
- X
- X #define CHECK_ANY_NEWS 0
- X #define START_ANY_NEWS 1
- X! #define MAIL_ANY_NEWS 2
- X! #define SAVE_ANY_NEWS 3
- X
- X extern int sort_art_type;
- X
- X***************
- X*** 178,187 ****
- X
- X
- X #define ESC 27
- X! #ifdef BSD
- X! #define CR '\r'
- X #else
- X! #define CR 10
- X #endif
- X
- X /*
- X--- 197,206 ----
- X
- X
- X #define ESC 27
- X! #if defined(BSD) || defined(MINIX)
- X! # define CR '\r'
- X #else
- X! # define CR 10
- X #endif
- X
- X /*
- X***************
- X*** 209,215 ****
- X struct header {
- X long artnum;
- X char *subject; /* Subject: line from mail header */
- X! char *from; /* From: line from mail header */
- X int thread;
- X int inthread;
- X int unread; /* 0 = read, 1 = unread, 2 = will return */
- X--- 228,235 ----
- X struct header {
- X long artnum;
- X char *subject; /* Subject: line from mail header */
- X! char *from; /* From: line from mail header (address) */
- X! char *name; /* From: line from mail header (full name) */
- X int thread;
- X int inthread;
- X int unread; /* 0 = read, 1 = unread, 2 = will return */
- X***************
- X*** 234,240 ****
- X * FALSE for the first article in a thread, TRUE for all
- X * following articles in thread
- X *
- X! * header.read:
- X * boolean, has this article been read or not
- X *
- X * header.date
- X--- 254,260 ----
- X * FALSE for the first article in a thread, TRUE for all
- X * following articles in thread
- X *
- X! * header.unread:
- X * boolean, has this article been read or not
- X *
- X * header.date
- X***************
- X*** 295,301 ****
- X #define POST_PROC_UUDECODE 2
- X #define POST_PROC_UUD_LST_ZOO 3
- X #define POST_PROC_UUD_EXT_ZOO 4
- X- #define POST_PROC_PATCH 5
- X
- X struct save_t {
- X char *subject;
- X--- 315,320 ----
- X***************
- X*** 329,446 ****
- X
- X #ifdef POSIX_JOB_CONTROL
- X extern struct sigaction art_act;
- X- extern struct sigaction kill_act;
- X extern struct sigaction group_act;
- X extern struct sigaction main_act;
- X extern struct sigaction page_act;
- X extern struct sigaction select_act;
- X extern struct sigaction rcfile_act;
- X- extern struct sigaction old_act;
- X #endif
- X
- X! #ifdef USE_NNTP
- X! extern int can_post; /* open.c */
- X! #endif
- X!
- X! extern int debug;
- X! extern int active_num;
- X! extern int article_num;
- X! extern int start_line_offset;
- X!
- X! extern int read_news_via_nntp;
- X! extern char nntp_server[LEN];
- X! extern int top;
- X! extern struct header *arts;
- X! extern long *base;
- X! extern int max_art;
- X!
- X! extern int index_file_killed;
- X! extern int save_separate;
- X! extern int save_archive_name;
- X! extern int show_author;
- X! extern int draw_arrow_mark;
- X! extern int kill_articles;
- X! extern int mark_saved_read;
- X! extern int post_proc_type;
- X! extern int default_printer;
- X! extern int print_header;
- X! extern int pos_first_unread;
- X! extern int num_of_tagged_files;
- X! extern int compiled_with_nntp;
- X! extern int save_news;
- X! extern int thread_arts;
- X!
- X! extern char rcdir[LEN];
- X! extern char rcfile[LEN];
- X! extern char indexdir[LEN];
- X! extern char killfile[LEN];
- X! extern char postfile[LEN];
- X!
- X! extern char msg[LEN];
- X! extern char userid[LEN];
- X! extern char homedir[LEN];
- X extern char add_addr[LEN];
- X extern char bug_addr[LEN];
- X- extern char txt_help_bug_report[LEN];
- X- extern char reply_to[LEN];
- X- extern char my_org[LEN];
- X- extern char active_file[LEN];
- X- extern char newsrc[LEN];
- X- extern char newnewsrc[LEN];
- X- extern char delgroups[LEN];
- X-
- X- extern char *version;
- X extern char cvers[LEN];
- X- extern char progname[LEN];
- X- extern char article[LEN];
- X extern char dead_article[LEN];
- X- extern char mailer[LEN];
- X- extern char printer[LEN];
- X- extern char spooldir[LEN];
- X- extern char savedir[LEN];
- X- extern char maildir[LEN];
- X- extern char mailbox[LEN];
- X- extern char page_header[LEN];
- X- extern char signature[LEN];
- X- extern char sig[LEN];
- X- extern char killsubj[LEN];
- X- extern char killfrom[LEN];
- X- extern char author_search_string[LEN];
- X- extern char group_search_string[LEN];
- X- extern char subject_search_string[LEN];
- X- extern char art_search_string[LEN];
- X extern char default_mail_address[LEN];
- X extern char default_pipe_command[LEN];
- X extern char default_regex_pattern[LEN];
- X extern char default_save_file[LEN];
- X extern char default_shell_command[LEN];
- X! extern char default_post_subject[LEN];
- X extern char proc_ch_default; /* set in change_rcfile () */
- X
- X! extern char *help_select[];
- X! extern char *help_group[];
- X! extern char *help_page[];
- X
- X- extern int top_base;
- X extern int LINES, COLS;
- X- extern int group_hash[TABLE_SIZE];
- X- extern int num_active;
- X- extern struct group_ent *active;
- X extern int *my_group;
- X extern int *unread;
- X! extern int max_active;
- X!
- X! extern int local_top;
- X extern int catchup;
- X! extern int update;
- X! extern int verbose;
- X extern int inverse_okay;
- X!
- X! extern int tin_uid;
- X! extern int tin_gid;
- X! extern int real_uid;
- X! extern int real_gid;
- X extern int local_index;
- X
- X #ifdef SIGTSTP
- X extern int do_sigtstp;
- X--- 348,463 ----
- X
- X #ifdef POSIX_JOB_CONTROL
- X extern struct sigaction art_act;
- X extern struct sigaction group_act;
- X+ extern struct sigaction kill_act;
- X extern struct sigaction main_act;
- X+ extern struct sigaction old_act;
- X extern struct sigaction page_act;
- X+ extern struct sigaction rcfile_act;
- X extern struct sigaction select_act;
- X extern struct sigaction rcfile_act;
- X #endif
- X
- X! extern char *help_group[];
- X! extern char *help_page[];
- X! extern char *help_select[];
- X! extern char *version;
- X! extern char active_file[LEN];
- X extern char add_addr[LEN];
- X+ extern char art_search_string[LEN];
- X+ extern char article[LEN];
- X+ extern char author_search_string[LEN];
- X extern char bug_addr[LEN];
- X extern char cvers[LEN];
- X extern char dead_article[LEN];
- X extern char default_mail_address[LEN];
- X extern char default_pipe_command[LEN];
- X+ extern char default_post_subject[LEN];
- X extern char default_regex_pattern[LEN];
- X extern char default_save_file[LEN];
- X extern char default_shell_command[LEN];
- X! extern char delgroups[LEN];
- X! extern char group_search_string[LEN];
- X! extern char homedir[LEN];
- X! extern char indexdir[LEN];
- X! extern char killfile[LEN];
- X! extern char killfrom[LEN];
- X! extern char killsubj[LEN];
- X! extern char mail_news_user[LEN];
- X! extern char mailbox[LEN];
- X! extern char maildir[LEN];
- X! extern char mailer[LEN];
- X! extern char msg[LEN];
- X! extern char my_org[LEN];
- X! extern char newnewsrc[LEN];
- X! extern char newsrc[LEN];
- X! extern char nntp_server[LEN];
- X! extern char page_header[LEN];
- X! extern char postfile[LEN];
- X! extern char printer[LEN];
- X extern char proc_ch_default; /* set in change_rcfile () */
- X+ extern char progname[LEN];
- X+ extern char rcdir[LEN];
- X+ extern char rcfile[LEN];
- X+ extern char reply_to[LEN];
- X+ extern char savedir[LEN];
- X+ extern char sig[LEN];
- X+ extern char signature[LEN];
- X+ extern char spooldir[LEN];
- X+ extern char subject_search_string[LEN];
- X+ extern char txt_help_bug_report[LEN];
- X+ extern char userid[LEN];
- X
- X! #ifdef USE_NNTP
- X! extern int can_post; /* open.c */
- X! #endif
- X
- X extern int LINES, COLS;
- X extern int *my_group;
- X extern int *unread;
- X! extern int active_num;
- X! extern int article_num;
- X extern int catchup;
- X! extern int catchup_read_groups;
- X! extern int compiled_with_nntp;
- X! extern int debug;
- X! extern int default_printer;
- X! extern int draw_arrow_mark;
- X! extern int full_page_scroll;
- X! extern int group_hash[TABLE_SIZE];
- X! extern int index_file_killed;
- X extern int inverse_okay;
- X! extern int kill_articles;
- X extern int local_index;
- X+ extern int local_top;
- X+ extern int mail_news;
- X+ extern int mark_saved_read;
- X+ extern int max_active;
- X+ extern int max_art;
- X+ extern int num_active;
- X+ extern int num_of_tagged_files;
- X+ extern int pos_first_unread;
- X+ extern int post_proc_type;
- X+ extern int print_header;
- X+ extern int read_news_via_nntp;
- X+ extern int real_gid;
- X+ extern int real_uid;
- X+ extern int save_archive_name;
- X+ extern int save_news;
- X+ extern int save_separate;
- X+ extern int show_author;
- X+ extern int show_only_unread;
- X+ extern int start_line_offset;
- X+ extern int thread_arts;
- X+ extern int tin_gid;
- X+ extern int tin_uid;
- X+ extern int top;
- X+ extern int top_base;
- X+ extern int update;
- X+ extern int verbose;
- X+ extern long *base;
- X+ extern struct group_ent *active;
- X+ extern struct header *arts;
- X
- X #ifdef SIGTSTP
- X extern int do_sigtstp;
- Xdiff -rcs ../105/tin.nrf ./tin.nrf
- X*** ../105/tin.nrf Wed Oct 16 20:07:30 1991
- X--- ./tin.nrf Mon Nov 4 19:13:29 1991
- X***************
- X*** 1,7 ****
- X
- X
- X
- X! Version 1.0 PL5 TIN(1)
- X
- X
- X
- X--- 1,7 ----
- X
- X
- X
- X! Version 1.0 PL6 TIN(1)
- X
- X
- X
- X***************
- X*** 19,31 ****
- X Tin has three newsreading levels: the newsgroup selection page,
- X the group index page and the article viewer. Use the 'h' (help)
- X command to view a list of the commands available at a particular
- X! level, or the 'H' command to view context sensitive help.
- X
- X On startup Tin will show a list of the newsgroups found in
- X $_H_O_M_E/._n_e_w_s_r_c. An arrow '->' or highlighted bar will point to
- X the first newsgroup. Move to a group by using the terminal arrow
- X! keys (ansi/at386/vt100 only) or page up/down. Enter a newsgroup
- X! by pressing RETURN.
- X
- X The TAB key may be used to advance to the next newsgroup with
- X unread articles and enter it.
- X--- 19,32 ----
- X Tin has three newsreading levels: the newsgroup selection page,
- X the group index page and the article viewer. Use the 'h' (help)
- X command to view a list of the commands available at a particular
- X! level.
- X
- X On startup Tin will show a list of the newsgroups found in
- X $_H_O_M_E/._n_e_w_s_r_c. An arrow '->' or highlighted bar will point to
- X the first newsgroup. Move to a group by using the terminal arrow
- X! keys (ansi/at386/vt100 only) or 'j' and 'k'. Use PgUp/PgDn
- X! (ansi/at386/vt100 only) or Ctrl-U and Ctrl-D to page up/down.
- X! Enter a newsgroup by pressing RETURN.
- X
- X The TAB key may be used to advance to the next newsgroup with
- X unread articles and enter it.
- X***************
- X*** 38,63 ****
- X
- X -d dir save articles to directory. Default is $_H_O_M_E/_N_e_w_s.
- X
- X! -f file Use the indicated file in place of $_H_O_M_E/._n_e_w_s_r_c.
- X
- X -h help.
- X
- X! -m file mail program to use for sending mail. Default is
- X! /_u_s_r/_u_c_b/_m_a_i_l.
- X
- X! -M dir mailbox directory to use. Default is $_H_O_M_E/_M_a_i_l.
- X
- X -n notify the user of any new newsgroups since last ses-
- X sion.
- X
- X! -p file print program with options. Default is /_u_s_r/_u_c_b/_l_p_r.
- X
- X -r read news remotely from the default NNTP server speci-
- X fied in the environment variable NNTPSERVER or con-
- X tained in the file /_e_t_c/_n_n_t_p_s_e_r_v_e_r.
- X
- X- -s dir spool directory where news is stored. Default is
- X- /_u_s_r/_s_p_o_o_l/_n_e_w_s.
- X
- X
- X 1
- X--- 39,63 ----
- X
- X -d dir save articles to directory. Default is $_H_O_M_E/_N_e_w_s.
- X
- X! -f file Use the specified file in place of $_H_O_M_E/._n_e_w_s_r_c.
- X
- X -h help.
- X
- X! -m dir mailbox directory to use. Default is $_H_O_M_E/_M_a_i_l.
- X
- X! -M user same as -S option, but instead of saving news to
- X! $_H_O_M_E/<_s_a_v_e_d_i_r> it is mailed to the specified user
- X! address.
- X
- X -n notify the user of any new newsgroups since last ses-
- X sion.
- X
- X! -p file print program with options..
- X
- X -r read news remotely from the default NNTP server speci-
- X fied in the environment variable NNTPSERVER or con-
- X tained in the file /_e_t_c/_n_n_t_p_s_e_r_v_e_r.
- X
- X
- X
- X 1
- X***************
- X*** 67,75 ****
- X
- X
- X
- X! TIN(1) Version 1.0 PL5
- X
- X
- X -S save news articles for later reading. Useful when going
- X on holiday and you don't want to return and find that
- X expire has removed a whole load of unread articles.
- X--- 67,80 ----
- X
- X
- X
- X! TIN(1) Version 1.0 PL6
- X
- X
- X+ -R read news saved by -S option.
- X+
- X+ -s dir spool directory where news is stored. Default is
- X+ /_u_s_r/_s_p_o_o_l/_n_e_w_s.
- X+
- X -S save news articles for later reading. Useful when going
- X on holiday and you don't want to return and find that
- X expire has removed a whole load of unread articles.
- X***************
- X*** 85,91 ****
- X save a few groups it would be best to backup your full
- X $_H_O_M_E/._n_e_w_s_r_c and create a new one that only contains
- X the groups you want to save. Saved news can be read
- X! later by starting tin with the -s <savedir> option.
- X
- X -u create/update index files for every group in
- X $_H_O_M_E/._n_e_w_s_r_c or file specified by -f option.
- X--- 90,96 ----
- X save a few groups it would be best to backup your full
- X $_H_O_M_E/._n_e_w_s_r_c and create a new one that only contains
- X the groups you want to save. Saved news can be read
- X! later by starting tin with the -R option.
- X
- X -u create/update index files for every group in
- X $_H_O_M_E/._n_e_w_s_r_c or file specified by -f option.
- X***************
- X*** 93,99 ****
- X -U start tin in the background to update index files while
- X reading news in the foreground.
- X
- X! -v verbose mode for -c -u and -Z options.
- X
- X -z only start tin if there is any new/unread news. If
- X there is news tin will position cursor at first group
- X--- 98,104 ----
- X -U start tin in the background to update index files while
- X reading news in the foreground.
- X
- X! -v verbose mode for -c -M -S -u and -Z options.
- X
- X -z only start tin if there is any new/unread news. If
- X there is news tin will position cursor at first group
- X***************
- X*** 119,131 ****
- X
- X Entering a group the first time tends to be slow because the
- X index file must be built from scratch. Subsequent readings of a
- X- group will cause Tin to incrementally update the index file,
- X- adding or removing entries as new articles come in or as news
- X- expires. If reading news remotely indexing will be somewhat
- X- slower because the articles must be retrieved via the NNTP.
- X
- X
- X-
- X 2
- X
- X
- X--- 124,131 ----
- X***************
- X*** 133,141 ****
- X
- X
- X
- X! Version 1.0 PL5 TIN(1)
- X
- X
- X A good way to keep Tin index files current is to run tin -u from
- SHAR_EOF
- echo "End of tin part 4"
- echo "File tin.patch06 is continued in part 5"
- echo "5" > shar3_seq_.tmp
- exit 0
-
- --
- Dr. med. dipl.-math Dieter Becker Tel.: (0 / +49) 6841 - 16 3046
- Medizinische Universitaets- und Poliklinik Fax.: (0 / +49) 6841 - 16 3369
- Innere Medizin III
- D - 6650 Homburg / Saar Email: becker@med-in.uni-sb.de
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-