2003-09-21 18:47:14 -04:00
|
|
|
/* Declarations for convert.c
|
2006-07-14 09:25:50 -04:00
|
|
|
Copyright (C) 2003-2006 Free Software 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
|
|
|
|
the Free Software Foundation; either version 2 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
|
|
|
|
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
|
2005-07-01 22:26:52 -04:00
|
|
|
along with Wget; if not, write to the Free Software Foundation, Inc.,
|
|
|
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
2003-09-21 18:47:14 -04:00
|
|
|
|
|
|
|
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. */
|
|
|
|
|
|
|
|
#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;
|
|
|
|
|
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 */
|
|
|
|
unsigned int link_expect_html :1; /* expected to contain HTML */
|
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 *);
|
|
|
|
void register_html (const char *, const char *);
|
|
|
|
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 */
|