      PROGRAM A1NEWMSG
************************************************************************
*  This program will read the OA$DATA:PENDING.DAT file to see if there *
*  are any unread ALL-IN-1 mail messages.  If the OA$DATA logical does *
*  not exist, a message is displayed that ALL-IN-1 does not run on     *
*  this node.  All ALL-IN-1 accounts are assumed to be the same as the *
*  process' USERNAME, except that the ALLIN1 VMS account checks the    *
*  MANAGER account in ALL-IN-1.  Some formatting is done using the     *
*  routines in the FTNLIB in this directory.                           *
*                                                                      *
*  This program was written in November, 1990 by Roger G. Ruckert at   *
*  Medtronic, Inc.  (c) 1990 - Medtronic, Inc.                         *
************************************************************************
      LOGICAL ERROR
      INTEGER*4 LIB$GETJPI, LIB$SYS_TRNLOG
      INTEGER*4 STATUS, IOSTAT, JPINAMLEN, I4
      INTEGER*2 LOGNAMLEN
      CHARACTER USERNAME*30, JPIUSER*12, USERRECORD*100, C3*3
      CHARACTER OA$DATA*7, LNM$_STRING*255
      INCLUDE '($JPIDEF)'
      DATA OA$DATA /'OA$DATA'/
      PRINT *, ' '
      STATUS = LIB$SYS_TRNLOG (OA$DATA,LOGNAMLEN,LNM$_STRING,,,)
*
      IF (STATUS .NE. 1) THEN
          PRINT *, '     ALLIN1 does not run on this node'
          PRINT *, ' '
          CALL EXIT (1)
      ENDIF
*
      OPEN (10, FILE='OA$DATA:PENDING.DAT', ORGANIZATION='INDEXED',
     2  ACCESS='KEYED', RECORDTYPE='VARIABLE', FORM='FORMATTED',
     3  CARRIAGECONTROL='LIST', KEY=(1:65:CHARACTER), ERR=903,
     4  READONLY, SHARED, STATUS='OLD', IOSTAT=IOSTAT)
      STATUS = LIB$GETJPI (JPI$_USERNAME,,,,JPIUSER,JPINAMLEN)
      IF (JPIUSER .EQ. 'ALLIN1') JPIUSER = 'MANAGER'
      JPINAMLEN = INDEX (JPIUSER, ' ')
      JPINAMLEN = JPINAMLEN - 1
      USERNAME = ' '
      USERNAME(1:JPINAMLEN) = JPIUSER(1:JPINAMLEN)
      READ (10, ERR=903, FMT='(A)', KEYEQ='MAIL '//USERNAME,
     2  KEYID=0) USERRECORD
      CALL I4BIN (I4, USERRECORD, 73, 75, 'SL', ERROR)
*
      IF (ERROR) THEN
          C3 = '+++'
      ELSE
          CALL I4DSP (I4, C3, 1, 3, 'RJSFSL')
      ENDIF
*
      PRINT *, '   User ', JPIUSER (1:JPINAMLEN), ' has',
     2  C3, ' unread ALL-IN-1 message(s)'
  150 PRINT *, ' '
      CALL EXIT (1)
*
  900 PRINT *, 'Cannot open PENDING.DAT: IOSTAT = ', IOSTAT
      CALL EXIT (4)
*
  903 PRINT *, '   User ', JPIUSER (1:JPINAMLEN),
     2  ' has no unread ALL-IN-1 messages'
      GO TO 150
*
      END
