#ifdef __cplusplus extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include #include #ifdef __cplusplus } #endif static int not_here(s) char *s; { croak("%s not implemented on this architecture", s); return -1; } static double constant(name, arg) char *name; int arg; { errno = 0; switch (*name) { case 'A': break; case 'B': break; case 'C': break; case 'D': break; case 'E': break; case 'F': break; case 'G': break; case 'H': break; case 'I': break; case 'J': break; case 'K': break; case 'L': break; case 'M': break; case 'N': break; case 'O': break; case 'P': break; case 'Q': break; case 'R': break; case 'S': break; case 'T': break; case 'U': break; case 'V': break; case 'W': if (strEQ(name, "WHOSON_H")) #ifdef WHOSON_H return WHOSON_H; #else goto not_there; #endif break; case 'X': break; case 'Y': break; case 'Z': break; } errno = EINVAL; return 0; not_there: errno = ENOENT; return 0; } MODULE = WHOSON PACKAGE = WHOSON double constant(name,arg) char * name int arg MODULE = WHOSON PACKAGE = WHOSON PREFIX = wso_ char * wso_wso_version() CODE: { register char *p,*q; q=wso_version(); RETVAL=(char*)malloc(strlen(q)+1); strcpy(RETVAL,q); } OUTPUT: RETVAL int wso_wso_login(name , value) char * name char * value PPCODE: { int rc; char buf[512]; rc=wso_login(name,value,buf,sizeof(buf)); EXTEND(sp, 2); PUSHs(sv_2mortal(newSVnv(rc))); PUSHs(sv_2mortal(newSVpv(buf,strlen(buf)))); } int wso_wso_logout(name) char * name PPCODE: { int rc; char buf[512]; rc=wso_logout(name,buf,sizeof(buf)); EXTEND(sp, 2); PUSHs(sv_2mortal(newSVnv(rc))); PUSHs(sv_2mortal(newSVpv(buf,strlen(buf)))); } int wso_wso_query(name) char * name PPCODE: { int rc; char buf[512]; rc=wso_query(name,buf,sizeof(buf)); EXTEND(sp, 2); PUSHs(sv_2mortal(newSVnv(rc))); PUSHs(sv_2mortal(newSVpv(buf,strlen(buf)))); }