🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by tanner Mon, 04 Jan 1993 20:46
DWProfile V3.3, part 01/06
#135
Author: tanner
Date: Mon, 04 Jan 1993 20:46
1551 lines
50405 bytes
Submitted-by: tanner@cerritos.edu
Posting-number: Volume 4, Issue 26
Archive-name: dwprofile/part01

DWProfile is a DECwindows Motif application that creates, modifies and
deletes UAF records.  It will perform most of the functions of AUTHORIZE
and will also automatically create, move and delete directories.
-- 
Bruce Tanner        (310) 860-2451 x 596    Tanner@Cerritos.EDU
Cerritos College    Norwalk, CA             DoD #0161  NOMAD #007

$! ------------------ CUT HERE -----------------------
$ v='f$verify(f$trnlnm("SHARE_VERIFY"))'
$!
$! This archive created by VMS_SHARE Version 7.2-007  22-FEB-1990
$!   On 18-DEC-1992 13:25:24.51   By user TANNER 
$!
$! This VMS_SHARE Written by:
$!    Andy Harper, Kings College London UK
$!
$! Acknowledgements to:
$!    James Gray       - Original VMS_SHARE
$!    Michael Bednarek - Original Concept and implementation
$!
$!+ THIS PACKAGE DISTRIBUTED IN 6 PARTS, TO KEEP EACH PART
$!  BELOW 100 BLOCKS
$!
$! 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. AAAREADME.TXT;44
$!       2. ABSTRACT.TXT;1
$!       3. ACCESS.UIL;39
$!       4. BUTTONS.UIL;79
$!       5. DELTREE.COM;4
$!       6. DESCRIP.MMS;39
$!       7. DWPDEF.H;49
$!       8. DWPROFILE.C;445
$!       9. DWPROFILE.DAT;91
$!      10. DWPROFILE.HLP;21
$!      11. DWPROFILE.UIL;44
$!      12. FLAGS.UIL;51
$!      13. IDENTS.UIL;33
$!      14. MOTIF.OPT;3
$!      15. MOVE_DIRECTORY.COM;10
$!      16. PRIVS.UIL;61
$!      17. QUOTAS.UIL;16
$!      18. RESETOWNER.COM;19
$!      19. TEXT.UIL;25
$!
$set="set"
$set symbol/scope=(nolocal,noglobal)
$f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID"))
$e="write sys$error  ""%UNPACK"", "
$w="write sys$output ""%UNPACK"", "
$ if f$trnlnm("SHARE_LOG") then $ w = "!"
$ 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
$ if f$search(P1) .eqs. "" then $ goto file_absent
$ e "-W-EXISTS, File ''P1' exists. Skipped."
$ delete 'f'*
$ exit
$file_absent:
$ 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:
$ w "-I-PROCESS, Processing file ''P1'."
$ if .not. f$verify() then $ define/user sys$output nl:
$ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1'
PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET(
SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:=
CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b));
LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION(
BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1);
IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE;
MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1;
ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")=
1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF";
POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r);
ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1;
COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE,
"output_file"));ENDPROCEDURE;Unpacker;QUIT;
$ delete/nolog 'f'*
$ CHECKSUM 'P1'
$ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT
$ e "-E-CHKSMFAIL, Checksum of ''P1' failed."
$ ENDSUBROUTINE
$START:
$ create 'f'
XInstallation:
X`09The logical name DWPUID needs to point to the directory that contains
X`09DWPROFILE.UID, ACCESS.UID, PRIVS.UID, IDENTS.UID, RESETOWNER.COM,
X`09DELTREE.COM, MOVE_DIRECTORY.COM and DWPROFILE.HLB.
X`09DWPROFILE.DAT must be put in DECW$SYSTEM_DEFAULTS: (World Readable)
X`09or DECW$USER_DEFAULTS:
X
X`09To rebuild:
X`09UIL/MOTIF DWPROFILE
X`09UIL/MOTIF ACCESS
X`09UIL/MOTIF PRIVS
X`09UIL/MOTIF IDENTS
X`09CC DWPROFILE
X`09LINK DWPROFILE,MOTIF/OPT
X`09LIBRARY/CREATE/HELP DWPROFILE.HLB DWPROFILE.HLP
X
X`09or if you have MMS, use the DESCRIP.MMS file.
X
XOperation:
X`09The interface is supposed to be intuitive, but here's what the buttons
X`09and stuff do:
X
X`09'Read Identifiers' forces the list of identifiers to be reloaded.
X`09This is only necessary if new identifiers have been created since
X`09DWProfile was started.
X
X`09'Read' reads in the UAF entry given by the 'username' widget.
X
X`09'Find Next' will search the UAF for a field that is specified by
X`09the 'Select' menu.
X
X`09'Write' writes out those fields that were changed for the specified
X`09record.  If the UAF record is created, the UIC, owner, account, default
X`09device and directory must also be specified.  A new directory is created
X`09if necessary, the directory tree will be moved if the device/directory
X`09field changes.
X
X`09'Remove' removes the specified UAF record.  The directory tree is deleted
V.
X
X`09'Quit' exits the program.
X
X`09'Access...' pops up or removes a window that displays the hours
X`09available for each category of access.  Click and drag in these
X`09windows to change the time.
X
X`09'Privs...' pops up or removes a window that displays the default and
X`09authorized privileges.
X
X`09'Accounts...' pops up or removes a selection widget that provides a
X`09list of group identifier names.  A new UIC is calculated from this
X`09group number.
X
X`09'Idents...' pops up up or removes a pair of list boxes that contain
X`09the identifiers that may be granted and the identifiers that are held
X`09by the UIC.
X
X`09'Select' lets you select a field and contents for the 'Find Next' button.
X
XNon-obvious interactions:
X`09If DWProfile is defined as a symbol, the initial username can be
X`09specified after the symbol name, e.g. dwp :== $dwprofile and then
X`09dwp tanner.
X
X`09If return is pressed in the 'username' widget, the 'Read' button routine
X`09is executed.
X
X`09If the return key is pressed in the 'account' widget and the UIC is
X`09`5B0,0`5D, a new UIC will be calculated.
X
XScreen/font interactions:
X`09The default 75DPI font used on 19" monitors, is smaller than the default
X`09100DPI font used on 15" monitors.  If the application's widgets are
X`09positioned for the 75DPI fonts, the text fields will probably overlap.
X`09I've explicitly specified that the 75DPI 12 point Helvetica Bold font
X`09will be used by all widgets (see DWPROFILE.DAT).  This is almost the
X`09same as the default 75DPI font, except that the pitch is narrower.
X
XCustomization:
X`09There are a couple of non-widget resources that DWProfile can use.
X`09The default value is in parenthesis.
X
X        DWProfile.quota (none) and DWProfile.overdraft (none) set the disk q
Vuota
X        and overdraft used when creating a new directory.
X
X`09DWProfile.defaultIdent ("") will position the list box of identifiers
X`09to show this idenifier item if it exists.  In other words, if there
X`09is a 'staff' identifier that almost everyone gets, this will
X`09automatically scroll the list widget to show 'staff'.
X
X`09DWProfile.showAccess (False), DWProfile.showPrivs (False),
X`09DWProfile.showAccounts (False), DWProfile.showIdents (False) will
X`09automatically display the specified windows.
X
X`09DWProfile.readNotifyInterval (-2) will provide notification
X`09when reading a non-existant user name.  See findNotifyInterval for a`20
X`09description of the value.            `20
X
X`09DWProfile.writeNotifyInterval (-2) will provide  notification
X`09upon successful creation/update of a UAF record.  See findNotifyInterval
X`09for a description of the value.            `20
X
X`09DWProfile.findNotifyInterval (-1) will provide notification of a
X`09non-existant UAF record when searching through the list of UIC-type
X`09identifiers.  The interpretation  of the interval is:
X`09-2 means don't notify at all
X`09-1 means display the message on sys$output (the DECterm, fileview output,
V etc.)
X`090 means pop up a message window
X`09n means pop up a message window for n milliseconds or until the OK button
V is pressed.
X
X`09DWProfile.versionLimit (0) will define the version limit of a user's
X`09directory created by DWProfile.  The version limit is normally
X`09inherited from the parent directory.
X
X`09DWProfile.minimumGroup (0) and DWProfile.maximumGroup (32767) specify
X`09the minimum and maximum groups that will be calculated when a new UIC
X`09is generated.  For example, your group numbers start with 200 and
X`09extend upward, but you have network servers with UIC group numbers at
X`09400.  A new account string will generate a UIC group above 400 rather
X`09than in the 200's that you'd wish.  Setting maximumGroup to be 255
X`09(377 octal) will cause DWProfile to ignore UICs above `5B400,0`5D for the
X`09purposes of making a new UIC.  minimumGroup won't mean anything
X`09unless you are creating a new range of group numbers.
X
X`09You can override the resources in DECW$SYSTEM_DEFAULTS:DWPROFILE.DAT by
X`09specifying resources in SYS$USER_DEFAULTS:DWPROFILE.DAT or
X`09SYS$LOGIN:DECW$XDEFAULTS.DAT.  Just remember that you have to log back
X`09in to reload the new DECW$XDEFAULTS.DAT.
X
XThings to do:
X`09Add/Remove identifiers (maybe).  Is this needed?
X
X`09It turns out that the login flags and quotas aren't used often.
X`09Perhaps they can be put into their own window?
X`09Then we'd have room for password changed date, pwd expired button,
X`09disk quota and overdraft.
X
X`09Save a named default UAF record other than the DEFAULT UAF record.
X`09Include things like identifiers, disk quota.
X
X`09Pop up requestor on search for date fields, numeric fields, to ask for
X`09a relation.  Flags and privs would have a mask and match.  Identifiers
X`09are easy ($find_holder).
X
X`09Something else might be done with the list of matched identifiers.
X`09Write username/owner/etc. to a file?  Print widget?`20
X
X`09Use XtVaSetArgs(), XmNmodifyVerify callback
X
XAcknowledgements:
X`09This program was inspired by and named after Profile by John Howells.
X`09Some of the techniques used in DWProfile were gratefully stolen from
X`09that program.
X
X`09DELTREE.COM was posted to comp.os.vms by Jamie Hanrahan, Simpact
X`09Associates, San Diego CA.
X
XBugs/fixes/suggestions/praise/brickbats to:
X
X`09Tanner@Cerritos.EDU
X
X`09Bruce Tanner
X`09Cerritos College
X`09Computer Services
X`0911110 Alondra Blvd.
X`09Norwalk, CA 90650
X
X`09(310) 860-2451 x596
$ CALL UNPACK AAAREADME.TXT;44 628854647
$ create 'f'
XDWProfile is a DECwindows Motif application that creates, modifies and
Xdeletes UAF records.  It will perform most of the functions of AUTHORIZE
Xand will also automatically create, move and delete directories.
X
XDWProfile will also search and display UAF records based on fields matching
X(possibly wildcarded) selection criteria.
X
XSource: C, UIL
XRequires: DECwindows Motif V1.0A or higher.
$ CALL UNPACK ABSTRACT.TXT;1 1007373165
$ create 'f'
Xmodule Access
X`09names = case_sensitive
X
X        objects = `7B
X                XmLabel = gadget;
X                XmPushButton = gadget;
X                XmToggleButton = gadget;
X                `7D
X
Xprocedure
X`09WidgetCreated(integer);
X`09Help(string);
X
Xobject
X`09access_box: XmBulletinBoardDialog `7B
X`09`09arguments `7B
X`09`09`09XmNdialogTitle = "DWProfile: Access times";
X`09`09`09XmNdefaultPosition = false;
X`09`09`7D;
X`09`09controls `7B
X`09`09`09XmForm`09prime;
X`09`09`09XmForm`09hours;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNhelpCallback = procedure Help("menus windows access");
X`09`09`09`7D;
X`09`09`7D;
X
Xvalue
X`09k_monday_button:`090;
X`09k_tuesday_button:`091;
X`09k_wednesday_button:`092;
X`09k_thursday_button:`093;
X`09k_friday_button:`094;
X`09k_saturday_button:`095;
X`09k_sunday_button:`096;
X
Xprocedure
X`09PrimeCreated(integer);
X`09PrimeChanged(integer);
X
Xobject
X`09prime: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNx = 5;
X`09`09`09XmNy = 5;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09`09prime_label;
X`09`09`09XmRowColumn`09prime_box;
X`09`09`09`7D;
X`09`09`7D;
X
X`09prime_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Prime Days:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = 5;
X`09`09`09XmNtopAttachment = XmATTACH_FORM;
X`09`09`09XmNtopOffset = 2;    `20
X`09`09`09`7D;
X`09`09`7D;
X
X`09prime_box: XmRowColumn `7B
X`09`09arguments `7B
X`09`09`09XmNleftAttachment = XmATTACH_WIDGET;
X`09`09`09XmNleftWidget = prime_label;
X`09`09`09XmNorientation = XmHORIZONTAL;
X`09`09`09XmNpacking = XmPACK_TIGHT;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmToggleButton`09monday_button;
X`09`09`09XmToggleButton`09tuesday_button;
X`09`09`09XmToggleButton`09wednesday_button;
X`09`09`09XmToggleButton`09thursday_button;
X`09`09`09XmToggleButton`09friday_button;
X`09`09`09XmToggleButton`09saturday_button;
X`09`09`09XmToggleButton`09sunday_button;
X`09`09`09`7D;
X`09`09`7D;
X
X
X`09sunday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Sunday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_sunday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_sunday_button);
X`09`09`09`7D;
X`09`09`7D;
X
X`09monday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Monday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_monday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_monday_button);
X`09`09`09`7D;
X`09`09`7D;
X
X`09tuesday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Tuesday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_tuesday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_tuesday_button);
X`09`09`09`7D;
X`09`09`7D;
X
X`09wednesday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Wednsday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_wednesday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_wednesday_button
V);
X`09`09`09`7D;
X`09`09`7D;
X
X`09thursday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Thursday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_thursday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_thursday_button)
V;
X`09`09`09`7D;
X`09`09`7D;
X
X`09friday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Friday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_friday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_friday_button);
X`09`09`09`7D;
X`09`09`7D;
X
X`09saturday_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Saturday";
X`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_saturday_button);
X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_saturday_button)
V;
X`09`09`09`7D;
X`09`09`7D;
X
X
Xvalue
X`09k_widget_network_prime:`09`0936;
X`09k_widget_network_secondary:`0937;
X`09k_widget_batch_prime:`09`0938;
X`09k_widget_batch_secondary:`0939;
X`09k_widget_local_prime:`09`0940;
X`09k_widget_local_secondary:`0941;
X`09k_widget_dialup_prime:`09`0942;
X`09k_widget_dialup_secondary:`0943;
X`09k_widget_remote_prime:`09`0944;
X`09k_widget_remote_secondary:`0945;
X
X`09k_prime_label_tab:`09`095;
X`09k_prime_hour_tab:`09`09100;
X`09k_secondary_label_tab:`09`09350;
X`09k_secondary_hour_tab:`09`09450;
X`09k_hours_height:`09`09`0916;
X`09k_hours_width:`09`09`09192; !runtime modified to hourSize * 24
X`09k_hour_2_y:`09`09`0913;
X
Xobject
X`09hours: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNx = 5;
X`09`09`09XmNy = 40;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09primary_label;
X`09`09`09XmLabel`09primary_hours_1;
X`09`09`09XmLabel`09primary_hours_2;
X`09`09`09XmLabel`09secondary_label;
X`09`09`09XmLabel`09secondary_hours_1;
X`09`09`09XmLabel`09secondary_hours_2;
X`09`09`09XmForm network;
X`09`09`09XmForm batch;
X`09`09`09XmForm local;
X`09`09`09XmForm dialup;
X`09`09`09XmForm remote;
X`09`09`09`7D;
X`09`09`7D;
X
X`09primary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Primary";
X`09`09`09XmNx = k_prime_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09primary_hours_1: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "000000000011111111112222";
X`09`09`09XmNx = k_prime_hour_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09primary_hours_2: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "012345678901234567890123";
X`09`09`09XmNx = k_prime_hour_tab;
X`09`09`09XmNy = k_hour_2_y;
X`09`09`09`7D;
X`09`09`7D;
X
X`09secondary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Secondary";
X`09`09`09XmNx = k_secondary_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09secondary_hours_1: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "000000000011111111112222";
X`09`09`09XmNx = k_secondary_hour_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09secondary_hours_2: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "012345678901234567890123";
X`09`09`09XmNx = k_secondary_hour_tab;
X`09`09`09XmNy = k_hour_2_y;
X`09`09`09`7D;
X`09`09`7D;
X
X`09network: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNy = 30;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09network_prime_label;
X`09`09`09XmDrawingArea`09network_prime_window;
X`09`09`09XmLabel`09network_secondary_label;
X`09`09`09XmDrawingArea`09network_secondary_window;
X`09`09`09`7D;
X`09`09`7D;
X
X`09network_prime_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Network:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09network_prime_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_network_prime
V);
X`09`09`09`7D;
X`09`09`7D;
X
X`09network_secondary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Network:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09network_secondary_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_network_secon
Vdary);
X`09`09`09`7D;
X`09`09`7D;
X
X`09batch: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNy = 50;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09batch_prime_label;
X`09`09`09XmDrawingArea`09batch_prime_window;
X`09`09`09XmLabel`09batch_secondary_label;
X`09`09`09XmDrawingArea`09batch_secondary_window;
X`09`09`09`7D;
X`09`09`7D;
X
X`09batch_prime_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Batch:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09batch_prime_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_batch_prime);
X`09`09`09`7D;
X`09`09`7D;
X
X`09batch_secondary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Batch:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09batch_secondary_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_batch_seconda
Vry);
X`09`09`09`7D;
X`09`09`7D;
X
X`09local: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNy = 70;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09local_prime_label;
X`09`09`09XmDrawingArea`09local_prime_window;
X`09`09`09XmLabel`09local_secondary_label;
X`09`09`09XmDrawingArea`09local_secondary_window;
X`09`09`09`7D;
X`09`09`7D;
X
X`09local_prime_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Local:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09local_prime_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_local_prime);
X`09`09`09`7D;
X`09`09`7D;
X
X`09local_secondary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Local:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09local_secondary_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_local_seconda
Vry);
X`09`09`09`7D;
X`09`09`7D;
X
X`09dialup: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNy = 90;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09dialup_prime_label;
X`09`09`09XmDrawingArea`09dialup_prime_window;
X`09`09`09XmLabel`09dialup_secondary_label;
X`09`09`09XmDrawingArea`09dialup_secondary_window;
X`09`09`09`7D;
X`09`09`7D;
X
X`09dialup_prime_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Dialup:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09dialup_prime_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_dialup_prime)
V;
X`09`09`09`7D;
X`09`09`7D;
X
X`09dialup_secondary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Dialup:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09dialup_secondary_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_dialup_second
Vary);
X`09`09`09`7D;
X`09`09`7D;
X
X`09remote: XmForm `7B
X`09`09arguments `7B
X`09`09`09XmNy = 110;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmLabel`09remote_prime_label;
X`09`09`09XmDrawingArea`09remote_prime_window;
X`09`09`09XmLabel`09remote_secondary_label;
X`09`09`09XmDrawingArea`09remote_secondary_window;
X`09`09`09`7D;
X`09`09`7D;
X
X`09remote_prime_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Remote:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09remote_prime_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_prime_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_remote_prime)
V;
X`09`09`09`7D;
X`09`09`7D;
X
X`09remote_secondary_label: XmLabel `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Remote:";
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_label_tab;
X`09`09`09`7D;
X`09`09`7D;
X
X`09remote_secondary_window: XmDrawingArea `7B
X`09`09arguments `7B
X`09`09`09XmNheight = k_hours_height;
X`09`09`09XmNwidth = k_hours_width;
X`09`09`09XmNleftAttachment = XmATTACH_FORM;
X`09`09`09XmNleftOffset = k_secondary_hour_tab;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_remote_second
Vary);
X`09`09`09`7D;
X`09`09`7D;
Xend module;
$ CALL UNPACK ACCESS.UIL;39 355085878
$ create 'f'
Xvalue
X`09k_work_area_x:`09`09100;
X`09k_work_area_spacing:`0950;
X
X`09k_access_menu:`09`090;
X`09k_accounts_menu:`091;
X`09k_idents_menu:`09`092;
X`09k_privs_menu:`09`093;
X`09k_functions_menu:`094;
X`09k_find_menu:`09`095;
X`09k_find_button:`09`096;
X`09k_restart_button:`097;
X
X`09k_username_select:`090;
X`09k_account_select:`091;
X`09k_owner_select:`09`092;
X`09k_uic_select:`09`093;
X`09k_device_select:`094;
X`09k_directory_select:`095;
X`09k_cli_select:`09`096;
X`09k_lgicmd_select:`097;
X`09k_table_select:`09`098;
X`09k_lifetime_select:`099;
X`09k_expire_select:`0910;
X`09k_logfail_select:`0911;
X`09k_restart_select:`09100;
X
Xprocedure
X`09Quit();
X`09Read();
X`09Find();
X`09Write();
X`09Remove();
X`09Access();
X        Privs();
X`09Idents();
X`09Accounts();
X`09ReadIdentifiers();
X`09ButtonCreated(integer);
X`09Select(integer);
X
Xobject
X`09menu: XmMenuBar `7B
X`09`09arguments `7B
X`09`09`09XmNorientation = XmHORIZONTAL;
X`09`09`09XmNspacing = 10;
X`09`09`09XmNmenuHelpWidget = XmCascadeButton help_menu_entry;
X`09`09`7D;
X`09`09controls `7B
X`09`09`09XmCascadeButton file_menu_entry;
X`09`09`09XmCascadeButton windows_menu_entry;
X`09`09`09XmCascadeButton select_menu_entry;
X`09`09`09XmCascadeButton help_menu_entry;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNhelpCallback = procedure Help("menus");
X`09`09`09`7D;
X`09`09`7D;
X
X`09file_menu_entry: XmCascadeButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "File";
X `09`09`09XmNmnemonic = keysym('F');
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmPulldownMenu commands_menu;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNhelpCallback = procedure Help("menus file");
X`09`09`09`7D;
X`09`09`7D;
X
X`09windows_menu_entry: XmCascadeButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Windows";
X `09`09`09XmNmnemonic = keysym('W');
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmPulldownMenu windows_menu;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNhelpCallback = procedure Help("menus windows");
X`09`09`09`7D;
X`09`09`7D;
X
X`09select_menu_entry: XmCascadeButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Select";
X`09`09`09XmNmnemonic = keysym('S');
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmPulldownMenu select_menu;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNhelpCallback = procedure Help("menus select");
X`09`09`09`7D;
X`09`09`7D;
X
X`09help_menu_entry: XmCascadeButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Help";
X`09`09`09XmNmnemonic = keysym('H');
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmPulldownMenu help_menu;
X`09`09`09`7D;
X`09`09`7D;
X
X`09commands_menu: XmPulldownMenu `7B
X`09`09controls `7B
X`09`09`09XmPushButton`09read_id_button;
X`09`09`09XmSeparator`09`7B`7D;
X`09`09`09XmPushButton`09read_button;
X`09`09`09XmPushButton`09find_menu_button;
X`09`09`09XmPushButton    write_button;
X`09`09`09XmPushButton    remove_button;
X`09`09`09XmPushButton    quit_button;
X`09`09`09`7D;
X`09`09`7D;
X
X`09windows_menu: XmPulldownMenu `7B
X`09`09controls `7B
X`09`09`09XmToggleButton  access_button;
X`09`09`09XmToggleButton`09accounts_button;
X`09`09`09XmToggleButton  idents_button;
X`09`09`09XmToggleButton  privs_button;
X`09`09`09`7D;
X`09`09`7D;
X
X`09privs_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Privs...";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_privs_menu);
X`09`09`09XmNvalueChangedCallback = procedure Privs;
X`09`09`09XmNhelpCallback = procedure Help("menus windows privs");
X`09`09`09`7D;
X`09`09`7D;
X
X`09accounts_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Accounts...";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_accounts_menu);
X`09`09`09XmNvalueChangedCallback = procedure Accounts;
X`09`09`09XmNhelpCallback = procedure Help("menus windows accounts");
X`09`09`09`7D;
X`09`09`7D;
X
X`09idents_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Identifiers...";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_idents_menu);
X`09`09`09XmNvalueChangedCallback = procedure Idents;
X`09`09`09XmNhelpCallback = procedure Help("menus windows idents");
X`09`09`09`7D;
X`09`09`7D;
X
X`09access_button: XmToggleButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Access...";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_access_menu);
X`09`09`09XmNvalueChangedCallback = procedure Access;
X`09`09`09XmNhelpCallback = procedure Help("menus windows access");
X`09`09`09`7D;
X`09`09`7D;
X
X`09select_menu: XmPulldownMenu `7B
X`09`09controls `7B
X`09`09`09XmPushButton`09restart_button;
X`09`09`09XmSeparator`09`7B`7D;
X`09`09`09XmPushButton`09username_button;
X`09`09`09XmPushButton`09account_button;
X`09`09`09XmPushButton`09owner_button;
X`09`09`09XmPushButton`09uic_button;
X`09`09`09XmPushButton`09device_button;
X`09`09`09XmPushButton`09directory_button;
X`09`09`09XmPushButton`09cli_button;
X`09`09`09XmPushButton`09lgicmd_button;
X`09`09`09XmPushButton`09table_button;
X`09`09`09XmPushButton `09lifetime_button;
X`09`09`09XmPushButton `09expire_button;
X`09`09`09XmPushButton `09logfail_button;
X`09`09`09`7D;
X`09`09`7D;
X
X`09restart_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Reset search";
X`09`09`09XmNsensitive = false;
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_restart_button);
X`09`09`09XmNactivateCallback = procedure Select(k_restart_select);
X`09`09`09XmNhelpCallback = procedure Help("menus select restart");
X`09`09`09`7D;
X`09`09`7D;
X
X`09username_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Username";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_username_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09account_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Account";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_account_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09owner_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Owner";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_owner_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09uic_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "UIC";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_uic_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09device_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Device";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_device_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09directory_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Directory";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_directory_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09cli_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "CLI";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_cli_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09lgicmd_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "LGICMD";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_lgicmd_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09table_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "DCL table";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_table_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09lifetime_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Pwdlifetime";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_lifetime_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09expire_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Expire date";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_expire_select);
X`09`09`09`7D;
X`09`09`7D;
X
X`09logfail_button: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Login failures > 0";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Select(k_logfail_select);
X`09`09`09`7D;
X`09`09`7D;
X
X
X`09help_menu: XmPulldownMenu `7B
X`09`09controls `7B
X`09`09`09XmPushButton`09help_context;
X`09`09`09XmPushButton`09help_window;
X`09`09`09XmPushButton`09help_version;
X`09`09`09`7D;
X`09`09`7D;
X
X`09help_context: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "On Context";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Help("context");
X`09`09`09`7D;
X`09`09`7D;
X
X
X`09help_window: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "On Window";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Help("overview");
X`09`09`09`7D;
X`09`09`7D;
X
X
X`09help_version: XmPushButton `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "On Version";
X`09`09`09`7D;
X`09`09callbacks `7B`09
X`09`09`09XmNactivateCallback = procedure Help("version");
X`09`09`09`7D;
X`09`09`7D;
X
X
Xobject
X`09functions: XmRowColumn `7B
X`09`09arguments `7B
X`09`09`09XmNorientation = XmHORIZONTAL;
X`09`09`09XmNx = k_work_area_x;
X`09`09`09XmNy = k_functions_y;
X`09`09`09XmNspacing = k_work_area_spacing;
X`09`09`09XmNborderWidth = 1;
X`09`09`09`7D;
X`09`09controls `7B
X`09`09`09XmPushButton`09read_button;
X`09`09`09XmPushButton`09find_button;
X`09`09`09XmPushButton    write_button;
X`09`09`09XmPushButton    remove_button;
X`09`09`09XmPushButton    quit_button;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_functions_menu);
X`09`09`09`7D;
X`09`09`7D;
X
X`09read_id_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Read Identifiers";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNactivateCallback = procedure ReadIdentifiers;
X`09`09`09XmNhelpCallback = procedure Help("menus file read_identifiers");
X`09`09`09`7D;
X`09`09`7D;
X
X`09read_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Read";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNactivateCallback = procedure Read;
X`09`09`09XmNhelpCallback = procedure Help("menus file read");
X`09`09`09`7D;
X`09`09`7D;
X
X`09find_menu_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Find Next";
X`09`09`09XmNsensitive = false;
X`09`09`09XmNaccelerator = "<Key>Next:";
X`09`09`09XmNacceleratorText = "Next";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_find_menu);
X`09`09`09XmNactivateCallback = procedure Find;
X`09`09`09XmNhelpCallback = procedure Help("menus file find_next");
X`09`09`09`7D;
X`09`09`7D;
X
X`09find_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Find Next";
X`09`09`09XmNsensitive = false;
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_find_button);
X`09`09`09XmNactivateCallback = procedure Find;
X`09`09`09XmNhelpCallback = procedure Help("menus file find_next");
X`09`09`09`7D;
X`09`09`7D;
X
X`09write_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Write";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNactivateCallback = procedure Write;
X`09`09`09XmNhelpCallback = procedure Help("menus file write");
X`09`09`09`7D;
X`09`09`7D;
X
X`09remove_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Remove";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNactivateCallback = procedure Remove;
X`09`09`09XmNhelpCallback = procedure Help("menus file remove");
X`09`09`09`7D;
X`09`09`7D;
X
X`09quit_button: XmPushButton widget `7B
X`09`09arguments `7B
X`09`09`09XmNlabelString = "Quit";
X`09`09`09XmNacceleratorText = "Ctrl/Z";
X`09`09`09XmNaccelerator = "Ctrl<Key>z:";
X`09`09`09`7D;
X`09`09callbacks `7B
X`09`09`09XmNactivateCallback = procedure Quit;
X`09`09`09XmNhelpCallback = procedure Help("menus file quit");
X`09`09`09`7D;
X`09`09`7D;
$ CALL UNPACK BUTTONS.UIL;79 1934089683
$ create 'f'
X$ old_veri = f$verify(0)
X$ !`09DELTREE.COM - delete a complete directory tree
X$
X$ !`09P1 = pathname of root of tree to delete
X$
X$ !`09All files and directories in the tree, including
X$ !`09the named root directory, are deleted. `20
X$ !`09For instance,`20
X$ !
X$ !`09@DELTREE `5BUSER.SUBDIR`5D
X$ !
X$ !`09deletes everything in `5BUSER.SUBDIR...`5D, and also `5BUSER`5DSUBDIR.
VDIR;1 .
X$ !
X$ !`09Note:  There are faster ways to do this, but this is so elegant. `20
X$
X$`09old_priv = f$setprv("BYPASS")`09`09! ensure we can delete files
X$`09on control_y then goto done
X$`09on warning then goto done
X$ `09default = f$logical("SYS$DISK") + f$directory()
X$
X$GET_PARAM:
X$`09if p1 .eqs. "" then exit
X$
X$`09p1 = p1 - "..."`09`09`09`09! don't want elipsis
X$`09p1_dir = f$parse(p1,,,"DIRECTORY") - "`5D"! get the direc spec w/o trlng
V `5D
X$`09if p1_dir .eqs. "" then goto bad_param`09! check for errors
X$`09p1_nd = f$parse(p1,,,"NODE") + -`09! parse for errors
X`09     f$parse(p1,,,"DEVICE")
X$`09p1 = p1_nd + p1_dir
X$`09if p1 .eqs. "" then goto bad_param`09! Report error, exit
X$
X$ !`09set default to the root of the tree
X$
X$`09set default 'p1'`5D
X$
X$ !`09delete each tree under the current default
X$
X$DIR_LOOP:
X$`09sub_dir = f$search("*.DIR;*")
X$`09if sub_dir .eqs. "" then goto end_dir_loop
X$`09sub_dir_name = f$parse(sub_dir,,,"NAME")
X$`09@'f$envi("PROCEDURE")' `5B.'sub_dir_name'`5D
X$`09goto dir_loop
X$END_DIR_LOOP:
X$
X$ !`09now there are no .DIRs here, delete everything else.
X$
X$`09if f$search("*.*;*") .eqs. "" then goto del_root
X$`09write sys$output "Deleting ''p1'`5D*.*;*"
X$`09on warning then goto del_root
X$!!!`09set file/prot=o:rwed *.*;*
X$`09delete *.*;*
X$
X$ !`09finally, delete the .DIR for the current default. `20
X$
X$DEL_ROOT:
X$
X$ !`09we set the default up one level, then remove the resulting default
X$ !`09directory string from the original root directory spec, so we're`20
X$ !`09left with the file name of the .DIR to be deleted.  The character
X$ !`09expression used here works properly even when the root is a ufd. `20
X$
X$`09set default `5B-`5D
X$`09top_dir = ((p1_dir - (f$directory() - "`5D")) - "." - "`5B") + ".DIR;1"
X$`09on warning then goto done
X$`09write sys$output "Deleting ''p1_nd'''f$directory()'''top_dir'"
X$`09set file/prot=w:rwed 'top_dir'
X$`09delete 'top_dir'
X$`09goto done
X$`09
X$BAD_PARAM:
X$`09write sys$output "COULD NOT FIND ROOT"
X$
X$DONE:
X$`09set default 'default'
X$`09junk = f$setprv (old_priv)
X$`09junk = f$veri(old_veri)
$ CALL UNPACK DELTREE.COM;4 643486790
$ create 'f'
X.suffixes .uid .uil
X.uil.uid
X`09UIL/MOTIF $(mms$source)
X
Xbuild : dwprofile.exe, dwprofile.uid, access.uid, privs.uid, idents.uid, dwp
Vrofile.hlb`20
X`09!done
X
Xdwprofile.exe : dwprofile.obj
X`09$(link) $(linkflags) $(mms$source_list),motif/opt
X
Xdwprofile.obj : dwprofile.c, dwpdef.h
X
Xdwprofile.uid : dwprofile.uil, text.uil, flags.uil, quotas.uil, buttons.uil
X
Xdeb :`20
X`09cflags = "/noopt/debug/define=debug"
X`09linkflags = "/deb"
X`09if "''f$search("dwprofile.obj")'" .nes. "" then delete/nolog dwprofile.ob
Vj;*
X`09mms /override
$ CALL UNPACK DESCRIP.MMS;39 242296416
$ create 'f'
X/* DWprofile table definitions */
X
X#include uaidef
X#include <X11/Intrinsic.h>
X#include <Mrm/MrmAppl.h>
X
X#define NO 0
X#define OFF 0
X#define ON 1
X
X#define k_widget_uic_trans 7    /* unused UAI codes */
X#define k_widget_held_list 8    /* for non-UAI widgets */
X#define k_widget_all_list  9
X
X#define k_hours_height 16
X#define MAX_WIDGET UAI$_MAX_ITEM_CODE
X#define PRIVS_BIAS 40
X#define MAX_PRIVS PRIVS_BIAS * 2
X#define MAX_PRIME 7     /* number of prime day widgets */
X#define MAX_FLAGS 20    /* number of flag widgets */
X#define access_menu 0
X#define accounts_menu 1
X#define idents_menu 2
X#define privs_menu 3
X#define functions_menu 4
X#define find_menu 5
X#define find_button 6
X#define restart_button 7
X#define MAX_MENUS (restart_button + 1)
X#define SDATA_LEN 65   /* size of largest UAI item + 1 */
X
X/* Type of UAF element */
X
X#define DWP_LALPHA`091`09/* Alpha with length byte */
X#define DWP_INT`09`092`09/* Integer */
X#define DWP_TIME`093`09/* 3 byte time vector */
X#define DWP_DATE`094`09/* Date */
X#define DWP_PRIV`095`09/* Priv vector */
X#define DWP_FLAG`096`09/* Login flags */
X#define DWP_UIC`09`097`09/* UIC */
X#define DWP_PRIME`098`09/* Primary/seconday days */
X#define DWP_ENCR`099`09/* Encrypted password */
X#define DWP_ALPHA`0910`09/* Alpha, no length byte */
X#define DWP_CPU`09`0911`09/* CPU time in 10 ms units */
X#define DWP_RDATE`0912`09/* Read-only Date */
X#define DWP_RINT`0913`09/* Read-only Integer */
X
X/* array of UAF elements */
Xstruct `7B
X    int code, size, type;
X`7D items`5B`5D = `7B
X    `7BUAI$_ACCOUNT, 32, DWP_ALPHA`7D,
X    `7BUAI$_ASTLM, 2, DWP_INT`7D,
X    `7BUAI$_BATCH_ACCESS_P, 3, DWP_TIME`7D,
X    `7BUAI$_BATCH_ACCESS_S, 3, DWP_TIME`7D,
X    `7BUAI$_BIOLM, 2, DWP_INT`7D,
X    `7BUAI$_BYTLM, 4, DWP_INT`7D,
X    `7BUAI$_CLITABLES, 32, DWP_LALPHA`7D,
X    `7BUAI$_CPUTIM, 4, DWP_CPU`7D,
X    `7BUAI$_DEFCLI, 32, DWP_LALPHA`7D,
X    `7BUAI$_DEFDEV, 32, DWP_LALPHA`7D,
X    `7BUAI$_DEFDIR, 64, DWP_LALPHA`7D,
X    `7BUAI$_DEF_PRIV, 8, DWP_PRIV`7D,
X    `7BUAI$_DFWSCNT, 4, DWP_INT`7D,
X    `7BUAI$_DIOLM, 2, DWP_INT`7D,
X    `7BUAI$_DIALUP_ACCESS_P, 3, DWP_TIME`7D,
X    `7BUAI$_DIALUP_ACCESS_S, 3, DWP_TIME`7D,
X    `7BUAI$_ENQLM, 2, DWP_INT`7D,
X    `7BUAI$_EXPIRATION, 8, DWP_DATE`7D,
X    `7BUAI$_FILLM, 2, DWP_INT`7D,
X    `7BUAI$_FLAGS, 4, DWP_FLAG`7D,
X    `7BUAI$_JTQUOTA, 4, DWP_INT`7D,
X    `7BUAI$_LGICMD, 64, DWP_LALPHA`7D,
X    `7BUAI$_LASTLOGIN_I, 8, DWP_RDATE`7D,
X    `7BUAI$_LASTLOGIN_N, 8, DWP_RDATE`7D,
X    `7BUAI$_LOCAL_ACCESS_P, 3, DWP_TIME`7D,
X    `7BUAI$_LOCAL_ACCESS_S, 3, DWP_TIME`7D,
X    `7BUAI$_LOGFAILS, 2, DWP_RINT`7D,
X    `7BUAI$_MAXACCTJOBS, 2, DWP_INT`7D,
X    `7BUAI$_MAXDETACH, 2, DWP_INT`7D,
X    `7BUAI$_MAXJOBS, 2, DWP_INT`7D,
X    `7BUAI$_NETWORK_ACCESS_P, 3, DWP_TIME`7D,
X    `7BUAI$_NETWORK_ACCESS_S, 3, DWP_TIME`7D,
X    `7BUAI$_OWNER, 32, DWP_LALPHA`7D,
X    `7BUAI$_PBYTLM, 4, DWP_INT`7D,
X    `7BUAI$_PGFLQUOTA, 4, DWP_INT`7D,
X    `7BUAI$_PRCCNT, 2, DWP_INT`7D,
X    `7BUAI$_PRI, 1, DWP_INT`7D,
X    `7BUAI$_PRIMEDAYS, 1, DWP_PRIME`7D,
X    `7BUAI$_PRIV, 8, DWP_PRIV`7D,
X    `7BUAI$_PWD, 8, DWP_ENCR`7D,
X    `7BUAI$_PWD_DATE, 8, DWP_RDATE`7D,
X    `7BUAI$_PWD_LENGTH, 1, DWP_INT`7D,
X    `7BUAI$_PWD_LIFETIME, 8, DWP_DATE`7D,
X    `7BUAI$_PWD2_DATE, 8, DWP_RDATE`7D,
X    `7BUAI$_QUEPRI, 1, DWP_INT`7D,
X    `7BUAI$_REMOTE_ACCESS_P, 3, DWP_TIME`7D,
X    `7BUAI$_REMOTE_ACCESS_S, 3, DWP_TIME`7D,
X    `7BUAI$_SHRFILLM, 2, DWP_INT`7D,
X    `7BUAI$_TQCNT, 2, DWP_INT`7D,
X    `7BUAI$_UIC, 4, DWP_UIC`7D,
X    `7BUAI$_USERNAME, 12, DWP_ALPHA`7D,
X    `7BUAI$_WSEXTENT, 4, DWP_INT`7D,
X    `7BUAI$_WSQUOTA, 4, DWP_INT`7D,`20
X    `7BNULL, NULL, NULL`7D
X`7D;
X
X/* array of UAF elements that can be selected for the 'find' button */
X/* indexed by k_*_select in buttons.uil */
Xstruct `7B
X    int code, size, type;
X    String name;
X`7D select_data`5B`5D = `7B
X    `7BUAI$_USERNAME, 12, DWP_ALPHA, "Username"`7D,
X    `7BUAI$_ACCOUNT, 32, DWP_ALPHA, "Account"`7D,
X    `7BUAI$_OWNER, 32, DWP_LALPHA, "Owner"`7D,
X    `7BUAI$_UIC, 4, DWP_UIC, "UIC"`7D,
X    `7BUAI$_DEFDEV, 32, DWP_LALPHA, "Device"`7D,
X    `7BUAI$_DEFDIR, 64, DWP_LALPHA, "Directory"`7D,
X    `7BUAI$_DEFCLI, 32, DWP_LALPHA, "CLI"`7D,
X    `7BUAI$_LGICMD, 64, DWP_LALPHA, "LGICMD"`7D,
X    `7BUAI$_CLITABLES, 32, DWP_LALPHA, "DCL Table"`7D,
X    `7BUAI$_PWD_LIFETIME, 8, DWP_DATE, "Pwdlifetime"`7D,
X    `7BUAI$_EXPIRATION, 8, DWP_DATE, "Expire Date"`7D,
X    `7BUAI$_LOGFAILS, 2, DWP_RINT, "Login failures"`7D,
X    `7B NULL, NULL, NULL, NULL`7D
X`7D;
X
X
X/* ubiquitous itemlist3 */
Xstruct itemlist3 `7B
X    short buflen;
X    short itmcode;
X    char  *bufadr;
X    short *retadr;
X`7D;
X
Xtypedef unsigned short int ushort;
X
X/* Identifier list node structure */
Xtypedef struct ident_node `7B
X    String name;         /* name of identifier */
X    Cardinal identifier; /* value of identifier */
X    enum `7Buic_ident, account, intern_ident, user_ident`7D status;
X                         /* uic_ident = `5Bn,m`5D type identifier */
X                         /* account = `5Bn,*`5D type identifier */
X                         /* intern_ident = interactive, batch, sys$node_x */
X                         /* user_ident = regular identifier (%x080010000+n)
V */
X    struct ident_node *next;
X`7D ident;
X
X/* Held identifier list node structure */
Xtypedef struct held_node `7B
X    String name;         /* name of identifier */
X    Cardinal identifier; /* value of identifier */
X    enum `7Boriginal, del_orig, add_ident`7D status;
X                         /* original = identifier was held when user read in
V */
X                         /* del_orig = original identifier to be removed upo
Vn write */
X                         /* add_ident = identifier to be added upon write */
X    struct held_node *next;
X`7D held_ident;
X
X
X/* non-widget resources */
Xtypedef struct `7B
X    Cardinal quota, overdraft, version_limit, minimum_group, maximum_group,
X        hour_size;
X    int read_interval, write_interval, find_interval;
X    String default_ident;
X    Boolean show_access, show_accounts, show_idents, show_privs, show_work;
X`7D ApplicationData, *ApplicationDataPtr;
X
Xstatic XtResource resources`5B`5D = `7B
X    `7B"defaultIdent", "DefaultIdent", XtRString, sizeof(String),
X     XtOffset(ApplicationDataPtr, default_ident), XtRString, ""`7D,
X    `7B"hourSize", "HourSize", XtRInt, sizeof(int),
X     XtOffset(ApplicationDataPtr, hour_size), XtRString, "7"`7D,
X    `7B"readNotifyInterval", "PopupTime", XtRInt, sizeof(int),
X     XtOffset(ApplicationDataPtr, read_interval), XtRString, "-2"`7D,
X    `7B"writeNotifyInterval", "PopupTime", XtRInt, sizeof(int),
X     XtOffset(ApplicationDataPtr, write_interval), XtRString, "-2"`7D,
X    `7B"findNotifyInterval", "PopupTime", XtRInt, sizeof(int),
X     XtOffset(ApplicationDataPtr, find_interval), XtRString, "-1"`7D,
X    `7B"overdraft", "Overdraft", XtRInt, sizeof(int),
X     XtOffset(ApplicationDataPtr, overdraft), XtRString, "0"`7D,
X    `7B"quota", "Quota", XtRInt, sizeof(int),
X     XtOffset(ApplicationDataPtr, quota), XtRString, "0"`7D,
X    `7B"showAccess", "ShowAccess", XtRBoolean, sizeof(Boolean),
X     XtOffset(ApplicationDataPtr, show_access), XtRString, "False"`7D,
X    `7B"showAccounts", "AutoShow", XtRBoolean, sizeof(Boolean),
X     XtOffset(ApplicationDataPtr, show_accounts), XtRString, "False"`7D,
X    `7B"showPrivs", "AutoShow", XtRBoolean, sizeof(Boolean),
X     XtOffset(ApplicationDataPtr, show_privs), XtRString, "False"`7D,
X    `7B"showIdents", "AutoShow", XtRBoolean, sizeof(Boolean),
X     XtOffset(ApplicationDataPtr, show_idents), XtRString, "False"`7D,
X    `7B"showWorkBox", "AutoShow", XtRBoolean, sizeof(Boolean),
X     XtOffset(ApplicationDataPtr, show_work), XtRString, "True"`7D,
+-+-+-+-+-+-+-+-  END  OF PART 1 +-+-+-+-+-+-+-+-
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads