On Wed, Aug 17, 2005 at 10:38:52PM -0400, Michael Krufky wrote: > I think that's a cool idea, but I don't think everybody is going to want > that enabled by default. Could you make a command line argument that > would enable this behavior, and leave it disabled by default? Sure. Here it is. David -- David Engel gigem@xxxxxxxxxxx -------------- next part -------------- Index: util/scan/scan.c =================================================================== RCS file: /cvs/linuxtv/dvb-apps/util/scan/scan.c,v retrieving revision 1.17 diff -u -u -r1.17 scan.c --- util/scan/scan.c 10 May 2005 21:26:12 -0000 1.17 +++ util/scan/scan.c 18 Aug 2005 16:24:45 -0000 @@ -65,6 +65,7 @@ static int serv_select = 7; static int vdr_version = 2; static struct lnb_types_st lnb_type; +static int unique_anon_services; static enum fe_spectral_inversion spectral_inversion = INVERSION_AUTO; @@ -1905,6 +1906,7 @@ struct service *s; int n = 0, i; char sn[20]; + int anon_services = 0; list_for_each(p1, &scanned_transponders) { t = list_entry(p1, struct transponder, list); @@ -1925,8 +1927,14 @@ if (!s->service_name) { /* not in SDT */ - snprintf(sn, sizeof(sn), "[%04x]", s->service_id); + if (unique_anon_services) + snprintf(sn, sizeof(sn), "[%03x-%04x]", + anon_services, s->service_id); + else + snprintf(sn, sizeof(sn), "[%04x]", + s->service_id); s->service_name = strdup(sn); + anon_services++; } /* ':' is field separator in szap and vdr service lists */ for (i = 0; s->service_name[i]; i++) { @@ -2055,7 +2063,8 @@ " -u UK DVB-T Freeview channel numbering for VDR\n\n" " -P do not use ATSC PSIP tables for scanning\n" " (but only PAT and PMT) (applies for ATSC only)\n" - " -A N check for ATSC 1=Terrestrial [default], 2=Cable or 3=both\n"; + " -A N check for ATSC 1=Terrestrial [default], 2=Cable or 3=both\n" + " -U Uniquely name unknown services\n"; void bad_usage(char *pname, int problem) @@ -2103,7 +2112,7 @@ /* start with default lnb type */ lnb_type = *lnb_enum(0); - while ((opt = getopt(argc, argv, "5cnpa:f:d:s:o:x:e:t:i:l:vquPA:")) != -1) { + while ((opt = getopt(argc, argv, "5cnpa:f:d:s:o:x:e:t:i:l:vquPA:U")) != -1) { switch (opt) { case 'a': adapter = strtoul(optarg, NULL, 0); @@ -2178,6 +2187,9 @@ } break; + case 'U': + unique_anon_services = 1; + break; default: bad_usage(argv[0], 0); return -1;