Mon, 16 Apr 2007 00:43:53 +0000
Commit a proper copy of this binary file. The old one was corrupted,
probably due to missing SVN attributes.
This was retrieved from the following URL, though we may have it in CVS:
http://dev.openwengo.com/trac/openwengo/trac.cgi/browser/vendors/gaim/trunk/doc/oscar/On_Sending_Files_via_OSCAR.odt?rev=4273
| 6678 | 1 | void |
| 2 | constant(sv) | |
| 3 | PREINIT: | |
| 4 | #ifdef dXSTARG | |
| 5 | dXSTARG; /* Faster if we have it. */ | |
| 6 | #else | |
| 7 | dTARGET; | |
| 8 | #endif | |
| 9 | STRLEN len; | |
| 10 | int type; | |
| 11 | IV iv; | |
| 12 | /* NV nv; Uncomment this if you need to return NVs */ | |
| 13 | /* const char *pv; Uncomment this if you need to return PVs */ | |
| 14 | INPUT: | |
| 15 | SV * sv; | |
| 16 | const char * s = SvPV(sv, len); | |
| 17 | PPCODE: | |
| 18 | /* Change this to constant(aTHX_ s, len, &iv, &nv); | |
| 19 | if you need to return both NVs and IVs */ | |
| 20 | type = constant(aTHX_ s, len, &iv); | |
| 21 | /* Return 1 or 2 items. First is error message, or undef if no error. | |
| 22 | Second, if present, is found value */ | |
| 23 | switch (type) { | |
| 24 | case PERL_constant_NOTFOUND: | |
| 25 | sv = sv_2mortal(newSVpvf("%s is not a valid Gaim::DebugLevel macro", s)); | |
| 26 | PUSHs(sv); | |
| 27 | break; | |
| 28 | case PERL_constant_NOTDEF: | |
| 29 | sv = sv_2mortal(newSVpvf( | |
| 30 | "Your vendor has not defined Gaim::DebugLevel macro %s, used", s)); | |
| 31 | PUSHs(sv); | |
| 32 | break; | |
| 33 | case PERL_constant_ISIV: | |
| 34 | EXTEND(SP, 1); | |
| 35 | PUSHs(&PL_sv_undef); | |
| 36 | PUSHi(iv); | |
| 37 | break; | |
| 38 | /* Uncomment this if you need to return NOs | |
| 39 | case PERL_constant_ISNO: | |
| 40 | EXTEND(SP, 1); | |
| 41 | PUSHs(&PL_sv_undef); | |
| 42 | PUSHs(&PL_sv_no); | |
| 43 | break; */ | |
| 44 | /* Uncomment this if you need to return NVs | |
| 45 | case PERL_constant_ISNV: | |
| 46 | EXTEND(SP, 1); | |
| 47 | PUSHs(&PL_sv_undef); | |
| 48 | PUSHn(nv); | |
| 49 | break; */ | |
| 50 | /* Uncomment this if you need to return PVs | |
| 51 | case PERL_constant_ISPV: | |
| 52 | EXTEND(SP, 1); | |
| 53 | PUSHs(&PL_sv_undef); | |
| 54 | PUSHp(pv, strlen(pv)); | |
| 55 | break; */ | |
| 56 | /* Uncomment this if you need to return PVNs | |
| 57 | case PERL_constant_ISPVN: | |
| 58 | EXTEND(SP, 1); | |
| 59 | PUSHs(&PL_sv_undef); | |
| 60 | PUSHp(pv, iv); | |
| 61 | break; */ | |
| 62 | /* Uncomment this if you need to return SVs | |
| 63 | case PERL_constant_ISSV: | |
| 64 | EXTEND(SP, 1); | |
| 65 | PUSHs(&PL_sv_undef); | |
| 66 | PUSHs(sv); | |
| 67 | break; */ | |
| 68 | /* Uncomment this if you need to return UNDEFs | |
| 69 | case PERL_constant_ISUNDEF: | |
| 70 | break; */ | |
| 71 | /* Uncomment this if you need to return UVs | |
| 72 | case PERL_constant_ISUV: | |
| 73 | EXTEND(SP, 1); | |
| 74 | PUSHs(&PL_sv_undef); | |
| 75 | PUSHu((UV)iv); | |
| 76 | break; */ | |
| 77 | /* Uncomment this if you need to return YESs | |
| 78 | case PERL_constant_ISYES: | |
| 79 | EXTEND(SP, 1); | |
| 80 | PUSHs(&PL_sv_undef); | |
| 81 | PUSHs(&PL_sv_yes); | |
| 82 | break; */ | |
| 83 | default: | |
| 84 | sv = sv_2mortal(newSVpvf( | |
| 85 | "Unexpected return type %d while processing Gaim::DebugLevel macro %s, used", | |
| 86 | type, s)); | |
| 87 | PUSHs(sv); | |
| 88 | } |