{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: OWNERCHE84)}}
====== OWNERCHE84 ======
(George Source)
**Macros used:** [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHEKPRIV|CHEKPRIV]], [[george:macro:FCJOB|FCJOB]], [[george:macro:FINDNAME|FINDNAME]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:JBC|JBC]], [[george:macro:MFREE|MFREE]], [[george:macro:OWNERCHE|OWNERCHE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:SREPC|SREPC]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:UP|UP]]
22FL ...#SEG OWNERCHE [EDWARD MOON
22^= #OPT K0OWNERCHE=0
23DW #OPT K6OWNERCHE=0
23YG #LIS K0OWNERCHE>K0ALLGEO>K0GREATGEO>K0FILESTORE
24D6 8HOWNERCHE
24XQ SEGENTRY K1OWNERCHE,Z1OWNER
25CB SEGENTRY K2OWNERCHE,Z2OWNER
25X2 # THIS ROUTINE CHECKS IF FILES IN THE DIRECTORY OPEN AT THE TOP LEVE
26BL # ARE OWNED BY THE PROPER USER.IF THEY ARE THE REPLY 'OK' IS TO BE S
26W= # OTHERWISE THE REPLY IS 'NOTOWNER'.
27*W MAS
27TG 12HMASTER
28*6
28SQ
28^Y ...SINFACC 8HINFACC
2976 ...SALLACC 8HALLACC
29#B Z1OWNER
29FJ ... LDX 0 ACOMMUNE8(2)
29LQ ... STO 0 AWORK1(2)
29S2 #SKI ANOUSER
2=?L (
2=R= BRUSEN NOUS [J IF NO USER CONTEXT
2?=W FCJOB 2,FX2,,CPA
2?QG ADN 2 JUSER [PROPER USER FROM JUSER
2#=6 BRN NEXT
2#PQ NOUS ADN 2 CPREFIX [PROPER USER FROM CPREFIX
2*9B )
2*P2 #SKI ANOUSER<1$1
2B8L (
2BN= FCJOB 2,FX2,,CPA [FIND JOB BLOCK OF CURRENT USER
2C7W LDX 4 ALOGLEN(2)
2CMG SBN 4 ASTJOB [CHECK JOBLOCK LONGER THAN ASTJOB
2D76 BNZ 4 USECO [J IF USER CONTEXT
2DLQ LDX 2 FX2 [NO USER CONTEXT
2F6B ADN 2 CPREFIX [PROPER USER IS TAKEN FROM CPREFIX
2FL2 BRN NEXT
2G5L USECO ADN 2 JUSER [PROPER USER IS TAKEN FROM JUSER
2GK= )
2H4W NEXT LDX 3 0(2) [GET PROPER USER NAME IN X3,4,5
2HJG LDX 4 1(2)
2J46 LDX 5 2(2)
2JHQ TOPFCB 2 [GIVE POINTER TO FILE/FCB
2K3B #SKI K6OWNERCHE>49-49
2KH2 (
2L2L LDX 0 COMM(2)
2LG= BNG 0 YDIR [J IF DIRECTORY
2L^W GEOERR 1,NOTDIR
2MFG YDIR
2M^6 )
2NDQ BXU 3 FME1(2),NOT [CHECK IF USER OF THIS DIRECTORY
2NYB BXU 4 FME2(2),NOT [IS THE PROPER USER
2PD2 BXU 5 FME3(2),NOT [J IF NOT
2PMS ... SREPC OK
2PXL OK SETREP OK
2QC= UP
2QWW
2RBG NOT
2RW6 #SKI
2S*Q (
2STB LDX 6 FME1(2) [GET NAME FROM FCB
2T*2 LDX 7 FME2(2)
2TSL LDX 0 FME3(2)
2W#= TXU 6 MAS(1)
2WRW TXU 7 MAS+1(1)
2X?G TXU 0 MAS+2(1)
2XR6 BCC XXMAS [J IF :MASTER
2Y=Q )
2YQB SETNCORE 4,2,FILE,FABSNB [SET UP FILE/FABSNB
2^=2 LDN 1 4 [SET UP RECORD HEADER=4
2^PL STO 1 A1(2) [SET RECORD HEADER IN FABSNB
329= TOPFCB 1 [POINTER TO FILE/FCB
32NW LDN 1 FME1(1)
338G LDN 2 A1+1(2)
33N6 MOVE 1 3 [MOVE USER NAME INTO FILE/FABSNB
347Q BRN NFIND [J TO EXPAND ABSOLUTE FILENAME
34MB #
3572 # CHECKOWNER MACRO
35LL #
366= # A 4 WORD FILE/FABSNB MUST BE PROVIDED.
36KW # THE ROUTINE CHECKS IF THE ENTRANT,WHOSE NAME IS IN THE FABSN
375G # IS OWNED BY THE PROPER USER.
37K6 #
384Q Z2OWNER
38#J ... STOZ AWORK1(2)
38JB #SKI ANOUSER
3942 (
39HL BRUSEN NOUSE [J IF NO USER CONTEXT
3=3= FCJOB 2,FX2,,CPA
3=GW ADN 2 JUSER
3?2G BRN PICK
3?G6 NOUSE ADN 2 CPREFIX
3?^Q )
3#FB #SKI ANOUSER<1$1
3#^2 (
3*DL FCJOB 2,FX2,,CPA [FIND JOB BLOCK OF CURRENT USER
3*Y= LDX 4 ALOGLEN(2)
3BCW SBN 4 ASTJOB [CHECK LENGTH OF JOBLOCK
3BXG BNZ 4 USERC [J IF USER CONTEXT
3CC6 LDX 2 FX2
3CWQ ADN 2 CPREFIX [PROPER USER FROM CPREFIX
3DBB BRN PICK
3DW2 USERC ADN 2 JUSER [PROPER USER FROM JUSER
3F*L )
3FT= PICK
3G#W LDX 3 0(2) [PICK UP PROPER USER NAME
3GSG LDX 4 1(2)
3H#6 LDX 5 2(2)
3HRQ HUNT 2,FILE,FABSNB [FIND FILE/FABSNB
3J?B BXU 3 A1+1(2),NFIND [CHECK IF IT IS
3JR2 BXU 4 A1+2(2),NFIND [PROPER USER
3K=L BXE 5 A1+3(2),ZFREE
3KQ= #SKI
3L9W (
3LPG LDX 6 A1+1(2)
3M96 LDX 7 A1+2(2)
3MNQ LDX 0 A1+3(2)
3N8B TXU 6 MAS(1) [CHECK IF IT IS :MASTER
3NN2 TXU 7 MAS+1(1)
3P7L TXU 0 MAS+2(1)
3PM= BCC XMAST [J IF :MASTER
3Q6W )
3QLG NFIND FINDNAME [EXPAND ABSOLUTE FILENAME TO FULL ANM
3R66 HUNT 2,FILE,FABSNB
3RKQ LDX 1 A1(2) [PICK UP RECORD HEADER
3S5B # IF FABSNB STILL 4 WDS LONG,THEN MUST BE =MASTER & SO REPLY NOTOWNER
3SK2 SBN 1 4
3T4L BZE 1 XMAST [J IF 4 WD FABSNB
3TJ= ADN 1 A1-1 [SET POINTER TO THE BOTTOM USERNAME
3W3W ADX 1 2 [IN FILE/FABSNB
3WHG NOPRU LDX 0 3(1) [TEST IF IT IS PSEUDOUSER
3X36 BNG 0 PSEUS [J IF IT IS PSEUDO
3X44 ... SEGENTRY K55OWNERCHE
3X53 ...#
3X6Y ...# THIS SECTION CHECKS FOR ALLACC AND INFACC
3X8T ...# PRIVELEGES USED FOR TWIN SYSTEMS
3X=Q ...#
3X#M ... SMO FX2 [DONT CHECK FOR QUALIFIER
3XBJ ... LDX 0 AWORK1 [IF 'NOADJ' PARAM FROM OWNERCHECK MAC
3XDF ... BNZ 0 NOADJ
3XGB ... HUNT 2,FILE,ADJUNCTS
3XJ? ... BNG 2 XMAST [ NO QUALIFIER ?
3XL8 ... JBC XMAST,2,BAOWNACC [NOT 'OWNERACC' QUALIFIER ?
3XN5 ...NOADJ
3XQ2 ... CHEKPRIV 0,SALLACC,NOTALAC [CHECK FOR 'ALLACC' PRIV.
3XRX ... SREPC NOTOWNER
3XTS ... MFREE FILE,FABSNB
3XXP ... BRN OK
3X^L ...NOTALAC
3Y3H ... HUNT 2,FILE,FABSNB
3Y5D ... STO 2 0
3Y7* ... ADN 0 9
3Y9= ... SMO A1(2)
3Y?7 ... ADN 2 A1-5 [PTR. TO LAST NAME IN FABSNB
3Y*4 ...NXTUSA
3YB^ ... BXU 3 0(2),NOTUSER
3YDW ... BXU 4 1(2),NOTUSER
3YGR ... BXU 5 2(2),NOTUSER [IS USERNAME INFERIOR TO PROPER USE
3YJN ... CHEKPRIV 0,SINFACC,NOTINFAC [ I.E. IS 'INFACC' PRIV. REQUIRED ?
3YLK ... SREPC NOTOWNER [ IF IT IS, CHECK FOR IT
3YNG ... MFREE FILE,FABSNB
3YQC ... BRN OK
3YS# ...NOTUSER
3YW9 ... SBN 2 6
3YY6 ... BXL 2 0,NOTALACPR
3^23 ... BRN NXTUSA
3^3Y ...NOTINFAC
3^5T ... SETREP NOINFACC
3^7Q ... BRN REPFREE
3^9M ...NOTALACPR
3^?J ... SETREP NOALLACC
3^*F ... BRN REPFREE
3^CB ...XXMAST
3^F? ... SETREP NOTOWNER
3^H8 ... BRN REPLY
3^J6 ... SEGENTRY K56OWNERCHE
3^K5 ...XMAST
3^M2 ... SETREP NOTOWNER
3^NX ...REPFREE
3^QS ... MFREE FILE,FABSNB
3^SP ...REPLY
3^WL ... UP
3^YW PSEUS SBN 1 6 [SET POINTER TO NEXT USER IN FABSNB
42DG BXU 3 0(1),NOPRU
42Y6 BXU 4 1(1),NOPRU [J IF IT IS NOT
43CQ BXU 5 2(1),NOPRU [PROPER USER
43XB ZFREE
44C2 FREECORE 2 [RETURN FABSNB TO FREE
44LS ... SREPC OK
44WL BRN OK [PRINT 'OK'
45B= #GAP 20
45TW #END
^^^^ ...64072416000200000000