// os.h copyright "Ruurd A. Reitsma" #ifndef OS_H #define OS_H #ifdef __GNUG__ #pragma interface #endif #include "LString.h" /// Do we need a base class for this? class os { public: // enum shell_type { UNIX, // Do we have to distinguish sh and csh? CMD_EXE }; // static void init(int * argc, char ** argv[]); // static string binpath() {return binpath_;}; // static string binname() {return binname_;}; // system_tempdir actually doesn't belong here. // I put it here only to avoid a global variable. static void setTmpDir(string p) {tmpdir_ = p;}; // static string getTmpDir() {return tmpdir_;}; // static string current_root(); // static os::shell_type shell() {return _shell;}; // DBCS aware! static string::size_type common_path(string const &p1, string const &p2); // no-op on UNIX, '\\'->'/' on OS/2 and Win32, ':'->'/' on MacOS, etc. static string slashify_path(string p); static string external_path(string p); static void warn(string mesg); private: static string binpath_; static string binname_; static string tmpdir_; static os::shell_type _shell; static unsigned long cp_; // Used only on OS/2 to determine file system encoding. // Never initialize static variables in the header! // Anyway I bet this class will never be constructed. os() {}; // Ignore warning! ~os() {}; }; #endif