- minimum autoconf 2.59 is now required and verified - due to issues with AS_HELP_STRING
- native win32 now handles WSAECONNRESET - no longer exits openocd - qCRC packet now works correctly under cygwin (gdb compare-sections command) - removed __USE_GNU define from gdbserver.c - gdb qSupported packet is now handled, with this we are able to tell gdb packet size, memory map of target - added new target script gdb_program_config - called before gdb flash programming - new gdb server command gdb_memory_map (enable|disable> - default is disable - new gdb server command gdb_flash_program (enable|disable> - default is disable - gdb flash programming supported - vFlash packets - image_elf_read_section now does not clear any remaining data, this was causing the gdb checksum to fail with certain files - reformat of usbprog.c - memory leak in command_print fixed - updated texi doc to include new commands - added gdb programming section to docs git-svn-id: svn://svn.berlios.de/openocd/trunk@246 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
@@ -200,25 +200,24 @@ int parse_line(char *line, char *words[], int max_words)
|
||||
/* we're inside a word or quote, and reached its end*/
|
||||
if (word_start)
|
||||
{
|
||||
int len;
|
||||
char *word_end=p;
|
||||
/* This will handle extra whitespace within quotes */
|
||||
while (isspace(*word_start)&&(word_start<word_end))
|
||||
word_start++;
|
||||
while (isspace(*(word_end-1))&&(word_start<word_end))
|
||||
word_end--;
|
||||
|
||||
len = word_end - word_start;
|
||||
|
||||
if (len>0)
|
||||
{
|
||||
/* copy the word */
|
||||
memcpy(words[nwords] = malloc(len + 1), word_start, len);
|
||||
/* add terminating NUL */
|
||||
words[nwords++][len] = 0;
|
||||
}
|
||||
int len;
|
||||
char *word_end=p;
|
||||
|
||||
/* This will handle extra whitespace within quotes */
|
||||
while (isspace(*word_start)&&(word_start<word_end))
|
||||
word_start++;
|
||||
while (isspace(*(word_end-1))&&(word_start<word_end))
|
||||
word_end--;
|
||||
len = word_end - word_start;
|
||||
|
||||
if (len>0)
|
||||
{
|
||||
/* copy the word */
|
||||
memcpy(words[nwords] = malloc(len + 1), word_start, len);
|
||||
/* add terminating NUL */
|
||||
words[nwords++][len] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* we're done parsing the line */
|
||||
if (!*p)
|
||||
break;
|
||||
@@ -226,9 +225,9 @@ int parse_line(char *line, char *words[], int max_words)
|
||||
/* skip over trailing quote or whitespace*/
|
||||
if (inquote || isspace(*p))
|
||||
p++;
|
||||
while (isspace(*p))
|
||||
p++;
|
||||
|
||||
while (isspace(*p))
|
||||
p++;
|
||||
|
||||
inquote = 0;
|
||||
word_start = 0;
|
||||
}
|
||||
@@ -267,14 +266,23 @@ void command_print(command_context_t *context, char *format, ...)
|
||||
{
|
||||
/* increase buffer until it fits the whole string */
|
||||
if (!(p = realloc(buffer, size += 4096)))
|
||||
{
|
||||
/* gotta free up */
|
||||
if (buffer)
|
||||
free(buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
buffer = p;
|
||||
}
|
||||
|
||||
/* vsnprintf failed */
|
||||
if (n < 0)
|
||||
{
|
||||
if (buffer)
|
||||
free(buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
p = buffer;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user