[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:
@@ -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