diff options
| author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-03-13 17:04:56 +0000 | 
|---|---|---|
| committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-03-13 17:04:56 +0000 | 
| commit | b118dd18d3e0b3829e6814af684e30d683b7e67d (patch) | |
| tree | 2bc798345dccf998435a18c7d3ce6caf1c9a2e79 | |
| parent | [w3m-dev 03126] reshapeBuffer() and -m option (diff) | |
| download | w3m-b118dd18d3e0b3829e6814af684e30d683b7e67d.tar.gz w3m-b118dd18d3e0b3829e6814af684e30d683b7e67d.zip | |
[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>
Diffstat (limited to '')
| -rw-r--r-- | ChangeLog | 14 | ||||
| -rw-r--r-- | NEWS | 5 | ||||
| -rw-r--r-- | config.h.dist | 2 | ||||
| -rwxr-xr-x | configure | 5 | ||||
| -rw-r--r-- | file.c | 43 | ||||
| -rw-r--r-- | scripts/Makefile | 2 | ||||
| -rw-r--r-- | scripts/xface2xbm.in | 54 | 
7 files changed, 121 insertions, 4 deletions
| @@ -1,5 +1,17 @@  2002-03-14  Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +	* [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 + +2002-03-14  Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +  	* [w3m-dev 03126] reshapeBuffer() and -m option  	* buffer.c (reshapeBuffer): fix reshapeBuffer() in case of -m option @@ -3137,4 +3149,4 @@  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.346 2002/03/13 15:51:36 ukai Exp $ +$Id: ChangeLog,v 1.347 2002/03/13 17:04:56 ukai Exp $ @@ -1,3 +1,8 @@ +w3m 0.4? + +* X-Face support: USE_XFACE, require uncompface + +----------------------------------------------------------------  w3m 0.3 - 2002-03-06  * rc: mailer diff --git a/config.h.dist b/config.h.dist index ac01f1a..0e249ba 100644 --- a/config.h.dist +++ b/config.h.dist @@ -123,6 +123,7 @@ MODEL=Linux.i686-monster-ja  #undef USE_ALARM  #undef USE_IMAGE  #define USE_HELP_CGI +#undef USE_XFACE  #define DEF_EDITOR "/bin/vi"  #define DEF_MAILER "/bin/mail" @@ -143,6 +144,7 @@ MODEL=Linux.i686-monster-ja  #define W3MCONFIG    "w3mconfig"  #define IMGSIZE      "w3mimgsize"  #define IMGDISPLAY   "w3mimgdisplay" +#define XFACE2XBM    "xface2xbm"  #define RC_DIR       "~/.w3m"  #define BOOKMARK     "bookmark.html" @@ -1,5 +1,5 @@  #!/bin/sh -# $Id: configure,v 1.63 2002/03/06 03:32:10 ukai Exp $ +# $Id: configure,v 1.64 2002/03/13 17:04:56 ukai Exp $  #	Configuration.  # @@ -770,6 +770,7 @@ def_param vi_prec_num $include_opt  def_param label_topline $include_opt  def_param nextpage_topline $include_opt  def_param ftppass_hostnamegen $include_opt +def_param use_xface $use_image  def_param table_expand n  def_param table_no_compact n @@ -2127,6 +2128,7 @@ $def_use_gopher  $def_use_alarm  $def_use_image  $def_use_help_cgi +$def_use_xface  #define DEF_EDITOR "$editor"  #define DEF_MAILER "$mailer" @@ -2147,6 +2149,7 @@ $def_use_help_cgi  #define W3MCONFIG    "w3mconfig"  #define IMGSIZE      "w3mimgsize"  #define IMGDISPLAY   "w3mimgdisplay" +#define XFACE2XBM    "xface2xbm"  #define RC_DIR       "~/.w3m"  #define BOOKMARK     "bookmark.html" @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.83 2002/03/13 15:48:20 ukai Exp $ */ +/* $Id: file.c,v 1.84 2002/03/13 17:04:56 ukai Exp $ */  #include "fm.h"  #include <sys/types.h>  #include "myctype.h" @@ -504,6 +504,26 @@ matchattr(char *p, char *attr, int len, Str *value)      return 0;  } +#ifdef USE_IMAGE +#ifdef USE_XFACE +static char * +xface2xbm(char *xface) +{ +    char *xbm; +    FILE *f; + +    xbm = tmpfname(TMPF_DFL, ".xbm")->ptr; +    pushText(fileToDelete, xbm); +    f = popen(Sprintf("%s > %s", libFile(XFACE2XBM), xbm)->ptr, "w"); +    if (!f) +	return NULL; +    fprintf(f, "%s", xface); +    pclose(f); +    return xbm; +} +#endif +#endif +  void  readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)  { @@ -589,6 +609,27 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)  			       lineBuf2->length, -1);  		for (; *q && (*q == '\r' || *q == '\n'); q++) ;  	    } +#ifdef USE_IMAGE +#ifdef USE_XFACE +	    if (thru && !strncasecmp(tmp->ptr, "X-Face:", 7)) { +		char *tmpf; +		Str src; +		URLFile f; +		Line *l; + +		tmpf = xface2xbm(&tmp->ptr[7]); +		if (tmpf) { +		    src = Sprintf("<img src=\"%s\" alt=\"X-Face\" width=48 height=48>", +				  html_quote(tmpf)); +		    init_stream(&f, SCM_LOCAL, newStrStream(src)); +		    loadHTMLstream(&f, newBuf, NULL, TRUE); +		    for (l = newBuf->lastLine; l && l->real_linenumber; +			 l = l->prev) +			l->real_linenumber = 0; +		} +	    } +#endif +#endif  	    lineBuf2 = tmp;  	}  	else { 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 | 
