File: fcb_exit_binary.m4

package info (click to toggle)
cbflib 0.9.6%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 56,196 kB
  • sloc: ansic: 103,920; python: 4,552; sh: 3,032; makefile: 1,822; yacc: 659; f90: 210; xml: 210; cpp: 58; java: 16
file content (66 lines) | stat: -rw-r--r-- 2,546 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
m4_include(`fcblib_defines.m4')m4_dnl
`      INTEGER FUNCTION FCB_EXIT_BINARY(TAPIN,LAST_CHAR,FCB_BYTES_IN_REC,&
                                      BYTE_IN_FILE,REC_IN_FILE,BUFFER,  &
                                      PADDING )
!-----------------------------------------------------------------------
!     Skip to end of binary section that was just read
!-----------------------------------------------------------------------
      IMPLICIT                   NONE
      INTEGER,   INTENT(IN)   :: TAPIN,FCB_BYTES_IN_REC
      INTEGER,   INTENT(INOUT):: BYTE_IN_FILE,REC_IN_FILE
      INTEGER(1),INTENT(INOUT):: LAST_CHAR,BUFFER(FCB_BYTES_IN_REC)
      INTEGER(8),INTENT(IN)   :: PADDING
!External functions called'
       fcb_interface_FCB_READ_BYTE
       fcb_interface_FCB_READ_LINE
       fcb_interface_FCB_CI_STRNCMPARR
`!-----------------------------------------------------------------------

      INTEGER,PARAMETER           ::  LINESIZE=2048
      INTEGER(1) LINE(LINESIZE)     ! BUFFER FOR THE NEXT LINE
      INTEGER LINELEN               ! VALID CHARACTERS IN LINE
      INTEGER ITEM                  ! 1 FOR MIME ITEM FOUND, 0 OTHERWISE
      INTEGER QUOTE
      INTEGER TEXT_BITS
      INTEGER COUNT
      
      INTEGER BOUND_FOUND
      

      CHARACTER*31 BOUNDARY
      DATA BOUNDARY/"--CIF-BINARY-FORMAT-SECTION----"/
!-----------------------------------------------------------------------

! --  Skip the trailing pad
      BYTE_IN_FILE = BYTE_IN_FILE+PADDING
      
! --  Skip to MIME boundary
      BOUND_FOUND = 0
      DO
        FCB_EXIT_BINARY =                                                  &
          FCB_READ_LINE(TAPIN,LAST_CHAR,FCB_BYTES_IN_REC,BYTE_IN_FILE,     &
          REC_IN_FILE,BUFFER,LINE,LINESIZE,LINELEN)
        IF(FCB_EXIT_BINARY.NE.0 ) RETURN
        ! *** DEBUG *** PRINT *," LINELEN, LINE: ", LINELEN, LINE(1:LINELEN)
        IF (BOUND_FOUND .EQ. 0) THEN
          IF (FCB_CI_STRNCMPARR(BOUNDARY,LINE,LINELEN,31).EQ.0) THEN
            BOUND_FOUND = 1
          ! *** DEBUG *** PRINT *,  &
          !  "MIME BOUNDARY --CIF-BINARY-FORMAT-SECTION---- FOUND"
          END IF
        END IF
        IF (LINE(1).EQ.IACHAR(''`;''`)) THEN
          IF (LINELEN.EQ.1.OR.LINE(2).EQ.32.OR.LINE(2).EQ.9)  THEN
            IF (BOUND_FOUND.EQ.0) THEN
              PRINT *, " END OF TEXT FOUND BEFORE MIME BOUNDARY"
            ELSE
              EXIT
            END IF
          END IF
        END IF
      END DO

      FCB_EXIT_BINARY = 0
      RETURN
      END FUNCTION FCB_EXIT_BINARY'