diff --git a/src/main/cobol/FileCopy.cbl b/src/main/cobol/FileCopy.cbl index 13656643..cedde4ab 100644 --- a/src/main/cobol/FileCopy.cbl +++ b/src/main/cobol/FileCopy.cbl @@ -29,7 +29,8 @@ 01 INPUT-RECORD. 05 IN-FIELD-1 PIC X(10). 05 FILLER PIC X(20). - 05 IN-FIELD-2 PIC X(10). + 05 IN-FIELD-2. + COPY FSTEST. * This defines our output file FD OUTPUT-FILE BLOCK CONTAINS 0 RECORDS diff --git a/src/main/cobol/copy/FSTEST.cpy b/src/main/cobol/copy/FSTEST.cpy new file mode 100644 index 00000000..9204d985 --- /dev/null +++ b/src/main/cobol/copy/FSTEST.cpy @@ -0,0 +1,3 @@ + 10 FIRST-NAME PIC X(10). + 10 LAST-NAME PIC X(10). + 10 TMS-CREA PIC X(26). \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java index 3340dc6f..efee43cf 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java @@ -79,6 +79,11 @@ void addAccumulatedTokensFromCopyStatementToCopyTokens(String line) { if (copyTokens == null) { copyTokens = new ArrayList<>(); } + // If this is the start of a new COPY statement (line contains "COPY"), clear previous tokens + String trimmedLine = line.trim(); + if (trimmedLine.toUpperCase().startsWith("COPY") || trimmedLine.toUpperCase().startsWith("INCLUDE")) { + copyTokens.clear(); + } String[] lineTokens = line.trim().split(Constants.SPACE); for (String lineToken : lineTokens) { if (lineToken != null && !lineToken.equals(Constants.EMPTY_STRING)) {