Invert Pan-Azimuth (up means left)
[ardour.git] / libs / pbd / whitespace.cc
1 /*
2  * Copyright (C) 2000-2015 Paul Davis <paul@linuxaudiosystems.com>
3  * Copyright (C) 2006 Taybin Rutkin <taybin@taybin.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19
20 #include "pbd/whitespace.h"
21
22 using namespace std;
23
24 namespace PBD {
25
26 void
27 strip_whitespace_edges (string& str)
28 {
29     string::size_type i;
30     string::size_type len;
31     string::size_type s = 0;
32
33     len = str.length();
34
35     if (len == 1) {
36             return;
37     }
38
39     /* strip front */
40
41     for (i = 0; i < len; ++i) {
42         if (!isspace (str[i])) {
43             break;
44         }
45     }
46
47     if (i == len) {
48             /* it's all whitespace, not much we can do */
49                 str = "";
50             return;
51     }
52
53     /* strip back */
54
55     if (len > 1) {
56
57             s = i;
58             i = len - 1;
59
60             if (s == i) {
61                     return;
62             }
63
64             do {
65                     if (!isspace (str[i]) || i == 0) {
66                             break;
67                     }
68
69                     --i;
70
71             } while (true);
72
73             str = str.substr (s, (i - s) + 1);
74
75     } else {
76             str = str.substr (s);
77     }
78 }
79
80 } // namespace PBD