diff --git a/cobc/ChangeLog b/cobc/ChangeLog index 6df472887..9c6bf8b19 100644 --- a/cobc/ChangeLog +++ b/cobc/ChangeLog @@ -1,4 +1,9 @@ + +2024-02-19 Boris Eng + + * parser.y (screen_value_clause): replaced basic literals by literals + 2024-01-25 David Declerck FR #459: support COLLATING SEQUENCE clause on SELECT / INDEXED files diff --git a/cobc/parser.y b/cobc/parser.y index f37ea8991..8beb49d87 100644 --- a/cobc/parser.y +++ b/cobc/parser.y @@ -10133,7 +10133,7 @@ screen_option: ; screen_value_clause: - _value_is basic_literal + _value_is literal { /* omitting VALUE is at least allowed in MS-COBOL, MF-COBOL, ACUCOBOL for SCREEN VALUE, and not according to XOPEN uses 85-std which has no SCREEN SECTION and newer Standards */ diff --git a/tests/testsuite.src/run_manual_screen.at b/tests/testsuite.src/run_manual_screen.at index 4b1b69400..cb1ea2e5f 100644 --- a/tests/testsuite.src/run_manual_screen.at +++ b/tests/testsuite.src/run_manual_screen.at @@ -3510,3 +3510,33 @@ MANUAL_CHECK([$COBCRUN_DIRECT ./prog], [0], [], []) AT_CLEANUP + +AT_SETUP([VALUE ALL in SCREEN SECTION]) + +AT_SKIP_IF([test "$COB_HAS_CURSES" != "yes"]) + +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. SCREEN-VALUE-ALL. + + DATA DIVISION. + WORKING-STORAGE SECTION. + + SCREEN SECTION. + 01 SCREEN001 BLANK SCREEN AUTO-SKIP. + 03 SCR01 BACKGROUND-COLOR 2 FOREGROUND-COLOR 7. + 05 LINE 02 COL 001 PIC X(50) VALUE ALL '-'. + + PROCEDURE DIVISION. + DISPLAY 'Press ENTER if you see a sequence of ""-""' + AT 0101 END-DISPLAY + DISPLAY ' ' AT 0201 END-DISPLAY + ACCEPT SCREEN001 + ACCEPT OMITTED + GOBACK. +]) + +AT_CHECK([$COMPILE prog.cob], [0], [], []) +MANUAL_CHECK([$COBCRUN_DIRECT ./prog], [0], [], []) + +AT_CLEANUP diff --git a/tests/testsuite.src/syn_screen.at b/tests/testsuite.src/syn_screen.at index b9aeea88a..ce8ccd5bf 100644 --- a/tests/testsuite.src/syn_screen.at +++ b/tests/testsuite.src/syn_screen.at @@ -882,3 +882,26 @@ AT_CHECK([$COMPILE_ONLY prog.cob], [0], [], ]) AT_CLEANUP + + +AT_SETUP([VALUE ALL in SCREEN SECTION]) + +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. SCREEN-VALUE-ALL. + + DATA DIVISION. + WORKING-STORAGE SECTION. + + SCREEN SECTION. + 01 SCREEN001 BLANK SCREEN AUTO-SKIP. + 03 SCR01 BACKGROUND-COLOR 2 FOREGROUND-COLOR 7. + 05 LINE 02 COL 001 PIC X(50) VALUE ALL '-'. + + PROCEDURE DIVISION. + GOBACK. +]) + +AT_CHECK([$COMPILE_ONLY prog.cob], [0], [], []) + +AT_CLEANUP