From 5272a64be9b832a19aa2371668ab51f69a3b3e4f Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Sun, 5 Jan 2014 16:27:32 -0700 Subject: [PATCH 1/6] Fix (legit) warning in VisualStudio --- include/chaiscript/dispatchkit/boxed_number.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/chaiscript/dispatchkit/boxed_number.hpp b/include/chaiscript/dispatchkit/boxed_number.hpp index ce93228..543f267 100644 --- a/include/chaiscript/dispatchkit/boxed_number.hpp +++ b/include/chaiscript/dispatchkit/boxed_number.hpp @@ -50,7 +50,6 @@ namespace chaiscript default: throw chaiscript::detail::exception::bad_any_cast(); } - throw chaiscript::detail::exception::bad_any_cast(); } }; @@ -146,7 +145,6 @@ namespace chaiscript default: throw chaiscript::detail::exception::bad_any_cast(); } - throw chaiscript::detail::exception::bad_any_cast(); } }; @@ -172,7 +170,6 @@ namespace chaiscript default: throw chaiscript::detail::exception::bad_any_cast(); } - throw chaiscript::detail::exception::bad_any_cast(); } }; From ac21c8b0631e807bd4f301d37a1b443a0692ee72 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Tue, 7 Jan 2014 17:35:58 -0600 Subject: [PATCH 2/6] fix building main.cpp when readline is available This changes around the pragma conditionals to make sure that certain symbols (such as "default_search_path") are defined even if the system has readline available during builds. --- src/main.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 0a84cd0..edb19a6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,6 +23,18 @@ char *mystrdup (const char *s) { return d; // Return the new string } +char* readline(const char* p) +{ + std::string retval; + std::cout << p ; + std::getline(std::cin, retval); + return std::cin.eof() ? NULL : mystrdup(retval.c_str()); +} + +void add_history(const char*){} +void using_history(){} +#endif + void *cast_module_symbol(std::string (*t_path)()) { union cast_union @@ -101,19 +113,6 @@ std::string default_search_path() #endif } - -char* readline(const char* p) -{ - std::string retval; - std::cout << p ; - std::getline(std::cin, retval); - return std::cin.eof() ? NULL : mystrdup(retval.c_str()); -} - -void add_history(const char*){} -void using_history(){} -#endif - void help(int n) { if ( n >= 0 ) { std::cout << "ChaiScript evaluator. To evaluate an expression, type it and press ." << std::endl; From a195fac4ca2ff3af009b8bb944b44982a02877f3 Mon Sep 17 00:00:00 2001 From: Cameron Garnham Date: Fri, 17 Jan 2014 14:36:36 -0800 Subject: [PATCH 3/6] force no unicode in search parth windows --- src/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index edb19a6..edc77fa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -50,9 +50,9 @@ void *cast_module_symbol(std::string (*t_path)()) std::string default_search_path() { -#ifdef CHAISCRIPT_WINDOWS - TCHAR path[2048]; - int size = GetModuleFileName(0, path, sizeof(path)-1); +#ifdef CHAISCRIPT_WINDOWS // force no unicode + CHAR path[4096]; + int size = GetModuleFileNameA(0, path, sizeof(path)-1); std::string exepath(path, size); From 8724e0cb807a33867165e876c83f3a6a7f79c72f Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 23 Jan 2014 12:17:06 -0700 Subject: [PATCH 4/6] Fix build error on 4.x branch if readline is found --- src/main.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4d3eb23..d77578d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,6 +15,21 @@ #include #include #else +char* readline(const char* p) +{ + std::string retval; + std::cout << p ; + std::getline(std::cin, retval); +#ifdef BOOST_MSVC + return std::cin.eof() ? NULL : _strdup(retval.c_str()); +#else + return std::cin.eof() ? NULL : strdup(retval.c_str()); +#endif +} +void add_history(const char*){} +void using_history(){} +#endif + void *cast_module_symbol(std::string (*t_path)()) { @@ -95,21 +110,6 @@ std::string default_search_path() } -char* readline(const char* p) -{ - std::string retval; - std::cout << p ; - std::getline(std::cin, retval); -#ifdef BOOST_MSVC - return std::cin.eof() ? NULL : _strdup(retval.c_str()); -#else - return std::cin.eof() ? NULL : strdup(retval.c_str()); -#endif -} -void add_history(const char*){} -void using_history(){} -#endif - void help(int n) { if ( n >= 0 ) { std::cout << "ChaiScript evaluator. To evaluate an expression, type it and press ." << std::endl; From eb1a1c027554de8a782779511f66af43d35e5d8d Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 23 Jan 2014 12:28:33 -0700 Subject: [PATCH 5/6] Port windows unicode fix from @da2ce7 to 4.x branch --- src/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d77578d..6333dca 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -46,9 +46,9 @@ void *cast_module_symbol(std::string (*t_path)()) std::string default_search_path() { -#ifdef CHAISCRIPT_WINDOWS - TCHAR path[2048]; - int size = GetModuleFileName(0, path, sizeof(path)-1); +#ifdef CHAISCRIPT_WINDOWS // force no unicode + CHAR path[4096]; + int size = GetModuleFileNameA(0, path, sizeof(path)-1); std::string exepath(path, size); From 3a6caeb1c5d3d87bf2bdc7d8626f7950340cd03d Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 23 Jan 2014 13:08:08 -0700 Subject: [PATCH 6/6] Fix #98 for unavoidable C style returns in modules --- src/chaiscript_stdlib.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/chaiscript_stdlib.cpp b/src/chaiscript_stdlib.cpp index cef0473..d4ea13e 100644 --- a/src/chaiscript_stdlib.cpp +++ b/src/chaiscript_stdlib.cpp @@ -9,6 +9,11 @@ #pragma warning(disable : 4190) #endif +#ifdef __llvm__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreturn-type-c-linkage" +#endif + CHAISCRIPT_MODULE_EXPORT chaiscript::ModulePtr create_chaiscript_module_chaiscript_stdlib() { @@ -16,6 +21,10 @@ CHAISCRIPT_MODULE_EXPORT chaiscript::ModulePtr create_chaiscript_module_chaiscr } +#ifdef __llvm__ +#pragma clang diagnostic pop +#endif + #ifdef CHAISCRIPT_MSVC #pragma warning(pop) #endif