[w3m-dev 02984] inline image improvements and cleanups
* config.h.dist (HAVE_SYMLINK) added * config.h.dist (HAVE_LSTAT): added * configure: symlink() check * configure: lstat() check * fm.h (maxLoadImage): added * form.c (form_write_from_file): s/HAVE_READLINK/HAVE_LSTAT/ * image.c: include <sys/stat.h> * image.c (MAX_LOAD_IMAGE): default 8 * image.c (max_load_image): deleted * image.c (n_load_image): added * image.c (showImageProgress): added * image.c (loadImage): check load image count s/HAVE_READLINK/HAVE_LSTAT/ (HAVE_SYMLINK) showImageProgress * local.c: include <sys/stat.h> s/HAVE_READLINK/HAVE_LSTAT/ * rc.c (CMT_MAX_LOAD_IMAGE): added * rc.c (max_load_image): added * doc/README.img: update * doc-jp/README.img: update * file.c (process_img): pre_int fix From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
@@ -1,3 +1,29 @@
|
|||||||
|
2002-02-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 02984] inline image improvements and cleanups
|
||||||
|
* config.h.dist (HAVE_SYMLINK) added
|
||||||
|
* config.h.dist (HAVE_LSTAT): added
|
||||||
|
* configure: symlink() check
|
||||||
|
* configure: lstat() check
|
||||||
|
* fm.h (maxLoadImage): added
|
||||||
|
* form.c (form_write_from_file): s/HAVE_READLINK/HAVE_LSTAT/
|
||||||
|
* image.c: include <sys/stat.h>
|
||||||
|
* image.c (MAX_LOAD_IMAGE): default 8
|
||||||
|
* image.c (max_load_image): deleted
|
||||||
|
* image.c (n_load_image): added
|
||||||
|
* image.c (showImageProgress): added
|
||||||
|
* image.c (loadImage): check load image count
|
||||||
|
s/HAVE_READLINK/HAVE_LSTAT/ (HAVE_SYMLINK)
|
||||||
|
showImageProgress
|
||||||
|
* local.c: include <sys/stat.h>
|
||||||
|
s/HAVE_READLINK/HAVE_LSTAT/
|
||||||
|
* rc.c (CMT_MAX_LOAD_IMAGE): added
|
||||||
|
* rc.c (max_load_image): added
|
||||||
|
* doc/README.img: update
|
||||||
|
* doc-jp/README.img: update
|
||||||
|
|
||||||
|
* file.c (process_img): pre_int fix
|
||||||
|
|
||||||
2002-02-04 Fumitoshi UKAI <ukai@debian.or.jp>
|
2002-02-04 Fumitoshi UKAI <ukai@debian.or.jp>
|
||||||
|
|
||||||
* [w3m-dev 02985] inputAnswer() and no "ssl_forbid_method"
|
* [w3m-dev 02985] inputAnswer() and no "ssl_forbid_method"
|
||||||
@@ -2762,4 +2788,4 @@
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.297 2002/02/04 14:49:21 ukai Exp $
|
$Id: ChangeLog,v 1.298 2002/02/04 15:18:41 ukai Exp $
|
||||||
|
|||||||
@@ -175,7 +175,9 @@ MODEL=Linux.i686-monster-ja
|
|||||||
#define HAVE_STRFTIME
|
#define HAVE_STRFTIME
|
||||||
#define HAVE_GETCWD
|
#define HAVE_GETCWD
|
||||||
#define HAVE_GETWD
|
#define HAVE_GETWD
|
||||||
|
#define HAVE_SYMLINK
|
||||||
#define HAVE_READLINK
|
#define HAVE_READLINK
|
||||||
|
#define HAVE_LSTAT
|
||||||
#define HAVE_SETENV
|
#define HAVE_SETENV
|
||||||
#define HAVE_PUTENV
|
#define HAVE_PUTENV
|
||||||
#define HAVE_SRAND48
|
#define HAVE_SRAND48
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# $Id: configure,v 1.60 2002/02/03 06:23:37 ukai Exp $
|
# $Id: configure,v 1.61 2002/02/04 15:18:41 ukai Exp $
|
||||||
# Configuration.
|
# Configuration.
|
||||||
#
|
#
|
||||||
|
|
||||||
@@ -1421,6 +1421,23 @@ else
|
|||||||
def_have_getwd="#undef HAVE_GETWD"
|
def_have_getwd="#undef HAVE_GETWD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
####### symlink
|
||||||
|
cat > _zmachdep.c << EOF
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
char path[64],lpath[64];
|
||||||
|
symlink(path,lpath);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo "You have symlink()."
|
||||||
|
def_have_symlink="#define HAVE_SYMLINK"
|
||||||
|
else
|
||||||
|
echo "You don't have symlink()."
|
||||||
|
def_have_symlink="#undef HAVE_SYMLINK"
|
||||||
|
fi
|
||||||
|
|
||||||
####### readlink
|
####### readlink
|
||||||
cat > _zmachdep.c << EOF
|
cat > _zmachdep.c << EOF
|
||||||
main()
|
main()
|
||||||
@@ -1438,6 +1455,26 @@ else
|
|||||||
def_have_readlink="#undef HAVE_READLINK"
|
def_have_readlink="#undef HAVE_READLINK"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
####### lstat
|
||||||
|
cat > _zmachdep.c << EOF
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
char path[64];
|
||||||
|
lstat(path,&st);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
if $cc $cflags -o _zmachdep _zmachdep.c > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo "You have lstat()."
|
||||||
|
def_have_lstat="#define HAVE_LSTAT"
|
||||||
|
else
|
||||||
|
echo "You don't have lstat()."
|
||||||
|
def_have_lstat="#undef HAVE_LSTAT"
|
||||||
|
fi
|
||||||
|
|
||||||
####### setenv
|
####### setenv
|
||||||
cat > _zmachdep.c << EOF
|
cat > _zmachdep.c << EOF
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -2136,7 +2173,9 @@ $def_have_wait3
|
|||||||
$def_have_strftime
|
$def_have_strftime
|
||||||
$def_have_getcwd
|
$def_have_getcwd
|
||||||
$def_have_getwd
|
$def_have_getwd
|
||||||
|
$def_have_symlink
|
||||||
$def_have_readlink
|
$def_have_readlink
|
||||||
|
$def_have_lstat
|
||||||
$def_have_setenv
|
$def_have_setenv
|
||||||
$def_have_putenv
|
$def_have_putenv
|
||||||
$def_have_srand48
|
$def_have_srand48
|
||||||
|
|||||||
+11
-22
@@ -1,15 +1,11 @@
|
|||||||
|
|
||||||
w3m でインライン画像を表示
|
w3m でインライン画像を表示
|
||||||
2002/01/31
|
2002/02/04
|
||||||
坂本 浩則
|
坂本 浩則
|
||||||
|
|
||||||
はじめに
|
はじめに
|
||||||
|
|
||||||
w3m でインライン画像を表示する拡張です。以下に置いてあります。
|
w3m でインライン画像を表示する拡張です。
|
||||||
|
|
||||||
http://www2u.biglobe.ne.jp/~hsaka/w3m/index-ja.html#img
|
|
||||||
patch/w3m-0.2.4-img-2.2.patch.gz
|
|
||||||
patch/README.img-ja
|
|
||||||
|
|
||||||
機能
|
機能
|
||||||
|
|
||||||
@@ -64,6 +60,8 @@ w3m
|
|||||||
auto_image
|
auto_image
|
||||||
インライン画像を自動で読み込みます。デフォルトは ON。
|
インライン画像を自動で読み込みます。デフォルトは ON。
|
||||||
OFF の場合は、コマンド DISPLAY_IMAGE で読み込みを開始します。
|
OFF の場合は、コマンド DISPLAY_IMAGE で読み込みを開始します。
|
||||||
|
max_load_image
|
||||||
|
画像を読み込む時の最大プロセス数。デフォルトは 4。1~8 まで設定可能。
|
||||||
ext_image_viewer
|
ext_image_viewer
|
||||||
コマンド VIEW_IMAGE('I')の場合や Content-type: image/* である
|
コマンド VIEW_IMAGE('I')の場合や Content-type: image/* である
|
||||||
画像ファイルを外部ビューワで表示します。デフォルトは ON。
|
画像ファイルを外部ビューワで表示します。デフォルトは ON。
|
||||||
@@ -79,28 +77,13 @@ w3m
|
|||||||
|
|
||||||
必要なもの
|
必要なもの
|
||||||
|
|
||||||
* w3m-0.2.4.tar.gz
|
* w3m-0.2.5+cvs-1.287 以上
|
||||||
http://w3m.sourceforge.net/
|
http://w3m.sourceforge.net/
|
||||||
http://sourceforge.net/projects/w3m/
|
http://sourceforge.net/projects/w3m/
|
||||||
http://prdownloads.sourceforge.net/w3m/
|
http://prdownloads.sourceforge.net/w3m/
|
||||||
* Imlib-1.9.8 (1.9.10 以上推奨)
|
* Imlib-1.9.8 (1.9.10 以上推奨)
|
||||||
libungif-4.1.0b1 推奨
|
libungif-4.1.0b1 推奨
|
||||||
|
|
||||||
インストール
|
|
||||||
|
|
||||||
gunzip -c DIST/w3m-0.2.4.tar.gz | tar -xvf -
|
|
||||||
cd w3m-0.2.4
|
|
||||||
gunzip -c DIST/w3m-0.2.4-img-2.2.patch.gz | patch -p1
|
|
||||||
configure
|
|
||||||
# Inline image support (you need Imlib library)
|
|
||||||
# と聞かれますので y と答えてください。
|
|
||||||
# menu は有効にしてください。
|
|
||||||
make
|
|
||||||
# w3mimgdisplay, w3mimgsize を make する時に Imlib が必要です。
|
|
||||||
make install
|
|
||||||
# w3mimgdisplay, w3mimgsize は必ず $LIB(PREFIX/lib/w3m) へ
|
|
||||||
# install してください。
|
|
||||||
|
|
||||||
w3mimgdisplay の設定
|
w3mimgdisplay の設定
|
||||||
|
|
||||||
w3mimgdisplay は以下のオプションを受け付けますので端末に合わせて
|
w3mimgdisplay は以下のオプションを受け付けますので端末に合わせて
|
||||||
@@ -123,6 +106,12 @@ w3mimgdisplay
|
|||||||
|
|
||||||
更新記録
|
更新記録
|
||||||
|
|
||||||
|
2002/02/04
|
||||||
|
* ドキュメント改訂
|
||||||
|
|
||||||
|
2002/02/01 w3m-0.2.5+cvs-1.287
|
||||||
|
* 本家の CVS へマージ。
|
||||||
|
|
||||||
2002/01/31 w3m-0.2.4-img-2.2
|
2002/01/31 w3m-0.2.4-img-2.2
|
||||||
* w3m-0.2.4+cvs-1.278 ベース。
|
* w3m-0.2.4+cvs-1.278 ベース。
|
||||||
|
|
||||||
|
|||||||
+11
-21
@@ -1,16 +1,11 @@
|
|||||||
|
|
||||||
Inline image support of w3m
|
Inline image support of w3m
|
||||||
2002/01/31
|
2002/02/04
|
||||||
H. Sakamoto
|
H. Sakamoto
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
|
|
||||||
This is the extension for w3m to support inline image.
|
This is the extension for w3m to support inline image.
|
||||||
The patch for w3m-0.2.4 is available on the following site.
|
|
||||||
|
|
||||||
http://www2u.biglobe.ne.jp/~hsaka/w3m/index.html#img
|
|
||||||
patch/w3m-0.2.4-2.2.patch.gz
|
|
||||||
patch/README.img
|
|
||||||
|
|
||||||
Support
|
Support
|
||||||
|
|
||||||
@@ -65,6 +60,9 @@ Option panel
|
|||||||
auto_image
|
auto_image
|
||||||
Automatic loading of inline image. The default is ON.
|
Automatic loading of inline image. The default is ON.
|
||||||
If it is OFF, loading starts with a command DISPLAY_IMAGE.
|
If it is OFF, loading starts with a command DISPLAY_IMAGE.
|
||||||
|
max_load_image
|
||||||
|
Maximum process for downloading of inline image. The default is 4.
|
||||||
|
1 to 8 can be set.
|
||||||
ext_image_viewer
|
ext_image_viewer
|
||||||
Use external image viewer, when a command VIEW_IMAGE or
|
Use external image viewer, when a command VIEW_IMAGE or
|
||||||
view of image file which header is "Content-type: image/*".
|
view of image file which header is "Content-type: image/*".
|
||||||
@@ -79,27 +77,13 @@ Option panel
|
|||||||
|
|
||||||
Required programs
|
Required programs
|
||||||
|
|
||||||
* w3m-0.2.4
|
* w3m-0.2.5+cvs-1.287 or later
|
||||||
http://w3m.sourceforge.net/
|
http://w3m.sourceforge.net/
|
||||||
http://sourceforge.net/projects/w3m/
|
http://sourceforge.net/projects/w3m/
|
||||||
http://prdownloads.sourceforge.net/w3m/
|
http://prdownloads.sourceforge.net/w3m/
|
||||||
* Imlib-1.9.8 (1.9.10 is recommendable.)
|
* Imlib-1.9.8 (1.9.10 is recommendable.)
|
||||||
libungif-4.1.0b1 is recommendable.
|
libungif-4.1.0b1 is recommendable.
|
||||||
|
|
||||||
Install
|
|
||||||
|
|
||||||
gunzip -c DIST/w3m-0.2.4.tar.gz | tar -xvf -
|
|
||||||
cd w3m-0.2.4
|
|
||||||
gunzip -c DIST/w3m-0.2.4-img-2.2.patch.gz | patch -p1
|
|
||||||
configure
|
|
||||||
# When you are asked "Inline image support (you need Imlib library)",
|
|
||||||
# answer "y".
|
|
||||||
# Select menu.
|
|
||||||
make
|
|
||||||
# To make "w3mimgdisplay" and "w3mimgsize", Imlib is required.
|
|
||||||
make install
|
|
||||||
# Must install "w3mimgdisplay" and "w3mimgsize" to $LIB(PREFIX/lib/w3m).
|
|
||||||
|
|
||||||
Setting w3mimgdisplay
|
Setting w3mimgdisplay
|
||||||
|
|
||||||
"w3mimgdisplay" has the following options. Set options to fit terminal.
|
"w3mimgdisplay" has the following options. Set options to fit terminal.
|
||||||
@@ -120,6 +104,12 @@ Setting w3mimgdisplay
|
|||||||
|
|
||||||
Change log
|
Change log
|
||||||
|
|
||||||
|
2002/02/04
|
||||||
|
* Revised this document.
|
||||||
|
|
||||||
|
2002/02/01 w3m-0.2.5+cvs-1.287
|
||||||
|
* Merged in the CVS repository of the original w3m.
|
||||||
|
|
||||||
2002/01/31 w3m-0.2.4-img-2.2
|
2002/01/31 w3m-0.2.4-img-2.2
|
||||||
* Based on w3m-0.2.4+cvs-1.278.
|
* Based on w3m-0.2.4+cvs-1.278.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: file.c,v 1.61 2002/02/04 14:49:21 ukai Exp $ */
|
/* $Id: file.c,v 1.62 2002/02/04 15:18:42 ukai Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "myctype.h"
|
#include "myctype.h"
|
||||||
@@ -2761,6 +2761,7 @@ process_img(struct parsed_tag *tag, int width)
|
|||||||
#else
|
#else
|
||||||
int w, i, nw, n;
|
int w, i, nw, n;
|
||||||
#endif
|
#endif
|
||||||
|
int pre_int = FALSE;
|
||||||
Str tmp = Strnew();
|
Str tmp = Strnew();
|
||||||
|
|
||||||
if (!parsedtag_get_value(tag, ATTR_SRC, &p))
|
if (!parsedtag_get_value(tag, ATTR_SRC, &p))
|
||||||
@@ -2872,6 +2873,7 @@ process_img(struct parsed_tag *tag, int width)
|
|||||||
ni = (i > 3) ? (int)((i - 3) / pixel_per_line + 1) : 1;
|
ni = (i > 3) ? (int)((i - 3) / pixel_per_line + 1) : 1;
|
||||||
Strcat(tmp,
|
Strcat(tmp,
|
||||||
Sprintf("<pre_int><img_alt hseq=\"%d\" src=\"", cur_iseq++));
|
Sprintf("<pre_int><img_alt hseq=\"%d\" src=\"", cur_iseq++));
|
||||||
|
pre_int = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@@ -2879,8 +2881,10 @@ process_img(struct parsed_tag *tag, int width)
|
|||||||
if (w < 0)
|
if (w < 0)
|
||||||
w = 12 * pixel_per_char;
|
w = 12 * pixel_per_char;
|
||||||
nw = w ? (int)((w - 1) / pixel_per_char + 1) : 1;
|
nw = w ? (int)((w - 1) / pixel_per_char + 1) : 1;
|
||||||
if (r)
|
if (r) {
|
||||||
Strcat_charp(tmp, "<pre_int>");
|
Strcat_charp(tmp, "<pre_int>");
|
||||||
|
pre_int = TRUE;
|
||||||
|
}
|
||||||
Strcat_charp(tmp, "<img_alt src=\"");
|
Strcat_charp(tmp, "<img_alt src=\"");
|
||||||
}
|
}
|
||||||
Strcat_charp(tmp, html_quote(p));
|
Strcat_charp(tmp, html_quote(p));
|
||||||
@@ -2982,6 +2986,10 @@ process_img(struct parsed_tag *tag, int width)
|
|||||||
}
|
}
|
||||||
if (w > 200 && i < 13) {
|
if (w > 200 && i < 13) {
|
||||||
/* must be a horizontal line */
|
/* must be a horizontal line */
|
||||||
|
if (!pre_int) {
|
||||||
|
Strcat_charp(tmp, "<pre_int>");
|
||||||
|
pre_int = TRUE;
|
||||||
|
}
|
||||||
#ifndef KANJI_SYMBOLS
|
#ifndef KANJI_SYMBOLS
|
||||||
Strcat_charp(tmp, "<_RULE TYPE=10>");
|
Strcat_charp(tmp, "<_RULE TYPE=10>");
|
||||||
#endif /* not KANJI_SYMBOLS */
|
#endif /* not KANJI_SYMBOLS */
|
||||||
@@ -3021,13 +3029,7 @@ process_img(struct parsed_tag *tag, int width)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
Strcat_charp(tmp, "</img_alt>");
|
Strcat_charp(tmp, "</img_alt>");
|
||||||
#ifdef USE_IMAGE
|
if (pre_int)
|
||||||
if (use_image) {
|
|
||||||
Strcat_charp(tmp, "</pre_int>");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
if (r)
|
|
||||||
Strcat_charp(tmp, "</pre_int>");
|
Strcat_charp(tmp, "</pre_int>");
|
||||||
if (r) {
|
if (r) {
|
||||||
Strcat_charp(tmp, "</input_alt>");
|
Strcat_charp(tmp, "</input_alt>");
|
||||||
@@ -5728,17 +5730,21 @@ print_internal_information(struct html_feed_environ *henv)
|
|||||||
s = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"",
|
s = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"",
|
||||||
i, fp->action->ptr,
|
i, fp->action->ptr,
|
||||||
(fp->method == FORM_METHOD_POST) ? "post"
|
(fp->method == FORM_METHOD_POST) ? "post"
|
||||||
: ((fp->method == FORM_METHOD_INTERNAL) ? "internal" : "get"));
|
: ((fp->method ==
|
||||||
|
FORM_METHOD_INTERNAL) ? "internal" : "get"));
|
||||||
if (fp->target)
|
if (fp->target)
|
||||||
Strcat(s, Sprintf(" target=\"%s\"", fp->target));
|
Strcat(s, Sprintf(" target=\"%s\"", fp->target));
|
||||||
#ifdef JP_CHARSET
|
#ifdef JP_CHARSET
|
||||||
if (fp->charset)
|
if (fp->charset)
|
||||||
Strcat(s, Sprintf(" accept-charset=\"%s\"", code_to_str(fp->charset)));
|
Strcat(s,
|
||||||
|
Sprintf(" accept-charset=\"%s\"",
|
||||||
|
code_to_str(fp->charset)));
|
||||||
#endif
|
#endif
|
||||||
if (fp->enctype == FORM_ENCTYPE_MULTIPART)
|
if (fp->enctype == FORM_ENCTYPE_MULTIPART)
|
||||||
Strcat_charp(s, " enctype=multipart/form-data");
|
Strcat_charp(s, " enctype=multipart/form-data");
|
||||||
if (fp->boundary)
|
if (fp->boundary)
|
||||||
Strcat_m_charp(s, " boundary=\"", html_quote(fp->boundary), "\"", NULL);
|
Strcat_m_charp(s, " boundary=\"", html_quote(fp->boundary),
|
||||||
|
"\"", NULL);
|
||||||
Strcat_charp(s, ">");
|
Strcat_charp(s, ">");
|
||||||
pushTextLine(tl, newTextLine(s, 0));
|
pushTextLine(tl, newTextLine(s, 0));
|
||||||
}
|
}
|
||||||
@@ -5751,14 +5757,14 @@ print_internal_information(struct html_feed_environ *henv)
|
|||||||
s = Sprintf("<option_int selectnumber=%d"
|
s = Sprintf("<option_int selectnumber=%d"
|
||||||
" value=\"%s\"%s>%s</option_int>",
|
" value=\"%s\"%s>%s</option_int>",
|
||||||
i,
|
i,
|
||||||
html_quote(ip->value ? ip->value->ptr : ip->label->ptr),
|
html_quote(ip->value ? ip->value->ptr : ip->label->
|
||||||
ip->checked ? " selected" : "",
|
ptr), ip->checked ? " selected" : "",
|
||||||
ip->label->ptr);
|
ip->label->ptr);
|
||||||
pushTextLine(tl, newTextLine(s, 0));
|
pushTextLine(tl, newTextLine(s, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* MENU_SELECT */
|
#endif /* MENU_SELECT */
|
||||||
if (n_textarea > 0) {
|
if (n_textarea > 0) {
|
||||||
for (i = 0; i < n_textarea; i++) {
|
for (i = 0; i < n_textarea; i++) {
|
||||||
s = Sprintf("<textarea_int textareanumber=%d>%s</textarea_int>",
|
s = Sprintf("<textarea_int textareanumber=%d>%s</textarea_int>",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: fm.h,v 1.48 2002/02/03 06:38:49 ukai Exp $ */
|
/* $Id: fm.h,v 1.49 2002/02/04 15:18:42 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* w3m: WWW wo Miru utility
|
* w3m: WWW wo Miru utility
|
||||||
*
|
*
|
||||||
@@ -824,6 +824,7 @@ global int activeImage init(FALSE);
|
|||||||
global int displayImage init(TRUE);
|
global int displayImage init(TRUE);
|
||||||
global int autoImage init(TRUE);
|
global int autoImage init(TRUE);
|
||||||
global int useExtImageViewer init(TRUE);
|
global int useExtImageViewer init(TRUE);
|
||||||
|
global int maxLoadImage init(4);
|
||||||
#endif
|
#endif
|
||||||
global char *Editor init(DEF_EDITOR);
|
global char *Editor init(DEF_EDITOR);
|
||||||
#ifndef USE_W3MMAILER
|
#ifndef USE_W3MMAILER
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: form.c,v 1.11 2001/12/27 18:22:59 ukai Exp $ */
|
/* $Id: form.c,v 1.12 2002/02/04 15:18:42 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* HTML forms
|
* HTML forms
|
||||||
*/
|
*/
|
||||||
@@ -635,10 +635,10 @@ form_write_from_file(FILE * f, char *boundary, char *name, char *filename,
|
|||||||
fprintf(f, "Content-Type: %s\r\n\r\n",
|
fprintf(f, "Content-Type: %s\r\n\r\n",
|
||||||
type ? type : "application/octet-stream");
|
type ? type : "application/octet-stream");
|
||||||
|
|
||||||
#ifdef HAVE_READLINK /* readline == lstat ? (ukai) */
|
#ifdef HAVE_LSTAT
|
||||||
if (lstat(file, &st) < 0)
|
if (lstat(file, &st) < 0)
|
||||||
goto write_end;
|
goto write_end;
|
||||||
#endif /* HAVE_READLINK */
|
#endif /* HAVE_LSTAT */
|
||||||
if (S_ISDIR(st.st_mode))
|
if (S_ISDIR(st.st_mode))
|
||||||
goto write_end;
|
goto write_end;
|
||||||
fd = fopen(file, "r");
|
fd = fopen(file, "r");
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
/* $Id: image.c,v 1.3 2002/02/03 06:38:49 ukai Exp $ */
|
/* $Id: image.c,v 1.4 2002/02/04 15:18:42 ukai Exp $ */
|
||||||
|
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@@ -264,9 +265,9 @@ clearImage()
|
|||||||
/* load image */
|
/* load image */
|
||||||
|
|
||||||
#ifndef MAX_LOAD_IMAGE
|
#ifndef MAX_LOAD_IMAGE
|
||||||
#define MAX_LOAD_IMAGE 4
|
#define MAX_LOAD_IMAGE 8
|
||||||
#endif
|
#endif
|
||||||
static int max_load_image = MAX_LOAD_IMAGE;
|
static int n_load_image = 0;
|
||||||
static Hash_sv *image_hash = NULL;
|
static Hash_sv *image_hash = NULL;
|
||||||
static Hash_sv *image_file = NULL;
|
static Hash_sv *image_file = NULL;
|
||||||
static GeneralList *image_list = NULL;
|
static GeneralList *image_list = NULL;
|
||||||
@@ -332,6 +333,32 @@ getAllImage(Buffer *buf)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
showImageProgress(Buffer *buf)
|
||||||
|
{
|
||||||
|
AnchorList *al;
|
||||||
|
Anchor *a;
|
||||||
|
int i, l, n;
|
||||||
|
|
||||||
|
if (!buf)
|
||||||
|
return;
|
||||||
|
al = buf->img;
|
||||||
|
if (!al)
|
||||||
|
return;
|
||||||
|
for (i = 0, l = 0, n = 0, a = al->anchors; i < al->nanchor; i++, a++) {
|
||||||
|
if (a->image && a->hseq >= 0) {
|
||||||
|
n++;
|
||||||
|
if (a->image->cache && a->image->cache->loaded == IMG_FLAG_LOADED)
|
||||||
|
l++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (n) {
|
||||||
|
message(Sprintf("%d/%d images loaded", l, n)->ptr,
|
||||||
|
buf->cursorX + buf->rootX, buf->cursorY);
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
loadImage(int flag)
|
loadImage(int flag)
|
||||||
{
|
{
|
||||||
@@ -339,12 +366,19 @@ loadImage(int flag)
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
int wait_st, i;
|
int wait_st, i;
|
||||||
|
|
||||||
|
if (maxLoadImage > MAX_LOAD_IMAGE)
|
||||||
|
maxLoadImage = MAX_LOAD_IMAGE;
|
||||||
|
else if (maxLoadImage < 1)
|
||||||
|
maxLoadImage = 1;
|
||||||
|
if (n_load_image == 0)
|
||||||
|
n_load_image = maxLoadImage;
|
||||||
if (!image_cache) {
|
if (!image_cache) {
|
||||||
image_cache = New_N(ImageCache *, max_load_image);
|
image_cache = New_N(ImageCache *, MAX_LOAD_IMAGE);
|
||||||
bzero(image_cache, sizeof(ImageCache *) * max_load_image);
|
bzero(image_cache, sizeof(ImageCache *) * MAX_LOAD_IMAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag == IMG_FLAG_STOP) {
|
if (flag == IMG_FLAG_STOP) {
|
||||||
for (i = 0; i < max_load_image; i++) {
|
for (i = 0; i < n_load_image; i++) {
|
||||||
cache = image_cache[i];
|
cache = image_cache[i];
|
||||||
if (!cache)
|
if (!cache)
|
||||||
continue;
|
continue;
|
||||||
@@ -365,16 +399,17 @@ loadImage(int flag)
|
|||||||
if (image_lock)
|
if (image_lock)
|
||||||
unlink(image_lock);
|
unlink(image_lock);
|
||||||
need_load_image = FALSE;
|
need_load_image = FALSE;
|
||||||
|
n_load_image = maxLoadImage;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (need_load_image) {
|
if (need_load_image) {
|
||||||
int draw = FALSE;
|
int draw = FALSE;
|
||||||
for (i = 0; i < max_load_image; i++) {
|
for (i = 0; i < n_load_image; i++) {
|
||||||
cache = image_cache[i];
|
cache = image_cache[i];
|
||||||
if (!cache)
|
if (!cache)
|
||||||
continue;
|
continue;
|
||||||
#ifdef HAVE_READLINK
|
#ifdef HAVE_LSTAT
|
||||||
if (lstat(cache->touch, &st))
|
if (lstat(cache->touch, &st))
|
||||||
#else
|
#else
|
||||||
if (stat(cache->touch, &st))
|
if (stat(cache->touch, &st))
|
||||||
@@ -404,6 +439,8 @@ loadImage(int flag)
|
|||||||
}
|
}
|
||||||
if (flag == IMG_FLAG_NEXT && draw)
|
if (flag == IMG_FLAG_NEXT && draw)
|
||||||
drawImage();
|
drawImage();
|
||||||
|
if (Currentbuf)
|
||||||
|
showImageProgress(Currentbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (image_lock)
|
if (image_lock)
|
||||||
@@ -413,19 +450,19 @@ loadImage(int flag)
|
|||||||
|
|
||||||
if (!image_list)
|
if (!image_list)
|
||||||
return;
|
return;
|
||||||
for (i = 0; i < max_load_image; i++) {
|
for (i = 0; i < n_load_image; i++) {
|
||||||
if (image_cache[i])
|
if (image_cache[i])
|
||||||
continue;
|
continue;
|
||||||
while (1) {
|
while (1) {
|
||||||
cache = (ImageCache *) popValue(image_list);
|
cache = (ImageCache *) popValue(image_list);
|
||||||
if (!cache) {
|
if (!cache) {
|
||||||
for (i = 0; i < max_load_image; i++) {
|
for (i = 0; i < n_load_image; i++) {
|
||||||
if (image_cache[i])
|
if (image_cache[i])
|
||||||
goto load_image_end;
|
goto load_image_end;
|
||||||
}
|
}
|
||||||
image_list = NULL;
|
image_list = NULL;
|
||||||
image_file = NULL;
|
image_file = NULL;
|
||||||
if (Currentbuf && Currentbuf->need_reshape)
|
if (Currentbuf)
|
||||||
displayBuffer(Currentbuf, B_NORMAL);
|
displayBuffer(Currentbuf, B_NORMAL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -442,7 +479,7 @@ loadImage(int flag)
|
|||||||
flush_tty();
|
flush_tty();
|
||||||
if ((cache->pid = fork()) == 0) {
|
if ((cache->pid = fork()) == 0) {
|
||||||
Buffer *b;
|
Buffer *b;
|
||||||
#ifndef HAVE_READLINK
|
#if !(defined(HAVE_SYMLINK) && defined(HAVE_LSTAT))
|
||||||
FILE *f;
|
FILE *f;
|
||||||
#endif
|
#endif
|
||||||
reset_signals();
|
reset_signals();
|
||||||
@@ -454,7 +491,7 @@ loadImage(int flag)
|
|||||||
b = loadGeneralFile(cache->url, cache->current, NULL, 0, NULL);
|
b = loadGeneralFile(cache->url, cache->current, NULL, 0, NULL);
|
||||||
if (!b || !b->real_type || strncasecmp(b->real_type, "image/", 6))
|
if (!b || !b->real_type || strncasecmp(b->real_type, "image/", 6))
|
||||||
unlink(cache->file);
|
unlink(cache->file);
|
||||||
#ifdef HAVE_READLINK
|
#if defined(HAVE_SYMLINK) && defined(HAVE_LSTAT)
|
||||||
symlink(cache->file, cache->touch);
|
symlink(cache->file, cache->touch);
|
||||||
if (lstat(image_lock, &st)) {
|
if (lstat(image_lock, &st)) {
|
||||||
symlink(cache->file, image_lock);
|
symlink(cache->file, image_lock);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
/* $Id: local.c,v 1.13 2001/12/03 18:29:37 ukai Exp $ */
|
/* $Id: local.c,v 1.14 2002/02/04 15:18:42 ukai Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#ifdef HAVE_READLINK
|
#ifdef HAVE_READLINK
|
||||||
@@ -43,10 +44,12 @@ dirBuffer(char *dname)
|
|||||||
char **flist;
|
char **flist;
|
||||||
char *p, *qdir;
|
char *p, *qdir;
|
||||||
Str fbuf = Strnew();
|
Str fbuf = Strnew();
|
||||||
#ifdef HAVE_READLINK
|
#ifdef HAVE_LSTAT
|
||||||
struct stat lst;
|
struct stat lst;
|
||||||
|
#ifdef HAVE_READLINK
|
||||||
char lbuf[1024];
|
char lbuf[1024];
|
||||||
#endif /* HAVE_READLINK */
|
#endif /* HAVE_READLINK */
|
||||||
|
#endif /* HAVE_LSTAT */
|
||||||
int i, l, nrow = 0, n = 0, maxlen = 0;
|
int i, l, nrow = 0, n = 0, maxlen = 0;
|
||||||
int nfile, nfile_max = 100;
|
int nfile, nfile_max = 100;
|
||||||
Str dirname;
|
Str dirname;
|
||||||
@@ -94,10 +97,10 @@ dirBuffer(char *dname)
|
|||||||
if (Strlastchar(fbuf) != '/')
|
if (Strlastchar(fbuf) != '/')
|
||||||
Strcat_char(fbuf, '/');
|
Strcat_char(fbuf, '/');
|
||||||
Strcat_charp(fbuf, p);
|
Strcat_charp(fbuf, p);
|
||||||
#ifdef HAVE_READLINK /* readlink == lstat() ? (ukai) */
|
#ifdef HAVE_LSTAT
|
||||||
if (lstat(fbuf->ptr, &lst) < 0)
|
if (lstat(fbuf->ptr, &lst) < 0)
|
||||||
continue;
|
continue;
|
||||||
#endif /* READLINK */
|
#endif /* HAVE_LSTAT */
|
||||||
if (stat(fbuf->ptr, &st) < 0)
|
if (stat(fbuf->ptr, &st) < 0)
|
||||||
continue;
|
continue;
|
||||||
if (multicolList) {
|
if (multicolList) {
|
||||||
@@ -107,10 +110,10 @@ dirBuffer(char *dname)
|
|||||||
else {
|
else {
|
||||||
if (S_ISDIR(st.st_mode))
|
if (S_ISDIR(st.st_mode))
|
||||||
Strcat_charp(tmp, "[DIR] ");
|
Strcat_charp(tmp, "[DIR] ");
|
||||||
#ifdef HAVE_READLINK
|
#ifdef HAVE_LSTAT
|
||||||
else if (S_ISLNK(lst.st_mode))
|
else if (S_ISLNK(lst.st_mode))
|
||||||
Strcat_charp(tmp, "[LINK] ");
|
Strcat_charp(tmp, "[LINK] ");
|
||||||
#endif /* HAVE_READLINE */
|
#endif /* HAVE_LSTAT */
|
||||||
else
|
else
|
||||||
Strcat_charp(tmp, "[FILE] ");
|
Strcat_charp(tmp, "[FILE] ");
|
||||||
}
|
}
|
||||||
@@ -131,7 +134,7 @@ dirBuffer(char *dname)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef HAVE_READLINK
|
#if defined(HAVE_LSTAT) && defined(HAVE_READLINK)
|
||||||
if (S_ISLNK(lst.st_mode)) {
|
if (S_ISLNK(lst.st_mode)) {
|
||||||
if ((l = readlink(fbuf->ptr, lbuf, sizeof(lbuf))) > 0) {
|
if ((l = readlink(fbuf->ptr, lbuf, sizeof(lbuf))) > 0) {
|
||||||
lbuf[l] = '\0';
|
lbuf[l] = '\0';
|
||||||
@@ -141,7 +144,7 @@ dirBuffer(char *dname)
|
|||||||
Strcat_char(tmp, '/');
|
Strcat_char(tmp, '/');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* HAVE_READLINK */
|
#endif /* HAVE_LSTAT && HAVE_READLINK */
|
||||||
Strcat_charp(tmp, "<br>\n");
|
Strcat_charp(tmp, "<br>\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: rc.c,v 1.38 2002/01/31 17:54:56 ukai Exp $ */
|
/* $Id: rc.c,v 1.39 2002/02/04 15:18:42 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* Initialization file etc.
|
* Initialization file etc.
|
||||||
*/
|
*/
|
||||||
@@ -70,6 +70,7 @@ static char *config_file = NULL;
|
|||||||
#ifdef USE_IMAGE
|
#ifdef USE_IMAGE
|
||||||
#define CMT_DISP_IMAGE "インライン画像を表示"
|
#define CMT_DISP_IMAGE "インライン画像を表示"
|
||||||
#define CMT_AUTO_IMAGE "インライン画像を自動で読み込む"
|
#define CMT_AUTO_IMAGE "インライン画像を自動で読み込む"
|
||||||
|
#define CMT_MAX_LOAD_IMAGE "画像読み込み時の最大プロセス数"
|
||||||
#define CMT_EXT_IMAGE_VIEWER "画像を外部ビューワで表示"
|
#define CMT_EXT_IMAGE_VIEWER "画像を外部ビューワで表示"
|
||||||
#define CMT_IMAGE_SCALE "画像のスケール(%)"
|
#define CMT_IMAGE_SCALE "画像のスケール(%)"
|
||||||
#define CMT_IMGDISPLAY "画像を表示するためのコマンド"
|
#define CMT_IMGDISPLAY "画像を表示するためのコマンド"
|
||||||
@@ -203,6 +204,7 @@ static char *config_file = NULL;
|
|||||||
#ifdef USE_IMAGE
|
#ifdef USE_IMAGE
|
||||||
#define CMT_DISP_IMAGE "Display of inline image"
|
#define CMT_DISP_IMAGE "Display of inline image"
|
||||||
#define CMT_AUTO_IMAGE "Automatic loading of inline image"
|
#define CMT_AUTO_IMAGE "Automatic loading of inline image"
|
||||||
|
#define CMT_MAX_LOAD_IMAGE "Maximum process for parallel image loading"
|
||||||
#define CMT_EXT_IMAGE_VIEWER "Use external image viewer"
|
#define CMT_EXT_IMAGE_VIEWER "Use external image viewer"
|
||||||
#define CMT_IMAGE_SCALE "Scale of image (%)"
|
#define CMT_IMAGE_SCALE "Scale of image (%)"
|
||||||
#define CMT_IMGDISPLAY "External command to display image"
|
#define CMT_IMGDISPLAY "External command to display image"
|
||||||
@@ -465,6 +467,8 @@ struct param_ptr params1[] = {
|
|||||||
{"display_image", P_INT, PI_ONOFF, (void *)&displayImage, CMT_DISP_IMAGE,
|
{"display_image", P_INT, PI_ONOFF, (void *)&displayImage, CMT_DISP_IMAGE,
|
||||||
NULL},
|
NULL},
|
||||||
{"auto_image", P_INT, PI_ONOFF, (void *)&autoImage, CMT_AUTO_IMAGE, NULL},
|
{"auto_image", P_INT, PI_ONOFF, (void *)&autoImage, CMT_AUTO_IMAGE, NULL},
|
||||||
|
{"max_load_image", P_INT, PI_TEXT, (void *)&maxLoadImage,
|
||||||
|
CMT_MAX_LOAD_IMAGE, NULL},
|
||||||
{"ext_image_viewer", P_INT, PI_ONOFF, (void *)&useExtImageViewer,
|
{"ext_image_viewer", P_INT, PI_ONOFF, (void *)&useExtImageViewer,
|
||||||
CMT_EXT_IMAGE_VIEWER, NULL},
|
CMT_EXT_IMAGE_VIEWER, NULL},
|
||||||
{"image_scale", P_SCALE, PI_TEXT, (void *)&image_scale, CMT_IMAGE_SCALE,
|
{"image_scale", P_SCALE, PI_TEXT, (void *)&image_scale, CMT_IMAGE_SCALE,
|
||||||
|
|||||||
Reference in New Issue
Block a user