[news.software.anu-news] NEWS V59A - diff/patch version 3/5

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

-+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+
*** `091.news_v59_src`093newsselect.c
X--- `091.news_src`093newsselect.c
$ CALL UNPACK NEWSSELECT.DIFF;2 1985495098
$ create/nolog 'f'
X*** `091.news_v59_src`093newssetshow.c
X--- `091.news_src`093newssetshow.c
X**************
X*** 1205,1213
X  check_access(g)
X      int g;
X  `123
X!     char acline`091256`093, cknode`091132`093, mod`091132`093,
X!          *cp, *ap, *op;
X!     FILE *fpd;
X `032
X      ga`091g`093->grp_flags `124= NEWS_M_ACCESS_CHECKED;
X      if (ga`091g`093->grp_flags & NEWS_M_MAILMODERATE) `123
X--- 1205,1213 -----
X  check_access(g)
X      int g;
X  `123
X!   char acline`091256`093, cknode`091132`093, mod`091132`093,
X!        *cp, *ap, *op;
X!   FILE *fpd;
X `032
X    ga`091g`093->grp_flags `124= NEWS_M_ACCESS_CHECKED;
X    if (ga`091g`093->grp_flags & NEWS_M_MAILMODERATE) `123
X**************
X*** 1209,1221
X           *cp, *ap, *op;
X      FILE *fpd;
X `032
X!     ga`091g`093->grp_flags `124= NEWS_M_ACCESS_CHECKED;
X!     if (ga`091g`093->grp_flags & NEWS_M_MAILMODERATE) `123
X!         sprintf(mod,"%s@%s",usr_username,Node_address);
X!         if (!strcmp(mod,moderator_address(ga`091g`093->grp_name))) `123
X!             ga`091g`093->grp_flags `124= (NEWS_M_MOD_USER `124 NEWS_M_WRIT
VE_ACCESS);
X!             return;
X!             `125
X          `125
X      if (!(ga`091g`093->grp_flags & NEWS_M_NOWRITE_SET))  ga`091g`093->grp_
Vflags `124= NEWS_M_WRITE_ACCESS;
X      sprintf(itm_fname,Access_template,util_dir(ga`091g`093->grp_name));
X--- 1209,1246 -----
X         *cp, *ap, *op;
X    FILE *fpd;
X `032
X!   ga`091g`093->grp_flags `124= NEWS_M_ACCESS_CHECKED;
X!   if (ga`091g`093->grp_flags & NEWS_M_MAILMODERATE) `123
X!     sprintf(mod,"%s@%s",usr_username,Node_address);
X!     if (!strcmp(mod,moderator_address(ga`091g`093->grp_name))) `123
X!       ga`091g`093->grp_flags `124= (NEWS_M_MOD_USER `124 NEWS_M_WRITE_ACCE
VSS);
X!       return;
X!       `125
X!     `125
X!   if (!(ga`091g`093->grp_flags & NEWS_M_NOWRITE_SET))
X!     ga`091g`093->grp_flags `124= NEWS_M_WRITE_ACCESS;
X!   sprintf(itm_fname,Access_template,util_dir(ga`091g`093->grp_name));
X!   sysprv();
X!   if (fpd = fopen(itm_fname,"r")) `123
X!     while (fgets(acline,256,fpd)) `123
X!       if (*acline == '#') continue;
X!       if (cp = strchr(acline,'\n')) *cp = ' ';
X!       s_to_lower(acline);
X!       if (cp = strchr(acline,' ')) *cp = '\0';
X!       if (ap = strchr(acline,'@')) *ap = '\0';
X!       if (op = strchr(acline,':')) *op = '\0';
X!       if (   !strcmp(acline,usr_username)
X!           `124`124 wild_match(usr_username,acline)
X!           `124`124 idmatch(acline)) `123
X!         if (cp) *cp = ' ';
X!         if (ap) *ap = '@';
X!         if (strchr(acline,'@')) `123
X!           sprintf(cknode,"@%s ",news_node);
X!           if (!substrcmp(cp,cknode)) continue;
X!           `125
X!         if (substrcmp(cp," write ")) ga`091g`093->grp_flags `124= NEWS_M_W
VRITE_ACCESS;
X!         if (substrcmp(cp," nowrite ")) ga`091g`093->grp_flags &= `126NEWS_
VM_WRITE_ACCESS;
X!         if (substrcmp(cp," moderate ")) ga`091g`093->grp_flags `124= (NEWS
V_M_MOD_USER `124 NEWS_M_WRITE_ACCESS);
X          `125
X        `125
X      fclose(fpd);
X**************
X*** 1217,1248
X              return;
X              `125
X          `125
X!     if (!(ga`091g`093->grp_flags & NEWS_M_NOWRITE_SET))  ga`091g`093->grp_
Vflags `124= NEWS_M_WRITE_ACCESS;
X!     sprintf(itm_fname,Access_template,util_dir(ga`091g`093->grp_name));
X!     sysprv();
X!     if (fpd = fopen(itm_fname,"r")) `123
X!         while (fgets(acline,256,fpd)) `123
X!             if (*acline == '#') continue;
X!             if (cp = strchr(acline,'\n')) *cp = ' ';
X!             s_to_lower(acline);
X!             if (cp = strchr(acline,' ')) *cp = '\0';
X!             if (ap = strchr(acline,'@')) *ap = '\0';
X!             if (op = strchr(acline,':')) *op = '\0';
X!             if (!strcmp(acline,usr_username) `124`124 wild_match(usr_usern
Vame,acline) `124`124 idmatch(acline)) `123
X!                 if (cp) *cp = ' ';
X!                 if (ap) *ap = '@';
X!                 if (strchr(acline,'@')) `123
X!                     sprintf(cknode,"@%s ",news_node);
X!                     if (!substrcmp(cp,cknode)) continue;
X!                     `125
X!                 if (substrcmp(cp," write ")) ga`091g`093->grp_flags `124=
V NEWS_M_WRITE_ACCESS;
X!                 if (substrcmp(cp," nowrite ")) ga`091g`093->grp_flags &= `
V126NEWS_M_WRITE_ACCESS;
X!                 if (substrcmp(cp," moderate ")) ga`091g`093->grp_flags `12
V4= (NEWS_M_MOD_USER `124 NEWS_M_WRITE_ACCESS);
X!                 `125
X!             `125
X!         fclose(fpd);
X!         `125
X!     nosysprv();
X  `125
X  `012
X  do_set_mod()
X--- 1242,1251 -----
X          if (substrcmp(cp," nowrite ")) ga`091g`093->grp_flags &= `126NEWS_
VM_WRITE_ACCESS;
X          if (substrcmp(cp," moderate ")) ga`091g`093->grp_flags `124= (NEWS
V_M_MOD_USER `124 NEWS_M_WRITE_ACCESS);
X          `125
X!       `125
X!     fclose(fpd);
X!     `125
X!   nosysprv();
X  `125
X  `012
X  do_set_mod()
$ CALL UNPACK NEWSSETSHOW.DIFF;2 1333330426
$ create/nolog 'f'
X*** `091.news_v59_src`093newssite.c
X--- `091.news_src`093newssite.c
$ CALL UNPACK NEWSSITE.DIFF;2 1985494834
$ create/nolog 'f'
X*** `091.news_v59_src`093newssite.h
X--- `091.news_src`093newssite.h
$ CALL UNPACK NEWSSITE_H.DIFF;2 1985494834
$ create/nolog 'f'
X*** `091.news_v59_src`093newsskim.c
X--- `091.news_src`093newsskim.c
$ CALL UNPACK NEWSSKIM.DIFF;2 1985494834
$ create/nolog 'f'
X*** `091.news_v59_src`093newsskip.c
X--- `091.news_src`093newsskip.c
$ CALL UNPACK NEWSSKIP.DIFF;2 1985494834
$ create/nolog 'f'
X*** `091.news_v59_src`093newsutility.c
X--- `091.news_src`093newsutility.c
$ CALL UNPACK NEWSUTILITY.DIFF;2 1985494578
$ create/nolog 'f'
$ CALL UNPACK NEWSV58_UPGRADE.DIFF;2 0
$ create/nolog 'f'
X*** `091.news_v59_src`093newsvariables.h
X--- `091.news_src`093newsvariables.h
$ CALL UNPACK NEWSVARIABLES.DIFF;2 1985494846
$ create/nolog 'f'
X*** `091.news_v59_src`093newsvmsmail.c
X--- `091.news_src`093newsvmsmail.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`091fn_dsc->dsc$w_length`093 = '\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`091fn_dsc->dsc$w_length`093 = '\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`09180`093;
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`09180`093;
X `032
$ CALL UNPACK NEWSVMSMAIL.DIFF;2 572078297
$ create/nolog 'f'
X*** `091.news_v59_src`093news.hlp
X--- `091.news_src`093news.hlp
$ CALL UNPACK NEWS_HLP.DIFF;2 1985495234
$ create/nolog 'f'
X*** `091.news_v59_src`093nntp_client.c
X--- `091.news_src`093nntp_client.c
$ CALL UNPACK NNTP_CLIENT.DIFF;2 1985494578
$ create/nolog 'f'
X*** `091.news_v59_src`093nntp_dec.c
X--- `091.news_src`093nntp_dec.c
$ CALL UNPACK NNTP_DEC.DIFF;2 1985494842
$ create/nolog 'f'
X*** `091.news_v59_src`093nntp_decm.c
X--- `091.news_src`093nntp_decm.c
$ CALL UNPACK NNTP_DECM.DIFF;2 1985494838
$ create/nolog 'f'
X*** `091.news_v59_src`093nntp_feed.c
X--- `091.news_src`093nntp_feed.c
X**************
X*** 482,488
X `032
X  toggle_link()
X  `123
X!     if (!nntp_write("YCMND") `124`124 (!(wait_net_response(RESP_TIMER,1)))
V) `123
X          if (*net_open_chan) `123
X              close_net();
X              printf("Lost connection to NEWS SERVER (`091%c`093 %s)",
X--- 482,488 -----
X `032
X  toggle_link()
X  `123
X!     if (!nntp_write("STAT") `124`124 (!(wait_net_response(RESP_TIMER,1))))
V `123
X          if (*net_open_chan) `123
X              close_net();
X              printf("Lost connection to NEWS SERVER (`091%c`093 %s)",
$ CALL UNPACK NNTP_FEED.DIFF;2 1666597739
$ create/nolog 'f'
X*** `091.news_v59_src`093nntp_server.c
X--- `091.news_src`093nntp_server.c
X**************
X*** 90,96
X  #define LOG_TABLE   "LNM$SYSTEM"
X `032
X                              /* file names */
X! #define NEWSBATCH       "NEWS_MANAGER:NNTP.BATCH"
X `032
X  #define CLOSE_LINK      0   /* Status flags passed between server and driv
Ver */
X  #define NO_INPUT        0
X--- 90,96 -----
X  #define LOG_TABLE   "LNM$SYSTEM"
X `032
X                              /* file names */
X! #define NEWSBATCH       "NEWS_MANAGER:NNTP_%X.BATCH"
X `032
X  #define CLOSE_LINK      0   /* Status flags passed between server and driv
Ver */
X  #define NO_INPUT        0
X**************
X*** 259,265
X  GRP newsgrp;                    /* newsgroup i/o buffer */
X `032
X  static
X! int mail_add_expiry;
X `032
X  sysprv()
X  `123
X--- 259,266 -----
X  GRP newsgrp;                    /* newsgroup i/o buffer */
X `032
X  static
X! int mail_add_expiry,
X!     ihave_size = 0;
X `032
X  sysprv()
X  `123
X**************
X*** 1254,1260
X  `123
X      FILE *fpr,
X           *fpw;
X!     char line`091BUFF_STRLEN`093;
X `032
X      if (mode == POST) return(post_add_item(fn,msgbuf,stm));
X `032
X--- 1255,1262 -----
X  `123
X      FILE *fpr,
X           *fpw;
X!     char line`091BUFF_STRLEN`093,
X!          batch`091FILE_STRLEN`093;
X `032
X      if (mode == POST) return(post_add_item(fn,msgbuf,stm));
X `032
X**************
X*** 1262,1268
X          strcpy(msgbuf,"File handler error in NNTP Server.");
X          return(0);
X          `125
X!     if (!(fpw = fopen(NEWSBATCH,"a"))) `123
X          strcpy(msgbuf,"File handler error in NNTP Server.");
X          return(0);
X          `125
X--- 1264,1271 -----
X          strcpy(msgbuf,"File handler error in NNTP Server.");
X          return(0);
X          `125
X!     sprintf(batch,NEWSBATCH,getpid());
X!     if (!(fpw = fopen(batch,"a"))) `123
X          strcpy(msgbuf,"File handler error in NNTP Server.");
X          return(0);
X          `125
X**************
X*** 1266,1272
X          strcpy(msgbuf,"File handler error in NNTP Server.");
X          return(0);
X          `125
X!     fputs("#! rnews 1\n",fpw);
X      while (fgets(line,BUFF_STRLEN,fpr)) fputs(line,fpw);
X      fclose(fpr);
X      fclose(fpw);
X--- 1269,1275 -----
X          strcpy(msgbuf,"File handler error in NNTP Server.");
X          return(0);
X          `125
X!     fprintf(fpw,"#! rnews %d\n", (ihave_size > 0 ? ihave_size : 1));
X      while (fgets(line,BUFF_STRLEN,fpr)) fputs(line,fpw);
X      fclose(fpr);
X      fclose(fpw);
X**************
X*** 1271,1276
X      fclose(fpr);
X      fclose(fpw);
X      strcpy(msgbuf,"Item successfully spooled.");
X      return(1);
X  `125
X  `012
X--- 1274,1280 -----
X      fclose(fpr);
X      fclose(fpw);
X      strcpy(msgbuf,"Item successfully spooled.");
X+     while (!delete(fn));
X      return(1);
X  `125
X  `012
X**************
X*** 1817,1826
X   */
X `032
X  static
X! FILE *openartbyid(id, msg_status,stm)
X!     char    *id;
X!     int     *msg_status;
X!     int     stm;
X  `123
X      char    l_id`091IDLEN + 4`093;
X      int     i;
X--- 1821,1830 -----
X   */
X `032
X  static
X! FILE *openartbyid(id,msg_status,stm)
X!   char *id;
X!   int *msg_status;
X!   int stm;
X  `123
X    char l_id`091IDLEN + 4`093;
X    int i;
X**************
X*** 1822,1829
X      int     *msg_status;
X      int     stm;
X  `123
X!     char    l_id`091IDLEN + 4`093;
X!     int     i;
X `032
X      *msg_status = M430;
X      for (i = 0; i < (IDLEN + 4); ++i) l_id`091i`093 = '\0';
X--- 1826,1833 -----
X    int *msg_status;
X    int stm;
X  `123
X!   char l_id`091IDLEN + 4`093;
X!   int i;
X `032
X    ihave_size = 0;
X    *msg_status = M430;
X**************
X*** 1825,1833
X      char    l_id`091IDLEN + 4`093;
X      int     i;
X `032
X!     *msg_status = M430;
X!     for (i = 0; i < (IDLEN + 4); ++i) l_id`091i`093 = '\0';
X!     strncpy(l_id,id,IDLEN);
X `032
X      grprab.rab$l_kbf = &(newsitm.itm_grp);
X      grprab.rab$b_ksz = 4;
X--- 1829,1838 -----
X    char l_id`091IDLEN + 4`093;
X    int i;
X `032
X!   ihave_size = 0;
X!   *msg_status = M430;
X!   for (i = 0; i < (IDLEN + 4); ++i) l_id`091i`093 = '\0';
X!   strncpy(l_id,id,IDLEN);
X `032
X    grprab.rab$l_kbf = &(newsitm.itm_grp);
X    grprab.rab$b_ksz = 4;
X**************
X*** 1829,1839
X      for (i = 0; i < (IDLEN + 4); ++i) l_id`091i`093 = '\0';
X      strncpy(l_id,id,IDLEN);
X `032
X!     grprab.rab$l_kbf = &(newsitm.itm_grp);
X!     grprab.rab$b_ksz = 4;
X!     grprab.rab$b_krf = 1;
X!     grprab.rab$l_rop = RAB$M_RRL `124 RAB$M_NLK;
X!     grprab.rab$b_rac = RAB$C_KEY;
X `032
X      itmrab.rab$l_kbf = l_id;
X      itmrab.rab$b_ksz = IDLEN + 4;
X--- 1834,1844 -----
X    for (i = 0; i < (IDLEN + 4); ++i) l_id`091i`093 = '\0';
X    strncpy(l_id,id,IDLEN);
X `032
X!   grprab.rab$l_kbf = &(newsitm.itm_grp);
X!   grprab.rab$b_ksz = 4;
X!   grprab.rab$b_krf = 1;
X!   grprab.rab$l_rop = RAB$M_RRL `124 RAB$M_NLK;
X!   grprab.rab$b_rac = RAB$C_KEY;
X `032
X    itmrab.rab$l_kbf = l_id;
X    itmrab.rab$b_ksz = IDLEN + 4;
X**************
X*** 1835,1855
+-+-+-+-+-+-+-+-  END  OF PART 3 +-+-+-+-+-+-+-+-