diff --git a/src/libavrdude.h b/src/libavrdude.h index 460f66fd..4e22c5ed 100644 --- a/src/libavrdude.h +++ b/src/libavrdude.h @@ -283,7 +283,6 @@ typedef struct avrpart { int lineno; /* config file line number */ } AVRPART; -#define AVR_MEMDESCLEN 64 typedef struct avrmem { const char *desc; /* memory description ("flash", "eeprom", etc) */ LISTID comments; // Used by developer options -p*/[ASsr...] diff --git a/src/term.c b/src/term.c index 839e5608..512e5a3c 100644 --- a/src/term.c +++ b/src/term.c @@ -252,7 +252,7 @@ static int cmd_dump(PROGRAMMER * pgm, struct avrpart * p, } enum { read_size = 256 }; - static char prevmem[AVR_MEMDESCLEN] = {0x00}; + static const char *prevmem = ""; char * memtype = argv[1]; AVRMEM * mem = avr_locate_mem(p, memtype); if (mem == NULL) { @@ -282,7 +282,7 @@ static int cmd_dump(PROGRAMMER * pgm, struct avrpart * p, // Get no. bytes to read if present static int len = read_size; if (argc >= 3) { - memset(prevmem, 0x00, sizeof(prevmem)); + prevmem = cache_string(""); if (strcmp(argv[argc - 1], "...") == 0) { if (argc == 3) addr = 0; @@ -303,8 +303,7 @@ static int cmd_dump(PROGRAMMER * pgm, struct avrpart * p, if (strncmp(prevmem, memtype, strlen(memtype)) != 0) { addr = 0; len = read_size; - strncpy(prevmem, memtype, sizeof(prevmem) - 1); - prevmem[sizeof(prevmem) - 1] = 0; + prevmem = cache_string(mem->desc); } if (addr >= maxsize) addr = 0; // Wrap around