News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Codeblocks wx31_64 scripting error

Started by BlueHazzard, December 03, 2019, 08:03:14 PM

Previous topic - Next topic

BlueHazzard

If i try to create a codeblocks plugin with my codeblocks wx31_64 on windows i get multiple asserts because of wrong format specifier...

this patch should fix it. Can someone test this on linux?

Index: src/sdk/scripting/bindings/sc_wxtypes.cpp
===================================================================
--- src/sdk/scripting/bindings/sc_wxtypes.cpp (revision 11914)
+++ src/sdk/scripting/bindings/sc_wxtypes.cpp (working copy)
@@ -136,7 +136,7 @@
         if (sa.GetType(2) == OT_INTEGER)
         {
#ifdef _SQ64
-            result.Printf(_T("%s%ld"), str1.c_str(), sa.GetInt(2));
+            result.Printf(_T("%s%I64d"), str1.c_str(), sa.GetInt(2));
#else
             result.Printf(_T("%s%d"), str1.c_str(), sa.GetInt(2));
#endif

oBFusCATed

If you want to print a 64bit int on more than one platform, the best way I've found is to cast it to long long and then use %lld.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

MortenMacFly

Quote from: oBFusCATed on December 03, 2019, 08:13:05 PM
If you want to print a 64bit int on more than one platform, the best way I've found is to cast it to long long and then use %lld.
I second that. I think %I64d is not reliable enough.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]