smalltalk--backstage--2.2--patch-51
    imply file by filein in package.xml, usually

This only happens during XML parsing, so the Package protocol is
unchanged.  You can short-circuit it with an explicit <file> or
<built-file> or <other future allFiles-integrated tag>.  The idea is to
simplify description and eliminate common errors for the most common
case, in which you want a <file> for each <filein>.

-- 
;;; Stephen Compall ** http://scompall.nocandysw.com/blog **
;;; acolyte of the indirect effect
2007-07-21  Stephen Compall  <[EMAIL PROTECTED]>

	* kernel/PkgLoader.st: Support implied <file> by <filein> in XML
	package descriptions, unless otherwise specified as a different
	type of file.


--- orig/doc/gst.texi
+++ mod/doc/gst.texi
@@ -1783,7 +1783,7 @@
        need not be loaded once this one is.}} -->
   <provides>BLOX</provides>
   
-  <!-- @[EMAIL PROTECTED] @code{filein} tag identifies packages that
+  <!-- @[EMAIL PROTECTED] @code{filein} tag identifies files that
        compose this package and that should be loaded in the
        image in this order.}} -->
   <filein>BloxBasic.st</filein>
@@ -1791,21 +1791,18 @@
   <filein>BloxText.st</filein>
   <filein>BloxExtend.st</filein>
   <filein>Blox.st</filein>
-  <filein>../browser/test.st</filein>
-  
-  <!-- @[EMAIL PROTECTED] @code{file} tag identifies packages that
-       compose this package's distribution.}} -->
-  <file>Blox.st</file>
-  <file>BloxBasic.st</file>
-  <file>BloxWidgets.st</file>
-  <file>BloxText.st</file>
-  <file>BloxExtend.st</file>
 </package>
 </packages>
 @end example
 
 Other tags exist:
 @table @code
[EMAIL PROTECTED] file
+Identifies a file that should be distributed with the package, but will
+not be filed in by the package loader unless also listed as a
[EMAIL PROTECTED]  Examples include Smalltalk code filed in by other means,
+text files, graphic files, or anything.
+
 @item module
 Loads a dynamic shared object and calls the @code{gst_initModule}
 function in it.  Modules can register functions so that Smalltalk


--- orig/kernel/PkgLoader.st
+++ mod/kernel/PkgLoader.st
@@ -1057,11 +1057,25 @@
 	        cdata := nil
 	    ].
         ].
+	self distributeFreeFileIns.
     ] ensure: [
         stack isEmpty ifFalse: [
 	    self error: 'error in packages file: unmatched start tags',
 		stack asArray printString ]
     ]
+!
+
+distributeFreeFileIns
+    "Add all fileIns, including those in tests, not in `self allFiles'
+     to my distributed files."
+    | fileSet addNewFile |
+    fileSet := Set withAll: self allFiles.
+    addNewFile := [:each |
+	(fileSet includes: each) ifFalse:
+	    [fileSet add: each.
+	     self files add: each]].
+    self fileIns do: addNewFile.
+    test isNil ifFalse: [test fileIns do: addNewFile].
 ! !
 
 !Kernel.DisabledPackage methodsFor: 'accessing'!



Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to