X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=avahi-utils%2Favahi-browse.c;h=4101895ee208df33b3a7de3b4472a69dfd521d84;hb=0e8a4f32e3182d5a2337ca679f7a144cbe341f17;hp=8cbd6d54429a09a668c41ea00cc01b43b9ff67b2;hpb=fda370b95b1dd1669e3dd4b02eabbb29dfc2cfc9;p=catta diff --git a/avahi-utils/avahi-browse.c b/avahi-utils/avahi-browse.c index 8cbd6d5..4101895 100644 --- a/avahi-utils/avahi-browse.c +++ b/avahi-utils/avahi-browse.c @@ -1,5 +1,3 @@ -/* $Id$ */ - /*** This file is part of avahi. @@ -32,6 +30,7 @@ #include #include #include +#include #include #include @@ -140,6 +139,18 @@ static ServiceInfo *find_service(AvahiIfIndex interface, AvahiProtocol protocol, return NULL; } +static char *make_printable(const char *from, char *to) { + const char *f; + char *t; + + for (f = from, t = to; *f; f++, t++) + *t = isprint(*f) ? *f : '_'; + + *t = 0; + + return to; +} + static void print_service_line(Config *config, char c, AvahiIfIndex interface, AvahiProtocol protocol, const char *name, const char *type, const char *domain, int nl) { char ifname[IF_NAMESIZE]; @@ -158,12 +169,17 @@ static void print_service_line(Config *config, char c, AvahiIfIndex interface, A protocol != AVAHI_PROTO_UNSPEC ? avahi_proto_to_string(protocol) : _("n/a"), avahi_escape_label(name, strlen(name), &e, &l), type, domain, nl ? "\n" : ""); - } else - printf("%c %4s %4s %-*s %-20s %s\n", + } else { + char label[AVAHI_LABEL_MAX]; + make_printable(name, label); + + printf("%c %6s %4s %-*s %-20s %s\n", c, interface != AVAHI_IF_UNSPEC ? if_indextoname(interface, ifname) : _("n/a"), protocol != AVAHI_PROTO_UNSPEC ? avahi_proto_to_string(protocol) : _("n/a"), - n_columns-35, name, type, domain); + n_columns-35, label, type, domain); + } + fflush(stdout); }