aboutsummaryrefslogtreecommitdiff
path: root/libutil++/string_manip.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libutil++/string_manip.cpp')
-rw-r--r--libutil++/string_manip.cpp149
1 files changed, 0 insertions, 149 deletions
diff --git a/libutil++/string_manip.cpp b/libutil++/string_manip.cpp
deleted file mode 100644
index d9e83b8..0000000
--- a/libutil++/string_manip.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * @file string_manip.cpp
- * std::string helpers
- *
- * @remark Copyright 2002 OProfile authors
- * @remark Read the file COPYING
- *
- * @author Philippe Elie
- * @author John Levon
- */
-
-#include <sstream>
-#include <iomanip>
-
-#include <cstdlib>
-#include <cmath>
-
-#include "string_manip.h"
-
-using namespace std;
-
-
-string erase_to_last_of(string const & str, char ch)
-{
- string result = str;
- string::size_type pos = result.find_last_of(ch);
- if (pos != string::npos)
- result.erase(0, pos + 1);
-
- return result;
-}
-
-
-string split(string & s, char c)
-{
- string::size_type i = s.find_first_of(c);
- if (i == string::npos)
- return string();
-
- string const tail = s.substr(i + 1);
- s = s.substr(0, i);
- return tail;
-}
-
-
-bool is_prefix(string const & s, string const & prefix)
-{
- // gcc 2.95 and below don't have this
- // return s.compare(0, prefix.length(), prefix) == 0;
- return s.find(prefix) == 0;
-}
-
-
-vector<string> separate_token(string const & str, char sep)
-{
- vector<string> result;
- string next;
-
- for (size_t pos = 0 ; pos != str.length() ; ++pos) {
- char ch = str[pos];
- if (ch == '\\') {
- if (pos < str.length() - 1 && str[pos + 1] == sep) {
- ++pos;
- next += sep;
- } else {
- next += '\\';
- }
- } else if (ch == sep) {
- result.push_back(next);
- // some stl lacks string::clear()
- next.erase(next.begin(), next.end());
- } else {
- next += ch;
- }
- }
-
- if (!next.empty())
- result.push_back(next);
-
- return result;
-}
-
-
-string ltrim(string const & str, string const & totrim)
-{
- string result(str);
-
- return result.erase(0, result.find_first_not_of(totrim));
-}
-
-
-string rtrim(string const & str, string const & totrim)
-{
- string result(str);
-
- return result.erase(result.find_last_not_of(totrim) + 1);
-}
-
-
-string trim(string const & str, string const & totrim)
-{
- return rtrim(ltrim(str, totrim), totrim);
-}
-
-
-string const
-format_percent(double value, size_t int_width, size_t fract_width, bool showpos)
-{
- ostringstream os;
-
- if (value == 0.0)
- return string(int_width + fract_width, ' ') + "0";
-
- if (showpos)
- os.setf(ios::showpos);
-
- if (fabs(value) > .001) {
- // os << fixed << value unsupported by gcc 2.95
- os.setf(ios::fixed, ios::floatfield);
- os << setw(int_width + fract_width + 1)
- << setprecision(fract_width) << value;
- } else {
- // os << scientific << value unsupported by gcc 2.95
- os.setf(ios::scientific, ios::floatfield);
- os << setw(int_width + fract_width + 1)
- // - 3 to count exponent part
- << setprecision(fract_width - 3) << value;
- }
-
- string formatted = os.str();
- if (is_prefix(formatted, "100."))
- formatted.erase(formatted.size() - 1);
- return formatted;
-}
-
-
-template <>
-unsigned int op_lexical_cast<unsigned int, string>(string const & str)
-{
- char* endptr;
-
- // 2.91.66 fix
- unsigned long ret = 0;
- ret = strtoul(str.c_str(), &endptr, 0);
- if (*endptr) {
- throw invalid_argument("op_lexical_cast(\""+ str +"\")");
- }
- return ret;
-}