X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fwhitespace.cc;h=d73fced321a00f73f83522cc2d0e7e561824632d;hb=c4ac43749048c4c0e0ab3656d39384112a628742;hp=e35a8a8c0ea872ec7696cc51e459ca31ebaeacea;hpb=79986643c0c904f6574bb5323e2233a43a9e622e;p=ardour.git diff --git a/libs/pbd/whitespace.cc b/libs/pbd/whitespace.cc index e35a8a8c0e..d73fced321 100644 --- a/libs/pbd/whitespace.cc +++ b/libs/pbd/whitespace.cc @@ -1,16 +1,41 @@ -#include +/* + Copyright (C) 2000-2007 Paul Davis + + 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 2 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, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "pbd/whitespace.h" using namespace std; +namespace PBD { + void strip_whitespace_edges (string& str) { string::size_type i; string::size_type len; - string::size_type s; + string::size_type s = 0; len = str.length(); + if (len == 1) { + return; + } + /* strip front */ for (i = 0; i < len; ++i) { @@ -19,12 +44,22 @@ strip_whitespace_edges (string& str) } } + if (i == len) { + /* it's all whitespace, not much we can do */ + str = ""; + return; + } + /* strip back */ if (len > 1) { s = i; i = len - 1; + + if (s == i) { + return; + } do { if (isgraph (str[i]) || i == 0) { @@ -42,3 +77,4 @@ strip_whitespace_edges (string& str) } } +} // namespace PBD