summaryrefslogtreecommitdiff
path: root/Lib/inttypes.i
diff options
context:
space:
mode:
authorMarcelo Matus <mmatus@acms.arizona.edu>2005-12-02 08:37:08 +0000
committerMarcelo Matus <mmatus@acms.arizona.edu>2005-12-02 08:37:08 +0000
commit01348e0ab622ceab00d8a09f31d7c47e53c9372f (patch)
treebc97f0c6373a8fd9cd145a869836a3505e656ca4 /Lib/inttypes.i
parent5f280cb2d067fb2b4d187ae6d062ebdf470a8234 (diff)
downloadswig-01348e0ab622ceab00d8a09f31d7c47e53c9372f.tar.gz
add inttypes.i wchar.i
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7914 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Lib/inttypes.i')
-rw-r--r--Lib/inttypes.i88
1 files changed, 88 insertions, 0 deletions
diff --git a/Lib/inttypes.i b/Lib/inttypes.i
new file mode 100644
index 000000000..7f4dab618
--- /dev/null
+++ b/Lib/inttypes.i
@@ -0,0 +1,88 @@
+/*
+ * ISO C99: 7.8 Format conversion of integer types <inttypes.h>
+ */
+%{
+#include <inttypes.h>
+%}
+
+%include <stdint.i>
+%include <wchar.i>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef SWIGWORDSIZE64
+
+ /* We have to define the `uintmax_t' type using `ldiv_t'. */
+ typedef struct
+ {
+ long int quot; /* Quotient. */
+ long int rem; /* Remainder. */
+ } imaxdiv_t;
+
+#else
+
+ /* We have to define the `uintmax_t' type using `lldiv_t'. */
+ typedef struct
+ {
+ long long int quot; /* Quotient. */
+ long long int rem; /* Remainder. */
+ } imaxdiv_t;
+
+#endif
+
+ /* Compute absolute value of N. */
+ extern intmax_t imaxabs (intmax_t n);
+
+ /* Return the `imaxdiv_t' representation of the value of NUMER over DENOM. */
+ extern imaxdiv_t imaxdiv (intmax_t numer, intmax_t denom);
+
+ /* Like `strtol' but convert to `intmax_t'. */
+ extern intmax_t strtoimax (const char *nptr, char **endptr, int base);
+
+ /* Like `strtoul' but convert to `uintmax_t'. */
+ extern uintmax_t strtoumax (const char *nptr, char ** endptr, int base);
+
+#ifdef SWIG_WCHAR
+ /* Like `wcstol' but convert to `intmax_t'. */
+ extern intmax_t wcstoimax (const wchar_t *nptr, wchar_t **endptr, int base);
+
+ /* Like `wcstoul' but convert to `uintmax_t'. */
+ extern uintmax_t wcstoumax (const wchar_t *nptr, wchar_t ** endptr, int base);
+#endif
+
+#ifdef SWIGWORDSIZE64
+
+ /* Like `strtol' but convert to `intmax_t'. */
+ extern intmax_t strtoimax (const char *nptr, char **endptr, int base);
+
+ /* Like `strtoul' but convert to `uintmax_t'. */
+ extern uintmax_t strtoumax (const char *nptr, char **endptr,int base);
+
+#ifdef SWIG_WCHAR
+ /* Like `wcstol' but convert to `intmax_t'. */
+ extern intmax_t wcstoimax (const wchar_t *nptr, wchar_t **endptr, int base);
+
+ /* Like `wcstoul' but convert to `uintmax_t'. */
+ extern uintmax_t wcstoumax (const wchar_t *nptr, wchar_t **endptr, int base);
+#endif
+
+#else /* SWIGWORDSIZE32 */
+
+ /* Like `strtol' but convert to `intmax_t'. */
+ extern intmax_t strtoimax (const char *nptr, char **endptr, int base);
+
+ /* Like `strtoul' but convert to `uintmax_t'. */
+ extern uintmax_t strtoumax (const char *nptr, char **endptr, int base);
+
+#ifdef SWIG_WCHAR
+ /* Like `wcstol' but convert to `intmax_t'. */
+ extern uintmax_t wcstoumax (const wchar_t *nptr, wchar_t **endptr, int base);
+#endif
+
+#endif /* SWIGWORDSIZE32 */
+
+#ifdef __cplusplus
+}
+#endif