home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / vmsnet / sources / 472 < prev    next >
Encoding:
Internet Message Format  |  1993-01-05  |  47.7 KB

  1. Path: sparky!uunet!cs.utexas.edu!swrinde!network.ucsd.edu!mvb.saic.com!vmsnet-sources
  2. From: tanner@cerritos.edu
  3. Newsgroups: vmsnet.sources
  4. Subject: DWProfile V3.3, part 01/06
  5. Message-ID: <9908573@MVB.SAIC.COM>
  6. Date: Mon, 04 Jan 1993 20:46:16 GMT
  7. Organization: Cerritos College, Norwalk CA
  8. Lines: 1551
  9. Approved: Mark.Berryman@Mvb.Saic.Com
  10.  
  11. Submitted-by: tanner@cerritos.edu
  12. Posting-number: Volume 4, Issue 26
  13. Archive-name: dwprofile/part01
  14.  
  15. DWProfile is a DECwindows Motif application that creates, modifies and
  16. deletes UAF records.  It will perform most of the functions of AUTHORIZE
  17. and will also automatically create, move and delete directories.
  18. -- 
  19. Bruce Tanner        (310) 860-2451 x 596    Tanner@Cerritos.EDU
  20. Cerritos College    Norwalk, CA             DoD #0161  NOMAD #007
  21.  
  22. $! ------------------ CUT HERE -----------------------
  23. $ v='f$verify(f$trnlnm("SHARE_VERIFY"))'
  24. $!
  25. $! This archive created by VMS_SHARE Version 7.2-007  22-FEB-1990
  26. $!   On 18-DEC-1992 13:25:24.51   By user TANNER 
  27. $!
  28. $! This VMS_SHARE Written by:
  29. $!    Andy Harper, Kings College London UK
  30. $!
  31. $! Acknowledgements to:
  32. $!    James Gray       - Original VMS_SHARE
  33. $!    Michael Bednarek - Original Concept and implementation
  34. $!
  35. $!+ THIS PACKAGE DISTRIBUTED IN 6 PARTS, TO KEEP EACH PART
  36. $!  BELOW 100 BLOCKS
  37. $!
  38. $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
  39. $! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
  40. $!
  41. $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
  42. $!       1. AAAREADME.TXT;44
  43. $!       2. ABSTRACT.TXT;1
  44. $!       3. ACCESS.UIL;39
  45. $!       4. BUTTONS.UIL;79
  46. $!       5. DELTREE.COM;4
  47. $!       6. DESCRIP.MMS;39
  48. $!       7. DWPDEF.H;49
  49. $!       8. DWPROFILE.C;445
  50. $!       9. DWPROFILE.DAT;91
  51. $!      10. DWPROFILE.HLP;21
  52. $!      11. DWPROFILE.UIL;44
  53. $!      12. FLAGS.UIL;51
  54. $!      13. IDENTS.UIL;33
  55. $!      14. MOTIF.OPT;3
  56. $!      15. MOVE_DIRECTORY.COM;10
  57. $!      16. PRIVS.UIL;61
  58. $!      17. QUOTAS.UIL;16
  59. $!      18. RESETOWNER.COM;19
  60. $!      19. TEXT.UIL;25
  61. $!
  62. $set="set"
  63. $set symbol/scope=(nolocal,noglobal)
  64. $f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID"))
  65. $e="write sys$error  ""%UNPACK"", "
  66. $w="write sys$output ""%UNPACK"", "
  67. $ if f$trnlnm("SHARE_LOG") then $ w = "!"
  68. $ ve=f$getsyi("version")
  69. $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START
  70. $ e "-E-OLDVER, Must run at least VMS 4.4"
  71. $ v=f$verify(v)
  72. $ exit 44
  73. $UNPACK: SUBROUTINE ! P1=filename, P2=checksum
  74. $ if f$search(P1) .eqs. "" then $ goto file_absent
  75. $ e "-W-EXISTS, File ''P1' exists. Skipped."
  76. $ delete 'f'*
  77. $ exit
  78. $file_absent:
  79. $ if f$parse(P1) .nes. "" then $ goto dirok
  80. $ dn=f$parse(P1,,,"DIRECTORY")
  81. $ w "-I-CREDIR, Creating directory ''dn'."
  82. $ create/dir 'dn'
  83. $ if $status then $ goto dirok
  84. $ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped."
  85. $ delete 'f'*
  86. $ exit
  87. $dirok:
  88. $ w "-I-PROCESS, Processing file ''P1'."
  89. $ if .not. f$verify() then $ define/user sys$output nl:
  90. $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1'
  91. PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET(
  92. SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:=
  93. CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b));
  94. LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION(
  95. BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1);
  96. IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE;
  97. MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1;
  98. ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")=
  99. 1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF";
  100. POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r);
  101. ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1;
  102. COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE,
  103. "output_file"));ENDPROCEDURE;Unpacker;QUIT;
  104. $ delete/nolog 'f'*
  105. $ CHECKSUM 'P1'
  106. $ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT
  107. $ e "-E-CHKSMFAIL, Checksum of ''P1' failed."
  108. $ ENDSUBROUTINE
  109. $START:
  110. $ create 'f'
  111. XInstallation:
  112. X`09The logical name DWPUID needs to point to the directory that contains
  113. X`09DWPROFILE.UID, ACCESS.UID, PRIVS.UID, IDENTS.UID, RESETOWNER.COM,
  114. X`09DELTREE.COM, MOVE_DIRECTORY.COM and DWPROFILE.HLB.
  115. X`09DWPROFILE.DAT must be put in DECW$SYSTEM_DEFAULTS: (World Readable)
  116. X`09or DECW$USER_DEFAULTS:
  117. X
  118. X`09To rebuild:
  119. X`09UIL/MOTIF DWPROFILE
  120. X`09UIL/MOTIF ACCESS
  121. X`09UIL/MOTIF PRIVS
  122. X`09UIL/MOTIF IDENTS
  123. X`09CC DWPROFILE
  124. X`09LINK DWPROFILE,MOTIF/OPT
  125. X`09LIBRARY/CREATE/HELP DWPROFILE.HLB DWPROFILE.HLP
  126. X
  127. X`09or if you have MMS, use the DESCRIP.MMS file.
  128. X
  129. XOperation:
  130. X`09The interface is supposed to be intuitive, but here's what the buttons
  131. X`09and stuff do:
  132. X
  133. X`09'Read Identifiers' forces the list of identifiers to be reloaded.
  134. X`09This is only necessary if new identifiers have been created since
  135. X`09DWProfile was started.
  136. X
  137. X`09'Read' reads in the UAF entry given by the 'username' widget.
  138. X
  139. X`09'Find Next' will search the UAF for a field that is specified by
  140. X`09the 'Select' menu.
  141. X
  142. X`09'Write' writes out those fields that were changed for the specified
  143. X`09record.  If the UAF record is created, the UIC, owner, account, default
  144. X`09device and directory must also be specified.  A new directory is created
  145. X`09if necessary, the directory tree will be moved if the device/directory
  146. X`09field changes.
  147. X
  148. X`09'Remove' removes the specified UAF record.  The directory tree is deleted
  149. V.
  150. X
  151. X`09'Quit' exits the program.
  152. X
  153. X`09'Access...' pops up or removes a window that displays the hours
  154. X`09available for each category of access.  Click and drag in these
  155. X`09windows to change the time.
  156. X
  157. X`09'Privs...' pops up or removes a window that displays the default and
  158. X`09authorized privileges.
  159. X
  160. X`09'Accounts...' pops up or removes a selection widget that provides a
  161. X`09list of group identifier names.  A new UIC is calculated from this
  162. X`09group number.
  163. X
  164. X`09'Idents...' pops up up or removes a pair of list boxes that contain
  165. X`09the identifiers that may be granted and the identifiers that are held
  166. X`09by the UIC.
  167. X
  168. X`09'Select' lets you select a field and contents for the 'Find Next' button.
  169. X
  170. XNon-obvious interactions:
  171. X`09If DWProfile is defined as a symbol, the initial username can be
  172. X`09specified after the symbol name, e.g. dwp :== $dwprofile and then
  173. X`09dwp tanner.
  174. X
  175. X`09If return is pressed in the 'username' widget, the 'Read' button routine
  176. X`09is executed.
  177. X
  178. X`09If the return key is pressed in the 'account' widget and the UIC is
  179. X`09`5B0,0`5D, a new UIC will be calculated.
  180. X
  181. XScreen/font interactions:
  182. X`09The default 75DPI font used on 19" monitors, is smaller than the default
  183. X`09100DPI font used on 15" monitors.  If the application's widgets are
  184. X`09positioned for the 75DPI fonts, the text fields will probably overlap.
  185. X`09I've explicitly specified that the 75DPI 12 point Helvetica Bold font
  186. X`09will be used by all widgets (see DWPROFILE.DAT).  This is almost the
  187. X`09same as the default 75DPI font, except that the pitch is narrower.
  188. X
  189. XCustomization:
  190. X`09There are a couple of non-widget resources that DWProfile can use.
  191. X`09The default value is in parenthesis.
  192. X
  193. X        DWProfile.quota (none) and DWProfile.overdraft (none) set the disk q
  194. Vuota
  195. X        and overdraft used when creating a new directory.
  196. X
  197. X`09DWProfile.defaultIdent ("") will position the list box of identifiers
  198. X`09to show this idenifier item if it exists.  In other words, if there
  199. X`09is a 'staff' identifier that almost everyone gets, this will
  200. X`09automatically scroll the list widget to show 'staff'.
  201. X
  202. X`09DWProfile.showAccess (False), DWProfile.showPrivs (False),
  203. X`09DWProfile.showAccounts (False), DWProfile.showIdents (False) will
  204. X`09automatically display the specified windows.
  205. X
  206. X`09DWProfile.readNotifyInterval (-2) will provide notification
  207. X`09when reading a non-existant user name.  See findNotifyInterval for a`20
  208. X`09description of the value.            `20
  209. X
  210. X`09DWProfile.writeNotifyInterval (-2) will provide  notification
  211. X`09upon successful creation/update of a UAF record.  See findNotifyInterval
  212. X`09for a description of the value.            `20
  213. X
  214. X`09DWProfile.findNotifyInterval (-1) will provide notification of a
  215. X`09non-existant UAF record when searching through the list of UIC-type
  216. X`09identifiers.  The interpretation  of the interval is:
  217. X`09-2 means don't notify at all
  218. X`09-1 means display the message on sys$output (the DECterm, fileview output,
  219. V etc.)
  220. X`090 means pop up a message window
  221. X`09n means pop up a message window for n milliseconds or until the OK button
  222. V is pressed.
  223. X
  224. X`09DWProfile.versionLimit (0) will define the version limit of a user's
  225. X`09directory created by DWProfile.  The version limit is normally
  226. X`09inherited from the parent directory.
  227. X
  228. X`09DWProfile.minimumGroup (0) and DWProfile.maximumGroup (32767) specify
  229. X`09the minimum and maximum groups that will be calculated when a new UIC
  230. X`09is generated.  For example, your group numbers start with 200 and
  231. X`09extend upward, but you have network servers with UIC group numbers at
  232. X`09400.  A new account string will generate a UIC group above 400 rather
  233. X`09than in the 200's that you'd wish.  Setting maximumGroup to be 255
  234. X`09(377 octal) will cause DWProfile to ignore UICs above `5B400,0`5D for the
  235. X`09purposes of making a new UIC.  minimumGroup won't mean anything
  236. X`09unless you are creating a new range of group numbers.
  237. X
  238. X`09You can override the resources in DECW$SYSTEM_DEFAULTS:DWPROFILE.DAT by
  239. X`09specifying resources in SYS$USER_DEFAULTS:DWPROFILE.DAT or
  240. X`09SYS$LOGIN:DECW$XDEFAULTS.DAT.  Just remember that you have to log back
  241. X`09in to reload the new DECW$XDEFAULTS.DAT.
  242. X
  243. XThings to do:
  244. X`09Add/Remove identifiers (maybe).  Is this needed?
  245. X
  246. X`09It turns out that the login flags and quotas aren't used often.
  247. X`09Perhaps they can be put into their own window?
  248. X`09Then we'd have room for password changed date, pwd expired button,
  249. X`09disk quota and overdraft.
  250. X
  251. X`09Save a named default UAF record other than the DEFAULT UAF record.
  252. X`09Include things like identifiers, disk quota.
  253. X
  254. X`09Pop up requestor on search for date fields, numeric fields, to ask for
  255. X`09a relation.  Flags and privs would have a mask and match.  Identifiers
  256. X`09are easy ($find_holder).
  257. X
  258. X`09Something else might be done with the list of matched identifiers.
  259. X`09Write username/owner/etc. to a file?  Print widget?`20
  260. X
  261. X`09Use XtVaSetArgs(), XmNmodifyVerify callback
  262. X
  263. XAcknowledgements:
  264. X`09This program was inspired by and named after Profile by John Howells.
  265. X`09Some of the techniques used in DWProfile were gratefully stolen from
  266. X`09that program.
  267. X
  268. X`09DELTREE.COM was posted to comp.os.vms by Jamie Hanrahan, Simpact
  269. X`09Associates, San Diego CA.
  270. X
  271. XBugs/fixes/suggestions/praise/brickbats to:
  272. X
  273. X`09Tanner@Cerritos.EDU
  274. X
  275. X`09Bruce Tanner
  276. X`09Cerritos College
  277. X`09Computer Services
  278. X`0911110 Alondra Blvd.
  279. X`09Norwalk, CA 90650
  280. X
  281. X`09(310) 860-2451 x596
  282. $ CALL UNPACK AAAREADME.TXT;44 628854647
  283. $ create 'f'
  284. XDWProfile is a DECwindows Motif application that creates, modifies and
  285. Xdeletes UAF records.  It will perform most of the functions of AUTHORIZE
  286. Xand will also automatically create, move and delete directories.
  287. X
  288. XDWProfile will also search and display UAF records based on fields matching
  289. X(possibly wildcarded) selection criteria.
  290. X
  291. XSource: C, UIL
  292. XRequires: DECwindows Motif V1.0A or higher.
  293. $ CALL UNPACK ABSTRACT.TXT;1 1007373165
  294. $ create 'f'
  295. Xmodule Access
  296. X`09names = case_sensitive
  297. X
  298. X        objects = `7B
  299. X                XmLabel = gadget;
  300. X                XmPushButton = gadget;
  301. X                XmToggleButton = gadget;
  302. X                `7D
  303. X
  304. Xprocedure
  305. X`09WidgetCreated(integer);
  306. X`09Help(string);
  307. X
  308. Xobject
  309. X`09access_box: XmBulletinBoardDialog `7B
  310. X`09`09arguments `7B
  311. X`09`09`09XmNdialogTitle = "DWProfile: Access times";
  312. X`09`09`09XmNdefaultPosition = false;
  313. X`09`09`7D;
  314. X`09`09controls `7B
  315. X`09`09`09XmForm`09prime;
  316. X`09`09`09XmForm`09hours;
  317. X`09`09`09`7D;
  318. X`09`09callbacks `7B
  319. X`09`09`09XmNhelpCallback = procedure Help("menus windows access");
  320. X`09`09`09`7D;
  321. X`09`09`7D;
  322. X
  323. Xvalue
  324. X`09k_monday_button:`090;
  325. X`09k_tuesday_button:`091;
  326. X`09k_wednesday_button:`092;
  327. X`09k_thursday_button:`093;
  328. X`09k_friday_button:`094;
  329. X`09k_saturday_button:`095;
  330. X`09k_sunday_button:`096;
  331. X
  332. Xprocedure
  333. X`09PrimeCreated(integer);
  334. X`09PrimeChanged(integer);
  335. X
  336. Xobject
  337. X`09prime: XmForm `7B
  338. X`09`09arguments `7B
  339. X`09`09`09XmNx = 5;
  340. X`09`09`09XmNy = 5;
  341. X`09`09`09`7D;
  342. X`09`09controls `7B
  343. X`09`09`09XmLabel`09`09prime_label;
  344. X`09`09`09XmRowColumn`09prime_box;
  345. X`09`09`09`7D;
  346. X`09`09`7D;
  347. X
  348. X`09prime_label: XmLabel `7B
  349. X`09`09arguments `7B
  350. X`09`09`09XmNlabelString = "Prime Days:";
  351. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  352. X`09`09`09XmNleftOffset = 5;
  353. X`09`09`09XmNtopAttachment = XmATTACH_FORM;
  354. X`09`09`09XmNtopOffset = 2;    `20
  355. X`09`09`09`7D;
  356. X`09`09`7D;
  357. X
  358. X`09prime_box: XmRowColumn `7B
  359. X`09`09arguments `7B
  360. X`09`09`09XmNleftAttachment = XmATTACH_WIDGET;
  361. X`09`09`09XmNleftWidget = prime_label;
  362. X`09`09`09XmNorientation = XmHORIZONTAL;
  363. X`09`09`09XmNpacking = XmPACK_TIGHT;
  364. X`09`09`09`7D;
  365. X`09`09controls `7B
  366. X`09`09`09XmToggleButton`09monday_button;
  367. X`09`09`09XmToggleButton`09tuesday_button;
  368. X`09`09`09XmToggleButton`09wednesday_button;
  369. X`09`09`09XmToggleButton`09thursday_button;
  370. X`09`09`09XmToggleButton`09friday_button;
  371. X`09`09`09XmToggleButton`09saturday_button;
  372. X`09`09`09XmToggleButton`09sunday_button;
  373. X`09`09`09`7D;
  374. X`09`09`7D;
  375. X
  376. X
  377. X`09sunday_button: XmToggleButton `7B
  378. X`09`09arguments `7B
  379. X`09`09`09XmNlabelString = "Sunday";
  380. X`09`09`7D;
  381. X`09`09callbacks `7B
  382. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_sunday_button);
  383. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_sunday_button);
  384. X`09`09`09`7D;
  385. X`09`09`7D;
  386. X
  387. X`09monday_button: XmToggleButton `7B
  388. X`09`09arguments `7B
  389. X`09`09`09XmNlabelString = "Monday";
  390. X`09`09`7D;
  391. X`09`09callbacks `7B
  392. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_monday_button);
  393. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_monday_button);
  394. X`09`09`09`7D;
  395. X`09`09`7D;
  396. X
  397. X`09tuesday_button: XmToggleButton `7B
  398. X`09`09arguments `7B
  399. X`09`09`09XmNlabelString = "Tuesday";
  400. X`09`09`7D;
  401. X`09`09callbacks `7B
  402. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_tuesday_button);
  403. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_tuesday_button);
  404. X`09`09`09`7D;
  405. X`09`09`7D;
  406. X
  407. X`09wednesday_button: XmToggleButton `7B
  408. X`09`09arguments `7B
  409. X`09`09`09XmNlabelString = "Wednsday";
  410. X`09`09`7D;
  411. X`09`09callbacks `7B
  412. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_wednesday_button);
  413. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_wednesday_button
  414. V);
  415. X`09`09`09`7D;
  416. X`09`09`7D;
  417. X
  418. X`09thursday_button: XmToggleButton `7B
  419. X`09`09arguments `7B
  420. X`09`09`09XmNlabelString = "Thursday";
  421. X`09`09`7D;
  422. X`09`09callbacks `7B
  423. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_thursday_button);
  424. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_thursday_button)
  425. V;
  426. X`09`09`09`7D;
  427. X`09`09`7D;
  428. X
  429. X`09friday_button: XmToggleButton `7B
  430. X`09`09arguments `7B
  431. X`09`09`09XmNlabelString = "Friday";
  432. X`09`09`7D;
  433. X`09`09callbacks `7B
  434. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_friday_button);
  435. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_friday_button);
  436. X`09`09`09`7D;
  437. X`09`09`7D;
  438. X
  439. X`09saturday_button: XmToggleButton `7B
  440. X`09`09arguments `7B
  441. X`09`09`09XmNlabelString = "Saturday";
  442. X`09`09`7D;
  443. X`09`09callbacks `7B
  444. X`09`09`09MrmNcreateCallback = procedure PrimeCreated(k_saturday_button);
  445. X`09`09`09XmNvalueChangedCallback = procedure PrimeChanged(k_saturday_button)
  446. V;
  447. X`09`09`09`7D;
  448. X`09`09`7D;
  449. X
  450. X
  451. Xvalue
  452. X`09k_widget_network_prime:`09`0936;
  453. X`09k_widget_network_secondary:`0937;
  454. X`09k_widget_batch_prime:`09`0938;
  455. X`09k_widget_batch_secondary:`0939;
  456. X`09k_widget_local_prime:`09`0940;
  457. X`09k_widget_local_secondary:`0941;
  458. X`09k_widget_dialup_prime:`09`0942;
  459. X`09k_widget_dialup_secondary:`0943;
  460. X`09k_widget_remote_prime:`09`0944;
  461. X`09k_widget_remote_secondary:`0945;
  462. X
  463. X`09k_prime_label_tab:`09`095;
  464. X`09k_prime_hour_tab:`09`09100;
  465. X`09k_secondary_label_tab:`09`09350;
  466. X`09k_secondary_hour_tab:`09`09450;
  467. X`09k_hours_height:`09`09`0916;
  468. X`09k_hours_width:`09`09`09192; !runtime modified to hourSize * 24
  469. X`09k_hour_2_y:`09`09`0913;
  470. X
  471. Xobject
  472. X`09hours: XmForm `7B
  473. X`09`09arguments `7B
  474. X`09`09`09XmNx = 5;
  475. X`09`09`09XmNy = 40;
  476. X`09`09`09`7D;
  477. X`09`09controls `7B
  478. X`09`09`09XmLabel`09primary_label;
  479. X`09`09`09XmLabel`09primary_hours_1;
  480. X`09`09`09XmLabel`09primary_hours_2;
  481. X`09`09`09XmLabel`09secondary_label;
  482. X`09`09`09XmLabel`09secondary_hours_1;
  483. X`09`09`09XmLabel`09secondary_hours_2;
  484. X`09`09`09XmForm network;
  485. X`09`09`09XmForm batch;
  486. X`09`09`09XmForm local;
  487. X`09`09`09XmForm dialup;
  488. X`09`09`09XmForm remote;
  489. X`09`09`09`7D;
  490. X`09`09`7D;
  491. X
  492. X`09primary_label: XmLabel `7B
  493. X`09`09arguments `7B
  494. X`09`09`09XmNlabelString = "Primary";
  495. X`09`09`09XmNx = k_prime_label_tab;
  496. X`09`09`09`7D;
  497. X`09`09`7D;
  498. X
  499. X`09primary_hours_1: XmLabel `7B
  500. X`09`09arguments `7B
  501. X`09`09`09XmNlabelString = "000000000011111111112222";
  502. X`09`09`09XmNx = k_prime_hour_tab;
  503. X`09`09`09`7D;
  504. X`09`09`7D;
  505. X
  506. X`09primary_hours_2: XmLabel `7B
  507. X`09`09arguments `7B
  508. X`09`09`09XmNlabelString = "012345678901234567890123";
  509. X`09`09`09XmNx = k_prime_hour_tab;
  510. X`09`09`09XmNy = k_hour_2_y;
  511. X`09`09`09`7D;
  512. X`09`09`7D;
  513. X
  514. X`09secondary_label: XmLabel `7B
  515. X`09`09arguments `7B
  516. X`09`09`09XmNlabelString = "Secondary";
  517. X`09`09`09XmNx = k_secondary_label_tab;
  518. X`09`09`09`7D;
  519. X`09`09`7D;
  520. X
  521. X`09secondary_hours_1: XmLabel `7B
  522. X`09`09arguments `7B
  523. X`09`09`09XmNlabelString = "000000000011111111112222";
  524. X`09`09`09XmNx = k_secondary_hour_tab;
  525. X`09`09`09`7D;
  526. X`09`09`7D;
  527. X
  528. X`09secondary_hours_2: XmLabel `7B
  529. X`09`09arguments `7B
  530. X`09`09`09XmNlabelString = "012345678901234567890123";
  531. X`09`09`09XmNx = k_secondary_hour_tab;
  532. X`09`09`09XmNy = k_hour_2_y;
  533. X`09`09`09`7D;
  534. X`09`09`7D;
  535. X
  536. X`09network: XmForm `7B
  537. X`09`09arguments `7B
  538. X`09`09`09XmNy = 30;
  539. X`09`09`09`7D;
  540. X`09`09controls `7B
  541. X`09`09`09XmLabel`09network_prime_label;
  542. X`09`09`09XmDrawingArea`09network_prime_window;
  543. X`09`09`09XmLabel`09network_secondary_label;
  544. X`09`09`09XmDrawingArea`09network_secondary_window;
  545. X`09`09`09`7D;
  546. X`09`09`7D;
  547. X
  548. X`09network_prime_label: XmLabel `7B
  549. X`09`09arguments `7B
  550. X`09`09`09XmNlabelString = "Network:";
  551. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  552. X`09`09`09XmNleftOffset = k_prime_label_tab;
  553. X`09`09`09`7D;
  554. X`09`09`7D;
  555. X
  556. X`09network_prime_window: XmDrawingArea `7B
  557. X`09`09arguments `7B
  558. X`09`09`09XmNheight = k_hours_height;
  559. X`09`09`09XmNwidth = k_hours_width;
  560. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  561. X`09`09`09XmNleftOffset = k_prime_hour_tab;
  562. X`09`09`09`7D;
  563. X`09`09callbacks `7B
  564. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_network_prime
  565. V);
  566. X`09`09`09`7D;
  567. X`09`09`7D;
  568. X
  569. X`09network_secondary_label: XmLabel `7B
  570. X`09`09arguments `7B
  571. X`09`09`09XmNlabelString = "Network:";
  572. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  573. X`09`09`09XmNleftOffset = k_secondary_label_tab;
  574. X`09`09`09`7D;
  575. X`09`09`7D;
  576. X
  577. X`09network_secondary_window: XmDrawingArea `7B
  578. X`09`09arguments `7B
  579. X`09`09`09XmNheight = k_hours_height;
  580. X`09`09`09XmNwidth = k_hours_width;
  581. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  582. X`09`09`09XmNleftOffset = k_secondary_hour_tab;
  583. X`09`09`09`7D;
  584. X`09`09callbacks `7B
  585. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_network_secon
  586. Vdary);
  587. X`09`09`09`7D;
  588. X`09`09`7D;
  589. X
  590. X`09batch: XmForm `7B
  591. X`09`09arguments `7B
  592. X`09`09`09XmNy = 50;
  593. X`09`09`09`7D;
  594. X`09`09controls `7B
  595. X`09`09`09XmLabel`09batch_prime_label;
  596. X`09`09`09XmDrawingArea`09batch_prime_window;
  597. X`09`09`09XmLabel`09batch_secondary_label;
  598. X`09`09`09XmDrawingArea`09batch_secondary_window;
  599. X`09`09`09`7D;
  600. X`09`09`7D;
  601. X
  602. X`09batch_prime_label: XmLabel `7B
  603. X`09`09arguments `7B
  604. X`09`09`09XmNlabelString = "Batch:";
  605. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  606. X`09`09`09XmNleftOffset = k_prime_label_tab;
  607. X`09`09`09`7D;
  608. X`09`09`7D;
  609. X
  610. X`09batch_prime_window: XmDrawingArea `7B
  611. X`09`09arguments `7B
  612. X`09`09`09XmNheight = k_hours_height;
  613. X`09`09`09XmNwidth = k_hours_width;
  614. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  615. X`09`09`09XmNleftOffset = k_prime_hour_tab;
  616. X`09`09`09`7D;
  617. X`09`09callbacks `7B
  618. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_batch_prime);
  619. X`09`09`09`7D;
  620. X`09`09`7D;
  621. X
  622. X`09batch_secondary_label: XmLabel `7B
  623. X`09`09arguments `7B
  624. X`09`09`09XmNlabelString = "Batch:";
  625. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  626. X`09`09`09XmNleftOffset = k_secondary_label_tab;
  627. X`09`09`09`7D;
  628. X`09`09`7D;
  629. X
  630. X`09batch_secondary_window: XmDrawingArea `7B
  631. X`09`09arguments `7B
  632. X`09`09`09XmNheight = k_hours_height;
  633. X`09`09`09XmNwidth = k_hours_width;
  634. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  635. X`09`09`09XmNleftOffset = k_secondary_hour_tab;
  636. X`09`09`09`7D;
  637. X`09`09callbacks `7B
  638. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_batch_seconda
  639. Vry);
  640. X`09`09`09`7D;
  641. X`09`09`7D;
  642. X
  643. X`09local: XmForm `7B
  644. X`09`09arguments `7B
  645. X`09`09`09XmNy = 70;
  646. X`09`09`09`7D;
  647. X`09`09controls `7B
  648. X`09`09`09XmLabel`09local_prime_label;
  649. X`09`09`09XmDrawingArea`09local_prime_window;
  650. X`09`09`09XmLabel`09local_secondary_label;
  651. X`09`09`09XmDrawingArea`09local_secondary_window;
  652. X`09`09`09`7D;
  653. X`09`09`7D;
  654. X
  655. X`09local_prime_label: XmLabel `7B
  656. X`09`09arguments `7B
  657. X`09`09`09XmNlabelString = "Local:";
  658. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  659. X`09`09`09XmNleftOffset = k_prime_label_tab;
  660. X`09`09`09`7D;
  661. X`09`09`7D;
  662. X
  663. X`09local_prime_window: XmDrawingArea `7B
  664. X`09`09arguments `7B
  665. X`09`09`09XmNheight = k_hours_height;
  666. X`09`09`09XmNwidth = k_hours_width;
  667. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  668. X`09`09`09XmNleftOffset = k_prime_hour_tab;
  669. X`09`09`09`7D;
  670. X`09`09callbacks `7B
  671. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_local_prime);
  672. X`09`09`09`7D;
  673. X`09`09`7D;
  674. X
  675. X`09local_secondary_label: XmLabel `7B
  676. X`09`09arguments `7B
  677. X`09`09`09XmNlabelString = "Local:";
  678. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  679. X`09`09`09XmNleftOffset = k_secondary_label_tab;
  680. X`09`09`09`7D;
  681. X`09`09`7D;
  682. X
  683. X`09local_secondary_window: XmDrawingArea `7B
  684. X`09`09arguments `7B
  685. X`09`09`09XmNheight = k_hours_height;
  686. X`09`09`09XmNwidth = k_hours_width;
  687. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  688. X`09`09`09XmNleftOffset = k_secondary_hour_tab;
  689. X`09`09`09`7D;
  690. X`09`09callbacks `7B
  691. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_local_seconda
  692. Vry);
  693. X`09`09`09`7D;
  694. X`09`09`7D;
  695. X
  696. X`09dialup: XmForm `7B
  697. X`09`09arguments `7B
  698. X`09`09`09XmNy = 90;
  699. X`09`09`09`7D;
  700. X`09`09controls `7B
  701. X`09`09`09XmLabel`09dialup_prime_label;
  702. X`09`09`09XmDrawingArea`09dialup_prime_window;
  703. X`09`09`09XmLabel`09dialup_secondary_label;
  704. X`09`09`09XmDrawingArea`09dialup_secondary_window;
  705. X`09`09`09`7D;
  706. X`09`09`7D;
  707. X
  708. X`09dialup_prime_label: XmLabel `7B
  709. X`09`09arguments `7B
  710. X`09`09`09XmNlabelString = "Dialup:";
  711. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  712. X`09`09`09XmNleftOffset = k_prime_label_tab;
  713. X`09`09`09`7D;
  714. X`09`09`7D;
  715. X
  716. X`09dialup_prime_window: XmDrawingArea `7B
  717. X`09`09arguments `7B
  718. X`09`09`09XmNheight = k_hours_height;
  719. X`09`09`09XmNwidth = k_hours_width;
  720. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  721. X`09`09`09XmNleftOffset = k_prime_hour_tab;
  722. X`09`09`09`7D;
  723. X`09`09callbacks `7B
  724. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_dialup_prime)
  725. V;
  726. X`09`09`09`7D;
  727. X`09`09`7D;
  728. X
  729. X`09dialup_secondary_label: XmLabel `7B
  730. X`09`09arguments `7B
  731. X`09`09`09XmNlabelString = "Dialup:";
  732. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  733. X`09`09`09XmNleftOffset = k_secondary_label_tab;
  734. X`09`09`09`7D;
  735. X`09`09`7D;
  736. X
  737. X`09dialup_secondary_window: XmDrawingArea `7B
  738. X`09`09arguments `7B
  739. X`09`09`09XmNheight = k_hours_height;
  740. X`09`09`09XmNwidth = k_hours_width;
  741. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  742. X`09`09`09XmNleftOffset = k_secondary_hour_tab;
  743. X`09`09`09`7D;
  744. X`09`09callbacks `7B
  745. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_dialup_second
  746. Vary);
  747. X`09`09`09`7D;
  748. X`09`09`7D;
  749. X
  750. X`09remote: XmForm `7B
  751. X`09`09arguments `7B
  752. X`09`09`09XmNy = 110;
  753. X`09`09`09`7D;
  754. X`09`09controls `7B
  755. X`09`09`09XmLabel`09remote_prime_label;
  756. X`09`09`09XmDrawingArea`09remote_prime_window;
  757. X`09`09`09XmLabel`09remote_secondary_label;
  758. X`09`09`09XmDrawingArea`09remote_secondary_window;
  759. X`09`09`09`7D;
  760. X`09`09`7D;
  761. X
  762. X`09remote_prime_label: XmLabel `7B
  763. X`09`09arguments `7B
  764. X`09`09`09XmNlabelString = "Remote:";
  765. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  766. X`09`09`09XmNleftOffset = k_prime_label_tab;
  767. X`09`09`09`7D;
  768. X`09`09`7D;
  769. X
  770. X`09remote_prime_window: XmDrawingArea `7B
  771. X`09`09arguments `7B
  772. X`09`09`09XmNheight = k_hours_height;
  773. X`09`09`09XmNwidth = k_hours_width;
  774. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  775. X`09`09`09XmNleftOffset = k_prime_hour_tab;
  776. X`09`09`09`7D;
  777. X`09`09callbacks `7B
  778. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_remote_prime)
  779. V;
  780. X`09`09`09`7D;
  781. X`09`09`7D;
  782. X
  783. X`09remote_secondary_label: XmLabel `7B
  784. X`09`09arguments `7B
  785. X`09`09`09XmNlabelString = "Remote:";
  786. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  787. X`09`09`09XmNleftOffset = k_secondary_label_tab;
  788. X`09`09`09`7D;
  789. X`09`09`7D;
  790. X
  791. X`09remote_secondary_window: XmDrawingArea `7B
  792. X`09`09arguments `7B
  793. X`09`09`09XmNheight = k_hours_height;
  794. X`09`09`09XmNwidth = k_hours_width;
  795. X`09`09`09XmNleftAttachment = XmATTACH_FORM;
  796. X`09`09`09XmNleftOffset = k_secondary_hour_tab;
  797. X`09`09`09`7D;
  798. X`09`09callbacks `7B
  799. X`09`09`09MrmNcreateCallback = procedure WidgetCreated(k_widget_remote_second
  800. Vary);
  801. X`09`09`09`7D;
  802. X`09`09`7D;
  803. Xend module;
  804. $ CALL UNPACK ACCESS.UIL;39 355085878
  805. $ create 'f'
  806. Xvalue
  807. X`09k_work_area_x:`09`09100;
  808. X`09k_work_area_spacing:`0950;
  809. X
  810. X`09k_access_menu:`09`090;
  811. X`09k_accounts_menu:`091;
  812. X`09k_idents_menu:`09`092;
  813. X`09k_privs_menu:`09`093;
  814. X`09k_functions_menu:`094;
  815. X`09k_find_menu:`09`095;
  816. X`09k_find_button:`09`096;
  817. X`09k_restart_button:`097;
  818. X
  819. X`09k_username_select:`090;
  820. X`09k_account_select:`091;
  821. X`09k_owner_select:`09`092;
  822. X`09k_uic_select:`09`093;
  823. X`09k_device_select:`094;
  824. X`09k_directory_select:`095;
  825. X`09k_cli_select:`09`096;
  826. X`09k_lgicmd_select:`097;
  827. X`09k_table_select:`09`098;
  828. X`09k_lifetime_select:`099;
  829. X`09k_expire_select:`0910;
  830. X`09k_logfail_select:`0911;
  831. X`09k_restart_select:`09100;
  832. X
  833. Xprocedure
  834. X`09Quit();
  835. X`09Read();
  836. X`09Find();
  837. X`09Write();
  838. X`09Remove();
  839. X`09Access();
  840. X        Privs();
  841. X`09Idents();
  842. X`09Accounts();
  843. X`09ReadIdentifiers();
  844. X`09ButtonCreated(integer);
  845. X`09Select(integer);
  846. X
  847. Xobject
  848. X`09menu: XmMenuBar `7B
  849. X`09`09arguments `7B
  850. X`09`09`09XmNorientation = XmHORIZONTAL;
  851. X`09`09`09XmNspacing = 10;
  852. X`09`09`09XmNmenuHelpWidget = XmCascadeButton help_menu_entry;
  853. X`09`09`7D;
  854. X`09`09controls `7B
  855. X`09`09`09XmCascadeButton file_menu_entry;
  856. X`09`09`09XmCascadeButton windows_menu_entry;
  857. X`09`09`09XmCascadeButton select_menu_entry;
  858. X`09`09`09XmCascadeButton help_menu_entry;
  859. X`09`09`09`7D;
  860. X`09`09callbacks `7B
  861. X`09`09`09XmNhelpCallback = procedure Help("menus");
  862. X`09`09`09`7D;
  863. X`09`09`7D;
  864. X
  865. X`09file_menu_entry: XmCascadeButton `7B
  866. X`09`09arguments `7B
  867. X`09`09`09XmNlabelString = "File";
  868. X `09`09`09XmNmnemonic = keysym('F');
  869. X`09`09`09`7D;
  870. X`09`09controls `7B
  871. X`09`09`09XmPulldownMenu commands_menu;
  872. X`09`09`09`7D;
  873. X`09`09callbacks `7B
  874. X`09`09`09XmNhelpCallback = procedure Help("menus file");
  875. X`09`09`09`7D;
  876. X`09`09`7D;
  877. X
  878. X`09windows_menu_entry: XmCascadeButton `7B
  879. X`09`09arguments `7B
  880. X`09`09`09XmNlabelString = "Windows";
  881. X `09`09`09XmNmnemonic = keysym('W');
  882. X`09`09`09`7D;
  883. X`09`09controls `7B
  884. X`09`09`09XmPulldownMenu windows_menu;
  885. X`09`09`09`7D;
  886. X`09`09callbacks `7B
  887. X`09`09`09XmNhelpCallback = procedure Help("menus windows");
  888. X`09`09`09`7D;
  889. X`09`09`7D;
  890. X
  891. X`09select_menu_entry: XmCascadeButton `7B
  892. X`09`09arguments `7B
  893. X`09`09`09XmNlabelString = "Select";
  894. X`09`09`09XmNmnemonic = keysym('S');
  895. X`09`09`09`7D;
  896. X`09`09controls `7B
  897. X`09`09`09XmPulldownMenu select_menu;
  898. X`09`09`09`7D;
  899. X`09`09callbacks `7B
  900. X`09`09`09XmNhelpCallback = procedure Help("menus select");
  901. X`09`09`09`7D;
  902. X`09`09`7D;
  903. X
  904. X`09help_menu_entry: XmCascadeButton `7B
  905. X`09`09arguments `7B
  906. X`09`09`09XmNlabelString = "Help";
  907. X`09`09`09XmNmnemonic = keysym('H');
  908. X`09`09`09`7D;
  909. X`09`09controls `7B
  910. X`09`09`09XmPulldownMenu help_menu;
  911. X`09`09`09`7D;
  912. X`09`09`7D;
  913. X
  914. X`09commands_menu: XmPulldownMenu `7B
  915. X`09`09controls `7B
  916. X`09`09`09XmPushButton`09read_id_button;
  917. X`09`09`09XmSeparator`09`7B`7D;
  918. X`09`09`09XmPushButton`09read_button;
  919. X`09`09`09XmPushButton`09find_menu_button;
  920. X`09`09`09XmPushButton    write_button;
  921. X`09`09`09XmPushButton    remove_button;
  922. X`09`09`09XmPushButton    quit_button;
  923. X`09`09`09`7D;
  924. X`09`09`7D;
  925. X
  926. X`09windows_menu: XmPulldownMenu `7B
  927. X`09`09controls `7B
  928. X`09`09`09XmToggleButton  access_button;
  929. X`09`09`09XmToggleButton`09accounts_button;
  930. X`09`09`09XmToggleButton  idents_button;
  931. X`09`09`09XmToggleButton  privs_button;
  932. X`09`09`09`7D;
  933. X`09`09`7D;
  934. X
  935. X`09privs_button: XmToggleButton `7B
  936. X`09`09arguments `7B
  937. X`09`09`09XmNlabelString = "Privs...";
  938. X`09`09`09`7D;
  939. X`09`09callbacks `7B
  940. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_privs_menu);
  941. X`09`09`09XmNvalueChangedCallback = procedure Privs;
  942. X`09`09`09XmNhelpCallback = procedure Help("menus windows privs");
  943. X`09`09`09`7D;
  944. X`09`09`7D;
  945. X
  946. X`09accounts_button: XmToggleButton `7B
  947. X`09`09arguments `7B
  948. X`09`09`09XmNlabelString = "Accounts...";
  949. X`09`09`09`7D;
  950. X`09`09callbacks `7B
  951. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_accounts_menu);
  952. X`09`09`09XmNvalueChangedCallback = procedure Accounts;
  953. X`09`09`09XmNhelpCallback = procedure Help("menus windows accounts");
  954. X`09`09`09`7D;
  955. X`09`09`7D;
  956. X
  957. X`09idents_button: XmToggleButton `7B
  958. X`09`09arguments `7B
  959. X`09`09`09XmNlabelString = "Identifiers...";
  960. X`09`09`09`7D;
  961. X`09`09callbacks `7B
  962. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_idents_menu);
  963. X`09`09`09XmNvalueChangedCallback = procedure Idents;
  964. X`09`09`09XmNhelpCallback = procedure Help("menus windows idents");
  965. X`09`09`09`7D;
  966. X`09`09`7D;
  967. X
  968. X`09access_button: XmToggleButton `7B
  969. X`09`09arguments `7B
  970. X`09`09`09XmNlabelString = "Access...";
  971. X`09`09`09`7D;
  972. X`09`09callbacks `7B`09
  973. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_access_menu);
  974. X`09`09`09XmNvalueChangedCallback = procedure Access;
  975. X`09`09`09XmNhelpCallback = procedure Help("menus windows access");
  976. X`09`09`09`7D;
  977. X`09`09`7D;
  978. X
  979. X`09select_menu: XmPulldownMenu `7B
  980. X`09`09controls `7B
  981. X`09`09`09XmPushButton`09restart_button;
  982. X`09`09`09XmSeparator`09`7B`7D;
  983. X`09`09`09XmPushButton`09username_button;
  984. X`09`09`09XmPushButton`09account_button;
  985. X`09`09`09XmPushButton`09owner_button;
  986. X`09`09`09XmPushButton`09uic_button;
  987. X`09`09`09XmPushButton`09device_button;
  988. X`09`09`09XmPushButton`09directory_button;
  989. X`09`09`09XmPushButton`09cli_button;
  990. X`09`09`09XmPushButton`09lgicmd_button;
  991. X`09`09`09XmPushButton`09table_button;
  992. X`09`09`09XmPushButton `09lifetime_button;
  993. X`09`09`09XmPushButton `09expire_button;
  994. X`09`09`09XmPushButton `09logfail_button;
  995. X`09`09`09`7D;
  996. X`09`09`7D;
  997. X
  998. X`09restart_button: XmPushButton `7B
  999. X`09`09arguments `7B
  1000. X`09`09`09XmNlabelString = "Reset search";
  1001. X`09`09`09XmNsensitive = false;
  1002. X`09`09`09`7D;
  1003. X`09`09callbacks `7B`09
  1004. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_restart_button);
  1005. X`09`09`09XmNactivateCallback = procedure Select(k_restart_select);
  1006. X`09`09`09XmNhelpCallback = procedure Help("menus select restart");
  1007. X`09`09`09`7D;
  1008. X`09`09`7D;
  1009. X
  1010. X`09username_button: XmPushButton `7B
  1011. X`09`09arguments `7B
  1012. X`09`09`09XmNlabelString = "Username";
  1013. X`09`09`09`7D;
  1014. X`09`09callbacks `7B`09
  1015. X`09`09`09XmNactivateCallback = procedure Select(k_username_select);
  1016. X`09`09`09`7D;
  1017. X`09`09`7D;
  1018. X
  1019. X`09account_button: XmPushButton `7B
  1020. X`09`09arguments `7B
  1021. X`09`09`09XmNlabelString = "Account";
  1022. X`09`09`09`7D;
  1023. X`09`09callbacks `7B`09
  1024. X`09`09`09XmNactivateCallback = procedure Select(k_account_select);
  1025. X`09`09`09`7D;
  1026. X`09`09`7D;
  1027. X
  1028. X`09owner_button: XmPushButton `7B
  1029. X`09`09arguments `7B
  1030. X`09`09`09XmNlabelString = "Owner";
  1031. X`09`09`09`7D;
  1032. X`09`09callbacks `7B`09
  1033. X`09`09`09XmNactivateCallback = procedure Select(k_owner_select);
  1034. X`09`09`09`7D;
  1035. X`09`09`7D;
  1036. X
  1037. X`09uic_button: XmPushButton `7B
  1038. X`09`09arguments `7B
  1039. X`09`09`09XmNlabelString = "UIC";
  1040. X`09`09`09`7D;
  1041. X`09`09callbacks `7B`09
  1042. X`09`09`09XmNactivateCallback = procedure Select(k_uic_select);
  1043. X`09`09`09`7D;
  1044. X`09`09`7D;
  1045. X
  1046. X`09device_button: XmPushButton `7B
  1047. X`09`09arguments `7B
  1048. X`09`09`09XmNlabelString = "Device";
  1049. X`09`09`09`7D;
  1050. X`09`09callbacks `7B`09
  1051. X`09`09`09XmNactivateCallback = procedure Select(k_device_select);
  1052. X`09`09`09`7D;
  1053. X`09`09`7D;
  1054. X
  1055. X`09directory_button: XmPushButton `7B
  1056. X`09`09arguments `7B
  1057. X`09`09`09XmNlabelString = "Directory";
  1058. X`09`09`09`7D;
  1059. X`09`09callbacks `7B`09
  1060. X`09`09`09XmNactivateCallback = procedure Select(k_directory_select);
  1061. X`09`09`09`7D;
  1062. X`09`09`7D;
  1063. X
  1064. X`09cli_button: XmPushButton `7B
  1065. X`09`09arguments `7B
  1066. X`09`09`09XmNlabelString = "CLI";
  1067. X`09`09`09`7D;
  1068. X`09`09callbacks `7B`09
  1069. X`09`09`09XmNactivateCallback = procedure Select(k_cli_select);
  1070. X`09`09`09`7D;
  1071. X`09`09`7D;
  1072. X
  1073. X`09lgicmd_button: XmPushButton `7B
  1074. X`09`09arguments `7B
  1075. X`09`09`09XmNlabelString = "LGICMD";
  1076. X`09`09`09`7D;
  1077. X`09`09callbacks `7B`09
  1078. X`09`09`09XmNactivateCallback = procedure Select(k_lgicmd_select);
  1079. X`09`09`09`7D;
  1080. X`09`09`7D;
  1081. X
  1082. X`09table_button: XmPushButton `7B
  1083. X`09`09arguments `7B
  1084. X`09`09`09XmNlabelString = "DCL table";
  1085. X`09`09`09`7D;
  1086. X`09`09callbacks `7B`09
  1087. X`09`09`09XmNactivateCallback = procedure Select(k_table_select);
  1088. X`09`09`09`7D;
  1089. X`09`09`7D;
  1090. X
  1091. X`09lifetime_button: XmPushButton `7B
  1092. X`09`09arguments `7B
  1093. X`09`09`09XmNlabelString = "Pwdlifetime";
  1094. X`09`09`09`7D;
  1095. X`09`09callbacks `7B`09
  1096. X`09`09`09XmNactivateCallback = procedure Select(k_lifetime_select);
  1097. X`09`09`09`7D;
  1098. X`09`09`7D;
  1099. X
  1100. X`09expire_button: XmPushButton `7B
  1101. X`09`09arguments `7B
  1102. X`09`09`09XmNlabelString = "Expire date";
  1103. X`09`09`09`7D;
  1104. X`09`09callbacks `7B`09
  1105. X`09`09`09XmNactivateCallback = procedure Select(k_expire_select);
  1106. X`09`09`09`7D;
  1107. X`09`09`7D;
  1108. X
  1109. X`09logfail_button: XmPushButton `7B
  1110. X`09`09arguments `7B
  1111. X`09`09`09XmNlabelString = "Login failures > 0";
  1112. X`09`09`09`7D;
  1113. X`09`09callbacks `7B`09
  1114. X`09`09`09XmNactivateCallback = procedure Select(k_logfail_select);
  1115. X`09`09`09`7D;
  1116. X`09`09`7D;
  1117. X
  1118. X
  1119. X`09help_menu: XmPulldownMenu `7B
  1120. X`09`09controls `7B
  1121. X`09`09`09XmPushButton`09help_context;
  1122. X`09`09`09XmPushButton`09help_window;
  1123. X`09`09`09XmPushButton`09help_version;
  1124. X`09`09`09`7D;
  1125. X`09`09`7D;
  1126. X
  1127. X`09help_context: XmPushButton `7B
  1128. X`09`09arguments `7B
  1129. X`09`09`09XmNlabelString = "On Context";
  1130. X`09`09`09`7D;
  1131. X`09`09callbacks `7B`09
  1132. X`09`09`09XmNactivateCallback = procedure Help("context");
  1133. X`09`09`09`7D;
  1134. X`09`09`7D;
  1135. X
  1136. X
  1137. X`09help_window: XmPushButton `7B
  1138. X`09`09arguments `7B
  1139. X`09`09`09XmNlabelString = "On Window";
  1140. X`09`09`09`7D;
  1141. X`09`09callbacks `7B`09
  1142. X`09`09`09XmNactivateCallback = procedure Help("overview");
  1143. X`09`09`09`7D;
  1144. X`09`09`7D;
  1145. X
  1146. X
  1147. X`09help_version: XmPushButton `7B
  1148. X`09`09arguments `7B
  1149. X`09`09`09XmNlabelString = "On Version";
  1150. X`09`09`09`7D;
  1151. X`09`09callbacks `7B`09
  1152. X`09`09`09XmNactivateCallback = procedure Help("version");
  1153. X`09`09`09`7D;
  1154. X`09`09`7D;
  1155. X
  1156. X
  1157. Xobject
  1158. X`09functions: XmRowColumn `7B
  1159. X`09`09arguments `7B
  1160. X`09`09`09XmNorientation = XmHORIZONTAL;
  1161. X`09`09`09XmNx = k_work_area_x;
  1162. X`09`09`09XmNy = k_functions_y;
  1163. X`09`09`09XmNspacing = k_work_area_spacing;
  1164. X`09`09`09XmNborderWidth = 1;
  1165. X`09`09`09`7D;
  1166. X`09`09controls `7B
  1167. X`09`09`09XmPushButton`09read_button;
  1168. X`09`09`09XmPushButton`09find_button;
  1169. X`09`09`09XmPushButton    write_button;
  1170. X`09`09`09XmPushButton    remove_button;
  1171. X`09`09`09XmPushButton    quit_button;
  1172. X`09`09`09`7D;
  1173. X`09`09callbacks `7B
  1174. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_functions_menu);
  1175. X`09`09`09`7D;
  1176. X`09`09`7D;
  1177. X
  1178. X`09read_id_button: XmPushButton widget `7B
  1179. X`09`09arguments `7B
  1180. X`09`09`09XmNlabelString = "Read Identifiers";
  1181. X`09`09`09`7D;
  1182. X`09`09callbacks `7B
  1183. X`09`09`09XmNactivateCallback = procedure ReadIdentifiers;
  1184. X`09`09`09XmNhelpCallback = procedure Help("menus file read_identifiers");
  1185. X`09`09`09`7D;
  1186. X`09`09`7D;
  1187. X
  1188. X`09read_button: XmPushButton widget `7B
  1189. X`09`09arguments `7B
  1190. X`09`09`09XmNlabelString = "Read";
  1191. X`09`09`09`7D;
  1192. X`09`09callbacks `7B
  1193. X`09`09`09XmNactivateCallback = procedure Read;
  1194. X`09`09`09XmNhelpCallback = procedure Help("menus file read");
  1195. X`09`09`09`7D;
  1196. X`09`09`7D;
  1197. X
  1198. X`09find_menu_button: XmPushButton widget `7B
  1199. X`09`09arguments `7B
  1200. X`09`09`09XmNlabelString = "Find Next";
  1201. X`09`09`09XmNsensitive = false;
  1202. X`09`09`09XmNaccelerator = "<Key>Next:";
  1203. X`09`09`09XmNacceleratorText = "Next";
  1204. X`09`09`09`7D;
  1205. X`09`09callbacks `7B
  1206. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_find_menu);
  1207. X`09`09`09XmNactivateCallback = procedure Find;
  1208. X`09`09`09XmNhelpCallback = procedure Help("menus file find_next");
  1209. X`09`09`09`7D;
  1210. X`09`09`7D;
  1211. X
  1212. X`09find_button: XmPushButton widget `7B
  1213. X`09`09arguments `7B
  1214. X`09`09`09XmNlabelString = "Find Next";
  1215. X`09`09`09XmNsensitive = false;
  1216. X`09`09`09`7D;
  1217. X`09`09callbacks `7B
  1218. X`09`09`09MrmNcreateCallback = procedure ButtonCreated(k_find_button);
  1219. X`09`09`09XmNactivateCallback = procedure Find;
  1220. X`09`09`09XmNhelpCallback = procedure Help("menus file find_next");
  1221. X`09`09`09`7D;
  1222. X`09`09`7D;
  1223. X
  1224. X`09write_button: XmPushButton widget `7B
  1225. X`09`09arguments `7B
  1226. X`09`09`09XmNlabelString = "Write";
  1227. X`09`09`09`7D;
  1228. X`09`09callbacks `7B
  1229. X`09`09`09XmNactivateCallback = procedure Write;
  1230. X`09`09`09XmNhelpCallback = procedure Help("menus file write");
  1231. X`09`09`09`7D;
  1232. X`09`09`7D;
  1233. X
  1234. X`09remove_button: XmPushButton widget `7B
  1235. X`09`09arguments `7B
  1236. X`09`09`09XmNlabelString = "Remove";
  1237. X`09`09`09`7D;
  1238. X`09`09callbacks `7B
  1239. X`09`09`09XmNactivateCallback = procedure Remove;
  1240. X`09`09`09XmNhelpCallback = procedure Help("menus file remove");
  1241. X`09`09`09`7D;
  1242. X`09`09`7D;
  1243. X
  1244. X`09quit_button: XmPushButton widget `7B
  1245. X`09`09arguments `7B
  1246. X`09`09`09XmNlabelString = "Quit";
  1247. X`09`09`09XmNacceleratorText = "Ctrl/Z";
  1248. X`09`09`09XmNaccelerator = "Ctrl<Key>z:";
  1249. X`09`09`09`7D;
  1250. X`09`09callbacks `7B
  1251. X`09`09`09XmNactivateCallback = procedure Quit;
  1252. X`09`09`09XmNhelpCallback = procedure Help("menus file quit");
  1253. X`09`09`09`7D;
  1254. X`09`09`7D;
  1255. $ CALL UNPACK BUTTONS.UIL;79 1934089683
  1256. $ create 'f'
  1257. X$ old_veri = f$verify(0)
  1258. X$ !`09DELTREE.COM - delete a complete directory tree
  1259. X$
  1260. X$ !`09P1 = pathname of root of tree to delete
  1261. X$
  1262. X$ !`09All files and directories in the tree, including
  1263. X$ !`09the named root directory, are deleted. `20
  1264. X$ !`09For instance,`20
  1265. X$ !
  1266. X$ !`09@DELTREE `5BUSER.SUBDIR`5D
  1267. X$ !
  1268. X$ !`09deletes everything in `5BUSER.SUBDIR...`5D, and also `5BUSER`5DSUBDIR.
  1269. VDIR;1 .
  1270. X$ !
  1271. X$ !`09Note:  There are faster ways to do this, but this is so elegant. `20
  1272. X$
  1273. X$`09old_priv = f$setprv("BYPASS")`09`09! ensure we can delete files
  1274. X$`09on control_y then goto done
  1275. X$`09on warning then goto done
  1276. X$ `09default = f$logical("SYS$DISK") + f$directory()
  1277. X$
  1278. X$GET_PARAM:
  1279. X$`09if p1 .eqs. "" then exit
  1280. X$
  1281. X$`09p1 = p1 - "..."`09`09`09`09! don't want elipsis
  1282. X$`09p1_dir = f$parse(p1,,,"DIRECTORY") - "`5D"! get the direc spec w/o trlng
  1283. V `5D
  1284. X$`09if p1_dir .eqs. "" then goto bad_param`09! check for errors
  1285. X$`09p1_nd = f$parse(p1,,,"NODE") + -`09! parse for errors
  1286. X`09     f$parse(p1,,,"DEVICE")
  1287. X$`09p1 = p1_nd + p1_dir
  1288. X$`09if p1 .eqs. "" then goto bad_param`09! Report error, exit
  1289. X$
  1290. X$ !`09set default to the root of the tree
  1291. X$
  1292. X$`09set default 'p1'`5D
  1293. X$
  1294. X$ !`09delete each tree under the current default
  1295. X$
  1296. X$DIR_LOOP:
  1297. X$`09sub_dir = f$search("*.DIR;*")
  1298. X$`09if sub_dir .eqs. "" then goto end_dir_loop
  1299. X$`09sub_dir_name = f$parse(sub_dir,,,"NAME")
  1300. X$`09@'f$envi("PROCEDURE")' `5B.'sub_dir_name'`5D
  1301. X$`09goto dir_loop
  1302. X$END_DIR_LOOP:
  1303. X$
  1304. X$ !`09now there are no .DIRs here, delete everything else.
  1305. X$
  1306. X$`09if f$search("*.*;*") .eqs. "" then goto del_root
  1307. X$`09write sys$output "Deleting ''p1'`5D*.*;*"
  1308. X$`09on warning then goto del_root
  1309. X$!!!`09set file/prot=o:rwed *.*;*
  1310. X$`09delete *.*;*
  1311. X$
  1312. X$ !`09finally, delete the .DIR for the current default. `20
  1313. X$
  1314. X$DEL_ROOT:
  1315. X$
  1316. X$ !`09we set the default up one level, then remove the resulting default
  1317. X$ !`09directory string from the original root directory spec, so we're`20
  1318. X$ !`09left with the file name of the .DIR to be deleted.  The character
  1319. X$ !`09expression used here works properly even when the root is a ufd. `20
  1320. X$
  1321. X$`09set default `5B-`5D
  1322. X$`09top_dir = ((p1_dir - (f$directory() - "`5D")) - "." - "`5B") + ".DIR;1"
  1323. X$`09on warning then goto done
  1324. X$`09write sys$output "Deleting ''p1_nd'''f$directory()'''top_dir'"
  1325. X$`09set file/prot=w:rwed 'top_dir'
  1326. X$`09delete 'top_dir'
  1327. X$`09goto done
  1328. X$`09
  1329. X$BAD_PARAM:
  1330. X$`09write sys$output "COULD NOT FIND ROOT"
  1331. X$
  1332. X$DONE:
  1333. X$`09set default 'default'
  1334. X$`09junk = f$setprv (old_priv)
  1335. X$`09junk = f$veri(old_veri)
  1336. $ CALL UNPACK DELTREE.COM;4 643486790
  1337. $ create 'f'
  1338. X.suffixes .uid .uil
  1339. X.uil.uid
  1340. X`09UIL/MOTIF $(mms$source)
  1341. X
  1342. Xbuild : dwprofile.exe, dwprofile.uid, access.uid, privs.uid, idents.uid, dwp
  1343. Vrofile.hlb`20
  1344. X`09!done
  1345. X
  1346. Xdwprofile.exe : dwprofile.obj
  1347. X`09$(link) $(linkflags) $(mms$source_list),motif/opt
  1348. X
  1349. Xdwprofile.obj : dwprofile.c, dwpdef.h
  1350. X
  1351. Xdwprofile.uid : dwprofile.uil, text.uil, flags.uil, quotas.uil, buttons.uil
  1352. X
  1353. Xdeb :`20
  1354. X`09cflags = "/noopt/debug/define=debug"
  1355. X`09linkflags = "/deb"
  1356. X`09if "''f$search("dwprofile.obj")'" .nes. "" then delete/nolog dwprofile.ob
  1357. Vj;*
  1358. X`09mms /override
  1359. $ CALL UNPACK DESCRIP.MMS;39 242296416
  1360. $ create 'f'
  1361. X/* DWprofile table definitions */
  1362. X
  1363. X#include uaidef
  1364. X#include <X11/Intrinsic.h>
  1365. X#include <Mrm/MrmAppl.h>
  1366. X
  1367. X#define NO 0
  1368. X#define OFF 0
  1369. X#define ON 1
  1370. X
  1371. X#define k_widget_uic_trans 7    /* unused UAI codes */
  1372. X#define k_widget_held_list 8    /* for non-UAI widgets */
  1373. X#define k_widget_all_list  9
  1374. X
  1375. X#define k_hours_height 16
  1376. X#define MAX_WIDGET UAI$_MAX_ITEM_CODE
  1377. X#define PRIVS_BIAS 40
  1378. X#define MAX_PRIVS PRIVS_BIAS * 2
  1379. X#define MAX_PRIME 7     /* number of prime day widgets */
  1380. X#define MAX_FLAGS 20    /* number of flag widgets */
  1381. X#define access_menu 0
  1382. X#define accounts_menu 1
  1383. X#define idents_menu 2
  1384. X#define privs_menu 3
  1385. X#define functions_menu 4
  1386. X#define find_menu 5
  1387. X#define find_button 6
  1388. X#define restart_button 7
  1389. X#define MAX_MENUS (restart_button + 1)
  1390. X#define SDATA_LEN 65   /* size of largest UAI item + 1 */
  1391. X
  1392. X/* Type of UAF element */
  1393. X
  1394. X#define DWP_LALPHA`091`09/* Alpha with length byte */
  1395. X#define DWP_INT`09`092`09/* Integer */
  1396. X#define DWP_TIME`093`09/* 3 byte time vector */
  1397. X#define DWP_DATE`094`09/* Date */
  1398. X#define DWP_PRIV`095`09/* Priv vector */
  1399. X#define DWP_FLAG`096`09/* Login flags */
  1400. X#define DWP_UIC`09`097`09/* UIC */
  1401. X#define DWP_PRIME`098`09/* Primary/seconday days */
  1402. X#define DWP_ENCR`099`09/* Encrypted password */
  1403. X#define DWP_ALPHA`0910`09/* Alpha, no length byte */
  1404. X#define DWP_CPU`09`0911`09/* CPU time in 10 ms units */
  1405. X#define DWP_RDATE`0912`09/* Read-only Date */
  1406. X#define DWP_RINT`0913`09/* Read-only Integer */
  1407. X
  1408. X/* array of UAF elements */
  1409. Xstruct `7B
  1410. X    int code, size, type;
  1411. X`7D items`5B`5D = `7B
  1412. X    `7BUAI$_ACCOUNT, 32, DWP_ALPHA`7D,
  1413. X    `7BUAI$_ASTLM, 2, DWP_INT`7D,
  1414. X    `7BUAI$_BATCH_ACCESS_P, 3, DWP_TIME`7D,
  1415. X    `7BUAI$_BATCH_ACCESS_S, 3, DWP_TIME`7D,
  1416. X    `7BUAI$_BIOLM, 2, DWP_INT`7D,
  1417. X    `7BUAI$_BYTLM, 4, DWP_INT`7D,
  1418. X    `7BUAI$_CLITABLES, 32, DWP_LALPHA`7D,
  1419. X    `7BUAI$_CPUTIM, 4, DWP_CPU`7D,
  1420. X    `7BUAI$_DEFCLI, 32, DWP_LALPHA`7D,
  1421. X    `7BUAI$_DEFDEV, 32, DWP_LALPHA`7D,
  1422. X    `7BUAI$_DEFDIR, 64, DWP_LALPHA`7D,
  1423. X    `7BUAI$_DEF_PRIV, 8, DWP_PRIV`7D,
  1424. X    `7BUAI$_DFWSCNT, 4, DWP_INT`7D,
  1425. X    `7BUAI$_DIOLM, 2, DWP_INT`7D,
  1426. X    `7BUAI$_DIALUP_ACCESS_P, 3, DWP_TIME`7D,
  1427. X    `7BUAI$_DIALUP_ACCESS_S, 3, DWP_TIME`7D,
  1428. X    `7BUAI$_ENQLM, 2, DWP_INT`7D,
  1429. X    `7BUAI$_EXPIRATION, 8, DWP_DATE`7D,
  1430. X    `7BUAI$_FILLM, 2, DWP_INT`7D,
  1431. X    `7BUAI$_FLAGS, 4, DWP_FLAG`7D,
  1432. X    `7BUAI$_JTQUOTA, 4, DWP_INT`7D,
  1433. X    `7BUAI$_LGICMD, 64, DWP_LALPHA`7D,
  1434. X    `7BUAI$_LASTLOGIN_I, 8, DWP_RDATE`7D,
  1435. X    `7BUAI$_LASTLOGIN_N, 8, DWP_RDATE`7D,
  1436. X    `7BUAI$_LOCAL_ACCESS_P, 3, DWP_TIME`7D,
  1437. X    `7BUAI$_LOCAL_ACCESS_S, 3, DWP_TIME`7D,
  1438. X    `7BUAI$_LOGFAILS, 2, DWP_RINT`7D,
  1439. X    `7BUAI$_MAXACCTJOBS, 2, DWP_INT`7D,
  1440. X    `7BUAI$_MAXDETACH, 2, DWP_INT`7D,
  1441. X    `7BUAI$_MAXJOBS, 2, DWP_INT`7D,
  1442. X    `7BUAI$_NETWORK_ACCESS_P, 3, DWP_TIME`7D,
  1443. X    `7BUAI$_NETWORK_ACCESS_S, 3, DWP_TIME`7D,
  1444. X    `7BUAI$_OWNER, 32, DWP_LALPHA`7D,
  1445. X    `7BUAI$_PBYTLM, 4, DWP_INT`7D,
  1446. X    `7BUAI$_PGFLQUOTA, 4, DWP_INT`7D,
  1447. X    `7BUAI$_PRCCNT, 2, DWP_INT`7D,
  1448. X    `7BUAI$_PRI, 1, DWP_INT`7D,
  1449. X    `7BUAI$_PRIMEDAYS, 1, DWP_PRIME`7D,
  1450. X    `7BUAI$_PRIV, 8, DWP_PRIV`7D,
  1451. X    `7BUAI$_PWD, 8, DWP_ENCR`7D,
  1452. X    `7BUAI$_PWD_DATE, 8, DWP_RDATE`7D,
  1453. X    `7BUAI$_PWD_LENGTH, 1, DWP_INT`7D,
  1454. X    `7BUAI$_PWD_LIFETIME, 8, DWP_DATE`7D,
  1455. X    `7BUAI$_PWD2_DATE, 8, DWP_RDATE`7D,
  1456. X    `7BUAI$_QUEPRI, 1, DWP_INT`7D,
  1457. X    `7BUAI$_REMOTE_ACCESS_P, 3, DWP_TIME`7D,
  1458. X    `7BUAI$_REMOTE_ACCESS_S, 3, DWP_TIME`7D,
  1459. X    `7BUAI$_SHRFILLM, 2, DWP_INT`7D,
  1460. X    `7BUAI$_TQCNT, 2, DWP_INT`7D,
  1461. X    `7BUAI$_UIC, 4, DWP_UIC`7D,
  1462. X    `7BUAI$_USERNAME, 12, DWP_ALPHA`7D,
  1463. X    `7BUAI$_WSEXTENT, 4, DWP_INT`7D,
  1464. X    `7BUAI$_WSQUOTA, 4, DWP_INT`7D,`20
  1465. X    `7BNULL, NULL, NULL`7D
  1466. X`7D;
  1467. X
  1468. X/* array of UAF elements that can be selected for the 'find' button */
  1469. X/* indexed by k_*_select in buttons.uil */
  1470. Xstruct `7B
  1471. X    int code, size, type;
  1472. X    String name;
  1473. X`7D select_data`5B`5D = `7B
  1474. X    `7BUAI$_USERNAME, 12, DWP_ALPHA, "Username"`7D,
  1475. X    `7BUAI$_ACCOUNT, 32, DWP_ALPHA, "Account"`7D,
  1476. X    `7BUAI$_OWNER, 32, DWP_LALPHA, "Owner"`7D,
  1477. X    `7BUAI$_UIC, 4, DWP_UIC, "UIC"`7D,
  1478. X    `7BUAI$_DEFDEV, 32, DWP_LALPHA, "Device"`7D,
  1479. X    `7BUAI$_DEFDIR, 64, DWP_LALPHA, "Directory"`7D,
  1480. X    `7BUAI$_DEFCLI, 32, DWP_LALPHA, "CLI"`7D,
  1481. X    `7BUAI$_LGICMD, 64, DWP_LALPHA, "LGICMD"`7D,
  1482. X    `7BUAI$_CLITABLES, 32, DWP_LALPHA, "DCL Table"`7D,
  1483. X    `7BUAI$_PWD_LIFETIME, 8, DWP_DATE, "Pwdlifetime"`7D,
  1484. X    `7BUAI$_EXPIRATION, 8, DWP_DATE, "Expire Date"`7D,
  1485. X    `7BUAI$_LOGFAILS, 2, DWP_RINT, "Login failures"`7D,
  1486. X    `7B NULL, NULL, NULL, NULL`7D
  1487. X`7D;
  1488. X
  1489. X
  1490. X/* ubiquitous itemlist3 */
  1491. Xstruct itemlist3 `7B
  1492. X    short buflen;
  1493. X    short itmcode;
  1494. X    char  *bufadr;
  1495. X    short *retadr;
  1496. X`7D;
  1497. X
  1498. Xtypedef unsigned short int ushort;
  1499. X
  1500. X/* Identifier list node structure */
  1501. Xtypedef struct ident_node `7B
  1502. X    String name;         /* name of identifier */
  1503. X    Cardinal identifier; /* value of identifier */
  1504. X    enum `7Buic_ident, account, intern_ident, user_ident`7D status;
  1505. X                         /* uic_ident = `5Bn,m`5D type identifier */
  1506. X                         /* account = `5Bn,*`5D type identifier */
  1507. X                         /* intern_ident = interactive, batch, sys$node_x */
  1508. X                         /* user_ident = regular identifier (%x080010000+n)
  1509. V */
  1510. X    struct ident_node *next;
  1511. X`7D ident;
  1512. X
  1513. X/* Held identifier list node structure */
  1514. Xtypedef struct held_node `7B
  1515. X    String name;         /* name of identifier */
  1516. X    Cardinal identifier; /* value of identifier */
  1517. X    enum `7Boriginal, del_orig, add_ident`7D status;
  1518. X                         /* original = identifier was held when user read in
  1519. V */
  1520. X                         /* del_orig = original identifier to be removed upo
  1521. Vn write */
  1522. X                         /* add_ident = identifier to be added upon write */
  1523. X    struct held_node *next;
  1524. X`7D held_ident;
  1525. X
  1526. X
  1527. X/* non-widget resources */
  1528. Xtypedef struct `7B
  1529. X    Cardinal quota, overdraft, version_limit, minimum_group, maximum_group,
  1530. X        hour_size;
  1531. X    int read_interval, write_interval, find_interval;
  1532. X    String default_ident;
  1533. X    Boolean show_access, show_accounts, show_idents, show_privs, show_work;
  1534. X`7D ApplicationData, *ApplicationDataPtr;
  1535. X
  1536. Xstatic XtResource resources`5B`5D = `7B
  1537. X    `7B"defaultIdent", "DefaultIdent", XtRString, sizeof(String),
  1538. X     XtOffset(ApplicationDataPtr, default_ident), XtRString, ""`7D,
  1539. X    `7B"hourSize", "HourSize", XtRInt, sizeof(int),
  1540. X     XtOffset(ApplicationDataPtr, hour_size), XtRString, "7"`7D,
  1541. X    `7B"readNotifyInterval", "PopupTime", XtRInt, sizeof(int),
  1542. X     XtOffset(ApplicationDataPtr, read_interval), XtRString, "-2"`7D,
  1543. X    `7B"writeNotifyInterval", "PopupTime", XtRInt, sizeof(int),
  1544. X     XtOffset(ApplicationDataPtr, write_interval), XtRString, "-2"`7D,
  1545. X    `7B"findNotifyInterval", "PopupTime", XtRInt, sizeof(int),
  1546. X     XtOffset(ApplicationDataPtr, find_interval), XtRString, "-1"`7D,
  1547. X    `7B"overdraft", "Overdraft", XtRInt, sizeof(int),
  1548. X     XtOffset(ApplicationDataPtr, overdraft), XtRString, "0"`7D,
  1549. X    `7B"quota", "Quota", XtRInt, sizeof(int),
  1550. X     XtOffset(ApplicationDataPtr, quota), XtRString, "0"`7D,
  1551. X    `7B"showAccess", "ShowAccess", XtRBoolean, sizeof(Boolean),
  1552. X     XtOffset(ApplicationDataPtr, show_access), XtRString, "False"`7D,
  1553. X    `7B"showAccounts", "AutoShow", XtRBoolean, sizeof(Boolean),
  1554. X     XtOffset(ApplicationDataPtr, show_accounts), XtRString, "False"`7D,
  1555. X    `7B"showPrivs", "AutoShow", XtRBoolean, sizeof(Boolean),
  1556. X     XtOffset(ApplicationDataPtr, show_privs), XtRString, "False"`7D,
  1557. X    `7B"showIdents", "AutoShow", XtRBoolean, sizeof(Boolean),
  1558. X     XtOffset(ApplicationDataPtr, show_idents), XtRString, "False"`7D,
  1559. X    `7B"showWorkBox", "AutoShow", XtRBoolean, sizeof(Boolean),
  1560. X     XtOffset(ApplicationDataPtr, show_work), XtRString, "True"`7D,
  1561. +-+-+-+-+-+-+-+-  END  OF PART 1 +-+-+-+-+-+-+-+-
  1562.