summaryrefslogtreecommitdiffstats
path: root/mac/tkMacInit.c
diff options
context:
space:
mode:
Diffstat (limited to 'mac/tkMacInit.c')
-rw-r--r--mac/tkMacInit.c85
1 files changed, 39 insertions, 46 deletions
diff --git a/mac/tkMacInit.c b/mac/tkMacInit.c
index ba90fc9..ad3118e 100644
--- a/mac/tkMacInit.c
+++ b/mac/tkMacInit.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacInit.c,v 1.3 1999/04/16 01:51:31 stanton Exp $
+ * RCS: @(#) $Id: tkMacInit.c,v 1.4 2001/11/23 02:05:52 das Exp $
*/
#include <Resources.h>
@@ -63,24 +63,38 @@ TkpInit(
* safe interps because file exists is restricted.
* to be fixed using [interp issafe] like in Unix & Windows.
*/
- static char initCmd[] =
- "if [file exists $tk_library:tk.tcl] {\n\
- source $tk_library:tk.tcl\n\
- source $tk_library:button.tcl\n\
- source $tk_library:entry.tcl\n\
- source $tk_library:listbox.tcl\n\
- source $tk_library:menu.tcl\n\
- source $tk_library:scale.tcl\n\
- source $tk_library:scrlbar.tcl\n\
- source $tk_library:text.tcl\n\
- source $tk_library:comdlg.tcl\n\
- source $tk_library:msgbox.tcl\n\
- } else {\n\
- set msg \"can't find tk resource or $tk_library:tk.tcl;\"\n\
- append msg \" perhaps you need to\\ninstall Tk or set your \"\n\
- append msg \"TK_LIBRARY environment variable?\"\n\
- error $msg\n\
- }";
+ static char initCmd[] = "\
+proc sourcePath {file} {\n\
+ global tk_library\n\
+ if {[catch {uplevel #0 [list source $tk_library:$file.tcl]}] == 0} {\n\
+ return\n\
+ }\n\
+ if {[catch {uplevel #0 [list source -rsrc $file]}] == 0} {\n\
+ return\n\
+ }\n\
+ rename sourcePath {}\n\
+ set msg \"can't find $file resource or a usable $file.tcl file\"\n\
+ append msg \" perhaps you need to install Tk or set your \"\n\
+ append msg \"TK_LIBRARY environment variable?\"\n\
+ error $msg\n\
+}\n\
+sourcePath tk\n\
+sourcePath button\n\
+sourcePath dialog\n\
+sourcePath entry\n\
+sourcePath focus\n\
+sourcePath listbox\n\
+sourcePath menu\n\
+sourcePath optMenu\n\
+sourcePath palette\n\
+sourcePath scale\n\
+sourcePath scrlbar\n\
+sourcePath tearoff\n\
+sourcePath text\n\
+sourcePath bgerror\n\
+sourcePath msgbox\n\
+sourcePath comdlg\n\
+rename sourcePath {}";
Tcl_DStringInit(&path);
@@ -100,13 +114,15 @@ TkpInit(
tempPath = Tcl_GetVar2(interp, "env", "EXT_FOLDER", TCL_GLOBAL_ONLY);
if (tempPath != NULL) {
Tcl_DString libPath;
+ char *argv[3];
- Tcl_JoinPath(1, &tempPath, &path);
-
+ argv[0] = tempPath;
+ argv[1] = "Tool Command Language";
Tcl_DStringInit(&libPath);
- Tcl_DStringAppend(&libPath, ":Tool Command Language:tk", -1);
+ Tcl_DStringAppend(&libPath, "tk", -1);
Tcl_DStringAppend(&libPath, TK_VERSION, -1);
- Tcl_JoinPath(1, &libPath.string, &path);
+ argv[2] = libPath.string;
+ Tcl_JoinPath(3, argv, &path);
Tcl_DStringFree(&libPath);
libDir = path.string;
}
@@ -121,30 +137,7 @@ TkpInit(
Tcl_SetVar(interp, "tk_library", libDir, TCL_GLOBAL_ONLY);
Tcl_DStringFree(&path);
- /*
- * Source the needed Tk libraries from the resource
- * fork of the application.
- */
- result = Tcl_MacEvalResource(interp, "tk", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "button", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "entry", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "listbox", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "menu", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "scale", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "scrollbar", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "text", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "dialog", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "focus", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "optionMenu", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "palette", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "tearoff", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "tkerror", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "comdlg", 0, NULL);
- result |= Tcl_MacEvalResource(interp, "msgbox", 0, NULL);
-
- if (result != TCL_OK) {
result = Tcl_Eval(interp, initCmd);
- }
return result;
}