diff options
author | Marcelo Matus <mmatus@acms.arizona.edu> | 2005-12-02 08:37:08 +0000 |
---|---|---|
committer | Marcelo Matus <mmatus@acms.arizona.edu> | 2005-12-02 08:37:08 +0000 |
commit | 01348e0ab622ceab00d8a09f31d7c47e53c9372f (patch) | |
tree | bc97f0c6373a8fd9cd145a869836a3505e656ca4 /Lib/inttypes.i | |
parent | 5f280cb2d067fb2b4d187ae6d062ebdf470a8234 (diff) | |
download | swig-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.i | 88 |
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 |