From 5aeaaebad9571784ccb352e8292ca7b6beb53db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sat, 7 Nov 2015 22:26:17 +0100 Subject: [PATCH] googlefs: fix parsed urls we now get relative URLs it seems... --- .../file_systems/googlefs/parse_google_html.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c b/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c index 3ac2349f86..345238f80d 100644 --- a/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c +++ b/src/add-ons/kernel/file_systems/googlefs/parse_google_html.c @@ -43,6 +43,7 @@ int dbgstep = 0; #define G_END_SNIPSET "
" #define G_BEGIN_CACHESIM " " +#define G_URL_PREFIX "http://www.google.com" int google_parse_results(const char *html, size_t htmlsize, long *nextid, struct google_result **results) { @@ -88,6 +89,7 @@ int google_parse_results(const char *html, size_t htmlsize, long *nextid, struct char *item; long itemlen; char *tmp; + char *urlp; int i; #ifdef TESTME dbgstep = 0; @@ -119,10 +121,17 @@ int google_parse_results(const char *html, size_t htmlsize, long *nextid, struct PRST; p+= strlen(G_END_URL); //printf(DBG"[%ld] found token 2\n", numres); - itemlen = p - item - strlen(G_END_URL); - itemlen = MIN(GR_MAX_URL-1, itemlen); - strncpy(nres->url, item, itemlen); - nres->url[itemlen] = '\0'; + itemlen = GR_MAX_URL-1; + urlp = nres->url; + if (!strncmp(item, "/url?", 5)) { + strcpy(urlp, G_URL_PREFIX); + itemlen -= strlen(G_URL_PREFIX); + urlp += strlen(G_URL_PREFIX); + printf("plop\n"); + } + itemlen = MIN(itemlen, p - item - strlen(G_END_URL)); + strncpy(urlp, item, itemlen); + urlp[itemlen] = '\0'; /* find name */ //Google Web APIs - FAQ