(file) Return to System.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/System.cpp between version 1.3 and 1.18

version 1.3, 2001/06/16 17:30:38 version 1.18, 2003/09/10 19:38:58
Line 1 
Line 1 
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001 The Open group, BMC Software, Tivoli Systems, IBM  // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
   // The Open Group, Tivoli Systems
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 22 
Line 23 
 // //
 // Author: Mike Brasher (mbrasher@bmc.com) // Author: Mike Brasher (mbrasher@bmc.com)
 // //
 // Modified By:  // Modified By: Rudy Schuet (rudy.schuet@compaq.com) 11/12/01
   //                                      added nsk platform support
   //                              Ramnath Ravindran (Ramnath.Ravindran@compaq.com) 03/21/2002
   //                                      replaced instances of "| ios::binary" with
   //                                      PEGASUS_OR_IOS_BINARY
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
   
   #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
   #include <Pegasus/Common/Config.h>
   #endif
   
   
   #include <fstream>
   #include <cctype>  // for tolower()
   #include <cstring>
 #include "System.h" #include "System.h"
  
   #include <Pegasus/Common/PegasusVersion.h>
   
 #if defined(PEGASUS_OS_TYPE_WINDOWS) #if defined(PEGASUS_OS_TYPE_WINDOWS)
 # include "SystemWindows.cpp" # include "SystemWindows.cpp"
 #elif defined(PEGASUS_OS_TYPE_UNIX) #elif defined(PEGASUS_OS_TYPE_UNIX)
 # include "SystemUnix.cpp" # include "SystemUnix.cpp"
   #elif defined(PEGASUS_OS_TYPE_NSK)
   # include "SystemNsk.cpp"
 #else #else
 # error "Unsupported platform" # error "Unsupported platform"
 #endif #endif
   
   #if defined(PEGASUS_OS_OS400)
   # include "OS400ConvertChar.h"
   #endif
   
   PEGASUS_USING_STD;
   
   PEGASUS_NAMESPACE_BEGIN
   
   Boolean System::copyFile(const char* fromPath, const char* toPath)
   {
       ifstream is(fromPath PEGASUS_IOS_BINARY);
       ofstream os(toPath PEGASUS_IOS_BINARY);
   
       char c;
   
       while (is.get(c))
       {
           if (!os.put(c))
               return false;
       }
   
       return true;
   }
   
   // ATTN: Move to platform-specific System implementation files and call
   // strcasecmp where it is available.
   Sint32 System::strcasecmp(const char* s1, const char* s2)
   {
       while (*s1 && *s2)
       {
           int r = tolower(*s1++) - tolower(*s2++);
   
           if (r)
               return r;
       }
   
       if (*s2)
           return -1;
       else if (*s1)
           return 1;
   
       return 0;
   }
   
   // Return the just the file name from the path into basename
   char *System::extract_file_name(const char *fullpath, char *basename)
   {
     char *p;
     char buff[2048];
     if (fullpath == NULL)
       {
         basename[0] = '\0';
         return basename;
       }
     strcpy(buff, fullpath);
     for(p = buff + strlen(buff); p >= buff; p--)
       {
         if (*p == '\\' || *p == '/')
           {
             strcpy(basename, p+1);
             return basename;
           }
       }
     strcpy(basename, fullpath);
     return basename;
   }
   
   // Return the just the path to the file name into dirname
   char *System::extract_file_path(const char *fullpath, char *dirname)
   {
     char *p;
     char buff[2048];
     if (fullpath == NULL)
       {
         dirname[0] = '\0';
         return dirname;
       }
     strcpy(buff, fullpath);
     for(p = buff + strlen(buff); p >= buff; p--)
       {
         if (*p == '\\' || *p == '/')
           {
             strncpy(dirname, buff, p+1 - buff);
             dirname[p+1 - buff] = '\0';
             return dirname;
           }
       }
     strcpy(dirname, fullpath);
     return dirname;
   }
   
   // System ID constants for Logger::put and Logger::trace
   const String System::CIMLISTENER = "cimlistener"; // Listener systme ID
   
   PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.3  
changed lines
  Added in v.1.18

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2