From 38a0448e0188a18c37495d5410fdd9e3cc9f10c4 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Fri, 19 Apr 2013 12:55:19 -0700 Subject: [PATCH] Fixed declaration error in ibm1130 simulator and properly exported the newly renamed routine sim_sub_args. --- Ibm1130/ibm1130_cr.c | 9 +++++---- scp.c | 7 +++---- scp.h | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Ibm1130/ibm1130_cr.c b/Ibm1130/ibm1130_cr.c index 3feeeff9..d436625a 100644 --- a/Ibm1130/ibm1130_cr.c +++ b/Ibm1130/ibm1130_cr.c @@ -723,7 +723,6 @@ static CPCODE cardcode_026C[] = /* 026 commercial */ }; extern int cgi; -extern void sub_args (char *instr, char *tmpbuf, int32 maxstr, int32 nargs, char *arg[]); static int16 ascii_to_card[256]; @@ -735,7 +734,7 @@ static int any_punched = 0; #define MAXARGLEN 80 /* max length of a saved attach command argument */ #define MAXARGS 10 /* max number of arguments to save */ -static char list_save[MAXARGS][MAXARGLEN], *list_arg[MAXARGLEN]; +static char list_save[MAXARGS][MAXARGLEN], *list_arg[MAXARGLEN+1]; static int list_nargs = 0; static char* (*tab_proc)(char* str, int width) = NULL; /* tab reformatting routine */ static int tab_width = 8; @@ -1276,7 +1275,7 @@ static void checkdeck (void) static t_bool nextdeck (void) { - char buf[200], tmpbuf[200], *fname, *c, quote; + char buf[200], *fname, *c, quote; int code; long fpos; @@ -1390,7 +1389,7 @@ static t_bool nextdeck (void) break; } - sub_args(buf, tmpbuf, sizeof(buf), list_nargs, list_arg); /* substitute in stuff from the attach command line */ + sim_sub_args(buf, sizeof(buf), list_arg); /* substitute in stuff from the attach command line */ c = buf; /* pick filename from string */ @@ -1602,6 +1601,8 @@ static t_stat cr_attach (UNIT *uptr, char *cptr) list_arg[list_nargs] = list_save[list_nargs]; /* set pointer to permanent storage location */ strncpy(list_arg[list_nargs], arg, MAXARGLEN); /* store copy */ } + list_arg[list_nargs] = NULL; /* NULL terminate the end of the argument list */ + if (list_nargs <= 0) /* need at least 1 */ return SCPE_2FARG; diff --git a/scp.c b/scp.c index bcb3ff7f..89874c0e 100644 --- a/scp.c +++ b/scp.c @@ -432,7 +432,6 @@ t_stat dep_addr (int32 flag, char *cptr, t_addr addr, DEVICE *dptr, UNIT *uptr, int32 dfltinc); void fprint_fields (FILE *stream, t_value before, t_value after, BITFIELD* bitdefs); t_stat step_svc (UNIT *ptr); -void sub_args (char *instr, size_t instr_size, char *do_arg[]); t_stat shift_args (char *do_arg[], size_t arg_count); t_stat set_on (int32 flag, char *cptr); t_stat set_verify (int32 flag, char *cptr); @@ -927,7 +926,7 @@ while (stat != SCPE_EXIT) { /* in case exit */ } if (*cptr == 0) /* ignore blank */ continue; - sub_args (cbuf, sizeof(cbuf), argv); + sim_sub_args (cbuf, sizeof(cbuf), argv); if (sim_log) /* log cmd */ fprintf (sim_log, "%s%s\n", sim_prompt, cptr); cptr = get_glyph (cptr, gbuf, 0); /* get command glyph */ @@ -1574,7 +1573,7 @@ do { ocptr = cptr = read_line (cbuf, sizeof(cbuf), fpin);/* get cmd line */ sim_goto_line[sim_do_depth] += 1; } - sub_args (cbuf, sizeof(cbuf), do_arg); /* substitute args */ + sim_sub_args (cbuf, sizeof(cbuf), do_arg); /* substitute args */ if (cptr == NULL) { /* EOF? */ stat = SCPE_OK; /* set good return */ break; @@ -1732,7 +1731,7 @@ return stat | SCPE_NOMESSAGE; /* suppress message sinc untouched. */ -void sub_args (char *instr, size_t instr_size, char *do_arg[]) +void sim_sub_args (char *instr, size_t instr_size, char *do_arg[]) { char gbuf[CBUFSIZE]; char *ip = instr, *op, *ap, *oend, *istart, *tmpbuf; diff --git a/scp.h b/scp.h index d5f773fc..40788ed2 100644 --- a/scp.h +++ b/scp.h @@ -124,6 +124,7 @@ DEVICE *find_dev (char *ptr); DEVICE *find_unit (char *ptr, UNIT **uptr); DEVICE *find_dev_from_unit (UNIT *uptr); t_stat sim_register_internal_device (DEVICE *dptr); +void sim_sub_args (char *in_str, size_t in_str_size, char *do_arg[]); REG *find_reg (char *ptr, char **optr, DEVICE *dptr); CTAB *find_ctab (CTAB *tab, char *gbuf); C1TAB *find_c1tab (C1TAB *tab, char *gbuf);