[news.software.anu-news] NEWS V5.9C diff 12/21

gih900@csc.anu.oz (Geoff Huston) (12/21/89)

+-+-+-+ Beginning of part 12 +-+-+-+
X `032
V    if (upd_client `124`124 (inquire_sts = (cli$present(c$dsc("INQUIRE")) & 1
X))) `123
X      if (!*s) strcpy(s,"*");
X--- 1517,1523 -----
X    old_lev = news_context;
X `032
X    if (upd_client) strcpy(s,"*");
X!   else parse_newsgroups(s,"",0,0,1);
X `032
V    if (upd_client `124`124 (inquire_sts = (cli$present(c$dsc("INQUIRE")) & 1
X))) `123
X      if (!*s) strcpy(s,"*");
X**************
X*** 1558,1564
X          if (!len) protocol_val = 0;
X          else if (!strncmp(tmpstr,"CMUTCP",len)) protocol_val= 1;
X          else if (!strncmp(tmpstr,"WINTCP",len)) protocol_val= 2;
X!         else if (!strncmp(tmpstr,"SRITCP",len)) protocol_val= 2;
X          else if (!strncmp(tmpstr,"TCP",len))
X `032
X  #ifdef SRI
X--- 1561,1567 -----
X          if (!len) protocol_val = 0;
X          else if (!strncmp(tmpstr,"CMUTCP",len)) protocol_val= 1;
X          else if (!strncmp(tmpstr,"WINTCP",len)) protocol_val= 2;
X!         else if (!strncmp(tmpstr,"MULTINETTCP",len)) protocol_val= 2;
X          else if (!strncmp(tmpstr,"TCP",len))
X `032
X  #ifdef MULTINET
X**************
X*** 1561,1567
X          else if (!strncmp(tmpstr,"SRITCP",len)) protocol_val= 2;
X          else if (!strncmp(tmpstr,"TCP",len))
X `032
X! #ifdef SRI
X            protocol_val = 3
X  #else
X  #ifdef TWG
X--- 1564,1570 -----
X          else if (!strncmp(tmpstr,"MULTINETTCP",len)) protocol_val= 2;
X          else if (!strncmp(tmpstr,"TCP",len))
X `032
X! #ifdef MULTINET
X            protocol_val = 3
X  #else
X  #ifdef TWG
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSSITE.DIFF"
$ CHECKSUM_IS = 1682381736
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newssite.c
X--- [.news_src]newssite.c
X**************
X*** 242,247
X      strcpy(mail_sig,usr_username);
X      s_to_lower(mail_sig);
X      `125
X `032
X    *usr_persname = '\0';
X    mail_flags = 0;
X--- 242,251 -----
X      strcpy(mail_sig,usr_username);
X      s_to_lower(mail_sig);
X      `125
X+   if (!strchr(mail_sig,'@')) `123
X+     strcat(mail_sig,"@");
X+     strcat(mail_sig,Node_address);
X+     `125
X `032
X    *usr_persname = '\0';
X    mail_flags = 0;
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSSITE_H.DIFF"
$ CHECKSUM_IS = 292831274
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newssite.h
X--- [.news_src]newssite.h
X**************
X*** 1,7
X  /*
X  **++
X  **  FACILITY:
X! **      NEWSSITE
X  **
X  **  ABSTRACT:
X  **      Site tailorable NEWS constant definitions.
X--- 1,7 -----
X  /*
X  **++
X  **  FACILITY:
X! **      NEWSSITE.H
X  **
X  **  ABSTRACT:
X  **      Site tailorable NEWS constant definitions.
X**************
X*** 21,26
X  **        - Add MIN and MAX expiry times
X  **      V5.8     2-Mar-1989     GIH
X  **        - Add RECHECK_TIMER, PATH_CHECK, SYSFILE, DISTFILE
X  **--
X  **/
X `032
X--- 21,28 -----
X  **        - Add MIN and MAX expiry times
X  **      V5.8     2-Mar-1989     GIH
X  **        - Add RECHECK_TIMER, PATH_CHECK, SYSFILE, DISTFILE
X+ **`009V5.9B`00925-Oct-1989`009GIH
V+ **`009  - Drop default item lifetime to 20 days (NEWS volumes are increasin
Xg)
X  **--
X  **/
X `032
X**************
X*** 24,32
X  **--
X  **/
X `032
X! #define NEWS_VERSION    "VMS News - V5.9"
X! #define NEWS_VDATE      "09-Jul-1989"
X! #define NEWS_DDATE      "09/07/89"
X `032
X  /*
X   *  EXP_TIME
X--- 26,34 -----
X  **--
X  **/
X `032
X! #define NEWS_VERSION    "VMS News - V5.9C"
X! #define NEWS_VDATE      "19-Dec-1989"
X! #define NEWS_DDATE      "19/12/89"
X `032
X  /*
X   *  EXP_TIME
X**************
X*** 36,43
X   *  Newsgroup lifetime (in days): global default.
X   */
X `032
X! #define EXP_TIME        30
X! #define GRP_TIME        60
X `032
X  /*
X   *  NEWS_BATCH_SIZE
X--- 38,45 -----
X   *  Newsgroup lifetime (in days): global default.
X   */
X `032
X! #define EXP_TIME        20
X! #define GRP_TIME        50
X `032
X  /*
X   *  NEWS_BATCH_SIZE
X**************
X*** 159,164
X  #define VMSV5`0091
X `032
X  #define NNTP_CACHE  3
X `032
X  #define USENET  "usenet"
X `032
X--- 161,168 -----
X  #define VMSV5`0091
X `032
X  #define NNTP_CACHE  3
X+`032
X+ #define NEWGROUP_REG   0
X `032
X  #define USENET  "usenet"
X `032
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSSKIM.DIFF"
$ CHECKSUM_IS = 1985494834
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newsskim.c
X--- [.news_src]newsskim.c
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSSKIP.DIFF"
$ CHECKSUM_IS = 1985494834
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newsskip.c
X--- [.news_src]newsskip.c
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSUTILITY.DIFF"
$ CHECKSUM_IS = 1025822786
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newsutility.c
X--- [.news_src]newsutility.c
X**************
X*** 491,497
X      newsgrp.grp_ia = newsgrp.grp_iasize = newsgrp.grp_iavd = 0;
X      newsgrp.grp_iavdsize = newsgrp.grp_iapaste = newsgrp.grp_c_itm = 0;
V      newsgrp.grp_display_indx = newsgrp.grp_flags = newsgrp.grp_reg_text = 0
X;
X!`032
X      grprab.rab$w_rsz = sizeof newsgrp;
X      _c$cks(sys$put(&grprab));
X      `125
X--- 491,497 -----
X      newsgrp.grp_ia = newsgrp.grp_iasize = newsgrp.grp_iavd = 0;
X      newsgrp.grp_iavdsize = newsgrp.grp_iapaste = newsgrp.grp_c_itm = 0;
V      newsgrp.grp_display_indx = newsgrp.grp_flags = newsgrp.grp_reg_text = 0
X;
X!     newsgrp.grp_topic[0] = newsgrp.grp_notice[0] = '\0';
X      grprab.rab$w_rsz = sizeof newsgrp;
X      _c$cks(sys$put(&grprab));
X      `125
X**************
X*** 775,781
X `032
X  #if ITMLIFE_DEFAULTS
X        if (newsitm.itm_life) `123
X! `009if newsgrp.grp_itmlife)
X  `009  newsitm.itm_life = min(newsitm.itm_life,newsgrp.grp_itmlife);
X  `009else if (ga[0]->grp_itmlife)
X  `009  newsitm.itm_life = min(newsitm.itm_life,ga[0]->grp_itmlife);
X--- 775,781 -----
X `032
X  #if ITMLIFE_DEFAULTS
X        if (newsitm.itm_life) `123
X! `009if (newsgrp.grp_itmlife)
X  `009  newsitm.itm_life = min(newsitm.itm_life,newsgrp.grp_itmlife);
X  `009else if (ga[0]->grp_itmlife)
X  `009  newsitm.itm_life = min(newsitm.itm_life,ga[0]->grp_itmlife);
X**************
X*** 921,927
X    if (i <= ga_size) for (j = ga_size; j >= i; --j) ga[j+1] = ga[j];
X    if (curr_g >= i) ++curr_g;
X    ga[i] = nentry;
X!   ga[i]->grp_reg = 1;
X    ga[i]->grp_display_indx = (cur_dir_type < DIR_NEW);
X    ++ga_size;
X `032
X--- 921,927 -----
X    if (i <= ga_size) for (j = ga_size; j >= i; --j) ga[j+1] = ga[j];
X    if (curr_g >= i) ++curr_g;
X    ga[i] = nentry;
X!   ga[i]->grp_reg = NEWGROUP_REG;
X    ga[i]->grp_display_indx = (cur_dir_type < DIR_NEW);
X    ++ga_size;
X `032
X**************
X*** 1324,1330
X  ga_exact_name(s)
X    char *s;
X  `123
X!   int i;
X `032
X    for (i = 1 ; i <= ga_size ; ++i)
X      if (!strcmp(s,ga[i]->grp_name)) return(i);
X--- 1324,1332 -----
X  ga_exact_name(s)
X    char *s;
X  `123
X!   int i,
X!       lens = strlen(s);
X!   char *n, *ps, *pn, *sps;
X `032
X    sps = s + lens - 1;
X    for (i = 1 ; i <= ga_size ; ++i) `123
X**************
X*** 1326,1333
X  `123
X    int i;
X `032
X!   for (i = 1 ; i <= ga_size ; ++i)
X!     if (!strcmp(s,ga[i]->grp_name)) return(i);
X    return(0);
X  `125
X  `012
X--- 1328,1347 -----
X        lens = strlen(s);
X    char *n, *ps, *pn, *sps;
X `032
X!   sps = s + lens - 1;
X!   for (i = 1 ; i <= ga_size ; ++i) `123
X!     if (   (*s != *(n = ga[i]->grp_name))
X!         `124`124 (lens != strlen(n)))
X!       continue;`009`009`009`009`009/* first char  & length == */
X!         /* The real works: Compare backwards;   First chars known equal. */
X!     ps = sps;
X!     pn = n + lens - 1;
X!     while (ps > s)
X!       if (*ps-- != *pn--) break;
X!     if (ps == s) return(i);
X!     `125
X! /*  if (!strcmp(s,ga[i]->grp_name)) return(i);   <<-- original code */
X!`032
X    return(0);
X  `125
X  `012
X**************
X*** 1784,1789
X    char itemhold[40];
X `032
X    newsgroup_status_line(curr_g);
X    iap = gap->grp_ia;
X    if (gap->grp_count)
X      sprintf(tmp,"%s: %d Items (#%d - #%d) %s",gap->grp_name,gap->grp_count,
X--- 1798,1804 -----
X    char itemhold[40];
X `032
X    newsgroup_status_line(curr_g);
X+   if (!gap->grp_ia) map_items(curr_g);
X    iap = gap->grp_ia;
X    if (gap->grp_count)
X      sprintf(tmp,"%s: %d Items (#%d - #%d) %s",gap->grp_name,gap->grp_count,
X**************
X*** 2167,2171
X      set_level(2);
X      cur_down_itm(curr_g,1000000,1);
X      `125
X    return(0);
X  `125
X--- 2182,2209 -----
X      set_level(2);
X      cur_down_itm(curr_g,1000000,1);
X      `125
X+   return(0);
X+ `125
X+`032
X+ check_id(id)
X+   char *id;
X+ `123
X+   char mref[IDLEN + 4];
X+   int *gp;
X+`032
X+   util_idcpy(mref,id);
X+   s_to_lower(mref);
X+   gp = &mref[IDLEN];
X+   *gp = 0;
X+`032
X+   itmrab.rab$l_kbf = mref;
X+   itmrab.rab$b_ksz = IDLEN + 4;
X+   itmrab.rab$b_krf = 1;
X+   itmrab.rab$l_rop = RAB$M_KGE `124 RAB$M_RRL `124 RAB$M_NLK;
X+   itmrab.rab$b_rac = RAB$C_KEY;
X+`032
X+   if (   (sys$get(&itmrab) & 1)
X+       && !strcmp(mref,newsitm.itm_id)) return(1);
X+   if (hist_check(mref)) return(1);
X    return(0);
X  `125
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSV58_UPGRADE.DIFF"
$ CHECKSUM_IS = 0
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSVARIABLES.DIFF"
$ CHECKSUM_IS = 1396338330
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newsvariables.h
X--- [.news_src]newsvariables.h
X**************
X*** 68,74
X        str_length,
X        str_case_sensitive,
X        str_line,
X!       str_col;
X `032
X  extrnl
X  short response_length;`009`009/* input length */
X--- 68,75 -----
X        str_length,
X        str_case_sensitive,
X        str_line,
X!       str_col,
X!       mail_self_flag iev(0);
X `032
X  extrnl
X  short response_length;`009`009/* input length */
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSVMSMAIL.DIFF"
$ CHECKSUM_IS = 54467975
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newsvmsmail.c
X--- [.news_src]newsvmsmail.c
X**************
X*** 1,7
X  /*
X  **++
X  **  FACILITY:
X! **      NEWSMAIL
X  **
X  **  ABSTRACT:
X  **      Routines which use callable mail to map VMS mail into NEWS.
X--- 1,7 -----
X  /*
X  **++
X  **  FACILITY:
X! **      NEWSVMSMAIL
X  **
X  **  ABSTRACT:
X  **      Routines which use callable mail to map VMS mail into NEWS.
X**************
X*** 22,28
X  **--
X  **/
X  `012
X! #module NEWSMAIL "V5.8"
X `032
X  #include "newsinclude.h"
X  #include "newsdefine.h"
X--- 22,28 -----
X  **--
X  **/
X  `012
X! #module NEWSVMSMAIL "V5.8"
X `032
X  #include "newsinclude.h"
X  #include "newsdefine.h"
X**************
X*** 124,129
X `032
X    if (!(fn_dsc->dsc$w_length)) return(1);
X    tmp = malloc(sizeof *tmp);
X    tmp->folder_name = malloc(fn_dsc->dsc$w_length + 1);
X    strncpy(tmp->folder_name,fn_dsc->dsc$a_pointer,fn_dsc->dsc$w_length);
X    tmp->folder_name[fn_dsc->dsc$w_length] = '\0';
X--- 124,130 -----
X `032
X    if (!(fn_dsc->dsc$w_length)) return(1);
X    tmp = malloc(sizeof *tmp);
X+   tmp->fnext = 0;
X    tmp->folder_name = malloc(fn_dsc->dsc$w_length + 1);
X    strncpy(tmp->folder_name,fn_dsc->dsc$a_pointer,fn_dsc->dsc$w_length);
X    tmp->folder_name[fn_dsc->dsc$w_length] = '\0';
X**************
X*** 728,734
X      err_line("\tNot a MAIL folder\n");
X      return(0);
X      `125
X!   all = ((news_context == 1) `124`124 (cli$present("ALL") & 1));
X    if (cli$get_value(c$dsc("FOLDER"),&f_d,&f_l) == CLI$_ABSENT) `123
X      char prm[80];
X `032
X--- 729,735 -----
X      err_line("\tNot a MAIL folder\n");
X      return(0);
X      `125
X!   all = ((news_context == 1) `124`124 (cli$present(c$dsc("ALL")) & 1));
X    if (cli$get_value(c$dsc("FOLDER"),&f_d,&f_l) == CLI$_ABSENT) `123
X      char prm[80];
X `032
X**************
X*** 902,909
X              while (cms[i].set_len) `123
X                if (!strncmp(mt,cms[i].mtype,max(len,cms[i].set_len))) `123
X                  sm[0].ic = cms[i].i_code;
X!                 sm[0].bl = sm[0].ba = sm[0].rl = 0;
X!                 sm[1].bl = sm[1].ic = sm[1].ba = sm[1].rl = 0;
X                  if (set_common_profile()) err_line(cms[i].msg);
X                  return(0);
X                  `125
X--- 903,910 -----
X              while (cms[i].set_len) `123
X                if (!strncmp(mt,cms[i].mtype,max(len,cms[i].set_len))) `123
X                  sm[0].ic = cms[i].i_code;
X!                 sm[0].bl = 0; sm[0].ba = 0; sm[0].rl = 0;
X!                 sm[1].bl = 0; sm[1].ic = 0; sm[1].ba = 0; sm[1].rl = 0;
X                  if (set_common_profile()) err_line(cms[i].msg);
X                  return(0);
X                  `125
X**************
X*** 920,926
X              sm[0].bl = len;
X              sm[0].ba = mt;
X              sm[0].rl = 0;
X!             sm[1].bl = sm[1].ic = sm[1].ba = sm[1].rl = 0;
X              if (set_common_profile()) `123
X                sprintf(err_oline,sms[i].msg,mt);
X                err_line(err_oline);
X--- 921,927 -----
X              sm[0].bl = len;
X              sm[0].ba = mt;
X              sm[0].rl = 0;
X!             sm[1].bl = 0; sm[1].ic = 0; sm[1].ba = 0; sm[1].rl = 0;
X              if (set_common_profile()) `123
X                sprintf(err_oline,sms[i].msg,mt);
X                err_line(err_oline);
X**************
X*** 929,936
X            return(0);
X            `125
X          sm[0].ic = sms[i].i_code;
X!         sm[0].bl = sm[0].ba = sm[0].rl = 0;
X!         sm[1].bl = sm[1].ic = sm[1].ba = sm[1].rl = 0;
X          if (set_common_profile())
X            err_line(sms[i].msg);
X          return(0);
X--- 930,937 -----
X            return(0);
X            `125
X          sm[0].ic = sms[i].i_code;
X!         sm[0].bl = 0; sm[0].ba = 0; sm[0].rl = 0;
X!         sm[1].bl = 0; sm[1].ic = 0; sm[1].ba = 0; sm[1].rl = 0;
X          if (set_common_profile())
X            err_line(sms[i].msg);
X          return(0);
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWS_HLP.DIFF"
$ CHECKSUM_IS = 2083817688
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]news.hlp
X--- [.news_src]news.hlp
X**************
X*** 3,9
X   NEWS is an implementation of the USENET NEWS system for VMS. This is a
X   bulletin board system, allowing users to read items posted to the board,
X   post replies to existing items, and create new items on the board. NEWS
X!  conforms to the Standard for Interchange of USENET Messages (RFC1036).
X `032
X   Unlike person-to-person mail, all items posted into NEWS are normally
X   readable by ALL users on the system, so the items in NEWS are intended for
X--- 3,10 -----
X   NEWS is an implementation of the USENET NEWS system for VMS. This is a
X   bulletin board system, allowing users to read items posted to the board,
X   post replies to existing items, and create new items on the board. NEWS
X!  conforms to the Internet Standard for Interchange of USENET Messages
X!  (RFC1036).
X `032
X   Unlike person-to-person mail, all items posted into NEWS are normally
X   readable by all users of the system, so the items in NEWS are intended
X**************
X*** 6,16
X   conforms to the Standard for Interchange of USENET Messages (RFC1036).
X `032
-+-+-+-+-+ End of part 12 +-+-+-+-+-