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
This commit is contained in:
William S Fulton 2004-08-25 21:33:46 +00:00
commit 052d067feb

View file

@ -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);