PageRenderTime 40ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/ttn-post-libtool-1-4-3-upgrade/SWIG/Lib/tcl/tcl8.swg

#
Unknown | 598 lines | 483 code | 115 blank | 0 comment | 0 complexity | 6ebb21d8ec1816a0b3c6cec7fc91c66e MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /* -----------------------------------------------------------------------------
  2. * tcl8.swg
  3. *
  4. * Tcl8 configuration module.
  5. * ----------------------------------------------------------------------------- */
  6. %runtime "common.swg"
  7. %runtime "swigtcl8.swg"
  8. /* -----------------------------------------------------------------------------
  9. * --- standard typemaps ---
  10. * ----------------------------------------------------------------------------- */
  11. /* Input arguments */
  12. /* For primitive types, the Tcl module uses a special function
  13. SWIG_GetArgs(Tcl_Interp *, int objc, Tcl_Obj *CONST objv[], const char *fmt, ...)
  14. The fmt field contains special conversion characters i,h,l,b,f,d,c,p, and o
  15. that are used to marshal different types. The parse codes below correspond
  16. to these special codes */
  17. %typemap(in,parse="i") int, unsigned int "";
  18. %typemap(in,parse="h") short, unsigned short "";
  19. %typemap(in,parse="l") long, unsigned long "";
  20. %typemap(in,parse="b") signed char, unsigned char "";
  21. %typemap(in,parse="f") float "";
  22. %typemap(in,parse="d") double "";
  23. %typemap(in,parse="c") char "";
  24. %typemap(in,parse="s") char *, char [ANY] "";
  25. /* Pointers */
  26. %typemap(in) SWIGTYPE *, SWIGTYPE &, SWIGTYPE []
  27. "if ((SWIG_ConvertPtr(interp, $input, (void **) &$1, $1_descriptor,SWIG_POINTER_EXCEPTION | $disown) != TCL_OK)) SWIG_fail;";
  28. /* For bools, we first convert to an integer and then to a bool. There
  29. is no guarantee that a bool is the same size as an int so we have to do this */
  30. %typemap(in) bool (int tempb) "if (Tcl_GetIntFromObj(interp,$input,&tempb) == TCL_ERROR) SWIG_fail;
  31. $1 = (bool) tempb;";
  32. /* These will pass an integer as an unsigned long. However, the implementation is crippled due
  33. to limited precision in Tcl */
  34. %typemap(in) long long "$1 = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);";
  35. %typemap(in) unsigned long long "$1 = (unsigned long long) strtoull(Tcl_GetStringFromObj($input,NULL), 0, 0);";
  36. /* Enum parsing. Note: internally SWIG converts enums to/from integers so it's okay to use
  37. the "i" parse code here */
  38. %typemap(in,parse="i") enum SWIGTYPE "";
  39. /* Unknown type. We convert from a pointer */
  40. %typemap(in) SWIGTYPE ($&1_ltype argp)
  41. "if ((SWIG_ConvertPtr(interp, $input, (void **) &argp, $&1_descriptor,SWIG_POINTER_EXCEPTION ) != TCL_OK)) SWIG_fail;
  42. $1 = *argp; ";
  43. /* Special constant variations. These typemaps can be used to parse objects that are both constants
  44. or values. A Hash table lookup will occur. */
  45. %typemap(in,parse="I") int CONSTANT, unsigned int CONSTANT "";
  46. %typemap(in,parse="H") short CONSTANT, unsigned short CONSTANT "";
  47. %typemap(in,parse="L") long CONSTANT, unsigned long CONSTANT "";
  48. %typemap(in,parse="B") signed char CONSTANT, unsigned char CONSTANT "";
  49. %typemap(in,parse="F") float CONSTANT "";
  50. %typemap(in,parse="D") double CONSTANT "";
  51. %typemap(in,parse="C") char CONSTANT "";
  52. %typemap(in,parse="S") char * CONSTANT "";
  53. %typemap(in,parse="P") SWIGTYPE *CONSTANT, SWIGTYPE &CONSTANT, SWIGTYPE CONSTANT [] "";
  54. %typemap(in,parse="I") enum SWIGTYPE CONSTANT "";
  55. /* Constant references. Passed by value */
  56. /* Const primitive references. Passed by value */
  57. %typemap(in) const int & (int temp),
  58. const short & (short temp),
  59. const long & (long temp),
  60. const unsigned int & (unsigned int temp),
  61. const unsigned short & (unsigned short temp),
  62. const unsigned long & (unsigned long temp),
  63. const signed char & (signed char temp),
  64. const unsigned char & (unsigned char temp),
  65. const bool & (bool temp)
  66. {
  67. long ltemp;
  68. if (Tcl_GetLongFromObj(interp, $input, &ltemp) != TCL_OK) {
  69. SWIG_fail;
  70. }
  71. temp = ($*1_ltype) ltemp;
  72. $1 = &temp;
  73. }
  74. %typemap(in) const float & (float temp),
  75. const double & (double temp)
  76. {
  77. double dtemp;
  78. if (Tcl_GetDoubleFromObj(interp, $input, &dtemp) != TCL_OK) {
  79. SWIG_fail;
  80. }
  81. temp = ($*1_ltype) dtemp;
  82. $1 = &temp;
  83. }
  84. %typemap(in) const long long & (long long temp)
  85. "temp = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);
  86. $1 = &temp;";
  87. %typemap(in) const unsigned long long & (unsigned long long temp)
  88. "temp = (unsigned long long) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);
  89. $1 = &temp;";
  90. %typemap(in) const char &(char temp) {
  91. char *stemp = Tcl_GetStringFromObj($input,NULL);
  92. temp = *stemp;
  93. $1 = &temp;
  94. }
  95. /* Output values */
  96. %typemap(out) bool, int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, enum SWIGTYPE
  97. "Tcl_SetObjResult(interp,Tcl_NewIntObj((long) $1));";
  98. %typemap(out) long long {
  99. char temp[256];
  100. sprintf(temp,"%lld", $1);
  101. Tcl_SetObjResult(interp,Tcl_NewStringObj(temp,-1));
  102. }
  103. %typemap(out) unsigned long long {
  104. char temp[256];
  105. sprintf(temp,"%llu", $1);
  106. Tcl_SetObjResult(interp,Tcl_NewStringObj(temp,-1));
  107. }
  108. %typemap(out) char
  109. "Tcl_SetObjResult(interp,Tcl_NewStringObj(&$1,1));";
  110. %typemap(out) float, double
  111. "Tcl_SetObjResult(interp,Tcl_NewDoubleObj((double) $1));";
  112. %typemap(out) char *
  113. "Tcl_SetObjResult(interp,Tcl_NewStringObj($1,-1));";
  114. %typemap(out) SWIGTYPE *, SWIGTYPE &, SWIGTYPE []
  115. "Tcl_SetObjResult(interp,SWIG_NewPointerObj((void *) $1, $1_descriptor,0));";
  116. %typemap(out) SWIGTYPE *DYNAMIC, SWIGTYPE &DYNAMIC {
  117. swig_type_info *ty = SWIG_TypeDynamicCast($1_descriptor,(void **) &$1);
  118. Tcl_SetObjResult(interp,SWIG_NewPointerObj((void *) $1, ty,0));
  119. }
  120. %typemap(out) SWIGTYPE *INSTANCE, SWIGTYPE &INSTANCE, SWIGTYPE INSTANCE[]
  121. "Tcl_SetObjResult(interp,SWIG_NewInstanceObj(interp, (void *) $1, $1_descriptor,0));";
  122. %typemap(out) SWIGTYPE *, SWIGTYPE &, SWIGTYPE []
  123. "Tcl_SetObjResult(interp,SWIG_NewInstanceObj(interp, (void *) $1, $1_descriptor,0));";
  124. %typemap(out) void "";
  125. /* Primitive types--return by value */
  126. %typemap(out) SWIGTYPE NOINSTANCE
  127. #ifdef __cplusplus
  128. {
  129. $&1_ltype resultptr;
  130. resultptr = new $1_ltype(($1_ltype &) $1);
  131. Tcl_SetObjResult(interp,SWIG_NewPointerObj((void*) resultptr, $&1_descriptor,0));
  132. }
  133. #else
  134. {
  135. $&1_ltype resultptr;
  136. resultptr = ($&1_ltype) malloc(sizeof($1_type));
  137. memmove(resultptr, &$1, sizeof($1_type));
  138. Tcl_SetObjResult(interp,SWIG_NewPointerObj((void*) resultptr, $&1_descriptor,0));
  139. }
  140. #endif
  141. /* Primitive types--return by value */
  142. %typemap(out) SWIGTYPE INSTANCE
  143. #ifdef __cplusplus
  144. {
  145. $&1_ltype resultptr;
  146. resultptr = new $1_ltype(($1_ltype &) $1);
  147. Tcl_SetObjResult(interp,SWIG_NewInstanceObj(interp,(void*) resultptr, $&1_descriptor,1));
  148. }
  149. #else
  150. {
  151. $&1_ltype resultptr;
  152. resultptr = ($&1_ltype) malloc(sizeof($1_type));
  153. memmove(resultptr, &$1, sizeof($1_type));
  154. Tcl_SetObjResult(interp,SWIG_NewInstanceObj(interp,(void*) resultptr, $&1_descriptor,1));
  155. }
  156. #endif
  157. %typemap(out) SWIGTYPE = SWIGTYPE INSTANCE;
  158. /* Special typemap for character array returns */
  159. %typemap(out) char [ANY] "Tcl_SetObjResult(interp,Tcl_NewStringObj($1,-1));"
  160. /* Primitive references */
  161. %typemap(out) const int &, const unsigned int &,
  162. const short &, const unsigned short &,
  163. const long &, const unsigned long &,
  164. const signed char &, const unsigned char &,
  165. const bool &
  166. "Tcl_SetObjResult(interp,Tcl_NewIntObj((long) *($1)));";
  167. %typemap(out) const float &, const double &
  168. "Tcl_SetObjResult(interp,Tcl_NewDoubleObj((double) *($1)));";
  169. %typemap(out) const long long & {
  170. char temp[256];
  171. sprintf(temp,"%lld", *($1));
  172. Tcl_SetObjResult(interp,Tcl_NewStringObj(temp,-1));
  173. }
  174. %typemap(out) const unsigned long long &
  175. {
  176. char temp[256];
  177. sprintf(temp,"%llu", *($1));
  178. Tcl_SetObjResult(interp,Tcl_NewStringObj(temp,-1));
  179. }
  180. %typemap(out) const char &
  181. "Tcl_SetObjResult(interp,Tcl_NewStringObj($1,1));";
  182. /* --- Variable output --- */
  183. %typemap(varout) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, bool, enum SWIGTYPE
  184. "$result = Tcl_NewIntObj((long) $1);";
  185. %typemap(varout) long long {
  186. char temp[256];
  187. sprintf(temp,"%lld", $1);
  188. $result = Tcl_NewStringObj(temp,-1);
  189. }
  190. %typemap(varout) unsigned long long {
  191. char temp[256];
  192. sprintf(temp,"%llu", $1);
  193. $result = Tcl_NewStringObj(temp,-1);
  194. }
  195. %typemap(varout) double,float "$result = Tcl_NewDoubleObj((double) $1);";
  196. %typemap(varout) char * "$result = Tcl_NewStringObj((char*) $1,-1);";
  197. %typemap(varout) char [ANY] "$result = Tcl_NewStringObj((char *) $1,-1);";
  198. %typemap(varout) char "$result = Tcl_NewStringObj(&$1,1);";
  199. %typemap(varout) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [] "$result = SWIG_NewPointerObj((void *) $1, $1_descriptor,0);";
  200. %typemap(varout) SWIGTYPE *INSTANCE, SWIGTYPE &INSTANCE, SWIGTYPE INSTANCE[]
  201. "$result = SWIG_NewInstanceObj(interp, (void *) $1, $1_descriptor,0);";
  202. %typemap(varout) SWIGTYPE "$result = SWIG_NewPointerObj((void *) &$1, $&1_descriptor,0);";
  203. %typemap(varout) SWIGTYPE INSTANCE "$result = SWIG_NewInstanceObj(interp, (void *) &$1, $&1_descriptor,0);";
  204. %typemap(varout) SWIGTYPE "$result = SWIG_NewInstanceObj(interp, (void *) &$1, $&1_descriptor,0);";
  205. /* -- Variable input --- */
  206. %typemap(varin) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, bool, enum SWIGTYPE
  207. {
  208. long temp;
  209. if (Tcl_GetLongFromObj(interp, $input, &temp) != TCL_OK) {
  210. return (char*) "Type error. expected an integer";
  211. }
  212. $1 = ($1_type) temp;
  213. }
  214. %typemap(varin) long long "$1 = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);";
  215. %typemap(varin) unsigned long long "$1 = (unsigned long long) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);";
  216. %typemap(varin) double, float {
  217. double temp;
  218. if (Tcl_GetDoubleFromObj(interp, $input, &temp) != TCL_OK) {
  219. return (char*) "Type error. expected a double.";
  220. }
  221. $1 = ($1_type) temp;
  222. }
  223. %typemap(varin) char *
  224. #ifdef __cplusplus
  225. {
  226. char *temp = Tcl_GetStringFromObj($input,NULL);
  227. if ($1) delete [] $1;
  228. $1 = ($1_type) new char[strlen(temp)+1];
  229. strcpy((char *) $1,temp);
  230. }
  231. #else
  232. {
  233. char *temp = Tcl_GetStringFromObj($input,NULL);
  234. if ($1) free((char*)$1);
  235. $1 = ($1_type) malloc(strlen(temp)+1);
  236. strcpy((char *) $1,temp);
  237. }
  238. #endif
  239. %typemap(varin,warning="451:Setting const char * variable may leak memory") const char *
  240. #ifdef __cplusplus
  241. {
  242. char *temp = Tcl_GetStringFromObj($input,NULL);
  243. $1 = ($1_type) new char[strlen(temp)+1];
  244. strcpy((char *) $1,temp);
  245. }
  246. #else
  247. {
  248. char *temp = Tcl_GetStringFromObj($input,NULL);
  249. $1 = ($1_type) malloc(strlen(temp)+1);
  250. strcpy((char *) $1,temp);
  251. }
  252. #endif
  253. %typemap(varin) char [ANY] {
  254. char *temp = Tcl_GetStringFromObj($input,NULL);
  255. strncpy((char*)$1,temp,$1_dim0);
  256. }
  257. %typemap(varin) char
  258. {
  259. char *temp = Tcl_GetStringFromObj($input,NULL);
  260. $1 = *temp;
  261. }
  262. %typemap(varin) SWIGTYPE * {
  263. void *temp;
  264. if (SWIG_ConvertPtr(interp,$input,&temp,$1_descriptor, SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN) != TCL_OK) {
  265. return (char*)"Type error. Expected $1_ltype";
  266. }
  267. $1 = ($1_type) temp;
  268. }
  269. %typemap(varin) void * {
  270. void *temp;
  271. if (SWIG_ConvertPtr(interp,$input,&temp,0, SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN) != TCL_OK) {
  272. return (char*)"Type error. Expected $1_ltype";
  273. }
  274. $1 = ($1_type) temp;
  275. }
  276. %typemap(varin) SWIGTYPE & {
  277. void *temp;
  278. if (SWIG_ConvertPtr(interp,$input,&temp,$1_descriptor, SWIG_POINTER_EXCEPTION) != TCL_OK) {
  279. return (char*)"Type error. Expected $1_ltype";
  280. }
  281. $1 = *(($&1_type) temp);
  282. }
  283. %typemap(varin) SWIGTYPE {
  284. void *temp;
  285. if (SWIG_ConvertPtr(interp,$input,&temp,$&1_descriptor, SWIG_POINTER_EXCEPTION) != TCL_OK) {
  286. return (char*)"Type error. Expected $&1_ltype";
  287. }
  288. $1 = *(($&1_type) temp);
  289. }
  290. %typemap(varin) SWIGTYPE [] {
  291. void *temp;
  292. if (SWIG_ConvertPtr(interp,$input,&temp,$1_descriptor, SWIG_POINTER_EXCEPTION) != TCL_OK) {
  293. return (char *)"Type error. Expected $1_ltype";
  294. }
  295. memmove((void *) $1,temp,$1_size*sizeof($1_basetype));
  296. }
  297. /* --- Constants --- */
  298. %typemap(consttab) int, unsigned int, short, unsigned short, long, unsigned long, unsigned char, signed char, bool, enum SWIGTYPE
  299. { SWIG_TCL_INT, (char *)"$symname", (long) $value, 0, 0, 0}
  300. %typemap(consttab) float, double
  301. { SWIG_TCL_FLOAT, (char*)"$symname", 0, (double) $value, 0, 0}
  302. %typemap(consttab) char, char *
  303. { SWIG_TCL_STRING, (char*)"$symname", 0, 0, (void *)"$value", 0}
  304. %typemap(consttab) long long, unsigned long long
  305. { SWIG_TCL_STRING, (char *) "$symname", 0, 0, (void *)"$value", 0}
  306. %typemap(consttab) SWIGTYPE *, SWIGTYPE &, SWIGTYPE []
  307. { SWIG_TCL_POINTER, (char*)"$symname", 0, 0, (void *)$value, &$1_descriptor}
  308. %typemap(consttab) SWIGTYPE (CLASS::*)
  309. { SWIG_TCL_BINARY, (char *)"$symname", sizeof($type), 0, (void *)&$value, &$1_descriptor}
  310. /* ------------------------------------------------------------
  311. * String & length
  312. * ------------------------------------------------------------ */
  313. %typemap(in) (char *STRING, int LENGTH) {
  314. int temp;
  315. $1 = ($1_ltype) Tcl_GetStringFromObj($input,&temp);
  316. $2 = ($2_ltype) temp;
  317. }
  318. /* ------------------------------------------------------------
  319. * ANSI C typemaps
  320. * ------------------------------------------------------------ */
  321. %typemap(in) size_t (int temp) "if (Tcl_GetIntFromObj(interp,$input,&temp) == TCL_ERROR) return TCL_ERROR;
  322. $1 = (size_t) temp;";
  323. %typemap(out) size_t = long;
  324. %typemap(varin) size_t = long;
  325. %typemap(varout) size_t = long;
  326. %typemap(consttab) size_t = long;
  327. /* ------------------------------------------------------------
  328. * Typechecking rules
  329. * ------------------------------------------------------------ */
  330. %typecheck(SWIG_TYPECHECK_INTEGER)
  331. int, short, long,
  332. unsigned int, unsigned short, unsigned long,
  333. signed char, unsigned char,
  334. long long, unsigned long long,
  335. const int &, const short &, const long &,
  336. const unsigned int &, const unsigned short &, const unsigned long &,
  337. const long long &, const unsigned long long &,
  338. enum SWIGTYPE,
  339. bool, const bool &
  340. {
  341. long tmp;
  342. if (Tcl_GetLongFromObj(NULL,$input,&tmp) == TCL_ERROR) $1 = 0;
  343. else $1 = 1;
  344. }
  345. %typecheck(SWIG_TYPECHECK_DOUBLE)
  346. float, double,
  347. const float &, const double &
  348. {
  349. double tmp;
  350. if (Tcl_GetDoubleFromObj(NULL,$input,&tmp) == TCL_ERROR) $1 = 0;
  351. else $1 = 1;
  352. }
  353. %typecheck(SWIG_TYPECHECK_CHAR) char {
  354. char *tmp;
  355. int len;
  356. tmp = Tcl_GetStringFromObj($input,&len);
  357. (len == 1) ? 1 : 0;
  358. }
  359. %typecheck(SWIG_TYPECHECK_STRING) char * {
  360. $1 = 1;
  361. }
  362. %typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [] {
  363. void *ptr;
  364. if (SWIG_ConvertPtr(interp, $input, (void **) &ptr, $1_descriptor, 0) == TCL_ERROR) {
  365. $1 = 0;
  366. } else {
  367. $1 = 1;
  368. }
  369. }
  370. %typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE {
  371. void *ptr;
  372. if (SWIG_ConvertPtr(interp, $input, (void **) &ptr, $&1_descriptor, 0) == TCL_ERROR) {
  373. $1 = 0;
  374. } else {
  375. $1 = 1;
  376. }
  377. }
  378. %typecheck(SWIG_TYPECHECK_VOIDPTR) void * {
  379. void *ptr;
  380. if (SWIG_ConvertPtr(interp, $input, (void **) &ptr, 0, 0) == TCL_ERROR) {
  381. $1 = 0;
  382. } else {
  383. $1 = 1;
  384. }
  385. }
  386. /* ------------------------------------------------------------
  387. * Exception handling
  388. * ------------------------------------------------------------ */
  389. %typemap(throws) int,
  390. long,
  391. short,
  392. unsigned int,
  393. unsigned long,
  394. unsigned short {
  395. Tcl_SetObjResult(interp, Tcl_NewIntObj((long) $1));
  396. SWIG_fail;
  397. }
  398. %typemap(throws) SWIGTYPE CLASS {
  399. $&1_ltype temp = new $1_ltype($1);
  400. Tcl_SetObjResult(interp, SWIG_NewInstanceObj(interp, (void *) temp, $&1_descriptor, 1));
  401. SWIG_fail;
  402. }
  403. %typemap(throws) SWIGTYPE {
  404. Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) "$1_type", -1));
  405. SWIG_fail;
  406. }
  407. %typemap(throws) char * {
  408. Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) $1, -1));
  409. SWIG_fail;
  410. }
  411. // Some special reserved words in classes
  412. %namewarn("314:cget is a reserved method name") *::cget;
  413. %namewarn("314:configure is a reserved method name") *::configure;
  414. /* C++ overloaded operators.
  415. These declarations define how SWIG is going to rename C++
  416. overloaded operators in Tcl. Since Tcl allows identifiers
  417. to be essentially any valid string, we'll just use the
  418. normal operator names */
  419. #ifdef __cplusplus
  420. %rename("+") *::operator+;
  421. //%rename("u+") *::operator+(); // Unary +
  422. //%rename("u+") *::operator+() const; // Unary +
  423. %rename("-") *::operator-;
  424. //%rename("u-") *::operator-(); // Unary -
  425. //%rename("u-") *::operator-() const; // Unary -
  426. %rename("*") *::operator*;
  427. %rename("/") *::operator/;
  428. %rename("<<") *::operator<<;
  429. %rename(">>") *::operator>>;
  430. %rename("&") *::operator&;
  431. %rename("|") *::operator|;
  432. %rename("^") *::operator^;
  433. %rename("%") *::operator%;
  434. %rename("=") *::operator=;
  435. #endif
  436. /* This initialization code exports the module initialization function */
  437. %header %{
  438. #ifdef __cplusplus
  439. extern "C" {
  440. #endif
  441. #ifdef MAC_TCL
  442. #pragma export on
  443. #endif
  444. SWIGEXPORT(int) SWIG_init(Tcl_Interp *);
  445. #ifdef MAC_TCL
  446. #pragma export off
  447. #endif
  448. #ifdef __cplusplus
  449. }
  450. #endif
  451. %}
  452. /* Start the initialization function */
  453. %init %{
  454. SWIGEXPORT(int) SWIG_init(Tcl_Interp *interp) {
  455. int i;
  456. static int _init = 0;
  457. if (interp == 0) return TCL_ERROR;
  458. #ifdef USE_TCL_STUBS
  459. if (Tcl_InitStubs(interp, (char*)"8.1", 0) == NULL) {
  460. return TCL_ERROR;
  461. }
  462. #endif
  463. Tcl_PkgProvide(interp, (char*)SWIG_name, (char*)SWIG_version);
  464. #ifdef SWIG_namespace
  465. Tcl_Eval(interp, "namespace eval " SWIG_namespace " { }");
  466. #endif
  467. if (!_init) {
  468. for (i = 0; swig_types_initial[i]; i++) {
  469. swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
  470. }
  471. _init = 1;
  472. }
  473. for (i = 0; swig_commands[i].name; i++) {
  474. Tcl_CreateObjCommand(interp, (char *) swig_commands[i].name, (swig_wrapper_func) swig_commands[i].wrapper, swig_commands[i].clientdata, NULL);
  475. }
  476. for (i = 0; swig_variables[i].name; i++) {
  477. Tcl_SetVar(interp, (char *) swig_variables[i].name, (char *) "", TCL_GLOBAL_ONLY);
  478. Tcl_TraceVar(interp, (char *) swig_variables[i].name, TCL_TRACE_READS | TCL_GLOBAL_ONLY, (Tcl_VarTraceProc *) swig_variables[i].get, (ClientData) swig_variables[i].addr);
  479. Tcl_TraceVar(interp, (char *) swig_variables[i].name, TCL_TRACE_WRITES | TCL_GLOBAL_ONLY, (Tcl_VarTraceProc *) swig_variables[i].set, (ClientData) swig_variables[i].addr);
  480. }
  481. SWIG_InstallConstants(interp, swig_constants);
  482. %}
  483. /* Note: the initialization function is closed after all code is generated */