From: Lars Gullik Bjønnes Date: Mon, 25 Oct 1999 18:52:23 +0000 (+0000) Subject: small backstack fix X-Git-Tag: 1.6.10~22575 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=3fa37dc5a4019f48645b2cdc1679813ce924b36c;p=features.git small backstack fix git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@244 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/ChangeLog b/ChangeLog index 2dac56340f..7ebad1a9da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +1999-10-25 Lars Gullik Bjønnes + + * 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 * forms/form1.fd + diff --git a/src/BackStack.h b/src/BackStack.h index f9cea923cd..fa21491cdf 100644 --- a/src/BackStack.h +++ b/src/BackStack.h @@ -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 (i0) 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; diff --git a/src/BufferView.C b/src/BufferView.C index 2aa07c8936..a9abd9ff9c 100644 --- a/src/BufferView.C +++ b/src/BufferView.C @@ -1514,6 +1514,8 @@ void BufferView::savePosition() void BufferView::restorePosition() { + if (backstack->empty()) return; + int x, y; string fname = backstack->pop(&x, &y);