+void cleanInitNewHistoryState(int offset, int flags, int num){
+ printf("Initializing: %d, %d, %d\n", offset, flags, num);
+ if(history_state != NULL){
+ free(history_state);
+ }
+ history_state = (HISTORY_STATE *)malloc(sizeof(HISTORY_STATE));
+ if(history_state == NULL){
+ printf("Not enough memory...\n");
+ exit(1);
+ }
+ HIST_ENTRY **entries = (HIST_ENTRY **)malloc(sizeof(HIST_ENTRY*)*num);
+ if(entries == NULL){
+ printf("Not enough memory...\n");
+ exit(1);
+ }
+ for(int i = 0; i<num; i++){
+ entries[i] = (HIST_ENTRY *)malloc(sizeof(HIST_ENTRY));
+ }
+ history_state->offset = offset;
+ history_state->entries = entries;
+ history_state->length = num;
+ history_state->size = num;
+ history_state->flags = 0;
+ printf("Initialization done\n");
+}
+
+void cleanSetNewHistoryEntry(int i, CleanString line, CleanString timestamp){
+ char *cs_line = cleanStringToCString(line);
+ char *cs_timestamp = cleanStringToCString(timestamp);
+ printf("adding: %d, %s, %s\n", i, cs_line, cs_timestamp);
+ history_state->entries[i]->line = cs_line;
+ history_state->entries[i]->timestamp = cs_timestamp;
+ printf("done adding: %d, %s, %s\n", i, cs_line, cs_timestamp);
+}
+
+void cleanCommitSetHistory(void){
+ printf("commit\n");
+ history_set_history_state(history_state);
+ printf("committed\n");
+}
+