diff options
Diffstat (limited to 'util/fbrun/FbRun.cc')
-rw-r--r-- | util/fbrun/FbRun.cc | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/util/fbrun/FbRun.cc b/util/fbrun/FbRun.cc index 09f6075..a9e155d 100644 --- a/util/fbrun/FbRun.cc +++ b/util/fbrun/FbRun.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: FbRun.cc,v 1.15 2003/07/25 11:17:41 rathnor Exp $ | 22 | // $Id: FbRun.cc,v 1.16 2003/08/24 23:47:31 fluxgen Exp $ |
23 | 23 | ||
24 | #include "FbRun.hh" | 24 | #include "FbRun.hh" |
25 | 25 | ||
@@ -87,34 +87,34 @@ void FbRun::run(const std::string &command) { | |||
87 | // save command history to file | 87 | // save command history to file |
88 | if (m_runtext.size() != 0) { // no need to save empty command | 88 | if (m_runtext.size() != 0) { // no need to save empty command |
89 | 89 | ||
90 | // don't allow duplicates into the history file, first | 90 | // don't allow duplicates into the history file, first |
91 | // look for a duplicate | 91 | // look for a duplicate |
92 | if (m_current_history_item < m_history.size() | 92 | if (m_current_history_item < m_history.size() |
93 | && m_runtext == m_history[m_current_history_item]) { | 93 | && m_runtext == m_history[m_current_history_item]) { |
94 | // m_current_history_item is the duplicate | 94 | // m_current_history_item is the duplicate |
95 | } else { | 95 | } else { |
96 | int i; | 96 | int i; |
97 | for (i = 0; i < m_history.size(); i++) | 97 | for (i = 0; i < m_history.size(); i++) |
98 | if (m_runtext == m_history[i]) break; | 98 | if (m_runtext == m_history[i]) break; |
99 | m_current_history_item = i; | 99 | m_current_history_item = i; |
100 | } | 100 | } |
101 | 101 | ||
102 | // now m_current_history_item points at the duplicate, or | 102 | // now m_current_history_item points at the duplicate, or |
103 | // at m_history.size() if no duplicate | 103 | // at m_history.size() if no duplicate |
104 | fstream inoutfile(m_history_file.c_str(), ios::in|ios::out); | 104 | fstream inoutfile(m_history_file.c_str(), ios::in|ios::out); |
105 | if (inoutfile) { | 105 | if (inoutfile) { |
106 | int i = 0; | 106 | int i = 0; |
107 | // read past history items before current | 107 | // read past history items before current |
108 | for (string line; !inoutfile.eof() && i < m_current_history_item; i++) | 108 | for (string line; !inoutfile.eof() && i < m_current_history_item; i++) |
109 | getline(inoutfile, line); | 109 | getline(inoutfile, line); |
110 | // write the history items that come after current | 110 | // write the history items that come after current |
111 | for (i++; i < m_history.size(); i++) | 111 | for (i++; i < m_history.size(); i++) |
112 | inoutfile<<m_history[i]<<endl; | 112 | inoutfile<<m_history[i]<<endl; |
113 | // and append the current one back to the end | 113 | // and append the current one back to the end |
114 | inoutfile<<m_runtext<<endl; | 114 | inoutfile<<m_runtext<<endl; |
115 | inoutfile.close(); | 115 | inoutfile.close(); |
116 | } else | 116 | } else |
117 | cerr<<"FbRun Warning: Can't write command history to file: "<<m_history_file<<endl; | 117 | cerr<<"FbRun Warning: Can't write command history to file: "<<m_history_file<<endl; |
118 | } | 118 | } |
119 | FbTk::App::instance()->end(); // end application | 119 | FbTk::App::instance()->end(); // end application |
120 | m_end = true; // mark end of processing | 120 | m_end = true; // mark end of processing |