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

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

-+-+-+-+-+-+-+-+ START OF PART 2 -+-+-+-+-+-+-+-+
X      parameter   P1,         label=INFILE,value(type=$infile)
X      qualifier   EDIT,       negatable,default
X--- 775,781 -----
X                  or (TITLE and SUBJECT) or (UNSEEN and UNREAD)
X `032
X  define verb FOLLOWUP
X+     synonym ANSWER
X      routine do_followup
X      parameter   P1,         label=INFILE,value(type=$infile)
X      qualifier   EDIT,       negatable,default
$ CALL UNPACK NEWSCMD.DIFF;2 947717471
$ create/nolog 'f'
X*** `091.news_v59_src`093newsdefine.h
X--- `091.news_src`093newsdefine.h
X**************
X*** 46,51
X  #define DIR_DATE        1
X  #define DIR_NEW         2
X  #define DIR_REGISTER    3
X `032
X  #define HELP_FILE       "NEWS_ROOT:NEWS.HLB"
X `032
X--- 46,52 -----
X  #define DIR_DATE        1
X  #define DIR_NEW         2
X  #define DIR_REGISTER    3
X+ #define DIR_UNREGISTER  4
X `032
X  #define HELP_FILE       "NEWS_ROOT:NEWS.HLB"
X `032
$ CALL UNPACK NEWSDEFINE.DIFF;2 1728150363
$ create/nolog 'f'
X*** `091.news_v59_src`093newsdelete.c
X--- `091.news_src`093newsdelete.c
X**************
X*** 928,939
X  `123
X    int cur_time;
X    char inpline`091256`093,
X!        mail_from`091132`093,
X!        mail_groups`091132`093,
X!        mail_dist`091132`093,
X!        mail_id`091132`093,
X!        post_path`091132`093,
X!        post_dist`091132`093,
X         loc_id`091IDLEN`093,
X         id`091132`093,
X         ngroup`091132`093,
X--- 928,940 -----
X  `123
X    int cur_time;
X    char inpline`091256`093,
X!        mail_from`091256`093,
X!        mail_cfrom`091256`093,
X!        mail_groups`091256`093,
X!        mail_dist`091256`093,
X!        mail_id`091256`093,
X!        post_path`091256`093,
X!        post_dist`091256`093,
X         loc_id`091IDLEN`093,
X         id`091256`093,
X         ngroup`091256`093,
X**************
X*** 935,942
X         post_path`091132`093,
X         post_dist`091132`093,
X         loc_id`091IDLEN`093,
X!        id`091132`093,
X!        ngroup`091132`093,
X         *p,
X         *m_a;
X    struct tm *stm;
X--- 936,943 -----
X         post_path`091256`093,
X         post_dist`091256`093,
X         loc_id`091IDLEN`093,
X!        id`091256`093,
X!        ngroup`091256`093,
X         *p,
X         *m_a;
X    struct tm *stm;
X**************
X*** 977,983
X      return(0);
X      `125
X `032
X!   s_to_lower(mail_from);
X    m_a = moderator_address(ga`091curr_g`093->grp_name);
X    s_to_lower(m_a);
X    sprintf(inpline,"%s@%s",mail_sig,Node_address);
X--- 978,985 -----
X      return(0);
X      `125
X `032
X!   strcpy(mail_cfrom,mail_from);
X!   s_to_lower(mail_cfrom);
X    m_a = moderator_address(ga`091curr_g`093->grp_name);
X    s_to_lower(m_a);
X    sprintf(inpline,"%s@%s",mail_sig,Node_address);
X**************
X*** 985,991
X    if (strcmp(inpline,m_a)) `123
X      sprintf(inpline,"*%s@%s*\n",usr_username,Node_address);
X      s_to_lower(inpline);
X!     if (!(wild_match(mail_from,inpline))) `123
X        sprintf(inpline,"%s@%s",usr_username,Node_address);
X        s_to_lower(inpline);
X        if (!(wild_match(mail_from,inpline))) `123
X--- 987,993 -----
X    if (strcmp(inpline,m_a)) `123
X      sprintf(inpline,"*%s@%s*\n",usr_username,Node_address);
X      s_to_lower(inpline);
X!     if (!(wild_match(mail_cfrom,inpline))) `123
X        sprintf(inpline,"%s@%s",usr_username,Node_address);
X        s_to_lower(inpline);
X        if (!(wild_match(mail_cfrom,inpline))) `123
X**************
X*** 988,994
X      if (!(wild_match(mail_from,inpline))) `123
X        sprintf(inpline,"%s@%s",usr_username,Node_address);
X        s_to_lower(inpline);
X!       if (!(wild_match(mail_from,inpline))) `123
X          if (no_priv() && !(ga`091curr_g`093->grp_flags & NEWS_M_MOD_ACCESS
V)) `123
X            err_line("\Error: Cancel - Only original poster may cancel items
V\n");
X   `009  return(0);
X--- 990,996 -----
X      if (!(wild_match(mail_cfrom,inpline))) `123
X        sprintf(inpline,"%s@%s",usr_username,Node_address);
X        s_to_lower(inpline);
X!       if (!(wild_match(mail_cfrom,inpline))) `123
X          if (no_priv() && !(ga`091curr_g`093->grp_flags & NEWS_M_MOD_ACCESS
V)) `123
X            err_line("\Error: Cancel - Only original poster may cancel items
V\n");
X   `009  return(0);
X**************
X*** 996,1002
X          else `123
X            sprintf(inpline,"*@%s*\n",Node_address);
X            s_to_lower(inpline);
X!           if (!(wild_match(mail_from,inpline))) `123
X              err_line("\Error: Cancel - Item was not posted from this node\
Vn");
X              return(0);
X              `125
X--- 998,1004 -----
X          else `123
X            sprintf(inpline,"*@%s*\n",Node_address);
X            s_to_lower(inpline);
X!           if (!(wild_match(mail_cfrom,inpline))) `123
X              err_line("\Error: Cancel - Item was not posted from this node\
Vn");
X              return(0);
X              `125
$ CALL UNPACK NEWSDELETE.DIFF;2 1143477416
$ create/nolog 'f'
X*** `091.news_v59_src`093newsdir.c
X--- `091.news_src`093newsdir.c
X**************
X*** 141,146
X          case DIR_REGISTER:
X              put_line("NEWS - Directory of Registered Newsgroups",0);
X              break;
X          `125
X      put_line(class_name(),0);
X      sprintf(err_oline,"  Number %-*.*s     Count  Unread",SUBJLEN,SUBJLEN,
V"Group");
X--- 141,149 -----
X          case DIR_REGISTER:
X              put_line("NEWS - Directory of Registered Newsgroups",0);
X              break;
X+         case DIR_UNREGISTER:
X+             put_line("NEWS - Directory of UNRegistered Newsgroups",0);
X+             break;
X          `125
X      put_line(class_name(),0);
X      sprintf(err_oline,"  Number %-*.*s     Count  Unread",SUBJLEN,SUBJLEN,
V"Group");
X**************
X*** 215,220
X        `125
X      else if (cli$present(c$dsc("NEW")) == CLI$_PRESENT) dir_type = DIR_NEW
V;
X      else if (cli$present(c$dsc("REGISTER")) == CLI$_PRESENT) dir_type = DI
VR_REGISTER;
X      else if (!class_len) `123
X        force_recalc = 0;
X        dir_type = cur_dir_type;
X--- 218,225 -----
X        `125
X      else if (cli$present(c$dsc("NEW")) == CLI$_PRESENT) dir_type = DIR_NEW
V;
X      else if (cli$present(c$dsc("REGISTER")) == CLI$_PRESENT) dir_type = DI
VR_REGISTER;
X+     else if (cli$present(c$dsc("UNREGISTERED")) == CLI$_PRESENT)
X+       dir_type = DIR_UNREGISTER;
X      else if (!class_len) `123
X        force_recalc = 0;
X        dir_type = cur_dir_type;
X**************
X*** 256,261
X          break;
X        case DIR_REGISTER:
X          incl_grp = (ga`091gindx`093->grp_reg);
X          break;
X        `125
X      if (incl_grp && class_check(gindx)) `123
X--- 261,269 -----
X          break;
X        case DIR_REGISTER:
X          incl_grp = (ga`091gindx`093->grp_reg);
X+         break;
X+       case DIR_UNREGISTER:
X+         incl_grp = (ga`091gindx`093->grp_reg == 0);
X          break;
X        `125
X      if (incl_grp && class_check(gindx)) `123
$ CALL UNPACK NEWSDIR.DIFF;2 124604378
$ create/nolog 'f'
X*** `091.news_v59_src`093newsdisplay.c
X--- `091.news_src`093newsdisplay.c
X**************
X*** 278,284
X            strcpy(resp,"10000");
X            trm = SMG$K_TRM_DOWN;
X            `125
X!         else if (!strncmp(resp,"top",min(3,strlen(resp))) && (*(resp + 1)
V == 'o')) `123
X            strcpy(resp,"10000");
X            trm = SMG$K_TRM_UP;
X            `125
X--- 278,286 -----
X            strcpy(resp,"10000");
X            trm = SMG$K_TRM_DOWN;
X            `125
X!         else if (   !strncmp(resp,"top",min(3,strlen(resp)))
X!                  && (*(resp + 1) == 'o')
X!                  && (strlen(resp) <= 3)) `123
X            strcpy(resp,"10000");
X            trm = SMG$K_TRM_UP;
X            `125
$ CALL UNPACK NEWSDISPLAY.DIFF;2 1762604156
$ create/nolog 'f'
X*** `091.news_v59_src`093newsdist.c
X--- `091.news_src`093newsdist.c
X**************
X*** 213,218
X         tolist`091IO_SIZE`093,
X         *cp1,
X         *cp2;
X    sys_filter_t *fmp, *f1;
X    dist_entry_t *tmp, *t1 = distfile;
X `032
X--- 213,219 -----
X         tolist`091IO_SIZE`093,
X         *cp1,
X         *cp2;
X+   int n;
X    sys_filter_t *fmp, *f1;
X    dist_entry_t *tmp, *t1 = distfile;
X `032
X**************
X*** 216,223
X    sys_filter_t *fmp, *f1;
X    dist_entry_t *tmp, *t1 = distfile;
X `032
X!   if (sscanf(s,"%s %s",node,tolist) != 2) return;
X!   cp1 = tolist;
X    tmp = malloc(sizeof *tmp);
X    strcpy((tmp->from_name = malloc(strlen(node) + 1)),node);
X    tmp->to_names = 0;
X--- 217,228 -----
X    sys_filter_t *fmp, *f1;
X    dist_entry_t *tmp, *t1 = distfile;
X `032
X!   cp1 = s;`009`009`009`009/* s is compressed, stripped string */
X!   while (isgraph(*cp1)) cp1++;       `009/* scan accross node word */
X!   if (!*cp1) cp1 = 0;
X!   else *cp1++ = '\0';              `009/* and null terminate node word */
X!   strcpy(node,s);
X!   if (!strlen(node)) return; `009`009/* handle the case of the string " "
V */
X    tmp = malloc(sizeof *tmp);
X    strcpy((tmp->from_name = malloc(strlen(node) + 1)),node);
X    tmp->to_names = 0;
X**************
X*** 221,238
X    tmp = malloc(sizeof *tmp);
X    strcpy((tmp->from_name = malloc(strlen(node) + 1)),node);
X    tmp->to_names = 0;
X!   do `123
X!     if (cp2 = strchr(cp1,',')) *cp2++ = '\0';
X!     fmp = malloc(sizeof *fmp);
X!     strcpy((fmp->sys_filtnam = malloc(strlen(cp1) + 1)),cp1);
X!     fmp->sys_fnext = 0;
X!     if (!tmp->to_names) tmp->to_names = f1 = fmp;
X!     else `123
X!       f1->sys_fnext = fmp;
X!       f1 = fmp;
X!       `125
X!     cp1 = cp2;
X!     `125 while (cp1);
X    tmp->next = 0;
X    if (!distfile) distfile = tmp;
X    else `123
X--- 226,250 -----
X    tmp = malloc(sizeof *tmp);
X    strcpy((tmp->from_name = malloc(strlen(node) + 1)),node);
X    tmp->to_names = 0;
X!   if (cp1) `123           `009`009`009/* now handle following words */
X!     while (cp2 = strchr(cp1,' ')) *cp2 = ','; `009/* convert ' ' -> ',' */
X!     strcpy(tolist,cp1);
X!     cp1 = tolist;
X!     do `123
X!       if (cp2 = strchr(cp1,',')) *cp2++ = '\0';
X!       if (strlen(cp1)) `123
X!         fmp = malloc(sizeof *fmp);
X!         strcpy((fmp->sys_filtnam = malloc(strlen(cp1) + 1)),cp1);
X!         fmp->sys_fnext = 0;
X!         if (!tmp->to_names) tmp->to_names = f1 = fmp;
X!         else `123
X!           f1->sys_fnext = fmp;
X!           f1 = fmp;
X!           `125
X!         `125
X!       cp1 = cp2;
X!       `125 while (cp1);
X!     `125
X    tmp->next = 0;
X    if (!distfile) distfile = tmp;
X    else `123
$ CALL UNPACK NEWSDIST.DIFF;2 372805278
$ create/nolog 'f'
X*** `091.news_v59_src`093newsextern.h
X--- `091.news_src`093newsextern.h
$ CALL UNPACK NEWSEXTERN.DIFF;2 1985495058
$ create/nolog 'f'
X*** `091.news_v59_src`093newsextract.c
X--- `091.news_src`093newsextract.c
X**************
X*** 234,242
X      `125
X    if (append_ofile) fprintf(fpextract,"\f\n");
X    append_ofile = 1;
X!   if (w_ok) sprintf(xfrbuf,"X-NEWS: %s %s: %d\n",
X!                           news_node,ga`091g`093->grp_name,ga`091g`093->grp
V_ia`091m`093.itm_num);
X!   fputs(xfrbuf,fpextract);
X    err_line(xfrbuf);
X    if (m_seen) item_update(g,m);
X    while (fgets(xfrbuf,510,fpr)) `123
X--- 234,244 -----
X      `125
X    if (append_ofile) fprintf(fpextract,"\f\n");
X    append_ofile = 1;
X!   if (w_ok) `123
X!     sprintf(xfrbuf,"X-NEWS: %s %s: %d\n",
X!                   news_node,ga`091g`093->grp_name,ga`091g`093->grp_ia`091m
V`093.itm_num);
X!     fputs(xfrbuf,fpextract);
X!     `125
X    err_line(xfrbuf);
X    if (m_seen) item_update(g,m);
X    while (fgets(xfrbuf,510,fpr)) `123
$ CALL UNPACK NEWSEXTRACT.DIFF;2 1181743897
$ create/nolog 'f'
X*** `091.news_v59_src`093newsfiles.c
X--- `091.news_src`093newsfiles.c
X**************
X*** 67,72
X    i->f.fab$b_org = FAB$C_SEQ;
X    i->f.fab$b_rat = FAB$M_CR;
X    i->f.fab$b_rfm = FAB$C_VAR;
X    i->f.fab$l_xab = &(i->p);
X    i->p = cc$rms_xabpro;
X    i->p.xab$w_pro = prot;
X--- 67,75 -----
X    i->f.fab$b_org = FAB$C_SEQ;
X    i->f.fab$b_rat = FAB$M_CR;
X    i->f.fab$b_rfm = FAB$C_VAR;
X+   i->f.fab$l_alq = 4;
X+   i->f.fab$w_deq = 32;
X+   i->f.fab$l_fop `124= FAB$M_TEF;
X    i->f.fab$l_xab = &(i->p);
X    i->p = cc$rms_xabpro;
X    i->p.xab$w_pro = prot;
$ CALL UNPACK NEWSFILES.DIFF;2 1411852509
$ create/nolog 'f'
X*** `091.news_v59_src`093newsforward.c
X--- `091.news_src`093newsforward.c
$ CALL UNPACK NEWSFORWARD.DIFF;2 1985494578
$ create/nolog 'f'
X*** `091.news_v59_src`093newshelp.c
X--- `091.news_src`093newshelp.c
$ CALL UNPACK NEWSHELP.DIFF;2 1985494842
$ create/nolog 'f'
X*** `091.news_v59_src`093newsinclude.h
X--- `091.news_src`093newsinclude.h
$ CALL UNPACK NEWSINCLUDE.DIFF;2 1985494578
$ create/nolog 'f'
X*** `091.news_v59_src`093newsmod.c
X--- `091.news_src`093newsmod.c
$ CALL UNPACK NEWSMOD.DIFF;2 1985494578
$ create/nolog 'f'
X*** `091.news_v59_src`093newsmode.c
X--- `091.news_src`093newsmode.c
$ CALL UNPACK NEWSMODE.DIFF;2 1985494842
$ create/nolog 'f'
X*** `091.news_v59_src`093newspost.c
X--- `091.news_src`093newspost.c
$ CALL UNPACK NEWSPOST.DIFF;2 1985494842
$ create/nolog 'f'
X*** `091.news_v59_src`093newsrc.c
X--- `091.news_src`093newsrc.c
$ CALL UNPACK NEWSRC.DIFF;2 1985495042
$ create/nolog 'f'
X*** `091.news_v59_src`093newsread.c
X--- `091.news_src`093newsread.c
$ CALL UNPACK NEWSREAD.DIFF;2 1985494842
$ create/nolog 'f'
X*** `091.news_v59_src`093newsregister.c
X--- `091.news_src`093newsregister.c
$ CALL UNPACK NEWSREGISTER.DIFF;2 1985494786
$ create/nolog 'f'
X*** `091.news_v59_src`093newsremclient.c
X--- `091.news_src`093newsremclient.c
X**************
X*** 346,352
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        char proto_type;
X `032
X--- 346,352 -----
X `032
X  toggle_link()
X  `123
X!   if (!nntp_write("STAT") `124`124 (!(wait_net_response(RESP_TIMER,1)))) `
V123
X      if (*net_open_chan) `123
X        char proto_type;
X `032
$ CALL UNPACK NEWSREMCLIENT.DIFF;2 504716614
$ create/nolog 'f'
X*** `091.news_v59_src`093newsrtl.c
X--- `091.news_src`093newsrtl.c
$ CALL UNPACK NEWSRTL.DIFF;2 1985494578
$ create/nolog 'f'
X*** `091.news_v59_src`093newssearch.c
X--- `091.news_src`093newssearch.c
$ CALL UNPACK NEWSSEARCH.DIFF;2 1985493570
$ create/nolog 'f'
X
+-+-+-+-+-+-+-+-  END  OF PART 2 +-+-+-+-+-+-+-+-

nreadwin@miclon.uucp (Neil Readwin) (10/11/89)

In article <777.2531ccc7@csc.anu.oz> gih900@csc.anu.oz (Geoff Huston) writes:
>	[stuff deleted]
>$ CALL UNPACK NEWSSEARCH.DIFF;2 1985493570
>$ create/nolog 'f'
>X
>+-+-+-+-+-+-+-+-  END  OF PART 2 +-+-+-+-+-+-+-+-

In article <778.2531cdb1@csc.anu.oz> gih900@csc.anu.oz (Geoff Huston) writes:

>-+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+
>*** `091.news_v59_src`093newsselect.c
>X--- `091.news_src`093newsselect.c
>$ CALL UNPACK NEWSSELECT.DIFF;2 1985495098
>	[stuff deleted]

When I try to unpack this TPU loops forever. The last line of part 2 and the
first line of part 3 must be joined for it to work. Neil.
-- 
 Fact: The above does not reflect the opinions or policy of Micrognosis.
 nreadwin@uk.co.mic.lon               ...uunet!mcvax!ukc!miclon!nreadwin 
  == Everything is a cause for sorrow that my mind or body has made ==