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 +-+-+-+-+-