From ce0d6a7a94f3e7b2af3e0a67368d60d7386e395f Mon Sep 17 00:00:00 2001 From: anders_k Date: Tue, 4 Mar 2014 19:26:56 +0000 Subject: [PATCH] Don't list /amd64-unicode in !addplugindir help (makensis win32) git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6446 212acab6-be3b-0410-9dea-997c60f758d6 --- Docs/src/history.but | 1 + Source/build.cpp | 6 +++--- Source/build.h | 2 +- Source/script.cpp | 11 ++++++----- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Docs/src/history.but b/Docs/src/history.but index fbb3a747..693b4822 100644 --- a/Docs/src/history.but +++ b/Docs/src/history.but @@ -15,6 +15,7 @@ Released on ?, 2014 \S2{} Minor Changes \b Added Int<32|64|Ptr> helper macros to Util.nsh + \b Added P<, P<=, P=, P<>, P>= and P> LogicLib ptrdiff_t tests \H{v3.0a2} 3.0 Alpha 2 diff --git a/Source/build.cpp b/Source/build.cpp index 29882a3d..c793eac2 100644 --- a/Source/build.cpp +++ b/Source/build.cpp @@ -3703,12 +3703,12 @@ CEXEBuild::TARGETTYPE CEXEBuild::get_target_type(const TCHAR*s) const for(int i = CEXEBuild::TARGETFIRST; i < CEXEBuild::TARGETCOUNT; ++i) { CEXEBuild::TARGETTYPE tt = (CEXEBuild::TARGETTYPE) i; - if (!_tcsicmp(get_target_suffix(tt),s)) return tt; + if (!_tcsicmp(get_target_suffix(tt, _T("")),s) && *s) return tt; } return TARGET_UNKNOWN; } -const TCHAR* CEXEBuild::get_target_suffix(CEXEBuild::TARGETTYPE tt) const +const TCHAR* CEXEBuild::get_target_suffix(CEXEBuild::TARGETTYPE tt, const TCHAR*defval) const { switch(tt) { @@ -3717,7 +3717,7 @@ const TCHAR* CEXEBuild::get_target_suffix(CEXEBuild::TARGETTYPE tt) const #if !defined(_WIN32) || defined(_WIN64) // BUGBUG: Need a better define for this case TARGET_AMD64 :return _T("amd64-unicode"); #endif - default:return _T("?"); + default:return defval; } } diff --git a/Source/build.h b/Source/build.h index c13c3d5f..98fe4a93 100644 --- a/Source/build.h +++ b/Source/build.h @@ -126,7 +126,7 @@ class CEXEBuild { } TARGETTYPE; TARGETTYPE m_target_type; TARGETTYPE get_target_type(const TCHAR*s) const; - const TCHAR* get_target_suffix(CEXEBuild::TARGETTYPE tt) const; + const TCHAR* get_target_suffix(CEXEBuild::TARGETTYPE tt, const TCHAR*defval = _T("?")) const; const TCHAR* get_target_suffix() const {return get_target_suffix(m_target_type);} bool is_target_64bit() const { return TARGET_AMD64 == m_target_type; } diff --git a/Source/script.cpp b/Source/script.cpp index 7a1bd704..2b7ef99e 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -6234,17 +6234,18 @@ int CEXEBuild::doCommand(int which_token, LineParser &line) TCHAR *path = line.gettoken_str(numtok); if (2 == numtok) { - const TCHAR* arcstr = line.gettoken_str(--numtok); + const TCHAR *arcstr = line.gettoken_str(--numtok); tt = get_target_type(arcstr+1); if (_T('/') != arcstr[0] || CEXEBuild::TARGET_UNKNOWN == tt) { tstring es = get_commandtoken_name(which_token); es += _T(": Target parameter must be one of: /"); - for(int i = CEXEBuild::TARGETFIRST; i < CEXEBuild::TARGETCOUNT; ++i) + for(int comma = 0, i = CEXEBuild::TARGETFIRST; i < CEXEBuild::TARGETCOUNT; ++i) { - tt = (CEXEBuild::TARGETTYPE) i; - if (CEXEBuild::TARGETFIRST != tt) es += _T(", /"); - es += get_target_suffix(tt); + const TCHAR *ts = get_target_suffix((CEXEBuild::TARGETTYPE) i, 0); + if (!ts) continue; + if (comma++) es += _T(", /"); + es += ts; } ERROR_MSG(_T("Error: %") NPRIs _T("\n"),es.c_str()); return PS_ERROR;