home *** CD-ROM | disk | FTP | other *** search
- Subject: v22i056: NN Newsreader, release 6.4, Patch1
- Newsgroups: comp.sources.unix
- Approved: rsalz@uunet.UU.NET
- X-Checksum-Snefru: 7430c72b c041cf0e 8c9bea34 6734af79
-
- Submitted-by: "Kim F. Storm" <storm@texas.dk>
- Posting-number: Volume 22, Issue 56
- Archive-name: nn6.4/patch1
-
-
- This is an official patch to nn release 6.4
- -------------------------------------------
-
- PATCH #1
-
- Priority: HIGH
-
-
- These patches fixes a number of bugs in the initial 6.4 release of nn
- as described in the updated RELEASE_NOTES file (read that for details
- about this patch). Thanks to all who reported bugs and provided fixes.
-
- To apply this patch, use nn's :patch command, or run this command from
- the shell in the root of the nn source tree:
- patch -p0 < this-article
- ----
-
- Title: Init file processing writes to string constant.
- From: Sean Casey <sean@ms.uky.edu>
- David Heath <dave@boingo.med.jhu.edu>
-
- Title: nnmaster -l always quits.
- From: Sean Casey <sean@ms.uky.edu>
- David Heath <dave@boingo.med.jhu.edu>
- syd@dsinc.dsi.com (Syd Weinstein)
-
- Title: Database inconsistency always reported for some groups
- From: syd@dsinc.dsi.com (Syd Weinstein)
-
- Title: Unsubscribed groups can interfere with merged groups.
- From: Robert.Stockton@ELROND.GANDALF.CS.CMU.EDU
-
- Title: Y (overview) in "nn -X" mode doesn't show unsubscribed groups.
- From: KFS
-
- Title: 'y' response to Abort? is not recognized
- From: Mark Nagel <nagel@ics.UCI.EDU>
-
- Title: Cannot set "included-mark" to blanks
- From: beldar@mips.com (Gardner Cohen)
-
- Title: Some lines are ignored in manuals
- From: Peter Andersen <datpete@daimi.dk>
-
- Title: Escape codes are always turned into ^[ form.
- From: Piet Beertema <piet@cwi.nl>
-
- Title: Bug in generation of message-id line
- From: Pekka Kyt|laakso <netmgr@csc.fi> + fix
-
- Title: G command may leave group "active".
- From: Greg Onufer <exodus@cherrs2.Eng.Sun.COM>
- Scott Boyd <scott@Futures.COM>
-
- Title: nngrab uses egrep -i
- From: pete@eleazar.dartmouth.edu (Pete Schmitt)
-
- Title: Folder subarticles span to end of file (only NNTP).
- From: Robert.Stockton@ELROND.GANDALF.CS.CMU.EDU
-
- Title: help commands shows wrong info for new commands
- From: netmgr@csc.FI (Pekka Kytolaakso)
-
- Title: Groups may be removed from database due to disk full. (nntp)
- From: KFS
-
- ++Kim Storm
-
- *** ./LAST/admin.c Sat May 5 14:11:43 1990
- --- admin.c Thu May 10 11:49:29 1990
- ***************
- *** 356,361 ****
- --- 356,369 ----
- data_offset = ftell(data);
- if (data_offset != gh->data_write_offset)
- valerr(("DATA OFFSET %ld != %ld", (long)gh->data_write_offset, (long)data_offset), 9);
- +
- + while (++cur_article <= gh->last_db_article) {
- + if (!db_read_offset(ix, &next_offset))
- + valerr(("NO INDEX FOR ARTICLE %ld", (long)cur_article), 12);
- + if (data_offset != next_offset)
- + valerr(("OFFSET ERROR: %ld: %ld != %ld", (long)cur_article, (long)data_offset, (long)next_offset), 13);
- + }
- +
- data_offset = ftell(ix);
- if (data_offset != gh->index_write_offset)
- valerr(("INDEX OFFSET %ld != %ld", (long)gh->index_write_offset, (long)data_offset), 10);
- *** ./LAST/answer.c Wed May 2 10:35:56 1990
- --- answer.c Wed May 9 19:20:03 1990
- ***************
- *** 70,76 ****
-
- fprintf(t, "Path: %s!%s\n", host, user_name());
- fprintf(t, "Date: %s %s %s %s GMT\n", date+8, date+4, date+22, date+11);
- ! fprintf(t, "Message-ID: <%s.%ld@%s>\n", user_name, (long)now, host);
- ed_line += 3;
- }
- #endif
- --- 70,76 ----
-
- fprintf(t, "Path: %s!%s\n", host, user_name());
- fprintf(t, "Date: %s %s %s %s GMT\n", date+8, date+4, date+22, date+11);
- ! fprintf(t, "Message-ID: <%s.%ld@%s>\n", user_name(), (long)now, host);
- ed_line += 3;
- }
- #endif
- ***************
- *** 202,208 ****
- --- 202,212 ----
- FILE *f;
- char *name, *str;
- {
- + int xport = (*name == '*');
- +
- + if (xport) name++;
- fprintf(f, "%s='%s'\n", name, str != NULL ? str : "");
- + if (xport) fprintf(f, "export %s\n", name);
- }
-
- static aux_param_int(f, name, i)
- ***************
- *** 257,263 ****
- aux_param_str(param, "DFLT_ANSW", response_dflt_answer);
-
- if (current_group != NULL) {
- ! aux_param_str(param, "G", current_group->group_name);
- if (ah == NULL)
- fn = NULL;
- else
- --- 261,267 ----
- aux_param_str(param, "DFLT_ANSW", response_dflt_answer);
-
- if (current_group != NULL) {
- ! aux_param_str(param, "*G", current_group->group_name);
- if (ah == NULL)
- fn = NULL;
- else
- ***************
- *** 267,273 ****
- else
- #endif
- fn = group_path_name;
- ! aux_param_str(param, "A", fn != NULL ? fn : "");
- }
-
- /*
- --- 271,277 ----
- else
- #endif
- fn = group_path_name;
- ! aux_param_str(param, "*A", fn != NULL ? fn : "");
- }
-
- /*
- *** ./LAST/articles.c Thu Apr 26 19:56:03 1990
- --- articles.c Thu May 10 11:09:46 1990
- ***************
- *** 360,365 ****
- --- 360,366 ----
- if (ah->a_number > last_article) break;
-
- if (flags & ACC_SPEW_MODE) {
- + fold_string(db_data.dh_subject);
- printf("%x:%s\n", (int)(gh->group_num), db_data.dh_subject);
- continue;
- }
- *** ./LAST/aux.sh Wed Apr 25 21:31:59 1990
- --- aux.sh Wed May 9 12:29:27 1990
- ***************
- *** 94,100 ****
- ${AWK} 'END{printf "Confirm abort: (y) "}' < /dev/null
- read act
- case "$act" in
- ! ""|"y*") rm -f $WORK $COPY ;
- exit 22 ;;
- esac
- ;;
- --- 94,100 ----
- ${AWK} 'END{printf "Confirm abort: (y) "}' < /dev/null
- read act
- case "$act" in
- ! ""|y*) rm -f $WORK $COPY ;
- exit 22 ;;
- esac
- ;;
- *** ./LAST/collect.c Wed May 2 00:03:36 1990
- --- collect.c Thu May 10 11:20:31 1990
- ***************
- *** 469,478 ****
- }
-
- unblock_group:
- ! if (temp > 0 || (gh->master_flag & M_BLOCKED)) {
- ! gh->master_flag &= ~(M_EXPIRE | M_BLOCKED);
- ! db_write_group(gh);
- ! }
- }
-
- if (col_article_count > 0)
- --- 469,476 ----
- }
-
- unblock_group:
- ! gh->master_flag &= ~(M_EXPIRE | M_BLOCKED);
- ! db_write_group(gh);
- }
-
- if (col_article_count > 0)
- *** ./LAST/db.c Sat May 5 18:25:56 1990
- --- db.c Tue May 8 13:36:37 1990
- ***************
- *** 6,11 ****
- --- 6,12 ----
-
- #include "config.h"
- #include "db.h"
- + #include <errno.h>
-
- import char
- *master_directory, *db_directory, *db_data_directory, *news_directory;
- ***************
- *** 558,563 ****
- --- 559,565 ----
- char d_or_x;
- int mode;
- {
- + FILE *f;
- char data_file[FILENAME];
-
- db_data_path(data_file, gh, d_or_x);
- ***************
- *** 564,572 ****
-
- if (mode == -1) {
- unlink(data_file);
- ! return (FILE *)NULL;
- ! } else
- ! return open_file(data_file, mode);
- }
-
-
- --- 566,580 ----
-
- if (mode == -1) {
- unlink(data_file);
- ! f = NULL;
- ! } else {
- ! f = open_file(data_file, (mode & ~MUST_EXIST));
- ! if (f == NULL && (mode & MUST_EXIST))
- ! sys_error("%s (%d): cannot open '%c' file (mode=%x, errno=%d)",
- ! gh->group_name, (int)(gh->group_num), d_or_x,
- ! mode, errno);
- ! }
- ! return f;
- }
-
-
- *** ./LAST/doc/RELEASE_NOTES Sat May 5 15:56:49 1990
- --- doc/RELEASE_NOTES Thu May 10 14:45:29 1990
- ***************
- *** 1,6 ****
- ! Release 6.4.0 known problems
- ! ----------------------------
-
- Prog: nn
- Title: G= in merged groups
-
- --- 1,13 ----
- ! Known problems in release 6.4
- ! -----------------------------
-
- + Prog: nnmaster - nntp
- + Title: nnmaster may hang if nntp server dies.
- + From: Rene Seindal <seindal@diku.dk>
- +
- + Keep-alive must be set on the nntp socket to be able to notify
- + the nnmaster that the server has died (via sigpipe).
- +
- Prog: nn
- Title: G= in merged groups
-
- ***************
- *** 103,105 ****
- --- 110,254 ----
- Title: Shell layers are not supported.
-
- ^Z is eaten by nn so shell layers don't work.
- +
- + Prog: nn
- + Title: Init file processing writes to string constant.
- + From: Sean Casey <sean@ms.uky.edu>
- + David Heath <dave@boingo.med.jhu.edu>
- + Fixed: Patch #1 [init.c]
- +
- + If one doesn't use "-fwritable-strings" with gcc, nnadmin core
- + dumps because of some code in the process init file section.
- + It tries to write to the string "init,", which may be in the
- + text segment.
- +
- + Prog: nnmaster
- + Title: nnmaster -l always quits.
- + From: Sean Casey <sean@ms.uky.edu>
- + David Heath <dave@boingo.med.jhu.edu>
- + syd@dsinc.dsi.com (Syd Weinstein)
- + Fixed: Patch #1 [master.c]
- +
- + Anytime I give the -l flag to nnmaster, it quits with:
- + E: May 7 15:05 (M): Incomplete MASTER file
- +
- + Prog: nnmaster
- + Title: Database inconsistency always reported for some groups
- + From: syd@dsinc.dsi.com (Syd Weinstein)
- + Fixed: Patch #1 [admin.c collect.c]
- +
- + Some groups always reports inconsistencies even after recollection.
- + (It turns out that if the highest numbered article(s) in a group does
- + not exist, the validation of the index fails, and furthermore, if
- + only non-existing articles are "collected" in a group by nnmaster,
- + the group header is not saved in the database. ++Kim)
- +
- + Prog: nn
- + Title: Unsubscribed groups can interfere with merged groups.
- + From: Robert.Stockton@ELROND.GANDALF.CS.CMU.EDU
- + Fixed: Patch #1 [sequence.c]
- +
- + Unsubscribed groups foul up merging of the form "foo*,". The
- + "Next Group" command may show you some of the merged groups again.
- +
- + Prog: nn
- + Title: Remapping keys may interfere with Junk command.
- + From: Robert.Stockton@ELROND.GANDALF.CS.CMU.EDU
- +
- + Menu mode macros are invoked when the appropriate keystrokes are used
- + in the Junk command. For example, when I rebound 'N' in menu mode to
- + a macro, it interfered with Junking of "Leave-Next" articles.
- +
- + Prog: nn
- + Title: Y (overview) in "nn -X" mode doesn't show unsubscribed groups.
- + Fixed: Patch #1 [group.c]
- +
- + "nn -X" includes unsubscribed groups in the sequence, but they are
- + not shown on the group overview.
- +
- + Prog: aux
- + Title: 'y' response to Abort? is not recognized
- + From: Mark Nagel <nagel@ics.UCI.EDU>
- + Fixed: Patch #1 [aux.sh]
- +
- + If you try to abort a posting, and you actually type 'y' and
- + return, it doesn't work.
- +
- + Prog: nn
- + Title: Cannot set "included-mark" to blanks
- + From: beldar@mips.com (Gardner Cohen)
- + Fixed: Patch #1 [init.c] -- need to put \ before first space.
- +
- + My preferred indented prefix is three blanks, which I haven't been
- + able to set in my init in the past (is it possible now?).
- +
- + Prog: manuals
- + Title: Some lines are ignored
- + From: Peter Andersen <datpete@daimi.dk>
- + Fixed: Patch #1 [nn.1 nnmaster.8]
- +
- + Some text lines in the manuals contain a period at the beginning
- + of a line; this is mis-interpreted as an nroff command.
- +
- + Prog: nn
- + Title: Escape codes are always turned into ^[ form.
- + From: Piet Beertema <piet@cwi.nl>
- + Fixed: Patch #1 [more.c variable.c nn.1] -- new trusted-escape-codes var.
- +
- + I encountered problems with both rn and nn, which wouldn't properly
- + display in kanji: the ESC char was "escaped", i.e. displayed as ^[
- + But kanji encoding uses the ESC, so escaping them obviously messes up
- + things. [You must fix inews also - it normally discards ESC]
- +
- + Prog: nn
- + Title: Bug in generation of message-id line
- + From: Pekka Kyt|laakso <netmgr@csc.fi> + fix
- + Fixed: Patch #1 [answer.c]
- +
- + user_name is "called" without ().
- +
- + Prog: nn
- + Title: G command may leave group "active".
- + From: Greg Onufer <exodus@cherrs2.Eng.Sun.COM>
- + Scott Boyd <scott@Futures.COM>
- + Fixed: Patch #1 [group.c]
- +
- + G group @ with no archive file leaved group active.
- + group-group command fails with "groupname is an active group" on
- + 2nd attempt, if no articles were found on 1st attempt.
- +
- + Prog: nngrab
- + Title: nngrab uses egrep -i
- + From: pete@eleazar.dartmouth.edu (Pete Schmitt)
- + Fixed: Patch #1 [articles.c nngrab.sh]
- +
- + nngrab uses egrep with a -i option. This option is only valid for
- + grep and fgrep on BSD 4.3 -- i.e. it is not portable.
- +
- + Prog: nn
- + Title: Folder subarticles span to end of file (only NNTP).
- + From: Robert.Stockton@ELROND.GANDALF.CS.CMU.EDU
- + Fixed: Patch #1 [news.c]
- +
- + When you use the 'G' command to view an article in a folder, it shows
- + you the entire contents of the folder from that point rather than the
- + single article requested. (This only happens with NNTP ++Kim)
- +
- + Prog: nn
- + Title: help commands shows wrong info for new commands
- + From: netmgr@csc.FI (Pekka Kytolaakso)
- + Fixed: Patch #1 [help.commands]
- +
- + There's an error in the file help commands. It still uses 'L' as the
- + 'change layout' key (in selection mode) and dosn't say anything about
- + the news use of the L key.
- +
- + Prog: nnmaster - nntp_get_active
- + Title: Groups may be removed from database due to disk full.
- + From: KFS
- + Fixed: Patch #1 [nntp.c]
- +
- + If the disk runs full while the active file is fetched from an nntp
- + server, the incomplete active file is believed to be the complete
- + active file. This causes nnmaster to remove the groups which didn't
- + get written to the active file.
- *** ./LAST/group.c Wed May 2 10:35:56 1990
- --- group.c Wed May 9 18:50:20 1990
- ***************
- *** 330,349 ****
- n = 1; /* must unsort articles */
- if (mg_head != NULL) gh = mg_head;
-
- ! if (!no_update) {
- ! do {
- ! if (mask == NULL && (access_mode & ACC_ALSO_READ_ARTICLES) == 0
- ! && first_art < 0) {
- ! if (menu_cmd != ME_NO_ARTICLES) gh->group_flag &= ~G_NEW;
- ! if ((gh->group_flag & G_UNSUBSCRIBED) == 0 || keep_unsub_long) {
- ! if (n) sort_articles(0);
- ! n = 0;
- ! update_rc(gh);
- ! }
- ! }
- ! gh->current_first = 0;
- ! } while (mg_head != NULL && (gh = gh->merge_with) != NULL);
- ! }
-
- killed_articles = o_killed;
- restore_variables();
- --- 330,345 ----
- n = 1; /* must unsort articles */
- if (mg_head != NULL) gh = mg_head;
-
- ! do {
- ! gh->current_first = 0;
- ! if (mask != NULL) continue;
- ! if (access_mode & ACC_ALSO_READ_ARTICLES || first_art >= 0) continue;
- ! if (menu_cmd != ME_NO_ARTICLES) gh->group_flag &= ~G_NEW;
- ! if (gh->group_flag & G_UNSUBSCRIBED && !keep_unsub_long) continue;
- ! if (n) sort_articles(0);
- ! n = 0;
- ! update_rc(gh);
- ! } while (mg_head != NULL && (gh = gh->merge_with) != NULL);
-
- killed_articles = o_killed;
- restore_variables();
- ***************
- *** 744,751 ****
- release_memory(&mem_marker);
-
- goto_exit:
- ! if (gh != orig_group)
- if (orig_group) init_group(orig_group);
-
- m_endinput();
- return menu_cmd;
- --- 740,749 ----
- release_memory(&mem_marker);
-
- goto_exit:
- ! if (gh != orig_group) {
- ! gh->current_first = 0;
- if (orig_group) init_group(orig_group);
- + }
-
- m_endinput();
- return menu_cmd;
- ***************
- *** 924,931 ****
- Loop_Groups_Sequence(gh) {
- if (gh->group_flag & G_FAKED) continue;
- if (gh->master_flag & M_NO_DIRECTORY) continue;
- ! if (gh != current_group)
- ! if ((gh->group_flag & G_COUNTED) == 0) continue;
- if (disp_group(gh) < 0) break;
- }
- } else
- --- 922,932 ----
- Loop_Groups_Sequence(gh) {
- if (gh->group_flag & G_FAKED) continue;
- if (gh->master_flag & M_NO_DIRECTORY) continue;
- ! if (gh != current_group) {
- ! if (gh->unread_count <= 0) continue;
- ! if (gh->group_flag & G_UNSUBSCRIBED && !also_unsub_groups)
- ! continue;
- ! }
- if (disp_group(gh) < 0) break;
- }
- } else
- *** ./LAST/help/help.commands Mon Apr 23 18:32:36 1990
- --- help/help.commands Thu May 10 13:05:41 1990
- ***************
- *** 21,28 ****
- help ? ? online help
- junk-articles J change marking of articles on the menu
- kill-select K K kill/select handling
- ! layout L change menu layout
- leave-article l l leave (mark) article for later use
- line+1 down CR next menu line/scroll one line
- line-1 up previous menu line
- line=@ g goto specific line
- --- 21,29 ----
- help ? ? online help
- junk-articles J change marking of articles on the menu
- kill-select K K kill/select handling
- ! layout " change menu layout
- leave-article l l leave (mark) article for later use
- + leave-next L L permanently mark article for later use
- line+1 down CR next menu line/scroll one line
- line-1 up previous menu line
- line=@ g goto specific line
- *** ./LAST/init.c Fri Apr 27 20:23:00 1990
- --- init.c Wed May 9 17:48:37 1990
- ***************
- *** 53,58 ****
- --- 53,59 ----
- if (cmd == NULL) return cmd;
-
- while (*cmd && isspace(*cmd)) cmd++;
- + if (*cmd == '\\' && isspace(cmd[1])) cmd++;
- if (*cmd == NUL || *cmd == NL) return NULL;
-
- return cmd;
- ***************
- *** 172,177 ****
- --- 173,180 ----
- fclose(init);
- }
-
- + static char dflt_init_files[] = ",init";
- +
- visit_init_file(only_seq, first_arg)
- int only_seq;
- char *first_arg;
- ***************
- *** 183,189 ****
- if (first_arg[2] == NUL) return;
- first_arg += 2;
- } else
- ! first_arg = ",init";
-
- in_init = 1;
- while (first_arg) {
- --- 186,192 ----
- if (first_arg[2] == NUL) return;
- first_arg += 2;
- } else
- ! first_arg = dflt_init_files;
-
- in_init = 1;
- while (first_arg) {
- ***************
- *** 540,546 ****
-
- clrdisp();
-
- ! printf("Available: %ld - %ld (unread %ld)\n\n",
- (long)(gh->first_db_article), (long)(gh->last_db_article),
- (long)(gh->unread_count));
- printf(".newsrc:\n\r>%s\r<%s\n\rselect:\n\r>%s\r<%s\n\r",
- --- 543,549 ----
-
- clrdisp();
-
- ! printf("Available: %ld - %ld (unread %ld)\n\n\r",
- (long)(gh->first_db_article), (long)(gh->last_db_article),
- (long)(gh->unread_count));
- printf(".newsrc:\n\r>%s\r<%s\n\rselect:\n\r>%s\r<%s\n\r",
- *** ./LAST/man/nn.1.A Sat May 5 14:19:09 1990
- --- man/nn.1.A Thu May 10 14:53:46 1990
- ***************
- *** 878,884 ****
- \fBRelated variables\fP:
- case-fold-search, compress, data-bits, date, header-lines,
- mark-overlap, monitor, overlap, scroll-clear-page, stop,
- ! wrap-header-margin.
- .SH PREVIEWING ARTICLES IN SELECTION MODE
- In selection mode, it is possible to read a specific article on the
- menu without entering reading mode for all the selected articles on
- --- 878,884 ----
- \fBRelated variables\fP:
- case-fold-search, compress, data-bits, date, header-lines,
- mark-overlap, monitor, overlap, scroll-clear-page, stop,
- ! trusted-escape-codes, wrap-header-margin.
- .SH PREVIEWING ARTICLES IN SELECTION MODE
- In selection mode, it is possible to read a specific article on the
- menu without entering reading mode for all the selected articles on
- *** ./LAST/man/nn.1.C Sat May 5 14:19:09 1990
- --- man/nn.1.C Thu May 10 14:53:46 1990
- ***************
- *** 700,706 ****
- is done by simple subtracting the first unread article number from the
- total number of articles in each group. This is very fast, and fairly
- accurate but it may be a bit too large. If not set, each line in
- ! .newsrc will be interpreted to count every unread article, thus giving
- a very accurate number. This variable is also used by \fInncheck\fP.
- .TP
- \fBquick-save\fP (boolean, default false)
- --- 700,706 ----
- is done by simple subtracting the first unread article number from the
- total number of articles in each group. This is very fast, and fairly
- accurate but it may be a bit too large. If not set, each line in
- ! \&.newsrc will be interpreted to count every unread article, thus giving
- a very accurate number. This variable is also used by \fInncheck\fP.
- .TP
- \fBquick-save\fP (boolean, default false)
- ***************
- *** 920,925 ****
- --- 920,939 ----
- .I sysline (1)
- utility.
- .TP
- + \fBtrusted-escape-codes\fP \fIcodes\fP (string, default none)
- + When set to a list of one or more characters, \fInn\fP will trust and
- + output \fIescape\fP characters in an article if it is followed by one
- + of the characters in the list. For example, to switch to or from
- + kanji mode, control codes like "\fIesc\fP\ $" and "\fIesc\fP\ (\ J"
- + may be present in the text. To allow these codes, use the following
- + command:
- + .sp 0.5v
- + set trusted-escape-codes ($
- + .sp 0.5v
- + You can also set it to \fBall\fP to pass all espace codes through to
- + the screen. Notice that \fInn\fP thinks all characters (including
- + \fIesc\fP) output to the screen as occupy one column.
- + .TP
- \fBunshar-command\fP \fIshell-command\fP (string, default "/bin/sh")
- This is the command which is invoked by the \fBunshar\fP command.
- .TP
- ***************
- *** 936,942 ****
- When set, unsubscribing to a group will automatically mark all current
- articles read; this is recommended to keep the size of .newsrc down.
- Otherwise, unread articles in the unsubscribe groups are kept in
- ! .newsrc. If \fBkeep-unsubscribed\fP is false, this variable has no
- effect.
- .TP
- \fBupdate-frequency\fP (integer, default 1)
- --- 950,956 ----
- When set, unsubscribing to a group will automatically mark all current
- articles read; this is recommended to keep the size of .newsrc down.
- Otherwise, unread articles in the unsubscribe groups are kept in
- ! \&.newsrc. If \fBkeep-unsubscribed\fP is false, this variable has no
- effect.
- .TP
- \fBupdate-frequency\fP (integer, default 1)
- *** ./LAST/man/nn.1.D Sat May 5 14:19:09 1990
- --- man/nn.1.D Thu May 10 14:53:46 1990
- ***************
- *** 1055,1063 ****
- .TP
- \fBRC\fP
- This is a pseudo group name which matches all groups occurring in the
- ! .newsrc file. It will cause the groups in .newsrc to be appended to
- the presentation sequence in the sequence in which they are listed in
- ! .newsrc.
- .TP
- \fBRC:\fP\fInumber\fP
- Similar to the \fBRC\fP entry, but limited to the first \fInumber\fP
- --- 1055,1063 ----
- .TP
- \fBRC\fP
- This is a pseudo group name which matches all groups occurring in the
- ! \&.newsrc file. It will cause the groups in .newsrc to be appended to
- the presentation sequence in the sequence in which they are listed in
- ! \&.newsrc.
- .TP
- \fBRC:\fP\fInumber\fP
- Similar to the \fBRC\fP entry, but limited to the first \fInumber\fP
- *** ./LAST/man/nnmaster.8 Sat May 5 14:11:44 1990
- --- man/nnmaster.8 Wed May 9 20:34:09 1990
- ***************
- *** 483,489 ****
- .br
- $db/DATA/\fInnn\fP.[dx] Database files for group number \fInnn\fP
- .br
- ! .../.nn[dx] Database files if located in the group directories
- .br
- $master/GATE Message channel from \fInnadmin\fP to \fInnmaster\fP
- .br
- --- 483,489 ----
- .br
- $db/DATA/\fInnn\fP.[dx] Database files for group number \fInnn\fP
- .br
- ! \&.../.nn[dx] Database files if located in the group directories
- .br
- $master/GATE Message channel from \fInnadmin\fP to \fInnmaster\fP
- .br
- *** ./LAST/master.c Sat May 5 18:25:56 1990
- --- master.c Tue May 8 16:09:52 1990
- ***************
- *** 512,520 ****
-
- static set_lock_message()
- {
- - open_master(OPEN_UPDATE);
- - db_read_master();
- if (lock_message[0] || master.db_lock[0]) {
- strncpy(master.db_lock, lock_message, DB_LOCK_MESSAGE);
- master.db_lock[DB_LOCK_MESSAGE-1] = NUL;
- db_write_master();
- --- 512,519 ----
-
- static set_lock_message()
- {
- if (lock_message[0] || master.db_lock[0]) {
- + open_master(OPEN_UPDATE);
- strncpy(master.db_lock, lock_message, DB_LOCK_MESSAGE);
- master.db_lock[DB_LOCK_MESSAGE-1] = NUL;
- db_write_master();
- ***************
- *** 612,617 ****
- --- 611,618 ----
- nn_exit(0);
- }
-
- + open_master(OPEN_READ);
- +
- if (lock_message != NULL) {
- set_lock_message();
- if (repeat_delay == 0 && !foreground &&
- ***************
- *** 618,625 ****
- !reread_groups_file && group_selection == 0)
- nn_exit(0);
- }
- -
- - open_master(OPEN_READ);
-
- if (!ignore_lock && master.db_lock[0]) {
- printf("Database locked (unlock with -l or ignore with -i)\n");
- --- 619,624 ----
- *** ./LAST/more.c Mon Apr 23 18:26:06 1990
- --- more.c Wed May 9 20:39:40 1990
- ***************
- *** 23,28 ****
- --- 23,29 ----
- export int data_bits = 7;
- export int scroll_clear_page = 1;
- export int expired_msg_delay = 1;
- + export char *trusted_escapes = NULL;
-
- import int preview_window;
- import int novice;
- ***************
- *** 542,547 ****
- --- 543,565 ----
- } while (col & 07);
- goto next_char;
-
- + case 033: /* ESC may be a start/end of kanji or similar */
- + if (trusted_escapes != NULL) {
- + if (col + 3 > Columns) {
- + ungetc(c, art);
- + goto long_line;
- + }
- + if (strcmp(trusted_escapes, "all") == 0) break;
- + c = getc(art);
- + if (c == EOF) goto next_char;
- + ungetc(c, art);
- + for (fname = trusted_escapes; *fname; fname++)
- + if (c == *fname) break;
- + c = 033;
- + if (*fname != NUL) break;
- + }
- + /* FALL THRU */
- +
- default:
- if (col + 2 > Columns) {
- ungetc(c, art);
- *** ./LAST/news.c Wed May 2 22:19:53 1990
- --- news.c Thu May 10 11:09:45 1990
- ***************
- *** 283,289 ****
- news.ng_lpos = ftell(f);
- }
- #ifdef NNTP
- ! else if (use_nntp && (art->flag & A_DIGEST) == 0) {
- fseek(f, (off_t)0, 2);
- art->lpos = ftell(f);
- }
- --- 283,289 ----
- news.ng_lpos = ftell(f);
- }
- #ifdef NNTP
- ! else if (use_nntp && (art->flag & (A_DIGEST | A_FOLDER)) == 0) {
- fseek(f, (off_t)0, 2);
- art->lpos = ftell(f);
- }
- ***************
- *** 305,311 ****
- digest_buffer = buffer2;
- }
- #ifdef NNTP
- ! else if (use_nntp && (art->flag & A_DIGEST) == 0) {
- fseek(f, (off_t)0, 2);
- art->lpos = ftell(f);
- }
- --- 305,311 ----
- digest_buffer = buffer2;
- }
- #ifdef NNTP
- ! else if (use_nntp && (art->flag & (A_DIGEST | A_FOLDER)) == 0) {
- fseek(f, (off_t)0, 2);
- art->lpos = ftell(f);
- }
- *** ./LAST/nngrab.sh Sun Apr 29 15:54:28 1990
- --- nngrab.sh Thu May 10 11:09:46 1990
- ***************
- *** 14,20 ****
- fi
-
- if [ -s $DB/subjects ] ; then
- ! egrep -i "^[^:]*:.*$1" $DB/subjects |
- sed 's/^\([^:]*\):.*/\1/' |
- uniq > $TMP/nngrab$$
-
- --- 14,20 ----
- fi
-
- if [ -s $DB/subjects ] ; then
- ! egrep "^[^:]*:.*$1" $DB/subjects |
- sed 's/^\([^:]*\):.*/\1/' |
- uniq > $TMP/nngrab$$
-
- *** ./LAST/nntp.c Sat May 5 18:25:56 1990
- --- nntp.c Thu May 10 14:50:17 1990
- ***************
- *** 688,694 ****
- switch (n = ask_server("LIST")) {
- case OK_GROUPS:
- new = open_file(new_name, OPEN_CREATE_RW|MUST_EXIST);
- ! if (copy_text(new) == 0) break;
- unlink(new_name);
- if (!nntp_failed) {
- log_entry('N', "LIST empty");
- --- 688,697 ----
- switch (n = ask_server("LIST")) {
- case OK_GROUPS:
- new = open_file(new_name, OPEN_CREATE_RW|MUST_EXIST);
- ! if (copy_text(new) == 0) {
- ! if (fflush(new) != EOF) break;
- ! fclose(new);
- ! }
- unlink(new_name);
- if (!nntp_failed) {
- log_entry('N', "LIST empty");
- ***************
- *** 886,894 ****
- if (mode == 1 && !last_copy_blank)
- fputc(NL, tmp); /* add blank line after header */
-
- cptr->art = article;
- cptr->grp = group_hd;
- - fclose(tmp);
- goto out;
-
- case OK_BODY:
- --- 889,897 ----
- if (mode == 1 && !last_copy_blank)
- fputc(NL, tmp); /* add blank line after header */
-
- + if (fclose(tmp) == EOF) goto err;
- cptr->art = article;
- cptr->grp = group_hd;
- goto out;
-
- case OK_BODY:
- ***************
- *** 896,902 ****
- fseek(tmp, (off_t)0, 2);
- if (copy_text(tmp) < 0)
- return NULL;
- ! fclose(tmp);
- goto out;
-
- case ERR_NOARTIG:
- --- 899,905 ----
- fseek(tmp, (off_t)0, 2);
- if (copy_text(tmp) < 0)
- return NULL;
- ! if (fclose(tmp) == EOF) goto err;
- goto out;
-
- case ERR_NOARTIG:
- ***************
- *** 911,916 ****
- --- 914,922 ----
-
- out:
- return open_file(cptr->file_name, OPEN_READ|MUST_EXIST);
- +
- + err:
- + sys_error('N', "Cannot write temporary file %s", cptr->file_name);
- }
-
- /*
- *** ./LAST/patchlevel.h Sat May 5 19:02:38 1990
- --- patchlevel.h Thu May 10 13:06:05 1990
- ***************
- *** 10,16 ****
- * 1989-09-08: Release 6.3.7 (FTP)
- * 1990-03-03: Release 6.4beta (FTP)
- * 1990-05-07: Release 6.4 (comp.sources.unix)
- */
-
- ! #define PATCHLEVEL 0
-
- --- 10,18 ----
- * 1989-09-08: Release 6.3.7 (FTP)
- * 1990-03-03: Release 6.4beta (FTP)
- * 1990-05-07: Release 6.4 (comp.sources.unix)
- + *
- + * 1990-05-10: Patch #1 (6.4.1)
- */
-
- ! #define PATCHLEVEL 1
-
- *** ./LAST/sequence.c Mon Apr 23 18:25:53 1990
- --- sequence.c Tue May 8 15:15:11 1990
- ***************
- *** 348,356 ****
- start_group_search(gname);
-
- while (gh = get_group_search()) {
- if (!enter_sequence(mode, gh)) continue;
-
- ! if (merge_groups && (gh->group_flag & G_UNSUBSCRIBED) == 0) {
- if (mp_group == NULL) {
- gh->group_flag |= G_MERGE_HEAD;
- } else {
- --- 348,358 ----
- start_group_search(gname);
-
- while (gh = get_group_search()) {
- + if (merge_groups && gh->group_flag & G_UNSUBSCRIBED) continue;
- +
- if (!enter_sequence(mode, gh)) continue;
-
- ! if (merge_groups) {
- if (mp_group == NULL) {
- gh->group_flag |= G_MERGE_HEAD;
- } else {
- *** ./LAST/term.c Thu Apr 26 21:15:34 1990
- --- term.c Wed May 9 12:29:26 1990
- ***************
- *** 61,67 ****
- static char XBC[64], XUP[64];
- static char enter_ca_mode[64], exit_ca_mode[64];
- static char cursor_home[64];
- ! static char cursor_address[64];
- static char clear_screen[64];
- static char clr_eol[64];
- static char clr_eos[64];
- --- 61,67 ----
- static char XBC[64], XUP[64];
- static char enter_ca_mode[64], exit_ca_mode[64];
- static char cursor_home[64];
- ! static char cursor_address[128];
- static char clear_screen[64];
- static char clr_eol[64];
- static char clr_eos[64];
- *** ./LAST/variable.c Wed May 2 17:30:03 1990
- --- variable.c Wed May 9 17:48:38 1990
- ***************
- *** 35,40 ****
- --- 35,41 ----
- *response_dflt_answer,
- *save_counter_format,
- *spell_checker,
- + *trusted_escapes,
- unshar_command[],
- *unshar_header_file,
- *user_shell;
- ***************
- *** 302,307 ****
- --- 303,309 ----
- "suggest-default-save", BOOL 0, (char **)&suggest_save_file,
- "tidy-newsrc", BOOL 0, (char **)&tidy_newsrc,
- "time", BOOL 0, (char **)&show_current_time,
- + "trusted-escape-codes", STR 0, (char **)&trusted_escapes,
- "unshar-command", STR SAFE 1, (char **)unshar_command,
- "unshar-header-file", STR 0, (char **)&unshar_header_file,
- "unsubscribe-mark-read", BOOL 4, (char **)&keep_unsub_long,
-
-
- ---
- Kim F. Storm storm@texas.dk Tel +45 429 174 00
- Texas Instruments, Marielundvej 46E, DK-2730 Herlev, Denmark
- No news is good news, but nn is better!
-