Skip to content

Commit 914bc35

Browse files
Fix CANCEL statement against hyphen-containd program-id #121 (#122)
1 parent 4487a13 commit 914bc35

File tree

5 files changed

+54
-2
lines changed

5 files changed

+54
-2
lines changed

libcobj/src/jp/osscons/opensourcecobol/libcobj/call/CobolResolve.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ public static void cobCancel(String name) throws CobolStopRunException {
388388
CobolStopRunException.stopRunAndThrow(1);
389389
}
390390

391+
name = name.replaceAll("-", "__");
391392
CobolRunnable runner = callTable.get(name);
392393
if (runner != null) {
393394
runner.cancel();

tests/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,8 @@ misc_DEPENDENCIES = \
172172
misc.src/comp-overflow.at \
173173
misc.src/compare-national-diff-size.at \
174174
misc.src/compare-9.at \
175-
misc.src/comp3-overflow.at
175+
misc.src/comp3-overflow.at \
176+
misc.src/cancel-hyphen.at
176177

177178
EXTRA_DIST = $(srcdir)/package.m4 \
178179
$(TESTS) \

tests/Makefile.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,8 @@ misc_DEPENDENCIES = \
713713
misc.src/comp-overflow.at \
714714
misc.src/compare-national-diff-size.at \
715715
misc.src/compare-9.at \
716-
misc.src/comp3-overflow.at
716+
misc.src/comp3-overflow.at \
717+
misc.src/cancel-hyphen.at
717718

718719
EXTRA_DIST = $(srcdir)/package.m4 \
719720
$(TESTS) \

tests/misc.at

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,4 @@ m4_include([comp-overflow.at])
3131
m4_include([compare-national-diff-size.at])
3232
m4_include([compare-9.at])
3333
m4_include([comp3-overflow.at])
34+
m4_include([cancel-hyphen.at])

tests/misc.src/cancel-hyphen.at

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
AT_SETUP([CANCEL hyphen])
2+
3+
AT_DATA([TEST18.cbl], [
4+
IDENTIFICATION DIVISION.
5+
PROGRAM-ID. TEST18.
6+
DATA DIVISION.
7+
WORKING-STORAGE SECTION.
8+
01 WK-X PIC X(02).
9+
PROCEDURE DIVISION.
10+
MAIN-RTN.
11+
MOVE "AA" TO WK-X.
12+
CALL "TEST18-1" USING WK-X.
13+
MOVE "BB" TO WK-X.
14+
CALL "TEST18-1" USING WK-X.
15+
CALL "TEST18-1" USING WK-X.
16+
CANCEL "TEST18-1".
17+
CALL "TEST18-1" USING WK-X.
18+
])
19+
20+
AT_DATA([TEST18-1.cbl], [
21+
IDENTIFICATION DIVISION.
22+
PROGRAM-ID. TEST18-1.
23+
ENVIRONMENT DIVISION.
24+
DATA DIVISION.
25+
WORKING-STORAGE SECTION.
26+
01 WK-9 PIC 9(02) VALUE ZERO.
27+
LINKAGE SECTION.
28+
01 LK-X PIC X(02).
29+
PROCEDURE DIVISION USING LK-X.
30+
MAIN-RTN.
31+
EVALUATE LK-X
32+
WHEN "AA"
33+
MOVE ZERO TO WK-9
34+
WHEN "BB"
35+
ADD 1 TO WK-9
36+
DISPLAY WK-9 UPON CONSOLE
37+
END-EVALUATE.
38+
GOBACK.
39+
])
40+
41+
AT_CHECK([${COBJ} TEST18.cbl TEST18-1.cbl])
42+
AT_CHECK([java TEST18], [0],
43+
[01
44+
02
45+
01
46+
])
47+
48+
AT_CLEANUP

0 commit comments

Comments
 (0)