+1999-10-25 Lars Gullik Bjønnes <larsbj@lyx.org>
+
+ * src/BufferView.C (restorePosition): don't do anything if the
+ backstack is empty.
+
+ * src/BackStack.h: added member empty, use this to test if there
+ is anything to pop...
+
1999-10-25 Juergen Vigna <jug@sad.it>
* forms/form1.fd +
// -*- C++ -*-
/* This file is part of
-* ======================================================
-*
-* LyX, The Document Processor
-*
-* Copyright (C) 1997-1998 The LyX Team.
-*
-*======================================================*/
+ * ======================================================
+ *
+ * LyX, The Document Processor
+ *
+ * Copyright (C) 1997-1999 The LyX Team.
+ *
+ * ======================================================*/
-#ifndef _BACK_STACK_H
-#define _BACK_STACK_H
+#ifndef BACK_STACK_H
+#define BACK_STACK_H
#include "LString.h"
/// Cursor x-position
int x;
/// Cursor y-position
- int y;
+ int y;
};
///
- BackStack(int n) : imax(n) {
- item = new BackStackItem[imax];
- i = 0;
- }
+ BackStack(int n) : item(new BackStackItem[n]) , imax(n), i(0) {}
///
~BackStack() {
delete[] item;
}
///
void push(string f, int x, int y) {
- if (i<imax)
+ if (i < imax)
item[i++].set(f, x, y);
}
///
- string &pop(int *x, int *y) {
- if (i>0) i--;
+ string & pop(int *x, int *y) {
+ if (i > 0) i--;
*x = item[i].x;
*y = item[i].y;
return item[i].fname;
}
+ ///
+ bool empty() const {
+ return i == 0;
+ }
private:
///
BackStackItem *item;
void BufferView::restorePosition()
{
+ if (backstack->empty()) return;
+
int x, y;
string fname = backstack->pop(&x, &y);