// // aegis - project change supervisor // Copyright (C) 2005, 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 #include #include #include nstring nstring_list::unsplit(const char *sep) const { return unsplit(0, size(), sep); } nstring nstring_list::unsplit(size_t start, size_t stop, const char *sep) const { // The logic here must be identical to string_list_ty::unsplit // until we can retire string_list_ty. if (!sep) sep = " "; trace(("string_list_ty::unsplit(start = %zu, stop = %zu, sep = \"%s\")\n", start, stop, sep)); size_t seplen = strlen(sep); static nstring_accumulator tmp; tmp.clear(); for (size_t j = start; j <= stop && j < size(); j++) { nstring s = content[j]; if (!s.empty()) { if (!tmp.empty()) tmp.push_back(sep, seplen); tmp.push_back(s); } } return tmp.mkstr(); } // vim: set ts=8 sw=4 et :