w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

commit a82b08e791741db37bd3f70b3fc19cd3bf08c24a
parent b2a2fbfa6266e4874ed9849f13f4226f3bd54917
Author: ukai <ukai>
Date:   Tue, 20 Aug 2002 17:49:38 +0000

Debian Bug#157098: wrong file presentation on large files
	  from "Eduard Bloch" <blade@debian.org>
* configure (clen_t): added
		(HAVE_STRTOLL): added
		(HAVE_STRTOQ): added
		(HAVE_ATOLL): added
		(HAVE_ATOQ): added
* config.h.dist: ditto
* file.c (current_content_length): s/int/clen_t/
	(loadGeneralFile): s/atoi/strtoclen/
	(convert_size): s/int/clen_t/
	(convert_size2): s/int/clen_t/
	(showProgress): s/int/clen_t/
	(loadHTMLstream): s/int/clen_t/ linelen, trbyte
	(loadBuffer): ditto
	(getNextPage): s/int/clen_t/ linelen
	(save2tmp): s/int/clen_t/ linelen, trbye
	(_MoveFile): s/int/clen_t/ linelen, trbye
* fm.h (_Buffer): s/int/clen_t/ linelen, trbye
* ftp.c (size_int2str): s/long/clen_t/
	(ex_ftpdir_name_size_date): s/long/clen_t/
* indep.c (strtoclen): added
* indep.h (strtoclen): added
* proto.h (showProgress): s/int/clen_t/
From: Fumitoshi UKAI  <ukai@debian.or.jp>

Diffstat:
MChangeLog | 27+++++++++++++++++++++++++++
Mconfig.h.dist | 5+++++
Mconfigure | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mfile.c | 22+++++++++++-----------
Mfm.h | 4++--
Mftp.c | 6+++---
Mindep.c | 16++++++++++++++++
Mindep.h | 1+
Mproto.h | 2+-
9 files changed, 153 insertions(+), 17 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,30 @@ +2002-08-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * Debian Bug#157098: wrong file presentation on large files + from "Eduard Bloch" <blade@debian.org> + * configure (clen_t): added + (HAVE_STRTOLL): added + (HAVE_STRTOQ): added + (HAVE_ATOLL): added + (HAVE_ATOQ): added + * config.h.dist: ditto + * file.c (current_content_length): s/int/clen_t/ + (loadGeneralFile): s/atoi/strtoclen/ + (convert_size): s/int/clen_t/ + (convert_size2): s/int/clen_t/ + (showProgress): s/int/clen_t/ + (loadHTMLstream): s/int/clen_t/ linelen, trbyte + (loadBuffer): ditto + (getNextPage): s/int/clen_t/ linelen + (save2tmp): s/int/clen_t/ linelen, trbye + (_MoveFile): s/int/clen_t/ linelen, trbye + * fm.h (_Buffer): s/int/clen_t/ linelen, trbye + * ftp.c (size_int2str): s/long/clen_t/ + (ex_ftpdir_name_size_date): s/long/clen_t/ + * indep.c (strtoclen): added + * indep.h (strtoclen): added + * proto.h (showProgress): s/int/clen_t/ + 2002-07-31 Fumitoshi UKAI <ukai@debian.or.jp> * Debian Bug#154766: w3m-img: support DirectColor framebuffer visuals? diff --git a/config.h.dist b/config.h.dist @@ -179,6 +179,11 @@ MODEL=Linux.i686-monster-ja #undef USE_BINMODE_STREAM #define HAVE_TERMIOS_H #define HAVE_DIRENT_H +typedef long clen_t; +#undef HAVE_STRTOLL +#undef HAVE_STRTOQ +#undef HAVE_ATOLL +#undef HAVE_ATOQ #define HAVE_STRCASECMP #define HAVE_STRCASESTR #define HAVE_STRCHR diff --git a/configure b/configure @@ -1283,6 +1283,88 @@ fi def_param use_help_cgi $have_perl +####### long long +cat > _zmachdep.c <<EOF +main() +{ + int i = sizeof(unsigned long long); +} +EOF +if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1 +then + echo "You have long long" + def_have_long_long="typedef long long clen_t;" + cat > _zmachdep.c <<EOF +#include <stdlib.h> +main() +{ + const char *s = "1"; + long long ll = strtoll(s, NULL, 10); +} +EOF + if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1 + then + echo "You have strtoll()" + def_have_strtoll="#define HAVE_STRTOLL" + else + echo "You don't have strtoll()" + def_have_strtoll="#undef HAVE_STRTOLL" + fi + cat > _zmachdep.c <<EOF +#include <sys/types.h> +#include <stdlib.h> +#include <limits.h> +main() +{ + const char *s = "1" + quad_t q = strtoq(s, NULL, 10); +} +EOF + if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1 + then + echo "You have strtoq()" + def_have_strtoq="#define HAVE_STRTOQ" + else + echo "You don't have strtoq()" + def_have_strtoq="#undef HAVE_STRTOQ" + fi + cat > _zmachdep.c <<EOF +#include <stdlib.h> +main() +{ + const char *s = "1"; + long long ll = atoll(s); +} +EOF + if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1 + then + echo "You have atoll()" + def_have_atoll="#define HAVE_ATOLL" + else + echo "You don't have atoll()" + def_have_atoll="#undef HAVE_ATOLL" + fi + cat > _zmachdep.c <<EOF +#include <stdlib.h> +main() +{ + const char *s = "1"; + long long ll = atoq(s); +} +EOF + if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1 + then + echo "You have atoq()" + def_have_atoq="#define HAVE_ATOQ" + else + echo "You don't have atoq()" + def_have_atoq="#undef HAVE_ATOQ" + fi +else + echo "You don't have long long" + def_have_long_long="typedef long clen_t;" +fi + ####### strcasecmp cat > _zmachdep.c << EOF #include <string.h> @@ -2306,6 +2388,11 @@ $def_use_xface $def_use_binstream $def_term_if $def_dir_if +$def_have_long_long +$def_have_strtoll +$def_have_strtoq +$def_have_atoll +$def_have_atoq $def_have_strcasecmp $def_have_strcasestr $def_have_strchr diff --git a/file.c b/file.c @@ -120,7 +120,7 @@ static int forms_size = 0; #define cur_form_id ((form_sp >= 0)? form_stack[form_sp] : -1) static int form_sp = 0; -static int current_content_length; +static clen_t current_content_length; static int cur_hseq; #ifdef USE_IMAGE @@ -1950,7 +1950,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, current_content_length = 0; if ((p = checkHeader(t_buf, "Content-Length:")) != NULL) - current_content_length = atoi(p); + current_content_length = strtoclen(p); if (flag & RG_FRAME) { t_buf = newBuffer(INIT_BUFFER_WIDTH); @@ -5777,7 +5777,7 @@ static char *_size_unit[] = { "b", "kb", "Mb", "Gb", "Tb", }; char * -convert_size(int size, int usefloat) +convert_size(clen_t size, int usefloat) { float csize; int sizepos = 0; @@ -5793,7 +5793,7 @@ convert_size(int size, int usefloat) } char * -convert_size2(int size1, int size2, int usefloat) +convert_size2(clen_t size1, clen_t size2, int usefloat) { char **sizes = _size_unit; float csize, factor = 1; @@ -5811,7 +5811,7 @@ convert_size2(int size1, int size2, int usefloat) } void -showProgress(int *linelen, int *trbyte) +showProgress(clen_t *linelen, clen_t *trbyte) { int i, j, rate, duration, eta, pos; static time_t last_time, start_time; @@ -6052,8 +6052,8 @@ void loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) { struct environment envs[MAX_ENV_LEVEL]; - int linelen = 0; - int trbyte = 0; + clen_t linelen = 0; + clen_t trbyte = 0; Str lineBuf2 = Strnew(); char code; struct html_feed_environ htmlenv1; @@ -6396,7 +6396,7 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf) volatile char pre_lbuf = '\0'; int nlines; Str tmpf; - int linelen = 0, trbyte = 0; + clen_t linelen = 0, trbyte = 0; #ifdef USE_ANSI_COLOR int check_color; #endif @@ -6776,7 +6776,7 @@ getNextPage(Buffer *buf, int plen) Line *l, *fl, *pl = buf->lastLine; Line *rl = NULL; int len, i, nlines = 0; - int linelen = buf->linelen, trbyte = buf->trbyte; + clen_t linelen = buf->linelen, trbyte = buf->trbyte; Str lineBuf2; char pre_lbuf = '\0'; URLFile uf; @@ -6920,7 +6920,7 @@ save2tmp(URLFile uf, char *tmpf) { FILE *ff; int check; - int linelen = 0, trbyte = 0; + clen_t linelen = 0, trbyte = 0; MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; static JMP_BUF env_bak; @@ -7073,7 +7073,7 @@ _MoveFile(char *path1, char *path2) InputStream f1; FILE *f2; int is_pipe; - int linelen = 0, trbyte = 0; + clen_t linelen = 0, trbyte = 0; Str buf; f1 = openIS(path1); diff --git a/fm.h b/fm.h @@ -419,8 +419,8 @@ typedef struct _Buffer { struct frameset *frameset; struct frameset_queue *frameQ; int *clone; - int linelen; - int trbyte; + size_t linelen; + size_t trbyte; char check_url; #ifdef JP_CHARSET char document_code; diff --git a/ftp.c b/ftp.c @@ -711,7 +711,7 @@ ftp_system(FTP ftp) }\ } -static Str size_int2str(unsigned long); +static Str size_int2str(clen_t); static int ex_ftpdir_name_size_date(char *line, char **name, char **date, char **sizep) @@ -719,7 +719,7 @@ ex_ftpdir_name_size_date(char *line, char **name, char **date, char **sizep) int ftype = FTPDIR_NONE; char *cp, *endp; Str date_str, name_str, size_str; - unsigned long size; + clen_t size; if (strlen(line) < 11) { goto done; @@ -805,7 +805,7 @@ ex_ftpdir_name_size_date(char *line, char **name, char **date, char **sizep) } static Str -size_int2str(unsigned long size) +size_int2str(clen_t size) { Str size_str; int unit; diff --git a/indep.c b/indep.c @@ -11,6 +11,22 @@ #include "myctype.h" #include "entity.h" +clen_t +strtoclen(const char *s) +{ +#ifdef HAVE_STRTOLL + return strtoll(s, NULL, 10); +#elif HAVE_STRTOQ + return strtoq(s, NULL, 10); +#elif HAVE_ATOLL + return atoll(s); +#elif HAVE_ATOQ + return atoq(s); +#else + return atoi(s); +#endif +} + #ifndef HAVE_BCOPY void bcopy(const void *src, void *dest, int len) diff --git a/indep.h b/indep.h @@ -16,6 +16,7 @@ #define HTML_MODE 1 #define HEADER_MODE 2 +extern clen_t strtoclen(const char *s); extern char *conv_entity(int ch); extern int getescapechar(char **s); extern char *getescapecmd(char **s); diff --git a/proto.h b/proto.h @@ -176,7 +176,7 @@ extern void HTMLlineproc0(char *istr, struct html_feed_environ *h_env, int internal); #define HTMLlineproc1(x,y) HTMLlineproc0(x,y,TRUE) extern Buffer *loadHTMLBuffer(URLFile *f, Buffer *newBuf); -extern void showProgress(int *linelen, int *trbyte); +extern void showProgress(clen_t *linelen, clen_t *trbyte); extern void init_henv(struct html_feed_environ *, struct readbuffer *, struct environment *, int, TextLineList *, int, int); extern void completeHTMLstream(struct html_feed_environ *,