PDP11, PDP10, Qbus & Unibus VAX: Correct CR device translation help and parsing

As reported in #1115
This commit is contained in:
Mark Pizzolato 2022-01-15 15:38:35 -08:00
parent bfa041e429
commit 1cffbd5706

View file

@ -577,7 +577,7 @@ static MTAB cr_mod[] = {
{ MTAB_XTD|MTAB_VDV, 0, "RATE", "RATE={DEFAULT|200..1200}", { MTAB_XTD|MTAB_VDV, 0, "RATE", "RATE={DEFAULT|200..1200}",
&cr_set_rate, &cr_show_rate, NULL, "Display input rate" }, &cr_set_rate, &cr_show_rate, NULL, "Display input rate" },
{ MTAB_XTD|MTAB_VDV, 0, "TRANSLATION", { MTAB_XTD|MTAB_VDV, 0, "TRANSLATION",
NULL, NULL, /* Populated by cr_reset */
&cr_set_trans, &cr_show_trans, NULL, "Display translation mode" }, &cr_set_trans, &cr_show_trans, NULL, "Display translation mode" },
{ 0 } }; { 0 } };
@ -1442,7 +1442,7 @@ t_stat cr_reset ( DEVICE *dptr )
if (!translation_help) { if (!translation_help) {
size_t i; size_t i;
const char trans_hlp[] = "TRANSLATION={"; const char trans_hlp[] = "TRANSLATION={";
size_t size = sizeof(trans_hlp) +1; size_t size = sizeof(trans_hlp) + 2;
for ( i = 0; i < NTRANS; i++ ) for ( i = 0; i < NTRANS; i++ )
size += strlen (transcodes[i].name)+1; size += strlen (transcodes[i].name)+1;
@ -1453,7 +1453,7 @@ t_stat cr_reset ( DEVICE *dptr )
strlcat (translation_help,"|", size); strlcat (translation_help,"|", size);
} }
translation_help[strlen (translation_help) - 1] = '\0'; translation_help[strlen (translation_help) - 1] = '\0';
strlcpy(translation_help, "}", size); strlcat (translation_help, "}", size);
for (i = 0; i < (sizeof cr_mod / sizeof cr_mod[0]); i++ ) for (i = 0; i < (sizeof cr_mod / sizeof cr_mod[0]); i++ )
if (cr_mod[i].pstring && !strcmp(cr_mod[i].pstring, "TRANSLATION")) { if (cr_mod[i].pstring && !strcmp(cr_mod[i].pstring, "TRANSLATION")) {
cr_mod[i].mstring = translation_help; cr_mod[i].mstring = translation_help;