Skip to content

Commit bc937d3

Browse files
KatashiMonosatodas
authored andcommitted
Port src/transform.c to linux + glibc
Signed-off-by: Daniel A. Steffen <dsteffen@apple.com>
1 parent 50db27a commit bc937d3

File tree

1 file changed

+11
-31
lines changed

1 file changed

+11
-31
lines changed

src/transform.c

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@
2222

2323
#ifdef __APPLE__
2424
#include <libkern/OSByteOrder.h>
25+
#elif __linux__
26+
#include <endian.h>
27+
#define OSLittleEndian __LITTLE_ENDIAN
28+
#define OSBigEndian __BIG_ENDIAN
29+
#define OSSwapLittleToHostInt16 le16toh
30+
#define OSSwapBigToHostInt16 be16toh
31+
#define OSSwapHostToLittleInt16 htole16
32+
#define OSSwapHostToBigInt16 htobe16
2533
#endif
2634

2735
#if defined(__LITTLE_ENDIAN__)
@@ -30,6 +38,8 @@
3038
#elif defined(__BIG_ENDIAN__)
3139
#define DISPATCH_DATA_FORMAT_TYPE_UTF16_HOST DISPATCH_DATA_FORMAT_TYPE_UTF16BE
3240
#define DISPATCH_DATA_FORMAT_TYPE_UTF16_REV DISPATCH_DATA_FORMAT_TYPE_UTF16LE
41+
#else
42+
#error Unsupported Endianness
3343
#endif
3444

3545
enum {
@@ -197,29 +207,19 @@ _dispatch_transform_detect_utf(dispatch_data_t data)
197207
static uint16_t
198208
_dispatch_transform_swap_to_host(uint16_t x, int32_t byteOrder)
199209
{
200-
#ifdef __LINUX_PORT_HDD__
201-
LINUX_PORT_ERROR();
202-
return x;
203-
#else
204210
if (byteOrder == OSLittleEndian) {
205-
return OSSwapLittleToHostInt16(x);
211+
return OSSwapLittleToHostInt16(x);
206212
}
207213
return OSSwapBigToHostInt16(x);
208-
#endif
209214
}
210215

211216
static uint16_t
212217
_dispatch_transform_swap_from_host(uint16_t x, int32_t byteOrder)
213218
{
214-
#ifdef __LINUX_PORT_HDD__
215-
LINUX_PORT_ERROR();
216-
return x;
217-
#else
218219
if (byteOrder == OSLittleEndian) {
219220
return OSSwapHostToLittleInt16(x);
220221
}
221222
return OSSwapHostToBigInt16(x);
222-
#endif
223223
}
224224

225225
#pragma mark -
@@ -531,45 +531,25 @@ _dispatch_transform_from_utf16(dispatch_data_t data, int32_t byteOrder)
531531
static dispatch_data_t
532532
_dispatch_transform_from_utf16le(dispatch_data_t data)
533533
{
534-
#ifdef __LINUX_PORT_HDD__
535-
LINUX_PORT_ERROR();
536-
return NULL;
537-
#else
538534
return _dispatch_transform_from_utf16(data, OSLittleEndian);
539-
#endif
540535
}
541536

542537
static dispatch_data_t
543538
_dispatch_transform_from_utf16be(dispatch_data_t data)
544539
{
545-
#ifdef __LINUX_PORT_HDD__
546-
LINUX_PORT_ERROR();
547-
return NULL;
548-
#else
549540
return _dispatch_transform_from_utf16(data, OSBigEndian);
550-
#endif
551541
}
552542

553543
static dispatch_data_t
554544
_dispatch_transform_to_utf16le(dispatch_data_t data)
555545
{
556-
#ifdef __LINUX_PORT_HDD__
557-
LINUX_PORT_ERROR();
558-
return NULL;
559-
#else
560546
return _dispatch_transform_to_utf16(data, OSLittleEndian);
561-
#endif
562547
}
563548

564549
static dispatch_data_t
565550
_dispatch_transform_to_utf16be(dispatch_data_t data)
566551
{
567-
#ifdef __LINUX_PORT_HDD__
568-
LINUX_PORT_ERROR();
569-
return NULL;
570-
#else
571552
return _dispatch_transform_to_utf16(data, OSBigEndian);
572-
#endif
573553
}
574554

575555
#pragma mark -

0 commit comments

Comments
 (0)