mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-22 17:18:39 +00:00
Rework iconv encoding detection
WCHAR_T doesn't seem as portable as we thought, so it's just easier to detect the right encoding using macros at this point.
This commit is contained in:
parent
d1a1aed23e
commit
008d6be900
2 changed files with 35 additions and 32 deletions
|
@ -24,25 +24,36 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
#include "ieee_float.h"
|
||||
|
||||
#include "config.h"
|
||||
#if HAVE_ENDIAN_H
|
||||
#ifdef _WIN32
|
||||
#define __BYTE_ORDER 0
|
||||
#define __LITTLE_ENDIAN 0
|
||||
#define __BIG_ENDIAN 1
|
||||
#elif defined(__MACH__) && defined(__APPLE__)
|
||||
#include <machine/endian.h>
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <sys/endian.h>
|
||||
#else
|
||||
#include <endian.h>
|
||||
#endif
|
||||
#endif
|
||||
#include <cstring> // for memcpy
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
|
||||
/* make sure BYTE_ORDER macros are available */
|
||||
#ifdef _WIN32
|
||||
#define BYTE_ORDER 1234
|
||||
#elif defined(__MACH__) && defined(__APPLE__)
|
||||
#include <machine/endian.h>
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <sys/endian.h>
|
||||
#elif HAVE_ENDIAN_H
|
||||
#include <endian.h>
|
||||
#else
|
||||
#error "Can't detect endian (missing header)"
|
||||
#endif
|
||||
#ifndef LITTLE_ENDIAN
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#endif
|
||||
#ifndef BIG_ENDIAN
|
||||
#define BIG_ENDIAN 4321
|
||||
#endif
|
||||
#if !defined(BYTE_ORDER) && defined(_BYTE_ORDER)
|
||||
#define BYTE_ORDER _BYTE_ORDER
|
||||
#elif !defined(BYTE_ORDER) && defined(__BYTE_ORDER)
|
||||
#define BYTE_ORDER __BYTE_ORDER
|
||||
#endif
|
||||
|
||||
#define FIXEDPOINT_FACTOR 1000.0f
|
||||
|
||||
// 0x7FFFFFFF / 1000.0f is not serializable.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue