2003-09-21 18:47:14 -04:00
|
|
|
/* Declarations for convert.c
|
2011-01-01 07:19:37 -05:00
|
|
|
Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011 Free Software
|
2010-05-08 15:56:15 -04:00
|
|
|
Foundation, Inc.
|
2003-09-21 18:47:14 -04:00
|
|
|
|
|
|
|
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
|
2007-07-10 01:53:22 -04:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
2003-09-21 18:47:14 -04:00
|
|
|
(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
|
|
|
|
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
|
2007-07-10 01:53:22 -04:00
|
|
|
along with Wget. If not, see <http://www.gnu.org/licenses/>.
|
2003-09-21 18:47:14 -04:00
|
|
|
|
2007-11-28 03:05:33 -05:00
|
|
|
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. */
|
2003-09-21 18:47:14 -04:00
|
|
|
|
|
|
|
#ifndef CONVERT_H
|
|
|
|
#define CONVERT_H
|
|
|
|
|
2005-03-30 14:27:34 -05:00
|
|
|
struct hash_table; /* forward decl */
|
2005-06-27 14:19:22 -04:00
|
|
|
extern struct hash_table *dl_url_file_map;
|
2005-03-30 14:27:34 -05:00
|
|
|
extern struct hash_table *downloaded_html_set;
|
2008-04-22 03:15:48 -04:00
|
|
|
extern struct hash_table *downloaded_css_set;
|
2005-03-30 14:27:34 -05:00
|
|
|
|
2003-09-21 18:47:14 -04:00
|
|
|
enum convert_options {
|
|
|
|
CO_NOCONVERT = 0, /* don't convert this URL */
|
|
|
|
CO_CONVERT_TO_RELATIVE, /* convert to relative, e.g. to
|
|
|
|
"../../otherdir/foo.gif" */
|
|
|
|
CO_CONVERT_TO_COMPLETE, /* convert to absolute, e.g. to
|
|
|
|
"http://orighost/somedir/bar.jpg". */
|
|
|
|
CO_NULLIFY_BASE /* change to empty string. */
|
|
|
|
};
|
|
|
|
|
|
|
|
struct url;
|
|
|
|
|
|
|
|
/* A structure that defines the whereabouts of a URL, i.e. its
|
|
|
|
position in an HTML document, etc. */
|
|
|
|
|
|
|
|
struct urlpos {
|
|
|
|
struct url *url; /* the URL of the link, after it has
|
|
|
|
been merged with the base */
|
|
|
|
char *local_name; /* local file to which it was saved
|
|
|
|
(used by convert_links) */
|
|
|
|
|
|
|
|
/* reserved for special links such as <base href="..."> which are
|
|
|
|
used when converting links, but ignored when downloading. */
|
|
|
|
unsigned int ignore_when_downloading :1;
|
|
|
|
|
|
|
|
/* Information about the original link: */
|
|
|
|
|
2003-10-10 10:25:10 -04:00
|
|
|
unsigned int link_relative_p :1; /* the link was relative */
|
|
|
|
unsigned int link_complete_p :1; /* the link was complete (had host name) */
|
|
|
|
unsigned int link_base_p :1; /* the url came from <base href=...> */
|
|
|
|
unsigned int link_inline_p :1; /* needed to render the page */
|
2008-04-22 03:15:48 -04:00
|
|
|
unsigned int link_css_p :1; /* the url came from CSS */
|
2003-10-10 10:25:10 -04:00
|
|
|
unsigned int link_expect_html :1; /* expected to contain HTML */
|
2008-04-22 03:15:48 -04:00
|
|
|
unsigned int link_expect_css :1; /* expected to contain CSS */
|
2003-09-21 18:47:14 -04:00
|
|
|
|
|
|
|
unsigned int link_refresh_p :1; /* link was received from
|
|
|
|
<meta http-equiv=refresh content=...> */
|
|
|
|
int refresh_timeout; /* for reconstructing the refresh. */
|
|
|
|
|
|
|
|
/* Conversion requirements: */
|
|
|
|
enum convert_options convert; /* is conversion required? */
|
|
|
|
|
|
|
|
/* URL's position in the buffer. */
|
|
|
|
int pos, size;
|
|
|
|
|
|
|
|
struct urlpos *next; /* next list element */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* downloaded_file() takes a parameter of this type and returns this type. */
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
/* Return enumerators: */
|
|
|
|
FILE_NOT_ALREADY_DOWNLOADED = 0,
|
|
|
|
|
|
|
|
/* Return / parameter enumerators: */
|
|
|
|
FILE_DOWNLOADED_NORMALLY,
|
|
|
|
FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED,
|
|
|
|
|
|
|
|
/* Parameter enumerators: */
|
|
|
|
CHECK_FOR_FILE
|
|
|
|
} downloaded_file_t;
|
|
|
|
|
2005-06-19 18:34:58 -04:00
|
|
|
downloaded_file_t downloaded_file (downloaded_file_t, const char *);
|
2003-09-21 18:47:14 -04:00
|
|
|
|
2005-06-19 18:34:58 -04:00
|
|
|
void register_download (const char *, const char *);
|
|
|
|
void register_redirection (const char *, const char *);
|
2012-05-20 15:02:25 -04:00
|
|
|
void register_html (const char *);
|
|
|
|
void register_css (const char *);
|
2005-06-19 18:34:58 -04:00
|
|
|
void register_delete_file (const char *);
|
|
|
|
void convert_all_links (void);
|
|
|
|
void convert_cleanup (void);
|
2003-09-21 18:47:14 -04:00
|
|
|
|
2005-06-19 18:34:58 -04:00
|
|
|
char *html_quote_string (const char *);
|
2005-04-07 17:37:22 -04:00
|
|
|
|
2003-09-21 18:47:14 -04:00
|
|
|
#endif /* CONVERT_H */
|