- From: Vaclav Barta <vbar@comp.cz>
- Date: Mon, 23 Aug 1999 18:20:07 +0000
- To: wwwlib <www-lib@w3.org>
- CC: tobi@ibs.debis.de
> From: "Tobias Fischer" <tobi@ibs.debis.de> > To: "'Vaclav Barta'" <vbar@comp.cz> > Subject: AW: How to get a binary e.g. from an URL if another request-object > exists ? > Date: Mon, 23 Aug 1999 14:11:14 +0200 [snip my badly thought-out suggestion] > I'am sitting in front of Michael and tried these lines bevor your message > out... It seams that the libwww does not handle the META EQUIV-Tag in the > same manner. But thank you for your mail. > After tesing theses lines again, I looked to amaya and found out that amaya > can't handle this Tag too. > Is there anyone other with the same Problem ( or a solution :) ) Actually, it's not that complicated to just parse the tag in the element callback: /* if you already have element callbacks, don't use these, just add to yours */ void HandleStartTag(HText *text, int element_number, const BOOL *present, const char **value); void HandleEndTag(HText *text, int element_number); /* somewhere at the beginning */ HText_registerElementCallback(HandleStartTag, HandleEndTag); void HandleStartTag(HText *text, int element_number, const BOOL *present, const char **value) { if (element_number == HTML_META && present[HTML_META_HTTP_EQUIV] && value[HTML_META_HTTP_EQUIV] && /* not sure this test is needed, but it doesn't hurt */ !strcasecmp(value[HTML_META_HTTP_EQUIV], "refresh") && /* if you don't have strcasecmp, use stricmp or something */ present[HTML_META_CONTENT] && value[HTML_META_CONTENT]) /* not sure this test is needed, but it doesn't hurt */ { /* AFAIK this is as far as we get with support from libwww. We must continue on our own, but we're almost there... */ const char *p = FindNoCase(value[HTML_META_CONTENT], "URL="); /* FindNoCase is a function I'm embarrassed to post; it works like case-ignoring strstr */ if (p) { p += 4; printf("%s\n", p); /* I didn't actually try to load the URL here, but I hope it would... :-) */ } } } /* it's a pity HText_registerElementCallback requires end tag callback even when we really don't need it */ void HandleEndTag(HText *text, int element_number) { } This does parse meta tags like <META HTTP-EQUIV=REFRESH CONTENT="5; URL=http://localhost/goal.html"> but I confess I've never seen a formal definition of their syntax, so your mileage may vary. If somebody knows the definition, please let me know. Bye Vasek -- I have a search engine, too! http://www.locus.cz/locus/
Received on Tuesday, 24 August 1999 00:34:29 UTC