Command history: Save in file before each execution to avoid to lose it in case of...
[scilab.git] / scilab / modules / history_manager / includes / HistoryManager.h
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2007-2008 - INRIA - Allan CORNET
4 * Copyright (C) 2010 - DIGITEO - Allan CORNET
5 *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14 *
15 */
16
17 /*------------------------------------------------------------------------*/
18 #ifndef __HISTORYMANAGER_C_H__
19 #define __HISTORYMANAGER_C_H__
20 #include "BOOL.h"
21 #include "dynlib_history_manager.h"
22 /*------------------------------------------------------------------------*/
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 /*------------------------------------------------------------------------*/
27 /**
28 * get history manager state
29 * @return TRUE or FALSE
30 */
31 HISTORY_MANAGER_IMPEXP BOOL historyIsEnabled(void);
32
33 /**
34 * append lines to History manager
35 * @param array of string
36 * @param size of the array of string
37 * @return TRUE or FALSE
38 */
39 HISTORY_MANAGER_IMPEXP BOOL appendLinesToScilabHistory(char **lines_, int numberoflines);
40 // Note it is lines_ because line is a keyword for term stuff
41
42 /**
43 * add a line to History manager
44 * @param a line to add
45 * line isn't added if it is the same as previous (FALSE)
46 * @return TRUE or FALSE
47 */
48 HISTORY_MANAGER_IMPEXP BOOL appendLineToScilabHistory(char *line);
49
50 /**
51 * Display history
52 */
53 HISTORY_MANAGER_IMPEXP void displayScilabHistory(void);
54
55 /**
56 * save history in a file
57 * @param a filename if NULL saves in default filename
58 * @return TRUE or FALSE
59 */
60 HISTORY_MANAGER_IMPEXP BOOL writeScilabHistoryToFile(char* filename);
61
62 /**
63 * save history
64 * @return TRUE or FALSE
65 */
66 HISTORY_MANAGER_IMPEXP BOOL saveScilabHistoryToFile();
67
68 /**
69 * load history from a file
70 * @param a filename if NULL load from default filename
71 * @return TRUE or FALSE
72 */
73 HISTORY_MANAGER_IMPEXP BOOL loadScilabHistoryFromFile(char *filename);
74
75 /**
76 * set filename of history
77 * @param filename of history
78 * @return TRUE or FALSE
79 */
80 HISTORY_MANAGER_IMPEXP BOOL setFilenameScilabHistory(char *filename);
81
82 /**
83 * get filename of history
84 * @return a filename
85 */
86 HISTORY_MANAGER_IMPEXP char *getFilenameScilabHistory(void);
87
88 /**
89 * set default filename of history
90 * @return TRUE or FALSE
91 */
92 HISTORY_MANAGER_IMPEXP BOOL setDefaultFilenameScilabHistory(void);
93
94 /**
95 * get info about history file was or not truncated (too big)
96 * @return TRUE (truncated) or FALSE
97 */
98 HISTORY_MANAGER_IMPEXP BOOL isScilabHistoryTruncated(void);
99
100 /**
101 * reset history manager
102 */
103 HISTORY_MANAGER_IMPEXP BOOL resetScilabHistory(void);
104
105 /**
106 * Get all lines in history
107 * @return an array of string
108 */
109 HISTORY_MANAGER_IMPEXP char **getAllLinesOfScilabHistory(void);
110
111 /**
112 * Get numbers of lines in history
113 * size of array returned by getAllLinesOfScilabHistory
114 * @return int
115 */
116 HISTORY_MANAGER_IMPEXP int getSizeAllLinesOfScilabHistory(void);
117
118 /**
119 * set new token to search in history
120 * @param token (a string)
121 * @return TRUE or FALSE
122 */
123 HISTORY_MANAGER_IMPEXP BOOL setSearchedTokenInScilabHistory(char *token);
124
125 /**
126 * reset search in history
127 * @return TRUE or FALSE
128 */
129 HISTORY_MANAGER_IMPEXP BOOL resetSearchedTokenInScilabHistory(void);
130
131 /**
132 * get token searched in history
133 * @return token (a string)
134 */
135 HISTORY_MANAGER_IMPEXP char *getSearchedTokenInScilabHistory(void);
136
137 /**
138 * Get the previous line in Scilab history
139 * @return a line or NULL
140 * after an appendLine iterator go to end
141 */
142 HISTORY_MANAGER_IMPEXP char *getPreviousLineInScilabHistory(void);
143
144 /**
145 * Get the next line in Scilab history
146 * @return a line or NULL
147 * after an appendLine iterator go to end
148 */
149 HISTORY_MANAGER_IMPEXP char *getNextLineInScilabHistory(void);
150
151 /**
152 * Get numbers of lines in history
153 * @return number of lines
154 */
155 HISTORY_MANAGER_IMPEXP int getNumberOfLinesInScilabHistory(void);
156
157 /**
158 * set consecutive duplicate lines are added
159 * @param doit (TRUE or FALSE)
160 */
161 HISTORY_MANAGER_IMPEXP void setSaveConsecutiveDuplicateLinesInScilabHistory(BOOL doit);
162
163 /**
164 * indicate if consecutive duplicate lines are added
165 * @return TRUE or FALSE
166 */
167 HISTORY_MANAGER_IMPEXP BOOL getSaveConsecutiveDuplicateLinesInScilabHistory(void);
168
169 /**
170 * Set after how many lines history is saved
171 * @param number between 0 and Max
172 * default value is 0 (disabled)
173 */
174 HISTORY_MANAGER_IMPEXP void setAfterHowManyLinesScilabHistoryIsSaved(int num);
175
176 /**
177 * Get after how many lines history is saved
178 * @return number between 0 and Max
179 * default value is 0 (disabled)
180 */
181 HISTORY_MANAGER_IMPEXP int getAfterHowManyLinesScilabHistoryIsSaved(void);
182
183 /**
184 * Get the Nth Line in history
185 * @param N
186 * @return the Nth Line
187 */
188 HISTORY_MANAGER_IMPEXP char *getNthLineInScilabHistory(int N);
189
190 /**
191 * delete the Nth Line in history
192 * @param N
193 * @return TRUE or FALSE
194 */
195 HISTORY_MANAGER_IMPEXP BOOL deleteNthLineScilabHistory(int N);
196
197 /**
198 * get number of lines of history
199 * @return a number >= 0
200 */
201 HISTORY_MANAGER_IMPEXP int getSizeScilabHistory(void);
202
203 /**
204 */
205 HISTORY_MANAGER_IMPEXP BOOL setSizeMaxScilabHistory(int nbLinesMax);
206
207 /**
208 */
209 int getSizeMaxScilabHistory(void);
210
211
212 /*------------------------------------------------------------------------*/
213 #ifdef __cplusplus
214 }
215 #endif
216 /*------------------------------------------------------------------------*/
217 #endif /* __HISTORYMANAGER_C_H__ */
218 /*------------------------------------------------------------------------*/