We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 961

Summary: SDLK_LMETA and SDLK_RMETA are no longer defined
Product: SDL Reporter: Kalle Olavi Niemitalo <kon>
Component: eventsAssignee: Ryan C. Gordon <icculus>
Status: RESOLVED FIXED QA Contact: Sam Lantinga <slouken>
Severity: minor    
Priority: P2    
Version: HG 2.0   
Hardware: All   
OS: All   

Description Kalle Olavi Niemitalo 2010-02-28 09:15:50 UTC
Bos Wars requires SDL 1.2.  I tried to build it on SDL 1.3 SVN r5558 and got these errors:

engine/ui/interface.cpp: In function 'int HandleKeyModifiersDown(unsigned int, unsigned int)':
engine/ui/interface.cpp:920: error: 'SDLK_LMETA' was not declared in this scope
engine/ui/interface.cpp:921: error: 'SDLK_RMETA' was not declared in this scope
engine/ui/interface.cpp:928: error: 'SDLK_LMETA' cannot appear in a constant-expression
engine/ui/interface.cpp:929: error: 'SDLK_RMETA' cannot appear in a constant-expression

It seems the SDLK_LMETA and SDLK_RMETA constants have been removed from SDL 1.3.  I grepped for them in the SDL source tree and these were the only hits:

./include/SDL_compat.h:230:#define SDLK_LSUPER SDLK_LMETA
./include/SDL_compat.h:231:#define SDLK_RSUPER SDLK_RMETA
./src/video/bwindow/SDL_BWin.h:194:        keymap[0x66] = SDLK_LMETA;
./src/video/bwindow/SDL_BWin.h:195:        keymap[0x67] = SDLK_RMETA;

I don't know how compatible SDL 1.3 is supposed to be with applications designed for SDL 1.2.  However, as you can see, SDL itself is still trying to use the removed constants, and that is clearly a bug.

Because SDL_compat.h defines KMOD_LMETA as KMOD_LGUI, I suppose it should also define SDLK_LMETA as SDLK_LGUI, and SDLK_RMETA likewise.
Comment 1 Sam Lantinga 2010-03-08 22:08:10 UTC
Thanks!  This is fixed in subversion revision 5560.