/* Miscellaneous declarations.
- Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996-2005 Free Software Foundation, Inc.
This file is part of GNU Wget.
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.
+along with Wget; if not, write to the Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
In addition, as a special exception, the Free Software Foundation
gives permission to link the code of its release of Wget with the
# define NDEBUG
#endif
+/* Is OpenSSL or GNUTLS available? */
+#if defined HAVE_LIBSSL || defined HAVE_LIBGNUTLS
+# define HAVE_SSL
+#endif
+
/* `gettext (FOO)' is long to write, so we use `_(FOO)'. If NLS is
unavailable, _(STRING) simply returns STRING. */
#ifdef HAVE_NLS
#ifndef WINDOWS
typedef off_t wgint;
# define SIZEOF_WGINT SIZEOF_OFF_T
-#endif
-/* Define a strtol/strtoll clone that works with wgint. */
-#ifndef str_to_wgint /* mswindows.h defines its own alias */
+/* Pick the strtol-like function that will work with wgint. */
# if SIZEOF_WGINT == SIZEOF_LONG
# define str_to_wgint strtol
# define WGINT_MAX LONG_MAX
# else
-# define str_to_wgint strtoll
# define WGINT_MAX LLONG_MAX
+# ifdef HAVE_STRTOLL
+# define str_to_wgint strtoll
+# elif defined HAVE_STRTOIMAX /* HPUX 11.0 has strtoimax, but no strtoll */
+# define str_to_wgint strtoimax
+# else
+# define str_to_wgint strtoll
+# define NEED_STRTOLL
+# define strtoll_type long long
+# endif
# endif
+#endif /* not WINDOWS */
+
+/* Declare our strtoll replacement. */
+#ifdef NEED_STRTOLL
+strtoll_type strtoll (const char *, char **, int);
#endif
-/* Now define a large integral type useful for storing sizes of *sums*
+/* Now define a large numeric type useful for storing sizes of *sums*
of downloads, such as the value of the --quota option. This should
be a type able to hold 2G+ values even on systems without large
file support. (It is useful to limit Wget's download quota to say
few places in Wget, this is acceptable.) */
#if SIZEOF_WGINT >= 8
-/* just use wgint, which we already know how to print */
+/* just use wgint */
typedef wgint SUM_SIZE_INT;
-# define with_thousand_seps_sum with_thousand_seps
#else
/* On systems without LFS, use double, which buys us integers up to 2^53. */
typedef double SUM_SIZE_INT;
} while (0)
/* Used to print pointers (usually for debugging). Print pointers
- using printf ("%0*lx", PTR_FORMAT (p)). (%p is too unpredictable;
+ using printf ("0x%0*lx", PTR_FORMAT (p)). (%p is too unpredictable;
some implementations prepend 0x, while some don't, and most don't
0-pad the address.) */
#define PTR_FORMAT(p) (int) (2 * sizeof (void *)), (unsigned long) (p)
simplified. */
typedef enum
{
+ /* 0 */
NOCONERROR, HOSTERR, CONSOCKERR, CONERROR, CONSSLERR,
- CONIMPOSSIBLE, NEWLOCATION, NOTENOUGHMEM, CONPORTERR,
- CONCLOSED, FTPOK, FTPLOGINC, FTPLOGREFUSED, FTPPORTERR, FTPSYSERR,
- FTPNSFOD, FTPRETROK, FTPUNKNOWNTYPE, FTPRERR,
- FTPREXC, FTPSRVERR, FTPRETRINT, FTPRESTFAIL, URLERROR,
- FOPENERR, FOPEN_EXCL_ERR, FWRITEERR, HOK, HLEXC, HEOF,
+ CONIMPOSSIBLE, NEWLOCATION, NOTENOUGHMEM, CONPORTERR, CONCLOSED,
+ /* 10 */
+ FTPOK, FTPLOGINC, FTPLOGREFUSED, FTPPORTERR, FTPSYSERR,
+ FTPNSFOD, FTPRETROK, FTPUNKNOWNTYPE, FTPRERR, FTPREXC,
+ /* 20 */
+ FTPSRVERR, FTPRETRINT, FTPRESTFAIL, URLERROR, FOPENERR,
+ FOPEN_EXCL_ERR, FWRITEERR, HOK, HLEXC, HEOF,
+ /* 30 */
HERR, RETROK, RECLEVELEXC, FTPACCDENIED, WRONGCODE,
- FTPINVPASV, FTPNOPASV,
- CONTNOTSUPPORTED, RETRUNNEEDED, RETRFINISHED, READERR, TRYLIMEXC,
- URLBADPATTERN, FILEBADFILE, RANGEERR, RETRBADPATTERN,
- RETNOTSUP, ROBOTSOK, NOROBOTS, PROXERR, AUTHFAILED,
- QUOTEXC, WRITEFAILED, SSLINITFAILED
+ FTPINVPASV, FTPNOPASV, CONTNOTSUPPORTED, RETRUNNEEDED, RETRFINISHED,
+ /* 40 */
+ READERR, TRYLIMEXC, URLBADPATTERN, FILEBADFILE, RANGEERR,
+ RETRBADPATTERN, RETNOTSUP, ROBOTSOK, NOROBOTS, PROXERR,
+ /* 50 */
+ AUTHFAILED, QUOTEXC, WRITEFAILED, SSLINITFAILED
} uerr_t;
#endif /* WGET_H */