X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fcss-url.c;h=f97690d6046c155c015b18254a2f690d4442a65e;hp=621c17dd65948efa5858ee76bfbd4871c9c53009;hb=359dd167602071cfa62d6c586ca846ede5ed7c29;hpb=4f53c20e27f4e6db75aef4c7ea2812330d48017c diff --git a/src/css-url.c b/src/css-url.c index 621c17dd..f97690d6 100644 --- a/src/css-url.c +++ b/src/css-url.c @@ -1,6 +1,6 @@ /* Collect URLs from CSS source. - Copyright (C) 1998, 2000, 2001, 2002, 2003, 2009 Free Software - Foundation, Inc. + Copyright (C) 1998, 2000, 2001, 2002, 2003, 2009, 2010, 2011 Free + Software Foundation, Inc. This file is part of GNU Wget. @@ -49,13 +49,13 @@ as that of the covered work. */ #include #include #include -#include #include "wget.h" #include "utils.h" #include "convert.h" #include "html-url.h" #include "css-tokens.h" +#include "css-url.h" /* from lex.yy.c */ extern char *yytext; @@ -108,7 +108,7 @@ const char *token_names[] = { whitespace after the opening parenthesis and before the closing parenthesis. */ -char * +static char * get_uri_string (const char *at, int *pos, int *length) { char *uri; @@ -125,9 +125,11 @@ get_uri_string (const char *at, int *pos, int *length) /* skip leading space */ while (isspace (at[*pos])) { - (*pos)++; - (*length)--; + (*pos)++; + if (--(*length) == 0) + return NULL; } + /* skip trailing space */ while (isspace (at[*pos + *length - 1])) { @@ -144,7 +146,7 @@ get_uri_string (const char *at, int *pos, int *length) if (uri) { strncpy (uri, at + *pos, *length); - uri[*length] = '\0'; + uri[*length] = '\0'; } return uri; @@ -253,7 +255,7 @@ get_urls_css_file (const char *file, const char *url) struct map_context ctx; /* Load the file. */ - fm = read_file (file); + fm = wget_read_file (file); if (!fm) { logprintf (LOG_NOTQUIET, "%s: %s\n", file, strerror (errno)); @@ -262,13 +264,13 @@ get_urls_css_file (const char *file, const char *url) DEBUGP (("Loaded %s (size %s).\n", file, number_to_static_string (fm->length))); ctx.text = fm->content; - ctx.head = ctx.tail = NULL; + ctx.head = NULL; ctx.base = NULL; ctx.parent_base = url ? url : opt.base_href; ctx.document_file = file; ctx.nofollow = 0; get_urls_css (&ctx, 0, fm->length); - read_file_free (fm); + wget_read_file_free (fm); return ctx.head; }