small backstack fix

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@244 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 1999-10-25 18:52:23 +00:00
parent a77033585c
commit 3fa37dc5a4
3 changed files with 28 additions and 17 deletions

View File

@ -1,3 +1,11 @@
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 +

View File

@ -1,15 +1,15 @@
// -*- 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"
@ -30,29 +30,30 @@ public:
/// 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;

View File

@ -1514,6 +1514,8 @@ void BufferView::savePosition()
void BufferView::restorePosition()
{
if (backstack->empty()) return;
int x, y;
string fname = backstack->pop(&x, &y);