| <html> |
| <head> </head> |
| <body BGCOLOR="#FFFFFF"> |
| <tt> <pre> |
| |
| /* |
| * File : example_wrap.c |
| * Thu Apr 4 13:11:45 1996 |
| * |
| * This file was automatically generated by : |
| * Simplified Wrapper and Interface Generator (SWIG) |
| * |
| * Copyright (c) 1995,1996 |
| * The Regents of the University of California and |
| * The University of Utah |
| * |
| */ |
| |
| /* Implementation : TCL */ |
| |
| #define INCLUDE_TCL <tcl.h> |
| #define INCLUDE_TK <tk.h> |
| #include INCLUDE_TCL |
| #include <string.h> |
| #include <stdlib.h> |
| static void _swig_make_hex(char *_c, void *_ptr, char *type) { |
| static char _hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', |
| 'a', 'b', 'c', 'd', 'e', 'f' }; |
| unsigned long _p,_s; |
| char _result[128], *_r; |
| _r = _result; |
| _p = (unsigned long) _ptr; |
| if (_p > 0) { |
| while (_p > 0) { |
| _s = _p & 0xf; |
| *(_r++) = _hex[_s]; |
| _p = _p >> 4; |
| } |
| *_r = '_'; |
| while (_r >= _result) *(_c++) = *(_r--); |
| } else { |
| strcpy(_c,"NULL"); |
| } |
| if (_ptr) strcpy(_c,type); |
| } |
| static char *_swig_get_hex(char *_c, void **ptr, char *_t) { |
| unsigned long _p; |
| char *_tt; |
| _p = 0; |
| if (*_c == '_') { |
| _c++; |
| while (*_c) { |
| if ((*_c >= '0') && (*_c <= '9')) _p = (_p << 4) + (*_c - '0'); |
| else if ((*_c >= 'a') && (*_c <= 'f')) _p = (_p << 4) + ((*_c - 'a') + 10); |
| else break; |
| _c++; |
| } |
| if (_p == 0) { |
| return (char *) _c; |
| } |
| _tt = _c; |
| if (_t) { |
| if (strcmp(_c,_t)) return _tt; |
| } |
| *ptr = (void *) _p; |
| return (char *) 0; |
| } else { |
| if (strcmp(_c,"NULL") == 0) { |
| *ptr = (void *) 0; |
| return (char *) 0; |
| } |
| else |
| return _c; |
| } |
| } |
| |
| #define SWIG_init Wrap_Init |
| |
| |
| |
| |
| /* A TCL_AppInit() function that lets you build a new copy |
| * of tclsh. |
| * |
| * The macro WG_init contains the name of the initialization |
| * function in the wrapper file. |
| */ |
| |
| #ifndef SWIG_RcFileName |
| char *SWIG_RcFileName = "~/.myapprc"; |
| #endif |
| |
| #if TCL_MAJOR_VERSION == 7 && TCL_MINOR_VERSION >= 4 |
| int main(int argc, char **argv) { |
| |
| Tcl_Main(argc, argv, Tcl_AppInit); |
| return(0); |
| |
| } |
| #else |
| extern int main(); |
| #endif |
| |
| int Tcl_AppInit(Tcl_Interp *interp){ |
| int SWIG_init(Tcl_Interp *); /* Forward reference */ |
| |
| if (Tcl_Init(interp) == TCL_ERROR) |
| return TCL_ERROR; |
| |
| /* Now initialize our functions */ |
| |
| if (SWIG_init(interp) == TCL_ERROR) |
| return TCL_ERROR; |
| |
| tcl_RcFileName = SWIG_RcFileName; |
| return TCL_OK; |
| } |
| |
| extern double My_variable; |
| extern int fact(int ); |
| extern int mod(int ,int ); |
| extern char * get_time(); |
| int _wrap_tcl_fact(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) { |
| int _result; |
| int _arg0; |
| |
| if (argc != 2) { |
| Tcl_SetResult(interp, "Wrong # args int : fact n ",TCL_STATIC); |
| return TCL_ERROR; |
| } |
| _arg0 = (int ) atol(argv[1]); |
| _result = fact(_arg0); |
| sprintf(interp->result,"%ld", (long) _result); |
| return TCL_OK; |
| } |
| int _wrap_tcl_mod(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) { |
| int _result; |
| int _arg0; |
| int _arg1; |
| |
| if (argc != 3) { |
| Tcl_SetResult(interp, "Wrong # args int : mod x y ",TCL_STATIC); |
| return TCL_ERROR; |
| } |
| _arg0 = (int ) atol(argv[1]); |
| _arg1 = (int ) atol(argv[2]); |
| _result = mod(_arg0,_arg1); |
| sprintf(interp->result,"%ld", (long) _result); |
| return TCL_OK; |
| } |
| int _wrap_tcl_get_time(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) { |
| char * _result; |
| |
| if (argc != 1) { |
| Tcl_SetResult(interp, "Wrong # args char * : get_time ",TCL_STATIC); |
| return TCL_ERROR; |
| } |
| _result = get_time(); |
| Tcl_SetResult(interp, _result, TCL_VOLATILE); |
| return TCL_OK; |
| } |
| int Wrap_Init(Tcl_Interp *interp) { |
| if (interp == 0) |
| return TCL_ERROR; |
| Tcl_LinkVar(interp, "My_variable", (char *) &My_variable, TCL_LINK_DOUBLE); |
| Tcl_CreateCommand(interp, "fact", _wrap_tcl_fact, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); |
| Tcl_CreateCommand(interp, "mod", _wrap_tcl_mod, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); |
| Tcl_CreateCommand(interp, "get_time", _wrap_tcl_get_time, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); |
| return TCL_OK; |
| } |
| |
| </pre> </tt> </body> |
| </html> |
| |
| |
| |