*DECK FFSULLN 
USETEXT TEXTFFS 
      FUNC FFSULLN (INBUF, BUFSIZE) I;
*CALL COPYRITE
# TITLE FFSULEN - LINE LENGTH                                          #
  
      BEGIN                            # FFSULLN                       #
# 
**    FFSULLN - LINE LENGTH 
* 
*     TET TRAN                         88/03/07 
* 
*     FFSULLN IS A INTERGER FUNCTION. IT RETURNS THE NUMBER OF DISPLAY- 
*     CODE CHARACTERS, COUNTING FROM THE BEGINNING OF THE BUFFER TO THE 
*     FIRST ZERO-BYTE TERMINATOR. 
* 
*     ENTRY    INBUF      = THE ARRAY CONTAINING THE TEXT LINE. 
*              BUFSIZE    = THE SIZE OF THE BUFFER, TO STOP THE SEARCH
*                           IN CASE NO ZBTERM IS FOUND. 
* 
*     EXIT     FFSULLN    = THE NUMBER OF CHARACTERS IN THE LINES.
* 
# 
  
      ARRAY INBUF[00:00] S(1);           # CONNECTION TYPE             #
        BEGIN 
        ITEM INBUFWRD  U(00,00,60); 
        END 
  
      ITEM BUFSIZE      I;
      ITEM WORDINDEX    I;
      ITEM BYTEINDEX    I;
  
      CONTROL EJECT;
# 
**    START MAIN PROCEDURE
# 
      FFSULLN = 0;                # INITIALIZE TO ZERO                 #
  
# 
*     LOCATE THE WORD THAT CONTAINS THE ZERO-BYTE TERMINATOR
# 
      FOR WORDINDEX = 0 STEP 1 WHILE (WORDINDEX LS BUFSIZE) 
                               AND (B<48,12>INBUFWRD[WORDINDEX] NQ 0) 
      DO
        BEGIN 
        END 
  
# 
*     SEARCH BACKWARD FOR THE FIRST NON-ZERO BYTE 
# 
      BYTEINDEX = 7;
      FOR BYTEINDEX = BYTEINDEX 
        WHILE (WORDINDEX GQ 0)
        AND (B<BYTEINDEX*6,6>INBUFWRD[WORDINDEX] EQ 0)
      DO
        BEGIN 
        BYTEINDEX = BYTEINDEX - 1;
        IF BYTEINDEX LS 0 
        THEN
          BEGIN 
          WORDINDEX = WORDINDEX - 1;
          BYTEINDEX = 9;
          END 
        END 
  
# 
*     COMPUTE THE LINE LENGTH 
# 
      IF (WORDINDEX GQ 0) AND (WORDINDEX LS BUFSIZE)
      THEN
        BEGIN 
        FFSULLN = WORDINDEX*10 + BYTEINDEX + 1; 
        END 
  
      RETURN;                            # RETURN TO CALLER            #
  
      END                                # FFSULEN                     #
  
      TERM
