#define INCL_DOSERRORS
#include <os2.h>
-#include <boost/scoped_array.hpp>
-using boost::scoped_array;
+namespace lyx {
+namespace support {
+namespace os {
namespace {
-string binpath_;
-string binname_;
-string tmpdir_;
-string homepath_;
-string nulldev_;
-
-os::shell_type shell_ = os::UNIX;
+shell_type shell_ = UNIX;
unsigned long cp_ = 0;
}
-namespace os {
-
-
void init(int argc, char * argv[])
{
_wildcard(&argc, &argv);
APIRET rc = DosGetInfoBlocks(&ptib, &ppib);
if (rc != NO_ERROR)
exit(rc);
- scoped_array<char> tmp(new char[256]);
- // This is the only reliable way to retrieve the executable name.
- rc = DosQueryModuleName(ppib->pib_hmte, 256L, tmp);
- if (rc != NO_ERROR)
- exit(rc);
- string p = tmp.get();
- p = internal_path(p);
- binname_ = OnlyFilename(p);
- binname_.erase(binname_.length()-4, string::npos);
- binpath_ = OnlyPath(p);
// OS/2 cmd.exe has another use for '&'
- string sh = OnlyFilename(GetEnvPath("EMXSHELL"));
+ string sh = OnlyFilename(getEnvPath("EMXSHELL"));
if (sh.empty()) {
// COMSPEC is set, unless user unsets
- sh = OnlyFilename(GetEnvPath("COMSPEC"));
+ sh = OnlyFilename(getEnvPath("COMSPEC"));
if (sh.empty())
sh = "cmd.exe";
}
// CPList[1] == system default codepage, the rest are auxilary.
// Once cp_ is correctly set, you can call other routines.
cp_ = CPList[1];
-
- tmpdir_ = "/tmp";
- homepath_ = GetEnvPath("HOME");
- nulldev_ = "null";
-}
-
-
-void warn(string const & /*mesg*/)
-{
- return;
}
}
-string const & binpath()
-{
- return binpath_;
-}
-
-
-string const & binname()
-{
- return binname_;
-}
-
-
-void setTmpDir(string const & p)
-{
- tmpdir_ = p;
-}
-
-
-string const & getTmpDir()
+string const & nulldev()
{
- return tmpdir_;
+ static string const nulldev_ = "null";
+ return nulldev_;
}
-string const & homepath()
+shell_type shell()
{
- return homepath_;
+ return shell_;
}
-string const & nulldev()
+char path_separator()
{
- return nulldev_;
+ return ';';
}
-shell_type shell()
-{
- return shell_;
-}
+void cygwin_path_fix(bool)
+{}
-} // end namespace os
+} // namespace os
+} // namespace support
+} // namespace lyx