[w3m-dev-en 01067] decode content-encoding in all situations.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2006-05-29 Dai Sato <satodai@w3m.jp>
|
||||
|
||||
* [w3m-dev-en 01067] Some more patches
|
||||
* file.c, html.h, url.c: decode content-encoding in all situations.
|
||||
|
||||
2006-05-29 Dai Sato <satodai@w3m.jp>
|
||||
|
||||
* [w3m-dev-en 01067] Some more patches
|
||||
@@ -8723,4 +8728,4 @@ a * [w3m-dev 03276] compile error on EWS4800
|
||||
* release-0-2-1
|
||||
* import w3m-0.2.1
|
||||
|
||||
$Id: ChangeLog,v 1.963 2006/05/29 12:42:22 inu Exp $
|
||||
$Id: ChangeLog,v 1.964 2006/05/29 12:54:26 inu Exp $
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: file.c,v 1.242 2006/04/08 11:33:16 inu Exp $ */
|
||||
/* $Id: file.c,v 1.243 2006/05/29 12:54:26 inu Exp $ */
|
||||
#include "fm.h"
|
||||
#include <sys/types.h>
|
||||
#include "myctype.h"
|
||||
@@ -748,6 +748,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
|
||||
if (uf->compression != CMP_NOCOMPRESS)
|
||||
break;
|
||||
}
|
||||
uf->content_encoding = uf->compression;
|
||||
}
|
||||
#ifdef USE_COOKIE
|
||||
else if (use_cookie && accept_cookie &&
|
||||
@@ -2125,7 +2126,10 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
|
||||
return NO_BUFFER;
|
||||
}
|
||||
|
||||
if (f.compression != CMP_NOCOMPRESS) {
|
||||
if (f.content_encoding != CMP_NOCOMPRESS) {
|
||||
uncompress_stream(&f, &pu.real_file);
|
||||
}
|
||||
else if (f.compression != CMP_NOCOMPRESS) {
|
||||
if (!(w3m_dump & DUMP_SOURCE) &&
|
||||
(w3m_dump & ~DUMP_FRAME || is_text_type(t)
|
||||
|| searchExtViewer(t))) {
|
||||
@@ -7814,6 +7818,7 @@ doFileSave(URLFile uf, char *defstr)
|
||||
char *p, *q;
|
||||
pid_t pid;
|
||||
char *lock;
|
||||
char *tmpf = NULL;
|
||||
#if !(defined(HAVE_SYMLINK) && defined(HAVE_LSTAT))
|
||||
FILE *f;
|
||||
#endif
|
||||
@@ -7854,6 +7859,11 @@ doFileSave(URLFile uf, char *defstr)
|
||||
flush_tty();
|
||||
pid = fork();
|
||||
if (!pid) {
|
||||
if (uf.content_encoding != CMP_NOCOMPRESS) {
|
||||
uncompress_stream(&uf, &tmpf);
|
||||
if (tmpf)
|
||||
unlink(tmpf);
|
||||
}
|
||||
setup_child(FALSE, 0, UFfileno(&uf));
|
||||
if (!save2tmp(uf, p) && PreserveTimestamp && uf.modtime != -1)
|
||||
setModtime(p, uf.modtime);
|
||||
@@ -7886,6 +7896,11 @@ doFileSave(URLFile uf, char *defstr)
|
||||
printf("Can't save. Load file and %s are identical.", p);
|
||||
return -1;
|
||||
}
|
||||
if (uf.content_encoding != CMP_NOCOMPRESS) {
|
||||
uncompress_stream(&uf, &tmpf);
|
||||
if (tmpf)
|
||||
unlink(tmpf);
|
||||
}
|
||||
if (save2tmp(uf, p) < 0) {
|
||||
/* FIXME: gettextize? */
|
||||
printf("Can't save to %s\n", p);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: html.h,v 1.25 2003/10/20 16:41:56 ukai Exp $ */
|
||||
/* $Id: html.h,v 1.26 2006/05/29 12:54:26 inu Exp $ */
|
||||
#ifndef _HTML_H
|
||||
#define _HTML_H
|
||||
#ifdef USE_SSL
|
||||
@@ -69,6 +69,7 @@ typedef struct {
|
||||
InputStream stream;
|
||||
char *ext;
|
||||
int compression;
|
||||
int content_encoding;
|
||||
char *guess_type;
|
||||
#ifdef USE_SSL
|
||||
char *ssl_certificate;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: url.c,v 1.92 2006/04/07 13:21:12 inu Exp $ */
|
||||
/* $Id: url.c,v 1.93 2006/05/29 12:54:26 inu Exp $ */
|
||||
#include "fm.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
@@ -1453,7 +1453,8 @@ init_stream(URLFile *uf, int scheme, InputStream stream)
|
||||
uf->scheme = scheme;
|
||||
uf->encoding = ENC_7BIT;
|
||||
uf->is_cgi = FALSE;
|
||||
uf->compression = 0;
|
||||
uf->compression = CMP_NOCOMPRESS;
|
||||
uf->content_encoding = CMP_NOCOMPRESS;
|
||||
uf->guess_type = NULL;
|
||||
uf->ext = NULL;
|
||||
uf->modtime = -1;
|
||||
|
||||
Reference in New Issue
Block a user