X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fcss-url.c;h=f97690d6046c155c015b18254a2f690d4442a65e;hb=8c2fd06ba80b5312b4540859d452664450ec054f;hp=42c8fc3e7e9747bd8be5beec605af236d575698f;hpb=2e2ac6ad2fc90eaf46ae5fee0bc4f61dd97b4284;p=wget
diff --git a/src/css-url.c b/src/css-url.c
index 42c8fc3e..f97690d6 100644
--- a/src/css-url.c
+++ b/src/css-url.c
@@ -1,12 +1,13 @@
/* Collect URLs from CSS source.
- Copyright (C) 1998, 2000, 2001, 2002, 2003 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.
GNU Wget is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+the Free Software Foundation; either version 3 of the License, or (at
+your option) any later version.
GNU Wget is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,18 +15,18 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with Wget; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-In addition, as a special exception, the Free Software Foundation
-gives permission to link the code of its release of Wget with the
-OpenSSL project's "OpenSSL" library (or with modified versions of it
-that use the same license as the "OpenSSL" library), and distribute
-the linked executables. You must obey the GNU General Public License
-in all respects for all of the code used other than "OpenSSL". If you
-modify this file, you may extend this exception to your version of the
-file, but you are not obligated to do so. If you do not wish to do
-so, delete this exception statement from your version. */
+along with Wget. If not, see .
+
+Additional permission under GNU GPL version 3 section 7
+
+If you modify this program, or any covered work, by linking or
+combining it with the OpenSSL project's OpenSSL library (or a
+modified version of that library), containing parts covered by the
+terms of the OpenSSL or SSLeay licenses, the Free Software Foundation
+grants you additional permission to convey the resulting work.
+Corresponding Source for a non-source form of such a combination
+shall include the source code for the parts of OpenSSL used as well
+as that of the covered work. */
/*
Note that this is not an actual CSS parser, but just a lexical
@@ -37,7 +38,7 @@ so, delete this exception statement from your version. */
a browser would ignore. That might merit some more investigation.
*/
-#include
+#include
#include
#ifdef HAVE_STRING_H
@@ -48,13 +49,13 @@ so, delete this exception statement from your version. */
#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;
@@ -107,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;
@@ -124,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]))
{
@@ -143,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;
@@ -252,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));
@@ -261,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;
}