| 4326 * gai_strerror(). |
4326 * gai_strerror(). |
| 4327 */ |
4327 */ |
| 4328 const gchar * |
4328 const gchar * |
| 4329 purple_gai_strerror(gint errnum) |
4329 purple_gai_strerror(gint errnum) |
| 4330 { |
4330 { |
| |
4331 #if GLIB_CHECK_VERSION(2, 32, 0) |
| |
4332 static GPrivate msg_private = G_PRIVATE_INIT(g_free); |
| |
4333 #else |
| 4331 static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; |
4334 static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; |
| |
4335 #endif |
| 4332 char *msg; |
4336 char *msg; |
| 4333 int saved_errno = errno; |
4337 int saved_errno = errno; |
| 4334 |
4338 |
| 4335 const char *msg_locale; |
4339 const char *msg_locale; |
| 4336 |
4340 |
| 4354 errno = saved_errno; |
4358 errno = saved_errno; |
| 4355 return msg_utf8; |
4359 return msg_utf8; |
| 4356 } |
4360 } |
| 4357 } |
4361 } |
| 4358 |
4362 |
| |
4363 #if GLIB_CHECK_VERSION(2, 32, 0) |
| |
4364 msg = g_private_get(&msg_private); |
| |
4365 #else |
| 4359 msg = g_static_private_get(&msg_private); |
4366 msg = g_static_private_get(&msg_private); |
| |
4367 #endif |
| 4360 if (!msg) |
4368 if (!msg) |
| 4361 { |
4369 { |
| 4362 msg = g_new(gchar, 64); |
4370 msg = g_new(gchar, 64); |
| |
4371 #if GLIB_CHECK_VERSION(2, 32, 0) |
| |
4372 g_private_set(&msg_private, msg); |
| |
4373 #else |
| 4363 g_static_private_set(&msg_private, msg, g_free); |
4374 g_static_private_set(&msg_private, msg, g_free); |
| |
4375 #endif |
| 4364 } |
4376 } |
| 4365 |
4377 |
| 4366 sprintf(msg, "unknown error (%d)", errnum); |
4378 sprintf(msg, "unknown error (%d)", errnum); |
| 4367 |
4379 |
| 4368 errno = saved_errno; |
4380 errno = saved_errno; |