The nim code attached compile and runs under amd64 both windows and linux, but 
when compiling under windows/x86/xp the nim compiler output: 
    
    
    nimcache\enumtest.c: In function 'enumtestInit000':
    nimcache\enumtest.c:261:2: error: duplicate case value case 
((Eventgroups95004) 256):
      ^
    nimcache\enumtest.c:219:2: error: previously used here case 
((Eventgroups95004) 0):
      ^
    nimcache\enumtest.c:268:2: error: duplicate case value case 
((Eventgroups95004) 512):
      ^
    nimcache\enumtest.c:219:2: error: previously used here case 
((Eventgroups95004) 0):
      ^
    nimcache\enumtest.c:296:2: error: duplicate case value case 
((Eventgroups95004) 1024):
      ^
    nimcache\enumtest.c:219:2: error: previously used here case 
((Eventgroups95004) 0):
      ^
    nimcache\enumtest.c:303:2: error: duplicate case value case 
((Eventgroups95004) 2048):
      ^
    nimcache\enumtest.c:219:2: error: previously used here case 
((Eventgroups95004) 0):
      ^
    nimcache\enumtest.c:310:2: error: duplicate case value case 
((Eventgroups95004) 8192):
      ^
    nimcache\enumtest.c:219:2: error: previously used here case 
((Eventgroups95004) 0):
      ^
    

It seems something wrong with the translated C code definiton: 
    
    
    typedef NU8 Eventgroups95004
    

under amd64 is was:
    
    
    typedef NI64 Eventgroups95004
    

but I'm not sure
    
    
    type
      EVENT_GROUPS* = enum
        HANDLE_INITIALIZATION = 0x00000000, ## #* attached/detached
        HANDLE_MOUSE = 0x00000001,  ## #* mouse events
        HANDLE_KEY = 0x00000002,    ## #* key events
        HANDLE_FOCUS = 0x00000004,  ## #* focus events, if this flag is set it 
also means that element it attached to is focusable
        HANDLE_SCROLL = 0x00000008, ## #* scroll events
        HANDLE_TIMER = 0x00000010,  ## #* timer event
        HANDLE_SIZE = 0x00000020,   ## #* size changed event
        HANDLE_DRAW = 0x00000040,   ## #* drawing request (event)
        HANDLE_DATA_ARRIVED = 0x00000080, ## #* requested data () has been 
delivered
        HANDLE_BEHAVIOR_EVENT = 0x00000100, ## #* logical, synthetic events:
                                         ## #                                   
              BUTTON_CLICK, HYPERLINK_CLICK, etc.,
                                         ## #                                   
              a.k.a. notifications from intrinsic behaviors
        HANDLE_METHOD_CALL = 0x00000200, ## #* behavior specific methods
        HANDLE_SCRIPTING_METHOD_CALL = 0x00000400, ## #* behavior specific 
methods
        HANDLE_TISCRIPT_METHOD_CALL = 0x00000800, ## #* behavior specific 
methods using direct tiscript::value's
        HANDLE_EXCHANGE = 0x00001000, ## #* system drag-n-drop
        HANDLE_GESTURE = 0x00002000, ## #* touch input events
        HANDLE_ALL = 0x0000FFFF,    ## # all of them
        SUBSCRIPTIONS_REQUEST = 0xFFFFFFFF ## #* special value for getting 
subscription flags
    
    echo HANDLE_INITIALIZATION, "\t", ord(HANDLE_INITIALIZATION)
    echo HANDLE_MOUSE, "\t", ord(HANDLE_MOUSE)
    echo HANDLE_KEY, "\t", ord(HANDLE_KEY)
    echo HANDLE_FOCUS, "\t", ord(HANDLE_FOCUS)
    echo HANDLE_SCROLL, "\t", ord(HANDLE_SCROLL)
    echo HANDLE_TIMER, "\t", ord(HANDLE_TIMER)
    echo HANDLE_SIZE, "\t", ord(HANDLE_SIZE)
    echo HANDLE_DRAW, "\t", ord(HANDLE_DRAW)
    echo HANDLE_DATA_ARRIVED, "\t", ord(HANDLE_DATA_ARRIVED)
    echo HANDLE_BEHAVIOR_EVENT, "\t", ord(HANDLE_BEHAVIOR_EVENT)
    echo HANDLE_METHOD_CALL, "\t", ord(HANDLE_METHOD_CALL)
    echo HANDLE_SCRIPTING_METHOD_CALL, "\t", ord(HANDLE_SCRIPTING_METHOD_CALL)
    echo HANDLE_TISCRIPT_METHOD_CALL, "\t", ord(HANDLE_TISCRIPT_METHOD_CALL)
    echo HANDLE_EXCHANGE, "\t", ord(HANDLE_EXCHANGE)
    echo HANDLE_GESTURE, "\t", ord(HANDLE_GESTURE)
    echo HANDLE_ALL, "\t", ord(HANDLE_ALL)
    echo SUBSCRIPTIONS_REQUEST, "\t", ord(SUBSCRIPTIONS_REQUEST)
    
    var v = 0
    # var v:EVENT_GROUPS = HANDLE_INITIALIZATION
    
    case EVENT_GROUPS(v)
    of HANDLE_INITIALIZATION:
        echo HANDLE_INITIALIZATION, "\t", ord(HANDLE_INITIALIZATION)
    of HANDLE_MOUSE:
        echo HANDLE_MOUSE, "\t", ord(HANDLE_MOUSE)
    of HANDLE_KEY:
        echo HANDLE_KEY, "\t", ord(HANDLE_KEY)
    of HANDLE_FOCUS:
        echo HANDLE_FOCUS, "\t", ord(HANDLE_FOCUS)
    of HANDLE_DRAW:
        echo HANDLE_DRAW, "\t", ord(HANDLE_DRAW)
    of HANDLE_TIMER:
        echo HANDLE_TIMER, "\t", ord(HANDLE_TIMER)
    of HANDLE_BEHAVIOR_EVENT:
        echo HANDLE_BEHAVIOR_EVENT, "\t", ord(HANDLE_BEHAVIOR_EVENT)
    of HANDLE_METHOD_CALL:
        echo HANDLE_METHOD_CALL, "\t", ord(HANDLE_METHOD_CALL)
    of HANDLE_DATA_ARRIVED:
        echo HANDLE_DATA_ARRIVED, "\t", ord(HANDLE_DATA_ARRIVED)
    of HANDLE_SCROLL:
        echo HANDLE_SCROLL, "\t", ord(HANDLE_SCROLL)
    of HANDLE_SIZE:
        echo HANDLE_SIZE, "\t", ord(HANDLE_SIZE)
    of HANDLE_SCRIPTING_METHOD_CALL:
        echo HANDLE_SCRIPTING_METHOD_CALL, "\t", 
ord(HANDLE_SCRIPTING_METHOD_CALL)
    of HANDLE_TISCRIPT_METHOD_CALL:
        echo HANDLE_TISCRIPT_METHOD_CALL, "\t", ord(HANDLE_TISCRIPT_METHOD_CALL)
    of HANDLE_GESTURE:
        echo HANDLE_GESTURE, "\t", ord(HANDLE_GESTURE)
    else:
        echo "else"
    

Reply via email to