--- glib-2.28.1/glib/gstrfuncs.c 2011-02-16 10:55:33.000000000 +0800 +++ aglib-2.28.1/glib/gstrfuncs.c 2011-03-21 16:33:18.000000000 +0800 @@ -442,8 +442,12 @@ g_ascii_strtod (const gchar *nptr, fail_pos = NULL; +#ifdef ANDROID + decimal_point = "."; +#else locale_data = localeconv (); decimal_point = locale_data->decimal_point; +#endif decimal_point_len = strlen (decimal_point); g_assert (decimal_point_len != 0); @@ -656,8 +660,12 @@ g_ascii_formatd (gchar *buffer, _g_snprintf (buffer, buf_len, format, d); +#ifdef ANDROID + decimal_point = "."; +#else locale_data = localeconv (); decimal_point = locale_data->decimal_point; +#endif decimal_point_len = strlen (decimal_point); g_assert (decimal_point_len != 0); --- glib-2.28.1/glib/gutils.c 2011-02-11 23:23:13.000000000 +0800 +++ aglib-2.28.1/glib/gutils.c 2011-03-21 17:08:09.000000000 +0800 @@ -29,6 +29,9 @@ */ #include "config.h" +#ifdef ANDROID +#undef HAVE_PWD_H +#endif #ifdef HAVE_UNISTD_H #include --- glib-2.28.1/gio/libasyncns/asyncns.c 2010-04-13 21:33:16.000000000 +0800 +++ aglib-2.28.1/gio/libasyncns/asyncns.c 2011-03-21 17:11:43.000000000 +0800 @@ -18,6 +18,30 @@ . ***/ +#ifdef ANDROID +typedef struct { + unsigned id :16; /*%< query identification number */ + /* fields in third byte */ + unsigned rd :1; /*%< recursion desired */ + unsigned tc :1; /*%< truncated message */ + unsigned aa :1; /*%< authoritive answer */ + unsigned opcode :4; /*%< purpose of message */ + unsigned qr :1; /*%< response flag */ + /* fields in fourth byte */ + unsigned rcode :4; /*%< response code */ + unsigned cd: 1; /*%< checking disabled by resolver */ + unsigned ad: 1; /*%< authentic data from named */ + unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */ + unsigned ra :1; /*%< recursion available */ + /* remaining bytes */ + unsigned qdcount :16; /*%< number of question entries */ + unsigned ancount :16; /*%< number of answer entries */ + unsigned nscount :16; /*%< number of authority entries */ + unsigned arcount :16; /*%< number of resource entries */ +} HEADER; +#endif + + #ifdef HAVE_CONFIG_H #include "g-asyncns.h" #endif @@ -57,6 +81,10 @@ #include #endif +#ifdef ANDROID +#undef HAVE_SYS_PRCTL_H +#endif + #ifdef HAVE_SYS_PRCTL_H #include #endif --- glib-2.28.1/gio/gresolver.c 2011-02-11 23:23:11.000000000 +0800 +++ aglib-2.28.1/gio/gresolver.c 2011-03-21 16:42:18.000000000 +0800 @@ -20,6 +20,61 @@ * Boston, MA 02111-1307, USA. */ +#ifdef ANDROID +/*% + * Inline versions of get/put short/long. Pointer is advanced. + */ +#define NS_INT32SZ 4 /*%< #/bytes of data in a u_int32_t */ +#define NS_INT16SZ 2 /*%< #/bytes of data in a u_int16_t */ +#define NS_GET16(s, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (s) = ((u_int16_t)t_cp[0] << 8) \ + | ((u_int16_t)t_cp[1]) \ + ; \ + (cp) += NS_INT16SZ; \ +} while (0) +#define NS_GET32(l, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (l) = ((u_int32_t)t_cp[0] << 24) \ + | ((u_int32_t)t_cp[1] << 16) \ + | ((u_int32_t)t_cp[2] << 8) \ + | ((u_int32_t)t_cp[3]) \ + ; \ + (cp) += NS_INT32SZ; \ +} while (0) + + +#define GETSHORT NS_GET16 +#define GETLONG NS_GET32 + +#define ns_c_in 1 /*%< Internet. */ +#define ns_t_srv 33 /*%< Internet. */ +#define C_IN ns_c_in +#define T_SRV ns_t_srv + +typedef struct { + unsigned id :16; /*%< query identification number */ + /* fields in third byte */ + unsigned rd :1; /*%< recursion desired */ + unsigned tc :1; /*%< truncated message */ + unsigned aa :1; /*%< authoritive answer */ + unsigned opcode :4; /*%< purpose of message */ + unsigned qr :1; /*%< response flag */ + /* fields in fourth byte */ + unsigned rcode :4; /*%< response code */ + unsigned cd: 1; /*%< checking disabled by resolver */ + unsigned ad: 1; /*%< authentic data from named */ + unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */ + unsigned ra :1; /*%< recursion available */ + /* remaining bytes */ + unsigned qdcount :16; /*%< number of question entries */ + unsigned ancount :16; /*%< number of answer entries */ + unsigned nscount :16; /*%< number of authority entries */ + unsigned arcount :16; /*%< number of resource entries */ +} HEADER; +#endif + + #include "config.h" #include #include "glibintl.h" --- glib-2.28.1/gio/gthreadedresolver.c 2011-02-11 23:23:12.000000000 +0800 +++ aglib-2.28.1/gio/gthreadedresolver.c 2011-03-21 16:44:29.000000000 +0800 @@ -20,6 +20,60 @@ * Boston, MA 02111-1307, USA. */ +#ifdef ANDROID +/*% + * Inline versions of get/put short/long. Pointer is advanced. + */ +#define NS_INT32SZ 4 /*%< #/bytes of data in a u_int32_t */ +#define NS_INT16SZ 2 /*%< #/bytes of data in a u_int16_t */ +#define NS_GET16(s, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (s) = ((u_int16_t)t_cp[0] << 8) \ + | ((u_int16_t)t_cp[1]) \ + ; \ + (cp) += NS_INT16SZ; \ +} while (0) +#define NS_GET32(l, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (l) = ((u_int32_t)t_cp[0] << 24) \ + | ((u_int32_t)t_cp[1] << 16) \ + | ((u_int32_t)t_cp[2] << 8) \ + | ((u_int32_t)t_cp[3]) \ + ; \ + (cp) += NS_INT32SZ; \ +} while (0) + + +#define GETSHORT NS_GET16 +#define GETLONG NS_GET32 + +#define ns_c_in 1 /*%< Internet. */ +#define ns_t_srv 33 /*%< Internet. */ +#define C_IN ns_c_in +#define T_SRV ns_t_srv + + typedef struct { + unsigned id :16; /*%< query identification number */ + /* fields in third byte */ + unsigned rd :1; /*%< recursion desired */ + unsigned tc :1; /*%< truncated message */ + unsigned aa :1; /*%< authoritive answer */ + unsigned opcode :4; /*%< purpose of message */ + unsigned qr :1; /*%< response flag */ + /* fields in fourth byte */ + unsigned rcode :4; /*%< response code */ + unsigned cd: 1; /*%< checking disabled by resolver */ + unsigned ad: 1; /*%< authentic data from named */ + unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */ + unsigned ra :1; /*%< recursion available */ + /* remaining bytes */ + unsigned qdcount :16; /*%< number of question entries */ + unsigned ancount :16; /*%< number of answer entries */ + unsigned nscount :16; /*%< number of authority entries */ + unsigned arcount :16; /*%< number of resource entries */ + } HEADER; +#endif + #include "config.h" #include #include "glibintl.h" --- glib-2.28.1/gio/gunixresolver.c 2011-02-11 23:23:12.000000000 +0800 +++ aglib-2.28.1/gio/gunixresolver.c 2011-03-21 16:45:01.000000000 +0800 @@ -20,6 +20,62 @@ * Boston, MA 02111-1307, USA. */ +#ifdef ANDROID +/*% + * Inline versions of get/put short/long. Pointer is advanced. + */ +#define NS_INT32SZ 4 /*%< #/bytes of data in a u_int32_t */ +#define NS_INT16SZ 2 /*%< #/bytes of data in a u_int16_t */ +#define NS_GET16(s, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (s) = ((u_int16_t)t_cp[0] << 8) \ + | ((u_int16_t)t_cp[1]) \ + ; \ + (cp) += NS_INT16SZ; \ +} while (0) +#define NS_GET32(l, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (l) = ((u_int32_t)t_cp[0] << 24) \ + | ((u_int32_t)t_cp[1] << 16) \ + | ((u_int32_t)t_cp[2] << 8) \ + | ((u_int32_t)t_cp[3]) \ + ; \ + (cp) += NS_INT32SZ; \ +} while (0) + + +#define GETSHORT NS_GET16 +#define GETLONG NS_GET32 + +#define ns_c_in 1 /*%< Internet. */ +#define ns_t_srv 33 /*%< Internet. */ +#define C_IN ns_c_in +#define T_SRV ns_t_srv + + typedef struct { + unsigned id :16; /*%< query identification number */ + /* fields in third byte */ + unsigned rd :1; /*%< recursion desired */ + unsigned tc :1; /*%< truncated message */ + unsigned aa :1; /*%< authoritive answer */ + unsigned opcode :4; /*%< purpose of message */ + unsigned qr :1; /*%< response flag */ + /* fields in fourth byte */ + unsigned rcode :4; /*%< response code */ + unsigned cd: 1; /*%< checking disabled by resolver */ + unsigned ad: 1; /*%< authentic data from named */ + unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */ + unsigned ra :1; /*%< recursion available */ + /* remaining bytes */ + unsigned qdcount :16; /*%< number of question entries */ + unsigned ancount :16; /*%< number of answer entries */ + unsigned nscount :16; /*%< number of authority entries */ + unsigned arcount :16; /*%< number of resource entries */ + } HEADER; +#endif + + + #include "config.h" #include #include "glibintl.h" --- glib-2.28.1/gio/glocalfileinfo.c 2011-02-11 23:23:11.000000000 +0800 +++ aglib-2.28.1/gio/glocalfileinfo.c 2011-03-21 16:55:10.000000000 +0800 @@ -1096,7 +1096,11 @@ lookup_uid_data (uid_t uid) if (pwbufp->pw_name != NULL && pwbufp->pw_name[0] != 0) data->user_name = convert_pwd_string_to_utf8 (pwbufp->pw_name); +#ifdef ANDROID + gecos = NULL; +#else gecos = pwbufp->pw_gecos; +#endif if (gecos) { --- glib-2.28.1/gio/ginetaddress.c 2011-02-11 23:23:11.000000000 +0800 +++ aglib-2.28.1/gio/ginetaddress.c 2011-03-21 16:55:45.000000000 +0800 @@ -20,6 +20,27 @@ * Authors: Christian Kellner * Samuel Cormier-Iijima */ +#ifdef ANDROID +#define IN6_IS_ADDR_MC_NODELOCAL(a) \ + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x1)) + +#define IN6_IS_ADDR_MC_LINKLOCAL(a) \ + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x2)) + +#define IN6_IS_ADDR_MC_SITELOCAL(a) \ + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x5)) + +#define IN6_IS_ADDR_MC_ORGLOCAL(a) \ + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x8)) + +#define IN6_IS_ADDR_MC_GLOBAL(a) \ + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe)) +#endif #include