From e5491193b5d773f05acdd08d31cadc621f85a92d Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 3 May 2022 20:13:08 +0000 Subject: Add 2 MODULE_SCOPE string tables (tkStateStrings and tkCompoundStrings) which can be reused in many places --- generic/tkButton.c | 35 +++++++++++++---------------------- generic/tkInt.h | 9 ++++++++- generic/tkListbox.c | 6 +----- generic/tkMenu.c | 11 +---------- generic/tkMenubutton.c | 22 ++-------------------- generic/tkScale.c | 11 +---------- generic/tkText.c | 12 +----------- generic/ttk/ttkDefaultTheme.c | 2 +- generic/ttk/ttkImage.c | 2 +- generic/ttk/ttkInit.c | 8 ++++---- generic/ttk/ttkLayout.c | 4 ++-- generic/ttk/ttkNotebook.c | 2 +- generic/ttk/ttkPanedwindow.c | 2 +- generic/ttk/ttkTheme.c | 2 +- generic/ttk/ttkTreeview.c | 12 ++++++------ generic/ttk/ttkWidget.c | 2 +- generic/ttk/ttkWidget.h | 6 +++--- 17 files changed, 48 insertions(+), 100 deletions(-) diff --git a/generic/tkButton.c b/generic/tkButton.c index 9e7c87d..78bb5e1 100644 --- a/generic/tkButton.c +++ b/generic/tkButton.c @@ -29,20 +29,11 @@ static Tcl_ThreadDataKey dataKey; static const char *const classNames[] = {"Label", "Button", "Checkbutton", "Radiobutton"}; /* - * The following table defines the legal values for the -default option. It is - * used together with the "enum defaultValue" declaration in tkButton.h. + * The following table defines the legal values for the -default/-state options. + * It is used together with the "enum defaultValue/state" declarations in tkButton.h. */ -static const char *const defaultStrings[] = { - "active", "disabled", "normal", NULL -}; - -/* - * The following table defines the legal values for the -state option. - * It is used together with the "enum state" declaration in tkButton.h. - */ - -static const char *const stateStrings[] = { +const char *const tkStateStrings[] = { "active", "disabled", "normal", NULL }; @@ -51,7 +42,7 @@ static const char *const stateStrings[] = { * It is used with the "enum compound" declaration in tkButton.h */ -static const char *const compoundStrings[] = { +const char *const tkCompoundStrings[] = { "bottom", "center", "left", "none", "right", "top", NULL }; @@ -92,7 +83,7 @@ static const Tk_OptionSpec labelOptionSpecs[] = { Tk_Offset(TkButton, borderWidth), 0, 0, 0}, {TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound", DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0, - compoundStrings, 0}, + tkCompoundStrings, 0}, {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor), TK_OPTION_NULL_OK, 0, 0}, @@ -134,7 +125,7 @@ static const Tk_OptionSpec labelOptionSpecs[] = { DEF_LABCHKRAD_RELIEF, -1, Tk_Offset(TkButton, relief), 0, 0, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state), - 0, stateStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_LABEL_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1, TK_OPTION_NULL_OK, 0, 0}, @@ -180,13 +171,13 @@ static const Tk_OptionSpec buttonOptionSpecs[] = { TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound", DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0, - compoundStrings, 0}, + tkCompoundStrings, 0}, {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-default", "default", "Default", DEF_BUTTON_DEFAULT, -1, Tk_Offset(TkButton, defaultState), - 0, defaultStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_COLOR, "-disabledforeground", "disabledForeground", "DisabledForeground", DEF_BUTTON_DISABLED_FG_COLOR, -1, Tk_Offset(TkButton, disabledFg), TK_OPTION_NULL_OK, @@ -235,7 +226,7 @@ static const Tk_OptionSpec buttonOptionSpecs[] = { 0, 0, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state), - 0, stateStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_BUTTON_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1, TK_OPTION_NULL_OK, 0, 0}, @@ -281,7 +272,7 @@ static const Tk_OptionSpec checkbuttonOptionSpecs[] = { TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound", DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0, - compoundStrings, 0}, + tkCompoundStrings, 0}, {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor), TK_OPTION_NULL_OK, 0, 0}, @@ -340,7 +331,7 @@ static const Tk_OptionSpec checkbuttonOptionSpecs[] = { TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state), - 0, stateStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_BUTTON_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1, TK_OPTION_NULL_OK, 0, 0}, @@ -394,7 +385,7 @@ static const Tk_OptionSpec radiobuttonOptionSpecs[] = { TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound", DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0, - compoundStrings, 0}, + tkCompoundStrings, 0}, {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor), TK_OPTION_NULL_OK, 0, 0}, @@ -450,7 +441,7 @@ static const Tk_OptionSpec radiobuttonOptionSpecs[] = { TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state), - 0, stateStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_BUTTON_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1, TK_OPTION_NULL_OK, 0, 0}, diff --git a/generic/tkInt.h b/generic/tkInt.h index 21df17d..b19e3bd 100644 --- a/generic/tkInt.h +++ b/generic/tkInt.h @@ -881,6 +881,13 @@ typedef struct TkWindow { } TkWindow; /* + * String tables: + */ + +MODULE_SCOPE const char *const tkStateStrings[]; +MODULE_SCOPE const char *const tkCompoundStrings[]; + +/* * Real definition of some events. Note that these events come from outside * but have internally generated pieces added to them. */ @@ -1254,7 +1261,7 @@ MODULE_SCOPE int TkPostscriptImage(Tcl_Interp *interp, Tk_Window tkwin, MODULE_SCOPE void TkMapTopFrame(Tk_Window tkwin); MODULE_SCOPE XEvent * TkpGetBindingXEvent(Tcl_Interp *interp); MODULE_SCOPE void TkCreateExitHandler(Tcl_ExitProc *proc, - ClientData clientData); + void *clientData); MODULE_SCOPE void TkDeleteExitHandler(Tcl_ExitProc *proc, ClientData clientData); MODULE_SCOPE Tcl_ExitProc TkFinalize; diff --git a/generic/tkListbox.c b/generic/tkListbox.c index cba8954..79c644a 100644 --- a/generic/tkListbox.c +++ b/generic/tkListbox.c @@ -220,10 +220,6 @@ enum state { STATE_DISABLED, STATE_NORMAL }; -static const char *const stateStrings[] = { - "disabled", "normal", NULL -}; - enum activeStyle { ACTIVE_STYLE_DOTBOX, ACTIVE_STYLE_NONE, ACTIVE_STYLE_UNDERLINE }; @@ -297,7 +293,7 @@ static const Tk_OptionSpec optionSpecs[] = { DEF_LISTBOX_SET_GRID, -1, Tk_Offset(Listbox, setGrid), 0, 0, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_LISTBOX_STATE, -1, Tk_Offset(Listbox, state), - 0, stateStrings, 0}, + 0, &tkStateStrings[1], 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_LISTBOX_TAKE_FOCUS, -1, Tk_Offset(Listbox, takeFocus), TK_OPTION_NULL_OK, 0, 0}, diff --git a/generic/tkMenu.c b/generic/tkMenu.c index d7c7697..f11505d 100644 --- a/generic/tkMenu.c +++ b/generic/tkMenu.c @@ -107,15 +107,6 @@ static const char *const menuEntryTypeStrings[] = { "cascade", "checkbutton", "command", "radiobutton", "separator", NULL }; -/* - * The following table defines the legal values for the -compound option. It - * is used with the "enum compound" declaration in tkMenu.h - */ - -static const char *const compoundStrings[] = { - "bottom", "center", "left", "none", "right", "top", NULL -}; - static const Tk_OptionSpec tkBasicMenuEntryConfigSpecs[] = { {TK_OPTION_BORDER, "-activebackground", NULL, NULL, DEF_MENU_ENTRY_ACTIVE_BG, Tk_Offset(TkMenuEntry, activeBorderPtr), -1, @@ -140,7 +131,7 @@ static const Tk_OptionSpec tkBasicMenuEntryConfigSpecs[] = { Tk_Offset(TkMenuEntry, commandPtr), -1, TK_OPTION_NULL_OK, NULL, 0}, {TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound", DEF_MENU_ENTRY_COMPOUND, -1, Tk_Offset(TkMenuEntry, compound), 0, - (ClientData) compoundStrings, 0}, + tkCompoundStrings, 0}, {TK_OPTION_FONT, "-font", NULL, NULL, DEF_MENU_ENTRY_FONT, Tk_Offset(TkMenuEntry, fontPtr), -1, TK_OPTION_NULL_OK, NULL, 0}, diff --git a/generic/tkMenubutton.c b/generic/tkMenubutton.c index 5f4f40f..091fe09 100644 --- a/generic/tkMenubutton.c +++ b/generic/tkMenubutton.c @@ -37,24 +37,6 @@ static const char *const directionStrings[] = { }; /* - * The following table defines the legal values for the -state option. It is - * used together with the "enum state" declaration in tkMenubutton.h. - */ - -static const char *const stateStrings[] = { - "active", "disabled", "normal", NULL -}; - -/* - * The following table defines the legal values for the -compound option. It - * is used with the "enum compound" declaration in tkMenuButton.h - */ - -static const char *const compoundStrings[] = { - "bottom", "center", "left", "none", "right", "top", NULL -}; - -/* * Information used for parsing configuration specs: */ @@ -133,10 +115,10 @@ static const Tk_OptionSpec optionSpecs[] = { 0, 0, 0}, {TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound", DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkMenuButton, compound), 0, - compoundStrings, 0}, + tkCompoundStrings, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_MENUBUTTON_STATE, -1, Tk_Offset(TkMenuButton, state), - 0, stateStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_MENUBUTTON_TAKE_FOCUS, -1, Tk_Offset(TkMenuButton, takeFocus), TK_OPTION_NULL_OK, 0, 0}, diff --git a/generic/tkScale.c b/generic/tkScale.c index fa2a5d5..330454e 100644 --- a/generic/tkScale.c +++ b/generic/tkScale.c @@ -34,15 +34,6 @@ static const char *const orientStrings[] = { "horizontal", "vertical", NULL }; -/* - * The following table defines the legal values for the -state option. It is - * used together with the "enum state" declaration in tkScale.h. - */ - -static const char *const stateStrings[] = { - "active", "disabled", "normal", NULL -}; - static const Tk_OptionSpec optionSpecs[] = { {TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground", DEF_SCALE_ACTIVE_BG_COLOR, -1, Tk_Offset(TkScale, activeBorder), @@ -118,7 +109,7 @@ static const Tk_OptionSpec optionSpecs[] = { 0, 0, 0}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_SCALE_STATE, -1, Tk_Offset(TkScale, state), - 0, stateStrings, 0}, + 0, tkStateStrings, 0}, {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", DEF_SCALE_TAKE_FOCUS, Tk_Offset(TkScale, takeFocusPtr), -1, TK_OPTION_NULL_OK, 0, 0}, diff --git a/generic/tkText.c b/generic/tkText.c index 3f99880..2e6ebbc 100644 --- a/generic/tkText.c +++ b/generic/tkText.c @@ -43,16 +43,6 @@ #define PIXEL_CLIENTS 5 /* - * The 'TkTextState' enum in tkText.h is used to define a type for the -state - * option of the Text widget. These values are used as indices into the string - * table below. - */ - -static const char *const stateStrings[] = { - "disabled", "normal", NULL -}; - -/* * The 'TkWrapMode' enum in tkText.h is used to define a type for the -wrap * option of the Text widget. These values are used as indices into the string * table below. @@ -230,7 +220,7 @@ static const Tk_OptionSpec optionSpecs[] = { &lineOption, TK_TEXT_LINE_RANGE}, {TK_OPTION_STRING_TABLE, "-state", "state", "State", DEF_TEXT_STATE, -1, Tk_Offset(TkText, state), - 0, stateStrings, 0}, + 0, &tkStateStrings[1], 0}, {TK_OPTION_STRING, "-tabs", "tabs", "Tabs", DEF_TEXT_TABS, Tk_Offset(TkText, tabOptionPtr), -1, TK_OPTION_NULL_OK, 0, TK_TEXT_LINE_GEOMETRY}, diff --git a/generic/ttk/ttkDefaultTheme.c b/generic/ttk/ttkDefaultTheme.c index 89bf028..e4bfeca 100644 --- a/generic/ttk/ttkDefaultTheme.c +++ b/generic/ttk/ttkDefaultTheme.c @@ -731,7 +731,7 @@ typedef struct { Tcl_Obj *colorObj; } MenubuttonArrowElement; -static const char *directionStrings[] = { /* See also: button.c */ +static const char *const directionStrings[] = { /* See also: button.c */ "above", "below", "left", "right", "flush", NULL }; enum { POST_ABOVE, POST_BELOW, POST_LEFT, POST_RIGHT, POST_FLUSH }; diff --git a/generic/ttk/ttkImage.c b/generic/ttk/ttkImage.c index 2ef30e0..002a753 100644 --- a/generic/ttk/ttkImage.c +++ b/generic/ttk/ttkImage.c @@ -344,7 +344,7 @@ Ttk_CreateImageElement( const char *elementName, int objc, Tcl_Obj *const objv[]) { - static const char *optionStrings[] = + static const char *const optionStrings[] = { "-border","-height","-padding","-sticky","-width",NULL }; enum { O_BORDER, O_HEIGHT, O_PADDING, O_STICKY, O_WIDTH }; diff --git a/generic/ttk/ttkInit.c b/generic/ttk/ttkInit.c index 0bda18b..9bc9d75 100644 --- a/generic/ttk/ttkInit.c +++ b/generic/ttk/ttkInit.c @@ -12,7 +12,7 @@ * Legal values for the button -default option. * See also: enum Ttk_ButtonDefaultState. */ -const char *ttkDefaultStrings[] = { +const char *const ttkDefaultStrings[] = { "normal", "active", "disabled", NULL }; @@ -28,7 +28,7 @@ int Ttk_GetButtonDefaultStateFromObj( * Legal values for the -compound option. * See also: enum Ttk_Compound. */ -const char *ttkCompoundStrings[] = { +const char *const ttkCompoundStrings[] = { "none", "text", "image", "center", "top", "bottom", "left", "right", NULL }; @@ -45,7 +45,7 @@ int Ttk_GetCompoundFromObj( * Legal values for the -orient option. * See also: enum Ttk_Orient. */ -const char *ttkOrientStrings[] = { +const char *const ttkOrientStrings[] = { "horizontal", "vertical", NULL }; @@ -61,7 +61,7 @@ int Ttk_GetOrientFromObj( * Recognized values for the -state compatibility option. * Other options are accepted and interpreted as synonyms for "normal". */ -static const char *ttkStateStrings[] = { +static const char *const ttkStateStrings[] = { "normal", "readonly", "disabled", "active", NULL }; enum { diff --git a/generic/ttk/ttkLayout.c b/generic/ttk/ttkLayout.c index ed61a1c..9cebe2d 100644 --- a/generic/ttk/ttkLayout.c +++ b/generic/ttk/ttkLayout.c @@ -603,13 +603,13 @@ Ttk_InstantiateLayout(Ttk_Theme theme, Ttk_TemplateNode *op) */ /* NB: This must match bit definitions TTK_PACK_LEFT etc. */ -static const char *packSideStrings[] = +static const char *const packSideStrings[] = { "left", "right", "top", "bottom", NULL }; Ttk_LayoutTemplate Ttk_ParseLayoutTemplate(Tcl_Interp *interp, Tcl_Obj *objPtr) { enum { OP_SIDE, OP_STICKY, OP_EXPAND, OP_BORDER, OP_UNIT, OP_CHILDREN }; - static const char *optStrings[] = { + static const char *const optStrings[] = { "-side", "-sticky", "-expand", "-border", "-unit", "-children", 0 }; int i = 0, objc; diff --git a/generic/ttk/ttkNotebook.c b/generic/ttk/ttkNotebook.c index ea82ef1..24dea7b 100644 --- a/generic/ttk/ttkNotebook.c +++ b/generic/ttk/ttkNotebook.c @@ -1053,7 +1053,7 @@ static int NotebookHideCommand( static int NotebookIdentifyCommand( void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { - static const char *whatTable[] = { "element", "tab", NULL }; + static const char *const whatTable[] = { "element", "tab", NULL }; enum { IDENTIFY_ELEMENT, IDENTIFY_TAB }; int what = IDENTIFY_ELEMENT; Notebook *nb = (Notebook *)recordPtr; diff --git a/generic/ttk/ttkPanedwindow.c b/generic/ttk/ttkPanedwindow.c index 4fbbf94..8563c07 100644 --- a/generic/ttk/ttkPanedwindow.c +++ b/generic/ttk/ttkPanedwindow.c @@ -717,7 +717,7 @@ static int PanedForgetCommand( static int PanedIdentifyCommand( void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { - static const char *whatTable[] = { "element", "sash", NULL }; + static const char *const whatTable[] = { "element", "sash", NULL }; enum { IDENTIFY_ELEMENT, IDENTIFY_SASH }; int what = IDENTIFY_SASH; Paned *pw = (Paned *)recordPtr; diff --git a/generic/ttk/ttkTheme.c b/generic/ttk/ttkTheme.c index 00cb50b..711c410 100644 --- a/generic/ttk/ttkTheme.c +++ b/generic/ttk/ttkTheme.c @@ -1381,7 +1381,7 @@ static int StyleThemeCreateCmd( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { StylePackageData *pkgPtr = (StylePackageData *)clientData; - static const char *optStrings[] = + static const char *const optStrings[] = { "-parent", "-settings", NULL }; enum { OP_PARENT, OP_SETTINGS }; Ttk_Theme parentTheme = pkgPtr->defaultTheme, newTheme; diff --git a/generic/ttk/ttkTreeview.c b/generic/ttk/ttkTreeview.c index 1bb0482..23bc3eb 100644 --- a/generic/ttk/ttkTreeview.c +++ b/generic/ttk/ttkTreeview.c @@ -319,14 +319,14 @@ static Tk_OptionSpec HeadingOptionSpecs[] = { #define DEFAULT_SHOW "tree headings" -static const char *showStrings[] = { +static const char *const showStrings[] = { "tree", "headings", NULL }; static int GetEnumSetFromObj( Tcl_Interp *interp, Tcl_Obj *objPtr, - const char *table[], + const char *const table[], unsigned *resultPtr) { unsigned result = 0; @@ -433,7 +433,7 @@ typedef struct { #define SCROLLCMD_CHANGED (USER_MASK<<2) #define SHOW_CHANGED (USER_MASK<<3) -static const char *SelectModeStrings[] = { "none", "browse", "extended", NULL }; +static const char *const SelectModeStrings[] = { "none", "browse", "extended", NULL }; static Tk_OptionSpec TreeviewOptionSpecs[] = { {TK_OPTION_STRING, "-columns", "columns", "Columns", @@ -1501,7 +1501,7 @@ typedef enum { REGION_CELL } TreeRegion; -static const char *regionStrings[] = { +static const char *const regionStrings[] = { "nothing", "heading", "separator", "tree", "cell", 0 }; @@ -2263,7 +2263,7 @@ done: static int TreeviewIdentifyCommand( void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { - static const char *submethodStrings[] = + static const char *const submethodStrings[] = { "region", "item", "column", "row", "element", NULL }; enum { I_REGION, I_ITEM, I_COLUMN, I_ROW, I_ELEMENT }; @@ -2949,7 +2949,7 @@ static int TreeviewSelectionCommand( enum { SELECTION_SET, SELECTION_ADD, SELECTION_REMOVE, SELECTION_TOGGLE }; - static const char *selopStrings[] = { + static const char *const selopStrings[] = { "set", "add", "remove", "toggle", NULL }; diff --git a/generic/ttk/ttkWidget.c b/generic/ttk/ttkWidget.c index f5bfb4d..36b5097 100644 --- a/generic/ttk/ttkWidget.c +++ b/generic/ttk/ttkWidget.c @@ -755,7 +755,7 @@ int TtkWidgetIdentifyCommand( { WidgetCore *corePtr = recordPtr; Ttk_Element element; - static const char *whatTable[] = { "element", NULL }; + static const char *const whatTable[] = { "element", NULL }; int x, y, what; if (objc < 4 || objc > 5) { diff --git a/generic/ttk/ttkWidget.h b/generic/ttk/ttkWidget.h index 6cd691b..c6b2dc9 100644 --- a/generic/ttk/ttkWidget.h +++ b/generic/ttk/ttkWidget.h @@ -247,9 +247,9 @@ MODULE_SCOPE void Ttk_TagSetApplyStyle(Ttk_TagTable,Ttk_Style,Ttk_State,void*); * String tables for widget resource specifications: */ -MODULE_SCOPE const char *ttkOrientStrings[]; -MODULE_SCOPE const char *ttkCompoundStrings[]; -MODULE_SCOPE const char *ttkDefaultStrings[]; +MODULE_SCOPE const char *const ttkOrientStrings[]; +MODULE_SCOPE const char *const ttkCompoundStrings[]; +MODULE_SCOPE const char *const ttkDefaultStrings[]; /* * ... other option types... -- cgit v0.12