diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile | 2 | ||||
| -rw-r--r-- | scripts/xface2xbm.in | 54 | 
2 files changed, 55 insertions, 1 deletions
| diff --git a/scripts/Makefile b/scripts/Makefile index 239378f..af1cd79 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -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 diff --git a/scripts/xface2xbm.in b/scripts/xface2xbm.in new file mode 100644 index 0000000..2c2002a --- /dev/null +++ b/scripts/xface2xbm.in @@ -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 | 
