// // aegis - project change supervisor // Copyright (C) 2004-2008, 2012 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 #include #include sub_diversion::~sub_diversion() { } sub_diversion::sub_diversion(const wstring &arg1, bool arg2) : pos(0), text(arg1), resubstitute(arg2) { } sub_diversion::sub_diversion() : pos(0), resubstitute(false) { } sub_diversion::sub_diversion(const sub_diversion &arg) : pos(arg.pos), text(arg.text), resubstitute(arg.resubstitute) { } sub_diversion & sub_diversion::operator=(const sub_diversion &arg) { if (this != &arg) { text = arg.text; pos = arg.pos; resubstitute = arg.resubstitute; } return *this; } wchar_t sub_diversion::getch() { if (pos >= text.size()) return 0; return text.c_str()[pos++]; } void sub_diversion::ungetch(wchar_t c) { if (c == 0) return; assert(!text.empty()); assert(pos >= 1); --pos; assert(c == text.c_str()[pos]); } // vim: set ts=8 sw=4 et :