aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2004-02-28 10:43:20 (GMT)
committerfluxgen <fluxgen>2004-02-28 10:43:20 (GMT)
commitbd7c2ecf075c567443aeb3f5e010566403652444 (patch)
treee8d27dd6d688df8d7bd08c638aa276e2c02a7791
parent992caf2ef7da2de5a3634ffd860de0bd69220c9e (diff)
downloadfluxbox-bd7c2ecf075c567443aeb3f5e010566403652444.zip
fluxbox-bd7c2ecf075c567443aeb3f5e010566403652444.tar.bz2
fixed invinite loop, patch from Mathias Gumz
-rw-r--r--util/fbrun/FbRun.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/util/fbrun/FbRun.cc b/util/fbrun/FbRun.cc
index 47e35bf..e32e101 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.24 2004/02/25 18:37:47 fluxgen Exp $ 22// $Id: FbRun.cc,v 1.25 2004/02/28 10:43:20 fluxgen Exp $
23 23
24#include "FbRun.hh" 24#include "FbRun.hh"
25 25
@@ -314,14 +314,15 @@ void FbRun::lastHistoryItem() {
314} 314}
315 315
316void FbRun::tabCompleteHistory() { 316void FbRun::tabCompleteHistory() {
317 if (m_current_history_item == 0) { 317 if (m_current_history_item == 0 || m_history.empty() ) {
318 XBell(m_display, 0); 318 XBell(m_display, 0);
319 } else { 319 } else {
320 unsigned int nr= 0;
320 int history_item = m_current_history_item - 1; 321 int history_item = m_current_history_item - 1;
321 string prefix = text().substr(0, cursorPosition()); 322 string prefix = text().substr(0, cursorPosition());
322 while (history_item != m_current_history_item ) { 323 while (history_item != m_current_history_item && nr++ < m_history.size()) {
323 if (history_item == -1 ) 324 if (history_item <= -1 )
324 history_item+= m_history.size(); 325 history_item= m_history.size() - 1;
325 if (m_history[history_item].find(prefix) == 0) { 326 if (m_history[history_item].find(prefix) == 0) {
326 m_current_history_item = history_item; 327 m_current_history_item = history_item;
327 setText(m_history[m_current_history_item]); 328 setText(m_history[m_current_history_item]);