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

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

+-+-+-+ Beginning of part 7 +-+-+-+
X!     att_list[i].item_code = 0;
X!     att_list[i].buffer_address = 0;
X!     att_list[i].return_length_address = 0;
V!     if (!((sts = mail$send_add_address(&context,att_list,null_list)) & 1))
X `123
X!       mail$send_end(&context,null_list,null_list);
X!       nosysprv();
X!       clear_err_line();
X!       return(sts);
X!       `125
X      `125
X `032
X    i = 0;
X**************
X*** 182,189
X      no_broad_trap();
X      smg$end_pasteboard_update(&pid);
X      `125
X!   sprintf(mail_cmd,"MAIL/NOEDIT %s/SUBJECT=\"%s\" %s",
X!           file,quotes(subject),address);
X    lib$spawn(c$dsc(mail_cmd),0,0,0,0,0,0,0,0,0,0,0);
X    if (screen_active) `123
X      smg$begin_pasteboard_update(&pid);
X--- 219,226 -----
X      no_broad_trap();
X      smg$end_pasteboard_update(&pid);
X      `125
X!   sprintf(mail_cmd,"MAIL/NOEDIT%s %s/SUBJECT=\"%s\" %s",
V!           (mail_self_flag ? "/SELF" : "/NOSELF"),file,quotes(subject),addre
Xss);
X    lib$spawn(c$dsc(mail_cmd),0,0,0,0,0,0,0,0,0,0,0);
X    if (screen_active) `123
X      smg$begin_pasteboard_update(&pid);
X**************
X*** 207,214
X    do `123
X      if (cp2 = strchr(cp1,',')) *cp2++ = '\0';
X      util_cvrt(s,cp1);
X!     if ((g = ga_exact_name(s))
X!         && (!(ga[g]->grp_flags & NEWS_M_LOCAL)))
X        return(0);
X      `125 while (cp1 = cp2);
X    return(1);
X--- 244,252 -----
X    do `123
X      if (cp2 = strchr(cp1,',')) *cp2++ = '\0';
X      util_cvrt(s,cp1);
X!     if (   (g = ga_exact_name(s))
X!         && (   !(ga[g]->grp_flags & NEWS_M_LOCAL)
X!             `124`124 (ga[g]->grp_flags & NEWS_M_MAILLIST)))
X        return(0);
X      `125 while (cp1 = cp2);
X    return(1);
X**************
X*** 220,226
X   *  Parse the newsgroup specification, building a comma separated list.
X   */ `032
X `032
X! parse_newsgroups(newslist,dflt,ask,use_aliases)
X    char *newslist, *dflt;
X    int ask, use_aliases;
X  `123
X--- 258,264 -----
X   *  Parse the newsgroup specification, building a comma separated list.
X   */ `032
X `032
X! parse_newsgroups(newslist,dflt,ask,use_aliases,auth_check)
X    char *newslist, *dflt;
X    int ask, use_aliases, auth_check;
X  `123
X**************
X*** 222,228
X `032
X  parse_newsgroups(newslist,dflt,ask,use_aliases)
X    char *newslist, *dflt;
X!   int ask, use_aliases;
X  `123
X    char newsgroups[256];
X    short newsgroups_len;
X--- 260,266 -----
X `032
X  parse_newsgroups(newslist,dflt,ask,use_aliases,auth_check)
X    char *newslist, *dflt;
X!   int ask, use_aliases, auth_check;
X  `123
X    char newsgroups[256];
X    short newsgroups_len;
X**************
X*** 236,242
X      if (status == RMS$_EOF) longjmp(env,2);
X      newsgroups[newsgroups_len] = '\0';
X      if (use_aliases) strcpy(newsgroups,aliases(newsgroups));
X!     auth_list(newsgroups);
X      strcpy(newslist,newsgroups);
X      `125
X    else `123
X--- 274,280 -----
X      if (status == RMS$_EOF) longjmp(env,2);
X      newsgroups[newsgroups_len] = '\0';
X      if (use_aliases) strcpy(newsgroups,aliases(newsgroups));
X!     if (auth_check) auth_list(newsgroups);
X      strcpy(newslist,newsgroups);
X      `125
X    else `123
X**************
X*** 244,250
X      do `123
X        newsgroups[newsgroups_len] = '\0';
X        if (use_aliases) strcpy(newsgroups,aliases(newsgroups));
X!       if (auth_list(newsgroups)) `123
X          strcat(newslist,newsgroups);
X          strcat(newslist,",");
X          `125
X--- 282,288 -----
X      do `123
X        newsgroups[newsgroups_len] = '\0';
X        if (use_aliases) strcpy(newsgroups,aliases(newsgroups));
X!       if (!auth_check `124`124 auth_list(newsgroups)) `123
X          strcat(newslist,newsgroups);
X          strcat(newslist,",");
X          `125
X**************
X*** 302,309
X   *  post a new news item
X   */
X `032
X! do_posting(postfile)
X!   int postfile;
X  `123
X    char ngroup[512],
X         post_dist[132], post_path[132],
X--- 340,348 -----
X   *  post a new news item
X   */
X `032
X! static
X! do_posting(postfile,crosspost)
X!   int postfile, crosspost;
X  `123
X    char ngroup[512],
X         post_dist[132], post_path[132],
X**************
X*** 313,318
X         xfrbuf[512],
X         *cp1, *cp2,
X         distribution[512], id[256], from[256], follow_groups[512],
V         followup_groups[512], ref_line[256], old_ref_line[256], subj_line[25
X6],
X          mod_address[132], post_address[256],
X         *cp, *p, *c1, *c2, *cn1, *cn2, *xx, *yy, *zz, lg[132], *pa;
X--- 352,358 -----
X         xfrbuf[512],
X         *cp1, *cp2,
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**************
X*** 314,320
X         *cp1, *cp2,
X         distribution[512], id[256], from[256], follow_groups[512],
V         followup_groups[512], ref_line[256], old_ref_line[256], subj_line[25
X6],
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--- 354,360 -----
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--- 357,363 -----
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--- 377,383 -----
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--- 379,395 -----
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--- 395,415 -----
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--- 421,427 -----
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--- 463,470 -----
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--- 466,471 -----
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--- 467,482 -----
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--- 491,500 -----
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--- 512,520 -----
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--- 519,531 -----
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--- 529,535 -----
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--- 533,539 -----
X            if (cp = strchr(follow_groups,'\n')) *cp = '\0';
-+-+-+-+-+ End of part 7 +-+-+-+-+-