### Bug Summary

File: | Modules/tkappinit.c
Location: | line 114, column 5
Description: | Value stored to 'main_window' is never read

### Annotated Source Code

1 | /* appinit.c -- Tcl and Tk application initialization.
2 |
3 | The function Tcl_AppInit() below initializes various Tcl packages.
4 | It is called for each Tcl interpreter created by _tkinter.create().
5 | It needs to be compiled with -DWITH_<package> flags for each package
6 | that you are statically linking with. You may have to add sections
7 | for packages not yet listed below.
8 |
9 | Note that those packages for which Tcl_StaticPackage() is called with
10 | a NULL first argument are known as "static loadable" packages to
11 | Tcl but not actually initialized. To use these, you have to load
12 | it explicitly, e.g. tkapp.eval("load {} Blt").
13 | */
14 |
15 | #include <string.h>
16 | #include <tcl.h>
17 | #include <tk.h>
18 |
19 | #include "tkinter.h"
20 |
21 | #ifdef TKINTER_PROTECT_LOADTK
22 | /* See Tkapp_TkInit in _tkinter.c for the usage of tk_load_faile */
23 | static int tk_load_failed;
24 | #endif
25 |
26 | int
27 | Tcl_AppInit(Tcl_Interp *interp)
28 | {
29 | Tk_Window main_window;
30 | const char *_tkinter_skip_tk_init;
31 | #ifdef TKINTER_PROTECT_LOADTK
32 | const char *_tkinter_tk_failed;
33 | #endif
34 |
35 | #ifdef TK_AQUA
36 | #ifndef MAX_PATH_LEN
37 | #define MAX_PATH_LEN 1024
38 | #endif
39 | char tclLibPath[MAX_PATH_LEN], tkLibPath[MAX_PATH_LEN];
40 | Tcl_Obj* pathPtr;
41 |
42 | /* pre- Tcl_Init code copied from tkMacOSXAppInit.c */
43 | Tk_MacOSXOpenBundleResources (interp, "com.tcltk.tcllibrary",
44 | tclLibPath, MAX_PATH_LEN, 0);
45 |
46 | if (tclLibPath[0] != '\0') {
47 | Tcl_SetVar(interp, "tcl_library", tclLibPath, TCL_GLOBAL_ONLY1);
48 | Tcl_SetVar(interp, "tclDefaultLibrary", tclLibPath, TCL_GLOBAL_ONLY1);
49 | Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath, TCL_GLOBAL_ONLY1);
50 | }
51 |
52 | if (tclLibPath[0] != '\0') {
53 | Tcl_SetVar(interp, "tcl_library", tclLibPath, TCL_GLOBAL_ONLY1);
54 | Tcl_SetVar(interp, "tclDefaultLibrary", tclLibPath, TCL_GLOBAL_ONLY1);
55 | Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath, TCL_GLOBAL_ONLY1);
56 | }
57 | #endif
58 | if (Tcl_Init (interp) == TCL_ERROR1)
59 | return TCL_ERROR1;
60 |
61 | #ifdef TK_AQUA
62 | /* pre- Tk_Init code copied from tkMacOSXAppInit.c */
63 | Tk_MacOSXOpenBundleResources (interp, "com.tcltk.tklibrary",
64 | tkLibPath, MAX_PATH_LEN, 1);
65 |
66 | if (tclLibPath[0] != '\0') {
67 | pathPtr = Tcl_NewStringObj(tclLibPath, -1);
68 | } else {
69 | Tcl_Obj *pathPtr = TclGetLibraryPath();
70 | }
71 |
72 | if (tkLibPath[0] != '\0') {
73 | Tcl_Obj *objPtr;
74 |
75 | Tcl_SetVar(interp, "tk_library", tkLibPath, TCL_GLOBAL_ONLY1);
76 | objPtr = Tcl_NewStringObj(tkLibPath, -1);
77 | Tcl_ListObjAppendElement(NULL((void*)0), pathPtr, objPtr);
78 | }
79 |
80 | TclSetLibraryPath(pathPtr);
81 | #endif
82 |
83 | #ifdef WITH_XXX
84 | /* Initialize modules that don't require Tk */
85 | #endif
86 |
87 | _tkinter_skip_tk_init = Tcl_GetVar(interp,
88 | "_tkinter_skip_tk_init", TCL_GLOBAL_ONLY1);
89 | if (_tkinter_skip_tk_init != NULL((void*)0) &&
90 | strcmp(_tkinter_skip_tk_init, "1") == 0) {
91 | return TCL_OK0;
92 | }
93 |
94 | #ifdef TKINTER_PROTECT_LOADTK
95 | _tkinter_tk_failed = Tcl_GetVar(interp,
96 | "_tkinter_tk_failed", TCL_GLOBAL_ONLY1);
97 |
98 | if (tk_load_failed || (
99 | _tkinter_tk_failed != NULL((void*)0) &&
100 | strcmp(_tkinter_tk_failed, "1") == 0)) {
101 | Tcl_SetResult(interp, TKINTER_LOADTK_ERRMSG, TCL_STATIC((Tcl_FreeProc *) 0));
102 | return TCL_ERROR1;
103 | }
104 | #endif
105 |
106 | if (Tk_Init(interp) == TCL_ERROR1) {
107 | #ifdef TKINTER_PROTECT_LOADTK
108 | tk_load_failed = 1;
109 | Tcl_SetVar(interp, "_tkinter_tk_failed", "1", TCL_GLOBAL_ONLY1);
110 | #endif
111 | return TCL_ERROR1;
112 | }
113 |
114 | main_window = Tk_MainWindow(interp);
| Value stored to 'main_window' is never read
115 |
116 | #ifdef TK_AQUA
117 | TkMacOSXInitAppleEvents(interp);
118 | TkMacOSXInitMenus(interp);
119 | #endif
120 |
121 | #ifdef WITH_MOREBUTTONS
122 | {
123 | extern Tcl_CmdProc studButtonCmd;
124 | extern Tcl_CmdProc triButtonCmd;
125 |
126 | Tcl_CreateCommand(interp, "studbutton", studButtonCmd,
127 | (ClientData) main_window, NULL((void*)0));
128 | Tcl_CreateCommand(interp, "tributton", triButtonCmd,
129 | (ClientData) main_window, NULL((void*)0));
130 | }
131 | #endif
132 |
133 | #ifdef WITH_PIL /* 0.2b5 and later -- not yet released as of May 14 */
134 | {
135 | extern void TkImaging_Init(Tcl_Interp *);
136 | TkImaging_Init(interp);
137 | /* XXX TkImaging_Init() doesn't have the right return type */
138 | /*Tcl_StaticPackage(interp, "Imaging", TkImaging_Init, NULL);*/
139 | }
140 | #endif
141 |
142 | #ifdef WITH_PIL_OLD /* 0.2b4 and earlier */
143 | {
144 | extern void TkImaging_Init(void);
145 | /* XXX TkImaging_Init() doesn't have the right prototype */
146 | /*Tcl_StaticPackage(interp, "Imaging", TkImaging_Init, NULL);*/
147 | }
148 | #endif
149 |
150 | #ifdef WITH_TIX
151 | {
152 | extern int Tix_Init(Tcl_Interp *interp);
153 | extern int Tix_SafeInit(Tcl_Interp *interp);
154 | Tcl_StaticPackage(NULL((void*)0), "Tix", Tix_Init, Tix_SafeInit);
155 | }
156 | #endif
157 |
158 | #ifdef WITH_BLT
159 | {
160 | extern int Blt_Init(Tcl_Interp *);
161 | extern int Blt_SafeInit(Tcl_Interp *);
162 | Tcl_StaticPackage(NULL((void*)0), "Blt", Blt_Init, Blt_SafeInit);
163 | }
164 | #endif
165 |
166 | #ifdef WITH_TOGL
167 | {
168 | /* XXX I've heard rumors that this doesn't work */
169 | extern int Togl_Init(Tcl_Interp *);
170 | /* XXX Is there no Togl_SafeInit? */
171 | Tcl_StaticPackage(NULL((void*)0), "Togl", Togl_Init, NULL((void*)0));
172 | }
173 | #endif
174 |
175 | #ifdef WITH_XXX
176 |
177 | #endif
178 | return TCL_OK0;
179 | }