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.

177 lines
4.4 KiB

  1. #define SWIG_Error(code, msg) Rf_warning(msg); return Rf_ScalarLogical(NA_LOGICAL)
  2. #define SWIG_fail return Rf_ScalarLogical(NA_LOGICAL)
  3. /* for raw pointers */
  4. #define SWIG_ConvertPtr(oc, ptr, ty, flags) SWIG_R_ConvertPtr(oc, ptr, ty, flags)
  5. #define SWIG_ConvertFunctionPtr(oc, ptr, ty) SWIG_R_ConvertPtr(oc, ptr, ty, 0)
  6. #define SWIG_NewPointerObj(ptr, ty, flags) SWIG_R_NewPointerObj(ptr, ty, flags)
  7. #define SWIG_NewFunctionPtrObj(ptr, ty) SWIG_R_NewPointerObj(ptr, ty, 0)
  8. /* for raw packed data */
  9. #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_R_ConvertPacked(obj, ptr, sz, ty)
  10. #define SWIG_NewPackedObj(ptr, sz, ty) SWIG_R_NewPackedObj(ptr, sz, ty)
  11. /* for class or struct pointers */
  12. #define SWIG_ConvertInstance(obj, pptr, ty, flags) SWIG_ConvertPtr(obj, pptr, ty, flags)
  13. #define SWIG_NewInstanceObj(ptr, ty, flags) SWIG_NewPointerObj(ptr, ty, flags)
  14. /* for C++ member pointers, ie, member methods */
  15. #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_R_ConvertPacked(obj, ptr, sz, ty)
  16. #define SWIG_NewMemberObj(ptr, sz, ty) SWIG_R_NewPackedObj(ptr, sz, ty)
  17. /* Runtime API */
  18. #define SWIG_GetModule(clientdata) SWIG_R_GetModule()
  19. #define SWIG_SetModule(clientdata, pointer) SWIG_R_SetModule(pointer)
  20. %fragment(SWIG_From_frag(long),"header") {
  21. SWIGINTERNINLINE SEXP
  22. SWIG_From_dec(long)(long value)
  23. {
  24. return Rf_ScalarInteger((int)value);
  25. }
  26. }
  27. %fragment(SWIG_AsVal_frag(long),"header") {
  28. SWIGINTERNINLINE int
  29. SWIG_AsVal_dec(long)(SEXP obj, long *val)
  30. {
  31. if (val) *val = Rf_asInteger(obj);
  32. return SWIG_OK;
  33. }
  34. }
  35. %fragment(SWIG_From_frag(long long),"header") {
  36. SWIGINTERNINLINE SEXP
  37. SWIG_From_dec(long long)(long long value)
  38. {
  39. return Rf_ScalarInteger((int)value);
  40. }
  41. }
  42. %fragment(SWIG_AsVal_frag(long long),"header") {
  43. SWIGINTERNINLINE int
  44. SWIG_AsVal_dec(long long)(SEXP obj, long long *val)
  45. {
  46. if (val) *val = Rf_asInteger(obj);
  47. return SWIG_OK;
  48. }
  49. }
  50. %fragment(SWIG_From_frag(unsigned long),"header") {
  51. SWIGINTERNINLINE SEXP
  52. SWIG_From_dec(unsigned long)(unsigned long value)
  53. {
  54. return Rf_ScalarInteger((int)value);
  55. }
  56. }
  57. %fragment(SWIG_AsVal_frag(unsigned long),"header") {
  58. SWIGINTERNINLINE int
  59. SWIG_AsVal_dec(unsigned long)(SEXP obj, unsigned long *val)
  60. {
  61. if (val) *val = Rf_asInteger(obj);
  62. return SWIG_OK;
  63. }
  64. }
  65. %fragment(SWIG_From_frag(unsigned long long),"header") {
  66. SWIGINTERNINLINE SEXP
  67. SWIG_From_dec(unsigned long long)(unsigned long long value)
  68. {
  69. return Rf_ScalarInteger((int)value);
  70. }
  71. }
  72. %fragment(SWIG_AsVal_frag(unsigned long long),"header") {
  73. SWIGINTERNINLINE int
  74. SWIG_AsVal_dec(unsigned long long)(SEXP obj, unsigned long long *val)
  75. {
  76. if (val) *val = Rf_asInteger(obj);
  77. return SWIG_OK;
  78. }
  79. }
  80. %fragment(SWIG_From_frag(double),"header") {
  81. SWIGINTERNINLINE SEXP
  82. SWIG_From_dec(double)(double value)
  83. {
  84. return Rf_ScalarReal(value);
  85. }
  86. }
  87. %fragment(SWIG_AsVal_frag(double),"header") {
  88. SWIGINTERNINLINE int
  89. SWIG_AsVal_dec(double)(SEXP obj, double *val)
  90. {
  91. if (val) *val = Rf_asReal(obj);
  92. return SWIG_OK;
  93. }
  94. }
  95. %fragment("SWIG_AsCharPtrAndSize", "header")
  96. {
  97. SWIGINTERN int
  98. SWIG_AsCharPtrAndSize(SEXP obj, char** cptr, size_t* psize, int *alloc)
  99. {
  100. if (cptr && Rf_isString(obj)) {
  101. const char *cstr = CHAR(STRING_ELT(obj, 0));
  102. int len = strlen(cstr);
  103. if (alloc) {
  104. if (*alloc == SWIG_NEWOBJ) {
  105. *cptr = %new_copy_array(cstr, len + 1, char);
  106. *alloc = SWIG_NEWOBJ;
  107. } else {
  108. *cptr = %reinterpret_cast(malloc(len + 1), char *);
  109. *cptr = strcpy(*cptr, cstr);
  110. *alloc = SWIG_OLDOBJ;
  111. }
  112. } else {
  113. *cptr = %reinterpret_cast(malloc(len + 1), char *);
  114. *cptr = strcpy(*cptr, cstr);
  115. }
  116. if (psize) *psize = len + 1;
  117. return SWIG_OK;
  118. }
  119. return SWIG_TypeError;
  120. }
  121. }
  122. %fragment("SWIG_strdup","header")
  123. {
  124. SWIGINTERN char *
  125. SWIG_strdup(const char *str)
  126. {
  127. char *newstr = %reinterpret_cast(malloc(strlen(str) + 1), char *);
  128. return strcpy(newstr, str);
  129. }
  130. }
  131. # This is modified from the R header files
  132. %fragment("SWIG_FromCharPtrAndSize","header")
  133. {
  134. SWIGINTERN SEXP
  135. SWIG_FromCharPtrAndSize(const char* carray, size_t size)
  136. {
  137. SEXP t, c;
  138. if (!carray) return R_NilValue;
  139. RVERSION26(return Rf_mkCharEnc(carray, size));
  140. RVERSIONPRE26(
  141. Rf_protect(t = Rf_allocVector(STRSXP, 1));
  142. c = allocString(size);
  143. strncpy(CHAR(c), carray, size);
  144. SET_STRING_ELT(t, 0, c);
  145. Rf_unprotect(1);)
  146. return t;
  147. }
  148. }