/** @file nav.c
* @brief Navigation
*
* Example:
*
* pop
* push /view_name
*
*
* Possible navigation commands:
* * push - Push "view_name" view to new level of path and change
* current path to it.
* * pop [num] - Pop up path levels. Optional "num" argument specifies number
* of levels to pop. Default is 1.
* * top - Pop up to first path level.
* * exit - Exit klish.
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int klish_nav(kcontext_t *context)
{
kparg_t *parg = NULL;
const kentry_t *entry = NULL;
const char *value = NULL;
const char *command_name = NULL;
parg = kcontext_candidate_parg(context);
entry = kparg_entry(parg);
value = kparg_value(parg);
command_name = kentry_value(entry);
if (!command_name)
command_name = kentry_name(entry);
if (!command_name)
return -1;
return faux_str_casecmp(value, command_name);
}