SCP: Fix to have sim_printf expand newlines to CRLF when writing to stdout with the simulator running. Allow sim_debug to be called with a NULL device pointer and return producing no output.
This commit is contained in:
parent
899b7a654e
commit
b8dc8f01b5
2 changed files with 14 additions and 5 deletions
17
scp.c
17
scp.c
|
@ -1696,7 +1696,6 @@ else if (*argv[0]) { /* sim name arg? */
|
|||
}
|
||||
|
||||
stat = SCPE_BARE_STATUS(stat); /* remove possible flag */
|
||||
|
||||
while (stat != SCPE_EXIT) { /* in case exit */
|
||||
if ((cptr = sim_brk_getact (cbuf, sizeof(cbuf)))) /* pending action? */
|
||||
printf ("%s%s\n", sim_prompt, cptr); /* echo */
|
||||
|
@ -7906,7 +7905,7 @@ for (i = fields-1; i >= 0; i--) { /* print xlation, transition
|
|||
void sim_debug_bits(uint32 dbits, DEVICE* dptr, BITFIELD* bitdefs,
|
||||
uint32 before, uint32 after, int terminate)
|
||||
{
|
||||
if (sim_deb && (dptr->dctrl & dbits)) {
|
||||
if (sim_deb && dptr && (dptr->dctrl & dbits)) {
|
||||
if (!debug_unterm)
|
||||
fprintf(sim_deb, "%s", sim_debug_prefix(dbits, dptr)); /* print prefix if required */
|
||||
fprint_fields (sim_deb, (t_value)before, (t_value)after, bitdefs); /* print xlation, transition */
|
||||
|
@ -7965,7 +7964,17 @@ while (1) { /* format passed string, arg
|
|||
break;
|
||||
}
|
||||
|
||||
printf("%s", buf);
|
||||
if (sim_is_running) {
|
||||
char *c, *remnant = buf;
|
||||
|
||||
while ((c = strchr(remnant, '\n'))) {
|
||||
printf("%.*s\r\n", (int)(c-remnant), remnant);
|
||||
remnant = c + 1;
|
||||
}
|
||||
printf("%s", remnant);
|
||||
}
|
||||
else
|
||||
printf("%s", buf);
|
||||
if (sim_log && (sim_log != stdout))
|
||||
fprintf (sim_log, "%s", buf);
|
||||
if (sim_deb && (sim_deb != stdout))
|
||||
|
@ -7986,7 +7995,7 @@ if (buf != stackbuf)
|
|||
|
||||
void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...)
|
||||
{
|
||||
if (sim_deb && (dptr->dctrl & dbits)) {
|
||||
if (sim_deb && dptr && (dptr->dctrl & dbits)) {
|
||||
|
||||
char stackbuf[STACKBUFSIZE];
|
||||
int32 bufsize = sizeof(stackbuf);
|
||||
|
|
2
scp.h
2
scp.h
|
@ -156,7 +156,7 @@ void sim_debug_bits (uint32 dbits, DEVICE* dptr, BITFIELD* bitdefs,
|
|||
void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...);
|
||||
#else
|
||||
void _sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...);
|
||||
#define sim_debug(dbits, dptr, ...) if (sim_deb && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else (void)0
|
||||
#define sim_debug(dbits, dptr, ...) if (sim_deb && dptr && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else (void)0
|
||||
#endif
|
||||
void fprint_stopped_gen (FILE *st, t_stat v, REG *pc, DEVICE *dptr);
|
||||
#define SCP_HELP_FLAT (1u << 31) /* Force flat help when prompting is not possible */
|
||||
|
|
Loading…
Add table
Reference in a new issue