commit
5cf680d2f0
5 changed files with 20 additions and 12 deletions
|
@ -82,9 +82,9 @@ bool parse_arguments(const int argc, const pal::char_t* argv[], arguments_t& arg
|
|||
{
|
||||
auto depsfile_candidate = pal::string_t(args.app_argv[0]);
|
||||
|
||||
if (starts_with(depsfile_candidate, s_depsArgPrefix))
|
||||
if (starts_with(depsfile_candidate, s_deps_arg_prefix, false))
|
||||
{
|
||||
args.deps_path = depsfile_candidate.substr(s_depsArgPrefix.length());
|
||||
args.deps_path = depsfile_candidate.substr(s_deps_arg_prefix.length());
|
||||
if (!pal::realpath(&args.deps_path))
|
||||
{
|
||||
trace::error(_X("Failed to locate deps file: %s"), args.deps_path.c_str());
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "pal.h"
|
||||
#include "trace.h"
|
||||
|
||||
static const pal::string_t s_depsArgPrefix = _X("--depsfile:");
|
||||
static const pal::string_t s_deps_arg_prefix = _X("--depsfile:");
|
||||
|
||||
struct arguments_t
|
||||
{
|
||||
|
|
|
@ -95,6 +95,9 @@ namespace pal
|
|||
|
||||
inline int strcmp(const char_t* str1, const char_t* str2) { return ::wcscmp(str1, str2); }
|
||||
inline int strcasecmp(const char_t* str1, const char_t* str2) { return ::_wcsicmp(str1, str2); }
|
||||
inline int strncmp(const char_t* str1, const char_t* str2, int len) { return ::wcsncmp(str1, str2, len); }
|
||||
inline int strncasecmp(const char_t* str1, const char_t* str2, int len) { return ::_wcsnicmp(str1, str2, len); }
|
||||
|
||||
inline size_t strlen(const char_t* str) { return ::wcslen(str); }
|
||||
inline void err_vprintf(const char_t* format, va_list vl) { ::vfwprintf(stderr, format, vl); ::fputws(_X("\r\n"), stderr); }
|
||||
|
||||
|
@ -125,6 +128,8 @@ namespace pal
|
|||
|
||||
inline int strcmp(const char_t* str1, const char_t* str2) { return ::strcmp(str1, str2); }
|
||||
inline int strcasecmp(const char_t* str1, const char_t* str2) { return ::strcasecmp(str1, str2); }
|
||||
inline int strncmp(const char_t* str1, const char_t* str2, int len) { return ::strncmp(str1, str2, len); }
|
||||
inline int strncasecmp(const char_t* str1, const char_t* str2, int len) { return ::strncasecmp(str1, str2, len); }
|
||||
inline size_t strlen(const char_t* str) { return ::strlen(str); }
|
||||
inline void err_vprintf(const char_t* format, va_list vl) { ::vfprintf(stderr, format, vl); ::fputc('\n', stderr); }
|
||||
inline pal::string_t to_palstring(const std::string& str) { return str; }
|
||||
|
|
|
@ -12,15 +12,18 @@ bool coreclr_exists_in_dir(const pal::string_t& candidate)
|
|||
return pal::file_exists(test);
|
||||
}
|
||||
|
||||
bool ends_with(const pal::string_t& value, const pal::string_t& suffix)
|
||||
bool ends_with(const pal::string_t& value, const pal::string_t& suffix, bool match_case)
|
||||
{
|
||||
return suffix.length() <= value.length() &&
|
||||
(0 == value.compare(value.length() - suffix.length(), suffix.length(), suffix));
|
||||
auto cmp = match_case ? pal::strcmp : pal::strcasecmp;
|
||||
return (value.size() >= suffix.size()) &&
|
||||
cmp(value.c_str() + value.size() - suffix.size(), suffix.c_str()) == 0;
|
||||
}
|
||||
|
||||
bool starts_with(const pal::string_t& value, const pal::string_t& prefix)
|
||||
bool starts_with(const pal::string_t& value, const pal::string_t& prefix, bool match_case)
|
||||
{
|
||||
return value.find(prefix.c_str(), 0, prefix.length()) == 0;
|
||||
auto cmp = match_case ? pal::strncmp : pal::strncasecmp;
|
||||
return (value.size() >= prefix.size()) &&
|
||||
cmp(value.c_str(), prefix.c_str(), prefix.size()) == 0;
|
||||
}
|
||||
|
||||
void append_path(pal::string_t* path1, const pal::char_t* path2)
|
||||
|
@ -43,10 +46,10 @@ pal::string_t get_executable(const pal::string_t& filename)
|
|||
{
|
||||
pal::string_t result(filename);
|
||||
|
||||
if (ends_with(result, _X(".exe")))
|
||||
if (ends_with(result, _X(".exe"), false))
|
||||
{
|
||||
// We need to strip off the old extension
|
||||
result.erase(result.length() - 4);
|
||||
result.erase(result.size() - 4);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
#include "pal.h"
|
||||
|
||||
bool ends_with(const pal::string_t& value, const pal::string_t& suffix);
|
||||
bool starts_with(const pal::string_t& value, const pal::string_t& prefix);
|
||||
bool ends_with(const pal::string_t& value, const pal::string_t& suffix, bool match_case);
|
||||
bool starts_with(const pal::string_t& value, const pal::string_t& prefix, bool match_case);
|
||||
pal::string_t get_executable(const pal::string_t& filename);
|
||||
pal::string_t get_directory(const pal::string_t& path);
|
||||
pal::string_t get_filename(const pal::string_t& path);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue