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