~ubuntu-branches/ubuntu/utopic/ardour3/utopic

« back to all changes in this revision

Viewing changes to libs/taglib/taglib/toolkit/tstringlist.cpp

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2013-09-21 19:05:02 UTC
  • Revision ID: package-import@ubuntu.com-20130921190502-8gsftrku6jnzhd7v
Tags: upstream-3.4~dfsg
ImportĀ upstreamĀ versionĀ 3.4~dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
    copyright            : (C) 2002 - 2008 by Scott Wheeler
 
3
    email                : wheeler@kde.org
 
4
 ***************************************************************************/
 
5
 
 
6
/***************************************************************************
 
7
 *   This library is free software; you can redistribute it and/or modify  *
 
8
 *   it under the terms of the GNU Lesser General Public License version   *
 
9
 *   2.1 as published by the Free Software Foundation.                     *
 
10
 *                                                                         *
 
11
 *   This library is distributed in the hope that it will be useful, but   *
 
12
 *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
 
13
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
 
14
 *   Lesser General Public License for more details.                       *
 
15
 *                                                                         *
 
16
 *   You should have received a copy of the GNU Lesser General Public      *
 
17
 *   License along with this library; if not, write to the Free Software   *
 
18
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
 
19
 *   USA                                                                   *
 
20
 *                                                                         *
 
21
 *   Alternatively, this file is available under the Mozilla Public        *
 
22
 *   License Version 1.1.  You may obtain a copy of the License at         *
 
23
 *   http://www.mozilla.org/MPL/                                           *
 
24
 ***************************************************************************/
 
25
 
 
26
#include "tstringlist.h"
 
27
 
 
28
using namespace TagLib;
 
29
 
 
30
class StringListPrivate
 
31
{
 
32
 
 
33
};
 
34
 
 
35
////////////////////////////////////////////////////////////////////////////////
 
36
// static members
 
37
////////////////////////////////////////////////////////////////////////////////
 
38
 
 
39
StringList StringList::split(const String &s, const String &pattern)
 
40
{
 
41
  StringList l;
 
42
 
 
43
  int previousOffset = 0;
 
44
  for(int offset = s.find(pattern); offset != -1; offset = s.find(pattern, offset + 1)) {
 
45
    l.append(s.substr(previousOffset, offset - previousOffset));
 
46
    previousOffset = offset + 1;
 
47
  }
 
48
 
 
49
  l.append(s.substr(previousOffset, s.size() - previousOffset));
 
50
 
 
51
  return l;
 
52
}
 
53
 
 
54
////////////////////////////////////////////////////////////////////////////////
 
55
// public members
 
56
////////////////////////////////////////////////////////////////////////////////
 
57
 
 
58
StringList::StringList() : List<String>()
 
59
{
 
60
 
 
61
}
 
62
 
 
63
StringList::StringList(const StringList &l) : List<String>(l)
 
64
{
 
65
 
 
66
}
 
67
 
 
68
StringList::StringList(const String &s) : List<String>()
 
69
{
 
70
  append(s);
 
71
}
 
72
 
 
73
StringList::StringList(const ByteVectorList &bl, String::Type t) : List<String>()
 
74
{
 
75
  ByteVectorList::ConstIterator i = bl.begin();
 
76
  for(;i != bl.end(); i++) {
 
77
    append(String(*i, t));
 
78
  }
 
79
}
 
80
 
 
81
StringList::~StringList()
 
82
{
 
83
 
 
84
}
 
85
 
 
86
String StringList::toString(const String &separator) const
 
87
{
 
88
  String s;
 
89
 
 
90
  ConstIterator it = begin();
 
91
  ConstIterator itEnd = end();
 
92
 
 
93
  while(it != itEnd) {
 
94
    s += *it;
 
95
    it++;
 
96
    if(it != itEnd)
 
97
      s += separator;
 
98
  }
 
99
 
 
100
  return s;
 
101
}
 
102
 
 
103
StringList &StringList::append(const String &s)
 
104
{
 
105
  List<String>::append(s);
 
106
  return *this;
 
107
}
 
108
 
 
109
StringList &StringList::append(const StringList &l)
 
110
{
 
111
  List<String>::append(l);
 
112
  return *this;
 
113
}
 
114
 
 
115
////////////////////////////////////////////////////////////////////////////////
 
116
// related functions
 
117
////////////////////////////////////////////////////////////////////////////////
 
118
 
 
119
std::ostream &operator<<(std::ostream &s, const StringList &l)
 
120
{
 
121
  s << l.toString();
 
122
  return s;
 
123
}