Files
pkgsrc-ng/sysutils/hal/patches/patch-hald_freebsd_hf-devd.c
2013-09-26 17:14:40 +02:00

43 lines
1.4 KiB
C

$NetBSD: patch-hald_freebsd_hf-devd.c,v 1.1 2012/03/31 16:06:56 ryoon Exp $
* From FreeBSD ports repository to fix build on FreeBSD 9.0 RELEASE.
--- hald/freebsd/hf-devd.c.orig 2009-08-24 12:42:29.000000000 +0000
+++ hald/freebsd/hf-devd.c
@@ -122,7 +122,11 @@ hf_devd_parse_add_remove (const char *ev
g_return_val_if_fail(parent != NULL, FALSE);
if ((params_ptr = strchr(event, ' '))
+#if defined(__FreeBSD__)
+ && (at_ptr = strstr(params_ptr, "at "))
+#else
&& (at_ptr = strstr(params_ptr + 1, " at "))
+#endif
&& (parent_ptr = strstr(at_ptr + 4, " on ")))
{
char *params_str;
@@ -130,7 +134,11 @@ hf_devd_parse_add_remove (const char *ev
*name = g_strndup(event, params_ptr - event);
params_str = g_strndup(params_ptr + 1, at_ptr - params_ptr - 1);
+#if defined(__FreeBSD__)
+ at_str = g_strndup(at_ptr + 3, parent_ptr - at_ptr - 3);
+#else
at_str = g_strndup(at_ptr + 4, parent_ptr - at_ptr - 4);
+#endif
*parent = g_strdup(parent_ptr + 4);
if (! strcmp(*parent, ".")) /* sys/kern/subr_bus.c */
@@ -398,7 +406,11 @@ hf_devd_event_cb (GIOChannel *source, GI
hf_devd_process_event(event);
g_free(event);
}
+#if defined(__FreeBSD__)
+ else if (status == G_IO_STATUS_AGAIN || status == G_IO_STATUS_EOF)
+#else
else if (status == G_IO_STATUS_AGAIN)
+#endif
{
hf_devd_init();
if (hf_devd_inited)