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

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

+-+-+-+ Beginning of part 8 +-+-+-+
X            s_to_lower(follow_groups);
X            strcpy(followup_groups,follow_groups);
X!           if (!crosspost && !strcmp(follow_groups,"poster")) `123
X              fclose(fpr);
X              if (*fp_open > 1) while (!delete(fp_open));
X              *fp_open = '\0';
X**************
X*** 467,472
X              `125
X            `125
X          else if (!strncmp(xfrbuf,"Distribution:",13)) `123
X            strcpy(distribution,&xfrbuf[14]);
X            if (cp = strchr(distribution,'\n')) *cp = '\0';
X            `125
X--- 544,550 -----
X              `125
X            `125
X          else if (!strncmp(xfrbuf,"Distribution:",13)) `123
X+           if (crosspost) fputs(xfrbuf,fpw);
X            strcpy(distribution,&xfrbuf[14]);
X            if (cp = strchr(distribution,'\n')) *cp = '\0';
X            `125
X**************
X*** 471,477
X            if (cp = strchr(distribution,'\n')) *cp = '\0';
X            `125
X          else if (*xfrbuf == '\n') `123
X!           if (extract_orig) `123
X              fputs("In article ",fpw);
V              if (!*id) sprintf(id,"<%s %s:%d>", news_node, ga[curr_g]->grp_n
Xame,ga[curr_g]->grp_ia[curr_i].itm_num);
X              fputs(id,fpw);
X--- 549,556 -----
X            if (cp = strchr(distribution,'\n')) *cp = '\0';
X            `125
X          else if (*xfrbuf == '\n') `123
X!           if (crosspost) fputs(xfrbuf,fpw);
X!           if (!crosspost && extract_orig) `123
X              fputs("In article ",fpw);
V              if (!*id) sprintf(id,"<%s %s:%d>", news_node, ga[curr_g]->grp_n
Xame,ga[curr_g]->grp_ia[curr_i].itm_num);
X              fputs(id,fpw);
X**************
X*** 479,484
X              `125
X            header = 1;
X            `125
X          `125
X        fclose(fpr);
X        if (*fp_open > 1) while (!delete(fp_open));
X--- 558,564 -----
X              `125
X            header = 1;
X            `125
X+         else if (crosspost && strncmp(xfrbuf,"Path:",5)) fputs(xfrbuf,fpw);
X          `125
X        fclose(fpr);
X        if (*fp_open > 1) while (!delete(fp_open));
X**************
X*** 489,499
X        fclose(fpr);
X        `125
X      *infile = '\0';
X!     parse_newsgroups(ngroup,follow_groups,1,1);
X!     if (fpr = profile_sigfile(ngroup)) `123
X!       fputs("-- \n",fpw);
X!       while (fgets(xfrbuf,512,fpr)) fputs(xfrbuf,fpw);
X!       fclose(fpr);
X        `125
X      fclose(fpw);
X `032
X--- 569,582 -----
X        fclose(fpr);
X        `125
X      *infile = '\0';
X!     if (crosspost) parse_newsgroups(ngroup,"",1,1,1);
X!     else `123
X!       parse_newsgroups(ngroup,follow_groups,1,1,1);
X!       if (fpr = profile_sigfile(ngroup)) `123
X!         fputs("-- \n",fpw);
X!         while (fgets(xfrbuf,512,fpr)) fputs(xfrbuf,fpw);
X!         fclose(fpr);
X!         `125
X        `125
X      fclose(fpw);
X `032
X**************
X*** 553,559
X    strcpy(loc_id,gen_id());
X    mail_add_expiry = 0;
X `032
X!   if (!subj_param) `123
X      if (!*s) status = get_input(&s_dsc,c$dsc("Subject: "),&s_len);
V      else status = get_input_dflt(&s_dsc,c$dsc("Subject: "),&s_len,c$dsc(s),
X0);
X      if ((status == RMS$_EOF) `124`124 (status == SMG$_EOF)) `123
X--- 636,642 -----
X    strcpy(loc_id,gen_id());
X    mail_add_expiry = 0;
X `032
X!   if (!subj_param && !crosspost) `123
X      if (!*s) status = get_input(&s_dsc,c$dsc("Subject: "),&s_len);
V      else status = get_input_dflt(&s_dsc,c$dsc("Subject: "),&s_len,c$dsc(s),
X0);
X      if ((status == RMS$_EOF) `124`124 (status == SMG$_EOF)) `123
X**************
X*** 624,630
X `032
X    fprintf(fpw,"Path: %s!%s\n",news_node,usr_username);
X    sprintf(post_path," %s!%s",news_node,usr_username);
X!   fprintf(fpw,"From: %s@%s",mail_sig,Node_address);
X    if (*usr_persname) fprintf(fpw," (%s)",usr_persname);
X    fprintf(fpw,"\n");
X    fprintf(fpw,"Newsgroups: %s\n",ngroup);
X--- 707,714 -----
X `032
X    fprintf(fpw,"Path: %s!%s\n",news_node,usr_username);
X    sprintf(post_path," %s!%s",news_node,usr_username);
X!   if (!crosspost) fprintf(fpw,"From: %s",mail_sig);
X!   else fprintf(fpw,"From: %s\nXPosted: %s",from,mail_sig);
X    if (*usr_persname) fprintf(fpw," (%s)",usr_persname);
X    fprintf(fpw,"\n");
X    fprintf(fpw,"Newsgroups: %s\n",ngroup);
X**************
X*** 628,634
X    if (*usr_persname) fprintf(fpw," (%s)",usr_persname);
X    fprintf(fpw,"\n");
X    fprintf(fpw,"Newsgroups: %s\n",ngroup);
X!   if (control_switch) fprintf(fpw,"Control: %s\n",s);
X    fprintf(fpw,"%s",subj_line);
X    fprintf(fpw,"Message-ID: %s\n",loc_id);
X    fprintf(fpw,"Date: %d %.3s %d %02d:%02d:%02d %s\n",
X--- 712,722 -----
X    if (*usr_persname) fprintf(fpw," (%s)",usr_persname);
X    fprintf(fpw,"\n");
X    fprintf(fpw,"Newsgroups: %s\n",ngroup);
X!   if (control_switch) `123
X!     fprintf(fpw,"Control: %s\n",control_val);
X!     if (add_approved) fprintf(fpw,"Approved: %s\n",mail_sig);
X!     `125
X!   else add_approved = 0;
X    fprintf(fpw,"%s",subj_line);
X    fprintf(fpw,"Message-ID: %s\n",loc_id);
X    fprintf(fpw,"Date: %d %.3s %d %02d:%02d:%02d %s\n",
X**************
X*** 635,640
X            stm->tm_mday,p,stm->tm_year,stm->tm_hour,stm->tm_min,stm->tm_sec,
X            news_timezone);
X    if (*ref_line) fputs(ref_line,fpw);
X `032
X    if (!use_default) `123
X      err_line("\tSummary of posting [no Summary]\n");
X--- 723,737 -----
X            stm->tm_mday,p,stm->tm_year,stm->tm_hour,stm->tm_min,stm->tm_sec,
X            news_timezone);
X    if (*ref_line) fputs(ref_line,fpw);
X+   if (crosspost) `123
X+     if (*xnewsgroups) fprintf(fpw,"XNewsgroups: %s",xnewsgroups);
X+     fprintf(fpw,"Followup-To: ");
X+     if (*followup_groups) fprintf(fpw,"%s",followup_groups);
X+     else fprintf(fpw,"%s",ngroup);
X+     if (*xfollowgroups) fprintf(",%s",xfollowgroups);
X+     else if (*xnewsgroups) fprintf(fpw,",%s",xnewsgroups);
X+     else fprintf(fpw,"\n");
X+     `125
X `032
X    if (!use_default) `123
X      err_line("\tSummary of posting [no Summary]\n");
X**************
X*** 753,762
X      if (*distribution) fprintf(fpw,"Distribution: %s\n",distribution);
X      `125
X `032
X!   if (*profile_organization)
X!     fprintf(fpw,"Organization: %s\n",profile_organization);
X!   else if (*Organisation_name)
X!     fprintf(fpw,"Organization: %s\n",Organisation_name);
X `032
X    if (!sys_local_accept(ngroup,post_dist)) `123
V      err_line("\tPost - Distribution of item not accepted by local news filt
Xer\n");
X--- 850,861 -----
X      if (*distribution) fprintf(fpw,"Distribution: %s\n",distribution);
X      `125
X `032
X!   if (!crosspost) `123
X!     if (*profile_organization)
X!       fprintf(fpw,"Organization: %s\n",profile_organization);
X!     else if (*Organisation_name)
X!       fprintf(fpw,"Organization: %s\n",Organisation_name);
X!     `125
X `032
X    if (!sys_local_accept(ngroup,post_dist)) `123
V      err_line("\tPost - Distribution of item not accepted by local news filt
Xer\n");
X**************
X*** 812,818
X      `125
X    c$cks(1);
X `032
X!   if (approval_required) fprintf(fpw,"Approved: %s\n",mod_address);
X    if (*post_address)
X      fprintf(fpw,"News-Moderator: Approval required for posting to %s\n",
X              ga[g]->grp_name);
X--- 911,918 -----
X      `125
X    c$cks(1);
X `032
X!   if (approval_required && !add_approved)`032
X!     fprintf(fpw,"Approved: %s\n",mod_address);
X    if (*post_address)
X      fprintf(fpw,"News-Moderator: Approval required for posting to %s\n",
X              ga[g]->grp_name);
X**************
X*** 816,823
X    if (*post_address)
X      fprintf(fpw,"News-Moderator: Approval required for posting to %s\n",
X              ga[g]->grp_name);
X!   fprintf(fpw,"Lines: %d\n",line_count);
X!   fprintf(fpw,"\n");
X    while (fgets(xfrbuf,510,fpr)) fputs(xfrbuf,fpw);
X    fclose(fpr);
X    fclose(fpw);
X--- 916,925 -----
X    if (*post_address)
X      fprintf(fpw,"News-Moderator: Approval required for posting to %s\n",
X              ga[g]->grp_name);
X!   if (!crosspost) `123
X!     fprintf(fpw,"Lines: %d\n",line_count);
X!     fprintf(fpw,"\n");
X!     `125
X    while (fgets(xfrbuf,510,fpr)) fputs(xfrbuf,fpw);
X    fclose(fpr);
X    fclose(fpw);
X**************
X*** 918,924
X `032
X  do_post()
X  `123
X!   return(do_posting(1));
X  `125
X  `012
X  /*
X--- 1020,1026 -----
X `032
X  do_post()
X  `123
X!   return(do_posting(1,0));
X  `125
X  `012
X  /*
X**************
X*** 929,935
X `032
X  do_followup()
X  `123
X!   return(do_posting(0));
X  `125
X  `012
X  /*
X--- 1031,1042 -----
X `032
X  do_followup()
X  `123
X!   return(do_posting(0,0));
X! `125
X!`032
X! do_xpost()
X! `123
X!   return(do_posting(0,1));
X  `125
X  `012
X  /*
$ GOSUB UNPACK_FILE

$ FILE_IS = "NEWSRC.DIFF"
$ CHECKSUM_IS = 1443011311
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X*** [.news_v59_src]newsrc.c
X--- [.news_src]newsrc.c
X**************
X*** 44,50
X  globalref int newscmd;
X `032
X  int profile_auto = 0,
X!     profile_scansize = -1;
X `032
X  char profile_signature[256] = `123"@"`125,
X       profile_locsignature[256] = `123"@"`125,
X--- 44,53 -----
X  globalref int newscmd;
X `032
X  int profile_auto = 0,
X!     profile_scansize = -1,
X!     profile_filter = 0,
X!     include_all_groups = 0,
X!     reorder_groups = 0;
X `032
X  char profile_signature[256] = `123"@"`125,
X       profile_locsignature[256] = `123"@"`125,
X**************
X*** 161,166
X        l_itm,
X        g = 0,
X        i,
X        new_cg;
X    GRP_PTR l_ga;
X `032
X--- 164,170 -----
X        l_itm,
X        g = 0,
X        i,
X+       ca_i = 1,
X        new_cg;
X    GRP_PTR l_ga,
X            *ca;
X**************
X*** 162,168
X        g = 0,
X        i,
X        new_cg;
X!   GRP_PTR l_ga;
X `032
X    *profile_dirstr = '\0';
X    if (!(regr = fopen(news_register,"r"))) `123
X--- 166,173 -----
X        i,
X        ca_i = 1,
X        new_cg;
X!   GRP_PTR l_ga,
X!           *ca;
X `032
X    ca = (GRP_PTR *) malloc((ga_size + 1) * (sizeof *ca));
X `032
X**************
X*** 164,169
X        new_cg;
X    GRP_PTR l_ga;
X `032
X    *profile_dirstr = '\0';
X    if (!(regr = fopen(news_register,"r"))) `123
X      FILE *fpold;
X--- 169,180 -----
X    GRP_PTR l_ga,
X            *ca;
X `032
X+   ca = (GRP_PTR *) malloc((ga_size + 1) * (sizeof *ca));
X+`032
X+   for (g = 1; g <= ga_size ; ++g) `123
X+     ga[g]->grp_flags &= `126NEWS_M_OLDGROUP;
X+     `125
X+`032
X    *profile_dirstr = '\0';
X    if (!(regr = fopen(news_register,"r","mbc=40"))) `123
X      FILE *fpold;
X**************
X*** 165,171
X    GRP_PTR l_ga;
X `032
X    *profile_dirstr = '\0';
X!   if (!(regr = fopen(news_register,"r"))) `123
X      FILE *fpold;
X      char buff[512];
X      if (fpold = fopen("SYS$LOGIN:NEWS_GROUPS.REGISTER","r")) `123
X--- 176,182 -----
X      `125
X `032
X    *profile_dirstr = '\0';
X!   if (!(regr = fopen(news_register,"r","mbc=40"))) `123
X      FILE *fpold;
X      char buff[512];
X      if (fpold = fopen("SYS$LOGIN:NEWS_GROUPS.REGISTER","r","mbc=40")) `123
X**************
X*** 168,175
X    if (!(regr = fopen(news_register,"r"))) `123
X      FILE *fpold;
X      char buff[512];
X!     if (fpold = fopen("SYS$LOGIN:NEWS_GROUPS.REGISTER","r")) `123
X!       regr = fopen(news_register,"w");
X        while (fgets(buff,512,fpold)) fputs(buff,regr);
X        fclose(fpold);
X        fclose(regr);
X--- 179,186 -----
X    if (!(regr = fopen(news_register,"r","mbc=40"))) `123
X      FILE *fpold;
X      char buff[512];
X!     if (fpold = fopen("SYS$LOGIN:NEWS_GROUPS.REGISTER","r","mbc=40")) `123
X!       regr = fopen(news_register,"w","mbc=40");
X        while (fgets(buff,512,fpold)) fputs(buff,regr);
X        fclose(fpold);
X        fclose(regr);
X**************
X*** 173,179
X        while (fgets(buff,512,fpold)) fputs(buff,regr);
X        fclose(fpold);
X        fclose(regr);
X!       if (!(regr = fopen(news_register,"r"))) return(0);
X        while (!delete("SYS$LOGIN:NEWS_GROUPS.REGISTER"));
X        `125
X      else `123
X--- 184,190 -----
X        while (fgets(buff,512,fpold)) fputs(buff,regr);
X        fclose(fpold);
X        fclose(regr);
X!       if (!(regr = fopen(news_register,"r","mbc=40"))) return(0);
X        while (!delete("SYS$LOGIN:NEWS_GROUPS.REGISTER"));
X        `125
X      else `123
X**************
X*** 178,184
X        `125
X      else `123
X        sysprv();
X!       if (!(regr = fopen("NEWS_MANAGER:NEWSRC.TEMPLATE","r"))) `123
X          nosysprv();
X          return(0);
X          `125
X--- 189,195 -----
X        `125
X      else `123
X        sysprv();
V!       if (!(regr = fopen("NEWS_MANAGER:NEWSRC.TEMPLATE","r","mbc=40"))) `12
X3
X          nosysprv();
X          return(0);
X          `125
X**************
X*** 226,231
X        `125
X      if (!(g = ga_exact_name(inline))) continue;
X      l_ga = ga[g];
V      l_ga->grp_flags `124= NEWS_M_OLDGROUP;   /* flag this newsgroup as not
X new! */
X `032
X      if (!curr_g) curr_g = g;
X--- 237,245 -----
X        `125
X      if (!(g = ga_exact_name(inline))) continue;
X      l_ga = ga[g];
X+     if (!(l_ga->grp_flags & NEWS_M_OLDGROUP)) `123
X+       if (ca_i <= ga_size) ca[ca_i++] = l_ga;
X+       `125
V      l_ga->grp_flags `124= NEWS_M_OLDGROUP;   /* flag this newsgroup as not
X new! */
X `032
X      if (!curr_g) curr_g = g;
X**************
X*** 279,284
V    if ((new_vals >= 2) && (new_cg = ga_exact_name(new_name))) curr_g = new_c
Xg;
X    set_level(1);
X `032
X    for (g = 1; g <= ga_size ; ++g) `123
X      if (ga[g]->grp_flags & NEWS_M_LOCAL)
X        add_class_member("$LOCAL",ga[g]->grp_num);
X--- 293,306 -----
V    if ((new_vals >= 2) && (new_cg = ga_exact_name(new_name))) curr_g = new_c
Xg;
X    set_level(1);
X `032
X+   if (profile_filter && !reorder_groups) `123
X+     ca_i = 1;
X+     for (g = 1; g <= ga_size ; ++g) `123
X+       if ((ga[g]->grp_flags & NEWS_M_OLDGROUP) && (ca_i <= ga_size))
X+         ca[ca_i++] = l_ga;
X+       `125
X+     `125
X+`032
X    for (g = 1; g <= ga_size ; ++g) `123
X      if (   include_all_groups
X          && !(ga[g]->grp_flags & NEWS_M_OLDGROUP)
X**************
X*** 280,285
X    set_level(1);
X `032
X    for (g = 1; g <= ga_size ; ++g) `123
X      if (ga[g]->grp_flags & NEWS_M_LOCAL)
X        add_class_member("$LOCAL",ga[g]->grp_num);
X      else
X--- 302,311 -----
X      `125
X `032
X    for (g = 1; g <= ga_size ; ++g) `123
X+     if (   include_all_groups
X+         && !(ga[g]->grp_flags & NEWS_M_OLDGROUP)
X+         && (ca_i <= ga_size))
X+       ca[ca_i++] = l_ga;
X      if (ga[g]->grp_flags & NEWS_M_LOCAL)
X        add_class_member("$LOCAL",ga[g]->grp_num);
X      else
X**************
X*** 285,290
X      else
X        add_class_member("$NET",ga[g]->grp_num);
X      `125
X    sysprv();
X    if (regr = fopen("NEWS_MANAGER:NEWS.CLASSES","r")) `123
X      char class[132], *cp, *cp2, *cp3;
X--- 311,324 -----
X      else
X        add_class_member("$NET",ga[g]->grp_num);
X      `125
X+`032
X+   if (profile_filter `124`124 reorder_groups) `123
X+     for (g = 1; g <= ga_size ; ++g) `123
X+       if (g < ca_i) ga[g] = ca[g];
X+       `125
-+-+-+-+-+ End of part 8 +-+-+-+-+-