// // 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 :