X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=blobdiff_plain;f=pctb%2Fpages.c;h=32e429ab39df1be1220b2bedbe083a1be7ccf17d;hp=50a652c5946a02ffd1a82fc60780e19620217dbf;hb=0487d41d9c7796c6efebb8235c9aa39fe580ccf9;hpb=e888c1dd3476ca49bccf82b93b4a3633587d400d;ds=sidebyside diff --git a/pctb/pages.c b/pctb/pages.c index 50a652c..32e429a 100644 --- a/pctb/pages.c +++ b/pctb/pages.c @@ -45,7 +45,7 @@ CanonImage *page_images[MAX_PAGES]; int npages; RgbImage *page0_rgbimage; -char *ocean, *pirate; +const char *ocean, *pirate; static XWindowAttributes attr; static Window id; @@ -694,11 +694,13 @@ void find_yppclient_window(void) { REQUIRE( !memcmp(title + len - S(suffix), suffix, S(suffix)) ); REQUIRE( !memcmp(spc1, onthe, S(onthe)) ); -#define ASSIGN(what, start, end) do { \ - sysassert( asprintf(&what, "%.*s", (end)-(start), start) >0 ); \ - }while(0) - ASSIGN(pirate, title + S(prefix), spc1); +#define ASSIGN(what, start, end) \ + what= masprintf("%.*s", (end)-(start), start); \ + if (o_##what) REQUIRE( !strcmp(o_##what, what) ); \ + else + ASSIGN(ocean, spc1 + S(onthe), (title + len) - S(suffix)); + ASSIGN(pirate, title + S(prefix), spc1); debugfind(" YES!\n"); id= w2; @@ -712,9 +714,10 @@ void find_yppclient_window(void) { if (children1) XFree(children1); } if (nfound>1) - fatal("Found several YPP clients." + fatal("Found several possible YPP clients." " Close one, or specify the windowid with --window-id.\n"); if (nfound<1) - fatal("Did not find YPP client." - " Use --window-id and/or report this as a fault.\n"); + fatal("Did not find %sYPP client." + " Use --window-id and/or report this as a fault.\n", + o_ocean || o_pirate ? "matching ": ""); }