[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:
Fumitoshi UKAI
2002-03-13 17:04:56 +00:00
parent 2033fa16bc
commit b118dd18d3
7 changed files with 121 additions and 4 deletions

View File

@@ -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
View 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