//
// aegis - project change supervisor
// Copyright (C) 2001, 2003-2006, 2008, 2014 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or (at
// your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
#include
patch_context_ty::patch_context_ty(const input::pointer &arg) :
in(arg)
{
}
patch_context_ty::~patch_context_ty()
{
}
string_ty *
patch_context_ty::getline(int n)
{
if (n < 0)
return 0;
while (n >= (int)buffer.size())
{
nstring s;
if (!in->one_line(s))
return 0;
buffer.push_back(s.get_ref());
}
return buffer[n];
}
void
patch_context_ty::discard(int n)
{
while (n > 0 && !buffer.empty())
{
buffer.pop_front();
--n;
}
}
// vim: set ts=8 sw=4 et :