mirror of https://github.com/ArduPilot/ardupilot
Use strtok_r rather than strtok. Saves a stack frame, two bytes of global, and fixes backwards compatibility with older avr-libc versions.
Fixes issue #131 git-svn-id: https://arducopter.googlecode.com/svn/trunk@554 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
4b09c9fade
commit
6838829428
|
@ -32,6 +32,7 @@ Menu::run(void)
|
||||||
uint8_t len, i, ret;
|
uint8_t len, i, ret;
|
||||||
uint8_t argc;
|
uint8_t argc;
|
||||||
int c;
|
int c;
|
||||||
|
char *s;
|
||||||
|
|
||||||
// loop performing commands
|
// loop performing commands
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
@ -74,10 +75,10 @@ Menu::run(void)
|
||||||
|
|
||||||
// split the input line into tokens
|
// split the input line into tokens
|
||||||
argc = 0;
|
argc = 0;
|
||||||
_argv[argc++].str = strtok(_inbuf, " ");
|
_argv[argc++].str = strtok_r(_inbuf, " ", &s);
|
||||||
// XXX should an empty line by itself back out of the current menu?
|
// XXX should an empty line by itself back out of the current menu?
|
||||||
while (argc <= MENU_ARGS_MAX) {
|
while (argc <= MENU_ARGS_MAX) {
|
||||||
_argv[argc].str = strtok(NULL, " ");
|
_argv[argc].str = strtok_r(NULL, " ", &s);
|
||||||
if ('\0' == _argv[argc].str)
|
if ('\0' == _argv[argc].str)
|
||||||
break;
|
break;
|
||||||
_argv[argc].i = atol(_argv[argc].str);
|
_argv[argc].i = atol(_argv[argc].str);
|
||||||
|
|
Loading…
Reference in New Issue