[w3m-dev 03127] X-Face
* NEWS: X-Face support * configure (use_xface): added * config.h.dist (USE_XFACE): added (XFACE2XBM): added * file.c (xface2xbm): added (readHeader): X-Face: handling * scripts/Makefile (LIB_TARGETS): add xface2xbm * scripts/xface2xbm.in: added From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
14
ChangeLog
14
ChangeLog
@@ -1,3 +1,15 @@
|
||||
2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||
|
||||
* [w3m-dev 03127] X-Face
|
||||
* NEWS: X-Face support
|
||||
* configure (use_xface): added
|
||||
* config.h.dist (USE_XFACE): added
|
||||
(XFACE2XBM): added
|
||||
* file.c (xface2xbm): added
|
||||
(readHeader): X-Face: handling
|
||||
* scripts/Makefile (LIB_TARGETS): add xface2xbm
|
||||
* scripts/xface2xbm.in: added
|
||||
|
||||
2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||
|
||||
* [w3m-dev 03126] reshapeBuffer() and -m option
|
||||
@@ -3137,4 +3149,4 @@
|
||||
* release-0-2-1
|
||||
* import w3m-0.2.1
|
||||
|
||||
$Id: ChangeLog,v 1.346 2002/03/13 15:51:36 ukai Exp $
|
||||
$Id: ChangeLog,v 1.347 2002/03/13 17:04:56 ukai Exp $
|
||||
|
||||
5
NEWS
5
NEWS
@@ -1,3 +1,8 @@
|
||||
w3m 0.4?
|
||||
|
||||
* X-Face support: USE_XFACE, require uncompface
|
||||
|
||||
----------------------------------------------------------------
|
||||
w3m 0.3 - 2002-03-06
|
||||
|
||||
* rc: mailer
|
||||
|
||||
@@ -123,6 +123,7 @@ MODEL=Linux.i686-monster-ja
|
||||
#undef USE_ALARM
|
||||
#undef USE_IMAGE
|
||||
#define USE_HELP_CGI
|
||||
#undef USE_XFACE
|
||||
|
||||
#define DEF_EDITOR "/bin/vi"
|
||||
#define DEF_MAILER "/bin/mail"
|
||||
@@ -143,6 +144,7 @@ MODEL=Linux.i686-monster-ja
|
||||
#define W3MCONFIG "w3mconfig"
|
||||
#define IMGSIZE "w3mimgsize"
|
||||
#define IMGDISPLAY "w3mimgdisplay"
|
||||
#define XFACE2XBM "xface2xbm"
|
||||
|
||||
#define RC_DIR "~/.w3m"
|
||||
#define BOOKMARK "bookmark.html"
|
||||
|
||||
5
configure
vendored
5
configure
vendored
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# $Id: configure,v 1.63 2002/03/06 03:32:10 ukai Exp $
|
||||
# $Id: configure,v 1.64 2002/03/13 17:04:56 ukai Exp $
|
||||
# Configuration.
|
||||
#
|
||||
|
||||
@@ -770,6 +770,7 @@ def_param vi_prec_num $include_opt
|
||||
def_param label_topline $include_opt
|
||||
def_param nextpage_topline $include_opt
|
||||
def_param ftppass_hostnamegen $include_opt
|
||||
def_param use_xface $use_image
|
||||
|
||||
def_param table_expand n
|
||||
def_param table_no_compact n
|
||||
@@ -2127,6 +2128,7 @@ $def_use_gopher
|
||||
$def_use_alarm
|
||||
$def_use_image
|
||||
$def_use_help_cgi
|
||||
$def_use_xface
|
||||
|
||||
#define DEF_EDITOR "$editor"
|
||||
#define DEF_MAILER "$mailer"
|
||||
@@ -2147,6 +2149,7 @@ $def_use_help_cgi
|
||||
#define W3MCONFIG "w3mconfig"
|
||||
#define IMGSIZE "w3mimgsize"
|
||||
#define IMGDISPLAY "w3mimgdisplay"
|
||||
#define XFACE2XBM "xface2xbm"
|
||||
|
||||
#define RC_DIR "~/.w3m"
|
||||
#define BOOKMARK "bookmark.html"
|
||||
|
||||
43
file.c
43
file.c
@@ -1,4 +1,4 @@
|
||||
/* $Id: file.c,v 1.83 2002/03/13 15:48:20 ukai Exp $ */
|
||||
/* $Id: file.c,v 1.84 2002/03/13 17:04:56 ukai Exp $ */
|
||||
#include "fm.h"
|
||||
#include <sys/types.h>
|
||||
#include "myctype.h"
|
||||
@@ -504,6 +504,26 @@ matchattr(char *p, char *attr, int len, Str *value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef USE_IMAGE
|
||||
#ifdef USE_XFACE
|
||||
static char *
|
||||
xface2xbm(char *xface)
|
||||
{
|
||||
char *xbm;
|
||||
FILE *f;
|
||||
|
||||
xbm = tmpfname(TMPF_DFL, ".xbm")->ptr;
|
||||
pushText(fileToDelete, xbm);
|
||||
f = popen(Sprintf("%s > %s", libFile(XFACE2XBM), xbm)->ptr, "w");
|
||||
if (!f)
|
||||
return NULL;
|
||||
fprintf(f, "%s", xface);
|
||||
pclose(f);
|
||||
return xbm;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void
|
||||
readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
|
||||
{
|
||||
@@ -589,6 +609,27 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
|
||||
lineBuf2->length, -1);
|
||||
for (; *q && (*q == '\r' || *q == '\n'); q++) ;
|
||||
}
|
||||
#ifdef USE_IMAGE
|
||||
#ifdef USE_XFACE
|
||||
if (thru && !strncasecmp(tmp->ptr, "X-Face:", 7)) {
|
||||
char *tmpf;
|
||||
Str src;
|
||||
URLFile f;
|
||||
Line *l;
|
||||
|
||||
tmpf = xface2xbm(&tmp->ptr[7]);
|
||||
if (tmpf) {
|
||||
src = Sprintf("<img src=\"%s\" alt=\"X-Face\" width=48 height=48>",
|
||||
html_quote(tmpf));
|
||||
init_stream(&f, SCM_LOCAL, newStrStream(src));
|
||||
loadHTMLstream(&f, newBuf, NULL, TRUE);
|
||||
for (l = newBuf->lastLine; l && l->real_linenumber;
|
||||
l = l->prev)
|
||||
l->real_linenumber = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
lineBuf2 = tmp;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -6,7 +6,7 @@ LIB_DIR = $(prefix)/lib/w3m
|
||||
HELP_DIR = $(prefix)/lib/w3m
|
||||
RC_DIR = ~/.w3m
|
||||
|
||||
LIB_TARGETS = dirlist.cgi w3mhelp.cgi w3mmail.cgi
|
||||
LIB_TARGETS = dirlist.cgi w3mhelp.cgi w3mmail.cgi xface2xbm
|
||||
HELP_LIBS = w3mhelp-funcname.pl w3mhelp-funcdesc.pl
|
||||
|
||||
MKDIR = mkdir -p
|
||||
|
||||
54
scripts/xface2xbm.in
Normal file
54
scripts/xface2xbm.in
Normal file
@@ -0,0 +1,54 @@
|
||||
#!@PERL@
|
||||
|
||||
# See http://www.lab3.kuis.kyoto-u.ac.jp/~tsumura/emacs/x-face.html
|
||||
$UNCOMPFACE = "uncompface";
|
||||
|
||||
$xf = "";
|
||||
while(<>) {
|
||||
# s/^X-Face://i if ($xf eq "");
|
||||
$xf .= $_;
|
||||
}
|
||||
|
||||
pipe(R, W2);
|
||||
pipe(R2, W);
|
||||
if (! fork()) {
|
||||
close(R);
|
||||
close(W);
|
||||
open(STDIN, "<&R2");
|
||||
open(STDOUT, ">&W2");
|
||||
exec $UNCOMPFACE;
|
||||
die;
|
||||
}
|
||||
close(R2);
|
||||
close(W2);
|
||||
print W $xf;
|
||||
close(W);
|
||||
while(<R>) {
|
||||
while(s/0x(..)(..)//) {
|
||||
push(@bm, hex($1), hex($2));
|
||||
}
|
||||
}
|
||||
close(R);
|
||||
|
||||
$W = 48;
|
||||
$H = @bm * 8 / $W; # must be 48
|
||||
print <<EOF;
|
||||
#define xf_width $W
|
||||
#define xf_height $H
|
||||
static char xf_bits[] = {
|
||||
EOF
|
||||
while (@bm) {
|
||||
for (1..6) {
|
||||
$x = shift @bm;
|
||||
$y = 0;
|
||||
for $i (1 .. 8) {
|
||||
$y |= ($x & 1) << (8 - $i);
|
||||
$x >>= 1;
|
||||
}
|
||||
printf " 0x%02X,", $y;
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
print <<EOF;
|
||||
};
|
||||
EOF
|
||||
Reference in New Issue
Block a user