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/ioctl.h>
|
||||
#include <signal.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "nest/bird.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
|
||||
term_read(void)
|
||||
{
|
||||
|
@ -208,7 +221,7 @@ term_read(void)
|
|||
printf("%s\n",buf);
|
||||
}
|
||||
|
||||
if (strchr(buf, '?'))
|
||||
if (buf[lastnb(buf)] == '?')
|
||||
{
|
||||
printf("\n");
|
||||
cmd_help(buf, strlen(buf));
|
||||
|
|
Loading…
Reference in a new issue