home *** CD-ROM | disk | FTP | other *** search
- Path: wupost!uunet!europa.asd.contel.com!darwin.sura.net!noc.sura.net!haven.umd.edu!mimsy!nrlvx1.nrl.navy.mil!koffley
- From: koffley@nrlvx1.nrl.navy.mil
- Newsgroups: alt.sources
- Subject: VMS UAF PROFILE part 6 of 18
- Message-ID: <1991Sep5.074340.550@nrlvx1.nrl.navy.mil>
- Date: 5 Sep 91 11:43:40 GMT
- Organization: NRL SPACE SYSTEMS DIVISION
- Lines: 421
-
- -+-+-+-+-+-+-+-+ START OF PART 6 -+-+-+-+-+-+-+-+
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC PF3 - subroutine SHOW_ACCESS
- XC
- X elseif (term.eq.smg$k_trm_pf3) then
- X call smg$unpaste_virtual_display ( main, pasteboard )
- X call show_access ( owner, tables, defcli, defdev,
- X . defdir, lgicmd )
- X call board ( owner, tables, defcli, defdev,
- X . defdir, lgicmd )
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC PF4 - subroutine SHOW_PRIVS
- XC
- X elseif (term.eq.smg$k_trm_pf4) then
- X call smg$unpaste_virtual_display ( main, pasteboard )
- X call show_privs ( owner, tables, defcli, defdev,
- X . defdir, lgicmd )
- X call board ( owner, tables, defcli, defdev,
- X . defdir, lgicmd )
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC F17 - subroutine SHOW_RIGHTS_HELD
- XC
- X elseif (term.eq.smg$k_trm_f17) then
- X`09 call show_rights`20
- X call board ( owner, tables, defcli, defdev,
- X . defdir, lgicmd )
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC F18 - subroutine LAST_LOGINS
- XC
- X elseif (term.eq.smg$k_trm_f18) then
- Xd call smg$unpaste_virtual_display ( main, pasteboard )
- X`09 call show_lastlogin`20
- X call board ( owner, tables, defcli, defdev,
- X . defdir, lgicmd )
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC CtrlW - repaint screen
- XC
- X elseif (term.eq.smg$k_trm_ctrlw) then
- X call smg$repaint_screen ( pasteboard )
- XC
- XC CtrlZ - exit to main display
- XC
- X elseif (term.eq.smg$k_trm_ctrlz) then
- X call smg$set_cursor_abs ( main, 23, 1 )
- X call smg$unpaste_virtual_display ( message, pasteboard )
- X return
- XC
- XC Right arrow (or letter l) to select next field
- XC
- X elseif (term.eq.smg$k_trm_right.or.
- X . term.eq.smg$k_trm_uppercase_l.or.
- X . term.eq.smg$k_trm_lowercase_l) then
- X if (cur_row.lt.7) then
- X if (cur_column.eq.13) then
- X cur_column = 48
- X else
- X cur_column = 13
- X cur_row = cur_row + 1
- X endif
- X elseif (cur_row.eq.7) then
- X if (cur_column.eq.13) then
- X cur_column = 48
- X else
- X cur_column = 48
- X cur_row = cur_row + 3
- X endif
- X elseif (cur_row.eq.8) then
- X`09 if (cur_col.eq.13) then
- X`09 elseif (cur_col.eq.48) then
- X`09 cur_row = cur_row + 2
- X`09 endif
- X elseif (cur_row.eq.10) then
- X cur_column = 13
- X cur_row = cur_row + 1
- X elseif (cur_row.eq.11) then
- X if (cur_column.eq.13) then
- X cur_column = 48
- X else
- X cur_column = 16
- X cur_row = cur_row + 2
- X endif
- X elseif (cur_row.ge.13.and.cur_row.lt.19) then
- X if (cur_column.eq.16) then
- X cur_column = 35
- X elseif (cur_column.eq.35) then
- X cur_column = 56
- X elseif (cur_row.eq.18.and.cur_column.eq.56) then
- X cur_column = 12
- X cur_row = cur_row + 1
- X else
- X cur_column = 16
- X cur_row = cur_row + 1
- X endif
- X elseif (cur_row.eq.19) then
- X if (cur_column.eq.12.or.cur_column.eq.16) then
- X cur_column = 35
- X elseif (cur_column.eq.35) then
- X cur_column = 56
- X else
- X cur_column = 13
- X cur_row = 3
- X endif
- X endif
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC Left arrow (or letter 'h') to select previous field
- XC
- X elseif (term.eq.smg$k_trm_left.or.
- X . term.eq.smg$k_trm_uppercase_h.or.
- X . term.eq.smg$k_trm_lowercase_h) then
- X if (cur_row.le.7.and.cur_row.ne.3) then
- X if (cur_column.eq.48) then
- X cur_column = 13
- X else
- X cur_column = 48
- X cur_row = cur_row - 1
- X endif
- X elseif (cur_row.eq.3) then
- X if (cur_column.eq.48) then
- X cur_column = 13
- X else
- X cur_column = 56
- X cur_row = 19
- X endif
- X elseif (cur_row.eq.8) then
- X`09 if (cur_col.eq.48) then
- X`09 cur_row = cur_row - 1
- X`09 else
- X`09 endif
- X elseif (cur_row.eq.10) then
- X cur_column = 48
- X cur_row = cur_row - 3
- X elseif (cur_row.eq.11) then
- X if (cur_column.eq.48) then
- X cur_column = 13
- X else
- X cur_column = 48
- X cur_row = cur_row - 1
- X endif
- X elseif (cur_row.eq.13) then
- X if (cur_column.eq.56) then
- X cur_column = 35
- X elseif (cur_column.eq.35) then
- X cur_column = 16
- X else
- X cur_column = 48
- X cur_row = cur_row - 2
- X endif
- X elseif (cur_row.gt.13) then
- X if (cur_column.eq.56) then
- X cur_column = 35
- X elseif (cur_column.eq.35.and.cur_row.eq.19) then
- X cur_column = 12
- X elseif (cur_column.eq.35.and.cur_row.ne.19) then
- X cur_column = 16
- X else
- X cur_column = 56
- X cur_row = cur_row - 1
- X endif
- X endif
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC Down arrow (or Carriage Return or letter 'j') to call next
- XC field directly below
- XC
- X elseif (term.eq.smg$k_trm_down.or.
- X . term.eq.smg$k_trm_cr.or.
- X . term.eq.smg$k_trm_uppercase_j.or.
- X . term.eq.smg$k_trm_lowercase_j) then
- X if (cur_row.ge.3.and.cur_row.lt.7) then
- X cur_row = cur_row + 1
- X elseif (cur_row.eq.7) then
- X if (cur_column.eq.13) then
- X cur_row = cur_row + 4
- X else
- X cur_row = cur_row + 3
- X endif
- X elseif (cur_row.eq.8) then
- X`09 if (cur_col.eq.13) then
- X`09 elseif (cur_col.eq.48) then
- X`09 cur_row = cur_row + 2
- X`09 endif
- X elseif (cur_row.eq.10) then
- X cur_row = cur_row + 1
- X elseif (cur_row.eq.11) then
- X if (cur_column.eq.13) then
- X cur_row = cur_row + 2
- X cur_column = 16
- X elseif (cur_column.eq.48) then
- X cur_row = cur_row + 2
- X cur_column = 56
- X endif
- X elseif (cur_row.ge.13.and.cur_row.ne.19) then
- X if (cur_row.eq.18.and.cur_column.eq.16) then
- X cur_row = cur_row + 1
- X cur_column = 12
- X else
- X cur_row = cur_row + 1
- X endif
- X elseif (cur_row.eq.19) then
- X if (cur_column.eq.12) then
- X cur_row = 3
- X cur_column = 13
- X else
- X cur_row = 3
- X cur_column = 48
- X endif
- X endif
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC Up arrow (or letter 'k') to above field
- XC
- X elseif (term.eq.smg$k_trm_up.or.
- X . term.eq.smg$k_trm_uppercase_k.or.
- X . term.eq.smg$k_trm_lowercase_k) then
- X if (cur_row.gt.3.and.cur_row.le.7) then
- X cur_row = cur_row - 1
- X elseif (cur_row.eq.3) then
- X if (cur_column.eq.13) then
- X cur_row = 19
- X cur_column = 12
- X else
- X cur_row = 19
- X cur_column = 56
- X endif
- X elseif (cur_row.eq.8) then
- X`09 if (cur_col.eq.48) then
- X`09 cur_row = cur_row - 1
- X`09 else
- X`09 endif
- X elseif (cur_row.eq.10) then
- X cur_row = cur_row - 3
- X elseif (cur_row.eq.11) then
- X if (cur_column.eq.13) then
- X cur_row = cur_row - 4
- X else
- X cur_row = cur_row - 1
- X endif
- X elseif (cur_row.eq.13) then
- X if (cur_column.eq.16) then
- X cur_row = cur_row - 2
- X cur_column = 13
- X else
- X cur_row = cur_row - 2
- X cur_column = 48
- X endif
- X elseif (cur_row.gt.13) then
- X if (cur_row.eq.19.and.cur_column.eq.12) then
- X cur_row = cur_row - 1
- X cur_column = 16
- X else
- X cur_row = cur_row - 1
- X endif
- X endif
- X call smg$set_cursor_abs ( main, cur_row, cur_column )
- XC
- XC Insert key, or Enter key on keypad, or 'I' key to toggle edit mode
- XC
- X elseif (term.eq.smg$k_trm_insert_here.or.
- X . term.eq.smg$k_trm_enter.or.
- X . term.eq.smg$k_trm_uppercase_i.or.
- X . term.eq.smg$k_trm_lowercase_i) then
- X change = .true. ! indicate that change made
- XC
- XC Read what is at the cursor and determine how long the string is.
- XC
- X call smg$read_from_display ( main, string )
- X if ((cur_row.eq.10).or.(cur_row.eq.11.and.
- X . cur_column.eq.48)) then
- X string_len = 23
- X elseif ((cur_row.eq.11.and.cur_column.eq.13).or.
- X . (cur_row.gt.11)) then
- X if (cur_row.eq.19.and.cur_column.eq.12) then
- X string_len = 10
- X else
- X string_len = 6
- X endif
- X else
- X string_len = index(string,' ')-1
- X if (string_len.eq.-1) string_len = 24
- X endif
- XC
- XC Take input from the terminal. First erase what is there and then
- XC ask for new input.
- XC
- X call smg$erase_chars ( main, string_len, cur_row,
- X . cur_column )
- X call smg$read_string ( keyboard, dummy_string ,, 30 ,
- X . modifiers ,, term_set, dummy_string_length )
- XC
- XC String at 3-13 is USERNAME
- XC
- X if (cur_row.eq.3.and.cur_column.eq.13) then
- X username = dummy_string
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( username, username )
- X if (user_exists) rename = .true.
- X endif
- XC
- XC String at 3-48 is OWNER
- XC
- X if (cur_row.eq.3.and.cur_column.eq.48) then
- X owner = dummy_string
- X endif
- XC
- XC String at 4-13 is ACCOUNT
- XC
- X if (cur_row.eq.4.and.cur_column.eq.13) then
- X account = dummy_string
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( account, account )
- X endif
- XC
- XC String at 4-48 is UIC
- XC
- X if (cur_row.eq.4.and.cur_column.eq.48) then
- XC
- XC If only the group number is entered, the next available member number
- XC will be calculated for you.
- XC
- X if (index(dummy_string,',').eq.0) then
- X call next_free_uic ( dummy_string )
- X endif
- XC
- XC If group and member are both entered, and they are entered without
- XC braces, the braces will be added for you.
- XC
- X if ((index(dummy_string,'`5B').eq.0).and.
- X . (index(dummy_string,'`5D').eq.0)) then
- X uic = '`5B'//dummy_string(1:dummy_string_length)//'`5D'
- XC
- XC Otherwise, the uic string will be assumed to be valid ('`5Bgrp,mem`5D').
- XC
- X else
- X uic = dummy_string
- X endif
- XC
- XC Convert the ascii uic to group and member values
- XC
- X num_str = uic(index(uic,'`5B')+1:index(uic,',')-1)
- X num_str_len = index(num_str,' ')-1
- X call ots$cvt_to_l ( num_str(1:num_str_len), grp )
- X num_str = uic(index(uic,',')+1:index(uic,'`5D')-1)
- X num_str_len = index(num_str,' ')-1
- X call ots$cvt_to_l ( num_str(1:num_str_len), mem )
- XC
- XC Get the uic value in integer format with the following formula
- XC
- X uic_value = grp * '10000'x + mem
- X endif
- XC
- XC String at 5-13 is DEFCLI
- XC
- X if (cur_row.eq.5.and.cur_column.eq.13) then
- X defcli = dummy_string
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( defcli, defcli )
- X endif
- XC
- XC String at 5-48 is TABLES
- XC
- X if (cur_row.eq.5.and.cur_column.eq.48) then
- X tables = dummy_string
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( tables, tables )
- X endif
- XC
- XC String at 6-13 is DEFDEV
- XC
- X if (cur_row.eq.6.and.cur_column.eq.13) then
- X defdev = dummy_string(1:dummy_string_length)//':'
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( defdev, defdev )
- X endif
- XC
- XC String at 6-48 is DEFDIR
- XC
- X if (cur_row.eq.6.and.cur_column.eq.48) then
- X if ((index(dummy_string,'`5B').eq.0).and.
- X . (index(dummy_string,'`5D').eq.0)) then
- X defdir =
- X . '`5B'//dummy_string(1:dummy_string_length)//'`5D'
- X else
- X defdir = dummy_string
- X endif
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( defdir, defdir )
- X endif
- XC
- XC String at 7-13 is LGICMD
- XC
- X if (cur_row.eq.7.and.cur_column.eq.13) then
- X lgicmd = dummy_string
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( lgicmd, lgicmd )
- X endif
- XC
- XC String at 7-48 is PASSWORD
- XC
- X if (cur_row.eq.7.and.cur_column.eq.48) then
- X password = dummy_string
- X call str$upcase ( dummy_string, dummy_string )
- X call str$upcase ( password, password )
- X pwd_change = .true.
- X endif
- XC
- XC String at 10-48 is EXPRDATE
- XC
- X if (cur_row.eq.10.and.cur_column.eq.48) then
- +-+-+-+-+-+-+-+- END OF PART 6 +-+-+-+-+-+-+-+-
- --
- \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
- < Joe Koffley KOFFLEY@NRLVAX.NRL.NAVY.MIL >
- < Naval Research Laboratory KOFFLEY@CCF.NRL.NAVY.MIL >
- < Space Systems Division AT&T : 202-767-0894 >
- \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
-