}
//Readline functions
-void cleanReadLine(CleanString prompt, int history, CleanString *result, int *eof)
+void cleanReadLine(
+ CleanString prompt, int history, CleanString *result, int *eof)
{
char *cs_prompt = cleanStringToCString(prompt);
}
//Moving Around the History List
+int cleanHistorySetPos(int pos)
+{
+ return history_set_pos(pos);
+}
+
+void cleanPreviousHistory(
+ CleanString *line, CleanString *timestamp, int *null)
+{
+ *null = 0;
+ HIST_ENTRY *entry = previous_history();
+ char *cs_line = "";
+ char *cs_stamp = "";
+ if(entry == NULL){
+ *null = 1;
+ } else {
+ *null = 0;
+ cs_line = entry->line;
+ cs_stamp = entry->timestamp;
+ }
+
+ CleanStringVariable(cleanLine, strlen(cs_line));
+ *line = (CleanString) cleanLine;
+ memcpy(CleanStringCharacters(cleanLine), cs_line, strlen(cs_line));
+ CleanStringLength(cleanLine) = strlen(cs_line);
+
+ CleanStringVariable(cleanTimestamp, strlen(cs_stamp));
+ *timestamp = (CleanString) cleanTimestamp;
+ memcpy(CleanStringCharacters(cleanTimestamp), cs_stamp, strlen(cs_stamp));
+ CleanStringLength(cleanTimestamp) = strlen(cs_stamp);
+}
+
+void cleanNextHistory(CleanString *line, CleanString *timestamp, int *null)
+{
+ *null = 0;
+ HIST_ENTRY *entry = next_history();
+ char *cs_line = "";
+ char *cs_stamp = "";
+ if(entry == NULL){
+ *null = 1;
+ } else {
+ *null = 0;
+ cs_line = entry->line;
+ cs_stamp = entry->timestamp;
+ }
+
+ CleanStringVariable(cleanLine, strlen(cs_line));
+ *line = (CleanString) cleanLine;
+ memcpy(CleanStringCharacters(cleanLine), cs_line, strlen(cs_line));
+ CleanStringLength(cleanLine) = strlen(cs_line);
+
+ CleanStringVariable(cleanTimestamp, strlen(cs_stamp));
+ *timestamp = (CleanString) cleanTimestamp;
+ memcpy(CleanStringCharacters(cleanTimestamp), cs_stamp, strlen(cs_stamp));
+ CleanStringLength(cleanTimestamp) = strlen(cs_stamp);
+}
//Searching the History List
int cleanHistorySearch(CleanString s, int dir)
char *cs_path = cleanStringToCString(path);
int errno = read_history(cs_path);
free(cs_path);
- return errno;
+ return errno == 0;
}
int cleanReadHistoryRange(CleanString path, int from, int to)
char *cs_path = cleanStringToCString(path);
int errno = read_history_range(cs_path, from, to);
free(cs_path);
- return errno;
+ return errno == 0;
}
int cleanWriteHistory(CleanString path)
char *cs_path = cleanStringToCString(path);
int errno = write_history(cs_path);
free(cs_path);
- return errno;
+ return errno == 0;
}
int cleanAppendHistory(int n, CleanString path)
char *cs_path = cleanStringToCString(path);
int errno = append_history(n, cs_path);
free(cs_path);
- return errno;
+ return errno == 0;
}
int cleanHistoryTruncateFile(CleanString path, int nlines)
char *cs_path = cleanStringToCString(path);
int errno = history_truncate_file(cs_path, nlines);
free(cs_path);
- return errno;
+ return errno == 0;
}