Skip to content

Commit cfaaaa0

Browse files
authored
Fix numericCompareTo() (#516)
1 parent 927be3e commit cfaaaa0

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

libcobj/app/src/main/java/jp/osscons/opensourcecobol/libcobj/data/CobolNumericField.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,7 @@ public int numericCompareTo(AbstractCobolField field) {
911911
final int i1 = firstIndex1 + i + pointIndex1;
912912
final int i2 = firstIndex2 + i + pointIndex2;
913913
byte b1;
914-
if (i1 < 0 || i1 > lastIndex1) {
914+
if (i1 < firstIndex1 || i1 > lastIndex1) {
915915
b1 = (byte) '0';
916916
} else {
917917
b1 = d1.getByte(i1);
@@ -920,7 +920,7 @@ public int numericCompareTo(AbstractCobolField field) {
920920
}
921921
}
922922
byte b2;
923-
if (i2 < 0 || i2 > lastIndex2) {
923+
if (i2 < firstIndex2 || i2 > lastIndex2) {
924924
b2 = (byte) '0';
925925
} else {
926926
b2 = d2.getByte(i2);

tests/misc.src/compare-9.at

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,34 @@ AT_CHECK([${COBJ} prog.cbl])
5757
AT_CHECK([java prog])
5858

5959
AT_CLEANUP
60+
61+
AT_SETUP([compare 9(n), S9(n) SEPARATE])
62+
63+
AT_DATA([prog.cbl], [
64+
IDENTIFICATION DIVISION.
65+
PROGRAM-ID. prog.
66+
DATA DIVISION.
67+
WORKING-STORAGE SECTION.
68+
01 N10 PIC 9(10).
69+
01 S9-L PIC S9(9) SIGN LEADING SEPARATE.
70+
01 S9-T PIC S9(9) SIGN TRAILING SEPARATE.
71+
PROCEDURE DIVISION.
72+
MAIN-PROC.
73+
*************************************************************
74+
MOVE 800 TO N10.
75+
MOVE 900 TO S9-L.
76+
MOVE 900 TO S9-T.
77+
78+
IF N10 >= S9-L
79+
DISPLAY "NG (N10 >= S9-L)"
80+
END-IF.
81+
82+
IF N10 >= S9-T
83+
DISPLAY "NG (N10 >= S9-T)"
84+
END-IF.
85+
])
86+
87+
AT_CHECK([${COBJ} prog.cbl])
88+
AT_CHECK([java prog])
89+
90+
AT_CLEANUP

0 commit comments

Comments
 (0)