summaryrefslogtreecommitdiff
path: root/numpy/f2py/lib/src
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/f2py/lib/src')
-rw-r--r--numpy/f2py/lib/src/F_FUNC.cpp34
-rw-r--r--numpy/f2py/lib/src/pyobj_to_string_len.c11
2 files changed, 45 insertions, 0 deletions
diff --git a/numpy/f2py/lib/src/F_FUNC.cpp b/numpy/f2py/lib/src/F_FUNC.cpp
new file mode 100644
index 000000000..edaa98064
--- /dev/null
+++ b/numpy/f2py/lib/src/F_FUNC.cpp
@@ -0,0 +1,34 @@
+#if defined(PREPEND_FORTRAN)
+#if defined(NO_APPEND_FORTRAN)
+#if defined(UPPERCASE_FORTRAN)
+#define F_FUNC(f,F) _##F
+#else
+#define F_FUNC(f,F) _##f
+#endif
+#else
+#if defined(UPPERCASE_FORTRAN)
+#define F_FUNC(f,F) _##F##_
+#else
+#define F_FUNC(f,F) _##f##_
+#endif
+#endif
+#else
+#if defined(NO_APPEND_FORTRAN)
+#if defined(UPPERCASE_FORTRAN)
+#define F_FUNC(f,F) F
+#else
+#define F_FUNC(f,F) f
+#endif
+#else
+#if defined(UPPERCASE_FORTRAN)
+#define F_FUNC(f,F) F##_
+#else
+#define F_FUNC(f,F) f##_
+#endif
+#endif
+#endif
+#if defined(UNDERSCORE_G77)
+#define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
+#else
+#define F_FUNC_US(f,F) F_FUNC(f,F)
+#endif
diff --git a/numpy/f2py/lib/src/pyobj_to_string_len.c b/numpy/f2py/lib/src/pyobj_to_string_len.c
new file mode 100644
index 000000000..306c961a3
--- /dev/null
+++ b/numpy/f2py/lib/src/pyobj_to_string_len.c
@@ -0,0 +1,11 @@
+int pyobj_to_string_len(PyObject* obj, f2py_string* value, size_t length) {
+ if (PyString_Check(obj)) {
+ if (strncpy((char*)value,PyString_AS_STRING(obj), length))
+ return 1;
+ }
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(PyExc_TypeError,
+ "Failed to convert python object to C f2py_string.");
+ }
+ return 0;
+}