update dev300-m58
[ooovba.git] / testshl2 / workben / test_string.cxx
blob774754af9d8084f1bb8f293e1e9650b7b1b7b042
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: test_string.cxx,v $
10 * $Revision: 1.5 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
32 // MARKER(update_precomp.py): autogen include statement, do not remove
33 #include "precompiled_testshl2.hxx"
34 #include <iostream>
35 #include <string>
36 #include <rtl/string.hxx>
38 using namespace std;
40 const char* g_cSeparatorList = " \t,;:#";
42 std::string trim(std::string const& _sStringToTrim)
44 rtl::OString sStr(_sStringToTrim.c_str());
45 sStr = sStr.trim();
46 return std::string(sStr.getStr());
49 bool isInCurrentEnvironment(std::string const& _sString)
51 int nSpace = 0;
52 std::string sSearchString = _sString;
53 bool bEnd = false;
54 // run through the hole given string,
55 std::string sEnv;
57 do {
58 nSpace = sSearchString.find_first_of(g_cSeparatorList);
59 if (nSpace < 0)
61 sEnv = sSearchString;
62 bEnd = true;
64 else
66 sEnv = sSearchString.substr(0, nSpace);
67 sSearchString = sSearchString.substr(nSpace + 1);
69 if (sEnv.length() > 0)
71 cout << sEnv << endl;
72 #ifdef LINUX
73 int nLinux = sEnv.find("unxlng");
74 if (nLinux >= 0)
76 // found unxlng
77 return true;
79 #endif
80 #ifdef SOLARIS
81 int nSolaris = sEnv.find("unxsol");
82 if (nSolaris >= 0)
84 // found unxsol
85 return true;
87 #endif
88 #ifdef WNT
89 int nWindows = sEnv.find("wnt");
90 if (nWindows >= 0)
92 // found wnt
93 return true;
95 #endif
97 } while ( !bEnd );
98 return false;
101 // ----------------------------------- Main -----------------------------------
102 #if (defined UNX) || (defined OS2)
103 int main( int /* argc */, char* /* argv */ [] )
104 #else
105 int _cdecl main( int /* argc */ , char* /* argv */ [] )
106 #endif
108 string sLine1 = "osl_Socket.ctor.ctors_001";
109 string sLine = "osl_Socket.ctor.ctors_001 unxlngi5.pro unxsols4.pro wntmsci ";
111 int nSpace = sLine.find_first_of(g_cSeparatorList);
112 cout << "Space: " << nSpace << endl;
113 std::string sTest;
115 if (nSpace > 0)
117 sLine = trim(sLine);
118 // check environment
119 sTest = sLine.substr(0, nSpace);
120 std::string sRest = sLine.substr(nSpace + 1);
121 if (isInCurrentEnvironment(sRest))
123 cout << "new string: " << sTest << endl;
126 else
128 // every environment
129 cout << "new string: " << sLine << endl;
132 // cout << "rest string: " << sRest << endl;
134 int nCount = 10;
135 do {
136 cout << nCount << endl;
137 nCount --;
139 while (nCount >= 0);
140 cout << nCount << endl;