Commits

Anonymous committed 4fa1574

Remove obsolete files
Rename *.jp -> *.ja

  • Participants
  • Parent commits 173d1fc

Comments (0)

Files changed (19)

+1999-03-17  SL Baur  <steve@xemacs.org>
+
+	* ethio-util.EL:
+	* ethiopic.EL:
+	* vietnamese.EL: Removed.
+
+1999-03-12  SL Baur  <steve@xemacs.org>
+
+	* README.SJ3.ja: Rename **/*.jp -> *.ja.
+	* doc/X11.ja: Ditto.
+	* doc/TAB.ja (Date): Ditto.
+	* doc/NeXT.ja: Ditto.
+	* doc/ISO2022.ja: Ditto.
+	* etc/TUTORIAL.ja: Ditto.
+	* etc/FAQ-Mule.ja: Ditto.
+
 1999-02-17  SL Baur  <steve@xemacs.org>
 
 	* Makefile (ELCS): Move dumped Mule files into core (removes
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-VERSION = 1.28
+VERSION = 1.29
 AUTHOR_VERSION =
 MAINTAINER = SL Baur <steve@altair.xemacs.org>
 PACKAGE = mule-base
 	mule-util.elc
 
 # The following haven't been ported yet.
-EXTRA_SOURCES = thai.el thai-util.el vietnamese.EL \
-	ethiopic.EL ethio-util.EL
+EXTRA_SOURCES = thai.el thai-util.el
 
 DATA_FILES = $(shell echo etc/[FMTVa-z]*)
 DATA_DEST = mule
-DATA_1_FILES = $(shell echo doc/Ch* doc/TAB*) $(shell echo doc/[INRXas]*)
+DATA_1_FILES = $(shell echo doc/Ch* doc/TAB*) $(shell echo doc/[INRXas]*) \
+	README.SJ3.ja
 DATA_1_DEST = mule-doc
 DATA_2_FILES = $(shell echo doc/Thai/[Rs]*)
 DATA_2_DEST = mule-doc/Thai
+SJ3$B$C$F$I$s$J$b$N$+!)(B
+
+sj3 $B$O2>L>4A;zJQ49%5!<%P(B sj3serv $B$H(B TCP $B@\B3$r;HMQ$7$?%W%m%;%94VDL?.$K(B
+$B$h$j2>L>4A;zJQ49$r9T$&F|K\8lF~NO%U%m%s%H%(%s%I%W%m%;%C%5$G$9!#$=$7$F(B
+XEmacs $B$G$O$?$^$4!V$?$+$J!W%P!<%8%g%s$r(B XEmacs $BMQ$K:n$jD>$7$?(B elisp $B$N(B
+$B%W%m%0%i%`(B egg-ej3 (*1) $B$r;H$C$F!"$3$NDL?.$H%f!<%6%$%s%?!<%U%'!<%9$N5!(B
+$BG=$rDs6!$7$F$$$^$9!#(Begg-ej3 $B$O(B XEmacs $BK\BN$N%3!<%I$K$O0MB8$7$F$$$J$$$N(B
+$B$G!"(BMule $B$N5!G=$r;}$C$?(B XEmacs $B$G$"$l$P(B (Canna $BMQ$d(B Wnn $BMQ$K:n$i$l$?$b(B
+$B$N$G$b!"$"$k$$$O$=$l$i$r%3%s%Q%$%k;~$K;XDj$7$J$+$C$?$b$N$G$b(B) $B$9$0$K;H(B
+$B$($k$3$H$,Bg$-$JFCD9$G$9!#(B
+
+(*1) egg.el, egg-sj3.el, egg-sj3-client $B$J$I$N%W%m%0%i%`$NAm>N$H$7$F!"(B
+     $B0J8e$b$3$N8F$SJ}$r;H$$$^$9!#(B
+
+
+SJ3$B$r$I$N$h$&$K$7$F;H$&$+!)(B
+
+$B%m!<%+%k%[%9%H$+!"6a=j$N@\B3$r5v$5$l$F$$$k%^%7%s$G(B sj3serv $B$,Av$C$F$$(B
+$B$k$3$H!"$=$7$F(B "sj3" $B$H$$$&%5!<%S%9L>$G$N(B TCP $B@\B3$,$G$-$k$3$H$,I,MW$G(B
+$B$9!#$b$A$m$s(B Mule $B5!G=$r;}$C$?(B XEmacs $B$,I,MW$G$"$k$3$H$O8@$&$^$G$b$"$j(B
+$B$^$;$s!#(B
+$B$"$J$?$O(B .emacs $B%U%!%$%k$K<!$N#39T$r=q$$$F$*$/$3$H$K$h$C$F!"(Begg-sj3 $B$r(B
+$B;H$&$3$H$,$G$-$^$9!#(B
+
+(setq sj3-host-name "localhost") ; sj3serv $B$,Av$C$F$$$k%[%9%HL>$N;XDj(B
+(select-input-method "japanese-egg-sj3")
+(toggle-egg-mode)
+
+sj3serv $B$,Av$C$F$$$k%[%9%HL>$N;XDj$O!"$3$N0l9TL\$N5-=R$NBe$o$j$K4D6-JQ(B
+$B?t(B SJ3SERV $B$r;H$C$F;XDj$7$F$b9=$$$^$;$s!#(B
+$B$3$&$7$F5/F0$7$?(B XEmacs $B$G$O(B `C-\' $B$,F|K\8lF~NO$r%H%0%k$K(B ON/OFF $B$9$k(B
+$B%-!<$K$J$C$F$$$^$9!#(B
+
+
+SJ3$B$r;H$&>e$G$NCm0UE@(B
+
+$BFC$K$"$j$^$;$s$,!"(BWnn $B$J$I$+$i0\9T$7$??M$K$H$C$F$O(B M-x toroku-region 
+$B$G8l$rEPO?$9$k$H$-$NIJ;l$NA*Br;h$,!"(BWnn $B$H$O>/!90c$&$3$H$K$^$4$D$/$+$b(B
+$B$7$l$^$;$s!#(B

README.SJ3.jp

-SJ3$B$C$F$I$s$J$b$N$+!)(B
-
-sj3 $B$O2>L>4A;zJQ49%5!<%P(B sj3serv $B$H(B TCP $B@\B3$r;HMQ$7$?%W%m%;%94VDL?.$K(B
-$B$h$j2>L>4A;zJQ49$r9T$&F|K\8lF~NO%U%m%s%H%(%s%I%W%m%;%C%5$G$9!#$=$7$F(B
-XEmacs $B$G$O$?$^$4!V$?$+$J!W%P!<%8%g%s$r(B XEmacs $BMQ$K:n$jD>$7$?(B elisp $B$N(B
-$B%W%m%0%i%`(B egg-ej3 (*1) $B$r;H$C$F!"$3$NDL?.$H%f!<%6%$%s%?!<%U%'!<%9$N5!(B
-$BG=$rDs6!$7$F$$$^$9!#(Begg-ej3 $B$O(B XEmacs $BK\BN$N%3!<%I$K$O0MB8$7$F$$$J$$$N(B
-$B$G!"(BMule $B$N5!G=$r;}$C$?(B XEmacs $B$G$"$l$P(B (Canna $BMQ$d(B Wnn $BMQ$K:n$i$l$?$b(B
-$B$N$G$b!"$"$k$$$O$=$l$i$r%3%s%Q%$%k;~$K;XDj$7$J$+$C$?$b$N$G$b(B) $B$9$0$K;H(B
-$B$($k$3$H$,Bg$-$JFCD9$G$9!#(B
-
-(*1) egg.el, egg-sj3.el, egg-sj3-client $B$J$I$N%W%m%0%i%`$NAm>N$H$7$F!"(B
-     $B0J8e$b$3$N8F$SJ}$r;H$$$^$9!#(B
-
-
-SJ3$B$r$I$N$h$&$K$7$F;H$&$+!)(B
-
-$B%m!<%+%k%[%9%H$+!"6a=j$N@\B3$r5v$5$l$F$$$k%^%7%s$G(B sj3serv $B$,Av$C$F$$(B
-$B$k$3$H!"$=$7$F(B "sj3" $B$H$$$&%5!<%S%9L>$G$N(B TCP $B@\B3$,$G$-$k$3$H$,I,MW$G(B
-$B$9!#$b$A$m$s(B Mule $B5!G=$r;}$C$?(B XEmacs $B$,I,MW$G$"$k$3$H$O8@$&$^$G$b$"$j(B
-$B$^$;$s!#(B
-$B$"$J$?$O(B .emacs $B%U%!%$%k$K<!$N#39T$r=q$$$F$*$/$3$H$K$h$C$F!"(Begg-sj3 $B$r(B
-$B;H$&$3$H$,$G$-$^$9!#(B
-
-(setq sj3-host-name "localhost") ; sj3serv $B$,Av$C$F$$$k%[%9%HL>$N;XDj(B
-(select-input-method "japanese-egg-sj3")
-(toggle-egg-mode)
-
-sj3serv $B$,Av$C$F$$$k%[%9%HL>$N;XDj$O!"$3$N0l9TL\$N5-=R$NBe$o$j$K4D6-JQ(B
-$B?t(B SJ3SERV $B$r;H$C$F;XDj$7$F$b9=$$$^$;$s!#(B
-$B$3$&$7$F5/F0$7$?(B XEmacs $B$G$O(B `C-\' $B$,F|K\8lF~NO$r%H%0%k$K(B ON/OFF $B$9$k(B
-$B%-!<$K$J$C$F$$$^$9!#(B
-
-
-SJ3$B$r;H$&>e$G$NCm0UE@(B
-
-$BFC$K$"$j$^$;$s$,!"(BWnn $B$J$I$+$i0\9T$7$??M$K$H$C$F$O(B M-x toroku-region 
-$B$G8l$rEPO?$9$k$H$-$NIJ;l$NA*Br;h$,!"(BWnn $B$H$O>/!90c$&$3$H$K$^$4$D$/$+$b(B
-$B$7$l$^$;$s!#(B
+## ISO2022$B$K$D$$$F$N4J7i$J5-=R(B
+## 93.2.28  modified by K.Handa <handa@etl.go.jp>
+## 93.8.5   modified by K.Handa <handa@etl.go.jp>
+## $BOBLu(B	1993080541	ZIC <zic@tci.toshiba.co.jp>
+
+#   $B0J2<$O!"4JC1$KM}2r$9$k$3$H$rL\E*$H$7$?$?$a!"(B
+#   $B!V87L)$G$O$J$$!WItJ,$,$"$k!#40A4$JM}2r$N$?$a$K$O!"(B
+#   ISO2022$B$N%*%j%8%J%k!&%I%-%e%a%s%H$r;2>H$7$FM_$7$$!#(B
+#   ($BLuCp(B: JISX0202$B$G$bF1$8(B)
+
+$BJ8;z=89g(B(character set; charset$B$HN,$9(B)$B$O!"$=$NJ8;z=89g$NJ8;z?t$K1~$8$F!"(B
+$B<!$K5s$2$k(B4$B<o$KJ,N`$5$l$k!#(B
+	94$BJ8;z=89g(B
+	96$BJ8;z=89g(B
+	94$B!_(B94$BJ8;z=89g(B
+	96$B!_(B96$BJ8;z=89g(B
+
+	94$BJ8;z=89g(B: ASCII(B), left(J) and right(I) half of JISX0201, ...
+	96$BJ8;z=89g(B: Latin-1(A), Latin-2(B), Latin-3(C), ...
+	94$B!_(B94$BJ8;z=89g(B: GB2312(A), JISX0208(B), KSC5601(C), ...
+	96$B!_(B96$BJ8;z=89g(B: $B8=;~E@$G$O3:Ev$J$7(B
+
+$BIW!9$NJ8;z=89g$NL>A0$KB3$/3g8LCf$NJ8;z$O!"(B
+$B$=$NJ8;z=89g$N<1JL;R$H4GPv$;$k=*C<J8;z(B<F>$B$G$"$k!#(B
+<F>$B$r$=$l$>$l$NJ8;z=89g$K3d$jEv$F$k$N$O!"(BECMA$B$G$"$k!#(B
+<F>$B$O!"(B0x30..0x7F$B$NHO0O$K$"$k$,!"(B
+$BFb(B0x30..0x3F$B$O%W%i%$%Y!<%HJ8;z=89g$K$N$_;HMQ$9$k!#(B
+
+$BCp(B: ECMA = European Computer Manufacturers Association
+    	   ($B2$=#7W;;5!@=B$6H<T6(2q(B)
+
+G0, G1, G2, G3$B$H8F$P$l$k(B4$B$D$NJ8;z=89gMQ$N%l%8%9%?$,$"$j!"(B
+$B$3$N$&$A$N(B1$B$D$KG$0U$NJ8;z=89g$r;X<((B(designate; $B0?$O3d$jEv$F(Bassign)$B$G$-$k!#(B
+
+(1$B%P%$%H(B)$B%3!<%INN0h$O!"(BC0, GL, C1, GR$B$N(B4$B$D$NNN0h$KJ,3d$5$l$k!#(B
+GL$B$H(BGR$B$H$O!"$=$l$>$l%l%8%9%?$NJ8;z=89g$r8F$S=P$9(B(invoke)$B>l=j$G$"$k!#(B
+	C0: 0x00 - 0x1F
+	GL: 0x20 - 0x7F
+	C1: 0x80 - 0x9F
+	GR: 0xA0 - 0xFF
+$BDL>o!"=i4|>uBV$K$*$$$F$O!"(BG0$B$,(BGL$B$K!"(BG1$B$,(BGR$B$K8F=P$5$l$F$$$k!#(B
+
+ISO2022$B$O!"(B7$B%S%C%H4D6-$H(B8$B%S%C%H4D6-$H$r6hJL$9$k!#(B
+7$B%S%C%H4D6-2<$G$O!"(BC0$B$H(BGL$B$N$_;HMQ$9$k!#(B
+
+$B;X<((B(designation)$B$O!"(B
+	ESC [I] I <F>
+$B$H$$$&7A$N%(%9%1!<%W!&%7!<%1%s%9$G9T$&!#(B
+$BLuCp(B:	[I] $B$O!"J#?tO"B3$9$k2DG=@-$N$"$k(B'I'$B$N0UL#(B
+$B$3$3$G(B'I'$B$OCf4VJ8;z(B(intermediate characters)$B$G$"$k!#(B
+$BCf4VJ8;z$N0UL#$O!"(B
+	$ [0x24]: $BB?%P%$%HJ8;z=89g$rI=$9(B(94$B!_(B94$B0?$O(B96$B!_(B96)
+	( [0x28]: G0$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
+	) [0x29]: G1$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
+	* [0x2A]: G2$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
+	+ [0x2B]: G3$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
+	- [0x2D]: G1$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
+	. [0x2E]: G2$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
+	/ [0x2F]: G3$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
+$B<!$N5,B'$O(BISO2022$B$G$O5v$7$F$$$J$$$,!"(BMule$B$G$O;HMQ$9$k!#(B
+	, [0x2C]: G0$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
+
+$B;X<($NNc$r5s$2$k!#(B
+	ESC ( B : ASCII $B$r(B G0 $B$K;X<((B
+	ESC - A : Latin-1 $B$r(B G1 $B$K;X<((B
+	ESC $ ( A $B0?$O(B ESC $ A : GB2312 $B$r(B G0 $B$K;X<((B
+	ESC $ ( B $B0?$O(B ESC $ B : JISX0208 $B$r(B G0 $B$K;X<((B
+	ESC $ ) C : KSC5601 $B$r(B G1 $B$K;X<((B
+
+G2$B0?$O(BG3$B$K;X<($7$?J8;z=89g$r;HMQ$9$k>l9g!"(B
+$B5Z$S(B7$B%S%C%H4D6-2<$G(BG1$B$K;X<($7$?J8;z=89g$r;HMQ$9$k>l9g$K$O!"(B
+G1, G2, G3$B$N$$$E$l$+$r(BGL$B$KL@<(E*$K8F$S=P$9I,MW$,$"$k!#(B
+2$BDL$j$N8F$S=P$7J}K!$,$"$C$F!"(B
+$B8F=PJ}K!$K$O!"%m%C%-%s%0!&%7%U%H(B($B0J8e$:$C$H(B)$B$H(B
+$B%7%s%0%k!&%7%U%H(B($BD>8e$N(B1$BJ8;z$N$_(B)$B$H$N(B2$BDL$j$,$"$k!#(B
+
+$B%m%C%-%s%0!&%7%U%H$O!"<!$N$h$&$K9T$&(B:
+	SI $B0?$O(B LS0: G0$B$r(BGL$B$K8F$S=P$9(B
+	SO $B0?$O(B LS1: G1$B$r(BGL$B$K8F$S=P$9(B
+	LS2: G2$B$r(BGL$B$K8F$S=P$9(B
+	LS3: G3$B$r(BGL$B$K8F$S=P$9(B
+	LS1R: G1$B$r(BGR$B$K8F$S=P$9(B
+	LS2R: G2$B$r(BGR$B$K8F$S=P$9(B
+	LS3R: G3$B$r(BGR$B$K8F$S=P$9(B
+
+$B%7%s%0%k!&%7%U%H$O!"<!$N$h$&$K9T$&(B:
+	SS2 $B0?$O(B ESC N: G2$B$r(BGL$B$K8F$S=P$9(B
+	SS3 $B0?$O(B ESC O: G3$B$r(BGL$B$K8F$S=P$9(B
+
+ISO2022$B$K1h$C$?B?9q8l$NI=8=(B(encoding)$BJ}K!$OB??t$"$k$3$H$K5$IU$/$@$m$&!#(B
+$B8=:_@$3&$G$O!"(BX$B$N%3%s%Q%&%s%I!&%F%-%9%H!"F|K\$N(BJUNET$B%3!<%I!"(B
+$B=j0b(BEUC(Extended UNIX Code)$BEy$NB?<oN`$NId9f7O(B(coding system)$B$,B8:_$7!"(B
+$B$3$l$iA4$F$,(BISO2022$B$NJQ<o(B(variant)$B$G$"$k!#(B
+
+Mule$B$K$*$$$F$O!"(BISO2022$B$r<!$NB0@-$GFCD'IU$1$?(B:
+	1. G0$B$+$i(BG3$B$X$N=i4|;X<((B
+	2. $BF|K\8l$HCf9q8l$N4JN,;X<((B(EUC$B$N$3$H(B)
+	3. $B@)8fJ8;z0JA0$K(BASCII$B$r(BG0$B$K;X<($9$Y$-$+(B?
+	4. $B9TKv;~E@$G!"(BASCII$B$r(BG0$B$K;X<($9$Y$-$+(B?
+	5. 7$B%S%C%H4D6-$+!"(B8$B%S%C%H4D6-$+(B
+	6. $B%m%C%-%s%0!&%7%U%H$r;HMQ$9$k$+H]$+(B
+$B<!$N(B2$BB0@-$O!"F|K\8l$K$N$_Ev$F$O$^$k(B:
+	7. ASCII $B$r;H$&$+(B JIS0201-1976-Roman$B$r;H$&$+(B
+	8. JISX0208-1983 $B$r;H$&$+(B JISX0208-1976$B$r;H$&$+(B
+$B$3$l$iB0@-$r;X<($9$k$3$H$G!"$"$i$f$k(BISO2022$B$NJQ<o$r:n$k$3$H$,$G$-$k!#(B
+
+$B4v$D$+Nc$r5s$2$k!#(B
+
+*junet* -- JUNET$B$G;HMQ$9$kId9f7O(B
+	1. G0 <- ASCII, G1..3 <- $B;HMQ$;$:(B
+	2. Yes.
+	3. Yes.
+	4. Yes.
+	5. 7$B%S%C%H4D6-(B
+	6. No.
+	7. ASCII$B$r;HMQ(B
+	8. JISX0208-1983$B$r;HMQ(B
+
+*ctext* -- $B%3%s%Q%&%s%I!&%F%-%9%H(B
+	1. G0 <- ASCII, G1 <- Latin-1, G2,3 <- $B;HMQ$;$:(B
+	2. No.
+	3. No.
+	4. Yes.
+	5. 8$B%S%C%H4D6-(B
+	6. No.
+	7. ASCII$B$r;HMQ(B
+	8. JISX0208-1983$B$r;HMQ(B
+
+*euc-china* -- $BCf9q8l(BEUC.  $B0lHL$K$O(B"GB encoding"$B$H8F$P$l$k$,!"(B
+				$B$3$NL>>N$O8m2r$r>7$/$+$bCN$l$J$$!#(B
+	1. G0 <- ASCII, G1 <- GB2312, G2,3 <- $B;HMQ$;$:(B
+	2. No.
+	3. Yes.
+	4. Yes.
+	5. 8$B%S%C%H4D6-(B
+	6. No.
+	7. ASCII$B$r;HMQ(B
+	8. JISX0208-1983$B$r;HMQ(B
+
+*korean-mail* -- $B4Z9q$N%M%C%H%o!<%/$G;HMQ$5$l$kId9f7O(B
+	1. G0 <- ASCII, G1 <- KSC5601, G2,3 <- $B;HMQ$;$:(B
+	2. No.
+	3. Yes.
+	4. Yes.
+	5. 7$B%S%C%H4D6-(B
+	6. Yes.
+	7. No.
+	8. No.
+
+Mule$B$O$3$NA4$F$NId9f7O$r%G%U%)%k%H$G:n@.$7$F$$$k!#(B

doc/ISO2022.jp

-## ISO2022$B$K$D$$$F$N4J7i$J5-=R(B
-## 93.2.28  modified by K.Handa <handa@etl.go.jp>
-## 93.8.5   modified by K.Handa <handa@etl.go.jp>
-## $BOBLu(B	1993080541	ZIC <zic@tci.toshiba.co.jp>
-
-#   $B0J2<$O!"4JC1$KM}2r$9$k$3$H$rL\E*$H$7$?$?$a!"(B
-#   $B!V87L)$G$O$J$$!WItJ,$,$"$k!#40A4$JM}2r$N$?$a$K$O!"(B
-#   ISO2022$B$N%*%j%8%J%k!&%I%-%e%a%s%H$r;2>H$7$FM_$7$$!#(B
-#   ($BLuCp(B: JISX0202$B$G$bF1$8(B)
-
-$BJ8;z=89g(B(character set; charset$B$HN,$9(B)$B$O!"$=$NJ8;z=89g$NJ8;z?t$K1~$8$F!"(B
-$B<!$K5s$2$k(B4$B<o$KJ,N`$5$l$k!#(B
-	94$BJ8;z=89g(B
-	96$BJ8;z=89g(B
-	94$B!_(B94$BJ8;z=89g(B
-	96$B!_(B96$BJ8;z=89g(B
-
-	94$BJ8;z=89g(B: ASCII(B), left(J) and right(I) half of JISX0201, ...
-	96$BJ8;z=89g(B: Latin-1(A), Latin-2(B), Latin-3(C), ...
-	94$B!_(B94$BJ8;z=89g(B: GB2312(A), JISX0208(B), KSC5601(C), ...
-	96$B!_(B96$BJ8;z=89g(B: $B8=;~E@$G$O3:Ev$J$7(B
-
-$BIW!9$NJ8;z=89g$NL>A0$KB3$/3g8LCf$NJ8;z$O!"(B
-$B$=$NJ8;z=89g$N<1JL;R$H4GPv$;$k=*C<J8;z(B<F>$B$G$"$k!#(B
-<F>$B$r$=$l$>$l$NJ8;z=89g$K3d$jEv$F$k$N$O!"(BECMA$B$G$"$k!#(B
-<F>$B$O!"(B0x30..0x7F$B$NHO0O$K$"$k$,!"(B
-$BFb(B0x30..0x3F$B$O%W%i%$%Y!<%HJ8;z=89g$K$N$_;HMQ$9$k!#(B
-
-$BCp(B: ECMA = European Computer Manufacturers Association
-    	   ($B2$=#7W;;5!@=B$6H<T6(2q(B)
-
-G0, G1, G2, G3$B$H8F$P$l$k(B4$B$D$NJ8;z=89gMQ$N%l%8%9%?$,$"$j!"(B
-$B$3$N$&$A$N(B1$B$D$KG$0U$NJ8;z=89g$r;X<((B(designate; $B0?$O3d$jEv$F(Bassign)$B$G$-$k!#(B
-
-(1$B%P%$%H(B)$B%3!<%INN0h$O!"(BC0, GL, C1, GR$B$N(B4$B$D$NNN0h$KJ,3d$5$l$k!#(B
-GL$B$H(BGR$B$H$O!"$=$l$>$l%l%8%9%?$NJ8;z=89g$r8F$S=P$9(B(invoke)$B>l=j$G$"$k!#(B
-	C0: 0x00 - 0x1F
-	GL: 0x20 - 0x7F
-	C1: 0x80 - 0x9F
-	GR: 0xA0 - 0xFF
-$BDL>o!"=i4|>uBV$K$*$$$F$O!"(BG0$B$,(BGL$B$K!"(BG1$B$,(BGR$B$K8F=P$5$l$F$$$k!#(B
-
-ISO2022$B$O!"(B7$B%S%C%H4D6-$H(B8$B%S%C%H4D6-$H$r6hJL$9$k!#(B
-7$B%S%C%H4D6-2<$G$O!"(BC0$B$H(BGL$B$N$_;HMQ$9$k!#(B
-
-$B;X<((B(designation)$B$O!"(B
-	ESC [I] I <F>
-$B$H$$$&7A$N%(%9%1!<%W!&%7!<%1%s%9$G9T$&!#(B
-$BLuCp(B:	[I] $B$O!"J#?tO"B3$9$k2DG=@-$N$"$k(B'I'$B$N0UL#(B
-$B$3$3$G(B'I'$B$OCf4VJ8;z(B(intermediate characters)$B$G$"$k!#(B
-$BCf4VJ8;z$N0UL#$O!"(B
-	$ [0x24]: $BB?%P%$%HJ8;z=89g$rI=$9(B(94$B!_(B94$B0?$O(B96$B!_(B96)
-	( [0x28]: G0$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
-	) [0x29]: G1$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
-	* [0x2A]: G2$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
-	+ [0x2B]: G3$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B94$BJ8;z=89g$r;X<($9$k(B
-	- [0x2D]: G1$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
-	. [0x2E]: G2$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
-	/ [0x2F]: G3$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
-$B<!$N5,B'$O(BISO2022$B$G$O5v$7$F$$$J$$$,!"(BMule$B$G$O;HMQ$9$k!#(B
-	, [0x2C]: G0$B$K=*C<J8;z$,(B<F>$B$G$"$k$h$&$J(B96$BJ8;z=89g$r;X<($9$k(B
-
-$B;X<($NNc$r5s$2$k!#(B
-	ESC ( B : ASCII $B$r(B G0 $B$K;X<((B
-	ESC - A : Latin-1 $B$r(B G1 $B$K;X<((B
-	ESC $ ( A $B0?$O(B ESC $ A : GB2312 $B$r(B G0 $B$K;X<((B
-	ESC $ ( B $B0?$O(B ESC $ B : JISX0208 $B$r(B G0 $B$K;X<((B
-	ESC $ ) C : KSC5601 $B$r(B G1 $B$K;X<((B
-
-G2$B0?$O(BG3$B$K;X<($7$?J8;z=89g$r;HMQ$9$k>l9g!"(B
-$B5Z$S(B7$B%S%C%H4D6-2<$G(BG1$B$K;X<($7$?J8;z=89g$r;HMQ$9$k>l9g$K$O!"(B
-G1, G2, G3$B$N$$$E$l$+$r(BGL$B$KL@<(E*$K8F$S=P$9I,MW$,$"$k!#(B
-2$BDL$j$N8F$S=P$7J}K!$,$"$C$F!"(B
-$B8F=PJ}K!$K$O!"%m%C%-%s%0!&%7%U%H(B($B0J8e$:$C$H(B)$B$H(B
-$B%7%s%0%k!&%7%U%H(B($BD>8e$N(B1$BJ8;z$N$_(B)$B$H$N(B2$BDL$j$,$"$k!#(B
-
-$B%m%C%-%s%0!&%7%U%H$O!"<!$N$h$&$K9T$&(B:
-	SI $B0?$O(B LS0: G0$B$r(BGL$B$K8F$S=P$9(B
-	SO $B0?$O(B LS1: G1$B$r(BGL$B$K8F$S=P$9(B
-	LS2: G2$B$r(BGL$B$K8F$S=P$9(B
-	LS3: G3$B$r(BGL$B$K8F$S=P$9(B
-	LS1R: G1$B$r(BGR$B$K8F$S=P$9(B
-	LS2R: G2$B$r(BGR$B$K8F$S=P$9(B
-	LS3R: G3$B$r(BGR$B$K8F$S=P$9(B
-
-$B%7%s%0%k!&%7%U%H$O!"<!$N$h$&$K9T$&(B:
-	SS2 $B0?$O(B ESC N: G2$B$r(BGL$B$K8F$S=P$9(B
-	SS3 $B0?$O(B ESC O: G3$B$r(BGL$B$K8F$S=P$9(B
-
-ISO2022$B$K1h$C$?B?9q8l$NI=8=(B(encoding)$BJ}K!$OB??t$"$k$3$H$K5$IU$/$@$m$&!#(B
-$B8=:_@$3&$G$O!"(BX$B$N%3%s%Q%&%s%I!&%F%-%9%H!"F|K\$N(BJUNET$B%3!<%I!"(B
-$B=j0b(BEUC(Extended UNIX Code)$BEy$NB?<oN`$NId9f7O(B(coding system)$B$,B8:_$7!"(B
-$B$3$l$iA4$F$,(BISO2022$B$NJQ<o(B(variant)$B$G$"$k!#(B
-
-Mule$B$K$*$$$F$O!"(BISO2022$B$r<!$NB0@-$GFCD'IU$1$?(B:
-	1. G0$B$+$i(BG3$B$X$N=i4|;X<((B
-	2. $BF|K\8l$HCf9q8l$N4JN,;X<((B(EUC$B$N$3$H(B)
-	3. $B@)8fJ8;z0JA0$K(BASCII$B$r(BG0$B$K;X<($9$Y$-$+(B?
-	4. $B9TKv;~E@$G!"(BASCII$B$r(BG0$B$K;X<($9$Y$-$+(B?
-	5. 7$B%S%C%H4D6-$+!"(B8$B%S%C%H4D6-$+(B
-	6. $B%m%C%-%s%0!&%7%U%H$r;HMQ$9$k$+H]$+(B
-$B<!$N(B2$BB0@-$O!"F|K\8l$K$N$_Ev$F$O$^$k(B:
-	7. ASCII $B$r;H$&$+(B JIS0201-1976-Roman$B$r;H$&$+(B
-	8. JISX0208-1983 $B$r;H$&$+(B JISX0208-1976$B$r;H$&$+(B
-$B$3$l$iB0@-$r;X<($9$k$3$H$G!"$"$i$f$k(BISO2022$B$NJQ<o$r:n$k$3$H$,$G$-$k!#(B
-
-$B4v$D$+Nc$r5s$2$k!#(B
-
-*junet* -- JUNET$B$G;HMQ$9$kId9f7O(B
-	1. G0 <- ASCII, G1..3 <- $B;HMQ$;$:(B
-	2. Yes.
-	3. Yes.
-	4. Yes.
-	5. 7$B%S%C%H4D6-(B
-	6. No.
-	7. ASCII$B$r;HMQ(B
-	8. JISX0208-1983$B$r;HMQ(B
-
-*ctext* -- $B%3%s%Q%&%s%I!&%F%-%9%H(B
-	1. G0 <- ASCII, G1 <- Latin-1, G2,3 <- $B;HMQ$;$:(B
-	2. No.
-	3. No.
-	4. Yes.
-	5. 8$B%S%C%H4D6-(B
-	6. No.
-	7. ASCII$B$r;HMQ(B
-	8. JISX0208-1983$B$r;HMQ(B
-
-*euc-china* -- $BCf9q8l(BEUC.  $B0lHL$K$O(B"GB encoding"$B$H8F$P$l$k$,!"(B
-				$B$3$NL>>N$O8m2r$r>7$/$+$bCN$l$J$$!#(B
-	1. G0 <- ASCII, G1 <- GB2312, G2,3 <- $B;HMQ$;$:(B
-	2. No.
-	3. Yes.
-	4. Yes.
-	5. 8$B%S%C%H4D6-(B
-	6. No.
-	7. ASCII$B$r;HMQ(B
-	8. JISX0208-1983$B$r;HMQ(B
-
-*korean-mail* -- $B4Z9q$N%M%C%H%o!<%/$G;HMQ$5$l$kId9f7O(B
-	1. G0 <- ASCII, G1 <- KSC5601, G2,3 <- $B;HMQ$;$:(B
-	2. No.
-	3. Yes.
-	4. Yes.
-	5. 7$B%S%C%H4D6-(B
-	6. Yes.
-	7. No.
-	8. No.
-
-Mule$B$O$3$NA4$F$NId9f7O$r%G%U%)%k%H$G:n@.$7$F$$$k!#(B
+This is an article posted to Mule mailing-list by Yoshiyuki Akiba.
+It describes what changes were necessary to install Mule on NeXT.
+Since the current Mule has already been patched for NeXT,
+all you have to do is (in config.h):
+#include <s-bsd4-3.h>
+#include <m-NeXT.h>
+
+============================================================
+Date: Fri, 12 Jun 92 10:22:51 JST
+From: akiba@cbs.canon.co.jp (Yoshiyuki Akiba)
+Return-Path: <akiba@cbs.canon.co.jp>
+To: mule@etl.go.jp
+In-Reply-To: Yoshiyuki Akiba's message of Thu, 4 Jun 92 10:00:35 JST <9206040100.AA17372@scarab.cbs.canon.co.jp>
+Subject: Patch for NeXT (Re: GNUS cause SEGV on NeXT)
+
+
+*$B$*$7$^$$$K(BNeXT$BMQ$N%Q%C%A(B(shar$B7A<0(B)$B$,$D$$$F$$$^$9(B*
+
+>>>>> akiba@cbs.canon.co.jp (Yoshiyuki Akiba) writes:
+akiba> $B:#=5$O$A$g$C$H!";~4V$,$H$l$^$;$s$,!"Mh=5Cf$K$OK\7o$NBP:v$b4^(B
+akiba> $B$a$F(BNeXT$BMQ%Q%C%A%-%C%H$r$*FO$1$G$-$k$H;W$$$^$9!#(B 
+
+NeXT$B>e$G(BGNUS$B$r5/F0$9$k$H(Bsegmentation fault$B$r5/$3$9860x$,(B
+$B$o$+$j$^$7$?!#0J2<$KD4$Y$?7k2L$r$^$H$a$F$*$-$^$9!#$*$7$^(B
+$B$$$K!"(Bmule$B$r(BNeXT$B>e$GF0$+$9$?$a$N%Q%C%A$r$D$1$F$*$-$^$9!#(B 
+
+$B%-%d%N%s3t<02q<R(B
+$B%3%s%T%e!<%?1~MQ%7%9%F%`5;=Q3+H/%;%s%?!<(B
+$B=)MU4nG7(B akiba@cbs.canon.co.jp
+
+-----
+[GNUS$B$,F0$+$J$+$C$?$o$1(B]
+
+GNUS$B$,(Bsegmentation fault$B$r5/$3$9860x$O(Bdump$B$7$?$"$H$N(Bmule
+(xemacs)$B$,(Bdump$BA0(B(temacs)$B$H0[$J$k%>!<%s$r;HMQ$7$F$?$?$a$G(B
+$B$7$?!#(B 
+
+[$B%>!<%s$H$O(B]
+
+NeXT$B$O%a%b%j3dEv$r%>!<%s$H$$$&C10L$G4IM}$7$^$9!#(B
+NXCreateZone()$B$G%>!<%s$r:n$j!"(BNXZoneMalloc()$B$G%>!<%s$+$i(B
+$B%a%b%j%V%m%C%/$r3d$jEv$F$^$9!#4XO"$N?<$$%*%V%8%'%/%H$rF1(B
+$B0l$N%>!<%s$K$^$H$a$k$3$H$G%Z!<%8%U%)!<%k%H$r8:$i$9$J$I%Q(B
+$B%U%)!<%^%s%9$N8~>e$KMxMQ$G$-$^$9!#(B 
+	malloc(size)
+$B$O!"$*$*$h$=(B
+	NXZoneMalloc(NXDefaultMallocZone(),size)
+$B$HEy2A$G$9!#(B 
+
+malloc()$B$O(BNXDefaultMallocZone()$B$+$i%a%b%j%V%m%C%/$r3MF@(B
+$B$7$^$9!#6u$-%V%m%C%/$O%>!<%s$4$H$KBg$-$5$H%V%m%C%/$X$N%](B
+$B%$%s%?$,J]B8$5$l$F$$$^$9!#(B 
+
+realloc()$B$N:]$K8eB3$K==J,$JBg$-$5$N6u$-%V%m%C%/$,$"$k>l(B
+$B9g!"$3$N6u$-%V%m%C%/$r;H$C$F;XDj$5$l$?%V%m%C%/$r3HD%$7$^(B
+$B$9!#6u$-%V%m%C%/$NBg$-$5$rJQ99$7$?>l9g%>!<%s$4$H$K4IM}$5(B
+$B$l$F$$$k6u$-%V%m%C%/$N>pJs$r99?7$7$h$&$H$7$^$9!#(Bdump$BA0$K(B
+$B$G$-$?6u$-%V%m%C%/$r!"(Bdump$B8e$K(Brealloc()$B$,;H$*$&$H$7$?>l(B
+$B9g!"K\MhB0$7$F$$$k%>!<%s$H0[$J$k%>!<%s$N6u$-%V%m%C%/>pJs(B
+$B$r99?7$9$k$3$H$K$J$C$F:#2s$N$h$&$J>I>u$,5/$-$^$9!#(B 
+
+$B$=$3$G!"(BNXCreateZone()$B$G(Bemacs$BMQ$N(Bzone$B$r:n$C$F!"(Bdump$BA08e(B
+$B$GF1$8%>!<%s$r;H$&$h$&$K$7$^$7$?!#(B 
+
+dump$BD>A0$N(BNXDefaultMallocZone()$B$r(Bdump$B8e$K%j%9%H%"$G$-$k(B
+$B$HNI$$$N$G$9$,!"(Bcrt0.o$B$NItJ,$K$"$k=i4|2=ItJ,$G?7$?$J%>!<(B
+$B%s$,:n$i$l$F$$$k$N$G!"%j%9%H%"$G$-$k$H$7$F$b(Bcrt0$B$r:n$jD>(B
+$B$9$3$H$K$J$C$FLLE]$J$N$G!":#2s$NJ}K!$r$H$j$^$7$?!#(B 
+
+*$B%Q%C%A$N;H$$J}(B*
+
+1. m-NeXT.h,unexNeXT.c$B$r%=!<%9$N%G%#%l%/%H%j$K0\F0(B
+2. patch-for-NeXT$B$G%Q%C%A$r$"$F$k(B
+3. s-bsd4-3.h,m-NeXT.h$B$r$D$+$C$F(Bmake$B$9$k!#(B
+
+$B0J2<$K!"%Q%C%A$K$h$k=$@5$N<g$JE@$r$"$2$F$*$-$^$9!#(B
+
+1) NeXT$B$GF0$/$h$&$K$7$?(B:-)
+
+unexNeXT.c$B$G(BMach-O$B%U%)!<%^%C%H$G(Bdump$B$G$-$k$h$&$K$7$?(B
+
+2) malloc,realloc,free$B$r(BNXZone{Mallo,Realloc,Free}$B$GCV$-49$($?(B
+
+malloc$B4X?t72$N;HMQ$9$k%>!<%s$r(Bdump$B8e$K%j%9%H%"$G$-$J$$$?(B
+$B$a@lMQ$N%>!<%s$r;HMQ$9$k$h$&$K$7$?(B 
+
+3) load-average$B$,@5$7$$CM$rJV$9$h$&$K$7$?(B
+
+processor_set_info()$B$G%m!<%I%"%Y%l!<%8$r<h$j=P$;$k$N$G$3(B
+$B$l$r;HMQ$7$?(B(kmem$B%0%k!<%W$N%Q!<%_%C%7%g%s$NI,MW$J$7(B)$B!#(B
+m-NeXT.h$B$G(BLOAD_AVE_MACH$B$r(Bundef$B$9$l$P=>MhDL$jJ}K!$G%m!<%I(B
+$B%"%Y%l!<%8$r(B/dev/kmem$B$+$iFI$_$@$=$&$H$9$k!#(B 
+
+3)$B$J$I!"$I$&$G$b$$$$$3$H$G$9$,!":n$C$F$_$^$7$?!#(B
+LOAD_AVE_CVT()$B$b0l1~(B($B$*$=$i$/(B:-)$B@5$7$$Dj5A$K$7$F$"$j$^$9!#(B
+
+#!/bin/sh
+# This is a shell archive (produced by shar 3.49)
+# To extract the files from this archive, save it to a file, remove
+# everything above the "!/bin/sh" line above, and type "sh file_name".
+#
+# made 06/09/1992 00:49 UTC by akiba@scarab
+# Source directory /clients/UnderConstruction/mule-0.9.4/src
+#
+# existing files will NOT be overwritten unless -c is specified
+#
+# This shar contains:
+# length  mode       name
+# ------ ---------- ------------------------------------------
+#   2819 -rw-r--r-- m-NeXT.h
+#   8482 -rw-r--r-- unexNeXT.c
+#   5202 -rw-r--r-- patch-for-NeXT
+#
+# ============= m-NeXT.h ==============
+if test -f 'm-NeXT.h' -a X"$1" != X"-c"; then
+	echo 'x - skipping m-NeXT.h (File already exists)'
+else
+echo 'x - extracting m-NeXT.h (Text)'
+sed 's/^X//' << 'SHAR_EOF' > 'm-NeXT.h' &&
+/* Configuration file for the NeXT machine. */
+/*    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+X
+This file is part of GNU Emacs.
+X
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY.  No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing.  Refer to the GNU Emacs General Public
+License for full details.
+X
+Everyone is granted permission to copy, modify and redistribute
+GNU Emacs, but only under the conditions described in the
+GNU Emacs General Public License.   A copy of this license is
+supposed to have been given to you along with GNU Emacs so you
+can know your rights and responsibilities.  It should be in a
+file named COPYING.  Among other things, the copyright notice
+and this notice must be preserved on all copies.  */
+X
+X
+/* The following three symbols give information on
+X the size of various data types.  */
+X
+#define SHORTBITS 16		/* Number of bits in a short */
+X
+#define INTBITS 32		/* Number of bits in an int */
+X
+#define LONGBITS 32		/* Number of bits in a long */
+X
+/* 68000 has lowest-numbered byte as most significant */
+X
+#define BIG_ENDIAN
+X
+/* Define how to take a char and sign-extend into an int.
+X   On machines where char is signed, this is a no-op.  */
+X
+#define SIGN_EXTEND_CHAR(c) (c)
+X
+/* Say this machine is a 68000 */
+X
+#ifndef m68000
+#define m68000
+#endif
+X
+/* Use type int rather than a union, to represent Lisp_Object */
+X
+#define NO_UNION_TYPE
+X
+/* XINT must explicitly sign-extend */
+X
+#define EXPLICIT_SIGN_EXTEND
+X
+#define LIB_STANDARD -lsys_s
+X
+/* define LOAD_AVE_MACH, load average to be obtained from other than kmem */
+X
+#define LOAD_AVE_MACH
+X
+/* Data type of load average, as read out of kmem.  */
+X
+#define LOAD_AVE_TYPE long
+X
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+#define	LSCALE	1000		/* defined in <sys/kernel.h> */
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / LSCALE)
+X
+/* KERNEL_FILE conflicts with some system header files */
+#undef	KERNEL_FILE
+#define	KERN_FILE "/mach"
+X
+#define environ _environ
+X
+#define NO_REMAP
+#define UNEXEC unexNeXT.o
+X
+/* not used in unexNeXT.c */
+#define TEXT_START 0 /* wrong: but nobody uses it anyway */
+#define TEXT_END get_etext()
+#define DATA_END get_edata()
+X
+#define HAVE_ALLOCA
+X
+#define SYSTEM_MALLOC
+X
+/* shoud be in s-mach.h */
+#define LD_SWITCH_SYSTEM -X -noseglinkedit
+#define C_SWITCH_SYSTEM -bsd
+X
+/* not to be included in ymakefile */
+#ifdef emacs
+#include <zone.h>
+extern NXZone *emacszone;
+#define malloc(size) NXZoneMalloc(emacszone,size)
+#define	realloc(ptr,size) NXZoneRealloc(emacszone,ptr,size)
+#define free(ptr) NXZoneFree(emacszone,ptr)
+#endif
+X
+/* quick hack */
+#define	READ_BUF_SIZE (1024*128)
+#define ZONESIZE 128
+SHAR_EOF
+chmod 0644 m-NeXT.h ||
+echo 'restore of m-NeXT.h failed'
+Wc_c="`wc -c < 'm-NeXT.h'`"
+test 2819 -eq "$Wc_c" ||
+	echo 'm-NeXT.h: original size 2819, current size' "$Wc_c"
+fi
+# ============= unexNeXT.c ==============
+if test -f 'unexNeXT.c' -a X"$1" != X"-c"; then
+	echo 'x - skipping unexNeXT.c (File already exists)'
+else
+echo 'x - extracting unexNeXT.c (Text)'
+sed 's/^X//' << 'SHAR_EOF' > 'unexNeXT.c' &&
+/*
+X * unexec for the NeXT Mach environment.
+X *
+X * Bradley Taylor (btaylor@NeXT.COM) 
+X * February 28, 1990
+X */
+#ifdef NeXT
+X
+#undef __STRICT_BSD__
+X
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <mach.h>
+#include <sys/loader.h>
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <libc.h>
+X
+X
+extern struct section *getsectbyname(char *, char *);
+X
+/*
+X * Kludge: we don't expect any program data beyond VM_HIGHDATA
+X * What is really needed is a way to find out from malloc() which
+X * pages it vm_allocated and write only those out into the data segment.
+X *
+X * This kludge may break when we stop using fixed virtual address
+X * shared libraries. Actually, emacs will probably continue working, but be 
+X * much larger on disk than it needs to be (because non-malloced data will
+X * be in the file).
+X */
+static const unsigned VM_HIGHDATA = 0x2000000;
+X
+typedef struct region_t {
+X	vm_address_t address;
+X	vm_size_t size;
+X	vm_prot_t protection;
+X	vm_prot_t max_protection;
+X	vm_inherit_t inheritance;
+X	boolean_t shared;
+X	port_t object_name;
+X	vm_offset_t offset;
+} region_t;
+X
+X
+static void
+grow(
+X     struct load_command ***the_commands,
+X     unsigned *the_commands_len
+X     )
+{
+X	if (*the_commands == NULL) {
+X		*the_commands_len = 1;
+X		*the_commands = malloc(sizeof(*the_commands));
+X	} else {
+X		(*the_commands_len)++;
+X		*the_commands = realloc(*the_commands, 
+X					(*the_commands_len *
+X					 sizeof(**the_commands)));
+X	}
+}
+X
+X
+static void
+save_command(
+X	     struct load_command *command,
+X	     struct load_command ***the_commands,
+X	     unsigned *the_commands_len
+X	     )
+{
+X	struct load_command **tmp;
+X
+X	grow(the_commands, the_commands_len);
+X	tmp = &(*the_commands)[*the_commands_len - 1];
+X	*tmp = malloc(command->cmdsize);
+X	bcopy(command, *tmp, command->cmdsize);
+}
+X
+static void
+fatal_unexec(char *format, ...)
+{
+X	va_list ap;
+X
+X	va_start(ap, format);
+X	fprintf(stderr, "unexec: ");
+X	vfprintf(stderr, format, ap);
+X	fprintf(stderr, "\n");
+X	va_end(ap);
+}
+X
+static int
+read_macho(
+X	   int fd,
+X	   struct mach_header *the_header,
+X	   struct load_command ***the_commands,
+X	   unsigned *the_commands_len
+X	   )
+{
+X	struct load_command command;
+X	struct load_command *buf;
+X	int i;
+X	int size;
+X
+X	if (read(fd, the_header, sizeof(*the_header)) != sizeof(*the_header)) {
+X		fatal_unexec("cannot read macho header");
+X		return (0);
+X	}
+X	for (i = 0; i < the_header->ncmds; i++) {
+X		if (read(fd, &command, sizeof(struct load_command)) != 
+X		    sizeof(struct load_command)) {
+X		  	fatal_unexec("cannot read macho load command header");
+X			return (0);
+X		}
+X		size = command.cmdsize - sizeof(struct load_command);
+X		if (size < 0) {
+X		  	fatal_unexec("bogus load command size");
+X			return (0);
+X		}
+X		buf = malloc(command.cmdsize);
+X		buf->cmd = command.cmd;
+X		buf->cmdsize = command.cmdsize;
+X		if (read(fd, ((char *)buf + 
+X			      sizeof(struct load_command)), 
+X			 size) != size) {
+X		  	fatal_unexec("cannot read load command data");
+X			return (0);
+X		}
+X		save_command(buf, the_commands, the_commands_len);
+X	}
+X	return (1);
+}
+X
+static int
+filldatagap(
+X	    vm_address_t start_address,
+X	    vm_size_t *size,
+X	    vm_address_t end_address
+X	    )
+{
+X	vm_address_t address;
+X	vm_size_t gapsize;
+X
+X	address = (start_address + *size);
+X	gapsize = end_address - address;
+X	*size += gapsize;
+X	if (vm_allocate(task_self(), &address, gapsize,
+X			FALSE) != KERN_SUCCESS) {
+X		fatal_unexec("cannot vm_allocate");
+X	        return (0);
+X	}
+X	return (1);
+}
+X
+static int
+get_data_region(
+X		vm_address_t *address,
+X		vm_size_t *size
+X		)
+{
+X	region_t region;
+X	kern_return_t ret;
+X	struct section *sect;
+X
+X	sect = getsectbyname(SEG_DATA, SECT_DATA);
+X	region.address = 0;
+X	*address = 0;
+X	for (;;) {
+X		ret = vm_region(task_self(), 
+X				&region.address, 
+X				&region.size, 
+X				&region.protection, 
+X				&region.max_protection, 
+X				&region.inheritance,
+X				&region.shared, 
+X				&region.object_name, 
+X				&region.offset);
+X		if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) {
+X			break;
+X		}
+X		if (*address != 0) {
+X			if (region.address > *address + *size) {
+X				if (!filldatagap(*address, size, 
+X						 region.address)) {
+X					return (0);
+X				}
+X			} 
+X			*size += region.size;
+X		} else {
+X			if (region.address == sect->addr) {
+X				*address = region.address;
+X				*size = region.size;
+X			} 
+X		}
+X		region.address += region.size;
+X	}
+X	return (1);
+}
+X
+static char *
+my_malloc(
+X	  vm_size_t size
+X	  )
+{
+X	vm_address_t address;
+X
+X	if (vm_allocate(task_self(), &address, size, TRUE) != KERN_SUCCESS) {
+X		return (NULL);
+X	}
+X	return ((char *)address);
+}
+X
+static void
+my_free(
+X	char *buf,
+X	vm_size_t size
+X	)
+{
+X	vm_deallocate(task_self(), (vm_address_t)buf, size);
+}
+X
+static int
+unexec_doit(
+X	    int infd,
+X	    int outfd
+X	    )
+{
+X	int i;
+X	struct load_command **the_commands = NULL;
+X	unsigned the_commands_len;
+X	struct mach_header the_header;
+X	int fgrowth;
+X	int fdatastart;
+X	int fdatasize;
+X	int size;
+X	struct stat st;
+X	char *buf;
+X	vm_address_t data_address;
+X	vm_size_t data_size;
+X
+X	struct segment_command *segment;
+X
+X	if (!read_macho(infd, &the_header, &the_commands, &the_commands_len)) {
+X		return (0);
+X	}
+X
+X
+X	{
+X	  extern int malloc_cookie;
+X	  malloc_cookie = malloc_freezedry();
+X	}
+X	if (!get_data_region(&data_address, &data_size)) {
+X		return (0);
+X	}
+X
+X
+X	/*
+X	 * DO NOT USE MALLOC IN THIS SECTION
+X	 */
+X	{
+X		/*
+X		 * Fix offsets
+X		 */
+X		for (i = 0; i < the_commands_len; i++) {
+X			switch (the_commands[i]->cmd) {
+X			case LC_SEGMENT:
+X				segment = ((struct segment_command *)
+X					   the_commands[i]);
+X				if (strcmp(segment->segname, SEG_DATA) == 0) {
+X					fdatastart = segment->fileoff;
+X					fdatasize = segment->filesize;
+X					fgrowth = (data_size - 
+X						   segment->filesize);
+X					segment->vmsize = data_size;
+X					segment->filesize = data_size;
+X				}
+X				break;
+X			case LC_SYMTAB:
+X				((struct symtab_command *)
+X				 the_commands[i])->symoff += fgrowth;
+X				((struct symtab_command *)
+X				 the_commands[i])->stroff += fgrowth;
+X				break;
+X			case LC_SYMSEG:
+X				((struct symseg_command *)
+X				 the_commands[i])->offset += fgrowth;
+X				break;
+X			default:
+X				break;
+X			}
+X		}
+X		
+X		/*
+X		 * Write header
+X		 */
+X		if (write(outfd, &the_header, 
+X			  sizeof(the_header)) != sizeof(the_header)) {
+X			fatal_unexec("cannot write output file");
+X			return (0);
+X		}
+X		
+X		/*
+X		 * Write commands
+X		 */
+X		for (i = 0; i < the_commands_len; i++) {
+X			if (write(outfd, the_commands[i], 
+X				  the_commands[i]->cmdsize) != 
+X			    the_commands[i]->cmdsize) {
+X			  	fatal_unexec("cannot write output file");
+X				return (0);
+X			}
+X		}
+X		
+X		/*
+X		 * Write original text
+X		 */
+X		if (lseek(infd, the_header.sizeofcmds + sizeof(the_header), 
+X			  L_SET) < 0) {
+X		  	fatal_unexec("cannot seek input file");
+X			return (0);
+X		}
+X		size = fdatastart - (sizeof(the_header) + 
+X				     the_header.sizeofcmds);
+X		buf = my_malloc(size);
+X		if (read(infd, buf, size) != size) {
+X			my_free(buf, size);
+X		  	fatal_unexec("cannot read input file");
+X		}
+X		if (write(outfd, buf, size) != size) {
+X			my_free(buf, size);
+X			fatal_unexec("cannot write output file");
+X			return (0);
+X		}
+X		my_free(buf, size);
+X		
+X		
+X		/*
+X		 * Write new data
+X		 */
+X		if (write(outfd, (char *)data_address, 
+X			  data_size) != data_size) {
+X			fatal_unexec("cannot write output file");
+X			return (0);
+X		}
+X		
+X	}
+X
+X	/*
+X	 * OKAY TO USE MALLOC NOW
+X	 */
+X
+X	/*
+X	 * Write rest of file
+X	 */
+X	fstat(infd, &st);
+X	if (lseek(infd, fdatasize, L_INCR) < 0) {
+X		fatal_unexec("cannot seek input file");
+X		return (0);
+X	}
+X	size = st.st_size - lseek(infd, 0, L_INCR);
+X
+X	buf = malloc(size);
+X	if (read(infd, buf, size) != size) {
+X		free(buf);
+X		fatal_unexec("cannot read input file");
+X		return (0);
+X	}
+X	if (write(outfd, buf, size) != size) {
+X		free(buf);
+X		fatal_unexec("cannot write output file");
+X		return (0);
+X	}
+X	free(buf);
+X	return (1);
+}
+X
+void
+unexec(
+X       char *outfile,
+X       char *infile
+X       )
+{
+X	int infd;
+X	int outfd;
+X	char tmpbuf[L_tmpnam];
+X	char *tmpfile;
+X
+X	infd = open(infile, O_RDONLY, 0);
+X	if (infd < 0) {
+X	  	fatal_unexec("cannot open input file `%s'", infile);
+X		exit(1);
+X	}
+X	
+X	tmpnam(tmpbuf);
+X	tmpfile = rindex(tmpbuf, '/');
+X	if (tmpfile == NULL) {
+X		tmpfile = tmpbuf;
+X	} else {
+X		tmpfile++;
+X	}
+X	outfd = open(tmpfile, O_WRONLY|O_TRUNC|O_CREAT, 0755);
+X	if (outfd < 0) {
+X		close(infd);
+X		fatal_unexec("cannot open tmp file `%s'", tmpfile);
+X		exit(1);
+X	}
+X	if (!unexec_doit(infd, outfd)) {
+X		close(infd);
+X		close(outfd);
+X		unlink(tmpfile);
+X		exit(1);
+X	}
+X	close(infd);
+X	close(outfd);
+X	if (rename(tmpfile, outfile) < 0) {
+X		unlink(tmpfile);
+X		fatal_unexec("cannot rename `%s' to `%s'", tmpfile, outfile);
+X		exit(1);
+X	}
+}
+#endif
+X
+SHAR_EOF
+chmod 0644 unexNeXT.c ||
+echo 'restore of unexNeXT.c failed'
+Wc_c="`wc -c < 'unexNeXT.c'`"
+test 8482 -eq "$Wc_c" ||
+	echo 'unexNeXT.c: original size 8482, current size' "$Wc_c"
+fi
+# ============= patch-for-NeXT ==============
+if test -f 'patch-for-NeXT' -a X"$1" != X"-c"; then
+	echo 'x - skipping patch-for-NeXT (File already exists)'
+else
+echo 'x - extracting patch-for-NeXT (Text)'
+sed 's/^X//' << 'SHAR_EOF' > 'patch-for-NeXT' &&
+diff -rc tmp/mule-0.9.4/src/emacs.c mule-0.9.4/src/emacs.c
+*** tmp/mule-0.9.4/src/emacs.c	Thu May 28 16:34:57 1992
+--- mule-0.9.4/src/emacs.c	Tue Jun  9 09:05:54 1992
+***************
+*** 229,234 ****
+--- 229,240 ----
+X  #endif /* LINK_CRTL_SHARE */
+X  #endif /* VMS */
+X  
++ #ifdef NeXT
++ #include <mach.h>
++ int malloc_cookie;
++ NXZone *emacszone;
++ #endif
++ 
+X  /* ARGSUSED */
+X  main (argc, argv, envp)
+X       int argc;
+***************
+*** 238,243 ****
+--- 244,260 ----
+X    int skip_args = 0;
+X    extern int errno;
+X    extern void malloc_warning ();
++ 
++ #ifdef NeXT
++   if (initialized) {
++     if (malloc_jumpstart(malloc_cookie) != 0)
++       fatal("malloc jumpstart failed!\n");
++   } else {
++     emacszone = NXCreateZone(ZONESIZE*vm_page_size,vm_page_size,1);
++     if(emacszone == NX_NOZONE)
++       fatal("can't create emacs zone.\n");
++   }
++ #endif
+X  
+X  /* Map in shared memory, if we are using that.  */
+X  #ifdef HAVE_SHM
+diff -rc tmp/mule-0.9.4/src/fileio.c mule-0.9.4/src/fileio.c
+*** tmp/mule-0.9.4/src/fileio.c	Thu May 28 16:34:58 1992
+--- mule-0.9.4/src/fileio.c	Mon Jun  8 18:48:52 1992
+***************
+*** 1586,1592 ****
+--- 1586,1594 ----
+X    close (XFASTINT (fd));
+X  }
+X  
++ #ifndef READ_BUF_SIZE
+X  #define READ_BUF_SIZE 1048576	/* 92.5.28 by K.Handa */
++ #endif
+X  
+X  DEFUN ("insert-file-contents", Finsert_file_contents, Sinsert_file_contents,
+X    1, 3, 0,
+diff -rc tmp/mule-0.9.4/src/fns.c mule-0.9.4/src/fns.c
+*** tmp/mule-0.9.4/src/fns.c	Thu May 28 16:29:46 1992
+--- mule-0.9.4/src/fns.c	Tue Jun  9 09:03:05 1992
+***************
+*** 1118,1123 ****
+--- 1118,1126 ----
+X      }
+X  }
+X  
++ #ifdef LOAD_AVE_MACH
++ #include <mach.h>
++ #else
+X  /* Avoid static vars inside a function since in HPUX they dump as pure.  */
+X  #ifdef DGUX
+X  static struct dg_sys_info_load_info load_info;  /* what-a-mouthful! */
+***************
+*** 1136,1141 ****
+--- 1139,1145 ----
+X  #define initialized ldav_initialized
+X  #define nl ldav_nl
+X  #endif /* Not DGUX */
++ #endif /* not LOAD_AVE_MACH */
+X  
+X  DEFUN ("load-average", Fload_average, Sload_average, 0, 0, 0,
+X    "Return the current 1 minute, 5 minute and 15 minute load averages\n\
+***************
+*** 1143,1148 ****
+--- 1147,1177 ----
+X  and then turned into integers).")
+X    ()
+X  {
++ #ifdef	LOAD_AVE_MACH
++    kern_return_t                    error;
++    host_t                           host;
++    unsigned int                     info_count;
++    struct processor_set_basic_info  info;
++    processor_set_t                  default_set;
++    
++    int load_ave = 0;
++ /* int mach_fac = 0; mach factor(not used)*/
++ 
++    error=processor_set_default(host_self(), &default_set);
++    if (error==KERN_SUCCESS){
++ 	info_count=PROCESSOR_SET_BASIC_INFO_COUNT;
++ 	error=processor_set_info(default_set, PROCESSOR_SET_BASIC_INFO,
++ 	   &host, (processor_set_info_t)&info, &info_count);
++ 	if (error == KERN_SUCCESS) {
++ 	   load_ave = (int)((float)info.load_average * 100.0 / LOAD_SCALE);
++ /*	   mach_fac = (int)((float)info.mach_factor  * 100.0 / LOAD_SCALE); */
++ 	}
++    }
++ 
++    return Fcons (make_number (load_ave),
++ 		Fcons (make_number (load_ave),
++ 		       Fcons (make_number (load_ave), Qnil)));
++ #else /* not LOAD_AVE_MACH */
+X  #ifdef DGUX
+X    /* perhaps there should be a "sys_load_avg" call in sysdep.c?! - DJB */
+X    load_info.one_minute     = 0.0;	/* just in case there is an error */
+***************
+*** 1225,1237 ****
+X        strcpy (nl[0].n_name, LDAV_SYMBOL);
+X        nl[1].n_zeroes = 0;
+X  #else /* NLIST_STRUCT */
+! #ifdef convex
+X        nl[0].n_un.n_name = LDAV_SYMBOL;
+X        nl[1].n_un.n_name = 0;
+! #else /* not convex */
+X        nl[0].n_name = LDAV_SYMBOL;
+X        nl[1].n_name = 0;
+! #endif /* not convex */
+X  #endif /* NLIST_STRUCT */
+X  
+X  #ifdef IRIS_4D
+--- 1254,1266 ----
+X        strcpy (nl[0].n_name, LDAV_SYMBOL);
+X        nl[1].n_zeroes = 0;
+X  #else /* NLIST_STRUCT */
+! #if defined(convex) || defined(NeXT)
+X        nl[0].n_un.n_name = LDAV_SYMBOL;
+X        nl[1].n_un.n_name = 0;
+! #else /* not convex, not NeXT */
+X        nl[0].n_name = LDAV_SYMBOL;
+X        nl[1].n_name = 0;
+! #endif /* not convex, not NeXT */
+X  #endif /* NLIST_STRUCT */
+X  
+X  #ifdef IRIS_4D
+***************
+*** 1242,1248 ****
+--- 1271,1281 ----
+X  	    nl[0].n_value &= 0x7fffffff;
+X  	}
+X  #else
++ #ifdef KERN_FILE
++       nlist (KERN_FILE, nl);
++ #else
+X        nlist (KERNEL_FILE, nl);
++ #endif
+X  #endif /* IRIS */
+X  
+X  #ifdef FIXUP_KERNEL_SYMBOL_ADDR
+***************
+*** 1288,1293 ****
+--- 1321,1327 ----
+X  			      Qnil)));
+X  #endif /* LOAD_AVE_TYPE */
+X  #endif /* not DGUX */
++ #endif /* not LOAD_AVE_MACH */
+X  }
+X  
+X  #undef channel
+diff -rc tmp/mule-0.9.4/src/lisp.h mule-0.9.4/src/lisp.h
+*** tmp/mule-0.9.4/src/lisp.h	Thu May 28 16:29:53 1992
+--- mule-0.9.4/src/lisp.h	Tue Jun  9 09:08:30 1992
+***************
+*** 1007,1013 ****
+X  
+X  extern void debugger ();
+X  
+! extern char *malloc (), *realloc (), *getenv (), *ctime (), *getwd ();
+X  extern long *xmalloc (), *xrealloc ();
+X  
+X  #ifdef MAINTAIN_ENVIRONMENT
+--- 1007,1016 ----
+X  
+X  extern void debugger ();
+X  
+! #ifndef malloc
+! extern char *malloc (), *realloc ();
+! #endif
+! extern char *getenv (), *ctime (), *getwd ();
+X  extern long *xmalloc (), *xrealloc ();
+X  
+X  #ifdef MAINTAIN_ENVIRONMENT
+SHAR_EOF
+chmod 0644 patch-for-NeXT ||
+echo 'restore of patch-for-NeXT failed'
+Wc_c="`wc -c < 'patch-for-NeXT'`"
+test 5202 -eq "$Wc_c" ||
+	echo 'patch-for-NeXT: original size 5202, current size' "$Wc_c"
+fi
+exit 0
+
+--
+$B%-%d%N%s3t<02q<R(B
+$B%3%s%T%e!<%?1~MQ%7%9%F%`5;=Q3+H/%;%s%?!<(B
+$B=)MU4nG7(B akiba@cbs.canon.co.jp
+
+============================================================
+Date: Mon, 15 Jun 92 10:20:23 JST
+From: akiba@cbs.canon.co.jp (Yoshiyuki Akiba)
+Return-Path: <akiba@cbs.canon.co.jp>
+To: mule@etl.go.jp
+In-Reply-To: Yoshiyuki Akiba's message of Fri, 12 Jun 92 10:22:51 JST <9206120122.AA19043@scarab.cbs.canon.co.jp>
+Subject: Re: Patch for NeXT
+
+
+*jserver$B$b(BNeXT$B>e$GF0$+$7$?$$J}$K(B*
+
+jserver$B$b(BNeXT$B>e$GF0$+$9$3$H$,$G$-$^$9$,!"(Bkill$B$9$k$H$-$K(B 
+PANIC $B$r5/$3$7$^$9!#860x$O!";HMQ$7$F$$$J$$%=%1%C%H$r(B
+shutdown()$B$7$F$$$k$?$a$G$9!#<!$N%Q%C%A$G2sHr$G$-$^$9!#(B 
+
+(Wnn 4.03$B$N;~$N%Q%C%A$J$N$G!"$=$N$^$^$G$O$"$?$i$J$$$+$b(B
+$BCN$l$^$;$s$,NL$,>/$J$$$N$G$3$l$G4*J[$7$F2<$5$$!#(B:-)
+
+diff -rcN Wnn/jserver/de.c wnn/jserver/de.c
+*** Wnn/jserver/de.c	Fri Aug 30 15:52:39 1991
+--- wnn/jserver/de.c	Fri Aug 30 17:26:14 1991
+***************
+*** 459,465 ****
+      shutdown(sock_d_in, 2);
+      close(sock_d_in);
+  
+!     for (fd = nofile; fd >= 0; fd--) {
+  	shutdown(fd, 2);
+  	close(fd);
+      }
+--- 470,477 ----
+      shutdown(sock_d_in, 2);
+      close(sock_d_in);
+  
+!     for (fd = nofile-1; fd >= 0; fd--) {
+!       if( (fd!=sock_d_in)&&(fd!=sock_d_un)&&sock_tst(all_socks, fd) )
+  	shutdown(fd, 2);
+  	close(fd);
+      }
+--
+$B%-%d%N%s3t<02q<R(B
+$B%3%s%T%e!<%?1~MQ%7%9%F%`5;=Q3+H/%;%s%?!<(B
+$B=)MU4nG7(B akiba@cbs.canon.co.jp
+

doc/NeXT.jp

-This is an article posted to Mule mailing-list by Yoshiyuki Akiba.
-It describes what changes were necessary to install Mule on NeXT.
-Since the current Mule has already been patched for NeXT,
-all you have to do is (in config.h):
-#include <s-bsd4-3.h>
-#include <m-NeXT.h>
-
-============================================================
-Date: Fri, 12 Jun 92 10:22:51 JST
-From: akiba@cbs.canon.co.jp (Yoshiyuki Akiba)
-Return-Path: <akiba@cbs.canon.co.jp>
-To: mule@etl.go.jp
-In-Reply-To: Yoshiyuki Akiba's message of Thu, 4 Jun 92 10:00:35 JST <9206040100.AA17372@scarab.cbs.canon.co.jp>
-Subject: Patch for NeXT (Re: GNUS cause SEGV on NeXT)
-
-
-*$B$*$7$^$$$K(BNeXT$BMQ$N%Q%C%A(B(shar$B7A<0(B)$B$,$D$$$F$$$^$9(B*
-
->>>>> akiba@cbs.canon.co.jp (Yoshiyuki Akiba) writes:
-akiba> $B:#=5$O$A$g$C$H!";~4V$,$H$l$^$;$s$,!"Mh=5Cf$K$OK\7o$NBP:v$b4^(B
-akiba> $B$a$F(BNeXT$BMQ%Q%C%A%-%C%H$r$*FO$1$G$-$k$H;W$$$^$9!#(B 
-
-NeXT$B>e$G(BGNUS$B$r5/F0$9$k$H(Bsegmentation fault$B$r5/$3$9860x$,(B
-$B$o$+$j$^$7$?!#0J2<$KD4$Y$?7k2L$r$^$H$a$F$*$-$^$9!#$*$7$^(B
-$B$$$K!"(Bmule$B$r(BNeXT$B>e$GF0$+$9$?$a$N%Q%C%A$r$D$1$F$*$-$^$9!#(B 
-
-$B%-%d%N%s3t<02q<R(B
-$B%3%s%T%e!<%?1~MQ%7%9%F%`5;=Q3+H/%;%s%?!<(B
-$B=)MU4nG7(B akiba@cbs.canon.co.jp
-
------
-[GNUS$B$,F0$+$J$+$C$?$o$1(B]
-
-GNUS$B$,(Bsegmentation fault$B$r5/$3$9860x$O(Bdump$B$7$?$"$H$N(Bmule
-(xemacs)$B$,(Bdump$BA0(B(temacs)$B$H0[$J$k%>!<%s$r;HMQ$7$F$?$?$a$G(B
-$B$7$?!#(B 
-
-[$B%>!<%s$H$O(B]
-
-NeXT$B$O%a%b%j3dEv$r%>!<%s$H$$$&C10L$G4IM}$7$^$9!#(B
-NXCreateZone()$B$G%>!<%s$r:n$j!"(BNXZoneMalloc()$B$G%>!<%s$+$i(B
-$B%a%b%j%V%m%C%/$r3d$jEv$F$^$9!#4XO"$N?<$$%*%V%8%'%/%H$rF1(B
-$B0l$N%>!<%s$K$^$H$a$k$3$H$G%Z!<%8%U%)!<%k%H$r8:$i$9$J$I%Q(B
-$B%U%)!<%^%s%9$N8~>e$KMxMQ$G$-$^$9!#(B 
-	malloc(size)
-$B$O!"$*$*$h$=(B
-	NXZoneMalloc(NXDefaultMallocZone(),size)
-$B$HEy2A$G$9!#(B 
-
-malloc()$B$O(BNXDefaultMallocZone()$B$+$i%a%b%j%V%m%C%/$r3MF@(B
-$B$7$^$9!#6u$-%V%m%C%/$O%>!<%s$4$H$KBg$-$5$H%V%m%C%/$X$N%](B
-$B%$%s%?$,J]B8$5$l$F$$$^$9!#(B 
-
-realloc()$B$N:]$K8eB3$K==J,$JBg$-$5$N6u$-%V%m%C%/$,$"$k>l(B
-$B9g!"$3$N6u$-%V%m%C%/$r;H$C$F;XDj$5$l$?%V%m%C%/$r3HD%$7$^(B
-$B$9!#6u$-%V%m%C%/$NBg$-$5$rJQ99$7$?>l9g%>!<%s$4$H$K4IM}$5(B
-$B$l$F$$$k6u$-%V%m%C%/$N>pJs$r99?7$7$h$&$H$7$^$9!#(Bdump$BA0$K(B
-$B$G$-$?6u$-%V%m%C%/$r!"(Bdump$B8e$K(Brealloc()$B$,;H$*$&$H$7$?>l(B
-$B9g!"K\MhB0$7$F$$$k%>!<%s$H0[$J$k%>!<%s$N6u$-%V%m%C%/>pJs(B
-$B$r99?7$9$k$3$H$K$J$C$F:#2s$N$h$&$J>I>u$,5/$-$^$9!#(B 
-
-$B$=$3$G!"(BNXCreateZone()$B$G(Bemacs$BMQ$N(Bzone$B$r:n$C$F!"(Bdump$BA08e(B
-$B$GF1$8%>!<%s$r;H$&$h$&$K$7$^$7$?!#(B 
-
-dump$BD>A0$N(BNXDefaultMallocZone()$B$r(Bdump$B8e$K%j%9%H%"$G$-$k(B
-$B$HNI$$$N$G$9$,!"(Bcrt0.o$B$NItJ,$K$"$k=i4|2=ItJ,$G?7$?$J%>!<(B
-$B%s$,:n$i$l$F$$$k$N$G!"%j%9%H%"$G$-$k$H$7$F$b(Bcrt0$B$r:n$jD>(B
-$B$9$3$H$K$J$C$FLLE]$J$N$G!":#2s$NJ}K!$r$H$j$^$7$?!#(B 
-
-*$B%Q%C%A$N;H$$J}(B*
-
-1. m-NeXT.h,unexNeXT.c$B$r%=!<%9$N%G%#%l%/%H%j$K0\F0(B
-2. patch-for-NeXT$B$G%Q%C%A$r$"$F$k(B
-3. s-bsd4-3.h,m-NeXT.h$B$r$D$+$C$F(Bmake$B$9$k!#(B
-
-$B0J2<$K!"%Q%C%A$K$h$k=$@5$N<g$JE@$r$"$2$F$*$-$^$9!#(B
-
-1) NeXT$B$GF0$/$h$&$K$7$?(B:-)
-
-unexNeXT.c$B$G(BMach-O$B%U%)!<%^%C%H$G(Bdump$B$G$-$k$h$&$K$7$?(B
-
-2) malloc,realloc,free$B$r(BNXZone{Mallo,Realloc,Free}$B$GCV$-49$($?(B
-
-malloc$B4X?t72$N;HMQ$9$k%>!<%s$r(Bdump$B8e$K%j%9%H%"$G$-$J$$$?(B
-$B$a@lMQ$N%>!<%s$r;HMQ$9$k$h$&$K$7$?(B 
-
-3) load-average$B$,@5$7$$CM$rJV$9$h$&$K$7$?(B
-
-processor_set_info()$B$G%m!<%I%"%Y%l!<%8$r<h$j=P$;$k$N$G$3(B
-$B$l$r;HMQ$7$?(B(kmem$B%0%k!<%W$N%Q!<%_%C%7%g%s$NI,MW$J$7(B)$B!#(B
-m-NeXT.h$B$G(BLOAD_AVE_MACH$B$r(Bundef$B$9$l$P=>MhDL$jJ}K!$G%m!<%I(B
-$B%"%Y%l!<%8$r(B/dev/kmem$B$+$iFI$_$@$=$&$H$9$k!#(B 
-
-3)$B$J$I!"$I$&$G$b$$$$$3$H$G$9$,!":n$C$F$_$^$7$?!#(B
-LOAD_AVE_CVT()$B$b0l1~(B($B$*$=$i$/(B:-)$B@5$7$$Dj5A$K$7$F$"$j$^$9!#(B
-
-#!/bin/sh
-# This is a shell archive (produced by shar 3.49)
-# To extract the files from this archive, save it to a file, remove
-# everything above the "!/bin/sh" line above, and type "sh file_name".
-#
-# made 06/09/1992 00:49 UTC by akiba@scarab
-# Source directory /clients/UnderConstruction/mule-0.9.4/src
-#
-# existing files will NOT be overwritten unless -c is specified
-#
-# This shar contains:
-# length  mode       name
-# ------ ---------- ------------------------------------------
-#   2819 -rw-r--r-- m-NeXT.h
-#   8482 -rw-r--r-- unexNeXT.c
-#   5202 -rw-r--r-- patch-for-NeXT
-#
-# ============= m-NeXT.h ==============
-if test -f 'm-NeXT.h' -a X"$1" != X"-c"; then
-	echo 'x - skipping m-NeXT.h (File already exists)'
-else
-echo 'x - extracting m-NeXT.h (Text)'
-sed 's/^X//' << 'SHAR_EOF' > 'm-NeXT.h' &&
-/* Configuration file for the NeXT machine. */
-/*    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
-X
-This file is part of GNU Emacs.
-X
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY.  No author or distributor
-accepts responsibility to anyone for the consequences of using it
-or for whether it serves any particular purpose or works at all,
-unless he says so in writing.  Refer to the GNU Emacs General Public
-License for full details.
-X
-Everyone is granted permission to copy, modify and redistribute
-GNU Emacs, but only under the conditions described in the
-GNU Emacs General Public License.   A copy of this license is
-supposed to have been given to you along with GNU Emacs so you
-can know your rights and responsibilities.  It should be in a
-file named COPYING.  Among other things, the copyright notice
-and this notice must be preserved on all copies.  */
-X
-X
-/* The following three symbols give information on
-X the size of various data types.  */
-X
-#define SHORTBITS 16		/* Number of bits in a short */
-X
-#define INTBITS 32		/* Number of bits in an int */
-X
-#define LONGBITS 32		/* Number of bits in a long */
-X
-/* 68000 has lowest-numbered byte as most significant */
-X
-#define BIG_ENDIAN
-X
-/* Define how to take a char and sign-extend into an int.
-X   On machines where char is signed, this is a no-op.  */
-X
-#define SIGN_EXTEND_CHAR(c) (c)
-X
-/* Say this machine is a 68000 */
-X
-#ifndef m68000
-#define m68000
-#endif
-X
-/* Use type int rather than a union, to represent Lisp_Object */
-X
-#define NO_UNION_TYPE
-X
-/* XINT must explicitly sign-extend */
-X
-#define EXPLICIT_SIGN_EXTEND
-X
-#define LIB_STANDARD -lsys_s
-X
-/* define LOAD_AVE_MACH, load average to be obtained from other than kmem */
-X
-#define LOAD_AVE_MACH
-X
-/* Data type of load average, as read out of kmem.  */
-X
-#define LOAD_AVE_TYPE long
-X
-/* Convert that into an integer that is 100 for a load average of 1.0  */
-#define	LSCALE	1000		/* defined in <sys/kernel.h> */
-#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / LSCALE)
-X
-/* KERNEL_FILE conflicts with some system header files */
-#undef	KERNEL_FILE
-#define	KERN_FILE "/mach"
-X
-#define environ _environ
-X
-#define NO_REMAP
-#define UNEXEC unexNeXT.o
-X
-/* not used in unexNeXT.c */
-#define TEXT_START 0 /* wrong: but nobody uses it anyway */
-#define TEXT_END get_etext()
-#define DATA_END get_edata()
-X
-#define HAVE_ALLOCA
-X
-#define SYSTEM_MALLOC
-X
-/* shoud be in s-mach.h */
-#define LD_SWITCH_SYSTEM -X -noseglinkedit
-#define C_SWITCH_SYSTEM -bsd
-X
-/* not to be included in ymakefile */
-#ifdef emacs
-#include <zone.h>
-extern NXZone *emacszone;
-#define malloc(size) NXZoneMalloc(emacszone,size)
-#define	realloc(ptr,size) NXZoneRealloc(emacszone,ptr,size)
-#define free(ptr) NXZoneFree(emacszone,ptr)
-#endif
-X
-/* quick hack */
-#define	READ_BUF_SIZE (1024*128)
-#define ZONESIZE 128
-SHAR_EOF
-chmod 0644 m-NeXT.h ||
-echo 'restore of m-NeXT.h failed'
-Wc_c="`wc -c < 'm-NeXT.h'`"
-test 2819 -eq "$Wc_c" ||
-	echo 'm-NeXT.h: original size 2819, current size' "$Wc_c"
-fi
-# ============= unexNeXT.c ==============
-if test -f 'unexNeXT.c' -a X"$1" != X"-c"; then
-	echo 'x - skipping unexNeXT.c (File already exists)'
-else
-echo 'x - extracting unexNeXT.c (Text)'
-sed 's/^X//' << 'SHAR_EOF' > 'unexNeXT.c' &&
-/*
-X * unexec for the NeXT Mach environment.
-X *
-X * Bradley Taylor (btaylor@NeXT.COM) 
-X * February 28, 1990
-X */
-#ifdef NeXT
-X
-#undef __STRICT_BSD__
-X
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <mach.h>
-#include <sys/loader.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <libc.h>
-X
-X
-extern struct section *getsectbyname(char *, char *);
-X
-/*
-X * Kludge: we don't expect any program data beyond VM_HIGHDATA
-X * What is really needed is a way to find out from malloc() which
-X * pages it vm_allocated and write only those out into the data segment.
-X *
-X * This kludge may break when we stop using fixed virtual address
-X * shared libraries. Actually, emacs will probably continue working, but be 
-X * much larger on disk than it needs to be (because non-malloced data will
-X * be in the file).
-X */
-static const unsigned VM_HIGHDATA = 0x2000000;
-X
-typedef struct region_t {
-X	vm_address_t address;
-X	vm_size_t size;
-X	vm_prot_t protection;
-X	vm_prot_t max_protection;
-X	vm_inherit_t inheritance;
-X	boolean_t shared;
-X	port_t object_name;
-X	vm_offset_t offset;
-} region_t;
-X
-X
-static void
-grow(
-X     struct load_command ***the_commands,
-X     unsigned *the_commands_len
-X     )
-{
-X	if (*the_commands == NULL) {
-X		*the_commands_len = 1;
-X		*the_commands = malloc(sizeof(*the_commands));
-X	} else {
-X		(*the_commands_len)++;
-X		*the_commands = realloc(*the_commands, 
-X					(*the_commands_len *
-X					 sizeof(**the_commands)));
-X	}
-}
-X
-X
-static void
-save_command(
-X	     struct load_command *command,
-X	     struct load_command ***the_commands,
-X	     unsigned *the_commands_len
-X	     )
-{
-X	struct load_command **tmp;
-X
-X	grow(the_commands, the_commands_len);
-X	tmp = &(*the_commands)[*the_commands_len - 1];
-X	*tmp = malloc(command->cmdsize);
-X	bcopy(command, *tmp, command->cmdsize);
-}
-X
-static void
-fatal_unexec(char *format, ...)
-{
-X	va_list ap;
-X
-X	va_start(ap, format);
-X	fprintf(stderr, "unexec: ");
-X	vfprintf(stderr, format, ap);
-X	fprintf(stderr, "\n");
-X	va_end(ap);
-}
-X
-static int
-read_macho(
-X	   int fd,
-X	   struct mach_header *the_header,
-X	   struct load_command ***the_commands,
-X	   unsigned *the_commands_len
-X	   )
-{
-X	struct load_command command;
-X	struct load_command *buf;
-X	int i;
-X	int size;
-X
-X	if (read(fd, the_header, sizeof(*the_header)) != sizeof(*the_header)) {
-X		fatal_unexec("cannot read macho header");
-X		return (0);
-X	}
-X	for (i = 0; i < the_header->ncmds; i++) {
-X		if (read(fd, &command, sizeof(struct load_command)) != 
-X		    sizeof(struct load_command)) {
-X		  	fatal_unexec("cannot read macho load command header");
-X			return (0);
-X		}
-X		size = command.cmdsize - sizeof(struct load_command);
-X		if (size < 0) {
-X		  	fatal_unexec("bogus load command size");
-X			return (0);
-X		}
-X		buf = malloc(command.cmdsize);
-X		buf->cmd = command.cmd;
-X		buf->cmdsize = command.cmdsize;
-X		if (read(fd, ((char *)buf + 
-X			      sizeof(struct load_command)), 
-X			 size) != size) {
-X		  	fatal_unexec("cannot read load command data");
-X			return (0);
-X		}
-X		save_command(buf, the_commands, the_commands_len);
-X	}
-X	return (1);
-}
-X
-static int
-filldatagap(
-X	    vm_address_t start_address,
-X	    vm_size_t *size,
-X	    vm_address_t end_address
-X	    )
-{
-X	vm_address_t address;
-X	vm_size_t gapsize;
-X
-X	address = (start_address + *size);
-X	gapsize = end_address - address;
-X	*size += gapsize;
-X	if (vm_allocate(task_self(), &address, gapsize,
-X			FALSE) != KERN_SUCCESS) {
-X		fatal_unexec("cannot vm_allocate");
-X	        return (0);
-X	}
-X	return (1);
-}
-X
-static int
-get_data_region(
-X		vm_address_t *address,
-X		vm_size_t *size
-X		)
-{
-X	region_t region;
-X	kern_return_t ret;
-X	struct section *sect;
-X
-X	sect = getsectbyname(SEG_DATA, SECT_DATA);
-X	region.address = 0;
-X	*address = 0;
-X	for (;;) {
-X		ret = vm_region(task_self(), 
-X				&region.address, 
-X				&region.size, 
-X				&region.protection, 
-X				&region.max_protection, 
-X				&region.inheritance,
-X				&region.shared, 
-X				&region.object_name, 
-X				&region.offset);
-X		if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) {
-X			break;
-X		}
-X		if (*address != 0) {
-X			if (region.address > *address + *size) {
-X				if (!filldatagap(*address, size, 
-X						 region.address)) {
-X					return (0);
-X				}
-X			} 
-X			*size += region.size;
-X		} else {
-X			if (region.address == sect->addr) {
-X				*address = region.address;
-X				*size = region.size;
-X			} 
-X		}
-X		region.address += region.size;
-X	}
-X	return (1);
-}
-X
-static char *
-my_malloc(
-X	  vm_size_t size
-X	  )
-{
-X	vm_address_t address;
-X
-X	if (vm_allocate(task_self(), &address, size, TRUE) != KERN_SUCCESS) {
-X		return (NULL);
-X	}
-X	return ((char *)address);
-}
-X
-static void
-my_free(
-X	char *buf,
-X	vm_size_t size
-X	)
-{
-X	vm_deallocate(task_self(), (vm_address_t)buf, size);
-}
-X
-static int
-unexec_doit(
-X	    int infd,
-X	    int outfd
-X	    )
-{
-X	int i;
-X	struct load_command **the_commands = NULL;
-X	unsigned the_commands_len;
-X	struct mach_header the_header;
-X	int fgrowth;
-X	int fdatastart;
-X	int fdatasize;
-X	int size;
-X	struct stat st;
-X	char *buf;
-X	vm_address_t data_address;
-X	vm_size_t data_size;
-X
-X	struct segment_command *segment;
-X
-X	if (!read_macho(infd, &the_header, &the_commands, &the_commands_len)) {
-X		return (0);
-X	}
-X
-X
-X	{
-X	  extern int malloc_cookie;
-X	  malloc_cookie = malloc_freezedry();
-X	}
-X	if (!get_data_region(&data_address, &data_size)) {
-X		return (0);
-X	}
-X
-X
-X	/*
-X	 * DO NOT USE MALLOC IN THIS SECTION
-X	 */
-X	{
-X		/*
-X		 * Fix offsets
-X		 */
-X		for (i = 0; i < the_commands_len; i++) {
-X			switch (the_commands[i]->cmd) {
-X			case LC_SEGMENT:
-X				segment = ((struct segment_command *)
-X					   the_commands[i]);
-X				if (strcmp(segment->segname, SEG_DATA) == 0) {
-X					fdatastart = segment->fileoff;
-X					fdatasize = segment->filesize;
-X					fgrowth = (data_size - 
-X						   segment->filesize);
-X					segment->vmsize = data_size;
-X					segment->filesize = data_size;
-X				}
-X				break;
-X			case LC_SYMTAB:
-X				((struct symtab_command *)
-X				 the_commands[i])->symoff += fgrowth;
-X				((struct symtab_command *)
-X				 the_commands[i])->stroff += fgrowth;
-X				break;
-X			case LC_SYMSEG:
-X				((struct symseg_command *)
-X				 the_commands[i])->offset += fgrowth;
-X				break;
-X			default:
-X				break;
-X			}
-X		}
-X		
-X		/*
-X		 * Write header
-X		 */
-X		if (write(outfd, &the_header, 
-X			  sizeof(the_header)) != sizeof(the_header)) {
-X			fatal_unexec("cannot write output file");
-X			return (0);
-X		}
-X		
-X		/*
-X		 * Write commands
-X		 */
-X		for (i = 0; i < the_commands_len; i++) {
-X			if (write(outfd, the_commands[i], 
-X				  the_commands[i]->cmdsize) != 
-X			    the_commands[i]->cmdsize) {
-X			  	fatal_unexec("cannot write output file");
-X				return (0);
-X			}
-X		}
-X		
-X		/*
-X		 * Write original text
-X		 */
-X		if (lseek(infd, the_header.sizeofcmds + sizeof(the_header), 
-X			  L_SET) < 0) {
-X		  	fatal_unexec("cannot seek input file");
-X			return (0);
-X		}
-X		size = fdatastart - (sizeof(the_header) + 
-X				     the_header.sizeofcmds);
-X		buf = my_malloc(size);
-X		if (read(infd, buf, size) != size) {
-X			my_free(buf, size);
-X		  	fatal_unexec("cannot read input file");
-X		}
-X		if (write(outfd, buf, size) != size) {
-X			my_free(buf, size);
-X			fatal_unexec("cannot write output file");
-X			return (0);
-X		}
-X		my_free(buf, size);
-X		
-X		
-X		/*
-X		 * Write new data
-X		 */
-X		if (write(outfd, (char *)data_address, 
-X			  data_size) != data_size) {
-X			fatal_unexec("cannot write output file");
-X			return (0);
-X		}
-X		
-X	}
-X
-X	/*
-X	 * OKAY TO USE MALLOC NOW
-X	 */
-X
-X	/*
-X	 * Write rest of file
-X	 */
-X	fstat(infd, &st);
-X	if (lseek(infd, fdatasize, L_INCR) < 0) {
-X		fatal_unexec("cannot seek input file");
-X		return (0);
-X	}
-X	size = st.st_size - lseek(infd, 0, L_INCR);
-X
-X	buf = malloc(size);
-X	if (read(infd, buf, size) != size) {
-X		free(buf);
-X		fatal_unexec("cannot read input file");
-X		return (0);
-X	}
-X	if (write(outfd, buf, size) != size) {
-X		free(buf);
-X		fatal_unexec("cannot write output file");
-X		return (0);
-X	}
-X	free(buf);
-X	return (1);
-}
-X
-void
-unexec(
-X       char *outfile,
-X       char *infile
-X       )
-{
-X	int infd;
-X	int outfd;
-X	char tmpbuf[L_tmpnam];
-X	char *tmpfile;
-X
-X	infd = open(infile, O_RDONLY, 0);
-X	if (infd < 0) {
-X	  	fatal_unexec("cannot open input file `%s'", infile);
-X		exit(1);
-X	}
-X	
-X	tmpnam(tmpbuf);
-X	tmpfile = rindex(tmpbuf, '/');
-X	if (tmpfile == NULL) {
-X		tmpfile = tmpbuf;
-X	} else {
-X		tmpfile++;
-X	}
-X	outfd = open(tmpfile, O_WRONLY|O_TRUNC|O_CREAT, 0755);
-X	if (outfd < 0) {
-X		close(infd);
-X		fatal_unexec("cannot open tmp file `%s'", tmpfile);
-X		exit(1);
-X	}
-X	if (!unexec_doit(infd, outfd)) {
-X		close(infd);
-X		close(outfd);
-X		unlink(tmpfile);
-X		exit(1);
-X	}
-X	close(infd);
-X	close(outfd);
-X	if (rename(tmpfile, outfile) < 0) {
-X		unlink(tmpfile);
-X		fatal_unexec("cannot rename `%s' to `%s'", tmpfile, outfile);
-X		exit(1);
-X	}
-}
-#endif
-X
-SHAR_EOF
-chmod 0644 unexNeXT.c ||
-echo 'restore of unexNeXT.c failed'
-Wc_c="`wc -c < 'unexNeXT.c'`"
-test 8482 -eq "$Wc_c" ||
-	echo 'unexNeXT.c: original size 8482, current size' "$Wc_c"
-fi
-# ============= patch-for-NeXT ==============
-if test -f 'patch-for-NeXT' -a X"$1" != X"-c"; then
-	echo 'x - skipping patch-for-NeXT (File already exists)'
-else
-echo 'x - extracting patch-for-NeXT (Text)'
-sed 's/^X//' << 'SHAR_EOF' > 'patch-for-NeXT' &&
-diff -rc tmp/mule-0.9.4/src/emacs.c mule-0.9.4/src/emacs.c
-*** tmp/mule-0.9.4/src/emacs.c	Thu May 28 16:34:57 1992
---- mule-0.9.4/src/emacs.c	Tue Jun  9 09:05:54 1992
-***************
-*** 229,234 ****
---- 229,240 ----
-X  #endif /* LINK_CRTL_SHARE */
-X  #endif /* VMS */
-X  
-+ #ifdef NeXT
-+ #include <mach.h>
-+ int malloc_cookie;
-+ NXZone *emacszone;
-+ #endif
-+ 
-X  /* ARGSUSED */
-X  main (argc, argv, envp)
-X       int argc;
-***************
-*** 238,243 ****
---- 244,260 ----
-X    int skip_args = 0;
-X    extern int errno;
-X    extern void malloc_warning ();
-+ 
-+ #ifdef NeXT
-+   if (initialized) {
-+     if (malloc_jumpstart(malloc_cookie) != 0)
-+       fatal("malloc jumpstart failed!\n");
-+   } else {
-+     emacszone = NXCreateZone(ZONESIZE*vm_page_size,vm_page_size,1);
-+     if(emacszone == NX_NOZONE)
-+       fatal("can't create emacs zone.\n");
-+   }
-+ #endif
-X  
-X  /* Map in shared memory, if we are using that.  */
-X  #ifdef HAVE_SHM
-diff -rc tmp/mule-0.9.4/src/fileio.c mule-0.9.4/src/fileio.c
-*** tmp/mule-0.9.4/src/fileio.c	Thu May 28 16:34:58 1992
---- mule-0.9.4/src/fileio.c	Mon Jun  8 18:48:52 1992
-***************
-*** 1586,1592 ****
---- 1586,1594 ----
-X    close (XFASTINT (fd));
-X  }
-X  
-+ #ifndef READ_BUF_SIZE
-X  #define READ_BUF_SIZE 1048576	/* 92.5.28 by K.Handa */
-+ #endif
-X  
-X  DEFUN ("insert-file-contents", Finsert_file_contents, Sinsert_file_contents,
-X    1, 3, 0,
-diff -rc tmp/mule-0.9.4/src/fns.c mule-0.9.4/src/fns.c
-*** tmp/mule-0.9.4/src/fns.c	Thu May 28 16:29:46 1992
---- mule-0.9.4/src/fns.c	Tue Jun  9 09:03:05 1992
-***************
-*** 1118,1123 ****
---- 1118,1126 ----
-X      }
-X  }
-X  
-+ #ifdef LOAD_AVE_MACH
-+ #include <mach.h>
-+ #else
-X  /* Avoid static vars inside a function since in HPUX they dump as pure.  */
-X  #ifdef DGUX
-X  static struct dg_sys_info_load_info load_info;  /* what-a-mouthful! */
-***************
-*** 1136,1141 ****
---- 1139,1145 ----
-X  #define initialized ldav_initialized
-X  #define nl ldav_nl
-X  #endif /* Not DGUX */
-+ #endif /* not LOAD_AVE_MACH */
-X  
-X  DEFUN ("load-average", Fload_average, Sload_average, 0, 0, 0,
-X    "Return the current 1 minute, 5 minute and 15 minute load averages\n\
-***************
-*** 1143,1148 ****
---- 1147,1177 ----
-X  and then turned into integers).")
-X    ()
-X  {
-+ #ifdef	LOAD_AVE_MACH
-+    kern_return_t                    error;
-+    host_t                           host;
-+    unsigned int                     info_count;
-+    struct processor_set_basic_info  info;
-+    processor_set_t                  default_set;
-+    
-+    int load_ave = 0;
-+ /* int mach_fac = 0; mach factor(not used)*/
-+ 
-+    error=processor_set_default(host_self(), &default_set);
-+    if (error==KERN_SUCCESS){
-+ 	info_count=PROCESSOR_SET_BASIC_INFO_COUNT;
-+ 	error=processor_set_info(default_set, PROCESSOR_SET_BASIC_INFO,
-+ 	   &host, (processor_set_info_t)&info, &info_count);
-+ 	if (error == KERN_SUCCESS) {
-+ 	   load_ave = (int)((float)info.load_average * 100.0 / LOAD_SCALE);
-+ /*	   mach_fac = (int)((float)info.mach_factor  * 100.0 / LOAD_SCALE); */
-+ 	}
-+    }
-+ 
-+    return Fcons (make_number (load_ave),
-+ 		Fcons (make_number (load_ave),
-+ 		       Fcons (make_number (load_ave), Qnil)));
-+ #else /* not LOAD_AVE_MACH */
-X  #ifdef DGUX
-X    /* perhaps there should be a "sys_load_avg" call in sysdep.c?! - DJB */
-X    load_info.one_minute     = 0.0;	/* just in case there is an error */
-***************
-*** 1225,1237 ****
-X        strcpy (nl[0].n_name, LDAV_SYMBOL);
-X        nl[1].n_zeroes = 0;
-X  #else /* NLIST_STRUCT */
-! #ifdef convex
-X        nl[0].n_un.n_name = LDAV_SYMBOL;
-X        nl[1].n_un.n_name = 0;
-! #else /* not convex */
-X        nl[0].n_name = LDAV_SYMBOL;
-X        nl[1].n_name = 0;
-! #endif /* not convex */
-X  #endif /* NLIST_STRUCT */
-X  
-X  #ifdef IRIS_4D
---- 1254,1266 ----
-X        strcpy (nl[0].n_name, LDAV_SYMBOL);
-X        nl[1].n_zeroes = 0;
-X  #else /* NLIST_STRUCT */
-! #if defined(convex) || defined(NeXT)
-X        nl[0].n_un.n_name = LDAV_SYMBOL;
-X        nl[1].n_un.n_name = 0;
-! #else /* not convex, not NeXT */
-X        nl[0].n_name = LDAV_SYMBOL;
-X        nl[1].n_name = 0;
-! #endif /* not convex, not NeXT */
-X  #endif /* NLIST_STRUCT */
-X  
-X  #ifdef IRIS_4D
-***************
-*** 1242,1248 ****
---- 1271,1281 ----
-X  	    nl[0].n_value &= 0x7fffffff;
-X  	}
-X  #else
-+ #ifdef KERN_FILE
-+       nlist (KERN_FILE, nl);
-+ #else
-X        nlist (KERNEL_FILE, nl);
-+ #endif
-X  #endif /* IRIS */
-X  
-X  #ifdef FIXUP_KERNEL_SYMBOL_ADDR
-***************
-*** 1288,1293 ****
---- 1321,1327 ----
-X  			      Qnil)));
-X  #endif /* LOAD_AVE_TYPE */
-X  #endif /* not DGUX */
-+ #endif /* not LOAD_AVE_MACH */
-X  }
-X  
-X  #undef channel
-diff -rc tmp/mule-0.9.4/src/lisp.h mule-0.9.4/src/lisp.h
-*** tmp/mule-0.9.4/src/lisp.h	Thu May 28 16:29:53 1992
---- mule-0.9.4/src/lisp.h	Tue Jun  9 09:08:30 1992
-***************
-*** 1007,1013 ****
-X  
-X  extern void debugger ();
-X  
-! extern char *malloc (), *realloc (), *getenv (), *ctime (), *getwd ();
-X  extern long *xmalloc (), *xrealloc ();
-X  
-X  #ifdef MAINTAIN_ENVIRONMENT
---- 1007,1016 ----
-X  
-X  extern void debugger ();
-X  
-! #ifndef malloc
-! extern char *malloc (), *realloc ();
-! #endif
-! extern char *getenv (), *ctime (), *getwd ();
-X  extern long *xmalloc (), *xrealloc ();
-X  
-X  #ifdef MAINTAIN_ENVIRONMENT
-SHAR_EOF
-chmod 0644 patch-for-NeXT ||
-echo 'restore of patch-for-NeXT failed'
-Wc_c="`wc -c < 'patch-for-NeXT'`"
-test 5202 -eq "$Wc_c" ||
-	echo 'patch-for-NeXT: original size 5202, current size' "$Wc_c"
-fi
-exit 0
-
---
-$B%-%d%N%s3t<02q<R(B
-$B%3%s%T%e!<%?1~MQ%7%9%F%`5;=Q3+H/%;%s%?!<(B
-$B=)MU4nG7(B akiba@cbs.canon.co.jp
-
-============================================================
-Date: Mon, 15 Jun 92 10:20:23 JST
-From: akiba@cbs.canon.co.jp (Yoshiyuki Akiba)
-Return-Path: <akiba@cbs.canon.co.jp>
-To: mule@etl.go.jp
-In-Reply-To: Yoshiyuki Akiba's message of Fri, 12 Jun 92 10:22:51 JST <9206120122.AA19043@scarab.cbs.canon.co.jp>
-Subject: Re: Patch for NeXT
-
-
-*jserver$B$b(BNeXT$B>e$GF0$+$7$?$$J}$K(B*
-
-jserver$B$b(BNeXT$B>e$GF0$+$9$3$H$,$G$-$^$9$,!"(Bkill$B$9$k$H$-$K(B 
-PANIC $B$r5/$3$7$^$9!#860x$O!";HMQ$7$F$$$J$$%=%1%C%H$r(B
-shutdown()$B$7$F$$$k$?$a$G$9!#<!$N%Q%C%A$G2sHr$G$-$^$9!#(B 
-
-(Wnn 4.03$B$N;~$N%Q%C%A$J$N$G!"$=$N$^$^$G$O$"$?$i$J$$$+$b(B
-$BCN$l$^$;$s$,NL$,>/$J$$$N$G$3$l$G4*J[$7$F2<$5$$!#(B:-)
-
-diff -rcN Wnn/jserver/de.c wnn/jserver/de.c
-*** Wnn/jserver/de.c	Fri Aug 30 15:52:39 1991
---- wnn/jserver/de.c	Fri Aug 30 17:26:14 1991
-***************
-*** 459,465 ****