Module Name: src Committed By: plunky Date: Fri Jun 24 20:53:56 UTC 2011
Modified Files: src/usr.bin/sdpquery: print.c Log Message: some attributes contain comma separated lists which are too long to show on a single line, split them up To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/usr.bin/sdpquery/print.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/sdpquery/print.c diff -u src/usr.bin/sdpquery/print.c:1.12 src/usr.bin/sdpquery/print.c:1.13 --- src/usr.bin/sdpquery/print.c:1.12 Fri Jun 24 20:11:23 2011 +++ src/usr.bin/sdpquery/print.c Fri Jun 24 20:53:56 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: print.c,v 1.12 2011/06/24 20:11:23 plunky Exp $ */ +/* $NetBSD: print.c,v 1.13 2011/06/24 20:53:56 plunky Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: print.c,v 1.12 2011/06/24 20:11:23 plunky Exp $"); +__RCSID("$NetBSD: print.c,v 1.13 2011/06/24 20:53:56 plunky Exp $"); #include <ctype.h> #include <iconv.h> @@ -82,6 +82,7 @@ static void print_uuid(sdp_data_t *); static void print_uuid_list(sdp_data_t *); static void print_string(sdp_data_t *); +static void print_string_list(sdp_data_t *); static void print_url(sdp_data_t *); static void print_profile_version(sdp_data_t *); static void print_language_string(sdp_data_t *); @@ -244,19 +245,19 @@ }; attr_t bp_attrs[] = { /* Basic Printing */ - { 0x0350, "DocumentFormatsSupported", print_string }, + { 0x0350, "DocumentFormatsSupported", print_string_list }, { 0x0352, "CharacterRepertoiresSupported", print_character_repertoires }, - { 0x0354, "XHTML-PrintImageFormatsSupported", print_string }, + { 0x0354, "XHTML-PrintImageFormatsSupported", print_string_list }, { 0x0356, "ColorSupported", print_bool }, { 0x0358, "1284ID", print_string }, { 0x035a, "PrinterName", print_string }, { 0x035c, "PrinterLocation", print_string }, { 0x035e, "DuplexSupported", print_bool }, - { 0x0360, "MediaTypesSupported", print_string }, + { 0x0360, "MediaTypesSupported", print_string_list }, { 0x0362, "MaxMediaWidth", print_uint16d }, { 0x0364, "MaxMediaLength", print_uint16d }, { 0x0366, "EnhancedLayoutSupport", print_bool }, - { 0x0368, "RUIFormatsSupported", print_string }, + { 0x0368, "RUIFormatsSupported", print_string_list }, { 0x0370, "ReferencePrintingRUISupported", print_bool }, { 0x0372, "DirectPrintingRUISupported", print_bool }, { 0x0374, "ReferencePrintingTopURL", print_url }, @@ -281,7 +282,7 @@ }; attr_t rui_attrs[] = { /* Reflected User Interface */ - { 0x0368, "RUIFormatsSupported", print_string }, + { 0x0368, "RUIFormatsSupported", print_string_list }, { 0x0378, "PrinterAdminRUITopURL", print_url }, }; @@ -774,6 +775,31 @@ } static void +print_string_list(sdp_data_t *data) +{ + char *str, *ep; + size_t len, l; + + if (!sdp_get_str(data, &str, &len)) + return; + + printf("\n"); + while (len > 0) { + ep = memchr(str, (int)',', len); + if (ep == NULL) { + l = len; + len = 0; + } else { + l = (size_t)(ep - str); + len -= l + 1; + ep++; + } + printf(" %s\n", string_vis(VIS_CSTYLE, str, l)); + str = ep; + } +} + +static void print_url(sdp_data_t *data) { char *url;