From c2c01b60dd063ed4728986d513b51138ccf9de4a Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Tue, 9 Apr 2002 14:45:58 +0000 Subject: [w3m-dev 03167] xface2xbm -> xface2xpm (current imlib can't handle XBM) * configure: s/XFACE2XBM/XFACE2XPM/ * config.h.dist: ditto * file.c (xface2xpm): renamed from xface2xbm modified for xpm (readHeader): s/xface2xbm/xface2xpm/ * scripts/Makefile (LIB_TARGETS): s/xface2xbm/xface2xpm/ * scripts/xface2xpm.in: added From: Hironori Sakamoto --- ChangeLog | 13 +++++++- config.h.dist | 2 +- configure | 4 +-- file.c | 20 ++++++----- scripts/Makefile | 2 +- scripts/xface2xpm.in | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 121 insertions(+), 14 deletions(-) create mode 100644 scripts/xface2xpm.in diff --git a/ChangeLog b/ChangeLog index 116b669..06383a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-04-09 Hironori Sakamoto + + * [w3m-dev 03167] xface2xbm -> xface2xpm (current imlib can't handle XBM) + * configure: s/XFACE2XBM/XFACE2XPM/ + * config.h.dist: ditto + * file.c (xface2xpm): renamed from xface2xbm + modified for xpm + (readHeader): s/xface2xbm/xface2xpm/ + * scripts/Makefile (LIB_TARGETS): s/xface2xbm/xface2xpm/ + * scripts/xface2xpm.in: added + 2002-03-30 Fumitoshi UKAI * [w3m-dev 03162] Re: "ttp:" is marked instead of "http:" by MARL_URL @@ -3323,4 +3334,4 @@ * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.367 2002/04/09 04:34:36 ukai Exp $ +$Id: ChangeLog,v 1.368 2002/04/09 14:45:58 ukai Exp $ diff --git a/config.h.dist b/config.h.dist index 551bbf6..16d82c6 100644 --- a/config.h.dist +++ b/config.h.dist @@ -147,7 +147,7 @@ MODEL=Linux.i686-monster-ja #define W3MCONFIG "w3mconfig" #define IMGSIZE "w3mimgsize" #define IMGDISPLAY "w3mimgdisplay" -#define XFACE2XBM "xface2xbm" +#define XFACE2XPM "xface2xpm" #define RC_DIR "~/.w3m" #define BOOKMARK "bookmark.html" diff --git a/configure b/configure index 8333068..0d8dbbf 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: configure,v 1.66 2002/03/19 16:27:20 ukai Exp $ +# $Id: configure,v 1.67 2002/04/09 14:45:58 ukai Exp $ # Configuration. # @@ -2170,7 +2170,7 @@ $def_use_xface #define W3MCONFIG "w3mconfig" #define IMGSIZE "w3mimgsize" #define IMGDISPLAY "w3mimgdisplay" -#define XFACE2XBM "xface2xbm" +#define XFACE2XPM "xface2xpm" #define RC_DIR "~/.w3m" #define BOOKMARK "bookmark.html" diff --git a/file.c b/file.c index 4fe12a6..89d96a8 100644 --- a/file.c +++ b/file.c @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.88 2002/03/19 15:54:47 ukai Exp $ */ +/* $Id: file.c,v 1.89 2002/04/09 14:45:58 ukai Exp $ */ #include "fm.h" #include #include "myctype.h" @@ -507,22 +507,24 @@ matchattr(char *p, char *attr, int len, Str *value) #ifdef USE_IMAGE #ifdef USE_XFACE static char * -xface2xbm(char *xface) +xface2xpm(char *xface) { - char *xbm; + char *xpm; FILE *f; struct stat st; - xbm = tmpfname(TMPF_DFL, ".xbm")->ptr; - f = popen(Sprintf("%s - %s", libFile(XFACE2XBM), xbm)->ptr, "w"); + xpm = tmpfname(TMPF_DFL, ".xpm")->ptr; + f = popen(Sprintf("%s > %s", libFile(XFACE2XPM), xpm)->ptr, "w"); if (!f) return NULL; fprintf(f, "%s", xface); pclose(f); - if (stat(xbm, &st)) + if (stat(xpm, &st)) return NULL; - pushText(fileToDelete, xbm); - return xbm; + pushText(fileToDelete, xpm); + if (!st.st_size) + return NULL; + return xpm; } #endif #endif @@ -631,7 +633,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu) URLFile f; Line *l; - tmpf = xface2xbm(&tmp->ptr[7]); + tmpf = xface2xpm(&tmp->ptr[7]); if (tmpf) { src = Sprintf diff --git a/scripts/Makefile b/scripts/Makefile index af1cd79..5099918 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 xface2xbm +LIB_TARGETS = dirlist.cgi w3mhelp.cgi w3mmail.cgi xface2xpm HELP_LIBS = w3mhelp-funcname.pl w3mhelp-funcdesc.pl MKDIR = mkdir -p diff --git a/scripts/xface2xpm.in b/scripts/xface2xpm.in new file mode 100644 index 0000000..30253cb --- /dev/null +++ b/scripts/xface2xpm.in @@ -0,0 +1,94 @@ +#!@PERL@ + +$USAGE = "xface2xpm [-t] [-fg ] [-bg ] []"; + +# compface/uncompface +# ftp://metalab.unc.edu/pub/Linux/apps/graphics/convert/ +$UNCOMPFACE = "uncompface"; + +$T = "c"; +$BG = "white"; +$FG = "black"; +while (@ARGV) { + $_ = shift @ARGV; + if (/^-h/) { + &usage(0); + } elsif (/^-t/) { + $T = "s"; + $BG = "none"; + } elsif (/^-bg/) { + @ARGV || &usage(1); + $BG = shift @ARGV; + } elsif (/^-fg/) { + @ARGV || &usage(1); + $FG = shift @ARGV; + } elsif (/^-./) { + &usage(1); + } else { + unshift(@ARGV, $_); + last; + } +} + +$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; + exit 1; +} +close(R2); +close(W2); +print W $xf; +close(W); +while() { + while(s/0x(..)(..)//) { + push(@bm, hex($1), hex($2)); + } +} +close(R); +@bm || exit 1; + +$W = 48; +$H = @bm * 8 / $W; # must be 48 +print <> (8-$i)) & 1) ? "." : " "); + } + } + print (@bm ? "\",\n" : "\"\n"); +} +print <