Przeglądaj źródła

* Look for htons/htonl in netinet/in.h in addition to arpa/inet.h

* Implement htons/htonl in common.h just in case.
tags/v0.99.beta14
Sam Hocevar sam 18 lat temu
rodzic
commit
d04b853800
4 zmienionych plików z 39 dodań i 1 usunięć
  1. +34
    -0
      common.h
  2. +1
    -1
      configure.ac
  3. +2
    -0
      cucul/font.c
  4. +2
    -0
      tools/makefont.c

+ 34
- 0
common.h Wyświetl plik

@@ -30,3 +30,37 @@ typedef long int intptr_t;
typedef unsigned long int uintptr_t;
#endif

#if !defined(HAVE_HTONS) && !defined(HAVE_NETINET_IN_H)
# if defined(HAVE_ENDIAN_H)
# include <endian.h>
# endif
static extern inline uint16_t htons(uint16_t x)
{
#if defined(HAVE_ENDIAN_H)
if(__BYTE_ORDER == __BIG_ENDIAN)
#else
/* This is compile-time optimised with at least -O1 or -Os */
uint32_t const dummy = 0x12345678;
if(*(uint8_t const *)&dummy == 0x12)
#endif
return x;
else
return (x >> 8) | (x << 8);
}

static extern inline uint32_t htonl(uint32_t x)
{
#if defined(HAVE_ENDIAN_H)
if(__BYTE_ORDER == __BIG_ENDIAN)
#else
/* This is compile-time optimised with at least -O1 or -Os */
uint32_t const dummy = 0x12345678;
if(*(uint8_t const *)&dummy == 0x12)
#endif
return x;
else
return (x >> 24) | ((x >> 8) & 0x0000ff00)
| ((x << 8) & 0x00ff0000) | (x << 24);
}
#endif


+ 1
- 1
configure.ac Wyświetl plik

@@ -61,7 +61,7 @@ dnl conditional builds
AC_ARG_ENABLE(doc,
[ --enable-doc build documentation (needs doxygen and LaTeX)])

AC_CHECK_HEADERS(stdio.h stdarg.h signal.h sys/ioctl.h sys/time.h inttypes.h endian.h unistd.h arpa/inet.h)
AC_CHECK_HEADERS(stdio.h stdarg.h signal.h sys/ioctl.h sys/time.h inttypes.h endian.h unistd.h arpa/inet.h netinet/in.h)
AC_CHECK_FUNCS(signal ioctl vsnprintf getenv putenv strcasecmp htons)
AC_CHECK_FUNCS(usleep gettimeofday)



+ 2
- 0
cucul/font.c Wyświetl plik

@@ -25,6 +25,8 @@
# endif
# if defined(HAVE_ARPA_INET_H)
# include <arpa/inet.h>
# elif defined(HAVE_NETINET_IN_H)
# include <netinet/in.h>
# endif
# include <stdio.h>
# include <stdlib.h>


+ 2
- 0
tools/makefont.c Wyświetl plik

@@ -23,6 +23,8 @@

#if defined(HAVE_ARPA_INET_H)
# include <arpa/inet.h>
#elif defined(HAVE_NETINET_IN_H)
# include <netinet/in.h>
#endif

#include <pango/pango.h>


Ładowanie…
Anuluj
Zapisz