home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
misc
/
volume29
/
tin
/
patch02c
< prev
next >
Wrap
Text File
|
1992-04-04
|
52KB
|
1,909 lines
Newsgroups: comp.sources.misc
From: iain%anl433.uucp@germany.eu.net (Iain Lea)
Subject: v29i052: tin - threaded full screen newsreader v1.1 PL2, Patch02c/4
Message-ID: <1992Apr3.225948.7845@sparky.imd.sterling.com>
X-Md4-Signature: 80e204d469db66e357e1ff55eb3f2c20
Date: Fri, 3 Apr 1992 22:59:48 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: iain%anl433.uucp@germany.eu.net (Iain Lea)
Posting-number: Volume 29, Issue 52
Archive-name: tin/patch02c
Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
Patch-To: tin: Volume 29, Issue 19-30
#!/bin/sh
# this is patch112.shar.03 (part 3 of tin)
# do not concatenate these parts, unpack them in order with /bin/sh
# file tin.patch112 continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 3; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping tin.patch112'
else
echo 'x - continuing file tin.patch112'
sed 's/^X//' << 'SHAR_EOF' >> 'tin.patch112' &&
! set_tin_uid_gid ();
X return FALSE;
X }
X chmod(nam, 0600);
--- 576,584 ----
X
X wait_message (txt_mail_bug_report);
X
X sprintf (nam, "%s/.bugreport", homedir);
X if ((fp = fopen (nam, "w")) == NULL) {
! perror_message (txt_cannot_open, nam);
X return FALSE;
X }
X chmod(nam, 0600);
***************
*** 551,557 ****
X start_line_offset++;
X }
X
! if ((fp_uname = popen ("uname -a", "r")) != NULL) {
X fprintf (fp, "\n");
X start_line_offset++;
X while (fgets (buf, sizeof (buf), fp_uname) != NULL) {
--- 595,601 ----
X start_line_offset++;
X }
X
! if ((fp_uname = (FILE *) popen ("uname -a", "r")) != NULL) {
X fprintf (fp, "\n");
X start_line_offset++;
X while (fgets (buf, sizeof (buf), fp_uname) != NULL) {
***************
*** 599,605 ****
X switch (ch) {
X case 'e':
X invoke_editor (nam);
- set_real_uid_gid ();
X break;
X
X case 'a':
--- 643,648 ----
***************
*** 606,612 ****
X case ESC:
X unlink (nam);
X clear_message ();
- set_tin_uid_gid ();
X return TRUE;
X
X case 's':
--- 649,654 ----
***************
*** 639,647 ****
X }
X
X mail_bug_report_done:
- set_real_uid_gid ();
X unlink (nam);
- set_tin_uid_gid ();
X
X return TRUE;
X }
--- 681,687 ----
***************
*** 662,673 ****
X
X wait_message (txt_reply_to_author);
X
- set_real_uid_gid ();
-
X sprintf (nam, "%s/.letter", homedir);
X if ((fp = fopen (nam, "w")) == NULL) {
! error_message (txt_cannot_open, nam);
! set_tin_uid_gid ();
X return (redraw_screen);
X }
X chmod (nam, 0600);
--- 702,710 ----
X
X wait_message (txt_reply_to_author);
X
X sprintf (nam, "%s/.letter", homedir);
X if ((fp = fopen (nam, "w")) == NULL) {
! perror_message (txt_cannot_open, nam);
X return (redraw_screen);
X }
X chmod (nam, 0600);
***************
*** 700,706 ****
X switch (ch) {
X case 'e':
X invoke_editor (nam);
- set_real_uid_gid ();
X redraw_screen = TRUE;
X break;
X
--- 737,742 ----
***************
*** 708,714 ****
X case ESC:
X unlink (nam);
X clear_message ();
- set_tin_uid_gid ();
X return (redraw_screen);
X
X case 's':
--- 744,749 ----
***************
*** 736,744 ****
X }
X
X mail_to_author_done:
- set_real_uid_gid ();
X unlink (nam);
- set_tin_uid_gid ();
X
X return (redraw_screen);
X }
--- 771,777 ----
***************
*** 761,767 ****
X *new_value = '\0';
X
X if ((fp = fopen (file, "r")) == NULL) {
! error_message (txt_cannot_open, file);
X return;
X }
X
--- 794,800 ----
X *new_value = '\0';
X
X if ((fp = fopen (file, "r")) == NULL) {
! perror_message (txt_cannot_open, file);
X return;
X }
X
***************
*** 817,828 ****
X
X clear_message ();
X
- set_real_uid_gid ();
-
X sprintf (cancel, "%s/.cancel", homedir);
X if ((fp = fopen (cancel, "w")) == NULL) {
! error_message (txt_cannot_open, cancel);
! set_tin_uid_gid ();
X return (redraw_screen);
X }
X chmod (cancel, 0600);
--- 850,858 ----
X
X clear_message ();
X
X sprintf (cancel, "%s/.cancel", homedir);
X if ((fp = fopen (cancel, "w")) == NULL) {
! perror_message (txt_cannot_open, cancel);
X return (redraw_screen);
X }
X chmod (cancel, 0600);
***************
*** 861,867 ****
X switch (ch) {
X case 'e':
X invoke_editor (cancel);
- set_real_uid_gid ();
X redraw_screen = TRUE;
X break;
X
--- 891,896 ----
***************
*** 869,875 ****
X case ESC:
X unlink (cancel);
X clear_message ();
- set_tin_uid_gid ();
X return (redraw_screen);
X
X case 'c':
--- 898,903 ----
***************
*** 885,893 ****
X }
X
X cancel_article_done:
- set_real_uid_gid ();
X unlink (cancel);
- set_tin_uid_gid ();
X
X return (redraw_screen);
X }
--- 913,919 ----
***************
*** 915,921 ****
X ret_code = invoke_cmd (buf);
X #endif /* NNTP_INEWS */
X
- set_real_uid_gid ();
X return (ret_code);
X }
X
--- 941,946 ----
***************
*** 926,931 ****
--- 951,960 ----
X {
X FILE *sigf;
X
+ #ifdef NNTP_INEWS
+ flag = TRUE;
+ #endif
+
X if ((sigf = fopen (signature, "r")) != NULL) {
X if (flag) {
X fprintf (fp, "\n--\n");
Only in .: post.o
diff -rcs ../111/prompt.c ./prompt.c
*** ../111/prompt.c Fri Mar 27 14:01:04 1992
--- ./prompt.c Thu Mar 26 15:05:40 1992
***************
*** 28,34 ****
--- 28,36 ----
X int num;
X int time_remaining;
X
+ #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X
X clear_message ();
X
***************
*** 43,49 ****
--- 45,53 ----
X
X clear_message ();
X
+ #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X
X return (num);
X }
***************
*** 60,67 ****
X {
X char *p;
X int time_remaining;
!
X time_remaining = alarm (0);
X
X clear_message ();
X
--- 64,73 ----
X {
X char *p;
X int time_remaining;
!
! #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X
X clear_message ();
X
***************
*** 68,81 ****
X if ((p = getline (prompt, FALSE, (char *) 0)) == (char *) 0) {
X buf[0] = '\0';
X clear_message ();
X alarm (time_remaining);
X return FALSE;
X }
X strcpy (buf, p);
X
X clear_message ();
!
X alarm (time_remaining);
X
X return TRUE;
X }
--- 74,90 ----
X if ((p = getline (prompt, FALSE, (char *) 0)) == (char *) 0) {
X buf[0] = '\0';
X clear_message ();
+ #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X return FALSE;
X }
X strcpy (buf, p);
X
X clear_message ();
! #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X
X return TRUE;
X }
***************
*** 93,110 ****
X {
X char *p;
X int time_remaining;
!
X time_remaining = alarm (0);
X
X MoveCursor (line, col);
X
X if ((p = getline ("", FALSE, var)) == (char *) 0) {
X alarm (time_remaining);
X return FALSE;
X }
X strcpy (var, p);
!
X alarm (time_remaining);
X
X return TRUE;
X }
--- 102,123 ----
X {
X char *p;
X int time_remaining;
! #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X
X MoveCursor (line, col);
X
X if ((p = getline ("", FALSE, var)) == (char *) 0) {
+ #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X return FALSE;
X }
X strcpy (var, p);
! #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X
X return TRUE;
X }
***************
*** 117,124 ****
X {
X char ch;
X int time_remaining;
!
X time_remaining = alarm (0);
X
X MoveCursor (line, 0);
X CleartoEOLN ();
--- 130,138 ----
X {
X char ch;
X int time_remaining;
! #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X
X MoveCursor (line, 0);
X CleartoEOLN ();
***************
*** 141,148 ****
X }
X fflush (stdout);
X }
!
X alarm (time_remaining);
X
X return (ch == 'y' ? TRUE : FALSE);
X }
--- 155,163 ----
X }
X fflush (stdout);
X }
! #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X
X return (ch == 'y' ? TRUE : FALSE);
X }
***************
*** 157,164 ****
X {
X int ch, var_orig;
X int time_remaining;
!
X time_remaining = alarm (0);
X
X var_orig = *var;
X
--- 172,180 ----
X {
X int ch, var_orig;
X int time_remaining;
! #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X
X var_orig = *var;
X
***************
*** 177,184 ****
X printf ("%s", (*var ? "ON " : "OFF"));
X fflush (stdout);
X }
!
X alarm (time_remaining);
X }
X
X
--- 193,201 ----
X printf ("%s", (*var ? "ON " : "OFF"));
X fflush (stdout);
X }
! #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X }
X
X
***************
*** 186,198 ****
X {
X char ch;
X int time_remaining;
!
X time_remaining = alarm (0);
X
X info_message (txt_hit_any_key);
X ch = (char) ReadCh ();
!
X alarm (time_remaining);
X }
X
X
--- 203,217 ----
X {
X char ch;
X int time_remaining;
! #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X
X info_message (txt_hit_any_key);
X ch = (char) ReadCh ();
! #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X }
X
X
Only in .: prompt.o
diff -rcs ../111/proto.h ./proto.h
*** ../111/proto.h Fri Mar 27 14:01:21 1992
--- ./proto.h Sat Mar 28 13:18:44 1992
***************
*** 16,22 ****
X extern int parse_headers(int fd, struct article_t *h);
X extern void dump_index_file(char *group, int killed);
X extern int load_index_file(char *group_name);
! extern void find_index_file(char *group);
X extern void do_update(void);
X extern void reload_index_file(char *group, int killed);
X extern char *parse_date(char *date, char *str);
--- 16,22 ----
X extern int parse_headers(int fd, struct article_t *h);
X extern void dump_index_file(char *group, int killed);
X extern int load_index_file(char *group_name);
! extern void find_index_file(char *group, char *group_path);
X extern void do_update(void);
X extern void reload_index_file(char *group, int killed);
X extern char *parse_date(char *date, char *str);
***************
*** 124,129 ****
--- 124,130 ----
X extern int mail_check(void);
X extern void parse_from(char *str, char *addr, char *name);
X extern long my_atol(char *s, int n);
+ extern int my_stricmp(char *p, char *q);
X extern char *eat_re(char *s);
X extern long hash_s(char *s);
X extern void my_strncpy(char *p, char *q, int n);
***************
*** 183,188 ****
--- 184,190 ----
X /* post.c */
X extern int user_posted_messages(void);
X extern void update_art_posted_file(char *group, char *subj);
+ extern int post_header_ok(char *article);
X extern int post_base(char *group, int *posted);
X extern int post_response(char *group, int respnum, int copy_text);
X extern int mail_to_someone(char *address, int confirm_to_mail);
***************
*** 229,234 ****
--- 231,237 ----
X extern void info_message(char *str);
X extern void wait_message(char *str);
X extern void error_message(char *template, char *str);
+ extern void perror_message(char *template, char *str);
X extern void clear_message(void);
X extern void center_line(int line, int inverse, char *str);
X extern void draw_arrow(int line);
***************
*** 312,318 ****
X extern int parse_headers(/*int fd, struct article_t *h*/);
X extern void dump_index_file(/*char *group, int killed*/);
X extern int load_index_file(/*char *group_name*/);
! extern void find_index_file(/*char *group*/);
X extern void do_update(/*void*/);
X extern void reload_index_file(/*char *group, int killed*/);
X extern char *parse_date(/*char *date, char *str*/);
--- 315,321 ----
X extern int parse_headers(/*int fd, struct article_t *h*/);
X extern void dump_index_file(/*char *group, int killed*/);
X extern int load_index_file(/*char *group_name*/);
! extern void find_index_file(/*char *group, char *group_path*/);
X extern void do_update(/*void*/);
X extern void reload_index_file(/*char *group, int killed*/);
X extern char *parse_date(/*char *date, char *str*/);
***************
*** 420,425 ****
--- 423,429 ----
X extern int mail_check(/*void*/);
X extern void parse_from(/*char *str, char *addr, char *name*/);
X extern long my_atol(/*char *s, int n*/);
+ extern int my_stricmp(/*char *p, char *q*/);
X extern char *eat_re(/*char *s*/);
X extern long hash_s(/*char *s*/);
X extern void my_strncpy(/*char *p, char *q, int n*/);
***************
*** 479,484 ****
--- 483,489 ----
X /* post.c */
X extern int user_posted_messages(/*void*/);
X extern void update_art_posted_file(/*char *group, char *subj*/);
+ extern int post_header_ok(/*char *article*/);
X extern int post_base(/*char *group, int *posted*/);
X extern int post_response(/*char *group, int respnum, int copy_text*/);
X extern int mail_to_someone(/*char *address, int confirm_to_mail*/);
***************
*** 525,530 ****
--- 530,536 ----
X extern void info_message(/*char *str*/);
X extern void wait_message(/*char *str*/);
X extern void error_message(/*char *template, char *str*/);
+ extern void perror_message(/*char *template, char *str*/);
X extern void clear_message(/*void*/);
X extern void center_line(/*int line, int inverse, char *str*/);
X extern void draw_arrow(/*int line*/);
diff -rcs ../111/rcfile.c ./rcfile.c
*** ../111/rcfile.c Fri Mar 27 14:01:04 1992
--- ./rcfile.c Thu Mar 26 16:54:41 1992
***************
*** 3,9 ****
X * Module : rcfile.c
X * Author : I.Lea
X * Created : 01-04-91
! * Updated : 13-03-92
X * Notes :
X * Copyright : (c) Copyright 1991-92 by Iain Lea
X * You may freely copy or redistribute this software,
--- 3,9 ----
X * Module : rcfile.c
X * Author : I.Lea
X * Created : 01-04-91
! * Updated : 26-03-92
X * Notes :
X * Copyright : (c) Copyright 1991-92 by Iain Lea
X * You may freely copy or redistribute this software,
***************
*** 35,42 ****
X if (buf[0] != '#') {
X if (strncmp (buf, "save_archive=", 13) == 0) {
X save_archive_name = (strncmp (&buf[13], "ON", 2) == 0 ? TRUE : FALSE);
! } else if (strncmp (buf, "save_separate=", 14) == 0) {
! save_separate = (strncmp (&buf[14], "ON", 2) == 0 ? TRUE : FALSE);
X } else if (strncmp (buf, "mark_saved_read=", 16) == 0) {
X mark_saved_read = (strncmp (&buf[16], "ON", 2) == 0 ? TRUE : FALSE);
X } else if (strncmp (buf, "kill_articles=", 14) == 0) {
--- 35,42 ----
X if (buf[0] != '#') {
X if (strncmp (buf, "save_archive=", 13) == 0) {
X save_archive_name = (strncmp (&buf[13], "ON", 2) == 0 ? TRUE : FALSE);
! } else if (strncmp (buf, "start_editor_offset=", 20) == 0) {
! start_editor_offset = (strncmp (&buf[20], "ON", 2) == 0 ? TRUE : FALSE);
X } else if (strncmp (buf, "mark_saved_read=", 16) == 0) {
X mark_saved_read = (strncmp (&buf[16], "ON", 2) == 0 ? TRUE : FALSE);
X } else if (strncmp (buf, "kill_articles=", 14) == 0) {
***************
*** 126,133 ****
X {
X FILE *fp;
X
- set_real_uid_gid ();
-
X if ((fp = fopen (rcfile, "w")) != NULL) {
X if (! cmd_line) {
X wait_message (txt_saving);
--- 126,131 ----
***************
*** 137,143 ****
X fprintf (fp, "save_archive=%s\n\n", (save_archive_name ? "ON" : "OFF"));
X fprintf (fp, "# if ON articles of a threads will be saved to separate files\n");
X fprintf (fp, "# otherwise the whole thread will be saved to one file\n");
! fprintf (fp, "save_separate=%s\n\n", (save_separate ? "ON" : "OFF"));
X fprintf (fp, "# if ON mark articles that are saved as read\n");
X fprintf (fp, "mark_saved_read=%s\n\n", (mark_saved_read ? "ON" : "OFF"));
X fprintf (fp, "# if ON use -> otherwise highlighted bar for selection\n");
--- 135,141 ----
X fprintf (fp, "save_archive=%s\n\n", (save_archive_name ? "ON" : "OFF"));
X fprintf (fp, "# if ON articles of a threads will be saved to separate files\n");
X fprintf (fp, "# otherwise the whole thread will be saved to one file\n");
! fprintf (fp, "start_editor_offset=%s\n\n", (start_editor_offset ? "ON" : "OFF"));
X fprintf (fp, "# if ON mark articles that are saved as read\n");
X fprintf (fp, "mark_saved_read=%s\n\n", (mark_saved_read ? "ON" : "OFF"));
X fprintf (fp, "# if ON use -> otherwise highlighted bar for selection\n");
***************
*** 183,189 ****
X fclose (fp);
X chmod (rcfile, 0600);
X }
- set_tin_uid_gid ();
X }
X
X /*
--- 181,186 ----
***************
*** 210,216 ****
--- 207,217 ----
X if (do_sigtstp) {
X #ifdef POSIX_JOB_CONTROL
X sigemptyset (&rcfile_act.sa_mask);
+ #if defined(SA_RESTART)
X rcfile_act.sa_flags = SA_RESTART | SA_RESETHAND;
+ #else
+ rcfile_act.sa_flags = 0;
+ #endif
X rcfile_act.sa_handler = SIG_DFL;
X sigaction (SIGTSTP, &rcfile_act, &old_act);
X #else
***************
*** 231,237 ****
--- 232,242 ----
X if (do_sigtstp) {
X #ifdef POSIX_JOB_CONTROL
X sigemptyset (&rcfile_act.sa_mask);
+ #if defined(SA_RESTART)
X rcfile_act.sa_flags = SA_RESTART | SA_RESETHAND;
+ #else
+ rcfile_act.sa_flags = 0;
+ #endif
X rcfile_act.sa_handler = rcfile_suspend;
X sigaction (SIGTSTP, &rcfile_act, 0L);
X #else
***************
*** 254,260 ****
--- 259,269 ----
X if (do_sigtstp) {
X #ifdef POSIX_JOB_CONTROL
X sigemptyset (&rcfile_act.sa_mask);
+ #if defined(SA_RESTART)
X rcfile_act.sa_flags = SA_RESTART | SA_RESETHAND;
+ #else
+ rcfile_act.sa_flags = 0;
+ #endif
X rcfile_act.sa_handler = SIG_IGN;
X sigaction (SIGTSTP, &rcfile_act, 0L);
X #else
***************
*** 287,293 ****
--- 296,306 ----
X if (do_sigtstp) {
X #ifdef POSIX_JOB_CONTROL
X sigemptyset (&rcfile_act.sa_mask);
+ #if defined(SA_RESTART)
X rcfile_act.sa_flags = SA_RESTART | SA_RESETHAND;
+ #else
+ rcfile_act.sa_flags = 0;
+ #endif
X rcfile_act.sa_handler = SIG_IGN;
X sigaction (SIGTSTP, &old_act, 0L);
X #else
***************
*** 302,310 ****
X txt_help_autosave, txt_opt_autosave);
X break;
X
! case 2: /* save sperate */
! prompt_on_off (INDEX_TOP, COL2, &save_separate,
! txt_help_save_separate, txt_opt_save_separate);
X break;
X
X case 3: /* mark saved articles read */
--- 315,323 ----
X txt_help_autosave, txt_opt_autosave);
X break;
X
! case 2: /* start editor with line offset */
! prompt_on_off (INDEX_TOP, COL2, &start_editor_offset,
! txt_help_start_editor_offset, txt_opt_start_editor_offset);
X break;
X
X case 3: /* mark saved articles read */
***************
*** 625,631 ****
X printf ("%s%s", txt_opt_thread_arts, (thread_arts ? "ON " : "OFF"));
X
X MoveCursor(INDEX_TOP, COL2);
! printf ("%s%s", txt_opt_save_separate, (save_separate ? "ON " : "OFF"));
X MoveCursor(INDEX_TOP+2, COL2);
X printf ("%s%s", txt_opt_draw_arrow, (draw_arrow_mark ? "ON " : "OFF"));
X MoveCursor(INDEX_TOP+4, COL2);
--- 638,644 ----
X printf ("%s%s", txt_opt_thread_arts, (thread_arts ? "ON " : "OFF"));
X
X MoveCursor(INDEX_TOP, COL2);
! printf ("%s%s", txt_opt_start_editor_offset, (start_editor_offset ? "ON " : "OFF"));
X MoveCursor(INDEX_TOP+2, COL2);
X printf ("%s%s", txt_opt_draw_arrow, (draw_arrow_mark ? "ON " : "OFF"));
X MoveCursor(INDEX_TOP+4, COL2);
Only in .: rcfile.o
diff -rcs ../111/save.c ./save.c
*** ../111/save.c Fri Mar 27 14:01:09 1992
--- ./save.c Fri Mar 27 14:32:28 1992
***************
*** 3,9 ****
X * Module : save.c
X * Author : I.Lea & R.Skrenta
X * Created : 01-04-91
! * Updated : 22-03-92
X * Notes :
X * Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
X * You may freely copy or redistribute this software,
--- 3,9 ----
X * Module : save.c
X * Author : I.Lea & R.Skrenta
X * Created : 01-04-91
! * Updated : 27-03-92
X * Notes :
X * Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
X * You may freely copy or redistribute this software,
***************
*** 99,105 ****
X case SAVE_ANY_NEWS:
X sprintf (logfile, "%s/log", rcdir);
X if ((fp_log = fopen (logfile, "w")) == NULL) {
! error_message (txt_cannot_open, logfile);
X fp_log = stdout;
X verbose = FALSE;
X log_opened = FALSE;
--- 99,105 ----
X case SAVE_ANY_NEWS:
X sprintf (logfile, "%s/log", rcdir);
X if ((fp_log = fopen (logfile, "w")) == NULL) {
! perror_message (txt_cannot_open, logfile);
X fp_log = stdout;
X verbose = FALSE;
X log_opened = FALSE;
***************
*** 168,174 ****
X if ((fp = fopen (savefile, "w")) == NULL) {
X fprintf (fp_log, txt_cannot_open, savefile);
X if (verbose) {
! error_message (txt_cannot_open, savefile);
X }
X continue;
X }
--- 168,174 ----
X if ((fp = fopen (savefile, "w")) == NULL) {
X fprintf (fp_log, txt_cannot_open, savefile);
X if (verbose) {
! perror_message (txt_cannot_open, savefile);
X }
X continue;
X }
***************
*** 292,303 ****
X return (ret_code);
X }
X
- set_real_uid_gid ();
-
X if ((fp = fopen (save_filename (i), "a+")) == NULL) {
X save[i].saved = FALSE;
X info_message (txt_art_not_saved);
- set_tin_uid_gid ();
X return (ret_code);
X }
X
--- 292,300 ----
***************
*** 305,311 ****
X fprintf (fp, "From %s %s", note_h_path, ctime (&epoch));
X
X if (fseek (note_fp, 0L, 0) == -1) {
! error_message ("fseek() error on [%s]", arts[respnum].subject);
X }
X copy_fp (note_fp, fp, (char *) 0);
X fputs ("\n", fp);
--- 302,308 ----
X fprintf (fp, "From %s %s", note_h_path, ctime (&epoch));
X
X if (fseek (note_fp, 0L, 0) == -1) {
! perror_message ("fseek() error on [%s]", arts[respnum].subject);
X }
X copy_fp (note_fp, fp, (char *) 0);
X fputs ("\n", fp);
***************
*** 314,321 ****
X
X save[i].saved = TRUE;
X
- set_tin_uid_gid ();
-
X if (filename == (char *) 0) {
X if (is_mailbox) {
X sprintf (save_art_info, txt_saved_to_mailbox, get_first_savefile ());
--- 311,316 ----
***************
*** 344,351 ****
X int i, ret_code = FALSE;
X long epoch;
X
- set_real_uid_gid ();
-
X for (i=0 ; i < save_num ; i++) {
X sprintf (msg, "%s%d", txt_saving, ++count);
X wait_message (msg);
--- 339,344 ----
***************
*** 360,366 ****
X ret_code = save_art_to_file (save[i].index, i, is_mailbox, buf);
X art_close ();
X }
- set_tin_uid_gid ();
X
X first_savefile = get_first_savefile ();
X
--- 353,358 ----
***************
*** 373,385 ****
X if (save_num == 1) {
X sprintf (save_thread_info, txt_art_saved_to, first_savefile);
X } else {
! if (save_separate) {
! sprintf (save_thread_info, txt_thread_saved_to_many,
! first_savefile, get_last_savefile ());
! } else {
! sprintf (save_thread_info, txt_thread_saved_to,
! first_savefile);
! }
X }
X if (first_savefile != (char *) 0) {
X free (first_savefile);
--- 365,372 ----
X if (save_num == 1) {
X sprintf (save_thread_info, txt_art_saved_to, first_savefile);
X } else {
! sprintf (save_thread_info, txt_thread_saved_to_many,
! first_savefile, get_last_savefile ());
X }
X if (first_savefile != (char *) 0) {
X free (first_savefile);
***************
*** 450,456 ****
X char *file;
X struct stat st;
X
! if (! save[i].is_mailbox && save_separate) {
X file = save_filename (i);
X if (stat(file, &st) != -1) {
X sprintf (buf, txt_append_to_file, file);
--- 437,443 ----
X char *file;
X struct stat st;
X
! if (! save[i].is_mailbox) {
X file = save_filename (i);
X if (stat(file, &st) != -1) {
X sprintf (buf, txt_append_to_file, file);
***************
*** 477,483 ****
X int create_path (path)
X char *path;
X {
! #ifdef INDEX_DAEMON
X
X char buf[LEN];
X char group[LEN];
--- 464,470 ----
X int create_path (path)
X char *path;
X {
! #ifndef INDEX_DAEMON
X
X char buf[LEN];
X char group[LEN];
***************
*** 551,557 ****
X buf[j+1] = '\0';
X if (stat (buf, &st) == -1) {
X if (mkdir (buf, 0755) == -1) {
! error_message ("Cannot create %s", buf);
X return FALSE;
X }
X }
--- 538,544 ----
X buf[j+1] = '\0';
X if (stat (buf, &st) == -1) {
X if (mkdir (buf, 0755) == -1) {
! perror_message ("Cannot create %s", buf);
X return FALSE;
X }
X }
***************
*** 696,712 ****
X char *p1;
X char *p2;
X {
! struct save_t *s1 = (struct save_t *)p1;
! struct save_t *s2 = (struct save_t *)p2;
X
! /* s1->subject less than s2->subject */
! if (strcmp (s1->subject, s2->subject) < 0) {
! return -1;
X }
! /* s1->subject greater than s2->subject */
! if (strcmp (s1->subject, s2->subject) > 0) {
! return 1;
! }
X return 0;
X }
X
--- 683,719 ----
X char *p1;
X char *p2;
X {
! struct save_t *s1 = (struct save_t *) p1;
! struct save_t *s2 = (struct save_t *) p2;
X
! /*
! * Sort on Archive-name: part & patch otherwise Subject:
! */
! if (s1->archive != (char *) 0) {
! if (s1->part != (char *) 0) {
! if (strcmp (s1->part, s2->part) < 0) {
! return -1;
! }
! if (strcmp (s1->part, s2->part) > 0) {
! return 1;
! }
! } else {
! if (strcmp (s1->patch, s2->patch) < 0) {
! return -1;
! }
! if (strcmp (s1->patch, s2->patch) > 0) {
! return 1;
! }
! }
! } else {
! if (strcmp (s1->subject, s2->subject) < 0) {
! return -1;
! }
! if (strcmp (s1->subject, s2->subject) > 0) {
! return 1;
! }
X }
!
X return 0;
X }
X
***************
*** 723,730 ****
X return (filename);
X }
X
! if (! save_separate || ! save_archive_name || (! save[i].part && ! save[i].patch)) {
! if (! save_separate || save_num == 1) {
X sprintf (filename, "%s/%s", save[i].dir, save[i].file);
X } else {
X sprintf (filename, "%s/%s.%02d", save[i].dir, save[i].file, i+1);
--- 730,737 ----
X return (filename);
X }
X
! if (! save_archive_name || (! save[i].part && ! save[i].patch)) {
! if (save_num == 1) {
X sprintf (filename, "%s/%s", save[i].dir, save[i].file);
X } else {
X sprintf (filename, "%s/%s.%02d", save[i].dir, save[i].file, i+1);
***************
*** 780,786 ****
X }
X }
X } else {
! if (! save_separate || save_num == 1) {
X sprintf (file, "%s", save[i].file);
X } else {
X sprintf (file, "%s.%02d", save[i].file, i+1);
--- 787,793 ----
X }
X }
X } else {
! if (save_num == 1) {
X sprintf (file, "%s", save[i].file);
X } else {
X sprintf (file, "%s.%02d", save[i].file, i+1);
***************
*** 821,827 ****
X }
X }
X } else {
! if (! save_separate || save_num == 1) {
X sprintf (file, "%s", save[i].file);
X } else {
X sprintf (file, "%s.%02d", save[i].file, i+1);
--- 828,834 ----
X }
X }
X } else {
! if (save_num == 1) {
X sprintf (file, "%s", save[i].file);
X } else {
X sprintf (file, "%s.%02d", save[i].file, i+1);
***************
*** 841,848 ****
X if (save_num) {
X wait_message (txt_post_processing);
X
- set_real_uid_gid();
-
X switch (proc_type_ch) {
X case 's':
X post_process_sh ();
--- 848,853 ----
***************
*** 897,903 ****
X sprintf (file_out, "%s/tin.%05d", file_out_dir, process_id);
X
X if ((fp_out = fopen (file_out, "a+")) == NULL) {
! error_message (txt_cannot_open, file_out);
X }
X
X
--- 902,908 ----
X sprintf (file_out, "%s/tin.%05d", file_out_dir, process_id);
X
X if ((fp_out = fopen (file_out, "a+")) == NULL) {
! perror_message (txt_cannot_open, file_out);
X }
X
X
***************
*** 984,990 ****
X
X sprintf (buf, "cd %s; uudecode %s", file_out_dir, file_out);
X if (invoke_cmd (buf)) {
- set_real_uid_gid ();
X /*
X * sum file
X */
--- 989,994 ----
***************
*** 992,998 ****
X sprintf (buf, "%s %s", DEFAULT_SUM, file);
X printf ("\r\n\r\nChecksum of %s...\r\n\r\n", file);
X fflush (stdout);
! if ((fp_in = popen (buf, "r")) == NULL) {
X printf ("Cannot execute %s\r\n", buf);
X fflush (stdout);
X } else {
--- 996,1002 ----
X sprintf (buf, "%s %s", DEFAULT_SUM, file);
X printf ("\r\n\r\nChecksum of %s...\r\n\r\n", file);
X fflush (stdout);
! if ((fp_in = (FILE *) popen (buf, "r")) == NULL) {
X printf ("Cannot execute %s\r\n", buf);
X fflush (stdout);
X } else {
***************
*** 1013,1020 ****
X }
X }
X
- set_real_uid_gid ();
-
X if (pp > POST_PROC_UUDECODE) {
X sprintf (buf, "*.%s", archiver[pp].ext);
X if ((file = get_archive_file (file_out_dir, buf)) != NULL) {
--- 1017,1022 ----
***************
*** 1033,1042 ****
X file = (char *) 0;
X }
X if (! invoke_cmd (buf)) {
- set_real_uid_gid ();
X error_message ("Post processing failed", "");
X }
- set_real_uid_gid ();
X }
X }
X delete_processed_files ();
--- 1035,1042 ----
***************
*** 1122,1128 ****
X fflush (stdout);
X Raw (FALSE);
X invoke_cmd (buf);
- set_real_uid_gid ();
X Raw (TRUE);
X unlink (file_out);
X }
--- 1122,1127 ----
***************
*** 1143,1149 ****
X
X sprintf (buf, "ls -t %s/%s", dir, ext);
X
! if ((fp = popen (buf, "r")) == NULL) {
X return (char *) 0;
X }
X
--- 1142,1148 ----
X
X sprintf (buf, "ls -t %s/%s", dir, ext);
X
! if ((fp = (FILE *) popen (buf, "r")) == NULL) {
X return (char *) 0;
X }
X
Only in .: save.o
diff -rcs ../111/screen.c ./screen.c
*** ../111/screen.c Fri Mar 27 14:01:10 1992
--- ./screen.c Thu Mar 26 15:05:41 1992
***************
*** 61,66 ****
--- 61,88 ----
X }
X
X
+ void perror_message (template, str)
+ char *template;
+ char *str;
+ {
+ char str2[512];
+
+ clear_message (); /* Clear any old messages hanging around */
+
+ sprintf (str2, template, str);
+ perror (str2);
+ errno = 0;
+
+ if (cmd_line) {
+ fprintf (stderr, "\n");
+ fflush (stderr);
+ } else {
+ MoveCursor (LINES, 0);
+ sleep (2);
+ }
+ }
+
+
X void clear_message ()
X {
X if (! cmd_line) {
Only in .: screen.o
Files ../111/search.c and ./search.c are identical
Only in .: search.o
diff -rcs ../111/select.c ./select.c
*** ../111/select.c Fri Mar 27 14:01:11 1992
--- ./select.c Sun Mar 29 04:45:13 1992
***************
*** 3,9 ****
X * Module : select.c
X * Author : I.Lea & R.Skrenta
X * Created : 01-04-91
! * Updated : 22-03-92
X * Notes :
X * Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
X * You may freely copy or redistribute this software,
--- 3,9 ----
X * Module : select.c
X * Author : I.Lea & R.Skrenta
X * Created : 01-04-91
! * Updated : 28-03-92
X * Notes :
X * Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
X * You may freely copy or redistribute this software,
***************
*** 54,69 ****
X #endif
X
X group_selection_page (); /* display group selection page */
-
X set_alarm_signal (); /* set alarm signal for resync_active_file () */
X
X while (TRUE) {
X resync_active_file (); /* reread active file if alarm set */
X num_of_killed_files = 0;
X num_of_tagged_files = 0;
! ch = (char) ReadCh();
!
X resync_active_file (); /* reread active file if alarm set */
X
X if (ch > '0' && ch <= '9') {
X prompt_group_num (ch);
--- 54,71 ----
X #endif
X
X group_selection_page (); /* display group selection page */
X set_alarm_signal (); /* set alarm signal for resync_active_file () */
X
X while (TRUE) {
+ #ifdef RESYNC_ACTIVE_FILE
X resync_active_file (); /* reread active file if alarm set */
+ #endif
X num_of_killed_files = 0;
X num_of_tagged_files = 0;
! ch = (char) ReadCh ();
! #ifdef RESYNC_ACTIVE_FILE
X resync_active_file (); /* reread active file if alarm set */
+ #endif
X
X if (ch > '0' && ch <= '9') {
X prompt_group_num (ch);
***************
*** 275,280 ****
--- 277,287 ----
X draw_group_arrow ();
X break;
X
+ case ctrl('Y'): /* yank active file to see if any new news */
+ reread_active_file = TRUE;
+ resync_active_file ();
+ break;
+
X case 'B': /* bug/gripe/comment mailed to author */
X mail_bug_report ();
X #ifndef USE_CLEARSCREEN
***************
*** 339,348 ****
--- 346,359 ----
X break;
X
X case 'M': /* options menu */
+ #ifndef NO_RESYNC_ACTIVE_FILE
X time_remaining = alarm (0);
+ #endif
X change_rcfile ("", TRUE);
X group_selection_page ();
+ #ifndef NO_RESYNC_ACTIVE_FILE
X alarm (time_remaining);
+ #endif
X break;
X
X case 'N': /* goto next unread group */
Only in .: select.o
Files ../111/signal.c and ./signal.c are identical
Only in .: signal.o
Files ../111/thread.c and ./thread.c are identical
Only in .: thread.o
diff -rcs ../111/tin.1 ./tin.1
*** ../111/tin.1 Fri Mar 27 14:00:22 1992
--- ./tin.1 Sun Mar 29 12:16:20 1992
***************
*** 17,23 ****
X .if \n(mo=10 .ds mo October
X .if \n(mo=11 .ds mo November
X .if \n(mo=12 .ds mo December
! .TH TIN 1 "Version 1.1 PL1" "" "LOCAL"
X .ds ]W \*(mo \n(dy, 19\n(yr
X .nh
X .SH NAME
--- 17,23 ----
X .if \n(mo=10 .ds mo October
X .if \n(mo=11 .ds mo November
X .if \n(mo=12 .ds mo December
! .TH TIN 1 "Version 1.1 PL2" "" "LOCAL"
X .ds ]W \*(mo \n(dy, 19\n(yr
X .nh
X .SH NAME
***************
*** 316,321 ****
--- 316,325 ----
X \fB^R\fP
X Reset \fI$HOME/.newsrc\fP file.
X .TP
+ \fB^Y\fP
+ Reread the active file to see if any new news has arrived since
+ starting tin.
+ .TP
X \fB<CR>\fP
X Read current group.
X .TP
***************
*** 718,728 ****
X .TP 4
X \fBAuto save\fP
X Automatically save articles/threads by Archive-name: line in article
! header. This is useful to set ON in conjunction with 'Save separate'.
X .TP
! \fBSave separate\fP
! Save articles/threads to separate files. Set ON if saving source code.
! Set OFF if saving a conversational thread.
X .TP
X \fBMark saved read\fP
X This allows saved articles/threads to be automatically marked as
--- 722,733 ----
X .TP 4
X \fBAuto save\fP
X Automatically save articles/threads by Archive-name: line in article
! header and post process them if process type is not set to None.
X .TP
! \fBEditor offset\fP
! Set ON if the editor used for posting, follow-ups and bug reports has
! the capability of starting and positioning the cursor at a specified line
! within a file.
X .TP
X \fBMark saved read\fP
X This allows saved articles/threads to be automatically marked as
***************
*** 1072,1080 ****
X Steven Cogswell, Ned Danieley, Brent Ermlick, Carl Hage, Ed Hanway,
X Torsten Homeyer, Nelson Kading, Fritz Kleeman, Karl-Koenig Koenigsson,
X Kris Kugel, Hakan Lennestal, Clifford Luke, Michael Faurot, David MacKenzie,
! Bill Poitras, Jim Robinson, Nickolay Saukh, Rich Salz, John Sauter,
! Bart Sears, Karl-Olav Serrander, Doug Sewell, Cliff Stanford,
! Adri Verhoef, Cary Whitney
X .PP
X I wish to thank the following people for bug reports/comments:
X
--- 1077,1085 ----
X Steven Cogswell, Ned Danieley, Brent Ermlick, Carl Hage, Ed Hanway,
X Torsten Homeyer, Nelson Kading, Fritz Kleeman, Karl-Koenig Koenigsson,
X Kris Kugel, Hakan Lennestal, Clifford Luke, Michael Faurot, David MacKenzie,
! Bill Poitras, Jim Robinson, Stephen Roseman, Nickolay Saukh,
! Rich Salz, John Sauter, Bart Sears, Karl-Olav Serrander, Doug Sewell,
! Cliff Stanford, Adri Verhoef, Cary Whitney
X .PP
X I wish to thank the following people for bug reports/comments:
X
***************
*** 1082,1089 ****
X Georg Biehler, Ian Brown, Andreas Brosig, Leila Burrell-Davis, Tom Czarnik,
X David Donovan, Peter Dressler, Gerhard Ermer, Hugh Fader, Joachim Feld,
X Paul Fox, Bernhard Gmelch, Viet Hoang, Andy Jackson, Joe Johnson, Cyrill Jung,
! Hans-Juergen Knopp, Per Lindqvist, Bob Lukas, Phillip Molloy, Toni Metz,
! Greg Miller, Klaus Neuberger, Otto Niesser, Reiner Oelhaf, Wolf Paul,
X John Palkovic, Andrew Phillips, Ted Richards, Fredy Schwatz, Bernd Schwerin,
X Klamer Schutte, Chris Smith, Daniel Smith, Steve Spearman, Hironobu Takahashi,
X Sven Werner
--- 1087,1094 ----
X Georg Biehler, Ian Brown, Andreas Brosig, Leila Burrell-Davis, Tom Czarnik,
X David Donovan, Peter Dressler, Gerhard Ermer, Hugh Fader, Joachim Feld,
X Paul Fox, Bernhard Gmelch, Viet Hoang, Andy Jackson, Joe Johnson, Cyrill Jung,
! Hans-Juergen Knopp, Bernhard Kroenung, Per Lindqvist, Bob Lukas, Phillip Molloy,
! Toni Metz, Greg Miller, Klaus Neuberger, Otto Niesser, Reiner Oelhaf, Wolf Paul,
X John Palkovic, Andrew Phillips, Ted Richards, Fredy Schwatz, Bernd Schwerin,
X Klamer Schutte, Chris Smith, Daniel Smith, Steve Spearman, Hironobu Takahashi,
X Sven Werner
Only in .: tin.diff
diff -rcs ../111/tin.h ./tin.h
*** ../111/tin.h Fri Mar 27 14:01:16 1992
--- ./tin.h Sun Mar 29 12:33:05 1992
***************
*** 3,9 ****
X * Module : tin.h
X * Author : I.Lea & R.Skrenta
X * Created : 01-04-91
! * Updated : 21-03-92
X * Notes : #include files, #defines & struct's
X * Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
X * You may freely copy or redistribute this software,
--- 3,9 ----
X * Module : tin.h
X * Author : I.Lea & R.Skrenta
X * Created : 01-04-91
! * Updated : 29-03-92
X * Notes : #include files, #defines & struct's
X * Copyright : (c) Copyright 1991-92 by Iain Lea & Rich Skrenta
X * You may freely copy or redistribute this software,
***************
*** 16,24 ****
X #include <signal.h>
X #include <sys/types.h>
X #include <pwd.h>
- #if !defined(MINIX) && !defined(__convexc__)
- # include <memory.h>
- #endif
X #include <ctype.h>
X #include <time.h>
X #include <sys/stat.h>
--- 16,21 ----
***************
*** 27,44 ****
X # include <strings.h>
X # include <fcntl.h>
X #else
- # include <string.h>
X # ifndef MINIX
X # include <malloc.h>
X # else
X # include <stdlib.h>
X # endif
X #endif
X
X #ifdef M_XENIX
X # include <prototypes.h>
X #endif
X
X /*
X * Needed for resizing under an xterm
X */
--- 24,49 ----
X # include <strings.h>
X # include <fcntl.h>
X #else
X # ifndef MINIX
X # include <malloc.h>
X # else
X # include <stdlib.h>
X # endif
+ # include <string.h>
X #endif
X
+ #if !defined(MINIX) && !defined(__convexc__)
+ # include <memory.h>
+ #endif
+
X #ifdef M_XENIX
X # include <prototypes.h>
X #endif
X
+ #ifdef SVR4
+ # include <locale.h>
+ #endif
+
X /*
X * Needed for resizing under an xterm
X */
***************
*** 145,150 ****
--- 150,156 ----
X # define DEFAULT_MAILER "/usr/bin/mailx"
X # endif
X # ifdef RS6000
+ # define DEFAULT_MAILER "/usr/bin/mail"
X # define DEFAULT_PRINTER "/bin/lp"
X # endif
X # ifdef UNIXPC
***************
*** 385,394 ****
X * article number in spool directory for group
X *
X * article.thread:
! * initially -1
! * points to another arts[] (struct article_t): zero and up
X * -2 means article has expired (wasn't found in file search
X * of spool directory for the group)
X *
X * article.inthread:
X * FALSE for the first article in a thread, TRUE for all
--- 391,400 ----
X * article number in spool directory for group
X *
X * article.thread:
! * -1 initial default
X * -2 means article has expired (wasn't found in file search
X * of spool directory for the group)
+ * >=0 points to another arts[] (struct article_t)
X *
X * article.inthread:
X * FALSE for the first article in a thread, TRUE for all
diff -rcs ../111/tin.nrf ./tin.nrf
*** ../111/tin.nrf Fri Mar 27 14:00:28 1992
--- ./tin.nrf Sun Mar 29 16:57:22 1992
***************
*** 314,326 ****
X
X ^^RR Reset $_H_O_M_E/._n_e_w_s_r_c file.
X
X <<CCRR>> Read current group.
X
X <<TTAABB>> View next unread group.
X
- BB Mail a bug report or comment to the author. This is the
- best way of getting bugs fixed and features
- added/changed.
X
X
X
--- 314,326 ----
X
X ^^RR Reset $_H_O_M_E/._n_e_w_s_r_c file.
X
+ ^^YY Reread the active file to see if any new news has arrived
+ since starting tin.
+
X <<CCRR>> Read current group.
X
X <<TTAABB>> View next unread group.
X
X
X
X
***************
*** 335,340 ****
--- 335,344 ----
X
X
X
+ BB Mail a bug report or comment to the author. This is the
+ best way of getting bugs fixed and features
+ added/changed.
+
X cc Mark current group as all read and goto next group in
X group selection list.
X
***************
*** 383,392 ****
X
X yy The first time this command is called it will yank in all
X groups from /_u_s_r/_l_o_c_a_l/_n_e_w_s/_a_c_t_i_v_e that are not in
- $_H_O_M_E/._n_e_w_s_r_c. After any groups have been
- subscribed/unsubscribed to, this command if pressed again
- will reread $_H_O_M_E/._n_e_w_s_r_c and display only subscribed
- groups.
X
X
X
--- 387,392 ----
***************
*** 401,406 ****
--- 401,411 ----
X
X
X
+ $_H_O_M_E/._n_e_w_s_r_c. After any groups have been
+ subscribed/unsubscribed to, this command if pressed again
+ will reread $_H_O_M_E/._n_e_w_s_r_c and display only subscribed
+ groups.
+
X YY Reread group list from $_H_O_M_E/._n_e_w_s_r_c file.
X
X zz Mark all articles in the current group as unread.
***************
*** 448,462 ****
X HH help screen of context sensitive help about group index
X level.
X
- II Toggle inverse video.
X
- KK Mark article/thread as read and advance to next unread
- article/thread.
X
X
X
-
-
X NEWS-OS Release 4.1R 7
X
X
--- 453,462 ----
***************
*** 467,472 ****
--- 467,477 ----
X
X
X
+ II Toggle inverse video.
+
+ KK Mark article/thread as read and advance to next unread
+ article/thread.
+
X ll List the author of each response in current thread and
X enter thread selection level.
X
***************
*** 515,528 ****
X
X zz Mark current article as unread.
X
- ZZ Mark current thread as unread.
X
- // Search forward for specified subject.
X
X
-
-
-
X 8 Release 4.1R NEWS-OS
X
X
--- 520,528 ----
***************
*** 533,538 ****
--- 533,542 ----
X
X
X
+ ZZ Mark current thread as unread.
+
+ // Search forward for specified subject.
+
X ?? Search backward for specified subject.
X
X -- Show last message.
***************
*** 582,594 ****
X
X <<CCRR>> Goto next base article.
X
- <<TTAABB>> Goto next unread article.
X
- aa Author forward search.
X
X
-
-
X NEWS-OS Release 4.1R 9
X
X
--- 586,594 ----
***************
*** 599,604 ****
--- 599,608 ----
X
X
X
+ <<TTAABB>> Goto next unread article.
+
+ aa Author forward search.
+
X AA Author backward search.
X
X BB Mail a bug report or comment to the author. This is the
***************
*** 648,660 ****
X
X qq Quit tin.
X
- rr Reply through mail to author.
X
- RR Reply through mail to author with a copy of the current
X
X
-
-
X 10 Release 4.1R NEWS-OS
X
X
--- 652,660 ----
***************
*** 665,670 ****
--- 665,673 ----
X
X
X
+ rr Reply through mail to author.
+
+ RR Reply through mail to author with a copy of the current
X article included.
X
X ss Save current article / thread / articles matching pattern
***************
*** 704,726 ****
X
X AAuuttoo ssaavvee
X Automatically save articles/threads by Archive-name: line in
! article header. This is useful to set ON in conjunction with
! 'Save separate'.
X
! SSaavvee sseeppaarraattee
! Save articles/threads to separate files. Set ON if saving
! source code. Set OFF if saving a conversational thread.
X
X MMaarrkk ssaavveedd rreeaadd
X This allows saved articles/threads to be automatically marked
- as having been read.
X
- KKiillll aarrttiicclleess
- This allows the user to kill articles that match entries in the
X
X
X
-
X NEWS-OS Release 4.1R 11
X
X
--- 707,726 ----
X
X AAuuttoo ssaavvee
X Automatically save articles/threads by Archive-name: line in
! article header and post process them if process type is not set
! to None.
X
! EEddiittoorr ooffffsseett
! Set ON if the editor used for posting, follow-ups and bug
! reports has the capability of starting and positioning the
! cursor at a specified line within a file.
X
X MMaarrkk ssaavveedd rreeaadd
X This allows saved articles/threads to be automatically marked
X
X
X
X
X NEWS-OS Release 4.1R 11
X
X
***************
*** 731,736 ****
--- 731,740 ----
X
X
X
+ as having been read.
+
+ KKiillll aarrttiicclleess
+ This allows the user to kill articles that match entries in the
X kill file $_H_O_M_E/._t_i_n/_k_i_l_l.
X
X DDrraaww aarrrrooww
***************
*** 779,792 ****
X -unpacking of multi-part shell archives.
X -unpacking of multi-part uuencoded files.
X -unpacking of multi-part uuencoded files that produce a
- *.zoo archive whose contents is listed.
- -unpacking of multi-part uuencoded files that produce a
- *.zoo archive whose contents is extracted.
X
X
X
X
-
X 12 Release 4.1R NEWS-OS
X
X
--- 783,792 ----
***************
*** 797,802 ****
--- 797,806 ----
X
X
X
+ *.zoo archive whose contents is listed.
+ -unpacking of multi-part uuencoded files that produce a
+ *.zoo archive whose contents is extracted.
+
X SSoorrtt aarrttiicclleess bbyy
X This specifies how articles should be sorted. The following
X sort types are allowed:
***************
*** 845,854 ****
X
X Use the 'w' command to post an article to a newsgroup. After
X entering the post subject the default editor (ie. vi) or the editor
- specified by the $VISUAL environment variable will be started and
- the article can be entered. To crosspost articles simply add a
- comma and the name of the newsgroup(s) to the end of the
- Newsgroups: line at the beginning of the article. After saving and
X
X
X
--- 849,854 ----
***************
*** 863,868 ****
--- 863,872 ----
X
X
X
+ specified by the $VISUAL environment variable will be started and
+ the article can be entered. To crosspost articles simply add a
+ comma and the name of the newsgroup(s) to the end of the
+ Newsgroups: line at the beginning of the article. After saving and
X exiting the editor you are asked if you wish to a)bort posting the
X article, e)dit the article again or p)ost the article to the
X specified newsgroup(s).
***************
*** 911,920 ****
X parts etc). A default process type can be set by the 'Process
X type:' in the 'M' options menu.
X
- AAUUTTOOMMAATTIICC MMAAIILLIINNGG AANNDD SSAAVVIINNGG NNEEWW NNEEWWSS
- Tin allows new/unread news articles to be mailed (-M option)/saved
- (-S option) in batch mode for later reading. Useful when going on
- holiday and you don't want to return and find that expire has
X
X
X
--- 915,920 ----
***************
*** 929,934 ****
--- 929,938 ----
X
X
X
+ AAUUTTOOMMAATTIICC MMAAIILLIINNGG AANNDD SSAAVVIINNGG NNEEWW NNEEWWSS
+ Tin allows new/unread news articles to be mailed (-M option)/saved
+ (-S option) in batch mode for later reading. Useful when going on
+ holiday and you don't want to return and find that expire has
X removed a whole load of unread articles. Best to run from crontab
X everyday while away, after which you will be mailed a report of
X which articles were mailed/saved from which newsgroups and the
***************
*** 977,986 ****
X specified and the file /_e_t_c/_n_n_t_p_s_e_r_v_e_r does not exist.
X
X OORRGGAANNIIZZAATTIIOONN
- Set the mail header field Organization: to the contents of the
- variable instead of the system default. This variable has
- precedence over the file $_H_O_M_E/._t_i_n/_o_r_g_a_n_i_z_a_t_i_o_n that may also
- contain an organization string.
X
X
X
--- 981,986 ----
***************
*** 995,1000 ****
--- 995,1005 ----
X
X
X
+ Set the mail header field Organization: to the contents of the
+ variable instead of the system default. This variable has
+ precedence over the file $_H_O_M_E/._t_i_n/_o_r_g_a_n_i_z_a_t_i_o_n that may also
+ contain an organization string.
+
X RREEPPLLYYTTOO
X Set the mail header field Reply-To: to the return address
X specified by the variable. This is useful if the machine is
***************
*** 1041,1056 ****
X offer a default choice that the cursor is positioned on. By
X pressing <CR> the default value is taken.
X
- When tin is run in an xterm window it will resize itself each time
- the xterm is resized.
X
- Tin will reread the active file at set intervals to show any new
- news.
X
X
X
X
-
X 16 Release 4.1R NEWS-OS
X
X
--- 1046,1056 ----
***************
*** 1061,1066 ****
--- 1061,1072 ----
X
X
X
+ When tin is run in an xterm window it will resize itself each time
SHAR_EOF
true || echo 'restore of tin.patch112 failed'
fi
echo 'End of tin part 3'
echo 'File tin.patch112 is continued in part 4'
echo 4 > _shar_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...