#include <stdio.h>
#endif
-
+#if defined(_MSC_VER) && (_MSC_VER >= 1900)
+#else
extern "C" {
extern void __wgetmainargs(int * argc, wchar_t *** argv, wchar_t *** envp,
int expand_wildcards, int * new_mode);
}
+#endif
using namespace std;
// Get the wide program arguments array
+#if defined(_MSC_VER) && (_MSC_VER >= 1900)
+ argv_ = CommandLineToArgvW(GetCommandLineW(), &argc_);
+#else
wchar_t ** envp = 0;
int newmode = 0;
__wgetmainargs(&argc_, &argv_, &envp, -1, &newmode);
- LASSERT(argc == argc_, /**/);
+#endif
+ LATTEST(argc == argc_);
// If Cygwin is detected, query the cygdrive prefix.
// The cygdrive prefix is needed for translating windows style paths
string utf8_argv(int i)
{
- LASSERT(i < argc_, /**/);
+ LASSERT(i < argc_, return "");
return fromqstr(QString::fromWCharArray(argv_[i]));
}
long_path.resize(result);
result = GetLongPathNameW((wchar_t *) short_path.utf16(),
&long_path[0], long_path.size());
- LASSERT(result <= long_path.size(), /**/);
+ LATTEST(result <= long_path.size());
}
return (result == 0) ? short_path : QString::fromWCharArray(&long_path[0]);
short_path.resize(result);
result = GetShortPathNameW((wchar_t *) long_path.utf16(),
&short_path[0], short_path.size());
- LASSERT(result <= short_path.size(), /**/);
+ LATTEST(result <= short_path.size());
}
return (result == 0) ? long_path : QString::fromWCharArray(&short_path[0]);
}
-int timeout_min()
-{
- return 30;
-}
-
-
char path_separator(path_type type)
{
if (type == TEXENGINE)
id = CSIDL_APPDATA;
break;
default:
- LASSERT(false, /**/);
+ LASSERT(false, return string());
}
HRESULT const result = (folder_path_func_)(0, id, 0,
SHGFP_TYPE_CURRENT,
{
string const texinputs = os::latex_path_list(
replaceCurdirPath(path, lyxrc.texinputs_prefix));
+ string const otherinputs = os::latex_path_list(path);
string const sep = windows_style_tex_paths_ ? ";" : ":";
- string const oldval = getEnv("TEXINPUTS");
- string const newval = "." + sep + texinputs + sep + oldval;
- if (!path.empty() && !lyxrc.texinputs_prefix.empty())
- setEnv("TEXINPUTS", newval);
+ string const oldtexinputs = getEnv("TEXINPUTS");
+ string const newtexinputs = "." + sep + texinputs + sep + oldtexinputs;
+ string const oldbibinputs = getEnv("BIBINPUTS");
+ string const newbibinputs = "." + sep + otherinputs + sep + oldbibinputs;
+ string const oldbstinputs = getEnv("BSTINPUTS");
+ string const newbstinputs = "." + sep + otherinputs + sep + oldbstinputs;
+ string const oldtexfonts = getEnv("TEXFONTS");
+ string const newtexfonts = "." + sep + otherinputs + sep + oldtexfonts;
+ if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
+ setEnv("TEXINPUTS", newtexinputs);
+ setEnv("BIBINPUTS", newbibinputs);
+ setEnv("BSTINPUTS", newbstinputs);
+ setEnv("TEXFONTS", newtexfonts);
+ }
// reference: http://msdn.microsoft.com/en-us/library/bb762153.aspx
char const * action = (mode == VIEW) ? "open" : "edit";
bool success = reinterpret_cast<int>(ShellExecute(NULL, action,
to_local8bit(from_utf8(filename)).c_str(), NULL, NULL, 1)) > 32;
- if (!path.empty() && !lyxrc.texinputs_prefix.empty())
- setEnv("TEXINPUTS", oldval);
+ if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
+ setEnv("TEXINPUTS", oldtexinputs);
+ setEnv("BIBINPUTS", oldbibinputs);
+ setEnv("BSTINPUTS", oldbstinputs);
+ setEnv("TEXFONTS", oldtexfonts);
+ }
return success;
}