jim-eventloop for MinGW-w64
authorRedirect \"Slash\" NIL <redirect.slash.nil@gmail.com>
Sat, 17 Oct 2009 19:15:13 +0000 (12:15 -0700)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Sat, 17 Oct 2009 19:15:13 +0000 (12:15 -0700)
Use JIM_WIDE_MODIFIER for the sscanf format, and apply it for MINGW32 as
well as other Windows environments.  (Microsoft doesn't conform to the
C99 standard, and uses "%I64d" not "%lld" for "long long".)

NB: __MINGW32__ should work on both w32 and w64,.

src/helper/jim-eventloop.c
src/helper/jim.h

index 5da00c9..edeeae7 100644 (file)
@@ -498,7 +498,7 @@ static int JimELAfterCommand(Jim_Interp *interp, int argc,
        int tlen ;
        jim_wide remain = 0;
        const char *tok = Jim_GetString(argv[2], &tlen);
-       if (sscanf(tok,"after#%lld",&id) == 1) {
+       if (sscanf(tok,"after#%" JIM_WIDE_MODIFIER, &id) == 1) {
                remain =  Jim_DeleteTimeHandler(interp, id);
                if (remain > -2)  {
                        Jim_SetResult(interp, Jim_NewIntObj(interp, remain));
index 82d987f..0aa0c93 100644 (file)
@@ -120,7 +120,7 @@ extern "C" {
  * ---------------------------------------------------------------------------*/
 
 #ifdef HAVE_LONG_LONG_INT
-# if defined(_MSC_VER) || defined(__MSVCRT__)
+# if defined(_MSC_VER) || defined(__MSVCRT__) || defined(__MINGW32__)
 #    define JIM_WIDE_MODIFIER "I64d"
 # else
 #    define JIM_WIDE_MODIFIER "lld"