Initial revision
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@444 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
3a9a8b4304
commit
45b51a07f8
176 changed files with 95839 additions and 0 deletions
176
swigweb/tutorial/example_wrap.html
Executable file
176
swigweb/tutorial/example_wrap.html
Executable file
|
|
@ -0,0 +1,176 @@
|
|||
<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>
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue