X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fcss-url.c;h=e8c49892a310a78f0e33d100e54af931bbe00f70;hp=621c17dd65948efa5858ee76bfbd4871c9c53009;hb=38a7829dcb4eb5dba28dbf0f05c6a80fea9217f8;hpb=4f53c20e27f4e6db75aef4c7ea2812330d48017c diff --git a/src/css-url.c b/src/css-url.c index 621c17dd..e8c49892 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; @@ -64,41 +64,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; extern YY_BUFFER_STATE yy_scan_bytes (const char *bytes,int len ); extern int yylex (void); -#if 1 -const char *token_names[] = { - "CSSEOF", - "S", - "CDO", - "CDC", - "INCLUDES", - "DASHMATCH", - "LBRACE", - "PLUS", - "GREATER", - "COMMA", - "STRING", - "INVALID", - "IDENT", - "HASH", - "IMPORT_SYM", - "PAGE_SYM", - "MEDIA_SYM", - "CHARSET_SYM", - "IMPORTANT_SYM", - "EMS", - "EXS", - "LENGTH", - "ANGLE", - "TIME", - "FREQ", - "DIMENSION", - "PERCENTAGE", - "NUMBER", - "URI", - "FUNCTION" -}; -#endif - /* Given a detected URI token, get only the URI specified within. Also adjust the starting position and length of the string. @@ -108,7 +73,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 +90,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 +111,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 +220,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 +229,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; }