      INTEGER*4 FUNCTION LOGTRANS(INPUT,OUTPUT,LEN)
      IMPLICIT INTEGER*4 (S)
      EXTERNAL SS$_NORMAL,SS$_NOTRAN
      CHARACTER*(*) INPUT,OUTPUT
      CHARACTER*63 TEMP
      LOGICAL COLON
      OUTPUT = INPUT
      LOOP = 0
10    TEMP = OUTPUT
      N = NBLANK(TEMP)
      COLON = TEMP(N:N).EQ.':'
      IF(COLON)N = N - 1
      LOGTRANS = SYS$TRNLOG(TEMP(1:N),LEN,OUTPUT,,,)
      IF(ICHAR(OUTPUT(1:1)).EQ.'1B'X)THEN
         OUTPUT = OUTPUT(5:)
         LEN = LEN - 4
      END IF
      OUTPUT = OUTPUT(1:LEN)
      LOOP = LOOP + 1
      IF(LOGTRANS.EQ.%LOC(SS$_NORMAL))GOTO 10
      IF(COLON)THEN
         LEN = LEN + 1
         OUTPUT(LEN:LEN) = ':'
      END IF
      IF((LOGTRANS.EQ.%LOC(SS$_NOTRAN)).AND.(LOOP.GT.1))
     .   LOGTRANS = %LOC(SS$_NORMAL)
C
C     special patch since VMS 1.6 omits : for SYS$INPUT
C     and SYS$OUTPUT assignments in indirect command procedures
C
      IF((LOGTRANS.EQ.%LOC(SS$_NORMAL)).AND.(LEN.EQ.4).AND.
     .   (OUTPUT(1:2).EQ.'TT'))THEN
         OUTPUT = OUTPUT(1:4)//':'
         LEN = 5
      END IF
      RETURN
      END
