Skip to content

Commit 289a5ee

Browse files
authored
Merge pull request #40 from opensourcecobol/hotfix/INITIALIZE_NATIONAL
Hotfix/initialize national
2 parents ff99e89 + 0fb8d16 commit 289a5ee

File tree

3 files changed

+11888
-11285
lines changed

3 files changed

+11888
-11285
lines changed

cobc/codegen.c

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4685,8 +4685,9 @@ initialize_uniform_char (const struct cb_field *f,
46854685
case COB_TYPE_NUMERIC_DISPLAY:
46864686
return '0';
46874687
case COB_TYPE_ALPHANUMERIC:
4688-
case COB_TYPE_NATIONAL:
46894688
return ' ';
4689+
case COB_TYPE_NATIONAL:
4690+
return 0xFF;
46904691
default:
46914692
return -1;
46924693
}
@@ -4889,6 +4890,18 @@ output_initialize_uniform (cb_tree x, struct cb_field *f,
48894890
output ("*(cob_u8_ptr)(");
48904891
output_data (x);
48914892
output_char (") = ", cc, ";");
4893+
} else if (cc == 0xFF) {
4894+
int tmp_size;
4895+
tmp_size = f->size;
4896+
f->size = size;
4897+
4898+
output ("cob_move (");
4899+
output_param (cb_space, 1);
4900+
output (", ");
4901+
output_param (x, 2);
4902+
output (");");
4903+
4904+
f->size = tmp_size;
48924905
} else {
48934906
output ("memset (");
48944907
output_data (x);
@@ -5773,15 +5786,11 @@ output_initialize (struct cb_initialize *p)
57735786
case INITIALIZE_DEFAULT:
57745787
c = initialize_uniform_char (f, p);
57755788
if (c != -1) {
5776-
if ((cb_tree_type (CB_TREE (f), f) == COB_TYPE_NATIONAL) && (c == ' ')) {
5777-
output_move (cb_space, p->var);
5778-
} else {
5779-
if (p->statement == STMT_INIT_STORAGE) {
5780-
output_init_comment_and_source_ref (f);
5781-
}
5782-
output_initialize_uniform (p->var, f, (unsigned char)c, f->size);
5783-
output_initialize_chaining (f, p);
5789+
if (p->statement == STMT_INIT_STORAGE) {
5790+
output_init_comment_and_source_ref (f);
57845791
}
5792+
output_initialize_uniform (p->var, f, (unsigned char)c, f->size);
5793+
output_initialize_chaining (f, p);
57855794
return;
57865795
}
57875796
/* Fall through */

0 commit comments

Comments
 (0)