2021-08-08 04:08:33 +00:00
|
|
|
#ifndef IO_H
|
|
|
|
#define IO_H
|
2021-08-12 07:42:14 +00:00
|
|
|
#include "third_party/python/Modules/_decimal/libmpdec/mpdecimal.h"
|
2021-08-10 17:26:13 +00:00
|
|
|
/* clang-format off */
|
2021-08-08 04:08:33 +00:00
|
|
|
|
|
|
|
#if SIZE_MAX == MPD_SIZE_MAX
|
|
|
|
#define mpd_strtossize _mpd_strtossize
|
|
|
|
#else
|
|
|
|
static inline mpd_ssize_t
|
|
|
|
mpd_strtossize(const char *s, char **end, int base)
|
|
|
|
{
|
|
|
|
int64_t retval;
|
|
|
|
|
|
|
|
errno = 0;
|
|
|
|
retval = _mpd_strtossize(s, end, base);
|
|
|
|
if (errno == 0 && (retval > MPD_SSIZE_MAX || retval < MPD_SSIZE_MIN)) {
|
|
|
|
errno = ERANGE;
|
|
|
|
}
|
|
|
|
if (errno == ERANGE) {
|
|
|
|
return (retval < 0) ? MPD_SSIZE_MIN : MPD_SSIZE_MAX;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (mpd_ssize_t)retval;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|