PageRenderTime 24ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Lib/tcl/jstring.i

#
Swig | 42 lines | 37 code | 5 blank | 0 comment | 0 complexity | 9c2757470f83a3cd19e57ec0472dc978 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  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 *);