Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -649,11 +649,11 @@ public static int nationalCmps(
CobolDataStorage s1, CobolDataStorage s2, int size, CobolDataStorage col) {
int ret = 0;
for (int i = 0; i < size && ret == 0; i += 2) {
int b11 = s1.getByte(i);
int b12 = s1.getByte(i + 1);
int b21 = s2.getByte(i);
int b22 = s2.getByte(i + 1);
ret = (b11 << 8 | b12) - (b21 << 8 | b22);
int b11 = Byte.toUnsignedInt(s1.getByte(i));
int b12 = Byte.toUnsignedInt(s1.getByte(i + 1));
int b21 = Byte.toUnsignedInt(s2.getByte(i));
int b22 = Byte.toUnsignedInt(s2.getByte(i + 1));
ret = ((b11 << 8) | b12) - ((b21 << 8) | b22);
}
return ret;
}
Expand Down
3 changes: 2 additions & 1 deletion tests/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,8 @@ misc_DEPENDENCIES = \
misc.src/display-numeric.at \
misc.src/version-string-in-java.at \
misc.src/comp3-compute.at \
misc.src/index-file-status.at
misc.src/index-file-status.at \
misc.src/comp-n.at


EXTRA_DIST = $(srcdir)/package.m4 \
Expand Down
3 changes: 2 additions & 1 deletion tests/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,8 @@ misc_DEPENDENCIES = \
misc.src/display-numeric.at \
misc.src/version-string-in-java.at \
misc.src/comp3-compute.at \
misc.src/index-file-status.at
misc.src/index-file-status.at \
misc.src/comp-n.at

EXTRA_DIST = $(srcdir)/package.m4 \
$(TESTS) \
Expand Down
3 changes: 2 additions & 1 deletion tests/misc.at
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,5 @@ m4_include([display-numeric.at])
m4_include([exit-perform-cycle.at])
m4_include([version-string-in-java.at])
m4_include([comp3-compute.at])
m4_include([index-file-status.at])
m4_include([index-file-status.at])
m4_include([comp-n.at])
49 changes: 49 additions & 0 deletions tests/misc.src/comp-n.at
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
AT_SETUP([Compare N characters])

AT_DATA([prog.cbl], [
IDENTIFICATION DIVISION.
PROGRAM-ID. prog.
DATA DIVISION.
WORKING-STORAGE SECTION.

01 C1-GRP.
03 C1 PIC N(1).
01 C1-VALUE-GRP.
03 C1-1-VALUE PIC X VALUE LOW-VALUE.
03 C1-2-VALUE PIC X VALUE LOW-VALUE.
01 C2-GRP.
03 C2 PIC N(1).
01 C2-VALUE-GRP.
03 C2-1-VALUE PIC X VALUE LOW-VALUE.
03 C2-2-VALUE PIC X VALUE HIGH-VALUE.
01 C3-GRP.
03 C3 PIC N(1).
01 C3-VALUE-GRP.
03 C3-1-VALUE PIC X VALUE HIGH-VALUE.
03 C3-2-VALUE PIC X VALUE LOW-VALUE.
01 C4-GRP.
03 C4 PIC N(1).
01 C4-VALUE-GRP.
03 C4-1-VALUE PIC X VALUE HIGH-VALUE.
03 C4-2-VALUE PIC X VALUE HIGH-VALUE.
PROCEDURE DIVISION.
MOVE C1-VALUE-GRP TO C1-GRP.
MOVE C2-VALUE-GRP TO C2-GRP.
MOVE C3-VALUE-GRP TO C3-GRP.
MOVE C4-VALUE-GRP TO C4-GRP.
IF C1 NOT = C1 THEN DISPLAY "NG C1, C1".
IF C1 = C2 THEN DISPLAY "NG C1, C2".
IF C1 = C3 THEN DISPLAY "NG C1, C3".
IF C1 = C4 THEN DISPLAY "NG C1, C4".
IF C2 NOT = C2 THEN DISPLAY "NG C2, C2".
IF C2 = C3 THEN DISPLAY "NG C2, C3".
IF C2 = C4 THEN DISPLAY "NG C2, C4".
IF C3 NOT = C3 THEN DISPLAY "NG C3, C3".
IF C3 = C4 THEN DISPLAY "NG C3, C4".
IF C4 NOT = C4 THEN DISPLAY "NG C4, C4".
])

AT_CHECK([${COBJ} prog.cbl])
AT_CHECK([java prog])

AT_CLEANUP