summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-pack
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-08-28 17:33:16 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 18:20:06 +0900
commit471479e723157c1a7df2023ab2eea24fa4ca2246 (patch)
tree8d5c18642f44ca2f47832b66b6a49e5f0250afb7 /mrbgems/mruby-pack
parent397b005715b443ff8175ffe3549f13ebfc6a9e7f (diff)
downloadmruby-471479e723157c1a7df2023ab2eea24fa4ca2246.tar.gz
mruby-471479e723157c1a7df2023ab2eea24fa4ca2246.zip
Change float representation in `mrb` binary files.
From human readable (ASCII) string representation to binary dump of IEEE754 in little endian.
Diffstat (limited to 'mrbgems/mruby-pack')
-rw-r--r--mrbgems/mruby-pack/src/pack.c33
1 files changed, 1 insertions, 32 deletions
diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c
index 35e79d25d..9250e966d 100644
--- a/mrbgems/mruby-pack/src/pack.c
+++ b/mrbgems/mruby-pack/src/pack.c
@@ -9,10 +9,10 @@
#include "mruby/numeric.h"
#include "mruby/string.h"
#include "mruby/variable.h"
+#include "mruby/endian.h"
#include <ctype.h>
#include <errno.h>
-#include <limits.h>
#include <string.h>
struct tmpl {
@@ -63,36 +63,6 @@ const static unsigned char base64chars[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static unsigned char base64_dec_tab[128];
-#if !defined(BYTE_ORDER) && defined(__BYTE_ORDER__)
-# define BYTE_ORDER __BYTE_ORDER__
-#endif
-#if !defined(BIG_ENDIAN) && defined(__ORDER_BIG_ENDIAN__)
-# define BIG_ENDIAN __ORDER_BIG_ENDIAN__
-#endif
-#if !defined(LITTLE_ENDIAN) && defined(__ORDER_LITTLE_ENDIAN__)
-# define LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
-#endif
-
-#ifdef BYTE_ORDER
-# if BYTE_ORDER == BIG_ENDIAN
-# define littleendian 0
-# define check_little_endian() (void)0
-# elif BYTE_ORDER == LITTLE_ENDIAN
-# define littleendian 1
-# define check_little_endian() (void)0
-# endif
-#endif
-#ifndef littleendian
-/* can't distinguish endian in compile time */
-static int littleendian = 0;
-static void
-check_little_endian(void)
-{
- unsigned int n = 1;
- littleendian = (*(unsigned char *)&n == 1);
-}
-#endif
-
static unsigned int
hex2int(unsigned char ch)
{
@@ -1426,7 +1396,6 @@ mrb_pack_unpack1(mrb_state *mrb, mrb_value str)
void
mrb_mruby_pack_gem_init(mrb_state *mrb)
{
- check_little_endian();
make_base64_dec_tab();
mrb_define_method(mrb, mrb->array_class, "pack", mrb_pack_pack, MRB_ARGS_REQ(1));