gih900@csc.anu.oz (Geoff Huston) (11/25/89)
+-+-+-+ Beginning of part 5 +-+-+-+ X distribution[512], id[256], from[256], follow_groups[512], X xnewsgroups[512], xfollowgroups[512], V followup_groups[512], ref_line[256], old_ref_line[256], subj_line[25 X6], X! mod_address[132], post_address[256], control_val[256], X *cp, *p, *c1, *c2, *cn1, *cn2, *xx, *yy, *zz, lg[132], *pa; X int approval_required = 0, X add_approved = 1, X************** X*** 317,322 X mod_address[132], post_address[256], X *cp, *p, *c1, *c2, *cn1, *cn2, *xx, *yy, *zz, lg[132], *pa; X int approval_required = 0, X fd, X g, X use_default = 1, X--- 319,325 ----- X mod_address[132], post_address[256], control_val[256], X *cp, *p, *c1, *c2, *cn1, *cn2, *xx, *yy, *zz, lg[132], *pa; X int approval_required = 0, X+ add_approved = 1, X fd, X g, X use_default = 1, X************** X*** 336,342 X $DESCRIPTOR(infile_dsc,infile); X `032 X itm_approved = 0; X! *post_dist = *follow_groups = *followup_groups = '\0'; X `032 X if (cli$present(c$dsc("HEADERS")) & 1) use_default = 0; X mail_self = (cli$present(c$dsc("SELF")) & 1); X--- 339,345 ----- X $DESCRIPTOR(infile_dsc,infile); X `032 X itm_approved = 0; V! *post_dist = *follow_groups = *followup_groups = *xnewsgroups = *xfollowg Xroups = '\0'; X `032 X if (crosspost) `123 X use_default = 1; X************** X*** 338,346 X itm_approved = 0; X *post_dist = *follow_groups = *followup_groups = '\0'; X `032 X! if (cli$present(c$dsc("HEADERS")) & 1) use_default = 0; X! mail_self = (cli$present(c$dsc("SELF")) & 1); X! edit_switch = (cli$present(c$dsc("EDIT")) & 1); X `032 X if (postfile) `123 X if (cli$present(c$dsc("CONTROL")) & 1) `123 X--- 341,357 ----- X itm_approved = 0; V *post_dist = *follow_groups = *followup_groups = *xnewsgroups = *xfollowg Xroups = '\0'; X `032 X! if (crosspost) `123 X! use_default = 1; X! mail_self = 0; X! edit_switch = 0; X! postfile = 0; X! `125 X! else `123 X! if (cli$present(c$dsc("HEADERS")) & 1) use_default = 0; X! mail_self = (cli$present(c$dsc("SELF")) & 1); X! edit_switch = (cli$present(c$dsc("EDIT")) & 1); X! `125 X `032 X if (postfile) `123 X if (cli$present(c$dsc("CONTROL")) & 1) `123 X************** X*** 346,351 X if (cli$present(c$dsc("CONTROL")) & 1) `123 V if (no_priv()) return(err_line("\tError: Post - No privs for Control X message generation\n"),0); X control_switch = 1; X `125 X `032 V if (cli$get_value(c$dsc("INFILE"),&infile_dsc,&infile_len) == CLI$_ABSE XNT) *infile = '\0'; X--- 357,377 ----- X if (cli$present(c$dsc("CONTROL")) & 1) `123 V if (no_priv()) return(err_line("\tError: Post - No privs for Control X message generation\n"),0); X control_switch = 1; X+ if (!(cli$get_value(c$dsc("CONTROL"),&infile_dsc,&infile_len) & 1)) X+ get_input(&infile_dsc,c$dsc("Control: "),&infile_len); X+ infile[infile_len] = '\0'; X+ if (!infile_len)`032 V+ return(err_line("\tError: Post/Control - No control message entered X\n"),0); X+ strcpy(control_val,infile); X+ sprintf(err_oline,"Add Approved: header to control posting [y]:"); X+ status = get_input(&command,c$dsc(err_oline),&response_length); X+ if ((status == RMS$_EOF) `124`124 (status == SMG$_EOF)) X+ return(err_line("\tPost - Canceled\n"),0); X+ if (!( (status & 1) X+ && ( !response_length X+ `124`124 ( response_length X+ && (toupper(*response) == 'Y'))))) X+ add_approved = 0; X `125 X `032 V if (cli$get_value(c$dsc("INFILE"),&infile_dsc,&infile_len) == CLI$_ABSE XNT) *infile = '\0'; X************** X*** 357,363 X s[s_len] = '\0'; X `125 X `032 X! parse_newsgroups(ngroup,((curr_g) ? ga[curr_g]->grp_name : ""),0,1); X if (!*ngroup) `123 X err_line("\tError: Post - No Authorized Newsgroups specified\n"); X return(0); X--- 383,389 ----- X s[s_len] = '\0'; X `125 X `032 X! parse_newsgroups(ngroup,((curr_g) ? ga[curr_g]->grp_name : ""),0,1,1); X if (!*ngroup) `123 X err_line("\tError: Post - No Authorized Newsgroups specified\n"); X return(0); X************** X*** 399,406 X return(0); X `125 X `032 X! extract_orig = (cli$present(c$dsc("EXTRACT")) & 1); X! if (!(cli$get_value(c$dsc("INFILE"),&infile_dsc,&infile_len) & 1)) X *infile = '\0'; X else infile[infile_len] = '\0'; X `032 X--- 425,432 ----- X return(0); X `125 X `032 X! if (crosspost) `123 X! extract_orig = 1; X *infile = '\0'; X `125 X else `123 X************** X*** 402,412 X extract_orig = (cli$present(c$dsc("EXTRACT")) & 1); X if (!(cli$get_value(c$dsc("INFILE"),&infile_dsc,&infile_len) & 1)) X *infile = '\0'; X- else infile[infile_len] = '\0'; X-`032 X- if ((!*infile) && (!edit_switch)) `123 X- err_line("\tError: Post - no file to post\n"); X- return(0); X `125 X `032 X fd = creat(Post_file,0,"rat=cr","rfm=var"); X--- 428,433 ----- X if (crosspost) `123 X extract_orig = 1; X *infile = '\0'; X `125 X else `123 X extract_orig = (cli$present(c$dsc("EXTRACT")) & 1); X************** X*** 408,413 X err_line("\tError: Post - no file to post\n"); X return(0); X `125 X `032 X fd = creat(Post_file,0,"rat=cr","rfm=var"); X if ((fd == -1) `124`124 (!(fpw = fdopen(fd,"w")))) `123 X--- 429,444 ----- X extract_orig = 1; X *infile = '\0'; X `125 X+ else `123 X+ extract_orig = (cli$present(c$dsc("EXTRACT")) & 1); X+ if (!(cli$get_value(c$dsc("INFILE"),&infile_dsc,&infile_len) & 1)) X+ *infile = '\0'; X+ else infile[infile_len] = '\0'; X+ if ((!*infile) && (!edit_switch)) `123 X+ err_line("\tError: Post - no file to post\n"); X+ return(0); X+ `125 X+ `125 X `032 X fd = creat(Post_file,0,"rat=cr","rfm=var"); X if ((fd == -1) `124`124 (!(fpw = fdopen(fd,"w")))) `123 X************** X*** 422,429 X while (fgets(xfrbuf,512,fpr)) `123 X if (header) `123 X if (extract_orig) `123 X! fputs(">",fpw); X! if (*xfrbuf != '>') fputs(" ",fpw); X fputs(xfrbuf,fpw); X `125 X `125 X--- 453,462 ----- X while (fgets(xfrbuf,512,fpr)) `123 X if (header) `123 X if (extract_orig) `123 X! if (!crosspost) `123 X! fputs(">",fpw); X! if (*xfrbuf != '>') fputs(" ",fpw); X! `125 X fputs(xfrbuf,fpw); X `125 X `125 X************** X*** 441,447 X `125 X else if (!strncmp(xfrbuf,"Subject:",8)) `123 X strcpy(subj_line,"Subject: "); V! if ((strncmp(&xfrbuf[9],"Re: ",4)) && (strncmp(&xfrbuf[9],"re: ", X4))) strcat(subj_line,"Re: "); X strcat(subj_line,&xfrbuf[9]); X strcpy(s,&subj_line[9]); X if (cp = strchr(s,'\n')) *cp = '\0'; X--- 474,482 ----- X `125 X else if (!strncmp(xfrbuf,"Subject:",8)) `123 X strcpy(subj_line,"Subject: "); X! if ( !crosspost X! && strncmp(&xfrbuf[9],"Re: ",4) X! && strncmp(&xfrbuf[9],"re: ",4)) strcat(subj_line,"Re: "); X strcat(subj_line,&xfrbuf[9]); X strcpy(s,&subj_line[9]); X if (cp = strchr(s,'\n')) *cp = '\0'; X************** X*** 446,455 X strcpy(s,&subj_line[9]); X if (cp = strchr(s,'\n')) *cp = '\0'; X `125 V! else if ((!strncmp(xfrbuf,"Newsgroups:",11)) && (!*follow_groups)) X `123 X! strcpy(follow_groups,&xfrbuf[12]); X! if (cp = strchr(follow_groups,'\n')) *cp = '\0'; X! s_to_lower(follow_groups); X `125 X else if (!strncmp(xfrbuf,"Followup-To:",12)) `123 X strcpy(follow_groups,&xfrbuf[13]); X--- 481,493 ----- X strcpy(s,&subj_line[9]); X if (cp = strchr(s,'\n')) *cp = '\0'; X `125 X! else if (!strncmp(xfrbuf,"Newsgroups:",11)) `123 X! strcpy(xnewsgroups,&xfrbuf[12]); X! if (!*follow_groups) `123 X! strcpy(follow_groups,&xfrbuf[12]); X! if (cp = strchr(follow_groups,'\n')) *cp = '\0'; X! s_to_lower(follow_groups); X! `125 X `125 X else if (!strncmp(xfrbuf,"Followup-To:",12)) `123 X strcpy(follow_groups,&xfrbuf[13]); X************** X*** 453,458 X `125 X else if (!strncmp(xfrbuf,"Followup-To:",12)) `123 X strcpy(follow_groups,&xfrbuf[13]); X if (cp = strchr(follow_groups,'\n')) *cp = '\0'; X s_to_lower(follow_groups); X strcpy(followup_groups,follow_groups); X--- 491,497 ----- X `125 X else if (!strncmp(xfrbuf,"Followup-To:",12)) `123 X strcpy(follow_groups,&xfrbuf[13]); X+ strcpy(xfollowgroups,follow_groups); X if (cp = strchr(follow_groups,'\n')) *cp = '\0'; X s_to_lower(follow_groups); X strcpy(followup_groups,follow_groups); X************** X*** 456,462 X if (cp = strchr(follow_groups,'\n')) *cp = '\0'; X s_to_lower(follow_groups); X strcpy(followup_groups,follow_groups); X! if (!strcmp(follow_groups,"poster")) `123 X fclose(fpr); X if (*fp_open > 1) while (!delete(fp_open)); X *fp_open = '\0'; X--- 495,501 ----- X if (cp = strchr(follow_groups,'\n')) *cp = '\0'; 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--- 506,512 ----- 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--- 511,518 ----- 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--- 520,526 ----- 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--- 531,544 ----- 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--- 598,604 ----- 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--- 669,676 ----- 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--- 674,684 ----- 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 -+-+-+-+-+ End of part 5 +-+-+-+-+-