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:
parent
8322ecde12
commit
ce13485374
1 changed files with 14 additions and 1 deletions
|
@ -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));
|
||||||
|
|
Loading…
Reference in a new issue