lyx_mirror/src/support/os.h

67 lines
1.4 KiB
C
Raw Normal View History

// os.h copyright "Ruurd A. Reitsma" <R.A.Reitsma@wbmt.tudelft.nl>
#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