diff options
author | James Booth <boothj5@gmail.com> | 2013-01-28 01:23:37 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-01-28 01:23:37 +0000 |
commit | 80e62cfa5fc4635f8f1f96467520da5bc05ef6cc (patch) | |
tree | 994967661814cb04b362c1c921154179529ff9cb /src/command_history.c | |
parent | a63d0aff98a761cd4823cba03ece5b16f3e52458 (diff) | |
download | profani-tty-80e62cfa5fc4635f8f1f96467520da5bc05ef6cc.tar.gz |
Renamed history.c -> command_history.c
Included in command.h
Diffstat (limited to 'src/command_history.c')
-rw-r--r-- | src/command_history.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/command_history.c b/src/command_history.c new file mode 100644 index 00000000..1b918a95 --- /dev/null +++ b/src/command_history.c @@ -0,0 +1,69 @@ +/* + * command_history.c + * + * Copyright (C) 2012, 2013 James Booth <boothj5@gmail.com> + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include "prof_history.h" + +#define MAX_HISTORY 100 + +static PHistory history; + +void _stringify_input(char *inp, int size, char *string); + +void +history_init(void) +{ + history = p_history_new(MAX_HISTORY); +} + +void +history_append(char *inp) +{ + p_history_append(history, inp); +} + +char * +history_previous(char *inp, int *size) +{ + char inp_str[*size + 1]; + _stringify_input(inp, *size, inp_str); + + return p_history_previous(history, inp_str); +} + +char * +history_next(char *inp, int *size) +{ + char inp_str[*size + 1]; + _stringify_input(inp, *size, inp_str); + + return p_history_next(history, inp_str); +} + +void +_stringify_input(char *inp, int size, char *string) +{ + int i; + for (i = 0; i < size; i++) { + string[i] = inp[i]; + } + string[size] = '\0'; +} |