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