From 052d067feb98d3b913577d90a2468a95e8e4803a Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Wed, 25 Aug 2004 21:33:46 +0000 Subject: [PATCH] varin enum SWIGTYPE mods to handle unnamed enums varin char[] typemap git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6150 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Lib/tcl/tcl8.swg | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/SWIG/Lib/tcl/tcl8.swg b/SWIG/Lib/tcl/tcl8.swg index 16d9591ff..532eff405 100644 --- a/SWIG/Lib/tcl/tcl8.swg +++ b/SWIG/Lib/tcl/tcl8.swg @@ -288,7 +288,7 @@ /* -- Variable input --- */ -%typemap(varin) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, enum SWIGTYPE +%typemap(varin) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char { long temp; if (Tcl_GetLongFromObj(interp, $input, &temp) != TCL_OK) { @@ -297,6 +297,18 @@ $1 = ($1_type) temp; } +%typemap(varin) enum SWIGTYPE +{ + int temp; + if (Tcl_GetIntFromObj(interp, $input, &temp) != TCL_OK) { + return (char*) "Type error. expected an integer"; + } + if (sizeof(int) != sizeof($1)) { + return (char*) "enum variable '$name' can not be set."; + } + *(int *)(void *)&($1) = temp; +} + %typemap(varin) bool { long temp; @@ -354,6 +366,10 @@ strncpy((char*)$1,temp,$1_dim0); } +%typemap(varin,warning="462: Unable to set variable of type char []") char [] { + return (char*)"Variable $symname is read-only."; +} + %typemap(varin) char { char *temp = Tcl_GetStringFromObj($input,NULL);