[e-cvs] cvs commit: e/src/jsrc/org/erights/e/meta/java/lang ProcessSugar.java

markm@eros.cs.jhu.edu markm@eros.cs.jhu.edu
Sat, 25 Aug 2001 21:21:31 -0400


markm       01/08/25 21:21:31

  Modified:    src/csrc/setup e-template.txt eprops-template.txt
               src/esrc/org/erights/e/elib/extern CommandMakerAuthor.emaker
               src/esrc/org/erights/e/install confirm.emaker
               src/esrc/org/erights/e/install/win32
                        installToRegistry.emaker setupWindows.emaker
               src/esrc/scripts setup.e
               src/jsrc/org/erights/e/meta/java/lang ProcessSugar.java
  Added:       src/bin/icons e-caplet.gif e-caplet.ico e-caplet.png
               src/bin/resources/org/erights/e/icons e-caplet.gif
  Log:
  Installer improvements.  Added -Xfuture, .caplet.

Revision  Changes    Path
1.1                  e/src/bin/icons/e-caplet.gif

Index: e-caplet.gif
===================================================================
GIF89a 
!n'˼ff3[z"ϳ@̬}}%ʎ泛EȪչvss*ۿzz'޷̯߆
J-]8)P ed@ˆ{.tc2Z順 00XȐe˗1eΌ@T
pă h


1.1                  e/src/bin/icons/e-caplet.ico

Index: e-caplet.ico
===================================================================





























































1.1                  e/src/bin/icons/e-caplet.png

Index: e-caplet.png
===================================================================
PNG


;<
vt>M
t8b٫ބNx7r㇃mrUKS
W/;9~K!`5!x* UwPQ ygRmk-RzOSzku=zWm19èK|q
9?C@lv>t@E'*5\ amBdiȅ
˾A9͍{7(n{7*?*ogX~cHʔE1&W+u#*K(<kbDpyP*b8_>HYg0O eԟEKlk`X`*}l%Lg<].Œ4y`ir>f^=h:G`H;3@!!}Ch%xWJ] 2OָaO`U;QIBk!Ԛ:^:wJrw&뵁u4ċ\]Lg"cY.կY[P&[J7ЛS5R'H|jОasmT `ꀐ1lˈ(z ܬ
2`ȫ	*T_K$8ĉGNa_ө84"CKM@%B$#4^/uhQđRl9aC3@zsSYs 8"e4};C|&y:=rf]o)r.N0!gdP!G=*Ʀ.P
F*6&džA.88Q4ns_9N\N-㩗[yƫBq$<$EsҮ"I6AP z,S9cWM`cVTgL':|D\#O~;ALJ&|&&YRn;Kr8nմ$ĉz%zn
J~pNSrMN`72n&',D$`tC|&$w=s6dZ-43U+1);5S1G!N_~ Ā3>\Vd&USo
#r:ڳBa|9#g̒y}$=t7wN5([5`]E$j>I|b\GDJPk(rh:s&^w9N&6<DerD4"ع6‡WEx;ȝlO(fyKf]%weh9l,!h0H2%95Kkyf*$*݄CyQf+ۂbc/b<
oh3 J
þ}T~ 5\멊LoikD9ë[
-'&A^T2(%Lj&#3Ct/hRj3u8U,+N}"6߸}Yy.-j1snJ cЂQ#Ŧr;ݛͲn‘m:=xx
	L~36F64س1T
&Ş~=triM.H;~6]srN#g

Oi"-
	;,̷5\wNd&KIug6S,VYy#r5/0՘m5
.qley%d~H❎%'%~|2<G$9,-%dQ+
>e'%eI4Z"T-O
o&EtfKq֖%$K<qf
P-?(2>K23#uf&j6!GkL|^=_E3rE4-Гi]+L6iFZ]%htZ$lB/?cI@]Цv1.xR0ݍKuoKM+.
v٣Nɣ,+цhl%<sLezP=JٹzDYήKEs}vG+TU%ٳ,,̹i=Bz,+ц<$^烲
@\۶Pp5WZpms6EtE(ʁu/ϥꔔ8OR(㬢biIh5O_fH"א<Ȑ+0VNƆ474^wswz0 fa&~vӓkӒpk٤7F~.M6αدگtOZ^_d~8ӫv,m܆@;H#V0%4-gB"
x2bhe薡[`;zw͖[n9rRsA-vZvnٹe[rcrc{Mw햡[n2CP|O$;z-g}k9[f	nN14ke薡?3CxLev]Wdgֲs.;^pvnwunw޵2ev]λ[kٹeλλ[k9yrv_g;:C;Zns3tB{Op~@,+i&C)1wmfvO'-gW<d[lOӳ4=""劶fgfpZ[Vo`mim%sl6z_@F3\E}w%]q.,5Ɨ>:W`hw
C7m
&ά	,M7V-/^
;ˁ̜m[y5kTl[>1ascv[nymlԲa')xF=$+?H},rlssmT[sS_t CWSVKv:nuv>Jt+VÞ%5s
nќmm5,#!,a-X&yeC96We5&)0zkQ%@DBx7h	;Ή?Jg$)f'BF_So^8#ǒN3󜵜"~ǁv-mbs֞d;_GI.٧{zky"4괘Ųn[)D4yr=A"J6(Bu'h}D}퓭׾b[ڌ
,x("3|:]]ndH2"BTNANu>}@y+<G0-cED£]Lh֟lA|J[Yaz~SɈY{ڤ&qÔƤ^&E˙ƭ4D{¢/`_| ]%C
W,W{#hfo4\V5ݲUpZNk)E;uy̺vnq9Q;d"ko/3/u		oV}K8T̑UoiFy<4?%Ph\ScvYY3.I4%r===3	hg&ڙvfNLqk;"ߊgbfcs3FEbF5%vh<Ivh}1$;3o2?`cN᳕XѨ'pTyMpLG2ı7AٜT+&rxZؕc%AC}hw<q5|qVO:'T.n\2<Ȋ,rj_l?WZv"_=>_.=Ra <F[:?J_^ļG3Κ]/Ow;<S6et1\B4)_i>2Gw[\|/%uy~oSRg3?.8w}Ϧ>s+z(X*"[܌742(7ſ/ܼȢJg]r&	a,4(WB}h{r<Հi3z#է[ '+3X{
ު1_o9(m-/FzŒz 
tw&@e>zC{N#Qi1]<b٫ޤGW'9v
,MZ3Ujrǩ15tG2f3%gA;\UԚZj݆C>c37gȝŲi
%Wדgj5]Ԓ()95UK`sfLsVhiqpX\UKdGvܺxSk:A)\B S-̵fY3+9)<Ua{Np=ڋ0ӛy Clԙ616SUg::x ~,ӓ}4{eL"]-,
܀a$1sc$(EIBzdDLiKRH
uA/Y 
vƧ3l!UWcu]f
pyXӠA)n5gBDtt#-t.F<Ւ@tK$
݈vvvͅUJ@4ZaE6HxV:F6Q>KSy.&{<}Ad:KN?2n37,OMEN#HF`?-
j!j
{r+%Aqh$S@%%|9`ƅ}6.?jU	7KBC_{-׮8`Se[lhF-*,?ntWTe
;GFn^Kb[dAݜҥy_g:=h5=#*|3z¡F#$̣[^Y	EO)ـ~Iȑ8	Ľ&C}24L>bXXFkhFWI.-h-yU
c?~D|ak3A?b4-.1νmu;j
{eKΓ/ɳ}OX
Y̳X?%ţG|j}~H)
֣;$3~:LH
Ip#W,%ebbad{O`eE}9!mB
,ƈyAUkb]Nø ˌD_ˁj5j%u^׸`O  g9cE
@=BHMlk@$	ءۖ#iBOOA\zXCR%ˆ
rHmD-Kɵ
Un+z`Dv~_ClO$>Y
Bcyg	|rp]o:8khۘM埁/W^ֆE^ls	wfY~(cUSM6:-=j0y-AgЀNN2g$>+y|
GA]cپ6mn5v{y4y:l<5y7/CBqP!L||R۝I׷Iw|X\Zꑽܳuu}1c%(Hh!!&>{Ny!
B
C#_} Ηv޶5gh1_IL?B7\/֛H%)y4sEvMv{D/Y1{h?%ФT#Ņ#b~h-nׇ\yj9i$G#`=_ ?CCY>Y}_sPp͠	'.D1bԿoK'mCn0H]__&kdx3{G!~KdlfPej9dm5Zq[nJ;#:u|CC-y Oo!N獼7;tYW<D^0}3DgQ1,ł<kTO,|5435g_N>[kcd[@P{q7wΎd'>{*QVؿMAN:
Zl]ѓ䯹c[}: pz$1U(rtH):=)_]2{xlu:0'Y0v~p %Nj#o^'X՜T¯-d'dT{voƧ߇&9ގlOz|lxq!leP>ޓ4lBޞ}yơ$9Eg/>_Y\j*SCş9Pdo/g_J7wG`fע4>*04yWĉ	
&oD93mϻL}5Čގv$OEA0h61s_qhL`Iw^%M2g	0=f_v	fM7R;IEJQ04Ys
N[4HWR99s_;o@O7
@s21FQyhm`:o_
π7:zAE^,έx!{>!7r#{77;"{&/0WßﳠA[yυmk}ݲC,NZM9@`CtD"<p&
^K_J}GR}/+-khO.ЙZ"W83;&_ EKًH|!GCVyhKj-үP~Z̚lpyN7;aACNh}p*}FZM8oMGeh	ŕW&;0ܕ
+$DzsD	%0x/{gݷB#cpD˵#e"K/) !Y#̓Dlg4b>EM3T
(9&p~-'GɑlY[?E.`ހM
Evn4s<{nҟ4z
ӆr)nST&t`&YfpKOm5oI~6;6h'!aG^drE%	v <R1%/LPs<QkC'iCsg~yQ_T{33$v
#UѩG<͛i29ОSq`qCty$7àqN"؅j捋P_">kK\wIΌ\ӀxI7Jb(i(H<'ߟ-Ԥ)ycNŚ:VJ>̛jATg	/d^YOCrG:ic;CʀW4'hJ7_sQL3!Mۯ6Ky{⼲q 7x˼`[(sk349bx7|q	T
zըH?-m䙄3ΐ{K@lg)ݺ@
RtiMd\zK.(\rZȞqp~M`d6
/wOd`.HyEϼ
zd&<ʉdd9}hR^օ=W"3D_=,!l,ŏq?E?BІ^^c] J*סIq+\bjō0}6?t6Gл̂:?
٤)E=+!KΔ\C50!xV~&,~"1>ύ^/kdCmBb4 rQ"x<GT}].u@@M}sQUau;l)3>D!W'ܻ}QΏy"Bx|31H.Ͷ2!qb̬?M!?q9><-lW]M}m5NgO4Z{m݅o
#CÇM]2h2_AG@nn*IJ<&ߟJk`:1Ϩ#{D+B<!G^?qz?P/G>2y\i1^_E1lAbBAnE
FX0>>H1'H$K[~l5n}*jV9/@>RL.$?m>EN$D'~.%8yFc`}{C;+@03Ft̋g;
$O)O:f
|"""yAБlDk#/{φ7$Ő;Žz,^rp"~}5C|pKAyɼ"7zq%{SJ{.
E	c[`P[Џ	q\_]R+zZQ>3jQÉ(cF̬BYB-yFvrQYc?PCt8|];
763&7*}QxoɶR^dte3
!P'hKh70b:lf'bYykxDm1mx*|u'8B@(čbJJc~0y7ŏz#9{khA׿Y&Y7NU6S@cFLRz}n@*&d^O?bF4k@~O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?O~'?YMwL
:sMe#M3Y#=2QЙ[\s=E8}E>GȩTڲTg-}VfoSVwzV}./>~<Vrv@>!?U1<#}=F[ ~QڋBN..+푹^edLo+[\-k
dW(}6q$#?z6Bөi?L7!3O_Q}Пuo[=tkȋM!'}/Ƈdr2_Cﲨ:`0:8o=+8-4}۞cĥXdq{bUq©ήm!ƶg*ΪU\z[GA=^+ru{LV	U?)V>ғ)x|Yҁgi\yi^cUo*=!TY?rfgWsʽVn*VX#=Fϫ+[F~yH\L~[O҇h5ݵTow|Sfӟ+);F;:x
)/OSyUo2e)Ve3'wgGg=J^`0
ľu kU,Ksؑ5nY,bXw{w&3QהNQev	]ƷgcH˞i{A3I8hwduwUIWq8I>+@pQşGcZ\ƪUߝ]/:3d;ɫ:gB9R|GW~w2;fz<AǏߊg_ly=Uy3= [6_3]U_k]]ײ2;j->t|+i5nΟgZY|<1NyŬ|E7k?z/k><=Α}N΅>uWydʬdz`0*\?W8GY:Dgcg<2+'W6qn؟{ru"w<Tk.\rnO>U쏘~c#T?+y{Q,,^qF/Xv8.֩g3}ȸOP~n%hUG4(_sn|W}Tg&x^c,Fѭ+<#+}/Uw8BRh_|33!mr\7U9m({ѝpvew[xG]߱?g;,nҽow8]וb?OV=Z_#ve?vN_WrYLo;1g9pV^G~>[_vNOS3`0Q[	veO\k^8
0lzsA_x7췣*U}R%+C_	ڟ~I\Q~ky#_jo~DyU^`5pko?:ˮCw>?Kv:A}E:_n+{u=rq͓̳]>>d}+|L01`0leg:׺񶊝`W,3O?]\9P~[kOWiGc~)-<w.3q}'vuw$Vnv(r52S;Wk_Kϔ8B/hEՠ'9w?K;x:x<|@cϽVyc@ۖSw8Bq]=2lBe6V}eR(	VeZT4ade2ޒ+nYBTqSߔ<[&=f[|szP)G}{Zׅ3n7jpWwftEw[ǽ;`l?`0`0`{~i`oLy>uoi\qK|}
mkBT0
l+6v<ï
k7]/lc[`On}򚄫G뎱zt^v2)?;Wmr5ocIz?Ozx{&!ez."ѯ
1Gg{+ҏlw<=}GݽFƨ^)zIpGK
?ނ}XwŶv?ߩDZۓ-q/?߳=<~#>Fk"qzrQo	9r,nY[;o:)@-`ק-7({߯S@µK9֠ɸ>:n3
_[_*mtcmC>qSL<?<nѯn!>=<6;ǫsaaa{xˌ\ފpx?0׋#5zяc]x^l򼠕(f:~٣^lin59W~\;?vn6erUbS~v^UO7O(|;+SG4|?f*?rW~2oNٟS9~daևmH6mX[J~s.ym4ٶO|Bd/b5ɿyU?0000000.P~*1@G\⟿KrKXs2(ߥ纎J8'>X@▼QQbqwxb)_K|v 1M6kee-2Ǜ59?K^E~9ϱQﱮYF8N?~;:=J<-t
y!)%!T;Ԁ,fX!t]



踀_eT


1.1                  e/src/bin/resources/org/erights/e/icons/e-caplet.gif

Index: e-caplet.gif
===================================================================
GIF89a 
!n'˼ff3[z"ϳ@̬}}%ʎ泛EȪչvss*ۿzz'޷̯߆
J-]8)P ed@ˆ{.tc2Z順 00XȐe˗1eΌ@T
pă h


1.8       +3 -0      e/src/csrc/setup/e-template.txt

Index: e-template.txt
===================================================================
RCS file: /cvs/e/src/csrc/setup/e-template.txt,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- e-template.txt	2001/08/05 07:01:24	1.7
+++ e-template.txt	2001/08/26 01:21:30	1.8
@@ -91,6 +91,9 @@
     jopts[${#jopts[@]}]=$1
 }
 
+# These should come from props
+jpush "-Xfuture"
+
 # either zero or one long
 declare -a ecmd
 



1.18      +6 -6      e/src/csrc/setup/eprops-template.txt

Index: eprops-template.txt
===================================================================
RCS file: /cvs/e/src/csrc/setup/eprops-template.txt,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- eprops-template.txt	2001/08/04 00:45:38	1.17
+++ eprops-template.txt	2001/08/26 01:21:30	1.18
@@ -127,13 +127,13 @@
 e.put.shortcut.pathlist=${{e.put.shortcut.pathlist}}
 
 
-# Which of .e, .emaker, .updoc, .vat, and .cap should be associated
-# with icons, registry types, mime types, launching programs, and
-# other right button menu commands?  Currently, this definition does
-# nothing, and setup.e simply grabs whatever extensions it likes
-# (which are these 5).
+# Which of .e, .emaker, .caplet, .updoc, .vat, and .cap should be
+# associated with icons, registry types, mime types, launching
+# programs, and other right button menu commands?  Currently, this
+# definition does nothing, and setup.e simply grabs whatever
+# extensions it likes (which are these 6).
 #
-# ".e;.emaker;.updoc;.vat;.cap" or any subset.
+# ".e;.emaker;.caplet;.updoc;.vat;.cap" or any subset.
 
 e.extensionslist=${{e.extensionslist}}
 



1.3       +4 -5      e/src/esrc/org/erights/e/elib/extern/CommandMakerAuthor.emaker

Index: CommandMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/elib/extern/CommandMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CommandMakerAuthor.emaker	2001/04/16 08:10:31	1.2
+++ CommandMakerAuthor.emaker	2001/08/26 01:21:30	1.3
@@ -45,12 +45,11 @@
                 #
                 # @param args A list of Strings as command arguments
                 # @param optEnv null, or an array of environment strings.
-                # @param optCwd null, or the path for the process's
-                # working directory
-                # @param optStdinStr If non-null, this string will
-                # be fed to the command's stdin.
+                # @param optCwd null, or the path for the process's working directory
+                # @param optStdinStr If non-null, this string will be fed to the 
+                #                    command's stdin.
                 # @return A triple of the exitCode, the text sent to stdout as a
-                # String, and the text sent to stderr as a String.
+                #         String, and the text sent to stderr as a String.
 
                 to doNow(args, optEnv, optCwd, optStdinStr) :any {
                     def process := TheRuntime exec([executablePath] + args, optEnv, optCwd)



1.6       +15 -14    e/src/esrc/org/erights/e/install/confirm.emaker

Index: confirm.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/install/confirm.emaker,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- confirm.emaker	2001/03/26 06:23:47	1.5
+++ confirm.emaker	2001/08/26 01:21:30	1.6
@@ -3,13 +3,13 @@
 ## and arrange for dismiss to "interp continueAtTop()"
 
 def confirm(props,
-               interp,
-               stdout,
-               stderr,
-               awt__uriGetter,
-               swing__uriGetter,
-               JPanel__quasiParser,
-               iconImage
+            interp,
+            stdout,
+            stderr,
+            awt__uriGetter,
+            swing__uriGetter,
+            JPanel__quasiParser,
+            optIconImage
 ) {
     def welcome := ` Welcome to E ${props["e.version"]}`
 
@@ -35,16 +35,17 @@
             }
         })
 
-        def label := E call(<swing:JLabel>,
-                            "new(String, int)",
-                            ["E is installed.",
-                             <swing:SwingConstants> CENTER()])
+        def label := <swing:JLabel> new("E is installed.",
+                                        <swing:SwingConstants> CENTER())
 
         root getContentPane() add(JPanel`$label.Y
                                          ${JPanel``} $okButton ${JPanel``}`)
-
-        root setIconImage(iconImage)
-
+        if (optIconImage != null) {
+            # optIconImage == null should never happen here, since optIconImage 
+            # should only be null if we're headless, in which case the 'if' at 
+            # the beginning of confirm(..) should just welcome instead.
+            root setIconImage(optIconImage)
+        }
 
         root pack()
         root setBounds(120, 100, 300, 100)



1.9       +63 -36    e/src/esrc/org/erights/e/install/win32/installToRegistry.emaker

Index: installToRegistry.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/install/win32/installToRegistry.emaker,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- installToRegistry.emaker	2001/08/05 07:01:24	1.8
+++ installToRegistry.emaker	2001/08/26 01:21:30	1.9
@@ -1,54 +1,63 @@
-##
+#
 
 def makeShortcutMaker := <import:org.erights.e.install.win32.makeShortcutMaker>
 def fileAssocMaker := <import:org.erights.e.install.win32.fileAssocMaker>
 def addCommandMaker := <import:org.erights.e.install.win32.addCommandMaker>
 
-##
-## On the MSWindows platform, sets up the standard shortcuts and
-## registry associations for E, Elmer, *.e, *.emaker, *.updoc, *.vat,
-## and *.cap
-##
-## @param ehome is the path to the directory in which E is installed.
-## @param javacmd is the path to the java executable, which must be a
-## Java >= 1.2.
-## @param launchDir is the working directory for launched shortcuts
-## makeShortcutCmd is a Command (a frontend to a shell command) for
-## making MSWindows shortcuts.
-## @param fileAssocCmd is a Command for associating a file extension
-## with an icon, Registry type, Registry type description, and Mime
-## type.
-## @param addCommandCmd is a Command for adding entries to the right
-## button menu of files of a given Registry type.
-
-def installToRegistry(ehome :Twine,
-                      javacmd :Twine,
-                      launchDir :Twine,
+
+# On the MSWindows platform, sets up the standard shortcuts and
+# registry associations for E, Elmer, *.e, *.emaker, *.updoc, *.vat,
+# and *.cap
+#
+# @param ehome is the path to the directory in which E is installed.
+# @param javacmd is the path to the java executable, which must be a
+#                Java >= 1.3.
+# @param launchDir is the working directory for launched shortcuts.
+# @param makeShortcutCmd is a Command (a frontend to a shell command)
+#                        for making MSWindows shortcuts.
+# @param fileAssocCmd is a Command for associating a file extension
+#                     with an icon, Registry type, Registry type 
+#                     description, and Mime type.
+# @param addCommandCmd is a Command for adding entries to the right
+#                      button menu of files of a given Registry type.
+
+def installToRegistry(var ehome :String,
+                      javacmd :String,
+                      launchDir :String,
                       makeShortcutCmd,
                       fileAssocCmd,
                       addCommandCmd
 ) {
-    def ecmd := [javacmd, "-jar", `-De.home=$ehome`, `$ehome/e.jar`]
+    if (ehome endsWith("/")) {
+        ehome := ehome(0, ehome size() -1)
+    }
+    def ecmd := [
+        javacmd,
+        "-jar",
+        "-Xfuture",        # should pick these up from eprops.txt
+        `-De.home=$ehome/`, # other -D..'s will be picked up from eprops.txt
+        `$ehome/e.jar`
+    ]
 
     def makeShortcut := makeShortcutMaker(makeShortcutCmd)
     def fileAssoc := fileAssocMaker(fileAssocCmd)
     def addCommand := addCommandMaker(addCommandCmd)
 
-    ## Shortcut to E
+    # Shortcut to E
     makeShortcut(ecmd + ["--interact"],
                  `$ehome/bin/shortcuts/e.lnk`,
                  launchDir,
                  `$ehome/bin/icons/e-lambda.ico`,
                  "SHOW")
 
-    ## Shortcut to Elmer
+    # Shortcut to Elmer
     makeShortcut(ecmd + [`$ehome/scripts/elmer.e`],
                  `$ehome/bin/shortcuts/elmer.lnk`,
                  launchDir,
                  `$ehome/bin/icons/carrot2.ico`,
                  "HIDE")
 
-    ## Shortcut to eBrowser
+    # Shortcut to eBrowser
     makeShortcut(ecmd + [`$ehome/scripts/eBrowser.e`],
                  `$ehome/bin/shortcuts/eBrowser.lnk`,
                  launchDir,
@@ -57,17 +66,17 @@
 
     ###############
 
-    ## *.e files
+    # *.e files
     fileAssoc(".e", "e-script", "E Script", "text/x-escript",
               `$ehome/bin/icons/e-doc.ico`)
 
-    ## *.e Launch command
+    # *.e Launch command
     addCommand("e-script",
                ecmd + ["%1"],
                "Launch",
                true)
 
-    ## *.e eBrowse command
+    # *.e eBrowse command
     addCommand("e-script",
                ecmd + [`$ehome/scripts/eBrowser.e`, "%1"],
                "eBrowse",
@@ -75,35 +84,53 @@
 
     ###############
 
-    ## *.emaker files
+    # *.emaker files
     fileAssoc(".emaker", "e-maker", "E Maker File", "text/x-emaker",
               `$ehome/bin/icons/emaker-doc.ico`)
 
-    ## *.emaker eBrowse command
+    # *.emaker eBrowse command
     addCommand("e-maker",
                ecmd + [`$ehome/scripts/eBrowser.e`, "%1"],
                "eBrowse",
                true)
 
-    ## *.emaker Elmer command
+    # *.emaker Elmer command
     addCommand("e-maker",
                ecmd + [`$ehome/scripts/elmer.e`, "%1"],
                "Elmer",
                false)
 
     ###############
+
+    # *.caplet files
+    fileAssoc(".caplet", "e-caplet", "E Caplet File", "text/x-caplet",
+              `$ehome/bin/icons/e-caplet.ico`)
+
+    # *.caplet eBrowse command
+    addCommand("e-caplet",
+               ecmd + [`$ehome/scripts/eBrowser.e`, "%1"],
+               "eBrowse",
+               true)
+
+    # *.caplet Elmer command
+    addCommand("e-caplet",
+               ecmd + [`$ehome/scripts/elmer.e`, "%1"],
+               "Elmer",
+               false)
+
+    ###############
 
-    ## *.updoc files
+    # *.updoc files
     fileAssoc(".updoc", "e-updoc", "E Updoc Script", "text/x-updoc",
               `$ehome/bin/icons/carrot-doc.ico`)
 
-    ## *.updoc Elmer command
+    # *.updoc Elmer command
     addCommand("e-updoc",
                ecmd + [`$ehome/scripts/elmer.e`, "%1"],
                "Elmer",
                true)
 
-    ## *.updoc eBrowse command
+    # *.updoc eBrowse command
     addCommand("e-updoc",
                ecmd + [`$ehome/scripts/eBrowser.e`, "%1"],
                "eBrowse",
@@ -111,13 +138,13 @@
 
     ###############
 
-    ## *.vat files
+    # *.vat files
     fileAssoc(".vat", "e-vat", "E Persistent Vat State", "text/x-vat",
               `$ehome/bin/icons/e-vat.ico`)
 
     ###############
 
-    ## *.cap files
+    # *.cap files
     fileAssoc(".cap", "e-cap", "E Capability", "text/x-cap",
               `$ehome/bin/icons/e-cap.ico`)
 }



1.10      +10 -8     e/src/esrc/org/erights/e/install/win32/setupWindows.emaker

Index: setupWindows.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/install/win32/setupWindows.emaker,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- setupWindows.emaker	2001/04/01 08:13:40	1.9
+++ setupWindows.emaker	2001/08/26 01:21:30	1.10
@@ -26,7 +26,7 @@
                  awt__uriGetter,
                  swing__uriGetter,
                  JPanel__quasiParser,
-                 iconImage
+                 optIconImage
 ) {
     stdout println("Installing E on Windows...")
 
@@ -80,9 +80,9 @@
 
     props := props snapshot()
 
-    def ehome :Twine := props["e.home"]
-    def javacmd :Twine := props["e.javacmd"]
-    def launch :Twine := props["e.launch.dir"]
+    def ehome :String := props["e.home"]
+    def javacmd :String := props["e.javacmd"]
+    def launch :String := props["e.launch.dir"]
 
     # XXX Should double check whether ehome agrees with ehomeDir
 
@@ -94,12 +94,14 @@
     def eFile := ehomeDir["e"]
     eFile setText(substFromProps(eTemplate, props))
 
+    def cmdDir := ehomeDir["bin/win32"]
+
     def makeShortcutCmd := 
-        CommandMaker new(ehomeDir["bin/win32/make_shortcut.exe"] getPath())
+        CommandMaker new(cmdDir["make_shortcut.exe"] getPath())
     def fileAssocCmd := 
-        CommandMaker new(ehomeDir["bin/win32/file_assoc.exe"] getPath())
+        CommandMaker new(cmdDir["file_assoc.exe"] getPath())
     def addCommandCmd := 
-        CommandMaker new(ehomeDir["bin/win32/add_command.exe"] getPath())
+        CommandMaker new(cmdDir["add_command.exe"] getPath())
 
     def shortDir := ehomeDir["bin/shortcuts"]
     shortDir mkdir()
@@ -145,5 +147,5 @@
             awt__uriGetter,
             swing__uriGetter,
             JPanel__quasiParser,
-            iconImage)
+            optIconImage)
 }



1.14      +12 -11    e/src/esrc/scripts/setup.e

Index: setup.e
===================================================================
RCS file: /cvs/e/src/esrc/scripts/setup.e,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- setup.e	2001/08/04 00:45:38	1.13
+++ setup.e	2001/08/26 01:21:31	1.14
@@ -8,7 +8,7 @@
 # eprops.txt
 
 def props := [
-    "e.extensionslist"             => ".e;.emaker;.updoc;.vat;.cap",
+    "e.extensionslist"             => ".e;.emaker;.caplet;.updoc;.vat;.cap",
     "e.vendor"                     => "ERights.org",
     "e.vendor.url"                 => "http://www.erights.org/",
     "e.vendor.url.bug"             => "mailto:bugs@erights.org",
@@ -37,13 +37,11 @@
 # 'false' means overwrite rather than complain
 props putAll(interp getProps(), false)
 
-def ehomeDir := if (props maps("e.home")) {
-    <file: props["e.home"]>
-} else {
-    <file:.>
-}
-
-def eVersion := ehomeDir["eVersion.txt"] getText() trim()
+def ehomeDir := <file: props get("e.home", ".")>
+def eVersionFile := ehomeDir["eVersion.txt"]
+require(eVersionFile exists(),
+        thunk{`Can't find ${eVersionFile getPath()}`})
+def eVersion := eVersionFile getText() trim()
 props["e.version"] := eVersion
 println(`E $eVersion Installer...`)
 
@@ -51,13 +49,15 @@
 if (epropsFile exists()) {
     def newProps := ConstMapMaker fromPropertiesString(epropsFile getText())
     def cpa := ehomeDir getCanonicalPath()
-    def cpb := <file: props["e.home"]> getCanonicalPath()
+    def cpb := <file: newProps["e.home"]> getCanonicalPath()
     require(cpa == cpb,
             thunk{`$cpa/eprops.txt says it should be at $cpb`})
     props putAll(newProps, false)
 }
 
-def iconImage := if (props get("e.swingLnF", null) == "none") {
+def optIconImage := if (props get("e.swingLnF", null) == "none") {
+    # If "none", then try to avoid doing anything that might crash the jvm
+    # if we're headless.  This may no longer be a concern with modern jvms.
     null
 } else {
     def iconURL := <resource:org/erights/e/icons/green-e-on-white-16.gif>
@@ -78,9 +78,10 @@
                  awt__uriGetter,
                  swing__uriGetter,
                  JPanel__quasiParser,
-                 iconImage)
+                 optIconImage)
 
 } else {
+    # XXX This is stupid.  We should do common install logic regardless.
     println("Unrecognized OS, probably Ctrl-C to exit")
     interp blockAtTop()
 }



1.6       +1 -1      e/src/jsrc/org/erights/e/meta/java/lang/ProcessSugar.java

Index: ProcessSugar.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/meta/java/lang/ProcessSugar.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ProcessSugar.java	2001/07/14 12:57:24	1.5
+++ ProcessSugar.java	2001/08/26 01:21:31	1.6
@@ -42,7 +42,7 @@
      * Waits for the Process to exit.
      *
      * @return A triple of the exitCode, the text sent to stdout as a
-     * String, and the text sent to stderr as a String.
+     *         String, and the text sent to stderr as a String.
      */
     static public Object[] results(Process self)
     throws InterruptedException {