From: Youichi Watanabe <youchan@se.fujitsu.co.jp>
Real-Date: Mon, 10 Jan 1994 21:18:15 +0900
Subject: [infotalk,00679] Re: L10N-Mosaic for X 2.1 
Message-Id: <9401101218.AA08522@enterprise.se.fujitsu.co.jp>


富士通の渡辺です。

In article <9401101201.AA10248@dec413.aist-nara.ac.jp>, K Chinen <k-chinen@is.aist-nara.ac.jp> writes:

>> Multi-Localization Mosaic for Xの2.1版が一応出来ました。例によって、

> PS 出力を Multi-Localization する予定はありますか ?
> # とりあえず日本語が使えれば嬉しいのですが、酷なお願いでしょうか...

うちのプロジェクトで作った日本語patchです。libhtmlwのしだで
お使い下さい。

*** HTML-PSformat.c.orig	Sun Dec  5 13:43:24 1993
--- HTML-PSformat.c	Mon Jan 10 21:12:36 1994
***************
*** 103,108 ****
--- 103,115 ----
  		} \
  }
  	
+ /* Added by kazu@ftk.fujitsu.co.jp */
+ #ifdef	L10N
+ #define NIHONGO_MASK	(1<<7)
+ #define G2		0x8e
+ #define G3		0x8f
+ #define KANA_MASK	~(~0<<7)
+ #endif
  
  /* for regular-font, bold-font, italic-font, fixed-font */
  typedef enum { RF, BF, IF, FF } PS_fontstyle;
***************
*** 269,274 ****
--- 276,285 ----
  	};
  
  	static char fnchar[4][3] = {"RF", "BF", "IF", "FF"};
+ #ifdef	L10N
+ 	static char kfnchar[4][4] = {"KRF", "KBF","KRF","KBF"};
+ 	static char knfnchar[4][4] = {"KNF", "KNF","KNF","KNF"};
+ #endif
  
  	/* fontsizes as set in gui.c and in HTML.c (listing font is only
  	 * defined in HTML.c)
***************
*** 335,341 ****
--- 346,362 ----
  	/* NULL case - reflush old font or the builtin default: */
  	if (hw==NULL || font==NULL) {
  		if (PS_oldfs != 0)
+ #ifdef	L10N
+ 		{
+ #endif
  			PSprintf( "%2s %d SF\n", fnchar[PS_oldfn], PS_oldfs);
+ #ifdef	L10N
+ 			PSprintf( "/FN %2s D\n", fnchar[PS_oldfn]);
+ 			PSprintf( "/FNS %d D\n", PS_oldfs);
+ 			PSprintf( "/KFN %3s D\n", kfnchar[PS_oldfn]);
+ 			PSprintf( "/KNFN %3s D\n", knfnchar[PS_oldfn]);
+ 		}
+ #endif
  		return;
  	}
  	/* added the next line in case xmosaic version 199.4 has more fonts */
***************
*** 384,389 ****
--- 405,416 ----
  
  	if (fn != PS_oldfn || fs != PS_oldfs) {
  		PSprintf( "%2s %d SF\n", fnchar[fn], fs);
+ #ifdef	L10N
+ 		PSprintf( "/FN %2s D\n", fnchar[fn]);
+ 		PSprintf( "/FNS %d D\n", fs);
+ 		PSprintf( "/KFN %3s D\n", kfnchar[fn]);
+ 		PSprintf( "/KNFN %3s D\n", knfnchar[fn]);
+ #endif
  		PS_oldfn=fn, PS_oldfs=fs;
  	}
  }
***************
*** 531,536 ****
--- 558,567 ----
  		"NewCenturySchlbk-Roman", "NewCenturySchlbk-Bold",
  			"NewCenturySchlbk-Italic",
  		"Lucida", "Lucida-Bold", "Lucida-Italic",
+ #ifdef	L10N
+ 		"Ryumin-Light-EUC-H","GothicBBB-Medium-EUC-H",
+ 		"Ryumin-Light.Katakana",
+ #endif
  	};
  
  	static char *txt[] = {
***************
*** 574,579 ****
--- 605,615 ----
  	PSprintf("/RF {/%s} D\n", fontname[font*3]);
  	PSprintf("/BF {/%s} D\n", fontname[font*3+1]);
  	PSprintf("/IF {/%s} D\n", fontname[font*3+2]);
+ #ifdef	L10N
+ 	PSprintf("/KRF {/%s} D\n", fontname[12]);
+ 	PSprintf("/KBF {/%s} D\n", fontname[13]);
+ 	PSprintf("/KNF {/%s} D\n", fontname[14]);
+ #endif
  
  	PSinit_latin1();
  
***************
*** 611,617 ****
--- 647,657 ----
  static void PStext ARG2(String,t, int,underline) {
  	String	tp, t2;
  	int	nspecial=0, nisochar=0;
+ #ifdef	L10N
+ 	void PSkprint();
+ #endif
  
+ 	
  	tp=t;
  	/* count # of special char's in text */
  	while (*tp != '\0') {
***************
*** 624,630 ****
--- 664,674 ----
  	
  	if (nspecial == 0 && nisochar == 0) {
  		/*  no special char's, send out original string */
+ #ifdef	L10N
+ 		PSkprint(t,(underline)?'S': 'S');
+ #else
  		PSprintf("(%s)%c\n", t, (underline)?'U':'S');
+ #endif
  		return;
  	}
  	/*  create t2 to hold original text + "\"'s */
***************
*** 643,648 ****
--- 687,693 ----
  		if (*t == L_PAREN || *t == R_PAREN || *t == B_SLASH) {
  			*(tp++) = B_SLASH;
  			*(tp++) = *t;
+ #ifndef	L10N
  		} else if (*(unsigned char *)t > (unsigned char) MAX_ASCII) {
  			 /*  convert to octal */
  			*(tp++) = B_SLASH;
***************
*** 649,654 ****
--- 694,700 ----
  			*(tp++) = ((int)(*(unsigned char *)t)>>6 & 007) + '0';
  			*(tp++) = ((int)(*(unsigned char *)t)>>3 & 007) + '0';
  			*(tp++) = ((int)(*(unsigned char *)t) & 007) + '0';
+ #endif	/* L10N */
  		} else {
  			*(tp++) = *t;
  		}
***************
*** 655,661 ****
--- 701,711 ----
  		t++;
  	}
  	*(tp) = '\0';
+ #ifdef	L10N
+ 	PSkprint(t2,(underline)?'S': 'S');
+ #else
  	PSprintf("(%s)%c\n", t2, (underline)?'U':'S');
+ #endif
  
  	free(t2);
  }
***************
*** 1481,1483 ****
--- 1531,1618 ----
  	return( PS_string);
  }
  
+ /* Follow lines added by kazu@ftk.fujitsu.co.jp */
+ #ifdef	L10N
+ void PSkprint(text,command)
+ unsigned char *text;
+ unsigned char command;
+ {
+ 	unsigned char *drawdata;
+ 	unsigned char *PS_DrawAscii(),*PS_DrawKana(),*PS_DrawGaiji(),*PS_DrawKanji();
+ 
+ 	drawdata = text;
+ 	while(*drawdata != '\0'){
+ 		if(!(*drawdata & NIHONGO_MASK)){
+ 			drawdata = PS_DrawAscii(drawdata,command);
+ 			continue;
+ 		}
+ 		if(*drawdata == G2){
+ 			drawdata = PS_DrawKana(drawdata,command);
+ 			continue;
+ 		}
+ 		if(*drawdata == G3){
+ 			drawdata = PS_DrawGaiji(drawdata,command);
+ 			continue;
+ 		}
+ 		drawdata = PS_DrawKanji(drawdata,command);
+ 	}
+ }
+ 
+ unsigned char *PS_DrawAscii(data,command)
+ unsigned char *data;
+ unsigned char command;
+ {
+ 	PSprintf("(");
+ 	while(!(*data & NIHONGO_MASK) && *data != '\0'){
+ 		PSprintf("%c",*data++);
+ 	}
+ 	PSprintf(")%c\n",command);
+ 	return(data);
+ }
+ 
+ unsigned char *PS_DrawKanji(data,command)
+ unsigned char *data;
+ unsigned char command;
+ {
+ 	PSprintf("KFN findfont FNS scalefont setfont\n");
+ 	PSprintf("<");
+ 	while(*data & NIHONGO_MASK && *data != G2 && 
+ 	      *data != G3 && *data != '\0'){
+ 		PSprintf("%x%x ",*data++,*data++);
+ 	}
+ 	PSprintf(">%c\n",command);
+ 	PSprintf("FN findfont FNS scalefont setfont\n");
+ 	return(data);
+ }
+ 
+ unsigned char *PS_DrawKana(data,command)
+ unsigned char *data;
+ unsigned char command;
+ {
+ 	PSprintf("KNFN findfont FNS scalefont setfont\n");
+ 	PSprintf("(");
+ 	while(*data == G2 && *data != '\0'){
+ 		PSprintf("\\%o",(*++data) & KANA_MASK);
+ 		++data;
+ 	}
+ 	PSprintf(")%c\n",command);
+ 	PSprintf("FN findfont FNS scalefont setfont\n");
+ 	return(data);
+ }
+ 
+ unsigned char *PS_DrawGaiji(data,command)
+ unsigned char *data;
+ unsigned char command;
+ {
+ 	PSprintf("KFN findfont FNS scalefont setfont\n");
+ 	PSprintf("<");
+ 	while(*data == G3 && *data != '\0'){
+ 		PSprintf("%x%x ",*++data,*++data);
+ 		++data;
+ 	}
+ 	PSprintf(">%c\n",command);
+ 	PSprintf("FN findfont FNS scalefont setfont\n");
+ 	return(data);
+ }
+ 
+ #endif	/* L10N */


From: K Chinen <k-chinen@is.aist-nara.ac.jp>
Real-Date: Mon, 10 Jan 1994 21:01:50 +0900
Subject: [infotalk,00678] Re: L10N-Mosaic for X 2.1 
Message-Id: <9401101201.AA10248@dec413.aist-nara.ac.jp>



[ takada@seraph.ntt.jp (1994/1/7) ]

> Multi-Localization Mosaic for Xの2.1版が一応出来ました。例によって、

PS 出力を Multi-Localization する予定はありますか ?

# とりあえず日本語が使えれば嬉しいのですが、酷なお願いでしょうか...

---
k-chinen@is.aist-nara.ac.jp
<http://wwfs.aist-nara.ac.jp:8001/shika/naist/yamamoto_lab/k-chinen.html>


From: 佐藤進也<sato@mahler.ntt.jp>
Real-Date: Mon, 10 Jan 1994 19:19:38 +0900
Subject: [infotalk,00677] Re: [W3-users 27] Re: W3 mode now supports Mule 
Message-Id: <9401101020.AA09596@mahler.ntt.jp>


 > ちょっと手間取りましたが動き始めました。ただ問題は Image/audio などバ
 > イナリデータがどうもうまくハンドリングできません。
 > 
 > NTT の音声などが潰れてしまいます。北大の絵も出てくれません。なんかおか
 > しい。

  w3-1.9.9Betaからのpatchesです。w3-vars.elのdiffは、playだ
  と "vaildなaudio fileじゃない" という場合があるからです。
  .emacsに書いてもいいのですけどね。

  佐藤 進也


----- begin -----
diff -c w3-1.9.9Beta/w3-mime.el w3/w3-mime.el
*** w3-1.9.9Beta/w3-mime.el	Sun Jan  9 04:01:03 1994
--- w3/w3-mime.el	Mon Jan 10 18:26:45 1994
***************
*** 105,110 ****
--- 105,111 ----
  		"%s%s"					; Authentication
  		"Accept: %s\n"				; Accept-string
  		"User-Agent: Emacs-W3/%s\n"		; User agent
+ 		"Content-type: application/x-www-form-urlencoded\n"
  		"%s"					; Any data
  		"\n\n")					; End request
  	       (if meth meth "GET")
diff -c w3-1.9.9Beta/w3-misc.el w3/w3-misc.el
*** w3-1.9.9Beta/w3-misc.el	Sun Jan  9 04:01:03 1994
--- w3/w3-misc.el	Mon Jan 10 18:28:37 1994
***************
*** 380,385 ****
--- 380,388 ----
    "Escape characters in a string"
    (let ((str2 "")
  	(char 0))
+     (if (boundp 'MULE)
+ 	(setq str (code-convert-string 
+ 		   str *internal* w3-mule-retrieval-coding-system)))
      (while (not (equal str ""))
        (setq char (string-to-char str)
  	    str (substring str 1 nil)
***************
*** 598,603 ****
--- 601,608 ----
  		  (error nil))
  		(w3-replace-regexp ".*connect:.*" "")
  		nil)
+ 	    (if (boundp 'MULE)
+ 		(set-current-process-coding-system *noconv* *noconv*))
  	    proc)))
      (let ((tries 1)
  	  (x t)
***************
*** 614,619 ****
--- 619,626 ----
  			 tries (1+ tries))))))
        (if (> tries w3-connection-retries)
  	  (format "Could not establish connection to %s:%d" host service)
+ 	(if (boundp 'MULE)
+ 	    (set-current-process-coding-system *noconv* *noconv*))
  	z))))
  
  (defun w3-unhex (x)
diff -c w3-1.9.9Beta/w3-mule.el w3/w3-mule.el
*** w3-1.9.9Beta/w3-mule.el	Sun Jan  9 04:01:03 1994
--- w3/w3-mule.el	Mon Jan 10 17:19:38 1994
***************
*** 28,33 ****
--- 28,36 ----
  (defvar attributed-region nil
    "Bogus definition to get rid of compile-time warnings.")
  
+ (defvar w3-mule-retrieval-coding-system *euc-japan*
+   "Coding system for retrieval, used before hexified")
+ 
  (defun w3-mule-attribute-zones (zones attr)
    (save-excursion
      (let ((c 0) l z beg end)
diff -c w3-1.9.9Beta/w3-url.el w3/w3-url.el
*** w3-1.9.9Beta/w3-url.el	Sun Jan  9 04:01:03 1994
--- w3/w3-url.el	Mon Jan 10 18:30:14 1994
***************
*** 178,184 ****
  			(accept-process-output))
  		      (condition-case ()
  			  (delete-process process)
! 			(error nil))))))))
  	(progn
  	  (ding)
  	  (message "Aborting connection to bad port..."))))))
--- 178,189 ----
  			(accept-process-output))
  		      (condition-case ()
  			  (delete-process process)
! 			(error nil))))))
! 	      (if (and (boundp 'MULE)
! 		       (string= (w3-extension-to-mime (w3-file-extension url))
! 				"text/html"))
! 		  (code-convert-region
! 		   (point-min) (point-max) *autoconv* *internal*))))
  	(progn
  	  (ding)
  	  (message "Aborting connection to bad port..."))))))
diff -c w3-1.9.9Beta/w3-vars.el w3/w3-vars.el
*** w3-1.9.9Beta/w3-vars.el	Sun Jan  9 04:01:06 1994
--- w3/w3-vars.el	Mon Jan 10 09:33:08 1994
***************
*** 571,578 ****
  		      ))
      ("audio"       . (
  		      ("aiff"       . w3-save-binary-file)
! 		      ("basic"      . "play %s")
! 		      ("ulaw"       . "play %s")
  		      (".*"         . w3-save-binary-file)
  		      ))
      ("image"       . (
--- 571,578 ----
  		      ))
      ("audio"       . (
  		      ("aiff"       . w3-save-binary-file)
! 		      ("basic"      . "showaudio %s")
! 		      ("ulaw"       . "showaudio %s")
  		      (".*"         . w3-save-binary-file)
  		      ))
      ("image"       . (
diff -c w3-1.9.9Beta/w3-viewers.el w3/w3-viewers.el
*** w3-1.9.9Beta/w3-viewers.el	Sun Jan  9 04:01:03 1994
--- w3/w3-viewers.el	Mon Jan 10 17:11:05 1994
***************
*** 61,66 ****
--- 61,67 ----
  		       ((eq w3-always-show-output t) t)
  		       (t (funcall w3-confirmation-func
  				   "View process output?")))))
+ 	    (if (boundp 'MULE) (set-file-coding-system *noconv*))
  	    (write-region (point-min) (point-max) fname)
  	    (kill-buffer w3-working-buffer)
  	    (message "Passing to viewer %s" view)
----- end -----


From: Shin Yoshimura <shin@iij.ad.jp>
Real-Date: Sat, 08 Jan 1994 23:40:18 +0900
Subject: [infotalk,00676] Re: [W3-users 25] W3 mode now supports Mule 
Message-Id: <199401081440.XAA13086@mohair.iij.ad.jp>


>>>>> On Thu, 06 Jan 94 03:27:24 JST, TAKADA Toshihiro (高田敏弘) <takada@seraph.ntt.jp> said:

takada> Emacs上で動くWWW ClientのW3-modeが正式にMuleをサポートするようになり
takada> ました。最新版は <file://cs.indiana.edu/pub/elisp/w3/w3.tar.gz> です。

ちょっと手間取りましたが動き始めました。ただ問題は Image/audio などバ
イナリデータがどうもうまくハンドリングできません。

NTT の音声などが潰れてしまいます。北大の絵も出てくれません。なんかおか
しい。

吉村 伸				Shin Yoshimura
Internet Initiative Japan Inc.		Operations Div., IIJ


From: 佐藤進也<sato@mahler.ntt.jp>
Real-Date: Sun, 09 Jan 1994 14:33:28 +0900
Subject: [infotalk,00675] Re: [W3-users 27] Re: W3 mode now supports Mule 
Message-Id: <9401090534.AA29982@mahler.ntt.jp>


 > From:        Shin Yoshimura <shin@iij.ad.jp>
 > Subject:     [W3-users 27] Re: W3 mode now supports Mule 

 > ちょっと手間取りましたが動き始めました。ただ問題は Image/audio などバ
 > イナリデータがどうもうまくハンドリングできません。
 > 
 > NTT の音声などが潰れてしまいます。北大の絵も出てくれません。なんかおか
 > しい。

  うむむ。そうかもしれない。Mule対応といいながら、実はcoding
  systemについては何もいじっていなかったからなあ。(日本語の)
  検索もうまくいってみないみたいだし、もうちょっとちゃんと考
  えないといかんなぁ。

  佐藤 進也


From: t93287nt@sfc.keio.ac.jp
Real-Date: Sun, 09 Jan 94 17:18:07 +0900
Subject: [infotalk,00674] Re: W3 mode now supports Mule 
Message-Id: <9401090818.AA11507@cs0.sfc.keio.ac.jp>


遠山@慶応大と申します。

>> 六条@富士通です。
>> >  なにぶん、emacs-lisp の事はほぼ何も分からないもので、もしかしたらもの
>> > すごく間抜けなことなのかもしれませんが、どなたか答えて下さる方がいらっ
>> > しゃいましたらお願いします。

>> mule の FAQの一部分を引用します。これで直りました。

 なるほど、ange-ftp と mule の問題だったわけですね。めでたく動くように
なりました。どうもありがとうございます。

@@@ 遠山緑生.環境情報学部.湘南藤沢.慶応.大学.日本
/// E-Mail address : t93287nt@sfc.keio.ac.jp