chiark / gitweb /
debian: Just the one Python version now.
[mLib-python] / defs.pxi
index c579c1d69d1b994fddcb67c73dde14d0fc1e2c6f..4b1ecde5cd5e068dae062af8f2c37a269ec409e0 100644 (file)
--- a/defs.pxi
+++ b/defs.pxi
@@ -42,6 +42,7 @@ cdef extern from 'stddef.h':
 cdef extern from 'string.h':
   void memcpy(void *p, void *q, size_t n)
   char *strerror(int err)
+  size_t strlen(char *p)
 
 #----- Unix interface -------------------------------------------------------
 
@@ -94,9 +95,6 @@ cdef extern from 'Python.h':
   object PyInt_FromLong(long i)
   object PyLong_FromUnsignedLong(unsigned long i)
 
-  void PyEval_AcquireLock()
-  void PyEval_ReleaseLock()
-
   ctypedef struct PyObject:
     pass
   ctypedef struct PyTypeObject:
@@ -154,6 +152,34 @@ cdef extern from 'mLib/sym.h':
   void sym_mkiter(sym_iter *i, sym_table *t)
   void *sym_next(sym_iter *i)
 
+#----- String utilities -----------------------------------------------------
+
+cdef extern from 'mLib/str.h':
+  enum:
+    STRF_QUOTE
+    STRF_PREFIX
+  char *str_qword(char **pp, unsigned f)
+  size_t str_qsplit(char *p, char **v, size_t c, char **rest, unsigned f)
+  int str_matchx(char *p, char *s, unsigned f)
+  void str_sanitize(char *d, char *p, size_t sz)
+
+#----- Form-urlencoding functions -------------------------------------------
+
+cdef extern from 'mLib/url.h':
+  struct url_ectx:
+    unsigned f
+  struct url_dctx:
+    char *p
+    unsigned f
+  enum:
+    URLF_STRICT
+    URLF_LAX
+    URLF_SEMI
+  void url_initenc(url_ectx *ctx)
+  void url_enc(url_ectx *ctx, dstr *d, char *name, char *value)
+  void url_initdec(url_dctx *ctx, char *p)
+  int url_dec(url_dctx *ctx, dstr *n, dstr *v)
+
 #----- Atom stuff -----------------------------------------------------------
 
 # --- Atoms ---