/* tinyrl_history_entry.c */ #include "private.h" #include "lub/string.h" #include struct _tinyrl_history_entry { char *line; unsigned index; }; /*------------------------------------- */ static void entry_init(tinyrl_history_entry_t * this, const char *line, unsigned index) { this->line = lub_string_dup(line); this->index = index; } /*------------------------------------- */ static void entry_fini(tinyrl_history_entry_t * this) { lub_string_free(this->line); this->line = NULL; } /*------------------------------------- */ tinyrl_history_entry_t *tinyrl_history_entry_new(const char *line, unsigned index) { tinyrl_history_entry_t *this = malloc(sizeof(tinyrl_history_entry_t)); if (NULL != this) { entry_init(this, line, index); } return this; } /*------------------------------------- */ void tinyrl_history_entry_delete(tinyrl_history_entry_t * this) { entry_fini(this); free(this); } /*------------------------------------- */ const char *tinyrl_history_entry__get_line(const tinyrl_history_entry_t * this) { return this->line; } /*------------------------------------- */ unsigned tinyrl_history_entry__get_index(const tinyrl_history_entry_t * this) { return this->index; } /*------------------------------------- */