--- a/substreams/Make.proto Sun Nov 17 00:20:55 2013 -0500
+++ b/substreams/Make.proto Sun Nov 17 00:21:32 2013 -0500
@@ -99,7 +99,8 @@
# add more postMake actions here
postMake:: cleanjunk
-prereq: $(REQUIRED_SUPPORT_DIRS)
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
cd ../../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../support && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -107,6 +108,11 @@
+# build all packages containing referenced classes for this package
+# they are nor needed to compile the package
+references:
+
+
cleanjunk::
-rm -f *.s *.s2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/substreams/Makefile.init Sun Nov 17 00:21:32 2013 -0500
@@ -0,0 +1,27 @@
+#
+# DO NOT EDIT
+#
+# make uses this file (Makefile) only, if there is no
+# file named "makefile" (lower-case m) in the same directory.
+# My only task is to generate the real makefile and call make again.
+# Thereafter, I am no longer used and needed.
+#
+# MACOSX caveat:
+# as filenames are not case sensitive (in a default setup),
+# we cannot use the above trick. Therefore, this file is now named
+# "Makefile.init", and you have to execute "make -f Makefile.init" to
+# get the initial makefile. This is now also done by the toplevel CONFIG
+# script.
+
+.PHONY: run
+
+run: makefile
+ $(MAKE) -f makefile
+
+#only needed for the definition of $(TOP)
+include Make.proto
+
+makefile: mf
+
+mf:
+ $(TOP)/rules/stmkmf
--- a/substreams/bc.mak Sun Nov 17 00:20:55 2013 -0500
+++ b/substreams/bc.mak Sun Nov 17 00:21:32 2013 -0500
@@ -48,7 +48,7 @@
!INCLUDE $(TOP)\rules\stdRules_bc
-# build all prerequisite packages for this package
+# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
pushd ..\..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -60,6 +60,7 @@
+
test: $(TOP)\goodies\builder\reports\NUL
pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
--- a/substreams/mingwmake.bat Sun Nov 17 00:20:55 2013 -0500
+++ b/substreams/mingwmake.bat Sun Nov 17 00:21:32 2013 -0500
@@ -11,6 +11,6 @@
@pushd ..\..\..\rules
@call find_mingw.bat
@popd
-make.exe -N -f bc.mak %USEMINGW_ARG% %*
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
--- a/substreams/stx_goodies_xtreams_substreams.st Sun Nov 17 00:20:55 2013 -0500
+++ b/substreams/stx_goodies_xtreams_substreams.st Sun Nov 17 00:21:32 2013 -0500
@@ -20,7 +20,7 @@
| stream substream |
stream := String new writing.
substream := stream limiting: 5.
- [ substream write: ''Hello World!!'' ] on: Incomplete do: [].
+ [ substream write: ''Hello World!!!!'' ] on: Incomplete do: [].
stream conclusion
}}}
@@ -52,13 +52,13 @@
}}}
* any other object - the stream ends when an equal element passes through the stream"
{{{
- (''ab#cd#ef!!ABC##'' reading ending: $!!) rest.
+ (''ab#cd#ef!!!!ABC##'' reading ending: $!!!!) rest.
}}}
{{{
| stream substream |
stream := String new writing.
- substream := stream ending: $!!.
- [ substream write: ''Hello World!! Bye World!!'' ] on: Incomplete do: [].
+ substream := stream ending: $!!!!.
+ [ substream write: ''Hello World!!!! Bye World!!!!'' ] on: Incomplete do: [].
stream conclusion
}}}
There is also a longer form #ending:inclusive: which takes an additional Boolean argument determining if the matching elements should be part of the substream content or not. The short form assumes the matching elements should be omitted.
@@ -99,10 +99,10 @@
samples conclusion
}}}
-In the following example the stream contains multiple messages delimited by $!! and each message has multiple parts ending with $#. We want to process each part as a stream of its own (this is a simplified version of how multipart messages are represented in MIME).
+In the following example the stream contains multiple messages delimited by $!!!! and each message has multiple parts ending with $#. We want to process each part as a stream of its own (this is a simplified version of how multipart messages are represented in MIME).
{{{
| messages |
- messages := (''ab#cd#ef!!ABC##'' reading ending: $!!) slicing.
+ messages := (''ab#cd#ef!!!!ABC##'' reading ending: $!!!!) slicing.
messages collect: [ :message |
(message ending: $#) slicing collect: [ :part | part rest ] ]
}}}
@@ -112,7 +112,7 @@
{{{
| connection messages |
connection := String new writing.
- messages := (connection closing: [ connection put: $!! ]) slicing.
+ messages := (connection closing: [ connection put: $!!!! ]) slicing.
3 timesRepeat: [ | parts message |
message := messages get.
parts := (message closing: [ connection put: $# ]) slicing.
@@ -276,6 +276,13 @@
)
! !
+!stx_goodies_xtreams_substreams class methodsFor:'description - project information'!
+
+legalCopyright
+
+ ^'Copyright 2010-2013 Cincom Systems, Martin Kobetic and Michael Lucas-Smith'
+! !
+
!stx_goodies_xtreams_substreams class methodsFor:'documentation'!
version_HG
--- a/substreams/substreams.rc Sun Nov 17 00:20:55 2013 -0500
+++ b/substreams/substreams.rc Sun Nov 17 00:21:32 2013 -0500
@@ -4,7 +4,7 @@
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,2,32767,32767
- PRODUCTVERSION 6,2,3,0
+ PRODUCTVERSION 6,2,3,957
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
@@ -22,10 +22,10 @@
VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
VALUE "FileVersion", "6.2.32767.32767\0"
VALUE "InternalName", "stx:goodies/xtreams/substreams\0"
- VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2013\nCopyright eXept Software AG 1998-2013\0"
+ VALUE "LegalCopyright", "Copyright 2010-2013 Cincom Systems, Martin Kobetic and Michael Lucas-Smith\0"
VALUE "ProductName", "Smalltalk/X\0"
- VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Fri, 15 Mar 2013 22:26:00 GMT\0"
+ VALUE "ProductVersion", "6.2.3.957\0"
+ VALUE "ProductDate", "Sun, 17 Nov 2013 05:01:30 GMT\0"
END
END