Replace string arrays with const char * and allocated space (part 1)

This commit deals with default_programmer, default_serial, default_parallel
and default_spi. The long term objective is to remove all fixed-size buffers
from the structures that lexer.l and config_gram.y deal with.
This commit is contained in:
Stefan Rueger 2022-08-09 21:45:04 +01:00
parent 22c4dbf23e
commit 7375477f70
No known key found for this signature in database
GPG Key ID: B0B4F1FD86B1EC55
5 changed files with 21 additions and 26 deletions

View File

@ -33,10 +33,10 @@
#include "config_gram.h"
char default_programmer[MAX_STR_CONST];
char default_parallel[PATH_MAX];
char default_serial[PATH_MAX];
char default_spi[PATH_MAX];
const char *default_programmer;
const char *default_parallel;
const char *default_serial;
const char *default_spi;
double default_bitclock;
LISTID string_list;

View File

@ -30,8 +30,6 @@
#endif
#define MAX_STR_CONST 1024
enum { V_NONE, V_NUM, V_NUM_REAL, V_STR };
typedef struct value_t {
int type;

View File

@ -246,26 +246,22 @@ def :
part_def TKN_SEMI |
K_DEFAULT_PROGRAMMER TKN_EQUAL TKN_STRING TKN_SEMI {
strncpy(default_programmer, $3->value.string, MAX_STR_CONST);
default_programmer[MAX_STR_CONST-1] = 0;
default_programmer = cache_string($3->value.string);
free_token($3);
} |
K_DEFAULT_PARALLEL TKN_EQUAL TKN_STRING TKN_SEMI {
strncpy(default_parallel, $3->value.string, PATH_MAX);
default_parallel[PATH_MAX-1] = 0;
default_parallel = cache_string($3->value.string);
free_token($3);
} |
K_DEFAULT_SERIAL TKN_EQUAL TKN_STRING TKN_SEMI {
strncpy(default_serial, $3->value.string, PATH_MAX);
default_serial[PATH_MAX-1] = 0;
default_serial = cache_string($3->value.string);
free_token($3);
} |
K_DEFAULT_SPI TKN_EQUAL TKN_STRING TKN_SEMI {
strncpy(default_spi, $3->value.string, PATH_MAX);
default_spi[PATH_MAX-1] = 0;
default_spi = cache_string($3->value.string);
free_token($3);
} |

View File

@ -992,10 +992,10 @@ void walk_programmer_types(/*LISTID programmer_types,*/ walk_programmer_types_cb
extern LISTID part_list;
extern LISTID programmers;
extern char default_programmer[];
extern char default_parallel[];
extern char default_serial[];
extern char default_spi[];
extern const char *default_programmer;
extern const char *default_parallel;
extern const char *default_serial;
extern const char *default_spi;
extern double default_bitclock;
/* This name is fixed, it's only here for symmetry with

View File

@ -314,10 +314,11 @@ int main(int argc, char * argv [])
else
progname = argv[0];
default_parallel[0] = 0;
default_serial[0] = 0;
default_spi[0] = 0;
default_bitclock = 0.0;
default_programmer = "";
default_parallel = "";
default_serial = "";
default_spi = "";
default_bitclock = 0.0;
init_config();
@ -351,7 +352,7 @@ int main(int argc, char * argv [])
quell_progress = 0;
exitspecs = NULL;
pgm = NULL;
programmer = default_programmer;
programmer = cfg_strdup("main()", default_programmer);
verbose = 0;
baudrate = 0;
bitclock = 0.0;
@ -755,7 +756,7 @@ int main(int argc, char * argv [])
int dev_opts = 0;
// Developer option -c <wildcard>/[ASsrt] prints programmer description(s) and exits
if(programmer && (strcmp(programmer, "*") == 0 || strchr(programmer, '/'))) {
dev_output_pgm_defs(programmer);
dev_output_pgm_defs(cfg_strdup("main()", programmer));
dev_opts = 1;
}
// Developer option -p <wildcard>/[dASsrcow*t] prints part description(s) and exits
@ -849,11 +850,11 @@ int main(int argc, char * argv [])
switch (pgm->conntype)
{
case CONNTYPE_PARALLEL:
port = default_parallel;
port = cfg_strdup("main()", default_parallel);
break;
case CONNTYPE_SERIAL:
port = default_serial;
port = cfg_strdup("main()", default_serial);
break;
case CONNTYPE_USB: