Files
w3m/scripts/xface2xbm.in
Fumitoshi UKAI 739eb5f7ab [w3m-dev 03129] Re: X-Face
* configure (use_xface): ask
* fm.h (_Buffer): add header_source
* buffer.c (reshapeBuffer): fix reshape when reading stdin with image
		fix disappearing header when reading stdin
* file.c (xface2xbm): check file existence
* file.c (readHeader): save to tmp file
		X-Face when activeImage & displayImage
* main.c (dispI): comment out checking content type
* main.c (stopI): ditto
* scripts/xface2xbm.in: update compface URL
		read from file $XF
		write to file $XBM
From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
2002-03-14 16:12:02 +00:00

64 lines
939 B
Plaintext

#!@PERL@
# compface/uncompface
# ftp://metalab.unc.edu/pub/Linux/apps/graphics/convert/
$UNCOMPFACE = "uncompface";
$XF = @ARGV ? shift @ARGV : '-';
$XBM = @ARGV ? shift @ARGV : '-';
open(XF, "<$XF");
$xf = "";
while(<XF>) {
# s/^X-Face://i if ($xf eq "");
$xf .= $_;
}
close(XF);
pipe(R, W2);
pipe(R2, W);
if (! fork()) {
close(R);
close(W);
open(STDIN, "<&R2");
open(STDOUT, ">&W2");
exec $UNCOMPFACE;
exit 1;
}
close(R2);
close(W2);
print W $xf;
close(W);
while(<R>) {
while(s/0x(..)(..)//) {
push(@bm, hex($1), hex($2));
}
}
close(R);
@bm || exit 1;
$W = 48;
$H = @bm * 8 / $W; # must be 48
open(XBM, ">$XBM");
print XBM <<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 XBM " 0x%02X,", $y;
}
print XBM "\n";
}
print XBM <<EOF;
};
EOF
close(XBM);