diff -Naur c:\dll\iup\iup_a/src/gtk/iupgtk_canvas.c c:\dll\iup\iup/src/gtk/iupgtk_canvas.c
--- c:\dll\iup\iup_a/src/gtk/iupgtk_canvas.c	2020-01-11 11:20:03.000000000 -0300
+++ c:\dll\iup\iup/src/gtk/iupgtk_canvas.c	2022-12-09 09:25:34.102612900 -0300
@@ -252,7 +252,7 @@
 
     if (scb)
     {
-      int scroll_gtk2iup[4] = {IUP_SBUP, IUP_SBDN, IUP_SBLEFT, IUP_SBRIGHT};
+      static const int scroll_gtk2iup[4] = {IUP_SBUP, IUP_SBDN, IUP_SBLEFT, IUP_SBRIGHT};
       int op = scroll_gtk2iup[evt->direction];
       scb(ih, op, (float)ih->data->posx, (float)ih->data->posy);
     }
diff -Naur c:\dll\iup\iup_a/src/gtk/iupgtk_image.c c:\dll\iup\iup/src/gtk/iupgtk_image.c
--- c:\dll\iup\iup_a/src/gtk/iupgtk_image.c	2020-07-01 19:19:35.000000000 -0300
+++ c:\dll\iup\iup/src/gtk/iupgtk_image.c	2022-12-09 09:27:03.373649900 -0300
@@ -507,8 +507,8 @@
           /* try the new names */
 #define IUP_GTK_STOCK_NAMES 6
           int i;
-          const char* old_names[IUP_GTK_STOCK_NAMES] = { "find", "sort-ascending", "sort-descending", "zoom-fit", "zoom-100", "media-play-rtl" };
-          const char* new_names[IUP_GTK_STOCK_NAMES] = { "edit-find", "view-sort-ascending", "view-sort-descending", "zoom-fit-best", "zoom-original", "media-playback-start-rtl" };
+          static const char * const old_names[IUP_GTK_STOCK_NAMES] = { "find", "sort-ascending", "sort-descending", "zoom-fit", "zoom-100", "media-play-rtl" };
+          static const char * const new_names[IUP_GTK_STOCK_NAMES] = { "edit-find", "view-sort-ascending", "view-sort-descending", "zoom-fit-best", "zoom-original", "media-playback-start-rtl" };
           
           for (i = 0; i < IUP_GTK_STOCK_NAMES; i++)
           {
diff -Naur c:\dll\iup\iup_a/src/gtk/iupgtk_key.c c:\dll\iup\iup/src/gtk/iupgtk_key.c
--- c:\dll\iup\iup_a/src/gtk/iupgtk_key.c	2020-01-07 14:06:25.000000000 -0300
+++ c:\dll\iup\iup/src/gtk/iupgtk_key.c	2022-12-09 09:28:36.454153900 -0300
@@ -31,7 +31,7 @@
   int iupcode;
 } Igtk2iupkey;
 
-static Igtk2iupkey keypad_remap[] = {
+static const Igtk2iupkey keypad_remap[] = {
   { GDK_KP_0,   K_0  },
   { GDK_KP_1,   K_1  },
   { GDK_KP_2,   K_2  },
@@ -69,7 +69,7 @@
   { GDK_KP_Delete,    K_DEL  },
 };
 
-static Igtk2iupkey other_remap[] = {
+static const Igtk2iupkey other_remap[] = {
   { GDK_BackSpace, K_BS  },
   { GDK_Tab,       K_TAB },
   { GDK_Return,    K_CR  },
@@ -150,7 +150,7 @@
   {
     /* remap to numeric keys */
                         /*  GDK_KP_Home,GDK_KP_Left,GDK_KP_Up,GDK_KP_Right,GDK_KP_Down,GDK_KP_Page_Up,GDK_KP_Page_Down,GDK_KP_End,GDK_KP_Begin,GDK_KP_Insert,GDK_KP_Delete */
-    guint remap_numkey[] = {GDK_KP_7,   GDK_KP_4,   GDK_KP_8, GDK_KP_6,    GDK_KP_2,   GDK_KP_9,      GDK_KP_3,        GDK_KP_1,  GDK_KP_5,    GDK_KP_0,     GDK_KP_Decimal};
+    static const guint remap_numkey[] = {GDK_KP_7,   GDK_KP_4,   GDK_KP_8, GDK_KP_6,    GDK_KP_2,   GDK_KP_9,      GDK_KP_3,        GDK_KP_1,  GDK_KP_5,    GDK_KP_0,     GDK_KP_Decimal};
     keyval = remap_numkey[keyval-GDK_KP_Home];
   }
 
diff -Naur c:\dll\iup\iup_a/src/iup_button.c c:\dll\iup\iup/src/iup_button.c
--- c:\dll\iup\iup_a/src/iup_button.c	2020-04-04 23:51:17.000000000 -0300
+++ c:\dll\iup\iup/src/iup_button.c	2022-12-08 21:52:11.292381500 -0300
@@ -44,7 +44,7 @@
 
 static char* iButtonGetImagePositionAttrib(Ihandle *ih)
 {
-  char* img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
+  static const char * const img_pos2str[] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
   return iupStrReturnStr(img_pos2str[ih->data->img_position]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_class.c c:\dll\iup\iup/src/iup_class.c
--- c:\dll\iup\iup_a/src/iup_class.c	2019-11-02 18:03:01.000000000 -0300
+++ c:\dll\iup\iup/src/iup_class.c	2022-12-08 21:51:55.608625800 -0300
@@ -320,7 +320,7 @@
 
 IUP_API char* IupGetClassType(Ihandle *ih)
 {
-  static char* type2str[] = { "void", "control", "canvas", "dialog", "image", "menu", "other" };
+  static const char * const type2str[] = { "void", "control", "canvas", "dialog", "image", "menu", "other" };
 
   iupASSERT(iupObjectCheck(ih));
   if (!iupObjectCheck(ih))
diff -Naur c:\dll\iup\iup_a/src/iup_classinfo.c c:\dll\iup\iup/src/iup_classinfo.c
--- c:\dll\iup\iup_a/src/iup_classinfo.c	2020-07-12 15:31:50.000000000 -0300
+++ c:\dll\iup\iup/src/iup_classinfo.c	2022-12-08 21:53:00.859494200 -0300
@@ -208,7 +208,7 @@
 
 static char* getNativeType(InativeType nativetype)
 {
-  char* str[] = { "void", "control", "canvas", "dialog", "image", "menu", "other" }; 
+  static const char * const str[] = { "void", "control", "canvas", "dialog", "image", "menu", "other" }; 
   return str[nativetype];
 }
 
@@ -222,7 +222,7 @@
   }
   else
   {
-    static const char * str[] = {"NO CHILD", "MANY CHILDREN"};
+    static const char * const str[] = {"NO CHILD", "MANY CHILDREN"};
     return str[childtype];
   }
 }
diff -Naur c:\dll\iup\iup_a/src/iup_dropbutton.c c:\dll\iup\iup/src/iup_dropbutton.c
--- c:\dll\iup\iup_a/src/iup_dropbutton.c	2021-12-11 23:28:49.000000000 -0300
+++ c:\dll\iup\iup/src/iup_dropbutton.c	2022-12-08 21:53:54.724113200 -0300
@@ -562,8 +562,8 @@
 
 static char* iDropButtonGetAlignmentAttrib(Ihandle *ih)
 {
-  char* horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
-  char* vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+  static const char * const horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
+  static const char * const vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
   return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
 }
 
@@ -612,7 +612,7 @@
 
 static char* iDropButtonGetImagePositionAttrib(Ihandle *ih)
 {
-  char* img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
+  static const char * const img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
   return iupStrReturnStr(img_pos2str[ih->data->img_position]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_expander.c c:\dll\iup\iup/src/iup_expander.c
--- c:\dll\iup\iup_a/src/iup_expander.c	2021-12-11 23:28:49.000000000 -0300
+++ c:\dll\iup\iup/src/iup_expander.c	2022-12-09 09:10:48.903846300 -0300
@@ -29,7 +29,7 @@
 
 static Ihandle* load_image_arrowup_highlight(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52,7 +52,7 @@
 
 static Ihandle* load_image_arrowdown_highlight(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -75,7 +75,7 @@
 
 static Ihandle* load_image_arrowleft_highlight(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -98,7 +98,7 @@
 
 static Ihandle* load_image_arrowright_highlight(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -121,7 +121,7 @@
 
 static Ihandle* load_image_arrowup(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -144,7 +144,7 @@
 
 static Ihandle* load_image_arrowleft(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -167,7 +167,7 @@
 
 static Ihandle* load_image_arrowright(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -190,7 +190,7 @@
 
 static Ihandle* load_image_arrowdown(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
diff -Naur c:\dll\iup\iup_a/src/iup_export.c c:\dll\iup\iup/src/iup_export.c
--- c:\dll\iup\iup_a/src/iup_export.c	2020-04-28 20:11:55.000000000 -0300
+++ c:\dll\iup\iup/src/iup_export.c	2022-12-09 09:11:12.519792200 -0300
@@ -676,7 +676,7 @@
 
     if (elem->iclass->nativetype == IUP_TYPEIMAGE)
     {
-      char* format[] = { "LUA", "C", "LED" };
+      static const char * const format[] = { "LUA", "C", "LED" };
       char* name = IupGetName(elem);
 
       iupImageExportToFile(elem, file, format[export_format], name);
diff -Naur c:\dll\iup\iup_a/src/iup_flatbutton.c c:\dll\iup\iup/src/iup_flatbutton.c
--- c:\dll\iup\iup_a/src/iup_flatbutton.c	2022-11-03 14:50:02.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flatbutton.c	2022-12-09 10:15:38.095588400 -0300
@@ -280,8 +280,7 @@
             if (iupObjectCheck(last_tg) && last_tg != ih)
             {
               last_tg->data->value = 0;
-              if (last_tg)
-                iupdrvRedrawNow(last_tg);
+              iupdrvRedrawNow(last_tg);
             }
             else
               last_tg = NULL;
@@ -416,8 +415,8 @@
 
 static char* iFlatButtonGetAlignmentAttrib(Ihandle *ih)
 {
-  char* horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
-  char* vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+  static const char * const horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
+  static const char * const vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
   return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
 }
 
@@ -466,7 +465,7 @@
 
 static char* iFlatButtonGetImagePositionAttrib(Ihandle *ih)
 {
-  char* img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
+  static const char * const img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
   return iupStrReturnStr(img_pos2str[ih->data->img_position]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_flatlabel.c c:\dll\iup\iup/src/iup_flatlabel.c
--- c:\dll\iup\iup_a/src/iup_flatlabel.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flatlabel.c	2022-12-09 09:13:21.728032300 -0300
@@ -124,8 +124,8 @@
 
 static char* iFlatLabelGetAlignmentAttrib(Ihandle *ih)
 {
-  char* horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
-  char* vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+  static const char * const horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
+  static const char * const vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
   return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
 }
 
@@ -163,7 +163,7 @@
 
 static char* iFlatLabelGetImagePositionAttrib(Ihandle *ih)
 {
-  char* img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
+  static const char * const img_pos2str[4] = {"LEFT", "RIGHT", "TOP", "BOTTOM"};
   return iupStrReturnStr(img_pos2str[ih->data->img_position]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_flatlist.c c:\dll\iup\iup/src/iup_flatlist.c
--- c:\dll\iup\iup_a/src/iup_flatlist.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flatlist.c	2022-12-09 09:14:07.713288300 -0300
@@ -911,8 +911,8 @@
 
 static char* iFlatListGetAlignmentAttrib(Ihandle *ih)
 {
-  char* horiz_align2str[3] = { "ALEFT", "ACENTER", "ARIGHT" };
-  char* vert_align2str[3] = { "ATOP", "ACENTER", "ABOTTOM" };
+  static const char * const horiz_align2str[3] = { "ALEFT", "ACENTER", "ARIGHT" };
+  static const char * const vert_align2str[3] = { "ATOP", "ACENTER", "ABOTTOM" };
   return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
 }
 
@@ -1093,7 +1093,7 @@
 
 static char* iFlatListGetImagePositionAttrib(Ihandle *ih)
 {
-  char* img_pos2str[4] = { "LEFT", "RIGHT", "TOP", "BOTTOM" };
+  static const char * const img_pos2str[4] = { "LEFT", "RIGHT", "TOP", "BOTTOM" };
   return img_pos2str[ih->data->img_position];
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_flatseparator.c c:\dll\iup\iup/src/iup_flatseparator.c
--- c:\dll\iup\iup_a/src/iup_flatseparator.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flatseparator.c	2022-12-09 09:14:45.991928600 -0300
@@ -193,13 +193,13 @@
 
 static char* iFlatSeparatorGetOrientationAttrib(Ihandle* ih)
 {
-  const char* orientation_str[] = { "VERTICAL", "HORIZONTAL" };
+  static const char * const orientation_str[] = { "VERTICAL", "HORIZONTAL" };
   return (char*)orientation_str[ih->data->orientation];
 }
 
 static char* iFlatSeparatorGetStyleAttrib(Ihandle* ih)
 {
-  const char* style_str[] = { "FILL", "LINE", "SUNKENLINE", "DUALLINES", "GRIP", "EMPTY" };
+  static const char * const style_str[] = { "FILL", "LINE", "SUNKENLINE", "DUALLINES", "GRIP", "EMPTY" };
   return (char*)style_str[ih->data->style];
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_flattabs.c c:\dll\iup\iup/src/iup_flattabs.c
--- c:\dll\iup\iup_a/src/iup_flattabs.c	2020-10-05 21:05:52.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flattabs.c	2022-12-09 10:18:01.880817100 -0300
@@ -47,7 +47,7 @@
 
 static Ihandle* load_image_expand_down(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0,
     0, 0, 0, 8, 0, 0, 0, 48, 0, 0, 0, 21, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 21, 0, 0, 0, 48, 0, 0, 0, 8,
@@ -71,7 +71,7 @@
 
 static Ihandle* load_image_expand_up(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 88, 0, 0, 0, 88, 0, 0, 0, 26, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 92, 0, 0, 0, 119, 0, 0, 0, 119, 0, 0, 0, 92, 0, 0, 0, 26, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1304,7 +1304,6 @@
       if (i == id)
       {
         extra_x = ih->currentwidth - total_extra_size - extra_w;
-        extra_y = title_y_pos;
         *xmin = extra_x + horiz_padding / 2;
         *xmax = extra_x + extra_w - horiz_padding / 2;
         *ymin = title_y_pos + vert_padding / 2;
@@ -1320,7 +1319,6 @@
       if (i == id)
       {
         extra_y = ih->currentheight - total_extra_size - extra_h;
-        extra_x = title_x_pos;
         *xmin = title_x_pos + horiz_padding / 2;
         *xmax = title_x_pos + title_width - 1 - horiz_padding / 2;
         *ymin = extra_y + vert_padding / 2;
@@ -1715,7 +1713,7 @@
   {
     Ihandle* child = iFlatTabsGetCurrentTab(ih);
     int pos = IupGetChildPos(ih, child);
-    while (pos != -1 && pos > 0) /* found child */
+    while (pos > 0) /* found child */
     {
       pos--;
       child = IupGetChild(ih, pos);
diff -Naur c:\dll\iup\iup_a/src/iup_flattoggle.c c:\dll\iup\iup/src/iup_flattoggle.c
--- c:\dll\iup\iup_a/src/iup_flattoggle.c	2022-11-03 14:50:02.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flattoggle.c	2022-12-09 09:16:16.013676100 -0300
@@ -529,8 +529,8 @@
 
 static char* iFlatToggleGetAlignmentAttrib(Ihandle *ih)
 {
-  char* horiz_align2str[3] = { "ALEFT", "ACENTER", "ARIGHT" };
-  char* vert_align2str[3] = { "ATOP", "ACENTER", "ABOTTOM" };
+  static const char * const horiz_align2str[3] = { "ALEFT", "ACENTER", "ARIGHT" };
+  static const char * const vert_align2str[3] = { "ATOP", "ACENTER", "ABOTTOM" };
   return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
 }
 
@@ -616,7 +616,7 @@
 
 static char* iFlatToggleGetImagePositionAttrib(Ihandle *ih)
 {
-  char* img_pos2str[4] = { "LEFT", "RIGHT", "TOP", "BOTTOM" };
+  static const char * const img_pos2str[4] = { "LEFT", "RIGHT", "TOP", "BOTTOM" };
   return iupStrReturnStr(img_pos2str[ih->data->img_position]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_flattree.c c:\dll\iup\iup/src/iup_flattree.c
--- c:\dll\iup\iup_a/src/iup_flattree.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/src/iup_flattree.c	2022-12-09 09:17:00.321722600 -0300
@@ -110,7 +110,7 @@
 
 static Ihandle* load_image_plus(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     186, 187, 188, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 186, 187, 188,
     145, 145, 145, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 145, 145, 145,
     145, 145, 145, 252, 252, 252, 252, 252, 252, 252, 252, 252, 41, 66, 114, 252, 252, 252, 252, 252, 252, 252, 252, 252, 145, 145, 145,
@@ -127,7 +127,7 @@
 
 static Ihandle* load_image_minus(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     186, 187, 188, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 186, 187, 188,
     145, 145, 145, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 145, 145, 145,
     145, 145, 145, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 250, 251, 251, 145, 145, 145,
@@ -144,7 +144,7 @@
 
 static Ihandle* load_image_imgcollapsed24(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
@@ -176,7 +176,7 @@
 
 static Ihandle* load_image_imgexpanded24(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
@@ -208,7 +208,7 @@
 
 static Ihandle* load_image_imgempty24(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
@@ -240,7 +240,7 @@
 
 static Ihandle* load_image_imgleaf24(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -272,7 +272,7 @@
 
 static Ihandle* load_image_imgblank24(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 166, 180, 199, 255, 161, 175, 195, 255, 160, 174, 194, 255, 159, 172, 192, 255, 156, 171, 191, 255, 155, 169, 189, 255, 154, 167, 188, 255, 151, 166, 187, 255, 149, 164, 184, 255, 143, 157, 178, 255, 141, 155, 176, 255, 132, 148, 169, 255, 76, 96, 121, 102, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
@@ -304,7 +304,7 @@
 
 static Ihandle* load_image_imgpaper24(void)
 {
-  unsigned char imgdata[] = {
+  static const unsigned char imgdata[] = {
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
     255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 166, 180, 199, 255, 161, 175, 195, 255, 160, 174, 194, 255, 159, 172, 192, 255, 156, 171, 191, 255, 155, 169, 189, 255, 154, 167, 188, 255, 151, 166, 187, 255, 149, 164, 184, 255, 143, 157, 178, 255, 141, 155, 176, 255, 132, 148, 169, 255, 53, 73, 99, 102, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
diff -Naur c:\dll\iup\iup_a/src/iup_font.c c:\dll\iup\iup/src/iup_font.c
--- c:\dll\iup\iup_a/src/iup_font.c	2019-12-17 15:19:58.000000000 -0300
+++ c:\dll\iup\iup/src/iup_font.c	2022-12-09 09:18:13.543380500 -0300
@@ -27,7 +27,7 @@
 
 #define IFONT_NAME_MAP_SIZE 7
 
-static IfontNameMap ifont_name_map[IFONT_NAME_MAP_SIZE] = {
+static const IfontNameMap ifont_name_map[IFONT_NAME_MAP_SIZE] = {
 /*  pango        X11                      Windows                Mac  */
   {"sans",      "helvetica",              "arial",               "Helvetica Neue"},
   {NULL,        "new century schoolbook", "century schoolbook",  "BiauKai"}, /* Century Schoolbook seems to be private/hidden on Mac. Trying BiauKai as substitute. */
diff -Naur c:\dll\iup\iup_a/src/iup_gridbox.c c:\dll\iup\iup/src/iup_gridbox.c
--- c:\dll\iup\iup_a/src/iup_gridbox.c	2020-03-29 19:49:37.000000000 -0300
+++ c:\dll\iup\iup/src/iup_gridbox.c	2022-12-09 09:18:56.767722300 -0300
@@ -449,7 +449,7 @@
 
 static char* iGridBoxGetAlignmentLinAttrib(Ihandle* ih)
 {
-  static char* align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+  static const char * const align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
   return align2str[ih->data->alignment_lin];
 }
 
@@ -466,7 +466,7 @@
 
 static char* iGridBoxGetAlignmentColAttrib(Ihandle* ih)
 {
-  char* align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
+  static const char * const align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
   return iupStrReturnStr(align2str[ih->data->alignment_col]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_hbox.c c:\dll\iup\iup/src/iup_hbox.c
--- c:\dll\iup\iup_a/src/iup_hbox.c	2019-10-12 19:54:22.000000000 -0300
+++ c:\dll\iup\iup/src/iup_hbox.c	2022-12-09 09:19:31.608427400 -0300
@@ -78,7 +78,7 @@
 
 static char* iHboxGetAlignmentAttrib(Ihandle* ih)
 {
-  static char* align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+  static const char * const align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
   return align2str[ih->data->alignment];
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_image.c c:\dll\iup\iup/src/iup_image.c
--- c:\dll\iup\iup_a/src/iup_image.c	2020-07-07 15:03:52.000000000 -0300
+++ c:\dll\iup\iup/src/iup_image.c	2022-12-09 09:20:00.318601900 -0300
@@ -346,7 +346,7 @@
   char *value;
   unsigned char red, green, blue;
   int i, has_alpha = 0;
-  static iupColor default_colors[16] = {
+  static const iupColor default_colors[16] = {
     { 0, 0, 0, 255 }, { 128, 0, 0, 255 }, { 0, 128, 0, 255 }, { 128, 128, 0, 255 },
     { 0, 0, 128, 255 }, { 128, 0, 128, 255 }, { 0, 128, 128, 255 }, { 192, 192, 192, 255 },
     { 128, 128, 128, 255 }, { 255, 0, 0, 255 }, { 0, 255, 0, 255 }, { 255, 255, 0, 255 },
diff -Naur c:\dll\iup\iup_a/src/iup_key.c c:\dll\iup\iup/src/iup_key.c
--- c:\dll\iup\iup_a/src/iup_key.c	2020-01-07 14:06:25.000000000 -0300
+++ c:\dll\iup\iup/src/iup_key.c	2022-12-09 09:20:49.985048900 -0300
@@ -25,7 +25,7 @@
   unsigned char mod;
 } IkeyMapASCII;
 
-static IkeyMapASCII ikey_map_ascii[126-32+1] = {  /* from 32 to 126 (inclusive) */
+static const IkeyMapASCII ikey_map_ascii[126-32+1] = {  /* from 32 to 126 (inclusive) */
   {"K_SP",                  0},
   {"K_exclam",              2}, /* NO shift */
   {"K_quotedbl",            2}, /* NO shift */
diff -Naur c:\dll\iup\iup_a/src/iup_ledparse.c c:\dll\iup\iup/src/iup_ledparse.c
--- c:\dll\iup\iup_a/src/iup_ledparse.c	2020-04-13 16:00:08.000000000 -0300
+++ c:\dll\iup\iup/src/iup_ledparse.c	2022-12-09 10:19:20.190602100 -0300
@@ -197,7 +197,7 @@
 {
   int i;
 
-  for (i = 0; params[i] && i<num_format; i++)
+  for (i = 0; i<num_format && params[i]; i++)
   {
     if (format[i] == 'j' ||
         format[i] == 'g' ||
diff -Naur c:\dll\iup\iup_a/src/iup_normalizer.c c:\dll\iup\iup/src/iup_normalizer.c
--- c:\dll\iup\iup_a/src/iup_normalizer.c	2020-03-30 16:39:39.000000000 -0300
+++ c:\dll\iup\iup/src/iup_normalizer.c	2022-12-09 09:21:17.014792900 -0300
@@ -41,7 +41,7 @@
 
 char* iupNormalizeGetNormalizeSizeStr(int normalize)
 {
-  char* int2str[] = {"NONE", "HORIZONTAL", "VERTICAL", "BOTH"};
+  static const char * const int2str[] = {"NONE", "HORIZONTAL", "VERTICAL", "BOTH"};
   return int2str[normalize];
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_recplay.c c:\dll\iup\iup/src/iup_recplay.c
--- c:\dll\iup\iup_a/src/iup_recplay.c	2019-12-05 11:58:58.000000000 -0300
+++ c:\dll\iup\iup/src/iup_recplay.c	2022-12-09 09:22:17.638953400 -0300
@@ -152,7 +152,7 @@
 
   if (irec_file)
   {
-    char* mode_str[3] = {"BIN", "TXT", "SYS"};
+    static const char * const mode_str[3] = {"BIN", "TXT", "SYS"};
     iRecWriteStr(irec_file, "IUPINPUT", IUP_RECTEXT);  /* add space after, even for non text mode */
     iRecWriteStr(irec_file, mode_str[irec_mode], IUP_RECBINARY); /* no space after */
     iRecWriteByte(irec_file, '\n', IUP_RECBINARY);  /* no space after */
diff -Naur c:\dll\iup\iup_a/src/iup_spin.c c:\dll\iup\iup/src/iup_spin.c
--- c:\dll\iup\iup_a/src/iup_spin.c	2020-03-29 19:49:37.000000000 -0300
+++ c:\dll\iup\iup/src/iup_spin.c	2022-12-09 09:22:48.574651000 -0300
@@ -181,7 +181,7 @@
   Ihandle* img;
 
   /* Spin UP image */
-  unsigned char iupspin_up_img[] = {
+  static const unsigned char iupspin_up_img[] = {
     1, 1, 1, 1, 1, 1, 1, 1, 1, 
     1, 1, 1, 1, 0, 1, 1, 1, 1,
     1, 1, 1, 0, 0, 0, 1, 1, 1,
@@ -191,7 +191,7 @@
   };
 
   /* Spin DOWN image */
-  unsigned char iupspin_down_img[] = {
+  static const unsigned char iupspin_down_img[] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0,
     1, 0, 0, 0, 0, 0, 0, 0, 1,
     1, 1, 0, 0, 0, 0, 0, 1, 1,
diff -Naur c:\dll\iup\iup_a/src/iup_vbox.c c:\dll\iup\iup/src/iup_vbox.c
--- c:\dll\iup\iup_a/src/iup_vbox.c	2019-10-12 19:54:22.000000000 -0300
+++ c:\dll\iup\iup/src/iup_vbox.c	2022-12-09 09:24:02.102063200 -0300
@@ -80,7 +80,7 @@
 
 static char* iVboxGetAlignmentAttrib(Ihandle* ih)
 {
-  char* align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
+  static const char * const align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
   return iupStrReturnStr(align2str[ih->data->alignment]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/iup_zbox.c c:\dll\iup\iup/src/iup_zbox.c
--- c:\dll\iup\iup_a/src/iup_zbox.c	2020-04-14 18:51:21.000000000 -0300
+++ c:\dll\iup\iup/src/iup_zbox.c	2022-12-09 09:24:24.494613700 -0300
@@ -105,7 +105,7 @@
 
 static char* iZboxGetAlignmentAttrib(Ihandle* ih)
 {
-  static char* align2str[9] = {"NORTH", "SOUTH", "WEST", "EAST",
+  static const char * const align2str[9] = {"NORTH", "SOUTH", "WEST", "EAST",
                                "NE", "SE", "NW", "SW",
                                "ACENTER"};
   return align2str[ih->data->alignment];
diff -Naur c:\dll\iup\iup_a/src/win/iupwin_button.c c:\dll\iup\iup/src/win/iupwin_button.c
--- c:\dll\iup\iup_a/src/win/iupwin_button.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/src/win/iupwin_button.c	2022-12-09 09:29:24.647727000 -0300
@@ -457,8 +457,8 @@
 
 static char* winButtonGetAlignmentAttrib(Ihandle *ih)
 {
-  char* horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
-  char* vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+  static const char * const horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
+  static const char * const vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
   return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
 }
 
diff -Naur c:\dll\iup\iup_a/src/win/iupwin_common.c c:\dll\iup\iup/src/win/iupwin_common.c
--- c:\dll\iup\iup_a/src/win/iupwin_common.c	2022-08-23 18:40:22.000000000 -0300
+++ c:\dll\iup\iup/src/win/iupwin_common.c	2022-12-09 09:29:57.231915100 -0300
@@ -796,7 +796,7 @@
 
 HCURSOR iupwinGetCursor(Ihandle* ih, const char* name)
 {
-  static struct {
+  static const struct {
     const char* iupname;
     const TCHAR* sysname;
   } table[] = {
diff -Naur c:\dll\iup\iup_a/src/win/iupwin_image.c c:\dll\iup\iup/src/win/iupwin_image.c
--- c:\dll\iup\iup_a/src/win/iupwin_image.c	2020-01-15 10:04:09.000000000 -0300
+++ c:\dll\iup\iup/src/win/iupwin_image.c	2022-12-09 09:30:44.495117400 -0300
@@ -818,7 +818,7 @@
 
 void* iupdrvImageLoad(const char* name, int type)
 {
-  int iup2win[3] = {IMAGE_BITMAP, IMAGE_ICON, IMAGE_CURSOR};
+  static const int iup2win[] = {IMAGE_BITMAP, IMAGE_ICON, IMAGE_CURSOR};
   HANDLE hImage = LoadImage(iupwin_hinstance, iupwinStrToSystem(name), iup2win[type], 0, 0, type == IUPIMAGE_IMAGE ? LR_CREATEDIBSECTION : 0);
   if (!hImage && iupwin_dll_hinstance)
     hImage = LoadImage(iupwin_dll_hinstance, iupwinStrToSystem(name), iup2win[type], 0, 0, type == IUPIMAGE_IMAGE ? LR_CREATEDIBSECTION : 0);
@@ -830,7 +830,7 @@
     IFvs cb = (IFvs)IupGetFunction("IMAGECREATE_CB");
     if (cb)
     {
-      char* type_str[3] = { "BITMAP", "ICON", "CURSOR" };
+      static const char * const type_str[] = { "BITMAP", "ICON", "CURSOR" };
       cb(hImage, type_str[type]);
     }
   }
diff -Naur c:\dll\iup\iup_a/src/win/iupwin_label.c c:\dll\iup\iup/src/win/iupwin_label.c
--- c:\dll\iup\iup_a/src/win/iupwin_label.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/src/win/iupwin_label.c	2022-12-09 09:31:14.829583600 -0300
@@ -204,8 +204,8 @@
 {
   if (ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT)
   {
-    char* horiz_align2str[3] = {"ALEFT", "ACENTER", "ARIGHT"};
-    char* vert_align2str[3] = {"ATOP", "ACENTER", "ABOTTOM"};
+    static const char * const horiz_align2str[] = {"ALEFT", "ACENTER", "ARIGHT"};
+    static const char * const vert_align2str[] = {"ATOP", "ACENTER", "ABOTTOM"};
     return iupStrReturnStrf("%s:%s", horiz_align2str[ih->data->horiz_alignment], vert_align2str[ih->data->vert_alignment]);
   }
   else
diff -Naur c:\dll\iup\iup_a/srccontrols/iup_matrixlist.c c:\dll\iup\iup/srccontrols/iup_matrixlist.c
--- c:\dll\iup\iup_a/srccontrols/iup_matrixlist.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/srccontrols/iup_matrixlist.c	2022-12-09 09:33:06.725237600 -0300
@@ -68,7 +68,7 @@
 #define IMTXL_IMG_WIDTH  16
 #define IMTXL_IMG_HEIGHT 16
 
-  unsigned char img_check[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
+  static unsigned char img_check[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
@@ -87,7 +87,7 @@
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   };
 
-  unsigned char img_uncheck[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
+  static unsigned char img_uncheck[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
@@ -106,7 +106,7 @@
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   };
 
-  unsigned char img_del[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
+  static unsigned char img_del[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -125,7 +125,7 @@
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
   };
 
-  unsigned char img_add[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
+  static unsigned char img_add[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
diff -Naur c:\dll\iup\iup_a/srccontrols/matrix/iupmat_numlc.c c:\dll\iup\iup/srccontrols/matrix/iupmat_numlc.c
--- c:\dll\iup\iup_a/srccontrols/matrix/iupmat_numlc.c	2019-07-25 16:27:06.000000000 -0300
+++ c:\dll\iup\iup/srccontrols/matrix/iupmat_numlc.c	2022-12-09 09:36:59.828877900 -0300
@@ -60,7 +60,7 @@
 
 #define IMAT_NUM_ATTRIB_LINE 9
 #define IMAT_NUM_ATTRIB_LINE_ONLY 3
-static char* imatrix_lin_attrib[IMAT_NUM_ATTRIB_LINE] = {
+static const char * const imatrix_lin_attrib[IMAT_NUM_ATTRIB_LINE] = {
   "RASTERHEIGHT",  /* only the line */
   "HEIGHT",
   "LINEALIGNMENT",
@@ -73,7 +73,7 @@
 
 #define IMAT_NUM_ATTRIB_COL 12
 #define IMAT_NUM_ATTRIB_COL_ONLY 6
-static char* imatrix_col_attrib[IMAT_NUM_ATTRIB_COL] = { 
+static const char * const imatrix_col_attrib[IMAT_NUM_ATTRIB_COL] = { 
   "NUMERICFORMAT",   /* only the column */
   "NUMERICFORMATTITLE",
   "SORTSIGN",
@@ -88,7 +88,7 @@
   "FRAMEHORIZCOLOR"};
 
 #define IMAT_NUM_ATTRIB_CELL 11
-static char* imatrix_cell_attrib[IMAT_NUM_ATTRIB_CELL] = { 
+static const char * const imatrix_cell_attrib[IMAT_NUM_ATTRIB_CELL] = { 
   "BGCOLOR",   /* all use L:C */
   "FGCOLOR",
   "FONT",
diff -Naur c:\dll\iup\iup_a/srccontrols/matrix/iupmatrix.c c:\dll\iup\iup/srccontrols/matrix/iupmatrix.c
--- c:\dll\iup\iup_a/srccontrols/matrix/iupmatrix.c	2021-01-03 15:58:52.000000000 -0300
+++ c:\dll\iup\iup/srccontrols/matrix/iupmatrix.c	2022-12-09 09:34:09.631381400 -0300
@@ -360,7 +360,7 @@
 
 static char* iMatrixGetMarkModeAttrib(Ihandle* ih)
 {
-  char* mark2str[] = { "NO", "LIN", "COL", "LINCOL", "CELL" };
+  static const char * const mark2str[] = { "NO", "LIN", "COL", "LINCOL", "CELL" };
   return mark2str[ih->data->mark_mode];
 }
 
@@ -1593,8 +1593,8 @@
 {
   if (iupMatrixCheckCellPos(ih, lin, col))
   {
-    const char* vert_align_str[3] = {"ACENTER", "ATOP", "ABOTTOM"};
-    const char* horiz_align_str[3] = { "ACENTER", "ALEFT", "ARIGHT" };
+    static const char * const vert_align_str[] = {"ACENTER", "ATOP", "ABOTTOM"};
+    static const char * const horiz_align_str[] = { "ACENTER", "ALEFT", "ARIGHT" };
     char* str = iupStrGetMemory(30);
     int col_alignment, lin_alignment;
 
diff -Naur c:\dll\iup\iup_a/srccontrols/matrixex/iupmatex_units.c c:\dll\iup\iup/srccontrols/matrixex/iupmatex_units.c
--- c:\dll\iup\iup_a/srccontrols/matrixex/iupmatex_units.c	2020-09-18 18:35:06.000000000 -0300
+++ c:\dll\iup\iup/srccontrols/matrixex/iupmatex_units.c	2022-12-09 09:54:46.529916800 -0300
@@ -45,7 +45,7 @@
 #define GRAVITY 9.80665
 
 #define IMATEX_LENGTH_COUNT 12
-static ImatExUnit IMATEX_LENGTH_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_LENGTH_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"metre"        ,"m" , 1,       NULL},
   {"centimetre"   ,"cm", 0.01,    NULL},
   {"millimetre"   ,"mm", 0.001,   NULL},
@@ -60,7 +60,7 @@
   {"nautical mile","NM", 1853.184, NULL}};  /* 6080 ft */
 
 #define IMATEX_TIME_COUNT 7                
-static ImatExUnit IMATEX_TIME_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_TIME_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"second","s"  , 1, NULL},
   {"minute","min", 60, NULL},
   {"hour"  ,"h"  , 3600, NULL},     /* 60 * 60 */
@@ -70,7 +70,7 @@
   {"microsecond","\xB5""s", 1.0e-6, "\xC2\xB5s"}};  /* µs */    
 
 #define IMATEX_MASS_COUNT 5               
-static ImatExUnit IMATEX_MASS_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_MASS_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"kilogram"   ,"kg" , 1, NULL},
   {"gram"       ,"g"  , 0.001          , NULL},
   {"tonne"      ,"t"  , 1000           , NULL},  /*  metric ton */
@@ -80,14 +80,14 @@
 #define IMATEX_CELSIUS 1
 #define IMATEX_FAHRENHEIT 2
 #define IMATEX_TEMPERATURE_COUNT 4                       
-static ImatExUnit IMATEX_TEMPERATURE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_TEMPERATURE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Kelvin"           ,"K"  , 1, NULL},
   {"degree Celsius"   ,"\xB0""C" , 1,     "\xC2\xBA""C"},   /* °C" */
   {"degree Fahrenheit","\xB0""F" , 5./9., "\xC2\xBA""F"},   /* °F" */
   {"degree Rankine"   ,"\xB0""Ra", 5./9., "\xC2\xBA""Ra"}}; /* °Ra */
 
 #define IMATEX_AREA_COUNT 13
-static ImatExUnit IMATEX_AREA_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_AREA_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"square metre"     ,"m\xB2"   , 1,       "m\xC2\xB2"},                  /* m²  */
   {"square centimetre","cm\xB2"  , 1.0e-4, "cm\xC2\xB2"},   /* 0.01^2 */   /* cm² */
   {"square millimetre","mm\xB2"  , 1.0e-6, "mm\xC2\xB2"},   /* 0.001^2 */  /* mm² */
@@ -103,7 +103,7 @@
   {"hectare"          ,"ha"   , 1.0e4,      NULL}};
 
 #define IMATEX_VOLUME_COUNT 11
-static ImatExUnit IMATEX_VOLUME_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_VOLUME_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"cubic metre"     ,"m\xB3"   , 1,       "m\xC2\xB3"},  /* m³  */
   {"cubic centimetre","cm\xB3"  , 1.0e-6, "cm\xC2\xB3"},  /* cm³ */  /* 0.01^3 */
   {"cubic millimetre","mm\xB3"  , 1.0e-9, "mm\xC2\xB3"},  /* mm³ */  /* 0.001^3 */
@@ -117,7 +117,7 @@
   {"barrel"          ,"bl"   , 0.158987294928, NULL}};    /* (petroleum = 42 gal) */
 
 #define IMATEX_SPEED_COUNT 7
-static ImatExUnit IMATEX_SPEED_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_SPEED_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"metre per second"     ,"m/s" , 1, NULL},
   {"inch per second"      ,"in/s" , 0.0254    , NULL},
   {"foot per second"      ,"ft/s" , 0.3048    , NULL},
@@ -127,7 +127,7 @@
   {"knot"                 ,"kn"  , 1.852/3.6 , NULL}};   /* kn = 1 NM/h = 1.852 km/h */
 
 #define IMATEX_ANGULAR_SPEED_COUNT 6
-static ImatExUnit IMATEX_ANGULAR_SPEED_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_ANGULAR_SPEED_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"radian per second"    ,"rad/s"  , 1, NULL},              
   {"radian per minute"    ,"rad/min", 60        , NULL},
   {"degree per second"    ,"deg/s"  , M_PI/180.0, NULL},
@@ -136,7 +136,7 @@
   {"revolution per minute","rpm"    , 120.0*M_PI, NULL}};
 
 #define IMATEX_ACCELERATION_COUNT 5
-static ImatExUnit IMATEX_ACCELERATION_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_ACCELERATION_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"metre per second squared","m/s\xB2", 1,         "m/s\xC2\xB2"},    /* m/s² */
   {"inch per second squared" ,"in/s\xB2", 0.0254,  "in/s\xC2\xB2"},    /* in/s² */
   {"knot per second"         ,"kn/s", 1.852/3.6 , NULL},               
@@ -144,7 +144,7 @@
   {"standard gravity"        ,"g"   , GRAVITY  , NULL}};
 
 #define IMATEX_FORCE_COUNT 7
-static ImatExUnit IMATEX_FORCE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_FORCE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Newton"        ,"N"  , 1, NULL},              /* N = kg·m/s^2 */
   {"Kilonewton"    ,"kN" , 1000     , NULL},
   {"dyne"          ,"dyn", 1.0e-5   , NULL},      /* g·cm/s^2 */
@@ -154,7 +154,7 @@
   {"ton-force"     ,"tnf", GRAVITY * 0.45359237 * 2000, NULL}};  /* tnf = g × 2000 lb */
 
 #define IMATEX_PRESSURE_COUNT 8
-static ImatExUnit IMATEX_PRESSURE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_PRESSURE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Pascal"               ,"Pa"  , 1, NULL},      /* Pa = N/(m^2) = kg/(m·s^2) */
   {"kilopascal"           ,"kPa" , 1000    , NULL},
   {"atmosphere"           ,"atm" , 101325  , NULL},   /* (standard) */
@@ -165,14 +165,14 @@
   {"kip per square inch"  ,"ksi" , 4.4482216152605/6.4516e-1, NULL}}; /* ksi = kip/in^2 */          
 
 #define IMATEX_FORCE_PER_LENGTH_COUNT 4            /* same as (Linear Weight) */
-static ImatExUnit IMATEX_FORCE_PER_LENGTH_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_FORCE_PER_LENGTH_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Newton per metre"         ,"N/m"  , 1,            NULL},      
   {"Kilonewton per metre"     ,"kN/m" , 1000    ,     NULL},
   {"kilogram-force per metre" ,"kgf/m", GRAVITY  ,    NULL},
   {"ton-force per metre"      ,"tnf/m", GRAVITY*1000, NULL}};
 
 #define IMATEX_MOMENT_COUNT 8           /* Torque */
-static ImatExUnit IMATEX_MOMENT_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_MOMENT_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Newton metre"             , "N\xB7""m"   , 1,                "N\xC2\xB7m"},       /* N·m    */
   {"kilogram-force metre"     , "kgf\xB7""m" , GRAVITY,          "kgf\xC2\xB7m"},     /* kgf·m  */
   {"ton-force metre"          , "tnf\xB7""m" , GRAVITY*1000,     "tnf\xC2\xB7m"},     /* tnf·m  */
@@ -183,13 +183,13 @@
   {"metre kilogram"           , "m\xB7""kg"  , 1.0/GRAVITY,      "m\xC2\xB7kg"}};     /* m·kg   */ 
 
 #define IMATEX_ANGLE_COUNT 3
-static ImatExUnit IMATEX_ANGLE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_ANGLE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"radian", "rad", 1,            NULL},
   {"degree", "\xB0", M_PI/180.0,     "\xC2\xBA"}, /* ° */
   {"gradian", "grad", M_PI/200.0, NULL}};
 
 #define IMATEX_SPECIFIC_MASS_COUNT 7
-static ImatExUnit IMATEX_SPECIFIC_MASS_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_SPECIFIC_MASS_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"kilogram per cubic metre" ,"kg/m\xB3"  , 1,                         "kg/m\xC2\xB3"},  /* kg/m³ */
   {"gram per cubic centimetre","g/cm\xB3"  , 1000,                      "g/cm\xC2\xB3"},  /* g/cm³ */
   {"gram per millilitre"      ,"g/mL"   , 1000,                      NULL},               
@@ -199,7 +199,7 @@
   {"pound per gallon"         ,"lb/gal" , 0.45359237/3.785411784e-3, NULL}};
                                                      
 #define IMATEX_SPECIFIC_WEIGHT_COUNT 6
-static ImatExUnit IMATEX_SPECIFIC_WEIGHT_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_SPECIFIC_WEIGHT_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Newton per cubic metre"        ,"N/m\xB3"  , 1,                  "N/m\xC2\xB3"},                          /* N/m³    */  
   {"Kilonewton per cubic metre"    ,"kN/m\xB3" , 1000,               "kN/m\xC2\xB3"},                         /* kN/m³   */ 
   {"kilogram-force per cubic metre","kgf/m\xB3", GRAVITY,            "kgf/m\xC2\xB3"},                        /* kgf/m³  */
@@ -208,7 +208,7 @@
   {"kilogram-force per litre"      ,"kgf/L" , GRAVITY * 0.001,                          NULL}};
                                                               
 #define IMATEX_ENERGY_COUNT   7
-static ImatExUnit IMATEX_ENERGY_UNITS[IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_ENERGY_UNITS[IMATEX_UNIT_MAXCOUNT] = {
   {"Joule"          ,"J"   , 1, NULL},                  /* J = m * N */
   {"Kilojoule"      ,"kJ"  , 1000                  , NULL},
   {"calorie"        ,"cal" , 4.1868                , NULL},  /* (International Table) */
@@ -218,47 +218,47 @@
   {"horsepower-hour","hp\xB7""h", 2.684519537696172792e6, "hp\xC2\xB7h"}}; /* hp·h */  /* hp * 3600 */
                                                                
 #define IMATEX_POWER_COUNT    4
-static ImatExUnit IMATEX_POWER_UNITS[IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_POWER_UNITS[IMATEX_UNIT_MAXCOUNT] = {
   {"Watt"              ,"W"    , 1, NULL},               /* W = J/s */
   {"Kilowatt"          ,"kW"   , 1000, NULL},
   {"calorie per second","cal/s", 4.1868, NULL},  /* (International Table) */
   {"horsepower"        ,"hp"   , 745.69987158227022 , NULL}};  /* hp = 550 ft lbf/s (imperial mechanical)   */
                                                          /*      550 * 0.3048 *  9.80665 * 0.45359237 */   
 #define IMATEX_FRACTION_COUNT 4
-static ImatExUnit IMATEX_FRACTION_UNITS[IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_FRACTION_UNITS[IMATEX_UNIT_MAXCOUNT] = {
   {"percentage"  , "%"    , 1,    NULL},
   {"per one"     , "/1"   , 100 , NULL},
   {"per ten"     , "/10"  , 10  , NULL},
   {"per thousand", "/1000", 0.1 , NULL}};
 
 #define IMATEX_KINEMATIC_VISCOSITY_COUNT 3
-static ImatExUnit IMATEX_KINEMATIC_VISCOSITY_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_KINEMATIC_VISCOSITY_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"square metre per second", "m\xB2""/s"  , 1,           "m\xC2\xB2/s"},   /* m²/s  */
   {"square foot per second" , "ft\xB2""/s" , 9.290304e-2, "ft\xC2\xB2/s"},  /* ft²/s */   /* 0.3048^2 */
   {"stokes"                 , "St"    , 1.0e-4,      NULL}};
 
 #define IMATEX_DYNAMIC_VISCOSITY_COUNT 4
-static ImatExUnit IMATEX_DYNAMIC_VISCOSITY_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_DYNAMIC_VISCOSITY_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Pascal second"        , "Pa\xB7""s"      , 1,                        "Pa\xC2\xB7s"},        /* Pa·s */
   {"poise"                , "P"         , 0.1,                      NULL},                     
   {"pound per foot hour"  , "lb/(ft\xB7""h)" , 0.45359237/(0.3048*3600), "lb/(ft\xC2\xB7h)"},   /* lb/(ft·h) */
   {"pound per foot second", "lb/(ft\xB7""s)" , 0.45359237/0.3048,        "lb/(ft\xC2\xB7s)"}};  /* lb/(ft·s) */
                                                             
 #define IMATEX_FLOW_COUNT 3
-static ImatExUnit IMATEX_FLOW_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_FLOW_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"cubic metre per second", "m\xB3""/s",  0.1,            "m\xC2\xB3/s"},   /* m³/s  */
   {"cubic inch per second",  "in\xB3""/s", 16.387064e-6,   "in\xC2\xB3/s"},  /* in³/s */  /* 0.0254^3  */
   {"cubic foot per second",  "ft\xB3""/s", 0.028316846592, "ft\xC2\xB3/s"}}; /* ft³/s */  /* 0.3048^3  */
 
 #define IMATEX_ILLUMINANCE_COUNT 4
-static ImatExUnit IMATEX_ILLUMINANCE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_ILLUMINANCE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"lux",                   "lx",     1,             NULL},
   {"footcandle",            "fc",     10.763910417,  NULL},   /* lumen per square foot  */
   {"lumen per square inch", "lm/in\xB2", 1550.00310001, "lm/in\xC2\xB2"},  /* lm/in² */
   {"phot",                  "ph",     1.0e4,         NULL}};
 
 #define IMATEX_ELECTRIC_CHARGE_COUNT 3
-static ImatExUnit IMATEX_ELECTRIC_CHARGE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
+static const ImatExUnit IMATEX_ELECTRIC_CHARGE_UNITS [IMATEX_UNIT_MAXCOUNT] = {
   {"Coulomb",               "C",     1,          NULL},   /* A·s */
   {"Faraday",               "F",     96485.3383, NULL},
   {"milliampere hour",      "mA\xB7""h",  3.6,        "mA\xC2\xB7h"}}; /* mA·h */