Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1000 B

  1. %include <typemaps/valtypes.swg>
  2. %fragment(SWIG_AsVal_frag(jstring),"header") {
  3. SWIGINTERN int
  4. SWIG_AsVal_dec(jstring)(Tcl_Obj * obj, jstring *val)
  5. {
  6. int len = 0;
  7. const char *cstr = Tcl_GetStringFromObj(obj, &len);
  8. if (!cstr || (strcmp(cstr,"NULL") == 0)) {
  9. if (val) *val = 0;
  10. return SWIG_OK;
  11. } else {
  12. int len = 0;
  13. const Tcl_UniChar *ucstr = Tcl_GetUnicodeFromObj(obj,&len);
  14. if (val) {
  15. *val = JvNewString((const jchar*)ucstr, len);
  16. }
  17. }
  18. return SWIG_NEWOBJ;
  19. }
  20. }
  21. %fragment(SWIG_From_frag(jstring),"header") {
  22. SWIGINTERNINLINE Tcl_Obj *
  23. SWIG_From_dec(jstring)(jstring val)
  24. {
  25. if (!val) {
  26. return Tcl_NewStringObj("NULL",-1);
  27. } else {
  28. return Tcl_NewUnicodeObj((Tcl_UniChar *)JvGetStringChars(val),JvGetStringUTFLength(val));
  29. }
  30. }
  31. }
  32. %typemaps_asvalfrom(%checkcode(STRING),
  33. %arg(SWIG_AsVal(jstring)),
  34. %arg(SWIG_From(jstring)),
  35. %arg(SWIG_AsVal_frag(jstring)),
  36. %arg(SWIG_From_frag(jstring)),
  37. java::lang::String *);