You can't accurately set a watchpoint on a bitfield.

On Thu, 9 Nov 2017 09:20:17 +0900
Carsten Haitzler <[email protected]> wrote:

> On Tue, 07 Nov 2017 07:45:50 -0800 Mike Blumenkrantz
> <[email protected]> said:
> 
> I'm curious... what was hard about debugging bitfields? at least in gdb:
> 
>   p blah->exists
> 
> if it's a bitfield will do the right thing... as will printing the struct...
> 
>   p *blah
> 
> ? what was hard?
> 
> > discomfitor pushed a commit to branch master.
> > 
> > http://git.enlightenment.org/core/enlightenment.git/commit/?id=59fa0e418dc78abc2d9e35635e44197ac8091520
> > 
> > commit 59fa0e418dc78abc2d9e35635e44197ac8091520
> > Author: Mike Blumenkrantz <[email protected]>
> > Date:   Mon Nov 6 12:46:08 2017 -0500
> > 
> >     use E_BITFIELD define for bitfield struct members
> >     
> >     on release builds this will be a bitfield, on devel builds it will make
> >     bools a normal unsigned char for easier debugging
> > ---
> >  src/bin/e_bindings.h                      |  20 +-
> >  src/bin/e_client.h                        | 368 ++++++++++++++
> > +--------------- src/bin/e_comp.h                          |  20 +-
> >  src/bin/e_comp_object.h                   |   2 +-
> >  src/bin/e_comp_wl.h                       |  58 ++---
> >  src/bin/e_comp_wl_data.h                  |   6 +-
> >  src/bin/e_comp_x.h                        |  60 ++---
> >  src/bin/e_config_dialog.h                 |  14 +-
> >  src/bin/e_confirm_dialog.h                |   2 +-
> >  src/bin/e_desk.h                          |   4 +-
> >  src/bin/e_desklock.h                      |   2 +-
> >  src/bin/e_dialog.h                        |   2 +-
> >  src/bin/e_dnd.h                           |  10 +-
> >  src/bin/e_exec.h                          |   4 +-
> >  src/bin/e_fm.h                            |  52 ++---
> >  src/bin/e_fm_op_registry.h                |   4 +-
> >  src/bin/e_gadcon.h                        |  26 +--
> >  src/bin/e_gadcon_popup.h                  |   8 +-
> >  src/bin/e_ilist.h                         |   6 +-
> >  src/bin/e_macros.h                        |   6 +
> >  src/bin/e_menu.h                          |  30 +--
> >  src/bin/e_module.h                        |   6 +-
> >  src/bin/e_object.h                        |   6 +-
> >  src/bin/e_pointer.h                       |  10 +-
> >  src/bin/e_randr2.h                        |  22 +-
> >  src/bin/e_remember.h                      |   2 +-
> >  src/bin/e_shelf.h                         |  18 +-
> >  src/bin/e_sys.h                           |   2 +-
> >  src/bin/e_zone.h                          |  12 +-
> >  src/modules/battery/e_mod_main.h          |   8 +-
> >  src/modules/luncher/luncher.h             |   4 +-
> >  src/modules/music-control/private.h       |   4 +-
> >  src/modules/notification/e_mod_main.h     |   2 +-
> >  src/modules/sysinfo/batman/batman.h       |   8 +-
> >  src/modules/sysinfo/sysinfo.h             |   4 +-
> >  src/modules/teamwork/e_mod_main.h         |   6 +-
> >  src/modules/temperature/e_mod_main.h      |   4 +-
> >  src/modules/vkbd/e_kbd_buf.h              |   4 +-
> >  src/modules/vkbd/e_kbd_int.h              |  26 +--
> >  src/modules/wireless/wireless.h           |   4 +-
> >  src/modules/wl_desktop_shell/e_mod_main.h |   6 +-
> >  41 files changed, 434 insertions(+), 428 deletions(-)
> > 
> > diff --git a/src/bin/e_bindings.h b/src/bin/e_bindings.h
> > index 940cac120..0bc9892a1 100644
> > --- a/src/bin/e_bindings.h
> > +++ b/src/bin/e_bindings.h
> > @@ -51,10 +51,10 @@ struct E_Binding_Event_Mouse_Button
> >  
> >     unsigned int modifiers; /**< modifier keys pressed during the event */
> >     unsigned int timestamp;
> > -   Eina_Bool double_click : 1;
> > -   Eina_Bool triple_click : 1;
> > -   Eina_Bool hold : 1;
> > -   Eina_Bool scroll : 1;
> > +   Eina_Bool double_click E_BITFIELD;
> > +   Eina_Bool triple_click E_BITFIELD;
> > +   Eina_Bool hold E_BITFIELD;
> > +   Eina_Bool scroll E_BITFIELD;
> >  };
> >  
> >  struct E_Binding_Event_Wheel
> > @@ -73,7 +73,7 @@ struct _E_Binding_Mouse
> >     E_Binding_Context ctxt;
> >     int button;
> >     E_Binding_Modifier mod;
> > -   unsigned char any_mod : 1;
> > +   unsigned char any_mod E_BITFIELD;
> >     const char *action;
> >     const char *params;
> >  };
> > @@ -83,7 +83,7 @@ struct _E_Binding_Key
> >     E_Binding_Context ctxt;
> >     const char *key;
> >     E_Binding_Modifier mod;
> > -   unsigned char any_mod : 1;
> > +   unsigned char any_mod E_BITFIELD;
> >     const char *action;
> >     const char *params;
> >  };
> > @@ -98,8 +98,8 @@ struct _E_Binding_Edge
> >  
> >     float delay;
> >     Ecore_Timer *timer;
> > -   Eina_Bool any_mod : 1;
> > -   Eina_Bool drag_only : 1;
> > +   Eina_Bool any_mod E_BITFIELD;
> > +   Eina_Bool drag_only E_BITFIELD;
> >  };
> >  
> >  struct _E_Binding_Signal
> > @@ -108,7 +108,7 @@ struct _E_Binding_Signal
> >     const char *sig;
> >     const char *src;
> >     E_Binding_Modifier mod;
> > -   unsigned char any_mod : 1;
> > +   unsigned char any_mod E_BITFIELD;
> >     const char *action;
> >     const char *params;
> >  };
> > @@ -119,7 +119,7 @@ struct _E_Binding_Wheel
> >     int direction;
> >     int z;
> >     E_Binding_Modifier mod;
> > -   unsigned char any_mod : 1;
> > +   unsigned char any_mod E_BITFIELD;
> >     const char *action;
> >     const char *params;
> >  };
> > diff --git a/src/bin/e_client.h b/src/bin/e_client.h
> > index 3687ddfd1..c2f7128b9 100644
> > --- a/src/bin/e_client.h
> > +++ b/src/bin/e_client.h
> > @@ -214,7 +214,7 @@ struct _E_Client_Hook
> >     E_Client_Hook_Point hookpoint;
> >     E_Client_Hook_Cb func;
> >     void               *data;
> > -   unsigned char       delete_me : 1;
> > +   unsigned char       delete_me E_BITFIELD;
> >  };
> >  
> >  struct _E_Client_Pending_Resize
> > @@ -272,7 +272,7 @@ struct E_Client
> >        E_Client               *next;
> >        E_Client               *prev;
> >        int                     ignore;
> > -      Eina_Bool               focus_skip : 1;
> > +      Eina_Bool               focus_skip E_BITFIELD;
> >     } stack;
> >  
> >     int               border_size; //size of client's border
> > @@ -284,7 +284,7 @@ struct E_Client
> >           int x, y, w, h;
> >           int mx, my;
> >        } current, last_down[3], last_up[3];
> > -      Eina_Bool in : 1;
> > +      Eina_Bool in E_BITFIELD;
> >     } mouse;
> >  
> >     struct
> > @@ -302,14 +302,14 @@ struct E_Client
> >  
> >     struct
> >     {
> > -      Eina_Bool mapping_change : 1;
> > -      Eina_Bool iconic_shading : 1;
> > +      Eina_Bool mapping_change E_BITFIELD;
> > +      Eina_Bool iconic_shading E_BITFIELD;
> >     } hacks;
> >  
> >     struct
> >     {
> > -      unsigned char changed : 1;
> > -      unsigned char user_selected : 1;
> > +      unsigned char changed E_BITFIELD;
> > +      unsigned char user_selected E_BITFIELD;
> >        Eina_Stringshare *name;
> >     } border;
> >  
> > @@ -319,13 +319,13 @@ struct E_Client
> >        E_Layer      layer;
> >        int          zone;
> >        E_Maximize   maximized;
> > -      Eina_Bool    frame : 1;
> > -      Eina_Bool    set : 1;
> > +      Eina_Bool    frame E_BITFIELD;
> > +      Eina_Bool    set E_BITFIELD;
> >     } saved;
> >  
> >     struct
> >     {
> > -      unsigned char valid : 1;
> > +      unsigned char valid E_BITFIELD;
> >        int           x, y, w, h;
> >        struct
> >        {
> > @@ -333,8 +333,8 @@ struct E_Client
> >        } saved;
> >     } pre_res_change;
> >  
> > -   unsigned char  shaped : 1;
> > -   unsigned char  argb : 1;
> > +   unsigned char  shaped E_BITFIELD;
> > +   unsigned char  argb E_BITFIELD;
> >  
> >     /* ICCCM */
> >     struct
> > @@ -362,11 +362,11 @@ struct E_Client
> >        Ecore_X_Gravity           gravity;
> >  #endif
> >        Eina_Stringshare         *window_role;
> > -      unsigned char             take_focus : 1;
> > -      unsigned char             accepts_focus : 1;
> > -      unsigned char             urgent : 1;
> > -      unsigned char             delete_request : 1;
> > -      unsigned char             request_pos : 1;
> > +      unsigned char             take_focus E_BITFIELD;
> > +      unsigned char             accepts_focus E_BITFIELD;
> > +      unsigned char             urgent E_BITFIELD;
> > +      unsigned char             delete_request E_BITFIELD;
> > +      unsigned char             request_pos E_BITFIELD;
> >        struct
> >        {
> >           int    argc;
> > @@ -374,18 +374,18 @@ struct E_Client
> >        } command;
> >        struct
> >        {
> > -         unsigned char title : 1;
> > -         unsigned char name_class : 1;
> > -         unsigned char icon_name : 1;
> > -         unsigned char machine : 1;
> > -         unsigned char hints : 1;
> > -         unsigned char size_pos_hints : 1;
> > -         unsigned char protocol : 1;
> > -         unsigned char transient_for : 1;
> > -         unsigned char client_leader : 1;
> > -         unsigned char window_role : 1;
> > -         unsigned char state : 1;
> > -         unsigned char command : 1;
> > +         unsigned char title E_BITFIELD;
> > +         unsigned char name_class E_BITFIELD;
> > +         unsigned char icon_name E_BITFIELD;
> > +         unsigned char machine E_BITFIELD;
> > +         unsigned char hints E_BITFIELD;
> > +         unsigned char size_pos_hints E_BITFIELD;
> > +         unsigned char protocol E_BITFIELD;
> > +         unsigned char transient_for E_BITFIELD;
> > +         unsigned char client_leader E_BITFIELD;
> > +         unsigned char window_role E_BITFIELD;
> > +         unsigned char state E_BITFIELD;
> > +         unsigned char command E_BITFIELD;
> >        } fetch;
> >     } icccm;
> >  
> > @@ -397,11 +397,11 @@ struct E_Client
> >        Ecore_X_MWM_Hint_Decor decor;
> >        Ecore_X_MWM_Hint_Input input;
> >  #endif
> > -      unsigned char          exists : 1;
> > -      unsigned char          borderless : 1;
> > +      unsigned char          exists E_BITFIELD;
> > +      unsigned char          borderless E_BITFIELD;
> >        struct
> >        {
> > -         unsigned char hints : 1;
> > +         unsigned char hints E_BITFIELD;
> >        } fetch;
> >     } mwm;
> >  
> > @@ -418,7 +418,7 @@ struct E_Client
> >        int           num_icons;
> >        unsigned int  user_time;
> >        unsigned char opacity;
> > -      Eina_Bool     opacity_changed : 1; // prevent fetching opacity next
> > prop change
> > +      Eina_Bool     opacity_changed E_BITFIELD; // prevent fetching opacity
> > next prop change struct
> >        {
> >           int left;
> > @@ -434,11 +434,11 @@ struct E_Client
> >           int bottom_start_x;
> >           int bottom_end_x;
> >        } strut;
> > -      unsigned char ping : 1;
> > +      unsigned char ping E_BITFIELD;
> >        struct
> >        {
> > -         unsigned char        request : 1;
> > -         unsigned char        alarm : 1;
> > +         unsigned char        request E_BITFIELD;
> > +         unsigned char        alarm E_BITFIELD;
> >           unsigned int         wait;
> >           unsigned int         serial;
> >           double               send_time;
> > @@ -447,31 +447,31 @@ struct E_Client
> >        /* NetWM Window state */
> >        struct
> >        {
> > -         unsigned char modal : 1;
> > -         unsigned char sticky : 1;
> > -         unsigned char maximized_v : 1;
> > -         unsigned char maximized_h : 1;
> > -         unsigned char shaded : 1;
> > -         unsigned char skip_taskbar : 1;
> > -         unsigned char skip_pager : 1;
> > -         unsigned char hidden : 1;
> > -         unsigned char fullscreen : 1;
> > +         unsigned char modal E_BITFIELD;
> > +         unsigned char sticky E_BITFIELD;
> > +         unsigned char maximized_v E_BITFIELD;
> > +         unsigned char maximized_h E_BITFIELD;
> > +         unsigned char shaded E_BITFIELD;
> > +         unsigned char skip_taskbar E_BITFIELD;
> > +         unsigned char skip_pager E_BITFIELD;
> > +         unsigned char hidden E_BITFIELD;
> > +         unsigned char fullscreen E_BITFIELD;
> >           E_Stacking    stacking;
> >        } state;
> >  
> >        /* NetWM Window allowed actions */
> >        struct
> >        {
> > -         unsigned char move : 1;
> > -         unsigned char resize : 1;
> > -         unsigned char minimize : 1;
> > -         unsigned char shade : 1;
> > -         unsigned char stick : 1;
> > -         unsigned char maximized_h : 1;
> > -         unsigned char maximized_v : 1;
> > -         unsigned char fullscreen : 1;
> > -         unsigned char change_desktop : 1;
> > -         unsigned char close : 1;
> > +         unsigned char move E_BITFIELD;
> > +         unsigned char resize E_BITFIELD;
> > +         unsigned char minimize E_BITFIELD;
> > +         unsigned char shade E_BITFIELD;
> > +         unsigned char stick E_BITFIELD;
> > +         unsigned char maximized_h E_BITFIELD;
> > +         unsigned char maximized_v E_BITFIELD;
> > +         unsigned char fullscreen E_BITFIELD;
> > +         unsigned char change_desktop E_BITFIELD;
> > +         unsigned char close E_BITFIELD;
> >        } action;
> >        E_Window_Type  type;
> >        E_Window_Type *extra_types;
> > @@ -480,25 +480,25 @@ struct E_Client
> >  
> >        struct
> >        {
> > -         unsigned char name : 1;
> > -         unsigned char icon_name : 1;
> > -         unsigned char icon : 1;
> > -         unsigned char user_time : 1;
> > -         unsigned char strut : 1;
> > -         unsigned char type : 1;
> > -         unsigned char state : 1;
> > -         unsigned char opacity : 1;
> > +         unsigned char name E_BITFIELD;
> > +         unsigned char icon_name E_BITFIELD;
> > +         unsigned char icon E_BITFIELD;
> > +         unsigned char user_time E_BITFIELD;
> > +         unsigned char strut E_BITFIELD;
> > +         unsigned char type E_BITFIELD;
> > +         unsigned char state E_BITFIELD;
> > +         unsigned char opacity E_BITFIELD;
> >           /* No, fetch on new_client, shouldn't be changed after map.
> > -            unsigned char pid : 1;
> > +            unsigned char pid E_BITFIELD;
> >            */
> >           /* No, ignore this
> > -            unsigned char desktop : 1;
> > +            unsigned char desktop E_BITFIELD;
> >            */
> >        } fetch;
> >  
> >        struct
> >        {
> > -         unsigned char state : 1;
> > +         unsigned char state E_BITFIELD;
> >        } update;
> >     } netwm;
> >  
> > @@ -511,7 +511,7 @@ struct E_Client
> >           {
> >              int           x, y;
> >  
> > -            unsigned char updated : 1;
> > +            unsigned char updated E_BITFIELD;
> >           } video_position;
> >           Ecore_Window video_parent;
> >           E_Client      *video_parent_client;
> > @@ -525,21 +525,21 @@ struct E_Client
> >              E_Desk           *wait_desk;
> >              E_Object_Delfn   *wait_desk_delfn;
> >              int               num;
> > -            unsigned char     wait_for_done : 1;
> > -            unsigned char     use : 1;
> > +            unsigned char     wait_for_done E_BITFIELD;
> > +            unsigned char     use E_BITFIELD;
> >           } profile;
> > -         Eina_Bool stack : 1;
> > -         unsigned char      centered : 1;
> > -         unsigned char      video : 1;
> > +         Eina_Bool stack E_BITFIELD;
> > +         unsigned char      centered E_BITFIELD;
> > +         unsigned char      video E_BITFIELD;
> >        } state;
> >  
> >        struct
> >        {
> > -         unsigned char state : 1;
> > -         unsigned char video_parent : 1;
> > -         unsigned char video_position : 1;
> > -         unsigned char profile : 1;
> > -         unsigned char stack : 1;
> > +         unsigned char state E_BITFIELD;
> > +         unsigned char video_parent E_BITFIELD;
> > +         unsigned char video_position E_BITFIELD;
> > +         unsigned char profile E_BITFIELD;
> > +         unsigned char stack E_BITFIELD;
> >        } fetch;
> >     } e;
> >  
> > @@ -547,116 +547,116 @@ struct E_Client
> >     {
> >        struct
> >        {
> > -         unsigned char soft_menu : 1;
> > -         unsigned char soft_menus : 1;
> > +         unsigned char soft_menu E_BITFIELD;
> > +         unsigned char soft_menus E_BITFIELD;
> >        } fetch;
> >  
> > -      unsigned char soft_menu : 1;
> > -      unsigned char soft_menus : 1;
> > +      unsigned char soft_menu E_BITFIELD;
> > +      unsigned char soft_menus E_BITFIELD;
> >     } qtopia;
> >  
> >     struct
> >     {
> >        struct
> >        {
> > -         unsigned char state : 1;
> > -         unsigned char vkbd : 1;
> > +         unsigned char state E_BITFIELD;
> > +         unsigned char vkbd E_BITFIELD;
> >        } fetch;
> >  #ifndef HAVE_WAYLAND_ONLY
> >        Ecore_X_Virtual_Keyboard_State state;
> >  #endif
> > -      unsigned char                  have_property : 1;
> > -      unsigned char                  vkbd : 1;
> > +      unsigned char                  have_property E_BITFIELD;
> > +      unsigned char                  vkbd E_BITFIELD;
> >     } vkbd;
> >  
> >     struct
> >     {
> > -      unsigned char visible : 1;
> > -      unsigned char pos : 1;
> > -      unsigned char size : 1;
> > -      unsigned char stack : 1;
> > -      unsigned char prop : 1;
> > -      unsigned char border : 1;
> > -      unsigned char reset_gravity : 1;
> > -      unsigned char shading : 1;
> > -      unsigned char shaded : 1;
> > -      unsigned char shape : 1;
> > -      unsigned char shape_input : 1;
> > -      unsigned char icon : 1;
> > -      Eina_Bool internal_state : 1;
> > -      Eina_Bool need_maximize : 1;
> > -      Eina_Bool need_unmaximize : 1;
> > -      Eina_Bool need_rescale : 1;
> > +      unsigned char visible E_BITFIELD;
> > +      unsigned char pos E_BITFIELD;
> > +      unsigned char size E_BITFIELD;
> > +      unsigned char stack E_BITFIELD;
> > +      unsigned char prop E_BITFIELD;
> > +      unsigned char border E_BITFIELD;
> > +      unsigned char reset_gravity E_BITFIELD;
> > +      unsigned char shading E_BITFIELD;
> > +      unsigned char shaded E_BITFIELD;
> > +      unsigned char shape E_BITFIELD;
> > +      unsigned char shape_input E_BITFIELD;
> > +      unsigned char icon E_BITFIELD;
> > +      Eina_Bool internal_state E_BITFIELD;
> > +      Eina_Bool need_maximize E_BITFIELD;
> > +      Eina_Bool need_unmaximize E_BITFIELD;
> > +      Eina_Bool need_rescale E_BITFIELD;
> >     } changes;
> >  
> > -   unsigned int       visible : 1; // client is set to be visible by 
> > display
> > server (never use this)
> > -   unsigned int       hidden : 1; // set when window has been hidden by api
> > and should not be shown
> > -   unsigned int       moving : 1;
> > -   unsigned int       focused : 1;
> > -   unsigned int       new_client : 1;
> > -   unsigned int       re_manage : 1; // client is persisting from before E
> > restart
> > -   unsigned int       placed : 1;
> > -   unsigned int       shading : 1;
> > -   unsigned int       shaded : 1;
> > -   unsigned int       iconic : 1;
> > -   unsigned int       deskshow : 1;
> > -   unsigned int       sticky : 1;
> > -   unsigned int       urgent : 1;
> > -   unsigned int       shaped_input : 1;
> > -   unsigned int       need_shape_merge : 1;
> > -   unsigned int       need_shape_export : 1;
> > -   unsigned int       fullscreen : 1;
> > -   unsigned int       need_fullscreen : 1;
> > -   unsigned int       already_unparented : 1;
> > -   unsigned int       need_reparent : 1;
> > -   unsigned int       button_grabbed : 1;
> > -   unsigned int       delete_requested : 1;
> > -   unsigned int       ping_ok : 1;
> > -   unsigned int       hung : 1;
> > -   unsigned int       take_focus : 1;
> > -   unsigned int       want_focus : 1;
> > -   unsigned int       user_skip_winlist : 1;
> > +   unsigned int       visible E_BITFIELD; // client is set to be visible by
> > display server (never use this)
> > +   unsigned int       hidden E_BITFIELD; // set when window has been hidden
> > by api and should not be shown
> > +   unsigned int       moving E_BITFIELD;
> > +   unsigned int       focused E_BITFIELD;
> > +   unsigned int       new_client E_BITFIELD;
> > +   unsigned int       re_manage E_BITFIELD; // client is persisting from
> > before E restart
> > +   unsigned int       placed E_BITFIELD;
> > +   unsigned int       shading E_BITFIELD;
> > +   unsigned int       shaded E_BITFIELD;
> > +   unsigned int       iconic E_BITFIELD;
> > +   unsigned int       deskshow E_BITFIELD;
> > +   unsigned int       sticky E_BITFIELD;
> > +   unsigned int       urgent E_BITFIELD;
> > +   unsigned int       shaped_input E_BITFIELD;
> > +   unsigned int       need_shape_merge E_BITFIELD;
> > +   unsigned int       need_shape_export E_BITFIELD;
> > +   unsigned int       fullscreen E_BITFIELD;
> > +   unsigned int       need_fullscreen E_BITFIELD;
> > +   unsigned int       already_unparented E_BITFIELD;
> > +   unsigned int       need_reparent E_BITFIELD;
> > +   unsigned int       button_grabbed E_BITFIELD;
> > +   unsigned int       delete_requested E_BITFIELD;
> > +   unsigned int       ping_ok E_BITFIELD;
> > +   unsigned int       hung E_BITFIELD;
> > +   unsigned int       take_focus E_BITFIELD;
> > +   unsigned int       want_focus E_BITFIELD;
> > +   unsigned int       user_skip_winlist E_BITFIELD;
> >     E_Maximize         maximized;
> >     E_Fullscreen       fullscreen_policy;
> > -   unsigned int       borderless : 1;
> > -   unsigned char      offer_resistance : 1;
> > +   unsigned int       borderless E_BITFIELD;
> > +   unsigned char      offer_resistance E_BITFIELD;
> >     Eina_Stringshare  *bordername;
> >  
> > -   unsigned int       lock_user_location : 1; /*DONE*/
> > -   unsigned int       lock_client_location : 1; /*DONE*/
> > -   unsigned int       lock_user_size : 1; /*DONE*/
> > -   unsigned int       lock_client_size : 1; /*DONE*/
> > -   unsigned int       lock_user_stacking : 1; /*DONE*/
> > -   unsigned int       lock_client_stacking : 1; /*DONE*/
> > -   unsigned int       lock_user_iconify : 1; /*DONE*/
> > -   unsigned int       lock_client_iconify : 1; /*DONE*/
> > -   unsigned int       lock_user_desk : 1;
> > -   unsigned int       lock_client_desk : 1;
> > -   unsigned int       lock_user_sticky : 1; /*DONE*/
> > -   unsigned int       lock_client_sticky : 1; /*DONE*/
> > -   unsigned int       lock_user_shade : 1; /*DONE*/
> > -   unsigned int       lock_client_shade : 1; /*DONE*/
> > -   unsigned int       lock_user_maximize : 1; /*DONE*/
> > -   unsigned int       lock_client_maximize : 1; /*DONE*/
> > -   unsigned int       lock_user_fullscreen : 1; /*DONE*/
> > -   unsigned int       lock_client_fullscreen : 1; /*DONE*/
> > -   unsigned int       lock_border : 1; /*DONE*/
> > -   unsigned int       lock_close : 1; /*DONE*/
> > -   unsigned int       lock_focus_in : 1; /*DONE*/
> > -   unsigned int       lock_focus_out : 1; /*DONE*/
> > -   unsigned int       lock_life : 1; /*DONE*/
> > -
> > -   unsigned int       stolen : 1;
> > -
> > -   unsigned int       internal : 1;
> > -   unsigned int       internal_no_remember : 1;
> > -   unsigned int       internal_no_reopen : 1;
> > +   unsigned int       lock_user_location E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_location E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_size E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_size E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_stacking E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_stacking E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_iconify E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_iconify E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_desk E_BITFIELD;
> > +   unsigned int       lock_client_desk E_BITFIELD;
> > +   unsigned int       lock_user_sticky E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_sticky E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_shade E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_shade E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_maximize E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_maximize E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_user_fullscreen E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_client_fullscreen E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_border E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_close E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_focus_in E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_focus_out E_BITFIELD; /*DONE*/
> > +   unsigned int       lock_life E_BITFIELD; /*DONE*/
> > +
> > +   unsigned int       stolen E_BITFIELD;
> > +
> > +   unsigned int       internal E_BITFIELD;
> > +   unsigned int       internal_no_remember E_BITFIELD;
> > +   unsigned int       internal_no_reopen E_BITFIELD;
> >  
> >     Evas_Object       *internal_elm_win;
> >  
> >     double             ping;
> >  
> > -   unsigned char      changed : 1;
> > +   unsigned char      changed E_BITFIELD;
> >  
> >     unsigned char      icon_preference;
> >  
> > @@ -677,7 +677,7 @@ struct E_Client
> >  
> >     struct
> >     {
> > -      unsigned char start : 1;
> > +      unsigned char start E_BITFIELD;
> >        int           x, y;
> >     } drag;
> >  
> > @@ -689,12 +689,12 @@ struct E_Client
> >     Efreet_Desktop            *desktop;
> >     E_Exec_Instance           *exe_inst;
> >  
> > -   unsigned char              comp_hidden   : 1;
> > +   unsigned char              comp_hidden   E_BITFIELD;
> >  
> > -   unsigned char              post_move   : 1;
> > -   unsigned char              post_resize : 1;
> > -   unsigned char              post_show : 1;
> > -   unsigned char              during_lost : 1;
> > +   unsigned char              post_move   E_BITFIELD;
> > +   unsigned char              post_resize E_BITFIELD;
> > +   unsigned char              post_show E_BITFIELD;
> > +   unsigned char              during_lost E_BITFIELD;
> >  
> >     Ecore_Idle_Enterer        *post_job;
> >  
> > @@ -706,24 +706,24 @@ struct E_Client
> >     int volume;
> >     int volume_min;
> >     int volume_max;
> > -   unsigned char mute : 1;
> > -   unsigned char volume_control_enabled : 1;
> > -
> > -   Eina_Bool override : 1;
> > -   Eina_Bool input_only : 1;
> > -   Eina_Bool dialog : 1;
> > -   Eina_Bool tooltip : 1;
> > -   Eina_Bool redirected : 1;
> > -   Eina_Bool unredirected_single : 1; //window has been selectively
> > unredirected
> > -   Eina_Bool shape_changed : 1;
> > -   Eina_Bool layer_block : 1; // client is doing crazy stuff and should not
> > be relayered in protocol
> > -   Eina_Bool ignored : 1; // client is comp-ignored
> > -   Eina_Bool no_shape_cut : 1; // client shape should not be cut
> > -   Eina_Bool maximize_override : 1; // client is doing crazy stuff and
> > should "just do it" when moving/resizing
> > -   Eina_Bool maximize_anims_disabled : 1; // client cannot invoke anims or
> > it will break
> > -   Eina_Bool keyboard_resizing : 1;
> > -
> > -   Eina_Bool on_post_updates : 1; // client is on the post update list
> > +   unsigned char mute E_BITFIELD;
> > +   unsigned char volume_control_enabled E_BITFIELD;
> > +
> > +   Eina_Bool override E_BITFIELD;
> > +   Eina_Bool input_only E_BITFIELD;
> > +   Eina_Bool dialog E_BITFIELD;
> > +   Eina_Bool tooltip E_BITFIELD;
> > +   Eina_Bool redirected E_BITFIELD;
> > +   Eina_Bool unredirected_single E_BITFIELD; //window has been selectively
> > unredirected
> > +   Eina_Bool shape_changed E_BITFIELD;
> > +   Eina_Bool layer_block E_BITFIELD; // client is doing crazy stuff and
> > should not be relayered in protocol
> > +   Eina_Bool ignored E_BITFIELD; // client is comp-ignored
> > +   Eina_Bool no_shape_cut E_BITFIELD; // client shape should not be cut
> > +   Eina_Bool maximize_override E_BITFIELD; // client is doing crazy stuff
> > and should "just do it" when moving/resizing
> > +   Eina_Bool maximize_anims_disabled E_BITFIELD; // client cannot invoke
> > anims or it will break
> > +   Eina_Bool keyboard_resizing E_BITFIELD;
> > +
> > +   Eina_Bool on_post_updates E_BITFIELD; // client is on the post update 
> > list
> >  };
> >  
> >  #define e_client_focus_policy_click(ec) \
> > diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h
> > index 48e2f21de..ec8b80ea0 100644
> > --- a/src/bin/e_comp.h
> > +++ b/src/bin/e_comp.h
> > @@ -75,8 +75,8 @@ typedef struct E_Comp_Screen_Iface
> >     Eina_Bool (*key_down)(Ecore_Event_Key *ev);
> >     /* is key event eaten */
> >     Eina_Bool (*key_up)(Ecore_Event_Key *ev);
> > -   Eina_Bool relative_motion : 1;
> > -   Eina_Bool backlight_enabled : 1;
> > +   Eina_Bool relative_motion E_BITFIELD;
> > +   Eina_Bool backlight_enabled E_BITFIELD;
> >  } E_Comp_Screen_Iface;
> >  
> >  /* struct to hold canvas objects so that abi doesn't break
> > @@ -162,15 +162,15 @@ struct _E_Comp
> >     E_Comp_Cb        bindings_grab_cb; //callback for triggering binding
> > input grab E_Comp_Cb        bindings_ungrab_cb; //callback for triggering
> > binding input ungrab 
> > -   Eina_Bool       gl : 1; //gl is active
> > -   Eina_Bool       grabbed : 1; //xserver is grabbed
> > -   Eina_Bool       nocomp : 1; //nocomp is active
> > -   Eina_Bool       nocomp_want : 1; //nocomp is pending
> > -   Eina_Bool       saver : 1; //screensaver is active
> > -   Eina_Bool       shape_queue_blocked : 1; //x11 input shape updates are
> > blocked
> > +   Eina_Bool       gl E_BITFIELD; //gl is active
> > +   Eina_Bool       grabbed E_BITFIELD; //xserver is grabbed
> > +   Eina_Bool       nocomp E_BITFIELD; //nocomp is active
> > +   Eina_Bool       nocomp_want E_BITFIELD; //nocomp is pending
> > +   Eina_Bool       saver E_BITFIELD; //screensaver is active
> > +   Eina_Bool       shape_queue_blocked E_BITFIELD; //x11 input shape 
> > updates
> > are blocked 
> > -   Eina_Bool       rendering : 1; // we've received a pre-render callback
> > but no post-render yet.
> > -   Eina_Bool       updating : 1; // running client updates
> > +   Eina_Bool       rendering E_BITFIELD; // we've received a pre-render
> > callback but no post-render yet.
> > +   Eina_Bool       updating E_BITFIELD; // running client updates
> >  };
> >  
> >  
> > diff --git a/src/bin/e_comp_object.h b/src/bin/e_comp_object.h
> > index aa62ce1b1..7cd170103 100644
> > --- a/src/bin/e_comp_object.h
> > +++ b/src/bin/e_comp_object.h
> > @@ -29,7 +29,7 @@ struct E_Event_Comp_Object
> >  struct E_Comp_Object_Frame
> >  {
> >     int l, r, t, b;
> > -   Eina_Bool calc : 1; // inset has been calculated
> > +   Eina_Bool calc E_BITFIELD; // inset has been calculated
> >  };
> >  
> >  
> > diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
> > index 84212850d..1569bf1b8 100644
> > --- a/src/bin/e_comp_wl.h
> > +++ b/src/bin/e_comp_wl.h
> > @@ -82,8 +82,8 @@ struct _E_Comp_Wl_Surface_State
> >     struct wl_listener buffer_destroy_listener;
> >     Eina_List *damages, *frames;
> >     Eina_Tiler *input, *opaque;
> > -   Eina_Bool new_attach : 1;
> > -   Eina_Bool has_data : 1;
> > +   Eina_Bool new_attach E_BITFIELD;
> > +   Eina_Bool has_data E_BITFIELD;
> >  };
> >  
> >  struct _E_Comp_Wl_Subsurf_Data
> > @@ -192,7 +192,7 @@ struct _E_Comp_Wl_Data
> >       {
> >          Eina_List *resources;
> >          Eina_List *focused;
> > -        Eina_Bool enabled : 1;
> > +        Eina_Bool enabled E_BITFIELD;
> >          xkb_mod_mask_t mod_depressed, mod_latched, mod_locked;
> >          xkb_layout_index_t mod_group;
> >          xkb_layout_index_t choosen_group;
> > @@ -209,13 +209,13 @@ struct _E_Comp_Wl_Data
> >          uint32_t serial[2]; //down/up
> >          uint32_t button_mask;
> >          E_Client *ec;
> > -        Eina_Bool enabled : 1;
> > +        Eina_Bool enabled E_BITFIELD;
> >       } ptr;
> >  
> >     struct
> >       {
> >          Eina_List *resources;
> > -        Eina_Bool enabled : 1;
> > +        Eina_Bool enabled E_BITFIELD;
> >       } touch;
> >  
> >     struct
> > @@ -285,8 +285,8 @@ struct _E_Comp_Wl_Data
> >     E_Client *drag_client;
> >     void *drag_source;
> >  
> > -   Eina_Bool dmabuf_disable : 1;
> > -   Eina_Bool dmabuf_proxy : 1;
> > +   Eina_Bool dmabuf_disable E_BITFIELD;
> > +   Eina_Bool dmabuf_proxy E_BITFIELD;
> >  };
> >  
> >  struct _E_Comp_Wl_Client_Data
> > @@ -320,11 +320,11 @@ struct _E_Comp_Wl_Client_Data
> >          {
> >             Evas_Coord_Size min_size;
> >             Evas_Coord_Size max_size;
> > -           Eina_Bool fullscreen : 1;
> > -           Eina_Bool unfullscreen : 1;
> > -           Eina_Bool maximize : 1;
> > -           Eina_Bool unmaximize : 1;
> > -           Eina_Bool minimize : 1;
> > +           Eina_Bool fullscreen E_BITFIELD;
> > +           Eina_Bool unfullscreen E_BITFIELD;
> > +           Eina_Bool maximize E_BITFIELD;
> > +           Eina_Bool unmaximize E_BITFIELD;
> > +           Eina_Bool minimize E_BITFIELD;
> >          } set;
> >       } shell;
> >     struct
> > @@ -346,9 +346,9 @@ struct _E_Comp_Wl_Client_Data
> >     Tizen_Extensions *tizen;
> >     struct
> >       {
> > -        Eina_Bool  changed : 1;
> > +        Eina_Bool  changed E_BITFIELD;
> >          Eina_List *hints;
> > -        Eina_Bool  use_msg : 1;
> > +        Eina_Bool  use_msg E_BITFIELD;
> >       } aux_hint;
> >  
> >     int32_t on_outputs; /* Bitfield of the outputs this client is present on
> > */ @@ -362,19 +362,19 @@ struct _E_Comp_Wl_Client_Data
> >  
> >     int early_frame;
> >  
> > -   Eina_Bool mapped : 1;
> > -   Eina_Bool evas_init : 1;
> > -   Eina_Bool cursor : 1;
> > -   Eina_Bool moved : 1;
> > -   Eina_Bool maximizing : 1;
> > -   Eina_Bool in_commit : 1;
> > -   Eina_Bool is_xdg_surface : 1;
> > -   Eina_Bool grab : 1;
> > -   Eina_Bool buffer_commit : 1;
> > -   Eina_Bool need_xdg6_configure : 1;
> > -   Eina_Bool maximize_anims_disabled : 1;
> > -   Eina_Bool ssd_mouse_in : 1;
> > -   Eina_Bool need_center : 1;
> > +   Eina_Bool mapped E_BITFIELD;
> > +   Eina_Bool evas_init E_BITFIELD;
> > +   Eina_Bool cursor E_BITFIELD;
> > +   Eina_Bool moved E_BITFIELD;
> > +   Eina_Bool maximizing E_BITFIELD;
> > +   Eina_Bool in_commit E_BITFIELD;
> > +   Eina_Bool is_xdg_surface E_BITFIELD;
> > +   Eina_Bool grab E_BITFIELD;
> > +   Eina_Bool buffer_commit E_BITFIELD;
> > +   Eina_Bool need_xdg6_configure E_BITFIELD;
> > +   Eina_Bool maximize_anims_disabled E_BITFIELD;
> > +   Eina_Bool ssd_mouse_in E_BITFIELD;
> > +   Eina_Bool need_center E_BITFIELD;
> >  };
> >  
> >  struct _E_Comp_Wl_Output
> > @@ -399,8 +399,8 @@ struct _E_Comp_Wl_Pointer
> >  {
> >     E_Client *cursor;
> >     Evas_Point offset;
> > -   Eina_Bool entered : 1;
> > -   Eina_Bool cursor_set : 1;
> > +   Eina_Bool entered E_BITFIELD;
> > +   Eina_Bool cursor_set E_BITFIELD;
> >  };
> >  
> >  E_API Eina_Bool e_comp_wl_init(void);
> > diff --git a/src/bin/e_comp_wl_data.h b/src/bin/e_comp_wl_data.h
> > index d9bf888ac..bc76b5c75 100644
> > --- a/src/bin/e_comp_wl_data.h
> > +++ b/src/bin/e_comp_wl_data.h
> > @@ -53,8 +53,8 @@ struct _E_Comp_Wl_Data_Source
> >     enum wl_data_device_manager_dnd_action compositor_action;
> >     uint32_t serial;
> >  
> > -   Eina_Bool accepted : 1;
> > -   Eina_Bool actions_set : 1;
> > +   Eina_Bool accepted E_BITFIELD;
> > +   Eina_Bool actions_set E_BITFIELD;
> >  };
> >  
> >  struct _E_Comp_Wl_Data_Offer
> > @@ -65,7 +65,7 @@ struct _E_Comp_Wl_Data_Offer
> >     struct wl_listener source_destroy_listener; //listener for destroy of
> > source uint32_t dnd_actions;
> >     enum wl_data_device_manager_dnd_action preferred_dnd_action;
> > -   Eina_Bool in_ask : 1;
> > +   Eina_Bool in_ask E_BITFIELD;
> >  };
> >  
> >  struct _E_Comp_Wl_Clipboard_Source
> > diff --git a/src/bin/e_comp_x.h b/src/bin/e_comp_x.h
> > index 1217e844b..afe18d7fd 100644
> > --- a/src/bin/e_comp_x.h
> > +++ b/src/bin/e_comp_x.h
> > @@ -34,7 +34,7 @@ struct _E_Comp_X_Client_Data
> >     unsigned int internal_props_set; //don't need to refetch our own 
> > internal
> > props 
> >     Ecore_Timer *first_draw_delay; //configurable placebo
> > -   Eina_Bool first_damage : 1; //ignore first damage on non-re_manage 
> > clients
> > +   Eina_Bool first_damage E_BITFIELD; //ignore first damage on 
> > non-re_manage
> > clients 
> >     unsigned int parent_activate_count; //number of times a win has 
> > activated
> > itself when parent was focused 
> > @@ -44,47 +44,47 @@ struct _E_Comp_X_Client_Data
> >        {
> >           struct
> >           {
> > -            unsigned char conformant : 1;
> > +            unsigned char conformant E_BITFIELD;
> >           } fetch;
> > -         unsigned char conformant : 1;
> > +         unsigned char conformant E_BITFIELD;
> >        } conformant;
> >        struct
> >        {
> >           struct
> >           {
> > -            unsigned char state : 1;
> > +            unsigned char state E_BITFIELD;
> >              struct
> >              {
> > -               unsigned int major : 1;
> > -               unsigned int minor : 1;
> > +               unsigned int major E_BITFIELD;
> > +               unsigned int minor E_BITFIELD;
> >              } priority;
> > -            unsigned char quickpanel : 1;
> > -            unsigned char zone : 1;
> > +            unsigned char quickpanel E_BITFIELD;
> > +            unsigned char zone E_BITFIELD;
> >           } fetch;
> >           Ecore_X_Illume_Quickpanel_State state;
> >           struct
> >           {
> > -            unsigned int major : 1;
> > -            unsigned int minor : 1;
> > +            unsigned int major E_BITFIELD;
> > +            unsigned int minor E_BITFIELD;
> >           } priority;
> > -         unsigned char                   quickpanel : 1;
> > +         unsigned char                   quickpanel E_BITFIELD;
> >           int                             zone;
> >        } quickpanel;
> >        struct
> >        {
> >           struct
> >           {
> > -            unsigned char drag : 1;
> > -            unsigned char locked : 1;
> > +            unsigned char drag E_BITFIELD;
> > +            unsigned char locked E_BITFIELD;
> >           } fetch;
> > -         unsigned char drag : 1;
> > -         unsigned char locked : 1;
> > +         unsigned char drag E_BITFIELD;
> > +         unsigned char locked E_BITFIELD;
> >        } drag;
> >        struct
> >        {
> >           struct
> >           {
> > -            unsigned char state : 1;
> > +            unsigned char state E_BITFIELD;
> >           } fetch;
> >           Ecore_X_Illume_Window_State state;
> >        } win_state;
> > @@ -94,20 +94,20 @@ struct _E_Comp_X_Client_Data
> >     uint32_t surface_id;
> >  #endif
> >  
> > -   Eina_Bool moving : 1;
> > -   Eina_Bool first_map : 1;
> > -   Eina_Bool change_icon : 1;
> > -   Eina_Bool need_reparent : 1;
> > -   Eina_Bool reparented : 1;
> > -   Eina_Bool deleted : 1;
> > -   Eina_Bool button_grabbed : 1;
> > -   Eina_Bool fetch_exe : 1;
> > -   Eina_Bool set_win_type : 1;
> > -   Eina_Bool frame_update : 1;
> > -   Eina_Bool evas_init : 1;
> > -   Eina_Bool unredirected_single : 1;
> > -   Eina_Bool fetch_gtk_frame_extents : 1;
> > -   Eina_Bool iconic : 1;
> > +   Eina_Bool moving E_BITFIELD;
> > +   Eina_Bool first_map E_BITFIELD;
> > +   Eina_Bool change_icon E_BITFIELD;
> > +   Eina_Bool need_reparent E_BITFIELD;
> > +   Eina_Bool reparented E_BITFIELD;
> > +   Eina_Bool deleted E_BITFIELD;
> > +   Eina_Bool button_grabbed E_BITFIELD;
> > +   Eina_Bool fetch_exe E_BITFIELD;
> > +   Eina_Bool set_win_type E_BITFIELD;
> > +   Eina_Bool frame_update E_BITFIELD;
> > +   Eina_Bool evas_init E_BITFIELD;
> > +   Eina_Bool unredirected_single E_BITFIELD;
> > +   Eina_Bool fetch_gtk_frame_extents E_BITFIELD;
> > +   Eina_Bool iconic E_BITFIELD;
> >  };
> >  
> >  E_API Eina_Bool e_comp_x_init(void);
> > diff --git a/src/bin/e_config_dialog.h b/src/bin/e_config_dialog.h
> > index ac97779e9..47b8d8bfe 100644
> > --- a/src/bin/e_config_dialog.h
> > +++ b/src/bin/e_config_dialog.h
> > @@ -19,10 +19,10 @@ typedef struct _E_Config_Dialog_Data 
> > E_Config_Dialog_Data;
> >  
> >  struct _E_Config_Dialog_View
> >  {
> > -   unsigned char override_auto_apply : 1;
> > -   unsigned char basic_only : 1;
> > -   unsigned char normal_win : 1;
> > -   unsigned char scroll : 1;
> > +   unsigned char override_auto_apply E_BITFIELD;
> > +   unsigned char basic_only E_BITFIELD;
> > +   unsigned char normal_win E_BITFIELD;
> > +   unsigned char scroll E_BITFIELD;
> >  
> >     void           *(*create_cfdata)     (E_Config_Dialog *cfd);
> >     void            (*free_cfdata)       (E_Config_Dialog *cfd,
> > E_Config_Dialog_Data *cfdata); @@ -50,9 +50,9 @@ struct _E_Config_Dialog
> >     E_Dialog                    *dia;
> >     void                        *data;
> >     Ecore_Timer                 *auto_apply_timer;
> > -   unsigned char                hide_buttons : 1;
> > -   unsigned char                cfg_changed : 1;
> > -   unsigned char                cfg_changed_auto : 1;
> > +   unsigned char                hide_buttons E_BITFIELD;
> > +   unsigned char                cfg_changed E_BITFIELD;
> > +   unsigned char                cfg_changed_auto E_BITFIELD;
> >  };
> >  
> >  E_API E_Config_Dialog *e_config_dialog_new(Evas_Object *parent, const char
> > *title, const char *name, const char *class, const char *icon, int 
> > icon_size,
> > E_Config_Dialog_View *view, void *data); diff --git
> > a/src/bin/e_confirm_dialog.h b/src/bin/e_confirm_dialog.h index
> > 6740af3b0..612ed8609 100644
> > --- a/src/bin/e_confirm_dialog.h
> > +++ b/src/bin/e_confirm_dialog.h
> > @@ -29,7 +29,7 @@ struct _E_Confirm_Dialog
> >        void *data;
> >        void  (*func)(void *data);
> >     } del;
> > -   Eina_Bool no_run : 1;
> > +   Eina_Bool no_run E_BITFIELD;
> >  };
> >  
> >  /*
> > diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h
> > index 389b1beea..bb277e56d 100644
> > --- a/src/bin/e_desk.h
> > +++ b/src/bin/e_desk.h
> > @@ -30,8 +30,8 @@ struct _E_Desk
> >     Eina_Stringshare    *name;
> >     Eina_Stringshare    *window_profile;
> >     int                  x, y;
> > -   unsigned char        visible : 1;
> > -   unsigned int         deskshow_toggle : 1;
> > +   unsigned char        visible E_BITFIELD;
> > +   unsigned int         deskshow_toggle E_BITFIELD;
> >     Eina_List            *fullscreen_clients;
> >  
> >     Evas_Object         *bg_object;
> > diff --git a/src/bin/e_desklock.h b/src/bin/e_desklock.h
> > index 5f6289553..10cd24888 100644
> > --- a/src/bin/e_desklock.h
> > +++ b/src/bin/e_desklock.h
> > @@ -34,7 +34,7 @@ struct E_Desklock_Interface
> >     E_Desklock_Hide_Cb hide;
> >     E_Desklock_Key_Cb key_down;
> >     E_Desklock_Key_Cb key_up;
> > -   Eina_Bool active : 1; //interface is currently being used for locking
> > +   Eina_Bool active E_BITFIELD; //interface is currently being used for
> > locking };
> >  
> >  struct _E_Event_Desklock
> > diff --git a/src/bin/e_dialog.h b/src/bin/e_dialog.h
> > index 426abb07f..6523597b3 100644
> > --- a/src/bin/e_dialog.h
> > +++ b/src/bin/e_dialog.h
> > @@ -23,7 +23,7 @@ struct _E_Dialog
> >     Eina_List           *buttons;
> >     void                *data;
> >     int                  min_w, min_h;
> > -   unsigned char        resizable : 1;
> > +   unsigned char        resizable E_BITFIELD;
> >  };
> >  
> >  typedef void (*E_Dialog_Cb)(void *data, E_Dialog *dia);
> > diff --git a/src/bin/e_dnd.h b/src/bin/e_dnd.h
> > index a02d4ab81..3456830d3 100644
> > --- a/src/bin/e_dnd.h
> > +++ b/src/bin/e_dnd.h
> > @@ -47,8 +47,8 @@ struct _E_Drag
> >     unsigned int       button_mask;
> >  
> >     E_Layer            layer;
> > -   unsigned char      visible : 1;
> > -   Eina_Bool          ended : 1;
> > +   unsigned char      visible E_BITFIELD;
> > +   Eina_Bool          ended E_BITFIELD;
> >  
> >     unsigned int       num_types;
> >     const char        *types[];
> > @@ -72,9 +72,9 @@ struct _E_Drop_Handler
> >     int           x, y, w, h;
> >  
> >     const char   *active_type;
> > -   Eina_Bool active : 1;
> > -   Eina_Bool entered : 1;
> > -   Eina_Bool hidden : 1;
> > +   Eina_Bool active E_BITFIELD;
> > +   Eina_Bool entered E_BITFIELD;
> > +   Eina_Bool hidden E_BITFIELD;
> >     unsigned int  num_types;
> >     Eina_Stringshare *types[];
> >  };
> > diff --git a/src/bin/e_exec.h b/src/bin/e_exec.h
> > index 2aa1f427d..c6de54c5e 100644
> > --- a/src/bin/e_exec.h
> > +++ b/src/bin/e_exec.h
> > @@ -20,8 +20,8 @@ struct _E_Exec_Instance
> >     int             used;
> >     int             ref;
> >     Eina_List      *watchers;
> > -   Eina_Bool       phony : 1;
> > -   Eina_Bool       deleted : 1;
> > +   Eina_Bool       phony E_BITFIELD;
> > +   Eina_Bool       deleted E_BITFIELD;
> >  };
> >  
> >  typedef enum
> > diff --git a/src/bin/e_fm.h b/src/bin/e_fm.h
> > index aff1b72d2..6bf0396a8 100644
> > --- a/src/bin/e_fm.h
> > +++ b/src/bin/e_fm.h
> > @@ -61,16 +61,16 @@ struct _E_Fm2_Config
> >     struct
> >     {
> >        E_Fm2_View_Mode mode;
> > -      Eina_Bool       open_dirs_in_place : 1;
> > -      Eina_Bool       selector : 1;
> > -      Eina_Bool       single_click : 1;
> > -      Eina_Bool       no_subdir_jump : 1;
> > -      Eina_Bool       no_subdir_drop : 1;
> > -      Eina_Bool       always_order : 1;
> > -      Eina_Bool       link_drop : 1;
> > -      Eina_Bool       fit_custom_pos : 1;
> > -      Eina_Bool       no_typebuf_set : 1;
> > -      Eina_Bool       no_click_rename : 1;
> > +      Eina_Bool       open_dirs_in_place E_BITFIELD;
> > +      Eina_Bool       selector E_BITFIELD;
> > +      Eina_Bool       single_click E_BITFIELD;
> > +      Eina_Bool       no_subdir_jump E_BITFIELD;
> > +      Eina_Bool       no_subdir_drop E_BITFIELD;
> > +      Eina_Bool       always_order E_BITFIELD;
> > +      Eina_Bool       link_drop E_BITFIELD;
> > +      Eina_Bool       fit_custom_pos E_BITFIELD;
> > +      Eina_Bool       no_typebuf_set E_BITFIELD;
> > +      Eina_Bool       no_click_rename E_BITFIELD;
> >        unsigned int    single_click_delay;
> >     } view;
> >     /* display of icons */
> > @@ -87,7 +87,7 @@ struct _E_Fm2_Config
> >        } fixed;
> >        struct
> >        {
> > -         Eina_Bool show : 1;
> > +         Eina_Bool show E_BITFIELD;
> >        } extension;
> >        const char *key_hint;
> >        unsigned int max_thumb_size;
> > @@ -97,31 +97,31 @@ struct _E_Fm2_Config
> >     {
> >        struct
> >        {
> > -         Eina_Bool no_case : 1;
> > -         Eina_Bool size : 1;
> > -         Eina_Bool extension : 1;
> > -         Eina_Bool mtime : 1;
> > +         Eina_Bool no_case E_BITFIELD;
> > +         Eina_Bool size E_BITFIELD;
> > +         Eina_Bool extension E_BITFIELD;
> > +         Eina_Bool mtime E_BITFIELD;
> >           struct
> >           {
> > -            Eina_Bool first : 1;
> > -            Eina_Bool last : 1;
> > +            Eina_Bool first E_BITFIELD;
> > +            Eina_Bool last E_BITFIELD;
> >           } dirs;
> >        } sort;
> >     } list;
> >     /* control how you can select files */
> >     struct
> >     {
> > -      Eina_Bool single : 1;
> > -      Eina_Bool windows_modifiers : 1;
> > +      Eina_Bool single E_BITFIELD;
> > +      Eina_Bool windows_modifiers E_BITFIELD;
> >     } selection;
> >     /* the background - if any, and how to handle it */
> >     /* FIXME: not implemented yet */
> >     struct
> >     {
> >        const char *background, *frame, *icons;
> > -      Eina_Bool   fixed : 1;
> > +      Eina_Bool   fixed E_BITFIELD;
> >     } theme;
> > -   Eina_Bool secure_rm : 1;
> > +   Eina_Bool secure_rm E_BITFIELD;
> >  };
> >  
> >  struct _E_Fm2_Icon_Info
> > @@ -139,11 +139,11 @@ struct _E_Fm2_Icon_Info
> >     const char   *category;
> >     struct stat   statinfo;
> >     unsigned char icon_type;
> > -   Eina_Bool     mount : 1;
> > -   Eina_Bool     removable : 1;
> > -   Eina_Bool     removable_full : 1;
> > -   Eina_Bool     deleted : 1;
> > -   Eina_Bool     broken_link : 1;
> > +   Eina_Bool     mount E_BITFIELD;
> > +   Eina_Bool     removable E_BITFIELD;
> > +   Eina_Bool     removable_full E_BITFIELD;
> > +   Eina_Bool     deleted E_BITFIELD;
> > +   Eina_Bool     broken_link E_BITFIELD;
> >  };
> >  
> >  typedef void (*E_Fm_Cb)(void *data, Evas_Object *obj, E_Menu *m,
> > E_Fm2_Icon_Info *info); diff --git a/src/bin/e_fm_op_registry.h
> > b/src/bin/e_fm_op_registry.h index 2a385ec14..9d9ba7a0a 100644
> > --- a/src/bin/e_fm_op_registry.h
> > +++ b/src/bin/e_fm_op_registry.h
> > @@ -30,9 +30,9 @@ struct _E_Fm2_Op_Registry_Entry
> >     int eta; /* XXX use double? */
> >     E_Fm_Op_Type op;
> >     E_Fm2_Op_Status status;
> > -   Eina_Bool needs_attention:1;
> > +   Eina_Bool needs_attention E_BITFIELD;
> >     E_Dialog *dialog;
> > -   Eina_Bool finished:1;
> > +   Eina_Bool finished E_BITFIELD;
> >  
> >     // service callbacks
> >     struct
> > diff --git a/src/bin/e_gadcon.h b/src/bin/e_gadcon.h
> > index b95ae7f5a..c9c95b13e 100644
> > --- a/src/bin/e_gadcon.h
> > +++ b/src/bin/e_gadcon.h
> > @@ -125,7 +125,7 @@ struct _E_Gadcon
> >     } urgent_show;
> >  
> >     E_Config_Dialog   *config_dialog;
> > -   unsigned char      editing : 1;
> > +   unsigned char      editing E_BITFIELD;
> >     Ecore_X_Window     dnd_win, xdnd_win;
> >     E_Shelf           *shelf;
> >     E_Toolbar         *toolbar;
> > @@ -137,10 +137,10 @@ struct _E_Gadcon
> >  
> >     E_Config_Gadcon   *cf;
> >  
> > -   unsigned char      instant_edit : 1;
> > -   unsigned char      dummy : 1;
> > -   Eina_Bool          custom : 1;
> > -   Eina_Bool          cfg_delete : 1;
> > +   unsigned char      instant_edit E_BITFIELD;
> > +   unsigned char      dummy E_BITFIELD;
> > +   Eina_Bool          custom E_BITFIELD;
> > +   Eina_Bool          cfg_delete E_BITFIELD;
> >  };
> >  
> >  #define GADCON_CLIENT_CLASS_VERSION 3
> > @@ -194,7 +194,7 @@ struct _E_Gadcon_Client
> >        int seq, flags;   /* goes to save */
> >        int state, resist;
> >        int prev_pos, prev_size;
> > -      Eina_Bool want_save : 1;
> > +      Eina_Bool want_save E_BITFIELD;
> >     } state_info;
> >  
> >     struct
> > @@ -215,12 +215,12 @@ struct _E_Gadcon_Client
> >  
> >     E_Menu                 *menu;
> >     const char             *style;
> > -   unsigned char           autoscroll : 1;
> > -   unsigned char           resizable : 1;
> > -   unsigned char           moving : 1;
> > -   unsigned char           resizing : 1;
> > -   unsigned char           autoscroll_set : 1;
> > -   unsigned char           autoscroll_disabled : 1;
> > +   unsigned char           autoscroll E_BITFIELD;
> > +   unsigned char           resizable E_BITFIELD;
> > +   unsigned char           moving E_BITFIELD;
> > +   unsigned char           resizing E_BITFIELD;
> > +   unsigned char           autoscroll_set E_BITFIELD;
> > +   unsigned char           autoscroll_disabled E_BITFIELD;
> >     Evas_Coord              dx, dy;
> >  
> >     struct
> > @@ -229,7 +229,7 @@ struct _E_Gadcon_Client
> >        E_Drag *drag;
> >     } drag;
> >  
> > -   unsigned char           hidden : 1;
> > +   unsigned char           hidden E_BITFIELD;
> >  
> >     E_Config_Gadcon_Client *cf;
> >     char                    pscrollstate;
> > diff --git a/src/bin/e_gadcon_popup.h b/src/bin/e_gadcon_popup.h
> > index 4914ddc50..fdaed54ab 100644
> > --- a/src/bin/e_gadcon_popup.h
> > +++ b/src/bin/e_gadcon_popup.h
> > @@ -19,10 +19,10 @@ struct _E_Gadcon_Popup
> >     Evas_Object        *content;
> >     Ecore_Event_Handler *autoclose_handlers[2];
> >  
> > -   Eina_Bool            pinned : 1;
> > -   Eina_Bool            gadcon_lock : 1;
> > -   Eina_Bool            gadcon_was_locked : 1;
> > -   Eina_Bool            visible : 1;
> > +   Eina_Bool            pinned E_BITFIELD;
> > +   Eina_Bool            gadcon_lock E_BITFIELD;
> > +   Eina_Bool            gadcon_was_locked E_BITFIELD;
> > +   Eina_Bool            visible E_BITFIELD;
> >  };
> >  
> >  E_API E_Gadcon_Popup *e_gadcon_popup_new(E_Gadcon_Client *gcc, Eina_Bool
> > noshadow); diff --git a/src/bin/e_ilist.h b/src/bin/e_ilist.h
> > index b295aacf9..2f2f1e338 100644
> > --- a/src/bin/e_ilist.h
> > +++ b/src/bin/e_ilist.h
> > @@ -13,9 +13,9 @@ struct _E_Ilist_Item
> >     Evas_Object *o_base;
> >     Evas_Object *o_icon;
> >     Evas_Object *o_end;
> > -   unsigned char header : 1;
> > -   unsigned char selected : 1;
> > -   unsigned char queued : 1;
> > +   unsigned char header E_BITFIELD;
> > +   unsigned char selected E_BITFIELD;
> > +   unsigned char queued E_BITFIELD;
> >  
> >     void (*func) (void *data, void *data2);
> >     void (*func_hilight) (void *data, void *data2);
> > diff --git a/src/bin/e_macros.h b/src/bin/e_macros.h
> > index f648e9931..44f68b6cf 100644
> > --- a/src/bin/e_macros.h
> > +++ b/src/bin/e_macros.h
> > @@ -134,4 +134,10 @@
> >  #define E_EXPAND(X) E_WEIGHT((X), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND)
> >  #define E_FILL(X) E_ALIGN((X), EVAS_HINT_FILL, EVAS_HINT_FILL)
> >  
> > +#ifdef E_RELEASE_BUILD
> > +# define E_BITFIELD :1
> > +#else
> > +# define E_BITFIELD
> > +#endif
> > +
> >  #endif
> > diff --git a/src/bin/e_menu.h b/src/bin/e_menu.h
> > index eee572344..7ffc035f6 100644
> > --- a/src/bin/e_menu.h
> > +++ b/src/bin/e_menu.h
> > @@ -31,7 +31,7 @@ struct _E_Menu
> >     const char             *category;
> >  
> >     struct {
> > -      Eina_Bool         visible : 1;
> > +      Eina_Bool         visible E_BITFIELD;
> >        int               x, y, w, h;
> >     } cur, prev;
> >  
> > @@ -64,13 +64,13 @@ struct _E_Menu
> >        void (*func) (void *data, E_Menu *m);
> >     } pre_activate_cb, post_deactivate_cb;
> >  
> > -   Eina_Bool        realized : 1; /* 1 if it is realized */
> > -   Eina_Bool        active : 1; /* 1 if it is in active list */
> > -   Eina_Bool        changed : 1;
> > -   Eina_Bool        fast_mouse : 1;
> > -   Eina_Bool        pending_new_submenu : 1;
> > -   Eina_Bool        have_submenu : 1;
> > -   Eina_Bool        in_active_list : 1;
> > +   Eina_Bool        realized E_BITFIELD; /* 1 if it is realized */
> > +   Eina_Bool        active E_BITFIELD; /* 1 if it is in active list */
> > +   Eina_Bool        changed E_BITFIELD;
> > +   Eina_Bool        fast_mouse E_BITFIELD;
> > +   Eina_Bool        pending_new_submenu E_BITFIELD;
> > +   Eina_Bool        have_submenu E_BITFIELD;
> > +   Eina_Bool        in_active_list E_BITFIELD;
> >  };
> >  
> >  struct _E_Menu_Item
> > @@ -133,13 +133,13 @@ struct _E_Menu_Item
> >        int x, y;
> >     } drag;
> >  
> > -   Eina_Bool  separator : 1;
> > -   Eina_Bool  radio : 1;
> > -   Eina_Bool  check : 1;
> > -   Eina_Bool  toggle : 1;
> > -   Eina_Bool  changed : 1;
> > -   Eina_Bool  active : 1;
> > -   Eina_Bool  disable : 1;
> > +   Eina_Bool  separator E_BITFIELD;
> > +   Eina_Bool  radio E_BITFIELD;
> > +   Eina_Bool  check E_BITFIELD;
> > +   Eina_Bool  toggle E_BITFIELD;
> > +   Eina_Bool  changed E_BITFIELD;
> > +   Eina_Bool  active E_BITFIELD;
> > +   Eina_Bool  disable E_BITFIELD;
> >  };
> >  
> >  struct _E_Menu_Category_Callback
> > diff --git a/src/bin/e_module.h b/src/bin/e_module.h
> > index 5e3bf6233..69c850f25 100644
> > --- a/src/bin/e_module.h
> > +++ b/src/bin/e_module.h
> > @@ -21,7 +21,7 @@ extern E_API int E_EVENT_MODULE_INIT_END;
> >  struct _E_Event_Module_Update
> >  {
> >     const char *name;
> > -   Eina_Bool enabled : 1;
> > +   Eina_Bool enabled E_BITFIELD;
> >  };
> >  
> >  struct _E_Module
> > @@ -41,8 +41,8 @@ struct _E_Module
> >        int    (*save)        (E_Module *m);
> >     } func;
> >  
> > -   Eina_Bool        enabled : 1;
> > -   Eina_Bool        error : 1;
> > +   Eina_Bool        enabled E_BITFIELD;
> > +   Eina_Bool        error E_BITFIELD;
> >  
> >     /* the module is allowed to modify these */
> >     void                *data;
> > diff --git a/src/bin/e_object.h b/src/bin/e_object.h
> > index 75304ac44..4f2622b2a 100644
> > --- a/src/bin/e_object.h
> > +++ b/src/bin/e_object.h
> > @@ -68,8 +68,8 @@ struct _E_Object
> >     void                    *data;
> >     Ecore_Job               *delay_del_job;
> >     int                      walking_list;
> > -   Eina_Bool                ref_debug : 1;
> > -   Eina_Bool                deleted : 1;
> > +   Eina_Bool                ref_debug E_BITFIELD;
> > +   Eina_Bool                deleted E_BITFIELD;
> >  };
> >  
> >  struct _E_Object_Delfn
> > @@ -78,7 +78,7 @@ struct _E_Object_Delfn
> >  
> >     void (*func) (void *data, void *obj);
> >     void  *data;
> > -   Eina_Bool delete_me : 1;
> > +   Eina_Bool delete_me E_BITFIELD;
> >  };
> >  
> >  E_API void *e_object_alloc               (int size, int type,
> > E_Object_Cleanup_Func cleanup_func); diff --git a/src/bin/e_pointer.h
> > b/src/bin/e_pointer.h index 37b6e1952..55f9a2a84 100644
> > --- a/src/bin/e_pointer.h
> > +++ b/src/bin/e_pointer.h
> > @@ -49,7 +49,7 @@ struct _E_Pointer
> >     struct 
> >       {
> >          int x, y;
> > -        Eina_Bool update : 1;
> > +        Eina_Bool update E_BITFIELD;
> >       } hot;
> >  
> >     Ecore_Timer *idle_tmr;
> > @@ -57,10 +57,10 @@ struct _E_Pointer
> >  
> >     Eina_List *stack;
> >  
> > -   Eina_Bool e_cursor : 1;
> > -   Eina_Bool color : 1;
> > -   Eina_Bool idle : 1;
> > -   Eina_Bool canvas : 1;
> > +   Eina_Bool e_cursor E_BITFIELD;
> > +   Eina_Bool color E_BITFIELD;
> > +   Eina_Bool idle E_BITFIELD;
> > +   Eina_Bool canvas E_BITFIELD;
> >  };
> >  
> >  EINTERN int e_pointer_init(void);
> > diff --git a/src/bin/e_randr2.h b/src/bin/e_randr2.h
> > index 02614f2b3..9d32e26c5 100644
> > --- a/src/bin/e_randr2.h
> > +++ b/src/bin/e_randr2.h
> > @@ -50,7 +50,7 @@ struct _E_Randr2_Mode
> >  {
> >     int    w, h; // resolution width and height
> >     double refresh; // refresh in hz
> > -   Eina_Bool preferred : 1; // is this the preferred mode for the device?
> > +   Eina_Bool preferred E_BITFIELD; // is this the preferred mode for the
> > device? };
> >  
> >  struct _E_Randr2_Screen
> > @@ -62,14 +62,14 @@ struct _E_Randr2_Screen
> >        char                 *edid; // full edid data
> >        E_Randr2_Connector    connector; // the connector type
> >        unsigned int          subpixel; //ecore_drm2_output_subpixel_get
> > -      Eina_Bool             is_lid : 1; // is an internal screen
> > -      Eina_Bool             lid_closed : 1; // is lid closed when screen
> > qury'd
> > -      Eina_Bool             connected : 1; // some screen is plugged in or
> > not
> > -      Eina_Bool             backlight : 1; // does it have backlight
> > controls?
> > -      Eina_Bool             can_rot_0 : 1; // can it do this rotation?
> > -      Eina_Bool             can_rot_90 : 1; // can it do this rotation?
> > -      Eina_Bool             can_rot_180 : 1; // can it do this rotation?
> > -      Eina_Bool             can_rot_270 : 1; // can it do this rotation?
> > +      Eina_Bool             is_lid E_BITFIELD; // is an internal screen
> > +      Eina_Bool             lid_closed E_BITFIELD; // is lid closed when
> > screen qury'd
> > +      Eina_Bool             connected E_BITFIELD; // some screen is plugged
> > in or not
> > +      Eina_Bool             backlight E_BITFIELD; // does it have backlight
> > controls?
> > +      Eina_Bool             can_rot_0 E_BITFIELD; // can it do this 
> > rotation?
> > +      Eina_Bool             can_rot_90 E_BITFIELD; // can it do this
> > rotation?
> > +      Eina_Bool             can_rot_180 E_BITFIELD; // can it do this
> > rotation?
> > +      Eina_Bool             can_rot_270 E_BITFIELD; // can it do this
> > rotation? Eina_List            *modes; // available screen modes here
> >        struct {
> >           int                w, h; // physical width and height in mm
> > @@ -85,8 +85,8 @@ struct _E_Randr2_Screen
> >        E_Randr2_Mode         mode; // screen res/refresh to use
> >        int                   rotation; // 0, 90, 180, 270
> >        int                   priority; // larger num == more important
> > -      Eina_Bool             enabled : 1; // should this monitor be enabled?
> > -      Eina_Bool             configured : 1; // has screen been configured 
> > by
> > e?
> > +      Eina_Bool             enabled E_BITFIELD; // should this monitor be
> > enabled?
> > +      Eina_Bool             configured E_BITFIELD; // has screen been
> > configured by e? 
> >        char                 *profile; // profile name to use on this screen
> >        double                scale_multiplier; // if 0.0 - then dont 
> > multiply
> > scale diff --git a/src/bin/e_remember.h b/src/bin/e_remember.h
> > index 3edf8fe8d..fafd18598 100644
> > --- a/src/bin/e_remember.h
> > +++ b/src/bin/e_remember.h
> > @@ -118,7 +118,7 @@ struct _E_Remember
> >     } prop;
> >     Eina_Stringshare *uuid;
> >     int pid;
> > -   Eina_Bool applying : 1;
> > +   Eina_Bool applying E_BITFIELD;
> >  };
> >  
> >  EINTERN int      e_remember_init(E_Startup_Mode mode);
> > diff --git a/src/bin/e_shelf.h b/src/bin/e_shelf.h
> > index 9a7d9a850..59accf942 100644
> > --- a/src/bin/e_shelf.h
> > +++ b/src/bin/e_shelf.h
> > @@ -41,16 +41,16 @@ struct _E_Shelf
> >     Eina_List           *handlers;
> >     Ecore_Event_Handler *autohide;
> >     Eina_List           *zone_obstacles;
> > -   unsigned char        fit_along   : 1;
> > -   unsigned char        fit_size    : 1;
> > -   unsigned char        hidden      : 1;
> > -   unsigned char        toggle      : 1;
> > -   unsigned char        edge        : 1;
> > -   unsigned char        urgent_show : 1;
> > -   unsigned char        dummy : 1;
> > -   Eina_Bool            cfg_delete : 1;
> > +   unsigned char        fit_along   E_BITFIELD;
> > +   unsigned char        fit_size    E_BITFIELD;
> > +   unsigned char        hidden      E_BITFIELD;
> > +   unsigned char        toggle      E_BITFIELD;
> > +   unsigned char        edge        E_BITFIELD;
> > +   unsigned char        urgent_show E_BITFIELD;
> > +   unsigned char        dummy E_BITFIELD;
> > +   Eina_Bool            cfg_delete E_BITFIELD;
> >     unsigned int         locked;
> > -   Eina_Bool hiding : 1;
> > +   Eina_Bool hiding E_BITFIELD;
> >  };
> >  
> >  typedef struct E_Event_Shelf
> > diff --git a/src/bin/e_sys.h b/src/bin/e_sys.h
> > index cf1e735bd..6b85c0f21 100644
> > --- a/src/bin/e_sys.h
> > +++ b/src/bin/e_sys.h
> > @@ -23,7 +23,7 @@ struct _E_Sys_Con_Action
> >     const char *button_name;
> >     void (*func) (void *data);
> >     const void *data;
> > -   Eina_Bool disabled : 1;
> > +   Eina_Bool disabled E_BITFIELD;
> >  };
> >  
> >  #else
> > diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h
> > index f3eb3f329..da08c9f42 100644
> > --- a/src/bin/e_zone.h
> > +++ b/src/bin/e_zone.h
> > @@ -91,10 +91,10 @@ struct _E_Zone
> >  
> >     Eina_Rectangle useful_geometry[2];
> >     char *randr2_id; // same id we get from randr2 so look it up there
> > -   Eina_Bool useful_geometry_changed : 1;
> > -   Eina_Bool useful_geometry_dirty : 1;
> > -   Eina_Bool      stowed : 1;
> > -   Eina_Bool desk_flip_sync : 1;
> > +   Eina_Bool useful_geometry_changed E_BITFIELD;
> > +   Eina_Bool useful_geometry_dirty E_BITFIELD;
> > +   Eina_Bool      stowed E_BITFIELD;
> > +   Eina_Bool desk_flip_sync E_BITFIELD;
> >  };
> >  
> >  struct _E_Event_Zone_Generic
> > @@ -121,7 +121,7 @@ struct _E_Event_Zone_Edge
> >     int         x, y;
> >     int         modifiers;
> >     int         button;
> > -   Eina_Bool  drag : 1;
> > +   Eina_Bool  drag E_BITFIELD;
> >  };
> >  
> >  struct _E_Zone_Obstacle
> > @@ -130,7 +130,7 @@ struct _E_Zone_Obstacle
> >     EINA_INLIST;
> >     int x, y, w, h;
> >     E_Object *owner;
> > -   Eina_Bool vertical : 1;
> > +   Eina_Bool vertical E_BITFIELD;
> >  };
> >  
> >  EINTERN int    e_zone_init(void);
> > diff --git a/src/modules/battery/e_mod_main.h
> > b/src/modules/battery/e_mod_main.h index 8af3cb1c1..e79d97586 100644
> > --- a/src/modules/battery/e_mod_main.h
> > +++ b/src/modules/battery/e_mod_main.h
> > @@ -68,8 +68,8 @@ struct _Battery
> >  #if defined HAVE_EEZE || defined __OpenBSD__ || defined __DragonFly__ ||
> >  #defined __FreeBSD__ || defined __NetBSD__
> >     Ecore_Poller *poll;
> >  #endif
> > -   Eina_Bool present:1;
> > -   Eina_Bool charging:1;
> > +   Eina_Bool present E_BITFIELD;
> > +   Eina_Bool charging E_BITFIELD;
> >  #if defined HAVE_EEZE || defined __OpenBSD__ || defined __DragonFly__ ||
> >  #defined __FreeBSD__ || defined __NetBSD__
> >     double last_update;
> >     double percent;
> > @@ -93,7 +93,7 @@ struct _Battery
> >     const char *technology;
> >     const char *model;
> >     const char *vendor;
> > -   Eina_Bool got_prop:1;
> > +   Eina_Bool got_prop E_BITFIELD;
> >     Eldbus_Proxy *proxy;
> >     int * mib;
> >  #if defined(__FreeBSD__) || defined(__DragonFly__)
> > @@ -108,7 +108,7 @@ struct _Battery
> >  struct _Ac_Adapter
> >  {
> >     const char *udi;
> > -   Eina_Bool present:1;
> > +   Eina_Bool present E_BITFIELD;
> >     const char *product;
> >     Eldbus_Proxy *proxy;
> >     int * mib;
> > diff --git a/src/modules/luncher/luncher.h b/src/modules/luncher/luncher.h
> > index 73b211b1f..ac2935bb8 100644
> > --- a/src/modules/luncher/luncher.h
> > +++ b/src/modules/luncher/luncher.h
> > @@ -92,8 +92,8 @@ struct _Icon
> >     Eina_Bool         preview_dismissed;
> >     struct
> >     {
> > -      unsigned char start : 1;
> > -      unsigned char dnd : 1;
> > +      unsigned char start E_BITFIELD;
> > +      unsigned char dnd E_BITFIELD;
> >        int           x, y;
> >     } drag;
> >  };
> > diff --git a/src/modules/music-control/private.h
> > b/src/modules/music-control/private.h index 7cae597a2..817074cf5 100644
> > --- a/src/modules/music-control/private.h
> > +++ b/src/modules/music-control/private.h
> > @@ -17,7 +17,7 @@ typedef struct _E_Music_Control_Module_Context
> >  {
> >     Eina_List *instances;
> >     Eldbus_Connection *conn;
> > -   Eina_Bool playing:1;
> > +   Eina_Bool playing E_BITFIELD;
> >     Eina_Stringshare *meta_artist;
> >     Eina_Stringshare *meta_album;
> >     Eina_Stringshare *meta_title;
> > @@ -26,7 +26,7 @@ typedef struct _E_Music_Control_Module_Context
> >     Eldbus_Proxy *mpris2_player;
> >     E_Config_DD *conf_edd;
> >     Music_Control_Config *config;
> > -   Eina_Bool actions_set:1;
> > +   Eina_Bool actions_set E_BITFIELD;
> >  } E_Music_Control_Module_Context;
> >  
> >  typedef struct _E_Music_Control_Instance
> > diff --git a/src/modules/notification/e_mod_main.h
> > b/src/modules/notification/e_mod_main.h index 2669bfa44..077a5e494 100644
> > --- a/src/modules/notification/e_mod_main.h
> > +++ b/src/modules/notification/e_mod_main.h
> > @@ -67,7 +67,7 @@ struct _Popup_Data
> >    const char  *app_name;
> >    Evas_Object *app_icon;
> >    Ecore_Timer *timer;
> > -  Eina_Bool pending : 1;
> > +  Eina_Bool pending E_BITFIELD;
> >  };
> >  
> >  
> > diff --git a/src/modules/sysinfo/batman/batman.h
> > b/src/modules/sysinfo/batman/batman.h index 1b6684551..68f1d91d0 100644
> > --- a/src/modules/sysinfo/batman/batman.h
> > +++ b/src/modules/sysinfo/batman/batman.h
> > @@ -30,8 +30,8 @@ struct _Battery
> >  #if defined(HAVE_EEZE) || defined(__OpenBSD__) || defined(__DragonFly__) ||
> >  #defined(__FreeBSD__) || defined(__NetBSD__)
> >     Ecore_Poller *poll;
> >  #endif
> > -   Eina_Bool present:1;
> > -   Eina_Bool charging:1;
> > +   Eina_Bool present E_BITFIELD;
> > +   Eina_Bool charging E_BITFIELD;
> >  #if defined(HAVE_EEZE) || defined(__OpenBSD__) || defined(__DragonFly__) ||
> >  #defined(__FreeBSD__) || defined(__NetBSD__)
> >     double last_update;
> >     double percent;
> > @@ -55,7 +55,7 @@ struct _Battery
> >     const char *technology;
> >     const char *model;
> >     const char *vendor;
> > -   Eina_Bool got_prop:1;
> > +   Eina_Bool got_prop E_BITFIELD;
> >     Eldbus_Proxy *proxy;
> >     int * mib;
> >  #if defined(__FreeBSD__) || defined(__DragonFly__)
> > @@ -71,7 +71,7 @@ struct _Ac_Adapter
> >  {
> >     Instance *inst;
> >     const char *udi;
> > -   Eina_Bool present:1;
> > +   Eina_Bool present E_BITFIELD;
> >     const char *product;
> >     Eldbus_Proxy *proxy;
> >     int * mib;
> > diff --git a/src/modules/sysinfo/sysinfo.h b/src/modules/sysinfo/sysinfo.h
> > index 387e4eba9..ed641f774 100644
> > --- a/src/modules/sysinfo/sysinfo.h
> > +++ b/src/modules/sysinfo/sysinfo.h
> > @@ -80,7 +80,7 @@ struct _Tempthread
> >  #if defined(HAVE_EEZE)
> >     Eina_List *tempdevs;
> >  #endif
> > -   Eina_Bool initted : 1;
> > +   Eina_Bool initted E_BITFIELD;
> >  };
> >  
> >  struct _Cpu_Status
> > @@ -174,7 +174,7 @@ struct _Config_Item
> >  #endif
> >        Ecore_Thread        *th;
> >  
> > -      Eina_Bool            have_temp:1;
> > +      Eina_Bool            have_temp E_BITFIELD;
> >        Eina_List           *handlers;
> >        Eina_Bool            defer;
> >        Eina_Bool            done;
> > diff --git a/src/modules/teamwork/e_mod_main.h
> > b/src/modules/teamwork/e_mod_main.h index e7f1d6ad6..e9ff6252a 100644
> > --- a/src/modules/teamwork/e_mod_main.h
> > +++ b/src/modules/teamwork/e_mod_main.h
> > @@ -39,9 +39,9 @@ typedef struct Mod
> >     Eina_Inlist *media_list;
> >     Eina_Hash *media;
> >     Evas_Object *pop;
> > -   Eina_Bool sticky : 1;
> > -   Eina_Bool force : 1;
> > -   Eina_Bool hidden : 1;
> > +   Eina_Bool sticky E_BITFIELD;
> > +   Eina_Bool force E_BITFIELD;
> > +   Eina_Bool hidden E_BITFIELD;
> >  } Mod;
> >  
> >  extern Teamwork_Config *tw_config;
> > diff --git a/src/modules/temperature/e_mod_main.h
> > b/src/modules/temperature/e_mod_main.h index b9cf67187..5c49e442a 100644
> > --- a/src/modules/temperature/e_mod_main.h
> > +++ b/src/modules/temperature/e_mod_main.h
> > @@ -46,7 +46,7 @@ struct _Tempthread
> >  #ifdef HAVE_EEZE
> >     Eina_List *tempdevs;
> >  #endif
> > -   Eina_Bool initted : 1;
> > +   Eina_Bool initted E_BITFIELD;
> >  };
> >  
> >  struct _Config_Face
> > @@ -73,7 +73,7 @@ struct _Config_Face
> >     E_Menu *menu;
> >     Ecore_Thread *th;
> >  
> > -   Eina_Bool have_temp:1;
> > +   Eina_Bool have_temp E_BITFIELD;
> >  };
> >  
> >  struct _Config
> > diff --git a/src/modules/vkbd/e_kbd_buf.h b/src/modules/vkbd/e_kbd_buf.h
> > index 9838d6631..6b2611b3c 100644
> > --- a/src/modules/vkbd/e_kbd_buf.h
> > +++ b/src/modules/vkbd/e_kbd_buf.h
> > @@ -41,8 +41,8 @@ struct _E_Kbd_Buf_Keystroke
> >     const char       *key;
> >     int               x, y;
> >     E_Kbd_Buf_Layout *layout;
> > -   unsigned char     shift : 1;
> > -   unsigned char     capslock : 1;
> > +   unsigned char     shift E_BITFIELD;
> > +   unsigned char     capslock E_BITFIELD;
> >  };
> >  
> >  struct _E_Kbd_Buf_Layout 
> > diff --git a/src/modules/vkbd/e_kbd_int.h b/src/modules/vkbd/e_kbd_int.h
> > index ca536109d..5cf8ea7f3 100644
> > --- a/src/modules/vkbd/e_kbd_int.h
> > +++ b/src/modules/vkbd/e_kbd_int.h
> > @@ -59,14 +59,14 @@ struct _E_Kbd_Int
> >     struct {
> >        Evas_Coord        x, y;
> >        int               lx, ly;
> > -      unsigned char     down : 1;
> > -      unsigned char     stroke : 1;
> > -      unsigned char     zoom : 1;
> > -      unsigned char     twofinger : 1;
> > +      unsigned char     down E_BITFIELD;
> > +      unsigned char     stroke E_BITFIELD;
> > +      unsigned char     zoom E_BITFIELD;
> > +      unsigned char     twofinger E_BITFIELD;
> >     } down;
> >  
> >     E_Kbd_Buf           *kbuf;
> > -   Eina_Bool            visible : 1;
> > +   Eina_Bool            visible E_BITFIELD;
> >  };
> >  
> >  struct _E_Kbd_Int_Key
> > @@ -76,15 +76,15 @@ struct _E_Kbd_Int_Key
> >     Eina_List *states;
> >     Evas_Object *obj, *zoom_obj, *icon_obj, *zoom_icon_obj;
> >  
> > -   unsigned char pressed : 1;
> > -   unsigned char selected : 1;
> > +   unsigned char pressed E_BITFIELD;
> > +   unsigned char selected E_BITFIELD;
> >  
> > -   unsigned char is_shift : 1;
> > -   unsigned char is_multi_shift : 1;
> > -   unsigned char is_ctrl : 1;
> > -   unsigned char is_alt : 1;
> > -   unsigned char is_altgr : 1;
> > -   unsigned char is_capslock : 1;
> > +   unsigned char is_shift E_BITFIELD;
> > +   unsigned char is_multi_shift E_BITFIELD;
> > +   unsigned char is_ctrl E_BITFIELD;
> > +   unsigned char is_alt E_BITFIELD;
> > +   unsigned char is_altgr E_BITFIELD;
> > +   unsigned char is_capslock E_BITFIELD;
> >  };
> >  
> >  struct _E_Kbd_Int_Key_State
> > diff --git a/src/modules/wireless/wireless.h 
> > b/src/modules/wireless/wireless.h
> > index 432113d07..91a7b7f7f 100644
> > --- a/src/modules/wireless/wireless.h
> > +++ b/src/modules/wireless/wireless.h
> > @@ -110,8 +110,8 @@ typedef struct Wireless_Connection
> >     Eina_Stringshare *proxy_url;
> >     Eina_Array *proxy_servers;
> >     Eina_Array *proxy_excludes;
> > -   Eina_Bool ipv6 : 1;
> > -   Eina_Bool favorite : 1;
> > +   Eina_Bool ipv6 E_BITFIELD;
> > +   Eina_Bool favorite E_BITFIELD;
> >  } Wireless_Connection;
> >  
> >  typedef void (*Wireless_Auth_Cb)(void *data, const Eina_Array *fields);
> > diff --git a/src/modules/wl_desktop_shell/e_mod_main.h
> > b/src/modules/wl_desktop_shell/e_mod_main.h index d6042544b..4fa0795dc 
> > 100644
> > --- a/src/modules/wl_desktop_shell/e_mod_main.h
> > +++ b/src/modules/wl_desktop_shell/e_mod_main.h
> > @@ -28,9 +28,9 @@ struct E_Shell_Data
> >     struct wl_resource *surface;
> >     void *shell;
> >     unsigned int version;
> > -   Eina_Bool fullscreen : 1;
> > -   Eina_Bool maximized : 1;
> > -   Eina_Bool activated : 1;
> > +   Eina_Bool fullscreen E_BITFIELD;
> > +   Eina_Bool maximized E_BITFIELD;
> > +   Eina_Bool activated E_BITFIELD;
> >  };
> >  
> >  #endif
> > 
> > -- 
> > 
> >   
> 
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to