From:	SMTP%"bailey@HMIVAX.HUMGEN.UPENN.EDU" 27-MAY-1994 08:43:23.45
To:	EVERHART
CC:	
Subj:	Patch: Re: Another V6.1-B9 problem

Message-Id: <9405270841.AA15816@uu7.psi.com>
Date:         Fri, 27 May 1994 01:44:38 EDT
Reply-To: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Sender: ANU-NEWS Discussion <ANU-NEWS@VM1.NoDak.EDU>
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Organization: HHMI/Human Genetics, Univ of Pa.
Subject:      Patch: Re: Another V6.1-B9 problem
To: Multiple recipients of list ANU-NEWS <ANU-NEWS@VM1.NoDak.EDU>

In article <940524112809.7285@skitzo.dseg.ti.com>, Eric Dittman <DITTMAN@SKITZO.
DSEG.TI.COM> writes:
> I was looking through the logs to see if I could find where the performance
> problem was with V6.1-B9 when I noticed the following error in the log file
> for last night's skim:
>
>>       comp.sys.3b1 - 2 items expired (09:21:22)
>>       comp.sys.acorn - 93 items expired (09:25:41)
>>%NEWS-F-OPNFAIL, Error opening file NEWS_DEVICE:[comp.sys.amiga.advocacy]88544
.ITM for reading
>>-RMS-E-FLK, file currently locked by another user
>>-NEWS-I-SOURCE, Module NEWSUTILITY, line 811
>>Job NEWSSKIM (queue CRON, entry 233) holding until 25-MAY-1994 00:00
>>...
>
> It looks like V6.1-B9 has a problem with skimming while adding is going on.
> The skim job dies rather than going on with the skim.

This is actually an improvement of sorts - in previous versions, the error was
not trapped, and News just deleted the item in question.

Appended to this post is a patch which converts all errors which occur when
processing item files during a skim pass into informational messages, so you
know when something's up, but the skim doesn't quit.  You can do something
similar by invoking News with the /On_Error=Continue qualifier for the skim
pass; this ignores all errors which occur during that session.

One note to those applying this patch: It updates NewsExtern.H, and so will
cause NewsBuild.Com to recompile all source files, unless you use File or
soemthing similar to reset the revision date on the patched NewsExtern.H  (The
changes to NewsExtern.H don't affect any files not already changed by this
patch.)

                    Regards,
                    Charles Bailey

!-------------------------------------------------------------------------------
!              Computational Biology and Informatics Laboratory
!         Dept. of Genetics, Univ. of Pennsylvania School of Medicine
!              Philadelphia, PA USA 19104     Tel. (215) 573-3112
!          Internet: bailey@genetics.upenn.edu  (IN 128.91.200.37)
!-------------------------------------------------------------------------------
$! ------------------ CUT HERE -----------------------
$ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))'
$!
$! This archive created:
$!  Name : 940526_NEWSSKIM.PATCH
$!  By   : bailey@genetics.upenn.edu
$!  Date : 27-MAY-1994 01:35:04.30
$!  Using: VMS_SHARE 8.4, (C) 1993 Andy Harper, Kings College London UK
$!
$! Credit is due to these people for their original ideas:
$!    James Gray, Michael Bednarek
$!
$! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
$! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
$!
$! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
$!       1. 940526_NEWSSKIM.PATCH
$!
$ set="set"
$ set symbol/scope=(nolocal,noglobal)
$ f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID"))
$ e="write sys$error  ""%UNPACK"", "
$ w="write sys$output ""%UNPACK"", "
$ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!"
$ if f$getsyi("CPU") .gt. 127 then $ goto start
$ ve=f$getsyi("version")
$ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start
$ e "-E-OLDVER, Must run at least VMS 4.4"
$ v=f$verify(v)
$ exit 44
$unpack: subroutine ! P1=filename, P2=checksum, P3=attributes,P4=size
$ if f$parse(P1) .nes. "" then $ goto dirok
$ dn=f$parse(P1,,,"DIRECTORY")
$ w "-I-CREDIR, Creating directory ''dn'"
$ create/dir 'dn'
$ if $status then $ goto dirok
$ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped"
$ delete 'f'*
$ exit
$dirok:
$ x=f$search(P1)
$ if x .eqs. "" then $ goto file_absent
$ e "-W-HIGHVERS, Creating higher version of ", P1
$file_absent:
$ w "-I-UNPACK, Unpacking ", P5, " of ", P6, " - ", P1, " - ", P4, " Blocks"
$ n=P1
$ if P3 .nes. "" then $ n=f
$ if .not. f$verify() then $ define/user sys$output nl:
$ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT/NOJOURNAL 'f'/OUT='n'
PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t,
SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE;PROCEDURE SkipPartsep LOCAL m;
LOOP m:=MARK(NONE);EXITIF m=END_OF(b);DELETE(m);EXITIF INDEX(ERASE_LINE,
"-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b,
n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;IF c = "X" THEN SPLIT_LINE; ENDIF;
MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1);
p := p+1;CASE c FROM ' ' TO '`' ['`']: COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[
' ']: p:=p+1;[INRANGE,OUTRANGE]: COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE;
PROCEDURE Decode LOCAL m;POSITION(BEGINNING_OF(b));LOOP m:=MARK(NONE);EXITIF m=
END_OF(b);DELETE(m);IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=
1 THEN SkipPartSep;ELSE ProcessLine;MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;
ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET(SUCCESS,OFF);SET(INFORMATIONAL,
OFF);t:="0123456789ABCDEF";f:=GET_INFO(COMMAND_LINE,"file_name");b:=
CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,GET_INFO(COMMAND_LINE,"output_file"));
QUIT;
$ if p3 .eqs. "" then $ goto dl
$ open/write fdl &f
$ write fdl "RECORD"
$ write fdl P3
$ close fdl
$ w "-I-CONVRFM, Converting record format to ", P3
$ convert/fdl=&f &f-1 &P1
$dl: delete 'f'*
$ checksum 'P1'
$ if checksum$checksum .nes. P2 then $ -
  e "-E-CHKSMFAIL, Checksum of ''P1' failed."
$ exit
$ endsubroutine
$start:
$!
$ create 'f'
XANU`20News`20Patch
XPatch`20ID:`20940526_newsskim.c!bailey@genetics.upenn.edu
XDate:`2026-May-1994
XAuthor:`20Charles`20Bailey`20`20bailey@genetics.upenn.edu
XNews`20Version:`206.1beta9
XNews`20Files:`20NewsSkim.C,`20NewsUtility.C,`20NewsControl.C,`20NewsDelete.C,
V
X`20`20NewsExtern.H
XDescription:`20Adds`20ability`20to`20determine`20whether`20attempt`20to`20open
V`20an`20item`20file
Xfailed`20because`20the`20file`20was`20locked`20by`20another`20user,`20and`20if
V`20so`20to`20ignore`20it.
XAbsent`20this,`20if`20the`20item`20file`20was`20locked,`20an`20error`20was`20r
Veturned`20in`20version
X6.1beta9;`20in`20previous`20versions`20the`20command`20affected`20might`20fail
V,`20or,`20if`20the
Xerror`20was`20incurred`20during`20a`20skim`20pass,`20the`20item`20was`20delete
Vd.
X***`20newsskim.c
X---`20newsskim_new.c
X**************
X***`2028,30
X`20`20**
X`20`20**--
X`20`20**/
X---`2028,33`20-----
X+`20**`09V6.1b9`20`2025-May-1994`20`20Charles`20Bailey`20`20bailey@genetics.up
Venn.edu
X+`20**`09`20`20`20-`20add`20flk`20param`20to`20do_oitem`20calls`20and`20_ck_*_
Vinfo`20macros`20so
X+`20**`09`20`20`20`20`20file`20error`20doesn't`20cause`20entire`20skim`20pass
V`20to`20abort
X`20`20**
X`20`20**--
X`20`20**/
X**************
X***`2047,52
X`20`20
X`20`20#if`20vax11c
X`20`20#include`20sordef
X`20`20#else
X`20`20#include`20<sordef.h>
X`20`20#endif
X---`2050,56`20-----
X`20`20
X`20`20#if`20vax11c
X`20`20#include`20sordef
X+`20#include`20stsdef
X`20`20#else
X`20`20#include`20<sordef.h>
X`20`20#include`20<stsdef.h>
X**************
X***`2049,54
X`20`20#include`20sordef
X`20`20#else
X`20`20#include`20<sordef.h>
X`20`20#endif
X`20`20#define`09`20SOR$M_NODUPS`20`20`20`20`20`20`20`20`20`20`20`20`20`200x40
V
X`20`20
X---`2053,59`20-----
X`20`20#include`20stsdef
X`20`20#else
X`20`20#include`20<sordef.h>
X+`20#include`20<stsdef.h>
X`20`20#endif
X`20`20#define`09`20SOR$M_NODUPS`20`20`20`20`20`20`20`20`20`20`20`20`20`200x40
V
X`20`20
X**************
X***`20358,363
X`20`20`7D
X`20`20`0C
X`20`20/*
X`20`20`20*`20`20files_skim
X`20`20`20*
X`20`20`20*`20`20Delete`20all`20unreferenced`20ITM`20files`20in`20NEWS`20area
X---`20363,389`20-----
X`20`20`7D
X`20`20`0C
X`20`20/*
X+`20`20*`20error`20checking`20macros`20for`20use`20during`20skim`20-`20force
V`20initial`20condition`20to
X+`20`20*`20severity`20I,`20so`20that`20we`20don't`20abort`20the`20skim`20pass.
V
X+`20`20*`2026-May-1994`20`20Charles`20Bailey`20`20bailey@genetics.upenn.edu
X+`20`20*/
X+`20
X+`20#define`20_ck_error_fp_info(sts,file_ptr)`20`5C
X+`20`20`20(((file_ptr)`20`26`26`20!ferror(file_ptr))`20?`201`20:`20`5C
X+`20`20`20`20(report_cio_error_routine((sts`20`26`20`7ESTS$M_SEVERITY)`20`7C
V`20STS$K_INFO,`20`5C
X+`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20file_ptr,0,module_name_str,__LINE__),0))
X+`20
X+`20#define`20_ck_error_fn_info(sts,file_name)`20`5C
X+`20`20`20((!errno)`20?`201`20:`20`5C
X+`20`20`20`20(report_cio_error_routine((sts`20`26`20`7ESTS$M_SEVERITY)`20`7C
V`20STS$K_INFO,`20`5C
X+`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`200,file_name,module_name_str,__LINE__),0))
X+`20
X+`20#define`20_ck_close_info(file_ptr)`20_ck_error_fp_info(NEWS$_CLOFAIL,file_
Vptr)
X+`20#define`20_ck_delete_info(file_name)`20_ck_error_fn_info(NEWS$_REMFAIL,fil
Ve_name)
X+`20#define`20_ck_open_info(file_name)`20_ck_error_fn_info(NEWS$_OPNFAIL,file_
Vname)
X+`20#define`20_ck_put_info(file_ptr)`20_ck_error_fp_info(NEWS$_PUTFAIL,file_pt
Vr)
X+`20
X+`20/*
X`20`20`20*`20`20files_skim
X`20`20`20*
X`20`20`20*`20`20Delete`20all`20unreferenced`20ITM`20files`20in`20NEWS`20area
X**************
X***`20445,451
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20if`20(no_grp)`20`7B
X`20`20`20`20`20`20`20`20++del_count;
X!`20`20`20`20`20`20`20if`20(delete(fnam))`20_ck_delete(fnam);
X`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20else`20`7B
X---`20471,477`20-----
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20if`20(no_grp)`20`7B
X`20`20`20`20`20`20`20`20++del_count;
X!`20`20`20`20`20`20`20if`20(delete(fnam))`20_ck_delete_info(fnam);
X`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20else`20`7B
X**************
X***`20454,460
X`20`20`20`20`20`20`20`20if`20((last_g`20==`20itm_key`5B1`5D)`20`26`26`20(last_
Vm`20==`20itm_key`5B0`5D))`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(verbose)`20printf("`5CtDelete`20%s`20-`20b
Vackup`20version?`5Cn",fnam);
X`20`20`20`20`20`20`20`20`20`20++del_count;
X!`20`20`20`20`20`20`20`20`20if`20(delete(fnam))`20_ck_delete(fnam);
X`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(!sys_get_nornf(`26itmrab))`20`7B
X---`20480,486`20-----
X`20`20`20`20`20`20`20`20if`20((last_g`20==`20itm_key`5B1`5D)`20`26`26`20(last_
Vm`20==`20itm_key`5B0`5D))`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(verbose)`20printf("`5CtDelete`20%s`20-`20b
Vackup`20version?`5Cn",fnam);
X`20`20`20`20`20`20`20`20`20`20++del_count;
X!`20`20`20`20`20`20`20`20`20if`20(delete(fnam))`20_ck_delete_info(fnam);
X`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(!sys_get_nornf(`26itmrab))`20`7B
X**************
X***`20459,465
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(!sys_get_nornf(`26itmrab))`20`7B
X`20`20`20`20`20`20`20`20`20`20++del_count;
X!`20`20`20`20`20`20`20`20`20if`20(delete(fnam))`20_ck_delete(fnam);
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20last_g`20=`20itm_key`5B1`5D;
X`20`20`20`20`20`20`20`20last_m`20=`20itm_key`5B0`5D;
X---`20485,491`20-----
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(!sys_get_nornf(`26itmrab))`20`7B
X`20`20`20`20`20`20`20`20`20`20++del_count;
X!`20`20`20`20`20`20`20`20`20if`20(delete(fnam))`20_ck_delete_info(fnam);
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20last_g`20=`20itm_key`5B1`5D;
X`20`20`20`20`20`20`20`20last_m`20=`20itm_key`5B0`5D;
X**************
X***`20525,531
X`20`20`20`20`20`20`20`20`20`20`20`20printf("`5Ct`5Ct%s`20-`20DELETED`5Cn",gnam
V);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20chmod(gnam,0755);
X!`20`20`20`20`20`20`20`20`20if`20(delete(gnam))`20_ck_delete(gnam);
X`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20strcpy(grp,util_undir(grp));
X---`20551,557`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20printf("`5Ct`5Ct%s`20-`20DELETED`5Cn",gnam
V);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20chmod(gnam,0755);
X!`20`20`20`20`20`20`20`20`20if`20(delete(gnam))`20_ck_delete_info(gnam);
X`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20strcpy(grp,util_undir(grp));
X**************
X***`20556,562
X`20`20`20`20`20`20`20`20`20`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20grp`5Bstrlen(grp)`20-`201`5D`20=`20'`5C0';
V
X`20`20`20`20`20`20`20`20`20`20`20`20sprintf(itm_fname,Access_template,util_dir
V(grp));
X!`20`09`20`20delete_file_versions(itm_fname);
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(!delete(gnam))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(verbose)`20printf("`5Ct`5Ct%s
V`20Deleted`20-`20no`20newsgroup`5Cn",gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X---`20582,589`20-----
X`20`20`20`20`20`20`20`20`20`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20grp`5Bstrlen(grp)`20-`201`5D`20=`20'`5C0';
V
X`20`20`20`20`20`20`20`20`20`20`20`20sprintf(itm_fname,Access_template,util_dir
V(grp));
X!`20`20`20`20`20`20`20`20`20`20`20while`20(!delete(itm_fname))`20;
X!`20`20`20`20`20`20`20`20`20`20`20if`20(errno`20!=`20ENOENT)`20_ck_delete_info
V(itm_fname);
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(!delete(gnam))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(verbose)`20printf("`5Ct`5Ct%s
V`20Deleted`20-`20no`20newsgroup`5Cn",gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X**************
X***`20561,567
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(verbose)`20printf("`5Ct`5Ct%s
V`20Deleted`20-`20no`20newsgroup`5Cn",gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20_ck_delete(gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(verbose)
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20printf("`5Ct`5Ct%s`20Not`20del
Veted`20-`20directory`20not`20empty`20or`20protected`5Cn",gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X---`20588,594`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(verbose)`20printf("`5Ct`5Ct%s
V`20Deleted`20-`20no`20newsgroup`5Cn",gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20_ck_delete_info(gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(verbose)
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20printf("`5Ct`5Ct%s`20Not`20del
Veted`20-`20directory`20not`20empty`20or`20protected`5Cn",gnam);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X**************
X***`20705,712
X`20`20`20`20`20`20`20`20`20`20sprintf(itm_fname,Access_template,util_dir(newsg
Vrp.grp_name));
X`20`20`20`20`20`20`20`20`20`20sysprv();
X`20`20`20`20`20`20`20`20`20`20if`20((fpr`20=`20fopen(itm_fname,"r"))`20!=`200)
V`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpr))`20_ck_close(fpr);
X!`20`09`20`20delete_file_versions(itm_fname);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20nosysprv();
X`20`20`20`20`20`20`20`20`20`20`7D
X---`20732,740`20-----
X`20`20`20`20`20`20`20`20`20`20sprintf(itm_fname,Access_template,util_dir(newsg
Vrp.grp_name));
X`20`20`20`20`20`20`20`20`20`20sysprv();
X`20`20`20`20`20`20`20`20`20`20if`20((fpr`20=`20fopen(itm_fname,"r"))`20!=`200)
V`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpr))`20_ck_close_info(fpr);
X!`20`20`20`20`20`20`20`20`20`20`20while`20(!delete(itm_fname))`20;
X!`20`20`20`20`20`20`20`20`20`20`20if`20(errno`20!=`20ENOENT)`20_ck_delete_info
V(itm_fname);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20nosysprv();
X`20`20`20`20`20`20`20`20`20`20`7D
X**************
X***`20772,778
X`20`20`20`20time_t`20cur_time,t;
X`20`20`20`20int`20del_all_itms`20=`200,`20itm_count`20=`200,`20glob_exp_time,
V`20grp_exp_time`20=`200,
X`20`20`20`20`20`20`20`20itm_exp_time,`20s_smg_active`20=`200,`20sor_start`20=
V`200,`20fchk`20=`201,`20hist_date,
X!`20`20`20`20`20`20`20mfo`20=`20mailfile_open,`20itm_skim_count;
X`20`20`20`20unsigned`20int`20itm_key`5B2`5D,`20cur_grp`20=`200;
X`20`20`20`20unsigned`20short`20glob_exp_val,`20grp_exp_val`20=`200,`20itm_exp_
Vval,
X`20`20`09`09`20arch_len,`20newsgroups_len;
X---`20800,806`20-----
X`20`20`20`20time_t`20cur_time,t;
X`20`20`20`20int`20del_all_itms`20=`200,`20itm_count`20=`200,`20glob_exp_time,
V`20grp_exp_time`20=`200,
X`20`20`20`20`20`20`20`20itm_exp_time,`20s_smg_active`20=`200,`20sor_start`20=
V`200,`20fchk`20=`201,`20hist_date,
X!`20`20`20`20`20`20`20mfo`20=`20mailfile_open,`20itm_skim_count,`20flk;
X`20`20`20`20unsigned`20int`20itm_key`5B2`5D,`20cur_grp`20=`200;
X`20`20`20`20unsigned`20short`20glob_exp_val,`20grp_exp_val`20=`200,`20itm_exp_
Vval,
X`20`20`09`09`20arch_len,`20newsgroups_len;
X**************
X***`201072,1085
X`20`20
X`20`20`20`20`20`20`20`20if`20(fchk)`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(!(fpr`20=`20do_oitem(`26newsitm,"r",newsgr
Vp.grp_name,0,
X!`20`09`09`09`20`20`20`20`20(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET))))
V`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(newsgrp.grp_flags`20`26`20NEWS_M_NNTPS
VRV)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20newsitm.itm_cachedate`20=`200;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20sys_update(`26itmrab);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(served_cmd)`20add_check_id(newsg
Vrp.grp_name,newsitm.itm_id,
X!`20`09`09`09`09`09`20newsgrp.grp_num,newsgrp.grp_srvnode,
X!`20`09`09`09`09`09`20grp_exp_time,newsgrp.grp_srvproto);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20++itm_skim_count;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20sys_delete(`26itmrab);
X---`201100,1107`20-----
X`20`20
X`20`20`20`20`20`20`20`20if`20(fchk)`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(!(fpr`20=`20do_oitem(`26newsitm,"r",newsgr
Vp.grp_name,0,
X!`20`09`09`09`20`20`20`20`20(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET),
V`26flk)))`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(flk)`20_ck_open_info(itm_fname);
X`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(newsgrp.grp_flags`20`26`20NEWS
V_M_NNTPSRV)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20newsitm.itm_cachedate`20=`200;
V
X**************
X***`201081,1089
X`20`20`09`09`09`09`09`20grp_exp_time,newsgrp.grp_srvproto);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20++itm_skim_count;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20sys_delete(`26itmrab);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20else`20`7B
X---`201103,1120`20-----
X`20`20`09`09`09`20`20`20`20`20(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET),
V`26flk)))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(flk)`20_ck_open_info(itm_fname);
X`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(newsgrp.grp_flags`20`26`20NEWS_M
V_NNTPSRV)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20newsitm.itm_cachedate`20=`200;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20sys_update(`26itmrab);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(served_cmd)`20add_check_id
V(newsgrp.grp_name,newsitm.itm_id,
X!`20`09`09`09`09`09`20`20`20newsgrp.grp_num,newsgrp.grp_srvnode,
X!`20`09`09`09`09`09`20`20`20grp_exp_time,newsgrp.grp_srvproto);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20++itm_skim_count;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20sys_delete(`26itmrab);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20continue;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20else`20`7B
X**************
X***`201087,1093
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpr))`20_ck_close(fpr);
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(!newsitm.itm_cachedate)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20time((time_t`20*)`20`26newsitm.itm_c
Vachedate);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20sys_update(`26itmrab);
X---`201118,1124`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20else`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpr))`20_ck_close_info(fpr);
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(!newsitm.itm_cachedate)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20time((time_t`20*)`20`26newsitm.itm_c
Vachedate);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20sys_update(`26itmrab);
X**************
X***`201137,1143
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20else`20fpo`20=`20fopen(arch_file,"w","rfm=var","
Vrat=cr");
X`20`20`20`20`20`20`20`20`20`20if`20(!fpo)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close(fpi);
X`20`20`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20if`20(fprintf(fpo,"#!`20rnews`20%d`5Cn",inp_file
V.st_size)`20<`200)`20_ck_put(fpo);
X---`201168,1174`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20else`20fpo`20=`20fopen(arch_file,"w","rfm=var","
Vrat=cr");
X`20`20`20`20`20`20`20`20`20`20if`20(!fpo)`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close_info(fpi);
X`20`20`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20if`20(fprintf(fpo,"#!`20rnews`20%d`5Cn",inp_file
V.st_size)`20<`200)`20_ck_put_info(fpo);
X**************
X***`201140,1146
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close(fpi);
X`20`20`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20if`20(fprintf(fpo,"#!`20rnews`20%d`5Cn",inp_file.s
Vt_size)`20<`200)`20_ck_put(fpo);
X`20`20`20`20`20`20`20`20`20`20while`20(fgets(xbuf,510,fpi))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20fputs(xbuf,fpo);`20_ck_put(fpo);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X---`201171,1177`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close_info(fpi);
V
X`20`20`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20if`20(fprintf(fpo,"#!`20rnews`20%d`5Cn",inp_file.s
Vt_size)`20<`200)`20_ck_put_info(fpo);
X`20`20`20`20`20`20`20`20`20`20while`20(fgets(xbuf,510,fpi))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20fputs(xbuf,fpo);`20_ck_put_info(fpo);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X**************
X***`201142,1148
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20if`20(fprintf(fpo,"#!`20rnews`20%d`5Cn",inp_file
V.st_size)`20<`200)`20_ck_put(fpo);
X`20`20`20`20`20`20`20`20`20`20while`20(fgets(xbuf,510,fpi))`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20fputs(xbuf,fpo);`20_ck_put(fpo);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpo))`20_ck_close(fpo);
X`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close(fpi);
X---`201173,1179`20-----
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20if`20(fprintf(fpo,"#!`20rnews`20%d`5Cn",inp_file
V.st_size)`20<`200)`20_ck_put_info(fpo);
X`20`20`20`20`20`20`20`20`20`20while`20(fgets(xbuf,510,fpi))`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20fputs(xbuf,fpo);`20_ck_put_info(fpo);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpo))`20_ck_close_info(fpo);
X`20`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close_info(fpi);
X**************
X***`201144,1151
X`20`20`20`20`20`20`20`20`20`20while`20(fgets(xbuf,510,fpi))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20fputs(xbuf,fpo);`20_ck_put(fpo);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20if`20(fclose(fpo))`20_ck_close(fpo);
X!`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close(fpi);
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20c$cks(sor$end_sort(0));
X`20`20`20`20`20`20`20`20`7D
X---`201175,1182`20-----
X`20`20`20`20`20`20`20`20`20`20while`20(fgets(xbuf,510,fpi))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20fputs(xbuf,fpo);`20_ck_put_info(fpo);
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X!`20`20`20`20`20`20`20`20`20if`20(fclose(fpo))`20_ck_close_info(fpo);
X!`20`20`20`20`20`20`20`20`20if`20(fclose(fpi))`20_ck_close_info(fpi);
X`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20c$cks(sor$end_sort(0));
X`20`20`20`20`20`20`20`20`7D
X**************
X***`201233,1239
X`20`20`20`20struct`20gl_list`20*tmp`20=`20ns_head;
X`20`20`20`20unsigned`20int`20itm_key`5B2`5D;
X`20`20`20`20int`20itmcount,
X!`20`20`20`20`20`20`20delcount`20=`200;
X`20`20`20`20FILE`20*fpr;
X`20`20
X`20`20`20`20while`20(tmp)`20`7B
X---`201264,1271`20-----
X`20`20`20`20struct`20gl_list`20*tmp`20=`20ns_head;
X`20`20`20`20unsigned`20int`20itm_key`5B2`5D;
X`20`20`20`20int`20itmcount,
X!`20`20`20`20`20`20`20delcount`20=`200,
X!`20`20`20`20`20`20`20flk;
X`20`20`20`20FILE`20*fpr;
X`20`20
X`20`20`20`20while`20(tmp)`20`7B
X**************
X***`201256,1265
X`20`20`20`20`20`20`20`20`20`20if`20(newsitm.itm_grp`20!=`20newsgrp.grp_num)`20
Vbreak;
X`20`20`20`20`20`20`20`20`20`20itmrab.rab$l_rop`20=`20RAB$M_WAT;
X`20`20`20`20`20`20`20`20`20`20itmrab.rab$b_rac`20=`20RAB$C_SEQ;
X!`20`20`20`20`20`20`20`20`20if`20(!(fpr`20=`20do_oitem(`26newsitm,"r",newsgrp.
Vgrp_name,0,(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET))))`20`7B
X!`20`20`20`20`20`20`20`20`20`20`20++delcount;
X!`20`20`20`20`20`20`20`20`20`20`20sys_delete(`26itmrab);
X!`20`20`20`20`20`20`20`20`20`20`20continue;
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20++itmcount;
X`20`20`20`20`20`20`20`20`20`20`7D
X---`201288,1301`20-----
X`20`20`20`20`20`20`20`20`20`20if`20(newsitm.itm_grp`20!=`20newsgrp.grp_num)`20
Vbreak;
X`20`20`20`20`20`20`20`20`20`20itmrab.rab$l_rop`20=`20RAB$M_WAT;
X`20`20`20`20`20`20`20`20`20`20itmrab.rab$b_rac`20=`20RAB$C_SEQ;
X!`20`20`20`20`20`20`20`20`20if`20(!(fpr`20=`20do_oitem(`26newsitm,"r",newsgrp.
Vgrp_name,0,
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET),`26flk)))`20`7B
V
X!`20`20`20`20`20`20`20`20`20`20`20if`20(flk)`20_ck_open_info(itm_fname);
X!`20`20`20`20`20`20`20`20`20`20`20else`20`7B`20`20
X!`20`20`20`20`20`20`20`20`20`20`20`20`20++delcount;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20sys_delete(`26itmrab);
X!`20`20`20`20`20`20`20`20`20`20`20`20`20continue;
X!`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20++itmcount;
X`20`20`20`20`20`20`20`20`20`20`7D
X***`20newsutility.c
X---`20newsutility_new.c
X**************
X***`20101,103
X`20`20**--
X`20`20**/
X`20`20`0C
X---`20101,106`20-----
X+`20**`09V6.1b9`20`2025-May-1994`20`20Charles`20Bailey`20`20bailey@genetics.up
Venn.edu
X+`20**`09`20-`20add`20flk`20to`20do_openi`20and`20do_oitem`20to`20allow`20skim
V`20to`20ignore
X+`20**`09`20`20`20contention`20for`20item`20files
X`20`20**--
X`20`20**/
X`20`20`0C
X**************
X***`20784,790
X`20`20`20*`20`20Use`20SYSPRV`20if`20WRITE`20access`20required,`20and`20change
V`20the`20mask`20to`20(g:re,w:re).
X`20`20`20*/
X`20`20
X!`20FILE`20*do_openi(mode,server_name,protected)
X`20`20`20`20char`20*mode,*server_name;
X`20`20`20`20int`20protected;
X`20`20`7B
X---`20787,793`20-----
X`20`20`20*`20`20Use`20SYSPRV`20if`20WRITE`20access`20required,`20and`20change
V`20the`20mask`20to`20(g:re,w:re).
X`20`20`20*/
X`20`20
X!`20FILE`20*do_openi(mode,server_name,protected,flk)
X`20`20`20`20char`20*mode,*server_name;
X`20`20`20`20int`20protected,`20*flk;
X`20`20`7B
X**************
X***`20786,792
X`20`20
X`20`20FILE`20*do_openi(mode,server_name,protected)
X`20`20`20`20char`20*mode,*server_name;
X!`20`20`20int`20protected;
X`20`20`7B
X`20`20`20`20FILE`20*tmp_fpr;
X`20`20`20`20int`20nmask`20=`20022,`20omask`20=`200;
X---`20789,795`20-----
X`20`20
X`20`20FILE`20*do_openi(mode,server_name,protected,flk)
X`20`20`20`20char`20*mode,*server_name;
X!`20`20`20int`20protected,`20*flk;
X`20`20`7B
X`20`20`20`20FILE`20*tmp_fpr;
X`20`20`20`20int`20nmask`20=`20022,`20omask`20=`200;
X**************
X***`20793,798
X`20`20`20`20struct`20stat`20sb;
X`20`20`20`20int`20status;
X`20`20
X`20`20`20`20if`20(protected)`20nmask`20=`20077;
X`20`20`20`20if`20(*mode`20==`20'w')
X`20`20`20`20`20`20omask`20=`20umask(nmask);
X---`20796,802`20-----
X`20`20`20`20struct`20stat`20sb;
X`20`20`20`20int`20status;
X`20`20
X+`20`20`20if`20(flk)`20*flk`20=`200;
X`20`20`20`20if`20(protected)`20nmask`20=`20077;
X`20`20`20`20if`20(*mode`20==`20'w')
X`20`20`20`20`20`20omask`20=`20umask(nmask);
X**************
X***`20805,811
X`20`20`20`20else`20tmp_fpr`20=`20fopen(itm_fname,mode,"mbc=16",`20"rat=cr","rf
Vm=var");
X`20`20
X`20`20`20`20if`20(tmp_fpr`20`26`26`20!ferror(tmp_fpr))`20;`20`20`20/*`20ok`20*
V/
X!`20`20`20else`20`7B
X`20`20`20`20`20`20tmp_fpr`20=`20NULL;
X`20`20`20`20`20`20if`20(errno`20==`20ENOENT)`20;`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20/*`20expected`20error`20-`20file`20not`20found`20*/
X`20`20`20`20`20`20else`20if`20(*mode`20==`20'r')`20_ck_open_r(tmp_fpr,itm_fnam
Ve);
X---`20809,815`20-----
X`20`20`20`20else`20tmp_fpr`20=`20fopen(itm_fname,mode,"mbc=16",`20"rat=cr","rf
Vm=var");
X`20`20
X`20`20`20`20if`20(tmp_fpr`20`26`26`20!ferror(tmp_fpr))`20;`20`20`20/*`20ok`20*
V/
X!`20`20`20else`20if`20(flk`20`26`26`20errno`20==`20EVMSERR`20`26`26`20vaxc$err
Vno`20==`20RMS$_FLK)`20`7B
X`20`20`20`20`20`20tmp_fpr`20=`20NULL;
X`20`20`20`20`20`20*flk`20=1;
X`20`20`20`20`20`20`7D
X**************
X***`20807,812
X`20`20`20`20if`20(tmp_fpr`20`26`26`20!ferror(tmp_fpr))`20;`20`20`20/*`20ok`20*
V/
X`20`20`20`20else`20`7B
X`20`20`20`20`20`20tmp_fpr`20=`20NULL;
X`20`20`20`20`20`20if`20(errno`20==`20ENOENT)`20;`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20/*`20expected`20error`20-`20file`20not`20found`20*/
X`20`20`20`20`20`20else`20if`20(*mode`20==`20'r')`20_ck_open_r(tmp_fpr,itm_fnam
Ve);
X`20`20`20`20`20`20`20`20`20`20`20else`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20_ck_open_w(tmp_fpr,itm_fname);
X---`20811,820`20-----
X`20`20`20`20if`20(tmp_fpr`20`26`26`20!ferror(tmp_fpr))`20;`20`20`20/*`20ok`20*
V/
X`20`20`20`20else`20if`20(flk`20`26`26`20errno`20==`20EVMSERR`20`26`26`20vaxc$e
Vrrno`20==`20RMS$_FLK)`20`7B
X`20`20`20`20`20`20tmp_fpr`20=`20NULL;
X+`20`20`20`20`20*flk`20=1;
X+`20`20`20`20`20`7D
X+`20`20`20else`20`7B
X+`20`20`20`20`20tmp_fpr`20=`20NULL;
X`20`20`20`20`20`20if`20(errno`20==`20ENOENT)`20;`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20/*`20expected`20error`20-`20file`20not`20found`20*/
X`20`20`20`20`20`20else`20if`20(*mode`20==`20'r')`20_ck_open_r(tmp_fpr,itm_fnam
Ve);
X`20`20`20`20`20`20`20`20`20`20`20else`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20_ck_open_w(tmp_fpr,itm_fname);
X**************
X***`20835,841
X`20`20`20*`20`20Use`20SYSPRV`20if`20WRITE`20access`20required,`20and`20change
V`20the`20mask`20to`20(g:re,w:re).
X`20`20`20*/
X`20`20
X!`20FILE`20*do_oitem(itm,mode,grp_name,server_name,protected)
X`20`20`20`20ITM`20*itm;
X`20`20`20`20char`20*mode,`20*grp_name,`20*server_name;
X`20`20`20`20int`20protected;
X---`20843,849`20-----
X`20`20`20*`20`20Use`20SYSPRV`20if`20WRITE`20access`20required,`20and`20change
V`20the`20mask`20to`20(g:re,w:re).
X`20`20`20*/
X`20`20
X!`20FILE`20*do_oitem(itm,mode,grp_name,server_name,protected,flk)
X`20`20`20`20ITM`20*itm;
X`20`20`20`20char`20*mode,`20*grp_name,`20*server_name;
X`20`20`20`20int`20protected,`20*flk;
X**************
X***`20838,844
X`20`20FILE`20*do_oitem(itm,mode,grp_name,server_name,protected)
X`20`20`20`20ITM`20*itm;
X`20`20`20`20char`20*mode,`20*grp_name,`20*server_name;
X!`20`20`20int`20protected;
X`20`20`7B
X`20`20`20`20int`20status;
X`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(grp_name),itm->itm_num);
X---`20846,852`20-----
X`20`20FILE`20*do_oitem(itm,mode,grp_name,server_name,protected,flk)
X`20`20`20`20ITM`20*itm;
X`20`20`20`20char`20*mode,`20*grp_name,`20*server_name;
X!`20`20`20int`20protected,`20*flk;
X`20`20`7B
X`20`20`20`20int`20status;
X`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(grp_name),itm->itm_num);
X**************
X***`20842,848
X`20`20`7B
X`20`20`20`20int`20status;
X`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(grp_name),itm->itm_num);
X!`20`20`20return(do_openi(mode,server_name,protected));
X`20`20`7D
X`20`20`0C
X`20`20/*
X---`20850,856`20-----
X`20`20`7B
X`20`20`20`20int`20status;
X`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(grp_name),itm->itm_num);
X!`20`20`20return(do_openi(mode,server_name,protected,flk));
X`20`20`7D
X`20`20`0C
X`20`20/*
X**************
X***`201456,1462
X`20`20`20`20else`20`7B
X`20`20`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(ga`5Bg`5D->grp_name)
V,ga`5Bg`5D->grp_ia`5Bi`5D.itm_num);
X`20`20`20`20`20`20if`20((tmp`20=`20do_openi(mode,server_name,
X!`20`09`09`09(ga`5Bg`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET)))`20!=`200)
X`20`20`20`20`20`20`20`20return(tmp);
X`20`20`20`20`20`20if`20(strcmp(mode,"r")`20`7C`7C`20(!(ga`5Bg`5D->grp_flags`20
V`26`20NEWS_M_NNTPSRV)))`20return(tmp);
X`20`20`20`20`20`20tmp`20=`20get_server_file(ga`5Bg`5D->grp_ia`5Bi`5D.itm_id,ga
V`5Bg`5D->grp_srvnode,server_name,
X---`201464,1470`20-----
X`20`20`20`20else`20`7B
X`20`20`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(ga`5Bg`5D->grp_name)
V,ga`5Bg`5D->grp_ia`5Bi`5D.itm_num);
X`20`20`20`20`20`20if`20((tmp`20=`20do_openi(mode,server_name,
X!`20`09`09`09(ga`5Bg`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET),0))`20!=`200)
V
X`20`20`20`20`20`20`20`20return(tmp);
X`20`20`20`20`20`20if`20(strcmp(mode,"r")`20`7C`7C`20(!(ga`5Bg`5D->grp_flags`20
V`26`20NEWS_M_NNTPSRV)))`20return(tmp);
X`20`20`20`20`20`20tmp`20=`20get_server_file(ga`5Bg`5D->grp_ia`5Bi`5D.itm_id,ga
V`5Bg`5D->grp_srvnode,server_name,
X**************
X***`201800,1806
X`20`20`20`20if`20(!nntp_client)`20`7B
X`20`20`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(ga`5Bg`5D->grp_name)
V,ga`5Bg`5D->grp_ia`5Bi`5D.itm_num);
X`20`20`20`20`20`20if`20((tmp`20=`20do_openi(mode,server_name,
X!`20`09`09`09(ga`5Bg`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET)))`20!=`200)
X`20`20`20`20`20`20`20`20return(tmp);
X`20`20`20`20`20`20if`20(strcmp(mode,"r")`20`7C`7C`20(!(ga`5Bg`5D->grp_flags`20
V`26`20NEWS_M_NNTPSRV)))
X`20`20`20`20`20`20`20`20return(tmp);
X---`201808,1814`20-----
X`20`20`20`20if`20(!nntp_client)`20`7B
X`20`20`20`20`20`20sprintf(itm_fname,Itm_template,util_dir(ga`5Bg`5D->grp_name)
V,ga`5Bg`5D->grp_ia`5Bi`5D.itm_num);
X`20`20`20`20`20`20if`20((tmp`20=`20do_openi(mode,server_name,
X!`20`09`09`09(ga`5Bg`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET),0))`20!=`200)
V
X`20`20`20`20`20`20`20`20return(tmp);
X`20`20`20`20`20`20if`20(strcmp(mode,"r")`20`7C`7C`20(!(ga`5Bg`5D->grp_flags`20
V`26`20NEWS_M_NNTPSRV)))
X`20`20`20`20`20`20`20`20return(tmp);
X***`20newscontrol.c
X---`20newscontrol_new.c
X**************
X***`2055,57
X`20`20**
X`20`20**--
X`20`20**/
X---`2055,59`20-----
X+`20**`09V6.1b9`20`2025-May-1994`20`20Charles`20Bailey`20`20bailey@genetics.up
Venn.edu
X+`20**`09`20-`20add`20dummy`20flk`20param`20to`20do_oitem`20calls
X`20`20**
X`20`20**--
X`20`20**/
X**************
X***`20977,983
X`20`20`20`20`20`20`20`20if`20(`20`20`20sys_get_nornf(`26itmrab)
X`20`20`09`20`20`26`26`20!strcmp(l_id,newsitm.itm_id)
X`20`20`09`20`20`26`26`20(gn`20=`20ga_locate(newsitm.itm_grp))
X!`20`09`20`20`26`26`20(fpr`20=`20do_oitem(`26newsitm,"r",ga`5Bgn`5D->grp_name,
V0,(ga`5Bgn`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET))))`20`7B
X`20`20`20`20`20`20`20`20`20`20fgetname(fpr,fname);
X`20`20`20`20`20`20`20`20`20`20fclose(fpr);
X`20`20`20`20`20`20`20`20`20`20sys_remote_send(post_path,s_str,`26post_dist,fna
Vme,l_id,0);
X---`20979,986`20-----
X`20`20`20`20`20`20`20`20if`20(`20`20`20sys_get_nornf(`26itmrab)
X`20`20`09`20`20`26`26`20!strcmp(l_id,newsitm.itm_id)
X`20`20`09`20`20`26`26`20(gn`20=`20ga_locate(newsitm.itm_grp))
X!`20`09`20`20`26`26`20(fpr`20=`20do_oitem(`26newsitm,"r",ga`5Bgn`5D->grp_name,
V0,
X!`20`09`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(ga`5Bgn
V`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET),0)))`20`7B
X`20`20`20`20`20`20`20`20`20`20fgetname(fpr,fname);
X`20`20`20`20`20`20`20`20`20`20fclose(fpr);
X`20`20`20`20`20`20`20`20`20`20sys_remote_send(post_path,s_str,`26post_dist,fna
Vme,l_id,0);
X**************
X***`20997,1003
X`20`20`20`20`20`20`20`20`20`20if`20(`20`20`20sys_get_nornf(`26itmrab)
X`20`20`09`20`20`20`20`26`26`20!strcmp(l_id,newsitm.itm_id)
X`20`20`09`20`20`20`20`26`26`20(gn`20=`20ga_locate(newsitm.itm_grp))
X!`20`09`20`20`20`20`26`26`20(fpr`20=`20do_oitem(`26newsitm,"r",ga`5Bgn`5D->grp
V_name,0,(ga`5Bgn`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET))))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20fgetname(fpr,fname);
X`20`20`20`20`20`20`20`20`20`20`20`20fclose(fpr);
X`20`20`20`20`20`20`20`20`20`20`20`20sys_remote_send(post_path,s_str,`26post_di
Vst,itm_fname,l_id,0);
X---`201000,1007`20-----
X`20`20`20`20`20`20`20`20`20`20if`20(`20`20`20sys_get_nornf(`26itmrab)
X`20`20`09`20`20`20`20`26`26`20!strcmp(l_id,newsitm.itm_id)
X`20`20`09`20`20`20`20`26`26`20(gn`20=`20ga_locate(newsitm.itm_grp))
X!`20`09`20`20`20`20`26`26`20(fpr`20=`20do_oitem(`26newsitm,"r",ga`5Bgn`5D->grp
V_name,0,
X!`20`09`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20(g
Va`5Bgn`5D->grp_flags`20`26`20NEWS_M_RESTRICT_SET),0)))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20fgetname(fpr,fname);
X`20`20`20`20`20`20`20`20`20`20`20`20fclose(fpr);
X`20`20`20`20`20`20`20`20`20`20`20`20sys_remote_send(post_path,s_str,`26post_di
Vst,itm_fname,l_id,0);
X***`20newsdelete.c
X---`20newsdelete_new.c
X**************
X***`2033,35
X`20`20**--
X`20`20**/
X`20`20`0C
X---`2033,37`20-----
X+`20**`20`20`206.1b9`20`2025-May-1994`20`20Charles`20Bailey`20`20bailey@geneti
Vcs.upenn.edu
X+`20**`20`20`20`20-`20add`20dummy`20flk`20param`20to`20do_oitem`20calls
X`20`20**--
X`20`20**/
X`20`20`0C
X**************
X***`20772,778
X`20`20`20`20`20`20char`20inpline`5B512`5D,*cp,`20*cp1;
X`20`20
X`20`20`20`20`20`20fp`20=`20do_oitem(`26newsitm,"r",newsgrp.grp_name,0,
X!`20`09`09`20`20(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET));
X`20`20`20`20`20`20if`20(fp`20!=`200)`20`7B
X`20`20`20`20`20`20`20`20while`20(fgets(inpline,512,fp))`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(*inpline`20==`20'`5Cn')`20break;
X---`20774,780`20-----
X`20`20`20`20`20`20char`20inpline`5B512`5D,*cp,`20*cp1;
X`20`20
X`20`20`20`20`20`20fp`20=`20do_oitem(`26newsitm,"r",newsgrp.grp_name,0,
X!`20`09`09`20`20(newsgrp.grp_flags`20`26`20NEWS_M_RESTRICT_SET),0);
X`20`20`20`20`20`20if`20(fp`20!=`200)`20`7B
X`20`20`20`20`20`20`20`20while`20(fgets(inpline,512,fp))`20`7B
X`20`20`20`20`20`20`20`20`20`20if`20(*inpline`20==`20'`5Cn')`20break;
X***`20newsextern.h
X---`20newsextern_new.h
X**************
X***`201084,1091
X`20`20EXTERN`20void`20do_new_group`20__ARGS((char`20*,`20int,`20unsigned`20int
V`20*));
X`20`20EXTERN`20void`20create_newsgroups`20__ARGS((char`20*,`20unsigned`20int
V`20*));
X`20`20EXTERN`20void`20load_newsgroups`20__ARGS((char`20*,`20unsigned`20int`20*
V));
X!`20EXTERN`20FILE`20*do_openi`20__ARGS((char`20*,`20char`20*,`20int));
X!`20EXTERN`20FILE`20*do_oitem`20__ARGS((ITM`20*,`20char`20*,`20char`20*,`20cha
Vr`20*,`20int));
X`20`20EXTERN`20unsigned`20int`20do_new_item`20__ARGS((unsigned`20int`20*,`20ch
Var`20*,`20char`20*,`20char`20*,`20char`20*,`20int,`20int,`20int,`20int));
X`20`20EXTERN`20void`20do_new_mem_grp`20__ARGS((void));
X`20`20EXTERN`20char`20*gendate`20__ARGS((unsigned`20int));
X---`201084,1091`20-----
X`20`20EXTERN`20void`20do_new_group`20__ARGS((char`20*,`20int,`20unsigned`20int
V`20*));
X`20`20EXTERN`20void`20create_newsgroups`20__ARGS((char`20*,`20unsigned`20int
V`20*));
X`20`20EXTERN`20void`20load_newsgroups`20__ARGS((char`20*,`20unsigned`20int`20*
V));
X!`20EXTERN`20FILE`20*do_openi`20__ARGS((char`20*,`20char`20*,`20int,`20int`20*
V));
X!`20EXTERN`20FILE`20*do_oitem`20__ARGS((ITM`20*,`20char`20*,`20char`20*,`20cha
Vr`20*,`20int,`20int`20*));
X`20`20EXTERN`20unsigned`20int`20do_new_item`20__ARGS((unsigned`20int`20*,`20ch
Var`20*,`20char`20*,`20char`20*,`20char`20*,`20int,`20int,`20int,`20int));
X`20`20EXTERN`20void`20do_new_mem_grp`20__ARGS((void));
X`20`20EXTERN`20char`20*gendate`20__ARGS((unsigned`20int));
X***`20patchlist.h;-1
X---`20patchlist.h
X**************
X***`201,1
X`20`20=+=+=`20End`20=+=+=
X---`201,2`20-----
X+`20940526_newsskim.c!bailey@genetics.upenn.edu
X`20`20=+=+=`20End`20=+=+=
$ call unpack 940526_NEWSSKIM.PATCH -
 2051407614 "FORMAT STREAM_LF;CARRIAGE_CONTROL CARRIAGE_RETURN" 44 1 1
$ v=f$verify(v)
$ exit
