otkAppInit.c
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /* 
  2.  * tkAppInit.c --
  3.  *
  4.  * Provides a default version of the Tcl_AppInit procedure for
  5.  * use in wish and similar Tk-based applications.
  6.  *
  7.  * Copyright (c) 1993 The Regents of the University of California.
  8.  * Copyright (c) 1994 Sun Microsystems, Inc.
  9.  *
  10.  * See the file "license.terms" for information on usage and redistribution
  11.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  12.  */
  13. #ifndef lint
  14. /* static char sccsid[] = "@(#) tkAppInit.c 1.12 94/12/17 16:30:56"; */
  15. #endif /* not lint */
  16. #include <tk.h>
  17. #include <otcl.h>
  18. #if TK_MAJOR_VERSION < 3 || (TK_MAJOR_VERSION==3 && TK_MINOR_VERSION<3)
  19.   #error Tk distribution TOO OLD
  20. #endif
  21. /*
  22.  * The following variable is a special hack that is needed in order for
  23.  * Sun shared libraries to be used for Tcl.
  24.  */
  25. #ifdef NEED_MATHERR
  26. extern int matherr();
  27. int *tclDummyMathPtr = (int *) matherr;
  28. #endif
  29. /*
  30.  *----------------------------------------------------------------------
  31.  *
  32.  * main --
  33.  *
  34.  * This is the main program for the application.
  35.  *
  36.  * Results:
  37.  * None: Tk_Main never returns here, so this procedure never
  38.  * returns either.
  39.  *
  40.  * Side effects:
  41.  * Whatever the application does.
  42.  *
  43.  *----------------------------------------------------------------------
  44.  */
  45. #if TK_MAJOR_VERSION < 4
  46. extern int main();
  47. int *tclDummyMainPtr = (int *) main;
  48. #else
  49. int
  50. main(argc, argv)
  51.     int argc; /* Number of command-line arguments. */
  52.     char **argv; /* Values of command-line arguments. */
  53. {
  54.     Tk_Main(argc, argv, Tcl_AppInit);
  55.     return 0; /* Needed only to prevent compiler warning. */
  56. }
  57. #endif
  58. /*
  59.  *----------------------------------------------------------------------
  60.  *
  61.  * Tcl_AppInit --
  62.  *
  63.  * This procedure performs application-specific initialization.
  64.  * Most applications, especially those that incorporate additional
  65.  * packages, will have their own version of this procedure.
  66.  *
  67.  * Results:
  68.  * Returns a standard Tcl completion code, and leaves an error
  69.  * message in interp->result if an error occurs.
  70.  *
  71.  * Side effects:
  72.  * Depends on the startup script.
  73.  *
  74.  *----------------------------------------------------------------------
  75.  */
  76. int
  77. Tcl_AppInit(interp)
  78.     Tcl_Interp *interp; /* Interpreter for application. */
  79. {
  80.     Tk_Window main;
  81.     main = Tk_MainWindow(interp);
  82.     if (Tcl_Init(interp) == TCL_ERROR) {
  83. return TCL_ERROR;
  84.     }
  85.     if (Tk_Init(interp) == TCL_ERROR) {
  86. return TCL_ERROR;
  87.     }
  88.     if (Otcl_Init(interp) == TCL_ERROR) {
  89.       return TCL_ERROR;
  90.     }
  91. #if TK_MAJOR_VERSION < 4 || (TK_MAJOR_VERSION==4 && TK_MINOR_VERSION<1)
  92.     tcl_RcFileName = "~/.wishrc";
  93. #else
  94.     Tcl_SetVar(interp, "tcl_rcFileName", "~/.wishrc", TCL_GLOBAL_ONLY);
  95. #endif
  96.     return TCL_OK;
  97. }