{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: NAMEPRIV)}}
====== NAMEPRIV ======
(George Source)
**Macros used:** [[george:macro:CJOBLOCK|CJOBLOCK]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COMERR|COMERR]], [[george:macro:COMERRX|COMERRX]], [[george:macro:DICTJL|DICTJL]], [[george:macro:DICTWELL|DICTWELL]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPEN|OPEN]], [[george:macro:READ|READ]], [[george:macro:REWRITE|REWRITE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SPARAPAS|SPARAPAS]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:UNIFREE|UNIFREE]], [[george:macro:WKPFIND|WKPFIND]], [[george:macro:WKPTABLE|WKPTABLE]]
22FL #SEG NAMEPRIV [M.B.KINGHAM
22^= #OPT K0NAMEPRIV=0
23DW #OPT K6NAMEPRIV=K6ALLGEO
23YG #LIS K0NAMEPRIV>K0ALLGEO
24D6 8HNAMEPRIV
24XQ SEGENTRY K1NAMEPRIV,QK1NAMEPRIV
257J ...WKPT WKPTABLE [TABLE OF WELLKNOWN PRIVS
25CB # THIS SEGMENT IMPLEMENTS THE NAMEPRIV COMMAND. THE NAMEPRIV COMMAND
25X2 # PERMITS :MANAGER TO RENAME A PRIVILEGE
26BL QK1NAMEPRIV
26W= # THIS SECTION CHECKS THAT THE PROPER USER IS :MANAGER
27*W #
27TG CJOBLOCK 3 [GET POINTER TO CURRENT JOBLOCK
28*6 LDX 4 PUSER(1) [MANA
28SQ LDX 5 PUSER+1(1) [GER
29#B LDX 6 ACES [ SPACES
29S2 TXU 4 JUSER(3)
2=?L TXU 5 JUSER+1(3)
2=R= TXU 6 JUSER+2(3)
2?=W BCC PARACHEC [IF :MANAGER,GO CHECK PARAMS
2?QG CALL 1 ONERR
2#=6 +JMAN [ONLY :MANAGER CAN RENAME PRIVILEGES
2#PQ #
2*9B # THIS SECTION PASSES OUT THE NEW PRIVILEGE NAME PARAMETER,CHECKING
2*P2 # THAT IT EXISTS AND IS NOT MORE THAN 8 CHARACTERS LONG.
2B8L #
2BN= PARACHEC
2C7W CALL 5 NEXTPARA
2CMG +JNEWPRIV [NO NEW PRIV PARAM
2D76 #
2DLQ # THIS SECTION PASSES OUT THE OLD PRIVILEGE NAME PARAMETER,CHECKING
2F6B # THAT IT EXISTS AND IS NOT MORE THAN EIGHT CHARACTERS LONG.
2FL2 #
2G5L CALL 5 NEXTPARA
2GK= +JOLDPRIV [NO OLD PRIV PARAM
2H4W #
2HJG # THIS SECTION SETS UP A FILE/FABSNB BLOCK,10 WORDS LONG AND SETS IN IT
2J46 # THE INFORMATION NECESSARY TO OPEN THE DICTIONARY
2JHQ #
2K3B SETNCORE 10,5,FILE,FABSNB [GET 10 WORD FILE/ ABSNB BLOCK
2KH2 ADN 5 A1
2L2L LDN 4 PDICT(1)
2LG= MOVE 4 10 [MOVE IN NECESSARY INFORMATION
2L^W #
2MFG # THIS SECTION OPENS UP THE DICTIONARY AND READS THE FIRST RECORD
2M^6 #
2NDQ OPEN XBREAK,GENERAL,QUERY
2NYB TESTRPN2 OK,X10 [J IF NOT OPEN
2PD2 READ [READ THE FIRST RECORD
2PXL MHUNTW 2,FILE,FRB
2QC= #
2QWW # THIS SECTION LOCATES THE OLD PRIVILEGE NAME IN THE FIRST RECORD
2RBG #
2RW6 LDX 7 IZPRIV(2) [LOAD THE COUNT OF PRIVILEGES
2S*Q HUNT 3,CPB,CUNI [FIND BLOCK HOLDING OLD PRIVILEGE
2STB X7 LDX 4 APARA(3) [LOAD FIRST WORD OF OLD PRIVILEGE
2T*2 LDX 5 ACES [LOAD SPACES IN CASE OLD PRIVILEGE
2TSL [IS LESS THAN FIVE CHARACTERS LONG
2W#= SBN 6 5
2WRW BNG 6 X4 [J IF LESS THAN 5 CHARS
2X?G LDX 5 APARA+1(3) [LOAD 2ND WORD OF OLD PRIVILEGE
2XR6 X4 TXU 4 IZPRIV+2(2) [TEST 1ST WORD OF OLD PRIVILEGE
2Y=Q BCS X5 [AGAINST 1ST WORD OF PRIVILEGE IN
2YQB [FIRST RECORD OF DICTIONARY JUMPING
2^=2 [IF UNEQUAL
2^PL TXU 5 IZPRIV+3(2) [TEST 2ND WORD SIMILARY,JUMPING IF
329= BCC X6 [EQUAL
32NW X5 ADN 2 IZLINE [UPDATE X2 TO POINT TO NEXT ENTRY
338G BCT 7 X4 [J IF MORE ENTRIES LEFT
33N6 CLOSE [CLOSE THE DICTIONARY
347Q CALL 1 ONERR
34MB +JPRIVX1 [ERROR:PRIVILEGE DOES NO
3572 #
35LL # THIS SECTION OVERWRITES OLD PRIVILEGE NAME WITH NEW PRIVILEGE
366= #
36KW X6 LDX 6 2 [SAVE POINTER TO ENTRY
375G FREECORE 3 [FREE BLOCK HOLDING OLD PRIVILEGE
37K6 HUNT 3,CPB,CUNI [LOCATE BLOCK HOLDING NEW PRIVILEGE
384Q LDX 2 6 [RESTORE POINTER TO ENTRY
38JB LDX 6 ANUM(3)
3942 ANDN 6 #7777 [RETAIN PARAMETER LENGTH
39HL LDX 4 APARA(3) [LOAD FIRST WORD OF NEW PRIVILEGE
3=3= LDX 5 ACES [LOAD SPACES IN CASE NEW PRIVILEGE
3=GW [IS LESS THAN 5 CHARACTERS LONG
3?2G SBN 6 5
3?G6 BNG 6 X8 [J IF LESS THAN FIVE CHARS
3?^Q LDX 5 APARA+1(3) [LOAD 2ND WORD OF NEW PRIVILEGE
3#9J ...X8 LDX 6 IZPRIV+2(2) [RETAIN OLD PRIV NAME
3#FB ... LDX 7 IZPRIV+3(2)
3#P8 ... STO 4 IZPRIV+2(2) [OVERWRITE OLD PRIVILEGE NAME WITH
3#^2 STO 5 IZPRIV+3(2) [NEW PRIVILEGE NAME
3*39 ... WKPFIND 6,WKPT(1),3,NOTWKA [IS OLD PRIV WELLKNOWN
3*5D ... DICTWELL PUSER(1),PRIV,3,OFF [YES-RECORD IT AS OFF
3*7M ...NOTWKA
3*9W ... WKPFIND 4,WKPT(1),6,NOTWK [IS NEW PRIV WELLKNOWN
3*#5 ... DICTWELL PUSER(1),PRIV,6,ON [YES-RECORD IT
3*B# ...NOTWK
3*DL #
3*Y= # THIS SECTION REWRITES THE FIRST RECORD AND CLOSES THE DICTIONARY
3BCW #
3BXG MHUNTW 3,FILE,FRB
3CC6 NAME 3,FILE,FWB [RENAME BLOCK FOR WRITING
3CWQ REWRITE [REWRITE RECORD
3DBB CLOSE [CLOSE THE DICTIONARY
3DL8 ... DICTJL [UPDATE JOBLIST
3DW2 ENDCOM [RETURN TO COMMAND PROCESSOR
3F*L X10
3FT= TESTREP CLUDGE,X10A
3G#W GEOERR BRIEFPM,NOTOPEN [DICTIONARY NOT OPEN
3GSG X10A
3H#6 UNIFREE
3HRQ COMERR ERSYSCLUDG,FDIC
3J?B XBREAK
3JR2 GEOERR BRIEFPM,BREAKIN [BREAK IN DETECTED WHILE OPENING
3K=L [DICTIONARY
3KQ= [
3L9W [ SUBROUTINE TO READ NEXT PARAM - CORRUPTS X6
3LPG [
3M96 NEXTPARA
3MNQ SBX 5 FX1
3N8B SPARAPAS
3NN2 HUNT 3,CPB,CUNI
3P7L ADX 5 FX1
3PM= LDX 6 ANUM(3)
3Q6W BZE 6 NULL [J IF PARAM NULL
3QLG BNG 6 NULL [OR NONEXISTENT
3R66 ANDN 6 #7777 [ LENGTH OF PARAM
3RKQ SBN 6 9
3S5B BPZ 6 TOOLONG [J IF MORE THAN 8 CHARS
3SK2 ADN 6 9
3T4L EXIT 5 1
3TJ= NULL
3W3W SMO 5
3WHG LDX 5 0 [ADDRESS OF ERROR MESSAGE
3X36 LDX 6 PARMIS(1)
3XGQ COMERRX 6,5 [PARAMETER MISSING
3Y2B TOOLONG
3YG2 CALL 1 ONERR
3Y^L +JPRIVLONG
3^F= [
3^YW [ SR TO DO COMMAND ERROR
42DG [
42Y6 ONERR
43CQ LDX 5 0(1) [PICK UP ERROR MESSAGE
43XB COMERRX 5
44C2 PDICT +10
44WL 12HMASTER
45B= 12HDICTIONARY
45TW +1
46*G +1
46T6 4HB1
47#Q PARMIS +JPARMIS
47SB ...PUSER 12HMANAGER
48#2 MENDAREA 50,K99NAMEPRIV
48RL #END
^^^^ ...26036132000400000000