aboutsummaryrefslogtreecommitdiff
path: root/pd/src/t_main.c
diff options
context:
space:
mode:
authorGuenter Geiger <ggeiger@users.sourceforge.net>2002-07-29 17:06:19 +0000
committerGuenter Geiger <ggeiger@users.sourceforge.net>2002-07-29 17:06:19 +0000
commit57045df5fe3ec557e57dc7434ac1a07b5521bffc (patch)
tree7174058b41b73c808107c7090d9a4e93ee202341 /pd/src/t_main.c
parentda38b3424229e59f956252c3d89895e43e84e278 (diff)
This commit was generated by cvs2svn to compensate for changes in r58,
which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=59
Diffstat (limited to 'pd/src/t_main.c')
-rw-r--r--pd/src/t_main.c123
1 files changed, 123 insertions, 0 deletions
diff --git a/pd/src/t_main.c b/pd/src/t_main.c
new file mode 100644
index 00000000..d4d48c63
--- /dev/null
+++ b/pd/src/t_main.c
@@ -0,0 +1,123 @@
+/* Copyright (c) 1997-1999 Miller Puckette.
+* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
+
+/* This file should be compared with the corresponding thing in the TK
+* distribution whenever updating to newer versions of TCL/TK. */
+
+/*
+ * Copyright (c) 1993 The Regents of the University of California.
+ * Copyright (c) 1994 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ */
+
+
+#ifndef MACOSX /* linux and IRIX only; in MACOSX we don't link this in */
+#include "tk.h"
+#include <stdlib.h>
+
+/*
+ * The following variable is a special hack that is needed in order for
+ * Sun shared libraries to be used for Tcl.
+ */
+
+extern int matherr(void);
+int *tclDummyMathPtr = (int *) matherr;
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * main --
+ *
+ * This is the main program for the application.
+ *
+ * Results:
+ * None: Tk_Main never returns here, so this procedure never
+ * returns either.
+ *
+ * Side effects:
+ * Whatever the application does.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void pdgui_startup(Tcl_Interp *interp);
+void pdgui_setname(char *name);
+void pdgui_setsock(int port);
+void pdgui_sethost(char *name);
+
+int
+main(int argc, char **argv)
+{
+ pdgui_setname(argv[0]);
+ if (argc >= 2)
+ {
+ pdgui_setsock(atoi(argv[1]));
+ argc--; argv++;
+ argv[0] = "Pd";
+ }
+ if (argc >= 2)
+ {
+ pdgui_sethost(argv[1]);
+ argc--; argv++;
+ argv[0] = "Pd";
+ }
+ Tk_Main(argc, argv, Tcl_AppInit);
+ return 0; /* Needed only to prevent compiler warning. */
+}
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_AppInit --
+ *
+ * This procedure performs application-specific initialization.
+ * Most applications, especially those that incorporate additional
+ * packages, will have their own version of this procedure.
+ *
+ * Results:
+ * Returns a standard Tcl completion code, and leaves an error
+ * message in interp->result if an error occurs.
+ *
+ * Side effects:
+ * Depends on the startup script.
+ *
+ *----------------------------------------------------------------------
+ */
+
+
+int
+Tcl_AppInit(interp)
+ Tcl_Interp *interp; /* Interpreter for application. */
+{
+ Tk_Window mainwindow;
+
+ if (Tcl_Init(interp) == TCL_ERROR) {
+ return TCL_ERROR;
+ }
+ if (Tk_Init(interp) == TCL_ERROR) {
+ return TCL_ERROR;
+ }
+
+ /* setup specific to pd-gui: */
+
+ pdgui_startup(interp);
+
+ /*
+ * Specify a user-specific startup file to invoke if the application
+ * is run interactively. Typically the startup file is "~/.apprc"
+ * where "app" is the name of the application. If this line is deleted
+ * then no user-specific startup file will be run under any conditions.
+ */
+
+#if 0
+ tcl_RcFileName = "~/.pdrc";
+#endif
+
+ return TCL_OK;
+}
+
+#endif /* MACOSX */