Skip to content

Commit

Permalink
Added example for hiding secret information
Browse files Browse the repository at this point in the history
  • Loading branch information
cogutvalera committed Oct 18, 2018
1 parent 4784fe2 commit 3cd9894
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions examples/cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "editline.h"
#include <string.h>
#include <regex.h>

#define HISTORY "/tmp/.cli-history"

Expand Down Expand Up @@ -116,6 +117,33 @@ el_status_t do_suspend(void)
return CSstay;
}

static int my_rl_check_secret(const char* source)
{
const char* pattern = (char *)"^unlock\\s";
regex_t regex;

int reti;
int rez = 0;

if (!pattern || !source)
return rez;

/* Compile regular expression */
reti = regcomp(&regex, pattern, 0);
if (reti) // If couldn't compile regex
return rez;

/* Execute regular expression */
reti = regexec(&regex, source, 0, NULL, 0);
if (!reti) // If regex match
rez = 1;

/* Free memory allocated to the pattern buffer by regcomp() */
regfree(&regex);

return rez;
}

int main(void)
{
char *line;
Expand All @@ -124,6 +152,7 @@ int main(void)
/* Setup callbacks */
rl_set_complete_func(&my_rl_complete);
rl_set_list_possib_func(&my_rl_list_possib);
rl_set_check_secret_func(&my_rl_check_secret);
el_bind_key('?', list_possible);
el_bind_key(CTL('C'), do_break);
el_bind_key(CTL('D'), do_exit);
Expand Down

0 comments on commit 3cd9894

Please sign in to comment.