aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2002-04-09 14:45:58 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2002-04-09 14:45:58 +0000
commitc2c01b60dd063ed4728986d513b51138ccf9de4a (patch)
tree0880f7c647f9747e3ec733dffa4231c91dc91196
parentNEWS: mark_all_pages (diff)
downloadw3m-c2c01b60dd063ed4728986d513b51138ccf9de4a.tar.gz
w3m-c2c01b60dd063ed4728986d513b51138ccf9de4a.zip
[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 <hsaka@mth.biglobe.ne.jp>
-rw-r--r--ChangeLog13
-rw-r--r--config.h.dist2
-rwxr-xr-xconfigure4
-rw-r--r--file.c20
-rw-r--r--scripts/Makefile2
-rw-r--r--scripts/xface2xpm.in94
6 files changed, 121 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 116b669..06383a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-04-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
+
+ * [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 <ukai@debian.or.jp>
* [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 <sys/types.h>
#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 <color>] [-bg <color>] [<file>]";
+
+# 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(<R>) {
+ while(s/0x(..)(..)//) {
+ push(@bm, hex($1), hex($2));
+ }
+}
+close(R);
+@bm || exit 1;
+
+$W = 48;
+$H = @bm * 8 / $W; # must be 48
+print <<EOF;
+/* XPM */
+static char *xf[] = {
+/* columns rows colors chars-per-pixel */
+"$W $H 2 1",
+" $T $BG",
+". c $FG",
+/* pixels */
+EOF
+while (@bm) {
+ print "\"";
+ for (1..6) {
+ $x = shift @bm;
+ for $i (1 .. 8) {
+ print ((($x >> (8-$i)) & 1) ? "." : " ");
+ }
+ }
+ print (@bm ? "\",\n" : "\"\n");
+}
+print <<EOF;
+};
+EOF
+
+sub usage {
+ local($err) = @_;
+ if ($err) {
+ print STDERR "$USAGE\n";
+ } else {
+ print "$USAGE\n";
+ }
+ exit $err;
+}