[Sumover-dev] [svn commit] r3784 - vic/trunk/net

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Fri Aug 4 02:36:58 BST 2006


Author: ucacsva
Date: Fri Aug  4 02:36:57 2006
New Revision: 3784

Modified:
   vic/trunk/net/cbAppInit.c

Log:
Adapted confbus Tcl/Tk application startup code to using WIN32 socket API.

Modified: vic/trunk/net/cbAppInit.c
==============================================================================
--- vic/trunk/net/cbAppInit.c	(original)
+++ vic/trunk/net/cbAppInit.c	Fri Aug  4 02:36:57 2006
@@ -1,8 +1,8 @@
-/* 
+/*
  * tkAppInit.c --
  *
- *	Provides a default version of the Tcl_AppInit procedure for
- *	use in wish and similar Tk-based applications.
+ *      Provides a default version of the Tcl_AppInit procedure for
+ *      use in wish and similar Tk-based applications.
  *
  * Copyright (c) 1993 The Regents of the University of California.
  * Copyright (c) 1994 Sun Microsystems, Inc.
@@ -15,7 +15,11 @@
 static const char sccsid[] = "@(#) tkAppInit.c 1.15 95/06/28 13:14:28";
 #endif /* not lint */
 
-#include "tk.h"
+#ifdef WIN32^M
+#include <winsock.h>^M
+#endif
+
+#include <tk.h> //SV
 
 /*
  * The following variable is a special hack that is needed in order for
@@ -25,60 +29,35 @@
 //extern int matherr();
 //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.
- *
- *----------------------------------------------------------------------
- */
-
-int
-main(argc, argv)
-    int argc;			/* Number of command-line arguments. */
-    char **argv;		/* Values of command-line arguments. */
-{
-    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.
+ *      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.
+ *      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.
+ *      Depends on the startup script.
  *
  *----------------------------------------------------------------------
  */
 
 int
-Tcl_AppInit(interp)
-    Tcl_Interp *interp;		/* Interpreter for application. */
+Tcl_AppInit(Tcl_Interp *interp)
+//interp;               /* Interpreter for application. */
 {
     if (Tcl_Init(interp) == TCL_ERROR) {
-	return TCL_ERROR;
+        return TCL_ERROR;
     }
     if (Tk_Init(interp) == TCL_ERROR) {
-	return TCL_ERROR;
+        return TCL_ERROR;
     }
 
     /*
@@ -93,7 +72,7 @@
      */
 
     if (Cb_Init(interp) == TCL_ERROR) {
-	return TCL_ERROR;
+        return TCL_ERROR;
     }
     /*
      * Call Tcl_CreateCommand for application-specific commands, if
@@ -111,3 +90,72 @@
     Tcl_SetVar(interp, "tcl_RcFileName", "~/.cbrc", TCL_GLOBAL_ONLY);
     return TCL_OK;
 }
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * 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.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+main(argc, argv)
+    int argc;                   /* Number of command-line arguments. */
+    char **argv;                /* Values of command-line arguments. */
+{
+
+#ifdef WIN32
+        WSADATA wsaData;
+
+        /*
+         * Setup Winsock 1.1
+         */
+        WSAStartup(0x0101, &wsaData);
+
+        /* Confirm that the WinSock DLL supports 1.1.        */
+        /* Note that if the DLL supports versions greater    */
+        /* than 1.1 in addition to 1.1, it will still return */
+        /* 1.1 in wVersion since that is the version we      */
+        /* requested.                                        */
+        if (LOBYTE(wsaData.wVersion) != 1 ||
+        HIBYTE(wsaData.wVersion) != 1 ) {
+                /* Couldn't find an acceptable WinSock DLL       */
+                WSACleanup();
+
+                fprintf(stderr, "%s: failed to find Winsock version 1.1 or better\n", 
+                                argv[0]);
+
+                exit(1);
+        }
+
+        /* The WinSock DLL is acceptable. Proceed...         */
+        //fprintf(stderr, "%s found Winsock version 1.1 or better\n", argv[0]);
+#endif
+
+
+
+    Tk_Main(argc, argv, Tcl_AppInit);
+
+
+
+#ifdef WIN32
+        /*
+         * Cleanup Winsock
+         */
+        WSACleanup();
+#endif
+
+
+    return 0;                   /* Needed only to prevent compiler warning. */
+}
+



More information about the Sumover-dev mailing list