1 mike 1.6 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.11 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.6 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 kumpf 1.11 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.6 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
|
13 kumpf 1.11 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.6 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 kumpf 1.11 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.6 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 mike 1.7 // Modified By: Rudy Schuet (rudy.schuet@compaq.com) 11/12/01
|
27 ramnath 1.9 // added nsk platform support
28 // Ramnath Ravindran (Ramnath.Ravindran@compaq.com) 03/21/2002
29 // replaced instances of "| ios::binary" with
30 // PEGASUS_OR_IOS_BINARY
|
31 mike 1.6 //
32 //%/////////////////////////////////////////////////////////////////////////////
|
33 mike 1.8
|
34 sage 1.12 #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
35 #include <Pegasus/Common/Config.h>
36 #endif
37
38
|
39 mike 1.8 #include <fstream>
|
40 kumpf 1.13 #include <cctype> // for tolower()
|
41 kumpf 1.14 #include <cstring>
|
42 mike 1.6 #include "System.h"
43
|
44 kumpf 1.10 #include <Pegasus/Common/PegasusVersion.h>
45
|
46 mike 1.6 #if defined(PEGASUS_OS_TYPE_WINDOWS)
47 # include "SystemWindows.cpp"
48 #elif defined(PEGASUS_OS_TYPE_UNIX)
49 # include "SystemUnix.cpp"
|
50 mike 1.7 #elif defined(PEGASUS_OS_TYPE_NSK)
51 # include "SystemNsk.cpp"
|
52 mike 1.6 #else
53 # error "Unsupported platform"
54 #endif
|
55 mike 1.8
56 PEGASUS_USING_STD;
57
58 PEGASUS_NAMESPACE_BEGIN
59
60 Boolean System::copyFile(const char* fromPath, const char* toPath)
61 {
|
62 ramnath 1.9 ifstream is(fromPath PEGASUS_IOS_BINARY);
63 ofstream os(toPath PEGASUS_IOS_BINARY);
|
64 mike 1.8
65 char c;
66
67 while (is.get(c))
68 {
69 if (!os.put(c))
70 return false;
71 }
72
73 return true;
|
74 kumpf 1.13 }
75
76 // ATTN: Move to platform-specific System implementation files and call
77 // strcasecmp where it is available.
78 Sint32 System::strcasecmp(const char* s1, const char* s2)
79 {
80 while (*s1 && *s2)
81 {
82 int r = tolower(*s1++) - tolower(*s2++);
83
84 if (r)
85 return r;
86 }
87
88 if (*s2)
89 return -1;
90 else if (*s1)
91 return 1;
92
93 return 0;
|
94 mike 1.8 }
95
96 PEGASUS_NAMESPACE_END
|