From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CUNYVM.CUNY.EDU::TERRY%SPCVXA.BITNET" 27-AUG-1989 02:50
To:	MRGATE::"ARISIA::EVERHART"
Subj:	Finger update (V51.1.22) 1/1

Message-Id:  <8908270650.AA22780@crdgw1.ge.com>
Received: from SPCVXA.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.1MX) with BSMTP id 6071; Sun, 27 Aug 89 02:48:53 EDT
Date: Sun, 27 Aug 89 02:47 EDT
From: "Terry Kennedy, Operations Mgr" <TERRY%SPCVXA.BITNET@CUNYVM.CUNY.EDU>
Subject: Finger update (V51.1.22) 1/1
To: everhart@arisia.decnet
X-Vms-To: IN%"everhart%arisia.decnet@crdgw1.ge.com"

  This file contains a VMS_SHARE collection of differences files which, when
applied to the VMS Finger V51.1.21 distribution will produce VMS Finger V51.
1.22 (test version). V51.1.22 contains minor bug fixes as well as a major per-
formance improvement in Fingmaint. Also included is new support for dislay of
dialup information on DECservers and support for per-user mail privacy. See
the updated AAAREADME.TXT file for more information.

  Finger V51.1.22 is currently in test. These changes do not constitute an
"official" Finger release (whatever that means with free software 8-), but
I would be interested in hearing any comments or problems with this version.

  To update your files, use the *original* V51.1.21 distribution (ie., before
any local changes were added) and use the EDIT/SUM command to apply the ap-
propriate .DIF file. All .DIF files are named the same as the file they up-
date, except for FINGERBUGS.DIF, which is applied to FINGER.BUGS.

        Terry Kennedy, Operations Manager, Academic Computing
        St. Peter's College
        terry@spcvxa.bitnet

$! ................... Cut between dotted lines and save. ...................
$!...........................................................................
$! VAX/VMS archive file created by VMS_SHARE V06.10 7-FEB-1989.
$!
$! VMS_SHARE was written by James Gray (Gray:OSBUSouth@Xerox.COM) from
$! VMS_SHAR by Michael Bednarek (U3369429@ucsvc.dn.mu.oz.au).
$!
$! To unpack, simply save, concatinate all parts into one file and
$! execute (@) that file.
$!
$! This archive was created by user TERRY
$! on 26-AUG-1989 23:58:48.78.
$!
$! It contains the following 7 files:
$!        AAAREADME.DIF
$!        ABSTRACT.DIF
$!        FINGER.DIF
$!        FINGERBUGS.DIF
$!        FINGERCOM.DIF
$!        FINGERDAE.DIF
$!        FINGMAINT.DIF
$!
$!============================================================================
$ SET SYMBOL/SCOPE=( NOLOCAL, NOGLOBAL )
$ VERSION = F$GETSYI( "VERSION" )
$ IF VERSION .GES "V4.4" THEN GOTO VERSION_OK
$ WRITE SYS$OUTPUT "You are running VMS ''VERSION'; ", -
    "VMS_SHARE V06.10 7-FEB-1989 requires VMS V4.4 or higher."
$ EXIT 44 ! SS$_ABORT
$VERSION_OK:
$ GOTO START
$!
$UNPACK_FILE:
$ WRITE SYS$OUTPUT "Creating ''FILE_IS'"
$ DEFINE/USER_MODE SYS$OUTPUT NL:
$ EDIT/TPU/COMMAND=SYS$INPUT/NODISPLAY/OUTPUT='FILE_IS'/NOSECTION -
    VMS_SHARE_DUMMY.DUMMY
b_part := CREATE_BUFFER( "{Part}", GET_INFO( COMMAND_LINE, "file_name" ) )
; s_file_spec := GET_INFO( COMMAND_LINE, "output_file" ); SET( OUTPUT_FILE
, b_part, s_file_spec ); b_errors := CREATE_BUFFER( "{Errors}" ); i_errors
:= 0; pat_beg_1 := ANCHOR & "-+-+-+ Beginning"; pat_beg_2 := LINE_BEGIN
& "+-+-+-+ Beginning"; pat_end := ANCHOR & "+-+-+-+-+ End"; POSITION
( BEGINNING_OF( b_part ) ); LOOP EXITIF SEARCH( SPAN( ' ' )@r_trail
& LINE_END, FORWARD) = 0; POSITION( r_trail ); ERASE( r_trail ); ENDLOOP
; POSITION( BEGINNING_OF( b_part ) ); i_append_line := 0; LOOP EXITIF MARK
( NONE ) = END_OF( b_part ); s_x := ERASE_CHARACTER( 1 )
; IF s_x = '+' THEN r_skip := SEARCH( pat_beg_1, FORWARD, EXACT ); IF r_skip
<> 0 THEN s_x := ''; MOVE_HORIZONTAL( -CURRENT_OFFSET ); ERASE_LINE; ENDIF
; ENDIF; IF s_x = '-' THEN r_skip := SEARCH( pat_end, FORWARD, EXACT )
; IF r_skip <> 0 THEN s_x := ''; MOVE_HORIZONTAL( -CURRENT_OFFSET ); m_skip
:= MARK( NONE ); r_skip := SEARCH( pat_beg_2, FORWARD, EXACT ); IF r_skip
<> 0 THEN POSITION( END_OF( r_skip ) ); MOVE_HORIZONTAL( -CURRENT_OFFSET )
; MOVE_VERTICAL( 1 ); MOVE_HORIZONTAL( -1 ); ELSE POSITION( END_OF( b_part )
); ENDIF; ERASE( CREATE_RANGE( m_skip, MARK( NONE ), NONE ) ); ENDIF; ENDIF
; IF s_x = 'V' THEN s_x := ''; IF i_append_line <> 0 THEN APPEND_LINE
; MOVE_HORIZONTAL( -CURRENT_OFFSET ); ENDIF; i_append_line := 1
; MOVE_VERTICAL( 1 ); ENDIF; IF s_x = 'X' THEN s_x := ''; IF i_append_line
<> 0 THEN APPEND_LINE; MOVE_HORIZONTAL( -CURRENT_OFFSET ); ENDIF
; i_append_line := 0; MOVE_VERTICAL( 1 ); ENDIF; IF s_x <> '' THEN i_errors
:= i_errors + 1; s_text := CURRENT_LINE; POSITION( b_errors ); COPY_TEXT
( "The following line could not be unpacked properly:" ); SPLIT_LINE
; COPY_TEXT( s_x ); COPY_TEXT( s_text ); POSITION( b_part ); MOVE_VERTICAL
( 1 ); ENDIF; ENDLOOP; POSITION( BEGINNING_OF( b_part ) ); LOOP r_x := SEARCH
( "`", FORWARD, EXACT ); EXITIF r_x = 0; POSITION( r_x ); ERASE_CHARACTER( 1
); COPY_TEXT( ASCII( INT( ERASE_CHARACTER( 3 ) ) ) ); ENDLOOP
; IF i_errors = 0 THEN SET( NO_WRITE, b_errors, ON ); ELSE POSITION
( BEGINNING_OF( b_errors ) ); COPY_TEXT( FAO
( "The following !UL errors were detected while unpacking !AS", i_errors
, s_file_spec ) ); SPLIT_LINE; SET( OUTPUT_FILE, b_errors, "SYS$COMMAND" )
; ENDIF; EXIT;
$ DELETE VMS_SHARE_DUMMY.DUMMY;*
$ CHECKSUM 'FILE_IS
$ WRITE SYS$OUTPUT " CHECKSUM ", -
  F$ELEMENT( CHECKSUM_IS .EQ. CHECKSUM$CHECKSUM, ",", "failed!!,passed." )
$ RETURN
$!
$START:
$ FILE_IS = "AAAREADME.DIF"
$ CHECKSUM_IS = 896346792
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-    1,    1
XFinger V51_1_22
X-   66,   66
Xo    Idle times are back! Thanks to Ted Nieland, Joe Meadows, and Ken Adel-
X-  142
XNew for V51.1.22:
X
Xo    The ADD/USER/UAF command in Fingmaint is now *much* faster.  Thanks to
X     Craig Watkins of PSUECL for this fix.
X
Xo    A spurious error message was generated if you fingered a  user who was
X     in the process of logging in on an RTA device.  This has been correct-
X     ed.  Thanks to Craig Watkins (PSUECL)  and Frank Nagy (FNAL)  for this
X     fix.
X
Xo    Some data structures were erroneously left in the  Finger common block
X     which pertained to the obsolete TT_UCB code. They have been removed in
X     this release. Thanks to Frank Nagy of FNAL for this fix.
X
Xo    If the port name (SET PORT NAME) of a  DECserver port is "DIALUP.some-
X     thing" it will now be reported as a location of "Dialup something" in-
X     stead of "SERVER DIALUP.so", which was the previous action.
X
Xo    Users may now individually prevent  others from seeing their count and
X     subjects of unread mail.  This is accomplished by having a Mail folder
X     named "F_PRIVACY".  If Finger detects this folder,  it will print  the
X     message  "Mail: Permission refused by owner"  instead of the usual in-
X     formation.
X
X     Editorial comment:  My dead body must be  around here somewhere,  as I
X     have been known to say that this feature would be implemented obver my
X     dead body.  However,  as the alternative  to this is  the few militant
X     users forcing a system-wide default of /DISREPMAIL, this is probably a
X     smaller lossage.  I seriously thought about checking for the F_PRIVACY
X     folder  before fingering another user,  and refusing to print any mail
X     information if  the person doing the finger  had F_PRIVACY set,  but I
X     decided it was unfair to  penalize the vast majority.  Feel free, how-
V     ever,  to make snide comments  to anyone you obsserve using  Finger if`0
X32
X     you know s/he has F_PRIVACY set.
X
X/
$ GOSUB UNPACK_FILE

$ FILE_IS = "ABSTRACT.DIF"
$ CHECKSUM_IS = 86257239
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-    1,    1
XFinger for VAX/VMS Version 5, Version: V51.1.22, August 1989
X/
$ GOSUB UNPACK_FILE

$ FILE_IS = "FINGER.DIF"
$ CHECKSUM_IS = 374872036
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-  147
Xc`009V51.1.22`009Mods at SPC - Include Craig Watkins' fixes to speed
Xc`009`009`009up ADD/USER/UAF in FINGMAINT, fix spurious error in
Xc`009`009`009routine get_decnet_remote if the logical tables aren't
Xc`009`009`009set up yet (from CRW and FJN), remove unused TTUCB
Xc`009`009`009storage in FINGERCOM (from FJN), report dialups on
Xc`009`009`009DECservers a little differently, add check for mail
Xc`009`009`009privacy (Print nastygram if the fingeree's mail file
Xc`009`009`009contains a folder named F_PRIVACY).
Xc`009`009`009By Terry Kennedy`009`009`00926-Aug-1989
X-  158,  158
X`0091`009/'VAX/VMS Finger: Version V51.1.22 of 26-Aug-1989'/
X- 2312, 2316
X`009  EndIf
X
Xc****`009  If (NewMes .gt. 0) then
X- 2325, 2335
X- 2369
X`009    Read(Unit=ScratchUnit,fmt='(a)',IoStat=Status,Err=20,
X`0091`009KeyID=1,Key='F_PRIVACY') mailrec.rec
X`009    If (Status .ne. 0) GoTo 20
X
X`009    Call Finger_Out_Routine(LF//' Mail: Permission refused by '//
X`0091       'owner.'//CR)
X`009    GoTo 101
X
X 20`009    Temp = ' '
X`009    Call Finger_Out_Routine(LF//' Mail: ')
X`009    If ( NewMes .eq. 0 ) then
X`009      Call Finger_Out_Routine('(no new mail)'//CR)
X`009      GoTo 101
X`009    ElseIf ( NewMes .eq. 1 ) then
X`009      Call Finger_Out_Routine('1 new message.'//CR)
X`009    ElseIf ( NewMes .gt. 1 .and. NewMes .lt. 10 ) then
X`009      Write(Temp,1001)NewMes,' new messages.'//CR
X`009      Call Finger_Out_Routine(Temp(:16))
X`009    ElseIf ( NewMes .ge. 10 ) then
X`009      Write(Temp,1002)NewMes,' new messages.'//CR
X`009      Call Finger_Out_Routine(Temp(:18))
X`009    EndIf
X
X- 2480, 2486
Xc  See if there are any new RSCS spool files
X
X101`009  FindTemplate = 'JAN_COMMON:[RECEIVE]'//
X- 2490, 2495
X102`009  ii = Lib$Find_File(FindTemplate(:btrim(FindTemplate)),
X`0091   FindResult, FindContext, , , , %loc(2))
X`009  If ( ii .ne. RMS$_Normal ) Goto 103
X`009  FindCount = FindCount + 1
X`009  Goto 102
X103`009  ii = Lib$Find_File_End(FindContext)
X- 2699, 2700
Xc  If the server port name starts with "DIALUP.", show things a little
Xc  differently (suppress server name, show as "Dialup "+rest_of_port_name.
X`009`009  If (Port(1:7) .eq. 'DIALUP.') Then
X`009`009    Get_Location = 'Dialup ' //
X     1`009`009      TT_AccPorNam(slash+8:Btrim(TT_AccPorNam))
X`009`009  Else
X`009`009    Get_Location = Server(:Btrim(Server)) // ' ' //`032
X     1`009`009      Port(:Btrim(Port))
X`009`009  EndIf
X- 2738
X`009Include`009`009'($ssdef)'`009`009`009`009`009!FJN
X- 2785
X`009If (status .eq. SS$_NOLOGNAM) Then`009`009`009`009!FJN
Xc  Often fails due to new remote login just starting, wait and retry`009!FJN
X`009    Call Lib$Wait( 0.3)`009`009`009`009`009`009!FJN
X`009    status = Sys$TrnLnm(,jobtable(1:l_jobtable),`009`009!FJN
X`0091`009`009`009'SYS$REM_NODE', 1, TRN_ItemList)`009!FJN
X`009EndIf`009`009`009`009`009`009`009`009!FJN
X/
$ GOSUB UNPACK_FILE

$ FILE_IS = "FINGERBUGS.DIF"
$ CHECKSUM_IS = 959198812
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-    6,    9
X/
$ GOSUB UNPACK_FILE

$ FILE_IS = "FINGERCOM.DIF"
$ CHECKSUM_IS = 943010660
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-   83,   98
X/
$ GOSUB UNPACK_FILE

$ FILE_IS = "FINGERDAE.DIF"
$ CHECKSUM_IS = 1043339684
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-   29
Xc`009`009V51.1.22`009Update version info`00926-Aug-1989
X-   33,   33
X`009Character*25`009Fingerdae_Version /'V51.1.22 of 26-Aug-1989'/
X/
$ GOSUB UNPACK_FILE

$ FILE_IS = "FINGMAINT.DIF"
$ CHECKSUM_IS = 842870347
$ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY
X-    6
Xc - Fixed 20-Aug-89 by TMK to include Craig Watkins' fix for ADD/UAF speedup
X-   45,   49
X`009Character       UAF_Record*(UAF$K_Length)
X`009Character       UAF_Username*(UAF$S_Username)
X`009Equivalence     (UAF_Username,UAF_Record(UAF$T_Username+1:))
X`009Character       UAF_Owner*(UAF$S_Owner)
X`009Equivalence     (UAF_Owner,UAF_Record(Uaf$T_Owner+1:))
X-  151,  151
X1000    Format(A)
X/
$ GOSUB UNPACK_FILE
$ EXIT
