Hi Eramoto, On Fri, Dec 22, 2017 at 5:35 AM, ERAMOTO Masaya <eramoto.masaya@xxxxxxxxxxxxxx> wrote: > g_dbus_proxy_path_lookup() returns the path of the proxy that matches the > passed text. It also returns the index of the proxy coming next to the > matched proxy in the passed list. > --- > gdbus/client.c | 19 +++++++++++++++++++ > gdbus/gdbus.h | 1 + > 2 files changed, 20 insertions(+) > > diff --git a/gdbus/client.c b/gdbus/client.c > index 6ec611455..bb13709be 100644 > --- a/gdbus/client.c > +++ b/gdbus/client.c > @@ -26,6 +26,7 @@ > #endif > > #include <stdio.h> > +#include <string.h> > #include <glib.h> > #include <dbus/dbus.h> > > @@ -371,6 +372,24 @@ GDBusProxy *g_dbus_proxy_lookup(GList *list, const char *path, > return NULL; > } > > +char *g_dbus_proxy_path_lookup(GList *source, int *index, const char *text) > +{ > + GList *l; > + > + for (l = g_list_nth(source, *index); l; l = g_list_next(l)) { > + GDBusProxy *proxy = l->data; > + const char *path; > + > + (*index)++; > + > + path = g_dbus_proxy_get_path(proxy); > + if (!strncasecmp(path, text, strlen(text))) We better move out the strlen(text) portion outside of the for loop. > + return strdup(path); > + } > + > + return NULL; > +} > + > static gboolean properties_changed(DBusConnection *conn, DBusMessage *msg, > void *user_data) > { > diff --git a/gdbus/gdbus.h b/gdbus/gdbus.h > index 930aa5f77..99f21b3ce 100644 > --- a/gdbus/gdbus.h > +++ b/gdbus/gdbus.h > @@ -341,6 +341,7 @@ gboolean g_dbus_proxy_get_property(GDBusProxy *proxy, const char *name, > > GDBusProxy *g_dbus_proxy_lookup(GList *list, const char *path, > const char *interface); > +char *g_dbus_proxy_path_lookup(GList *source, int *index, const char *text); > > gboolean g_dbus_proxy_refresh_property(GDBusProxy *proxy, const char *name); > > -- > 2.14.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Luiz Augusto von Dentz -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html