Fix birdcl questionmark handling

Fix handling of questionmark handling in the bird light client. The
questionmark should display help when it is the last non-blank character on
command line. Otherwise the questionmark does not have any special meaning
and it could be a part of a pattern.
This commit is contained in:
Tomas Hlavacek 2013-03-19 18:02:40 +01:00
parent 8322ecde12
commit ce13485374

View file

@ -18,6 +18,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <signal.h> #include <signal.h>
#include <ctype.h>
#include "nest/bird.h" #include "nest/bird.h"
#include "lib/resource.h" #include "lib/resource.h"
@ -177,6 +178,18 @@ print_prompt(void)
} }
static int lastnb(char *str)
{
int i;
for (i=strlen(str)-1; i>0; i--)
{
if(!isblank(str[i]))
return i;
}
return 0;
}
static void static void
term_read(void) term_read(void)
{ {
@ -208,7 +221,7 @@ term_read(void)
printf("%s\n",buf); printf("%s\n",buf);
} }
if (strchr(buf, '?')) if (buf[lastnb(buf)] == '?')
{ {
printf("\n"); printf("\n");
cmd_help(buf, strlen(buf)); cmd_help(buf, strlen(buf));