Merged bf7f37b63ea2 and 80810829f468 (branch default - CVS HEAD) jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 02 Feb 2014 14:16:24 +0000
branchjv
changeset 18117 eb433f2c42b2
parent 18116 bf7f37b63ea2 (current diff)
parent 15925 80810829f468 (diff)
child 18118 997e1134b949
Merged bf7f37b63ea2 and 80810829f468 (branch default - CVS HEAD)
AbstractOperatingSystem.st
CharacterArray.st
ClassBuilder.st
ExternalStream.st
Integer.st
LargeInteger.st
MiniInspector.st
NonPositionableExternalStream.st
Object.st
ProjectDefinition.st
Rectangle.st
SHA1Stream.st
SmallInteger.st
SmalltalkLanguage.st
StandaloneStartup.st
UnixOperatingSystem.st
UserPreferences.st
Win32OperatingSystem.st
--- a/.hgtags	Fri Jan 31 02:04:30 2014 +0000
+++ b/.hgtags	Sun Feb 02 14:16:24 2014 +0000
@@ -10,6 +10,7 @@
 288a01786ed5f59915047167fba6c00b36226c4a expeccoNET_1_5_1rc1
 28ef0472cf2f08acd9c2056a517e1fae4bc8033d expecco_2_2_5
 2f39b0b6f4e6ecc84a698e16accec417b27b0da4 expecco_1_3_4
+335888decf07eff0768f4446b74ea2de3db8d201 expecco_2_6_1
 373af30a15cafccd184b57b8492979e1969af65f rel3_4_1_1
 3816e831f5f3ed00876f38adbfaf1a25ad010ed7 rel2_10_8_6_last_before_vmData_change
 471ed2bb3bf16111afbf2e0d6dfb422d78294aca expecco_1_0_3
--- a/AbstractOperatingSystem.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/AbstractOperatingSystem.st	Sun Feb 02 14:16:24 2014 +0000
@@ -6235,13 +6235,13 @@
 !
 
 setBlocking:aBoolean on:fd
-    "{ Pragma: +optSpace }"
-
     "set/clear the blocking attribute - if set (which is the default)
      a read on the fileDescriptor will block until data is available.
      If cleared, a read operation will immediately return with a value of nil.
      Also affects write operations, which may perform partial writes when
-     blocking is off"
+     blocking is off. Answer the previous blocking status."
+
+    "{ Pragma: +optSpace }"
 
     self subclassResponsibility
 !
@@ -7273,11 +7273,11 @@
 !AbstractOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.247 2013-12-17 16:46:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.248 2014-01-28 19:37:53 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.247 2013-12-17 16:46:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.248 2014-01-28 19:37:53 stefan Exp $'
 ! !
 
 
--- a/CharacterArray.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/CharacterArray.st	Sun Feb 02 14:16:24 2014 +0000
@@ -283,6 +283,7 @@
     "Created: 3.8.1997 / 18:16:40 / cg"
 ! !
 
+
 !CharacterArray class methodsFor:'cleanup'!
 
 lowSpaceCleanup
@@ -326,6 +327,7 @@
     "
 ! !
 
+
 !CharacterArray class methodsFor:'pattern matching'!
 
 matchEscapeCharacter
@@ -723,6 +725,7 @@
     ^ self == CharacterArray
 ! !
 
+
 !CharacterArray methodsFor:'Compatibility-ANSI'!
 
 addLineDelimiters
@@ -1613,6 +1616,7 @@
     ^ true
 ! !
 
+
 !CharacterArray methodsFor:'character searching'!
 
 includesMatchCharacters
@@ -1773,6 +1777,29 @@
     "
 !
 
+indexOfSeparatorOrEndStartingAt:startIndex
+    "return the index of the next whitespace character,
+     starting the search at startIndex, searching forward;
+     return the index of one behond the end of the receiver if no separator was found.
+     To extract the word, copy from startIndex to the returned index-1"
+
+    |idx|
+
+    idx := self indexOfSeparatorStartingAt:startIndex.
+    idx == 0 ifTrue:[^ self size + 1].
+    ^ idx.
+
+    "
+     'hello world' indexOfSeparatorOrEndStartingAt:3    
+     ' hello world' indexOfSeparatorOrEndStartingAt:3
+     'hello world ' indexOfSeparatorOrEndStartingAt:3
+     'hello world ' indexOfSeparatorOrEndStartingAt:6
+     'hello world ' indexOfSeparatorOrEndStartingAt:7
+     'helloworld ' indexOfSeparatorOrEndStartingAt:7    
+     'helloworld' indexOfSeparatorOrEndStartingAt:7
+    "
+!
+
 indexOfSeparatorStartingAt:startIndex
     "return the index of the next whitespace character,
      starting the search at startIndex, searching forward;
@@ -3898,8 +3925,8 @@
     ^ CharacterEncoder encodeString:self from:oldEncoding into:newEncoding
 
     "
-     'äüö' encodeFrom:#iso8859 into:#utf8
-     ('äüö' encodeFrom:#iso8859 into:#utf8) encodeFrom:#utf8 into:#unicode
+     '' encodeFrom:#iso8859 into:#utf8
+     ('' encodeFrom:#iso8859 into:#utf8) encodeFrom:#utf8 into:#unicode
     "
 !
 
@@ -3955,7 +3982,7 @@
 
     "
      'abcde1234' utf16Encoded
-     'abcdeäöüß' utf16Encoded
+     'abcde' utf16Encoded
     "
 
     "Modified: / 11-05-2010 / 19:12:37 / cg"
@@ -4042,12 +4069,14 @@
 
     "
      'abcde1234' utf8Encoded
-     'abcdeäöüß' utf8Encoded
+     'abcde' utf8Encoded
     "
 
     "Modified: / 11-05-2010 / 19:12:37 / cg"
 ! !
 
+
+
 !CharacterArray methodsFor:'matching - glob expressions'!
 
 compoundMatch:aString
@@ -4730,6 +4759,7 @@
     "Created: / 08-03-2012 / 03:11:11 / cg"
 ! !
 
+
 !CharacterArray methodsFor:'padded copying'!
 
 centerPaddedTo:newSize
@@ -5357,6 +5387,7 @@
     "Modified: 17.4.1997 / 12:50:23 / cg"
 ! !
 
+
 !CharacterArray methodsFor:'special string converting'!
 
 expandPlaceholders:escapeCharacter with:argArrayOrDictionary
@@ -6301,6 +6332,7 @@
     "
 ! !
 
+
 !CharacterArray methodsFor:'substring searching'!
 
 findRangeOfString:subString
@@ -6886,11 +6918,11 @@
 !CharacterArray class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.520 2014-01-05 12:27:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.521 2014-01-27 22:59:16 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.520 2014-01-05 12:27:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.521 2014-01-27 22:59:16 cg Exp $'
 !
 
 version_HG
--- a/ClassBuilder.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/ClassBuilder.st	Sun Feb 02 14:16:24 2014 +0000
@@ -1061,7 +1061,7 @@
 
             (instVarChange and:[oldClass notNil and:[oldClass isBuiltInClass]]) ifTrue:[
                 ClassBuildError raiseErrorString:'The layout of this class is fixed - you cannot change it.'.
-                AbortSignal raise
+                AbortOperationRequest raise
             ].
 
             ((oldInstVars size == 0) 
@@ -2372,11 +2372,11 @@
 !ClassBuilder class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.126 2013-06-30 06:57:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.127 2014-01-23 16:11:41 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.126 2013-06-30 06:57:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.127 2014-01-23 16:11:41 stefan Exp $'
 ! !
 
 
--- a/ExternalStream.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/ExternalStream.st	Sun Feb 02 14:16:24 2014 +0000
@@ -1366,7 +1366,7 @@
                 }                                       \
                 break;                                  \
             }                                           \
-            __offs += (ret);                            \
+            __offs += (ret); break;                     \
         }                                               \
     }                                                   \
     if (__offs > 0)                                     \
@@ -1802,11 +1802,9 @@
 !
 
 new
-    |newStream|
-
-    newStream := self basicNew.
-    newStream text; buffered:true; eolMode:DefaultEOLMode; clearEOF.
-    ^ newStream
+    "re-enable new - disabled in Stream superclass"
+
+    ^ self basicNew initialize.
 ! !
 
 !ExternalStream class methodsFor:'Signal constants'!
@@ -2545,6 +2543,16 @@
     self closeFile
 ! !
 
+!ExternalStream methodsFor:'initialization'!
+
+initialize
+    position := 0.
+    binary := false.
+    buffered := true.
+    eolMode := DefaultEOLMode.
+    hitEOF := false.
+! !
+
 !ExternalStream methodsFor:'line reading/writing'!
 
 nextLine
@@ -5824,11 +5832,11 @@
 !ExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.374 2013-12-04 14:24:56 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.378 2014-01-29 13:35:20 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.374 2013-12-04 14:24:56 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.378 2014-01-29 13:35:20 stefan Exp $'
 ! !
 
 
--- a/Integer.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/Integer.st	Sun Feb 02 14:16:24 2014 +0000
@@ -2294,15 +2294,6 @@
     "
 !
 
-byteSwapped
-    "lsb -> msb;
-     i.e. a.b.c.d -> d.c.b.a"
-
-    ^ LargeInteger digitBytes:(self digitBytes) MSB:true
-
-    "Created: / 31-01-2012 / 12:17:57 / cg"
-!
-
 digitByteLength
     "return the number bytes required for a 2's complement
      binary representation of this Integer.
@@ -4998,11 +4989,8 @@
      |m|
 
      m := self new modulus:123456789901398721398721931729371293712943794254034548369328469438562948623498659238469234659823469823658423659823658.
-     Time millisecondsToRun:[
-        100000 timesRepeat:[
-            m modulusOf:874928459437598375937451931729371293712943794254034548369328469438562948623498659238469234659823469823658423659823658.
-        ]
-     ]
+    m modulusOf:874928459437598375937451931729371293712943794254034548369328469438562948623498659238469234659823469823658423659823658.
+10730930127807326146398409623772237722337234475792709784029183368622308259008044569184592041059181058049458041058052     ]
     "
 
     "Modified: / 3.5.1999 / 14:30:32 / stefan"
@@ -5020,11 +5008,11 @@
 !Integer class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.288 2013-12-02 20:00:24 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.290 2014-01-25 21:35:22 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.288 2013-12-02 20:00:24 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.290 2014-01-25 21:35:22 cg Exp $'
 ! !
 
 
--- a/LargeInteger.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/LargeInteger.st	Sun Feb 02 14:16:24 2014 +0000
@@ -1425,7 +1425,7 @@
 
 byteSwapped
     "lsb -> msb;
-     i.e. a.b.c.d -> d.c.b.a"
+     i.e. a.b ... y.z -> z.y. ... b.a"
 
     ^ self class digitBytes:digitByteArray MSB:true
 
@@ -1439,6 +1439,72 @@
     "Created: / 31-01-2012 / 11:07:42 / cg"
 !
 
+byteSwapped32
+    "byte swap a 32bit value; lsb -> msb;
+     i.e. a.b.c.d -> d.c.b.a
+     Useful for communication protocols"
+
+%{
+    unsigned INT swapped;
+
+    swapped = ( (__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[0]) << 24)
+              | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[1]) << 16)
+              | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[2]) << 8)
+              | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[3]));
+    RETURN (__MKUINT(swapped));
+%}.
+
+    "
+     (LargeInteger value:16r11223344) byteSwapped hexPrintString 
+     (LargeInteger value:16r44332211) byteSwapped hexPrintString  
+     16r88776655 byteSwapped hexPrintString  
+     16r11223344 byteSwapped hexPrintString  
+    "
+
+    "Created: / 31-01-2012 / 11:07:42 / cg"
+!
+
+byteSwapped64
+    "byte swap a 64bit value; lsb -> msb;
+     i.e. a.b.c.d.e.f.g.h -> h.g.f.e.d.c.b.a
+     Useful for communication protocols"
+
+%{
+    unsigned INT swappedLO = 0;
+    unsigned INT swappedHI;
+    unsigned INT swapped;
+
+    swappedHI = ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[0]) << 24)
+              | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[1]) << 16)
+              | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[2]) << 8)
+              | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[3]));
+    if (__byteArraySize(__INST(digitByteArray)) > 4) {
+        swappedLO = ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[4]) << 24)
+                  | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[5]) << 16)
+                  | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[6]) << 8)
+                  | ((__ByteArrayInstPtr(__INST(digitByteArray))->ba_element[7]));
+    }
+
+#if __POINTER_SIZE__ == 8
+    swapped = (swappedHI<<32) | swappedLO;
+    return __MKUINT( swapped );
+#else
+    return __MKLARGEINT64(1, swappedLO, swappedHI);
+#endif
+%}.
+
+    "
+     (LargeInteger value:16r11223344) byteSwapped64 hexPrintString 
+     (LargeInteger value:16r44332211) byteSwapped64 hexPrintString  
+     (LargeInteger value:16r1122334455667788) byteSwapped64 hexPrintString  
+     (LargeInteger value:16r8877665544332211) byteSwapped64 hexPrintString  
+     16r88776655 byteSwapped hexPrintString  
+     16r11223344 byteSwapped hexPrintString  
+    "
+
+    "Created: / 31-01-2012 / 11:07:42 / cg"
+!
+
 digitAt:index
     "return 8 bits of value, starting at byte index"
 
@@ -5233,10 +5299,10 @@
 !LargeInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.214 2013-12-02 18:10:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.216 2014-01-25 21:21:15 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.214 2013-12-02 18:10:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.216 2014-01-25 21:21:15 cg Exp $'
 ! !
 
--- a/MiniInspector.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/MiniInspector.st	Sun Feb 02 14:16:24 2014 +0000
@@ -131,7 +131,7 @@
 !
 
 enter
-    AbortSignal handle:[:ex |
+    AbortOperationRequest handle:[:ex |
         '** Abort Signal cought - back in previous debugLevel' printCR.
         ex restart
     ] do:[
@@ -265,7 +265,7 @@
 !MiniInspector class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/MiniInspector.st,v 1.27 2013-03-24 11:41:25 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/MiniInspector.st,v 1.28 2014-01-23 16:11:52 stefan Exp $'
 !
 
 version_SVN
--- a/NonPositionableExternalStream.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/NonPositionableExternalStream.st	Sun Feb 02 14:16:24 2014 +0000
@@ -208,6 +208,15 @@
     "
 ! !
 
+!NonPositionableExternalStream methodsFor:'initialization'!
+
+initialize
+    "non-positionalble streams do now work well when buffered"
+
+    super initialize.
+    buffered := false.
+! !
+
 !NonPositionableExternalStream methodsFor:'non homogenous reading'!
 
 nextBytes:count into:anObject startingAt:start
@@ -561,11 +570,11 @@
 
     wasBlocking := self blocking:false.
     [remaining ~~ 0] whileTrue:[
-	count := super nextPutBytes:remaining from:buffer startingAt:offset.
-	count ~~ remaining ifTrue:[ self writeWait. ].
+        count := super nextPutBytes:remaining from:buffer startingAt:offset.
+        count ~~ remaining ifTrue:[ "Transcript showCR:'writeWait'. "self writeWait. ].
 
-	remaining := remaining - count.
-	offset := offset + count.
+        remaining := remaining - count.
+        offset := offset + count.
     ].
     wasBlocking ifTrue:[self blocking:true].
 
@@ -575,10 +584,10 @@
 !NonPositionableExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.64 2013-10-28 17:28:00 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.67 2014-01-30 16:41:04 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.64 2013-10-28 17:28:00 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.67 2014-01-30 16:41:04 stefan Exp $'
 ! !
 
--- a/Object.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/Object.st	Sun Feb 02 14:16:24 2014 +0000
@@ -270,7 +270,7 @@
      This signal is supposed to abort multiple operation actions, and get out of
      the loop (such as when confirming multiple class deletions etc.)"
 
-    ^ AbortAllSignal
+    ^ AbortAllOperationRequest
 !
 
 abortSignal
@@ -511,6 +511,8 @@
     "Modified: 23.4.1996 / 16:00:07 / cg"
 ! !
 
+
+
 !Object methodsFor:'Compatibility-Dolphin'!
 
 stbFixup: anSTBInFiler at: newObjectIndex
@@ -666,6 +668,7 @@
     "
 ! !
 
+
 !Object methodsFor:'accessing'!
 
 _at:index
@@ -9938,11 +9941,11 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.744 2014-01-10 09:09:45 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.745 2014-01-23 16:11:47 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.744 2014-01-10 09:09:45 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.745 2014-01-23 16:11:47 stefan Exp $'
 !
 
 version_HG
--- a/ProjectDefinition.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/ProjectDefinition.st	Sun Feb 02 14:16:24 2014 +0000
@@ -2589,7 +2589,6 @@
 ! !
 
 
-
 !ProjectDefinition class methodsFor:'description - project information'!
 
 applicationAdditionalIconFileNames
@@ -3249,7 +3248,9 @@
                         ].
 
                         wasLoaded ifFalse:[
-                            cls unload
+                            UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition ifTrue:[
+                                cls unload
+                            ]
                         ]
                     ].
                     s cr.
@@ -3275,7 +3276,7 @@
     "
 
     "Created: / 09-08-2006 / 11:24:39 / fm"
-    "Modified: / 21-01-2012 / 12:42:57 / cg"
+    "Modified: / 28-01-2014 / 21:43:56 / cg"
 !
 
 generate_autopackage_default_dot_apspec
@@ -3840,7 +3841,7 @@
     "answer a dictionary
         category -> classNames topological sorted"
 
-    |classes classNames mapping|
+    |classes classNames mapping alreadyWarned|
 
     mapping := Dictionary new.
 
@@ -3853,7 +3854,7 @@
     ].
     mapping at:'COMMON' put:classNames.
 
-
+    alreadyWarned := false.
     OperatingSystem knownPlatformNames do:[:platformID |
         |platformClasses platformClassNames|
 
@@ -3866,9 +3867,14 @@
                 platformClassNames
                     select:[:nm | |cls| cls := Smalltalk classNamed:nm. cls isNil or:[cls isLoaded not]]
                     thenDo:[:nm | Transcript tab; showCR:nm].
-                (Dialog confirm:('Dependencies (and therefore build-order) might be incorrect\(some classes for platform ''%1'' are not present or autoloaded; see Transcript).\\Continue anyway without recomputing the order for this platform''s classes?' withCRs bindWith:platformID))
-                ifFalse:[
-                    AbortOperationRequest raise.
+                UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
+                    alreadyWarned ifFalse:[
+                        (Dialog confirm:('Dependencies (and therefore build-order) might be incorrect\(some classes for platform ''%1'' are not present or autoloaded; see Transcript).\\Continue anyway without recomputing the compilation order for this platform''s classes?' withCRs bindWith:platformID))
+                        ifFalse:[
+                            AbortOperationRequest raise.
+                        ].
+                    ].
+                    alreadyWarned := true
                 ].
             ] ifFalse:[
                 classes := Class classesSortedByLoadOrder:platformClasses.
@@ -3887,7 +3893,7 @@
     "
 
     "Created: / 09-08-2006 / 11:24:39 / fm"
-    "Modified: / 25-11-2011 / 16:41:47 / cg"
+    "Modified: / 28-01-2014 / 21:40:23 / cg"
 !
 
 commonSymbolsFlag
@@ -5254,16 +5260,20 @@
     ].
 
     nonExistantClasses notEmpty ifTrue:[
-        (Dialog confirm:(Dialog classResources
-                            stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
-                            with:nonExistantClasses anElement allBold))
-        ifFalse:[
-            AbortOperationRequest raise.
+        Transcript showCR:('"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.' bindWith:nonExistantClasses).
+        UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
+            (Dialog confirm:(Dialog classResources
+                                stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
+                                with:nonExistantClasses anElement allBold)) ifFalse:[
+                AbortOperationRequest raise.
+            ].
         ].
         ^ false.
     ].
 
     ^ true
+
+    "Modified: / 28-01-2014 / 21:44:37 / cg"
 !
 
 classNamesAndAttributesAsSpecArray
@@ -5375,9 +5385,12 @@
 
                 cls := Smalltalk classNamed:eachName.
                 cls isNil ifTrue:[
-                    self warn:('Missing/invalid class: %1\\%2'
-                                bindWith:eachName
-                                with:('Warning: The class is skipped in the list of compiled classes.' allBold)) withCRs.
+                    Transcript showCR:('Warning: Missing/invalid class: %1 - the class is skipped in the list of compiled classes.').
+                    UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
+                        self warn:('Missing/invalid class: %1\\%2'
+                                    bindWith:eachName
+                                    with:('Warning: The class is skipped in the list of compiled classes.' allBold)) withCRs.
+                    ].
                     cls := nil.
                 ].
                 cls
@@ -5386,7 +5399,7 @@
 
     "Created: / 09-08-2006 / 16:28:15 / fm"
     "Modified: / 09-08-2006 / 18:02:28 / fm"
-    "Modified: / 11-10-2010 / 12:11:06 / cg"
+    "Modified: / 28-01-2014 / 21:45:08 / cg"
 !
 
 cvsRevision
@@ -7401,7 +7414,7 @@
                     , '\\Continue ?') withCRs
             yesLabel:'OK' noLabel:'Cancel')
         ifFalse:[
-            AbortSignal raise
+            AbortOperationRequest raise
         ].
     ].
 
@@ -7543,11 +7556,11 @@
 !ProjectDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.486 2013-12-17 20:55:34 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.489 2014-01-28 20:45:30 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.486 2013-12-17 20:55:34 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.489 2014-01-28 20:45:30 cg Exp $'
 !
 
 version_HG
--- a/Rectangle.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/Rectangle.st	Sun Feb 02 14:16:24 2014 +0000
@@ -267,7 +267,7 @@
 
 fromUser
     "let user specify a rectangle on the screen, return it.
-     If the user presses ESC, an AbortSignal is raised."
+     If the user presses ESC, an AbortOperationRequest is raised."
 
     ^ Screen current rectangleFromUser
 
@@ -1821,10 +1821,10 @@
 !Rectangle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Rectangle.st,v 1.86 2013-12-04 10:01:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Rectangle.st,v 1.87 2014-01-23 16:11:19 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Rectangle.st,v 1.86 2013-12-04 10:01:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Rectangle.st,v 1.87 2014-01-23 16:11:19 stefan Exp $'
 ! !
 
--- a/SHA1Stream.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/SHA1Stream.st	Sun Feb 02 14:16:24 2014 +0000
@@ -1,6 +1,6 @@
 "
  COPYRIGHT (c) 1999-2013 by eXept Software AG
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -39,7 +39,7 @@
 } SHA1_CTX;
 
 #if USE_ANSI_C
- void SHA1Transform(unsigned long state[5], unsigned char buffer[64]);
+ void SHA1Transform(unsigned int32 /* long */ state[5], unsigned char buffer[64]);
  void SHA1Init(SHA1_CTX* context);
  void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len);
  void SHA1Final(unsigned char digest[20], SHA1_CTX* context);
@@ -290,7 +290,7 @@
 copyright
 "
  COPYRIGHT (c) 1999-2013 by eXept Software AG
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -338,7 +338,7 @@
 "
     Test Vectors (from FIPS PUB 180-1); results are:
 
-                                                                [exBegin]
+								[exBegin]
     |hashStream|
 
     hashStream := SHA1Stream new.
@@ -346,16 +346,16 @@
     hashStream hashValue printOn:Transcript base:16. Transcript cr.
     hashStream nextPut:'dbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
     hashStream hashValue printOn:Transcript base:16. Transcript cr.
-                                                                [exEnd]
+								[exEnd]
 
-                                                                [exBegin]
+								[exBegin]
     |hashValue|
 
     hashValue := SHA1Stream hashValueOf:'abc'.
     hashValue printOn:Transcript base:16. Transcript cr.
-                                                                [exEnd]
+								[exEnd]
 
-                                                                [exBegin]
+								[exBegin]
     |hashStream|
 
     hashStream := SHA1Stream new.
@@ -364,47 +364,47 @@
     hashStream nextPut:'dbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq' asByteArray.
     hashStream hashValue printOn:Transcript base:16. Transcript cr.
 
-                                                                [exEnd]
+								[exEnd]
 
-                                                                [exBegin]
+								[exBegin]
     |hashStream|
 
     hashStream := SHA1Stream new.
     1000000 timesRepeat:[ hashStream nextPut:$a ].
     hashStream hashValue printOn:Transcript base:16. Transcript cr.
-                                                                [exEnd]
+								[exEnd]
 
-                                                                [exBegin]
+								[exBegin]
     |hashStream|
 
     hashStream := SHA1Stream new.
     hashStream nextPut:'a'.
     hashStream hashValue printOn:Transcript base:16. Transcript cr.
-                                                                [exEnd]
+								[exEnd]
 
-                                                                [exBegin]
+								[exBegin]
     |hashStream|
 
     hashStream := SHA1Stream new.
     hashStream nextPut:$a.
     hashStream hashValue printOn:Transcript base:16. Transcript cr.
-                                                                [exEnd]
+								[exEnd]
 
   timing throughput:
-                                                                [exBegin]
+								[exBegin]
     |hashStream n t|
 
     hashStream := SHA1Stream new.
     n := 1000000.
     t := Time millisecondsToRun:[
-            n timesRepeat:[
-                hashStream nextPutAll:'12345678901234567890123456789012345678901234567890'.
-            ].
-         ].
+	    n timesRepeat:[
+		hashStream nextPutAll:'12345678901234567890123456789012345678901234567890'.
+	    ].
+	 ].
     t := (t / 1000) asFloat.
     Transcript show:t; show:' seconds for '; show:(50*n/1024) asFloat; showCR:' Kb'.
     Transcript show:(n*50/1024 / t); showCR:' Kb/s'
-                                                                [exEnd]
+								[exEnd]
 "
 ! !
 
@@ -428,7 +428,7 @@
 
 hashBlockSize
     "return the block size used internally by the compression function"
-    
+
     ^ 64
 
     "Created: / 18.3.1999 / 08:37:10 / stefan"
@@ -582,11 +582,11 @@
 !SHA1Stream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SHA1Stream.st,v 1.39 2013-08-11 22:25:41 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SHA1Stream.st,v 1.40 2014-01-25 00:31:18 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/SHA1Stream.st,v 1.39 2013-08-11 22:25:41 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SHA1Stream.st,v 1.40 2014-01-25 00:31:18 cg Exp $'
 ! !
 
 
--- a/SmallInteger.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/SmallInteger.st	Sun Feb 02 14:16:24 2014 +0000
@@ -1724,43 +1724,148 @@
 
 !SmallInteger methodsFor:'byte access'!
 
-byteSwapped
+byteSwapped 
     "lsb -> msb;
      i.e. a.b.c.d -> d.c.b.a"
 
+    SmallInteger maxBytes == 8 ifTrue:[
+        ^ self byteSwapped64
+    ] ifFalse:[
+        ^ self byteSwapped32
+    ].
+
+    "
+     16r11223344 byteSwapped hexPrintString  
+     16r44332211 byteSwapped hexPrintString   
+    "
+
+    "Created: / 09-01-2012 / 23:01:33 / cg"
+!
+
+byteSwapped16
+    "for 16bit values only:
+     lsb -> msb;
+     i.e. a.b -> b.a"
+
+%{  /* NOCONTEXT */
+    unsigned INT v = __intVal(self);
+    unsigned INT swapped;
+
+    swapped = ((v>>8)&0xFF) | ((v & 0xFF)<<8);
+    RETURN (__mkSmallInteger(swapped));
+%}.
+
+    "
+     16r1122 byteSwapped16 hexPrintString   
+     16r2211 byteSwapped16 hexPrintString   
+     16r332211 byteSwapped16 hexPrintString   
+    "
+!
+
+byteSwapped32
+    "for 32bit values only:
+     lsb -> msb;
+     i.e. a.b.c.d -> d.c.b.a"
+
 %{  /* NOCONTEXT */
+    unsigned INT v = __intVal(self);
+    unsigned INT swapped;
+
+#undef HAVE_BSWAP
+#if __POINTER_SIZE__ == 4
+
+# if defined(USE_BSWAP) && defined(__BORLANDC__)
+#   define HAVE_BSWAP
+
+    _asm {
+        mov eax, v
+        bswap eax
+        mov swapped, eax
+    };
+# endif
+# if defined(USE_BSWAP) && defined(__VISUALC__)
+#   define HAVE_BSWAP
+
+    _asm {
+        mov eax, v
+        xchg al, ah
+        rol eax, 16
+        xchg al, ah
+        mov swapped, eax
+    };
+# endif
+# if defined(USE_BSWAP) && defined(__GNUC__)
+#   define HAVE_BSWAP
+
+    asm("movl %0, %%eax \n\
+         bswap %%eax    \n\
+         movl %%eax, %1 \n\
+        "
+        : "=rm"  (swapped)
+        : "rm"   (v));
+# endif
+#endif /* __POINTER_SIZE__ == 4 */
+
+#if __POINTER_SIZE__ == 8
+    v &= 0xFFFFFFFF;
+
+# if defined(__x86_64__) && defined(__GNUC__)
+#   define HAVE_BSWAP
+
+    asm("movq %0, %%rax \n\
+         bswap %%eax    \n\
+         movq %%rax, %1 \n\
+        "
+        : "=rm"  (swapped)
+        : "rm"   (v));
+# endif
+#endif
+
+#ifndef HAVE_BSWAP
+    swapped = ((v>>24) | ((v>>8)&0xFF00) | ((v & 0xFF00)<<8) | ((v & 0xFF)<<24));
+#endif
+
+    RETURN (__MKUINT(swapped));
+%}.
+
+    "
+     16r11223344 byteSwapped32 hexPrintString  
+     16r44332211 byteSwapped32 hexPrintString   
+    "
+
+    "Created: / 09-01-2012 / 23:01:33 / cg"
+!
+
+byteSwapped64
+    "for 64bit values only:
+     lsb -> msb;
+     i.e. a.b.c.d.e.f.g.h -> h.g.f.e.d.c.b.a"
+
+%{  /* NOCONTEXT */
+    unsigned INT v = __intVal(self);
+    unsigned INT swapped;
 
 #if __POINTER_SIZE__ == 4
-    unsigned int v = __intVal(self);
-    unsigned int swapped;
-
-# ifdef __BORLANDC__
-#  ifdef USE_BSWAP
-    _asm {
-	mov eax, v
-	bswap eax
-	mov swapped, eax
-    };
-#  else
-    _asm {
-	mov eax, v
-	xchg al, ah
-	rol eax, 16
-	xchg al, ah
-	mov swapped, eax
-    };
-#  endif
-# else
-    swapped = ((v>>24) | ((v>>8)&0xFF00) | ((v & 0xFF00)<<8) | ((v & 0xFF)<<24));
-# endif
-    RETURN (__MKUINT(swapped));
-#endif /* __POINTER_SIZE__ */
+    //   xxxxxxxx 00000000 00000000 00000000 -> 00000000 00000000 00000000 xxxxxxxx  
+    //            xxxxxxxx                                        xxxxxxxx
+    //                     xxxxxxxx                      xxxxxxxx
+    //                              xxxxxxxx    xxxxxxxx
+    swapped = (v>>24) | ((v>>8)&0xFF00) | ((v & 0xFF00)<<8) | ((v & 0xFF)<<24);
+#else
+    //   xxxxxxxx 00000000 00000000 00000000 -> 00000000 00000000 00000000 xxxxxxxx  
+    //            xxxxxxxx                                        xxxxxxxx
+    //                     xxxxxxxx                      xxxxxxxx
+    //                              xxxxxxxx    xxxxxxxx
+    swapped =  (v>>56) | ((v>>40)&0xFF00) | ((v>>24) & 0xFF0000) | ((v>>8) & 0xFF000000)
+                | ((v & 0xFF000000)<<8) | ((v & 0x00FF0000)<<24) | ((v & 0x0000FF00)<<40)
+                | ((v & 0xFF)<<56);
+#endif
+    return __MKUINT( swapped );
 %}.
-    ^ super byteSwapped
 
     "
-     16r11223344 byteSwapped hexPrintString
-     16r44332211 byteSwapped hexPrintString
+     16r11223344 byteSwapped64 hexPrintString  
+     16r44332211 byteSwapped64 hexPrintString   
     "
 
     "Created: / 09-01-2012 / 23:01:33 / cg"
@@ -4298,11 +4403,11 @@
 !SmallInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.212 2013-08-04 10:02:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.213 2014-01-25 21:34:10 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.212 2013-08-04 10:02:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.213 2014-01-25 21:34:10 cg Exp $'
 ! !
 
 
--- a/SmalltalkLanguage.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/SmalltalkLanguage.st	Sun Feb 02 14:16:24 2014 +0000
@@ -126,7 +126,7 @@
     "
     <resource: #obsolete>
 
-    self breakPoint:#cg info:'should not be invoked'.
+    self obsoleteMethodWarning.
     ^ Language , anObject
 
     "Created: / 22-08-2009 / 09:33:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
@@ -141,7 +141,7 @@
     "
     <resource: #obsolete>
 
-    self breakPoint:#cg info:'should not be invoked'.
+    self obsoleteMethodWarning.
     ^ Language
 
     "Created: / 22-08-2009 / 09:33:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
@@ -188,14 +188,14 @@
 !SmalltalkLanguage class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.21 2013-07-22 13:46:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.22 2014-01-23 12:58:34 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.21 2013-07-22 13:46:23 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.22 2014-01-23 12:58:34 stefan Exp $'
 !
 
 version_SVN
-    ^'$Id: SmalltalkLanguage.st,v 1.21 2013-07-22 13:46:23 cg Exp $'
+    ^'$Id: SmalltalkLanguage.st,v 1.22 2014-01-23 12:58:34 stefan Exp $'
 ! !
 
--- a/StandaloneStartup.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/StandaloneStartup.st	Sun Feb 02 14:16:24 2014 +0000
@@ -834,7 +834,14 @@
 
 loadPatch:fileName
     self verboseInfo:('loading patch: ',fileName baseName).
-    Smalltalk silentFileIn:fileName pathName.
+    [
+        Smalltalk silentFileIn:fileName pathName.
+    ] on:InvalidPatchError do:[:ex|
+        self verboseInfo:('invalid patch: %1 error: %2'
+                                 bindWith:fileName baseName with:ex messageText).
+        ^ false.
+    ].
+    ^ true
 !
 
 loadPatches
@@ -849,29 +856,24 @@
      If aGlobString ist not empty or nil, only patches matching the glob
      pattern are loaded. E.g. '[0-9]*.chg'"
 
-    |patchesDir prevMode patchesToLoad patchFile|
+    |patchesDir prevMode patchesToLoad|
 
     patchesDir := self patchesDirectory.
     patchesDir isDirectory ifTrue:[
         prevMode := ClassCategoryReader sourceMode.
         ClassCategoryReader sourceMode:#discard.
         [
-            patchesToLoad := patchesDir directoryContents.
+            patchesToLoad := patchesDir directoryContentsAsFilenames.
             patchesToLoad := patchesToLoad select:[:eachFilenameString|
                     eachFilenameString asFilename isRegularFile 
                 ].
             aGlobString notEmptyOrNil ifTrue:[
-                patchesToLoad := patchesToLoad select:[:eachFilenameString|
-                        aGlobString match:eachFilenameString caseSensitive:false
+                patchesToLoad := patchesToLoad select:[:eachFilename|
+                        aGlobString match:eachFilename baseName caseSensitive:false
                     ].
             ].
-            patchesToLoad sort do:[:eachFilenameString |
-                patchFile := patchesDir construct:eachFilenameString.
-                patchFile isDirectory ifTrue:[
-                    ('patch file ', patchFile pathName, ' is a directory') errorPrintCR.
-                ] ifFalse:[                       
-                    self loadPatch:(patchesDir construct:eachFilenameString).
-                ].
+            (patchesToLoad sort:[:a :b | a baseName < b baseName]) do:[:patchFile |
+                self loadPatch:patchFile.
             ].
         ] ensure:[
             ClassCategoryReader sourceMode:prevMode.
@@ -1023,7 +1025,6 @@
     Smalltalk isStandAloneApp ifTrue:[
         self removeDebugger.
         self removeInspector.
-        self removeLauncher.
 
         Verbose ifTrue:[ 'debug disabled.' errorPrintCR ].
         self redirectStandardStreams.
@@ -1196,11 +1197,11 @@
 !StandaloneStartup class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/StandaloneStartup.st,v 1.79 2013-11-26 17:49:15 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/StandaloneStartup.st,v 1.82 2014-01-23 14:01:49 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/StandaloneStartup.st,v 1.79 2013-11-26 17:49:15 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/StandaloneStartup.st,v 1.82 2014-01-23 14:01:49 stefan Exp $'
 ! !
 
 
--- a/UnixOperatingSystem.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/UnixOperatingSystem.st	Sun Feb 02 14:16:24 2014 +0000
@@ -221,19 +221,20 @@
 
 # ifdef __osx__
 #  include <time.h>
+#  define HAS_TIMEGM
 
 struct tm {
-        int     tm_sec;         /* seconds after the minute [0-60] */
-        int     tm_min;         /* minutes after the hour [0-59] */
-        int     tm_hour;        /* hours since midnight [0-23] */
-        int     tm_mday;        /* day of the month [1-31] */
-        int     tm_mon;         /* months since January [0-11] */
-        int     tm_year;        /* years since 1900 */
-        int     tm_wday;        /* days since Sunday [0-6] */
-        int     tm_yday;        /* days since January 1 [0-365] */
-        int     tm_isdst;       /* Daylight Savings Time flag */
-        long    tm_gmtoff;      /* offset from CUT in seconds */
-        char    *tm_zone;       /* timezone abbreviation */
+	int     tm_sec;         /* seconds after the minute [0-60] */
+	int     tm_min;         /* minutes after the hour [0-59] */
+	int     tm_hour;        /* hours since midnight [0-23] */
+	int     tm_mday;        /* day of the month [1-31] */
+	int     tm_mon;         /* months since January [0-11] */
+	int     tm_year;        /* years since 1900 */
+	int     tm_wday;        /* days since Sunday [0-6] */
+	int     tm_yday;        /* days since January 1 [0-365] */
+	int     tm_isdst;       /* Daylight Savings Time flag */
+	long    tm_gmtoff;      /* offset from CUT in seconds */
+	char    *tm_zone;       /* timezone abbreviation */
 };
 
 #  include <crt_externs.h>
@@ -673,9 +674,9 @@
     "initialize the codeset, we are running under.
      The codeset is determined from the environment.
      The LC_CTYPE locale is set from the environment as a side effect."
-    
+
     |codeset|
-    
+
 %{
 #include <langinfo.h>
     char *__codeset;
@@ -683,16 +684,16 @@
     setlocale(LC_CTYPE, "");
     __codeset = nl_langinfo(CODESET);
     if (strlen(__codeset) > 0) {
-        codeset = __MKSTRING(__codeset);
+	codeset = __MKSTRING(__codeset);
     }
 %}.
     codeset notNil ifTrue:[
-        codeset := codeset asLowercase.
-        codeset = 'utf-8' ifTrue:[
-            codeset := #utf8.
-        ] ifFalse:[
-            codeset := codeset asSymbol.
-        ].
+	codeset := codeset asLowercase.
+	codeset = 'utf-8' ifTrue:[
+	    codeset := #utf8.
+	] ifFalse:[
+	    codeset := codeset asSymbol.
+	].
     ].
     Codeset := codeset.
     ^ codeset.
@@ -706,7 +707,7 @@
     "catch image restart and flush some cached data"
 
     something == #earlyRestart ifTrue:[
-        self initializeCachedData
+	self initializeCachedData
     ]
 
     "Created: / 15.6.1996 / 15:22:37 / cg"
@@ -3713,26 +3714,26 @@
 
     if (__isSmallInteger(aFileDescriptor)) {
 # ifdef TRACE_STAT_CALLS
-        printf("fstat on '%d' for accessMode\n", __smallIntegerVal(aFileDescriptor));
-# endif
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = fstat(__smallIntegerVal(aFileDescriptor), &buf);
-        } while ((ret < 0) && (errno == EINTR));
-        __END_INTERRUPTABLE__
-
-        if (ret < 0) {
-            @global(LastErrorNumber) = __mkSmallInteger(errno);
-            RETURN ( nil );
-        }
-        RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
+	printf("fstat on '%d' for accessMode\n", __smallIntegerVal(aFileDescriptor));
+# endif
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = fstat(__smallIntegerVal(aFileDescriptor), &buf);
+	} while ((ret < 0) && (errno == EINTR));
+	__END_INTERRUPTABLE__
+
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __mkSmallInteger(errno);
+	    RETURN ( nil );
+	}
+	RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
     }
 %}.
    ^ self primitiveFailed
 
    "
     '/' asFilename readingFileDo:[:s|
-        (OperatingSystem accessModeOfFd:s fileDescriptor) printStringRadix:8
+	(OperatingSystem accessModeOfFd:s fileDescriptor) printStringRadix:8
     ].
    "
 !
@@ -3776,16 +3777,16 @@
     int ret;
 
     if (__isSmallInteger(aFileDescriptor) && __isSmallInteger(modeBits)) {
-        __BEGIN_INTERRUPTABLE__
-        do {
-            ret = fchmod(__smallIntegerVal(aFileDescriptor), __intVal(modeBits));
-        } while (ret < 0 && errno == EINTR);
-        __END_INTERRUPTABLE__
-        if (ret < 0) {
-            @global(LastErrorNumber) = __mkSmallInteger(errno);
-            RETURN ( false );
-        }
-        RETURN ( true );
+	__BEGIN_INTERRUPTABLE__
+	do {
+	    ret = fchmod(__smallIntegerVal(aFileDescriptor), __intVal(modeBits));
+	} while (ret < 0 && errno == EINTR);
+	__END_INTERRUPTABLE__
+	if (ret < 0) {
+	    @global(LastErrorNumber) = __mkSmallInteger(errno);
+	    RETURN ( false );
+	}
+	RETURN ( true );
     }
 %}.
     ^ self primitiveFailed
@@ -6713,16 +6714,16 @@
 !
 
 getNetworkAddressInfo
-    "return a Dictionary of network interface information. 
-        key -> name of interface
-        value -> a Set of network address 
-                information for the interface - a dictionaries containing the 
-                information about the configuration of each interface in the system. 
-                The dictionary keys are:
-                    #address
-                    #netmask
-                    #flags
-                    #destAddress"
+    "return a Dictionary of network interface information.
+	key -> name of interface
+	value -> a Set of network address
+		information for the interface - a dictionaries containing the
+		information about the configuration of each interface in the system.
+		The dictionary keys are:
+		    #address
+		    #netmask
+		    #flags
+		    #destAddress"
 
     |returnArray addressArray nameArray noOfIf retDictionary error retIndex|
 
@@ -6742,8 +6743,8 @@
     OBJ t;
 
     if (getifaddrs(&ifap) < 0) {
-        error = __MKSTRING("getifaddrs() failed");
-        goto out;
+	error = __MKSTRING("getifaddrs() failed");
+	goto out;
     }
 
     for (ifaLoop = ifap; ifaLoop != 0; ifaLoop = ifaLoop->ifa_next) n_ifa++;
@@ -6751,49 +6752,49 @@
     returnArray = __ARRAY_NEW_INT(n_ifa*5);
 
     if (returnArray == nil) {
-        /* Creating a string wouldn't work here */
-        error = @symbol(allocationFailure);
-        goto bad;
+	/* Creating a string wouldn't work here */
+	error = @symbol(allocationFailure);
+	goto bad;
     }
 
     for (ifaLoop = ifap; ifaLoop != 0; ifaLoop = ifaLoop->ifa_next) {
-        int family, len;
-
-        if (ifaLoop->ifa_addr == 0)
-               continue;
-        family = ifaLoop->ifa_addr->sa_family;
-        switch (family) {
-        case AF_INET:
-            len = sizeof(struct sockaddr_in);
-            break;
-        case AF_INET6:
-            len = sizeof(struct sockaddr_in6);
-            break;
+	int family, len;
+
+	if (ifaLoop->ifa_addr == 0)
+	       continue;
+	family = ifaLoop->ifa_addr->sa_family;
+	switch (family) {
+	case AF_INET:
+	    len = sizeof(struct sockaddr_in);
+	    break;
+	case AF_INET6:
+	    len = sizeof(struct sockaddr_in6);
+	    break;
 #if 0
-        case AF_PACKET:
-            len = sizeof(sockaddr_ll);
-            break;
-#endif
-        default:
-            /* skip */
-            continue;
-        };
-        t = __MKSTRING(ifaLoop->ifa_name);
-        __arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
-        t = __MKUINT(ifaLoop->ifa_flags);
-        __arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
-        t = __MKBYTEARRAY((char *)ifaLoop->ifa_addr, len);
-        __arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
-        if (ifaLoop->ifa_netmask != 0) {
-            t = __MKBYTEARRAY((char *)ifaLoop->ifa_netmask, len);
-            __arrayVal(returnArray)[retI] = t; __STORE(returnArray, t);
-        }
-        retI++;
-        if (ifaLoop->ifa_dstaddr != 0) {
-            t = __MKBYTEARRAY((char *)ifaLoop->ifa_dstaddr, len);
-            __arrayVal(returnArray)[retI] = t; __STORE(returnArray, t);
-        }
-        retI++;
+	case AF_PACKET:
+	    len = sizeof(sockaddr_ll);
+	    break;
+#endif
+	default:
+	    /* skip */
+	    continue;
+	};
+	t = __MKSTRING(ifaLoop->ifa_name);
+	__arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
+	t = __MKUINT(ifaLoop->ifa_flags);
+	__arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
+	t = __MKBYTEARRAY((char *)ifaLoop->ifa_addr, len);
+	__arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
+	if (ifaLoop->ifa_netmask != 0) {
+	    t = __MKBYTEARRAY((char *)ifaLoop->ifa_netmask, len);
+	    __arrayVal(returnArray)[retI] = t; __STORE(returnArray, t);
+	}
+	retI++;
+	if (ifaLoop->ifa_dstaddr != 0) {
+	    t = __MKBYTEARRAY((char *)ifaLoop->ifa_dstaddr, len);
+	    __arrayVal(returnArray)[retI] = t; __STORE(returnArray, t);
+	}
+	retI++;
     }
 
     noOfIf = __mkSmallInteger(n_ifa);
@@ -6818,7 +6819,7 @@
 
     afinet_socket = socket(AF_INET, SOCK_DGRAM, 0);
     if (afinet_socket < 0) {
-        goto bad;
+	goto bad;
     }
 
     /*
@@ -6829,9 +6830,9 @@
     ifc.ifc_buf = (caddr_t) buf;
 
     if (ioctl (afinet_socket, SIOCGIFCONF, (caddr_t) &ifc) < 0) {
-        close(afinet_socket);
-        error = __MKSTRING("ioctl(SIOCGIFCONF) failed");
-        goto bad;
+	close(afinet_socket);
+	error = __MKSTRING("ioctl(SIOCGIFCONF) failed");
+	goto bad;
     }
 
     n_ifs = ifc.ifc_len / sizeof (struct ifreq);
@@ -6840,9 +6841,9 @@
     addressArray = __ARRAY_NEW_INT(n_ifs);
 
     if (nameArray == nil || addressArray == nil) {
-        /* Creating a string wouldn/t work here */
-        error = @symbol(allocationFailure);
-        goto bad;
+	/* Creating a string wouldn/t work here */
+	error = @symbol(allocationFailure);
+	goto bad;
     }
 
     /*
@@ -6852,27 +6853,27 @@
     countOfIf = 0;
 
     for (i=0, ifr = ifc.ifc_req; i < n_ifs; i++, ifr++) {
-        /*
-        ** Get address for this interface
-        */
-        memset (&ifreq, 0, sizeof(ifreq));
-        memcpy (ifreq.ifr_name, ifr->ifr_name, sizeof(ifr->ifr_name));
-        if (ioctl (afinet_socket, SIOCGIFADDR, &ifreq) >= 0) {
-            t = __MKBYTEARRAY((char *)&ifreq.ifr_addr, sizeof(ifreq.ifr_addr));
-            __arrayVal(addressArray)[countOfIf] = t; __STORE(addressArray, t);
-            t = __MKSTRING(&ifreq.ifr_name);
-            __arrayVal(nameArray)[countOfIf] = t; __STORE(nameArray, t);
-            countOfIf++;
-        } else {
-            fprintf(stderr, "SIOCGIFADDR failed: %s\n", errno);
-        }
-        error = __MKSTRING("ioctl(SIOCGIFCONF) failed");
+	/*
+	** Get address for this interface
+	*/
+	memset (&ifreq, 0, sizeof(ifreq));
+	memcpy (ifreq.ifr_name, ifr->ifr_name, sizeof(ifr->ifr_name));
+	if (ioctl (afinet_socket, SIOCGIFADDR, &ifreq) >= 0) {
+	    t = __MKBYTEARRAY((char *)&ifreq.ifr_addr, sizeof(ifreq.ifr_addr));
+	    __arrayVal(addressArray)[countOfIf] = t; __STORE(addressArray, t);
+	    t = __MKSTRING(&ifreq.ifr_name);
+	    __arrayVal(nameArray)[countOfIf] = t; __STORE(nameArray, t);
+	    countOfIf++;
+	} else {
+	    fprintf(stderr, "SIOCGIFADDR failed: %s\n", errno);
+	}
+	error = __MKSTRING("ioctl(SIOCGIFCONF) failed");
     }
 
     noOfIf = __mkSmallInteger(countOfIf);
 bad:
     if (afinet_socket >= 0)
-        close(afinet_socket);
+	close(afinet_socket);
 #else
     error = @symbol(notSupported);
 #endif /* defined(SIOCGIFADDR) */
@@ -6881,35 +6882,35 @@
 
     retDictionary := Dictionary new:noOfIf.
     error notNil ifTrue:[
-        self primitiveFailed:error.
-        "return empty dictionary if proceeding from error"
-        ^  retDictionary.
+	self primitiveFailed:error.
+	"return empty dictionary if proceeding from error"
+	^  retDictionary.
     ].
 
     retIndex := 1.
 
     1 to:noOfIf do:[:cnt|
-        |name addressBytes set dict|
-
-        name := returnArray at:retIndex.
-        addressBytes := returnArray at:retIndex+2.
-
-        addressBytes notNil ifTrue:[
-            set := retDictionary at:name ifAbsentPut:[Set new].
-            dict := Dictionary new:5.
-            dict at:#flags put:(returnArray at:retIndex+1).
-            dict at:#address put:(SocketAddress fromBytes:addressBytes).
-            addressBytes := returnArray at:retIndex+3.
-            addressBytes notNil ifTrue:[
-                dict at:#netMask put:(SocketAddress fromBytes:addressBytes).
-            ].
-            addressBytes := returnArray at:retIndex+4.
-            addressBytes notNil ifTrue:[
-                dict at:#destAddress put:(SocketAddress fromBytes:addressBytes).
-            ].
-            set add:dict.
-        ].
-        retIndex := retIndex + 5.
+	|name addressBytes set dict|
+
+	name := returnArray at:retIndex.
+	addressBytes := returnArray at:retIndex+2.
+
+	addressBytes notNil ifTrue:[
+	    set := retDictionary at:name ifAbsentPut:[Set new].
+	    dict := Dictionary new:5.
+	    dict at:#flags put:(returnArray at:retIndex+1).
+	    dict at:#address put:(SocketAddress fromBytes:addressBytes).
+	    addressBytes := returnArray at:retIndex+3.
+	    addressBytes notNil ifTrue:[
+		dict at:#netMask put:(SocketAddress fromBytes:addressBytes).
+	    ].
+	    addressBytes := returnArray at:retIndex+4.
+	    addressBytes notNil ifTrue:[
+		dict at:#destAddress put:(SocketAddress fromBytes:addressBytes).
+	    ].
+	    set add:dict.
+	].
+	retIndex := retIndex + 5.
     ].
 
     ^ retDictionary
@@ -8235,57 +8236,57 @@
     "
 !
 
-setLocale:categorySymbol to:localeStringOrNil 
+setLocale:categorySymbol to:localeStringOrNil
     "set (and get) the locale for categorySymbol (e.g. #LC_ALL, #LC_CTYPE,....).
      If localeStringOrNil is nil, nothing is set.
      If localeStringOrNil is empty, the locale for categorySymbol ist set from the environment.
      If localeStringOrNil is 'C', the locale for categorySymbol ist set to the default.
      If localeStringOrNil is to a locale name, the locale for categorySymbol ist set.
      The current locale setting is returned."
-    
+
     |locale error|
-    
+
 %{
     int __category;
     char *__locale, *ret;
 
     if (categorySymbol == @symbol(LC_ALL)) {
-        __category = LC_ALL;
+	__category = LC_ALL;
     } else if (categorySymbol == @symbol(LC_COLLATE)) {
-        __category = LC_COLLATE;
+	__category = LC_COLLATE;
     } else if (categorySymbol == @symbol(LC_CTYPE)) {
-        __category = LC_CTYPE;
+	__category = LC_CTYPE;
     } else if (categorySymbol == @symbol(LC_MESSAGES)) {
-        __category = LC_MESSAGES;
+	__category = LC_MESSAGES;
     } else if (categorySymbol == @symbol(LC_MONETARY)) {
-        __category = LC_MONETARY;
+	__category = LC_MONETARY;
     } else if (categorySymbol == @symbol(LC_NUMERIC)) {
-        __category = LC_NUMERIC;
+	__category = LC_NUMERIC;
     } else if (categorySymbol == @symbol(LC_TIME)) {
-        __category = LC_TIME;
+	__category = LC_TIME;
     } else {
-        error = @symbol(argument1);
-        goto out;
+	error = @symbol(argument1);
+	goto out;
     }
 
     if (localeStringOrNil == nil) {
-        __locale = 0;
+	__locale = 0;
     } else if (__isStringLike(localeStringOrNil)){
-        __locale = __stringVal(localeStringOrNil);
+	__locale = __stringVal(localeStringOrNil);
     } else {
-        error = @symbol(argument1);
-        goto out;
+	error = @symbol(argument1);
+	goto out;
     }
 
     ret = setlocale(__category, __locale);
     if (ret) {
-        locale = __MKSTRING(ret);
+	locale = __MKSTRING(ret);
     }
 
 out:;
 %}.
     locale notNil ifTrue:[
-        ^ locale.
+	^ locale.
     ].
     ^ self primitiveFailed:error.
 
@@ -8691,12 +8692,20 @@
 	tm.tm_mon = __intVal(m) - 1;
 	tm.tm_mday = __intVal(d);
 	tm.tm_isdst = -1;
-
-	t = mktime(&tm);                        /* mktime() interprets tm as localtime */
+#ifdef HAS_TIMEGM
+	if (utcBoolean == true) {               /* convert to utc time */
+	    t = timegm(&tm);                    /* timegm() interprets tm as utc time */
+	} else
+#endif
+	{
+	    t = mktime(&tm);                    /* mktime() interprets tm as localtime */
+	}
 	if ((INT)t != -1) {
+#ifndef HAS_TIMEGM
 	    if (utcBoolean == true) {           /* convert to utc time */
 		t = (INT)t - TIMEZONE(&tm);     /* TIMZONE = seconds westward from 0 */
 	    }
+#endif
 	    osSeconds = __MKINT((INT)t);        /* be careful, t can be negative at the start of the epoch ! */
 	}
     }
@@ -9087,7 +9096,7 @@
 getDesktopDirectory
     "{ Pragma: +optSpace }"
     "return the name of the user's desktop directory."
-    
+
     |home desktop|
 
     home := self getHomeDirectory.
@@ -9324,7 +9333,7 @@
     and:[self getUserID ~~ 0 ]
 
     "
-     self isRunningWithElevatedRootOrAdminRights 
+     self isRunningWithElevatedRootOrAdminRights
     "
 !
 
@@ -11601,88 +11610,88 @@
     type := OperatingSystem socketTypeCodeOf:typeArg.
     proto := self protocolCodeOf:protoArg.
     serviceNameArg notNil ifTrue:[
-        serviceName := serviceNameArg printString.      "convert integer port numbers"
+	serviceName := serviceNameArg printString.      "convert integer port numbers"
     ].
 
     hostName isNil ifTrue:[
-        encodedHostName := nil.
+	encodedHostName := nil.
     ] ifFalse:[
-        encodedHostName := hostName utf8Encoded.
+	encodedHostName := hostName utf8Encoded.
     ].
     (encodedHostName ~~ hostName and:[OperatingSystem getCodeset ~~ #utf8]) ifTrue:[
-        "hostName is not plain ASCII - so this is an IDN domain name. Have to ensure, that the locale is UTF-8.
-         Block interrupt to not affect othe ST/X processes while the locale is changed."
-        |interruptsBlocked oldLocale|
-
-        interruptsBlocked := OperatingSystem blockInterrupts.
-        oldLocale := OperatingSystem setLocale:#'LC_CTYPE' to:nil.
-        OperatingSystem setLocale:#'LC_CTYPE' to:'en_US.UTF-8'.
-        result := self primGetAddressInfo:encodedHostName serviceName:serviceName domainCode:domain socketTypeCode:type protocolCode:proto flags:flags.
-        OperatingSystem setLocale:#'LC_CTYPE' to:oldLocale.
-        interruptsBlocked ifFalse:[
-            OperatingSystem unblockInterrupts.
-        ].
+	"hostName is not plain ASCII - so this is an IDN domain name. Have to ensure, that the locale is UTF-8.
+	 Block interrupt to not affect othe ST/X processes while the locale is changed."
+	|interruptsBlocked oldLocale|
+
+	interruptsBlocked := OperatingSystem blockInterrupts.
+	oldLocale := OperatingSystem setLocale:#'LC_CTYPE' to:nil.
+	OperatingSystem setLocale:#'LC_CTYPE' to:'en_US.UTF-8'.
+	result := self primGetAddressInfo:encodedHostName serviceName:serviceName domainCode:domain socketTypeCode:type protocolCode:proto flags:flags.
+	OperatingSystem setLocale:#'LC_CTYPE' to:oldLocale.
+	interruptsBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts.
+	].
     ] ifFalse:[
-        result := self primGetAddressInfo:encodedHostName serviceName:serviceName domainCode:domain socketTypeCode:type protocolCode:proto flags:flags.
+	result := self primGetAddressInfo:encodedHostName serviceName:serviceName domainCode:domain socketTypeCode:type protocolCode:proto flags:flags.
     ].
     result isArray ifFalse:[
-        |request|
-        request := SocketAddressInfo new
-            domain:domainArg;
-            type:typeArg;
-            protocol:protoArg;
-            canonicalName:hostName;
-            serviceName:serviceName.
-        ^ (HostNameLookupError new
-                parameter:result;
-                messageText:' - ', (result printString);
-                request:request) raiseRequest.
+	|request|
+	request := SocketAddressInfo new
+	    domain:domainArg;
+	    type:typeArg;
+	    protocol:protoArg;
+	    canonicalName:hostName;
+	    serviceName:serviceName.
+	^ (HostNameLookupError new
+		parameter:result;
+		messageText:' - ', (result printString);
+		request:request) raiseRequest.
     ].
     1 to:result size do:[:i |
-        |entry dom info|
-
-        entry := result at:i.
-
-        info := SocketAddressInfo new.
-        info
-            flags:(entry at:1);
-            domain:(dom := OperatingSystem domainSymbolOf:(entry at:2));
-            type:(OperatingSystem socketTypeSymbolOf:(entry at:3));
-            protocol:(self protocolSymbolOf:(entry at:4));
-            socketAddress:((SocketAddress newDomain:dom) fromBytes:(entry at:5));
-            canonicalName:(entry at:6).
-
-        result at:i put:info.
+	|entry dom info|
+
+	entry := result at:i.
+
+	info := SocketAddressInfo new.
+	info
+	    flags:(entry at:1);
+	    domain:(dom := OperatingSystem domainSymbolOf:(entry at:2));
+	    type:(OperatingSystem socketTypeSymbolOf:(entry at:3));
+	    protocol:(self protocolSymbolOf:(entry at:4));
+	    socketAddress:((SocketAddress newDomain:dom) fromBytes:(entry at:5));
+	    canonicalName:(entry at:6).
+
+	result at:i put:info.
     ].
     ^ result
 
     "
      self getAddressInfo:'localhost' serviceName:nil
-            domain:nil type:nil protocol:nil flags:nil
+	    domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'localhost' serviceName:nil
-            domain:#inet type:#stream protocol:nil flags:nil
+	    domain:#inet type:#stream protocol:nil flags:nil
      self getAddressInfo:'localhost' serviceName:nil
-            domain:#inet type:#stream protocol:#tcp flags:nil
+	    domain:#inet type:#stream protocol:#tcp flags:nil
      self getAddressInfo:'blurb.exept.de' serviceName:nil
-            domain:#inet type:nil protocol:nil flags:nil
+	    domain:#inet type:nil protocol:nil flags:nil
      self getAddressInfo:'1.2.3.4' serviceName:'bla'
-            domain:#inet type:nil protocol:nil flags:nil
+	    domain:#inet type:nil protocol:nil flags:nil
      self getAddressInfo:'localhost' serviceName:'echo'
-            domain:#inet type:nil protocol:nil flags:nil
+	    domain:#inet type:nil protocol:nil flags:nil
      self getAddressInfo:nil serviceName:'echo'
-            domain:#inet type:nil protocol:nil flags:nil
+	    domain:#inet type:nil protocol:nil flags:nil
      self getAddressInfo:nil serviceName:nil
-            domain:#inet type:nil protocol:nil flags:nil
+	    domain:#inet type:nil protocol:nil flags:nil
      self getAddressInfo:'www.google.de' serviceName:nil
-            domain:nil type:nil protocol:nil flags:nil
+	    domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'www.exept.de' serviceName:nil
-            domain:nil type:nil protocol:nil flags:nil
+	    domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'www.exept.de' serviceName:nil
-            domain:#'AF_INET' type:nil protocol:nil flags:nil
+	    domain:#'AF_INET' type:nil protocol:nil flags:nil
      self getAddressInfo:'www.exept.de' serviceName:nil
-            domain:#'AF_INET6' type:nil protocol:nil flags:nil
+	    domain:#'AF_INET6' type:nil protocol:nil flags:nil
      self getAddressInfo:'www.baden-wrttemberg.de' serviceName:nil
-            domain:#'AF_INET' type:#stream protocol:nil flags:nil
+	    domain:#'AF_INET' type:#stream protocol:nil flags:nil
     "
 !
 
@@ -11934,24 +11943,24 @@
     int ret, cnt = 0;
 
     if (hostName == nil) {
-        __hostName = 0;
+	__hostName = 0;
     } else if (__isStringLike(hostName)) {
-        __hostName = __stringVal(hostName);
+	__hostName = __stringVal(hostName);
     } else {
-        error = @symbol(badArgument1);
-        goto out;
+	error = @symbol(badArgument1);
+	goto out;
     }
     if (serviceName == nil) {
-        __serviceName = 0;
+	__serviceName = 0;
     } else if (__isStringLike(serviceName)) {
-        __serviceName = __stringVal(serviceName);
+	__serviceName = __stringVal(serviceName);
     } else {
-        error = @symbol(badArgument2);
-        goto out;
+	error = @symbol(badArgument2);
+	goto out;
     }
     if (__hostName == 0 && __serviceName == 0) {
-        error = @symbol(badArgument);
-        goto out;
+	error = @symbol(badArgument);
+	goto out;
     }
 
 {
@@ -11966,116 +11975,116 @@
     hints.ai_flags = AI_IDN | AI_CANONIDN;      // map non-ascii domain names to IDN format
 #endif
     if (__isSmallInteger(domain))
-        hints.ai_family = __intVal(domain);
+	hints.ai_family = __intVal(domain);
     if (__isSmallInteger(type))
-        hints.ai_socktype = __intVal(type);
+	hints.ai_socktype = __intVal(type);
     if (__isSmallInteger(proto))
-        hints.ai_protocol = __intVal(proto);
+	hints.ai_protocol = __intVal(proto);
     if (__isSmallInteger(flags))
-        hints.ai_flags |= __intVal(flags);
+	hints.ai_flags |= __intVal(flags);
 
     do {
-        /* reload */
-        if (__hostName) {
-            __hostName = __stringVal(hostName);
-        }
-        if (__serviceName) {
-            __serviceName = __stringVal(serviceName);
-        }
+	/* reload */
+	if (__hostName) {
+	    __hostName = __stringVal(hostName);
+	}
+	if (__serviceName) {
+	    __serviceName = __stringVal(serviceName);
+	}
 
 //        __BEGIN_INTERRUPTABLE__
-        ret = getaddrinfo(__hostName, __serviceName, &hints, &info);
+	ret = getaddrinfo(__hostName, __serviceName, &hints, &info);
 //        __END_INTERRUPTABLE__
     } while (ret == EAI_SYSTEM && errno == EINTR);
     if (ret != 0) {
-        switch (ret) {
-        case EAI_FAMILY:
-            error = @symbol(badProtocol);
-            break;
-        case EAI_SOCKTYPE:
-            error = @symbol(badSocketType);
-            break;
-        case EAI_BADFLAGS:
-            error = @symbol(badFlags);
-            break;
-        case EAI_NONAME:
-            error = @symbol(unknownHost);
-            break;
-        case EAI_SERVICE:
-            error = @symbol(unknownService);
-            break;
+	switch (ret) {
+	case EAI_FAMILY:
+	    error = @symbol(badProtocol);
+	    break;
+	case EAI_SOCKTYPE:
+	    error = @symbol(badSocketType);
+	    break;
+	case EAI_BADFLAGS:
+	    error = @symbol(badFlags);
+	    break;
+	case EAI_NONAME:
+	    error = @symbol(unknownHost);
+	    break;
+	case EAI_SERVICE:
+	    error = @symbol(unknownService);
+	    break;
 #ifdef EAI_ADDRFAMILY
-        case EAI_ADDRFAMILY :
-            error = @symbol(unknownHostForProtocol);
-            break;
+	case EAI_ADDRFAMILY :
+	    error = @symbol(unknownHostForProtocol);
+	    break;
 #endif
 #ifdef EAI_NODATA
-        case EAI_NODATA:
-            error = @symbol(noAddress);
-            break;
-#endif
-        case EAI_MEMORY:
-            error = @symbol(allocationFailure);
-            break;
-        case EAI_FAIL:
-            error = @symbol(permanentFailure);
-            break;
-        case EAI_AGAIN:
-            error = @symbol(tryAgain);
-            break;
-        case EAI_SYSTEM:
-            error = @symbol(systemError);
-            break;
-        default:
-            error = @symbol(unknownError);
-        }
-        errorString = __MKSTRING(gai_strerror(ret));
-        goto err;
+	case EAI_NODATA:
+	    error = @symbol(noAddress);
+	    break;
+#endif
+	case EAI_MEMORY:
+	    error = @symbol(allocationFailure);
+	    break;
+	case EAI_FAIL:
+	    error = @symbol(permanentFailure);
+	    break;
+	case EAI_AGAIN:
+	    error = @symbol(tryAgain);
+	    break;
+	case EAI_SYSTEM:
+	    error = @symbol(systemError);
+	    break;
+	default:
+	    error = @symbol(unknownError);
+	}
+	errorString = __MKSTRING(gai_strerror(ret));
+	goto err;
     }
     for (cnt=0, infop=info; infop; infop=infop->ai_next)
-        cnt++;
+	cnt++;
 
     result = __ARRAY_NEW_INT(cnt);
     if (result == nil) {
-        error = @symbol(allocationFailure);
-        goto err;
+	error = @symbol(allocationFailure);
+	goto err;
     }
     for (infop=info, cnt=0; infop; infop=infop->ai_next, cnt++) {
-        OBJ o, resp;
-
-        resp = __ARRAY_NEW_INT(6);
-        if (resp == nil) {
-            error = @symbol(allocationFailure);
-            goto err;
-        }
-
-        __ArrayInstPtr(result)->a_element[cnt] = resp; __STORE(result, resp);
-
-        __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(infop->ai_flags);
-        __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(infop->ai_family);
-        __ArrayInstPtr(resp)->a_element[2] = __mkSmallInteger(infop->ai_socktype);
-        __ArrayInstPtr(resp)->a_element[3] = __mkSmallInteger(infop->ai_protocol);
-
-        __PROTECT__(resp);
-        o = __BYTEARRAY_NEW_INT(infop->ai_addrlen);
-        __UNPROTECT__(resp);
-        if (o == nil) {
-            error = @symbol(allocationFailure);
-            goto err;
-        }
-        memcpy(__byteArrayVal(o), infop->ai_addr, infop->ai_addrlen);
+	OBJ o, resp;
+
+	resp = __ARRAY_NEW_INT(6);
+	if (resp == nil) {
+	    error = @symbol(allocationFailure);
+	    goto err;
+	}
+
+	__ArrayInstPtr(result)->a_element[cnt] = resp; __STORE(result, resp);
+
+	__ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(infop->ai_flags);
+	__ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(infop->ai_family);
+	__ArrayInstPtr(resp)->a_element[2] = __mkSmallInteger(infop->ai_socktype);
+	__ArrayInstPtr(resp)->a_element[3] = __mkSmallInteger(infop->ai_protocol);
+
+	__PROTECT__(resp);
+	o = __BYTEARRAY_NEW_INT(infop->ai_addrlen);
+	__UNPROTECT__(resp);
+	if (o == nil) {
+	    error = @symbol(allocationFailure);
+	    goto err;
+	}
+	memcpy(__byteArrayVal(o), infop->ai_addr, infop->ai_addrlen);
        __ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
 
-        if (infop->ai_canonname) {
-            __PROTECT__(resp);
-            o = __MKSTRING(infop->ai_canonname);
-            __UNPROTECT__(resp);
-            if (o == nil) {
-                error = @symbol(allocationFailure);
-                goto err;
-            }
-            __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
-        }
+	if (infop->ai_canonname) {
+	    __PROTECT__(resp);
+	    o = __MKSTRING(infop->ai_canonname);
+	    __UNPROTECT__(resp);
+	    if (o == nil) {
+		error = @symbol(allocationFailure);
+		goto err;
+	    }
+	    __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
+	}
     }
 
 err:
@@ -12092,136 +12101,136 @@
     int i;
 
     if (__serviceName) {
-        struct servent *sp;
-        char *__proto = 0;
-
-        if (__isStringLike(protoArg))
-            __proto = __stringVal(protoArg);
-
-        sp = getservbyname(__serviceName, __proto);
-        if (sp == NULL) {
-            errorString = @symbol(unknownService);
-            error = __mkSmallInteger(-3);
-            goto err;
-        }
-        port = sp->s_port;
+	struct servent *sp;
+	char *__proto = 0;
+
+	if (__isStringLike(protoArg))
+	    __proto = __stringVal(protoArg);
+
+	sp = getservbyname(__serviceName, __proto);
+	if (sp == NULL) {
+	    errorString = @symbol(unknownService);
+	    error = __mkSmallInteger(-3);
+	    goto err;
+	}
+	port = sp->s_port;
     }
 
     if (__hostName) {
 #  ifdef USE_H_ERRNO
-        do {
-            if (hostName == nil) {
-                __hostName = 0;
-            } else if (__isStringLike(hostName)) {
-                __hostName = __stringVal(hostName);
-            }
-            /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
-             * uses a static data area
-             */
-            __BEGIN_INTERRUPTABLE__
-            hp = gethostbyname(__hostName);
-            __END_INTERRUPTABLE__
-        } while ((hp == NULL)
-                  && (
-                        (h_errno == TRY_AGAIN)
-                      || errno == EINTR
+	do {
+	    if (hostName == nil) {
+		__hostName = 0;
+	    } else if (__isStringLike(hostName)) {
+		__hostName = __stringVal(hostName);
+	    }
+	    /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
+	     * uses a static data area
+	     */
+	    __BEGIN_INTERRUPTABLE__
+	    hp = gethostbyname(__hostName);
+	    __END_INTERRUPTABLE__
+	} while ((hp == NULL)
+		  && (
+			(h_errno == TRY_AGAIN)
+		      || errno == EINTR
 #   ifdef IRIX5_3
-                      || (errno == ECONNREFUSED)
+		      || (errno == ECONNREFUSED)
 #   endif
-                     )
-        );
-        if (hp == 0) {
-            switch (h_errno) {
-            case HOST_NOT_FOUND:
-                errorString = @symbol(unknownHost);
-                break;
-            case NO_ADDRESS:
-                errorString = @symbol(noAddress);
-                break;
-            case NO_RECOVERY:
-                errorString = @symbol(permanentFailure);
-                break;
-            case TRY_AGAIN:
-                errorString = @symbol(tryAgain);
-                break;
-            default:
-                errorString = @symbol(unknownError);
-                break;
-            }
-            error = __mkSmallInteger(h_errno);
-            goto err;
-        }
+		     )
+	);
+	if (hp == 0) {
+	    switch (h_errno) {
+	    case HOST_NOT_FOUND:
+		errorString = @symbol(unknownHost);
+		break;
+	    case NO_ADDRESS:
+		errorString = @symbol(noAddress);
+		break;
+	    case NO_RECOVERY:
+		errorString = @symbol(permanentFailure);
+		break;
+	    case TRY_AGAIN:
+		errorString = @symbol(tryAgain);
+		break;
+	    default:
+		errorString = @symbol(unknownError);
+		break;
+	    }
+	    error = __mkSmallInteger(h_errno);
+	    goto err;
+	}
 #  else /* !USE_H_ERRNO */
-        hp = gethostbyname(__hostName);
-        if (hp == 0) {
-            errorString = @symbol(unknownHost);
-            error = __mkSmallInteger(-1);
-            goto err;
-        }
+	hp = gethostbyname(__hostName);
+	if (hp == 0) {
+	    errorString = @symbol(unknownHost);
+	    error = __mkSmallInteger(-1);
+	    goto err;
+	}
 #  endif /* !USE_H_ERRNO*/
 
-        if (__isSmallInteger(domain) && hp->h_addrtype != __smallIntegerVal(domain)) {
-            errorString = @symbol(unknownHost);
-            error = __mkSmallInteger(-2);
-            goto err;
-        }
-
-        for (cnt = 0, addrpp = hp->h_addr_list; *addrpp; addrpp++)
-            cnt++;
-        addrpp = hp->h_addr_list;
+	if (__isSmallInteger(domain) && hp->h_addrtype != __smallIntegerVal(domain)) {
+	    errorString = @symbol(unknownHost);
+	    error = __mkSmallInteger(-2);
+	    goto err;
+	}
+
+	for (cnt = 0, addrpp = hp->h_addr_list; *addrpp; addrpp++)
+	    cnt++;
+	addrpp = hp->h_addr_list;
     } else {
-        cnt = 1;
+	cnt = 1;
     }
 
     result = __ARRAY_NEW_INT(cnt);
     if (result == nil) {
-        error = @symbol(allocationFailure);
-        goto err;
+	error = @symbol(allocationFailure);
+	goto err;
     }
 
     for (i = 0; i < cnt; i++) {
-        OBJ o, resp;
-        struct sockaddr_in *sa;
-
-        resp = __ARRAY_NEW_INT(6);
-        if (resp == nil) {
-            error = @symbol(allocationFailure);
-            goto err;
-        }
-
-        __ArrayInstPtr(result)->a_element[i] = resp; __STORE(result, resp);
-        __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(0);
-        __ArrayInstPtr(resp)->a_element[2] = type; __STORE(result, type);
-        __ArrayInstPtr(resp)->a_element[3] = proto; __STORE(result, proto);
-        __PROTECT__(resp);
-        o = __BYTEARRAY_NEW_INT(sizeof(*sa));
-        __UNPROTECT__(resp);
-        if (o == nil) {
-            error = @symbol(allocationFailure);
-            goto err;
-        }
-        __ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
-        sa = (struct sockaddr_in *)__byteArrayVal(o);
-        sa->sin_port = port;
-
-        if (__hostName) {
-            sa->sin_family = hp->h_addrtype;
-            memcpy(&sa->sin_addr, *addrpp, hp->h_length);
-            __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(hp->h_addrtype);
-            if (hp->h_name) {
-                __PROTECT__(resp);
-                o = __MKSTRING(hp->h_name);
-                __UNPROTECT__(resp);
-                if (o == nil) {
-                    error = @symbol(allocationFailure);
-                    goto err;
-                }
-                __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
-            }
-            addrpp++;
-        } else{
-            __ArrayInstPtr(resp)->a_element[1] = domain; __STORE(resp, domain);
-        }
+	OBJ o, resp;
+	struct sockaddr_in *sa;
+
+	resp = __ARRAY_NEW_INT(6);
+	if (resp == nil) {
+	    error = @symbol(allocationFailure);
+	    goto err;
+	}
+
+	__ArrayInstPtr(result)->a_element[i] = resp; __STORE(result, resp);
+	__ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(0);
+	__ArrayInstPtr(resp)->a_element[2] = type; __STORE(result, type);
+	__ArrayInstPtr(resp)->a_element[3] = proto; __STORE(result, proto);
+	__PROTECT__(resp);
+	o = __BYTEARRAY_NEW_INT(sizeof(*sa));
+	__UNPROTECT__(resp);
+	if (o == nil) {
+	    error = @symbol(allocationFailure);
+	    goto err;
+	}
+	__ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
+	sa = (struct sockaddr_in *)__byteArrayVal(o);
+	sa->sin_port = port;
+
+	if (__hostName) {
+	    sa->sin_family = hp->h_addrtype;
+	    memcpy(&sa->sin_addr, *addrpp, hp->h_length);
+	    __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(hp->h_addrtype);
+	    if (hp->h_name) {
+		__PROTECT__(resp);
+		o = __MKSTRING(hp->h_name);
+		__UNPROTECT__(resp);
+		if (o == nil) {
+		    error = @symbol(allocationFailure);
+		    goto err;
+		}
+		__ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
+	    }
+	    addrpp++;
+	} else{
+	    __ArrayInstPtr(resp)->a_element[1] = domain; __STORE(resp, domain);
+	}
     }
 
 err:;
@@ -12233,10 +12242,10 @@
 out:;
 %}.
     error notNil ifTrue:[
-        errorString notNil ifTrue:[
-            ^ errorString.
-        ].
-        ^ error.
+	errorString notNil ifTrue:[
+	    ^ errorString.
+	].
+	^ error.
     ].
     ^ result.
 ! !
@@ -13082,11 +13091,11 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.338 2013-12-17 16:46:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.339 2014-01-25 00:30:52 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.338 2013-12-17 16:46:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.339 2014-01-25 00:30:52 cg Exp $'
 !
 
 version_HG
--- a/UserPreferences.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/UserPreferences.st	Sun Feb 02 14:16:24 2014 +0000
@@ -876,7 +876,7 @@
     self useNewChangeSetBrowser ifTrue:[
         ^ Tools::ChangeSetBrowser2 ? ChangeSetBrowser
     ].
-    ^ ChangeSetBrowser
+    ^ ChangeSetBrowser ? Tools::ChangeSetBrowser2
 
     "
      self current changeSetBrowserClass
@@ -2194,8 +2194,8 @@
 
     clr := self at:#colorForInstrumentedFullyCoveredCode ifAbsent:nil.
     clr isNil ifTrue:[
-        clr := Color green slightlyDarkened.
-        self at:#colorForInstrumentedFullyCoveredCode put:clr.
+        clr := Color green darkened. "/ slightlyDarkened.
+        "/ self at:#colorForInstrumentedFullyCoveredCode put:clr.
     ].
     ^ clr
 
@@ -2208,6 +2208,20 @@
     "Created: / 28-04-2010 / 13:58:52 / cg"
 !
 
+colorForInstrumentedFullyCoveredCode:aColor
+    "the color for code in the browser which is instrumented 
+     and where all branches have been executed (also code, which has been executed)"
+
+    self at:#colorForInstrumentedFullyCoveredCode put:aColor.
+
+    "
+     UserPreferences current colorForInstrumentedFullyCoveredCode:(Color green slightlyDarkened).
+     UserPreferences current colorForInstrumentedFullyCoveredCode:nil.
+    "
+
+    "Created: / 28-04-2010 / 13:58:52 / cg"
+!
+
 colorForInstrumentedNeverCalledCode
     "the color for code in the browser which is instrumented but has never been called"
 
@@ -2215,8 +2229,8 @@
 
     clr := self at:#colorForInstrumentedNeverCalledCode ifAbsent:nil.
     clr isNil ifTrue:[
-        clr := Color red slightlyDarkened.
-        self at:#colorForInstrumentedNeverCalledCode put:clr.
+        clr := Color red darkened. "/ slightlyDarkened.
+        "/ self at:#colorForInstrumentedNeverCalledCode put:clr.
     ].
     ^ clr
 
@@ -2229,6 +2243,19 @@
     "Created: / 28-04-2010 / 13:59:43 / cg"
 !
 
+colorForInstrumentedNeverCalledCode:aColor
+    "the color for code in the browser which is instrumented but has never been called"
+
+    self at:#colorForInstrumentedNeverCalledCode put:aColor.
+
+    "
+     UserPreferences current colorForInstrumentedNeverCalledCode:(Color red slightlyDarkened).
+     UserPreferences current colorForInstrumentedNeverCalledCode:nil.
+    "
+
+    "Created: / 28-04-2010 / 13:59:43 / cg"
+!
+
 colorForInstrumentedPartiallyCoveredCode
     "color for code in the browser which is instrumented and where some branches have been
      executed"
@@ -2237,8 +2264,8 @@
 
     clr := self at:#colorForInstrumentedPartiallyCoveredCode ifAbsent:nil.
     clr isNil ifTrue:[
-        clr := Color orange.
-        self at:#colorForInstrumentedPartiallyCoveredCode put:clr.
+        clr := Color orange slightlyDarkened.
+        "/ self at:#colorForInstrumentedPartiallyCoveredCode put:clr.
     ].
     ^ clr
 
@@ -2251,6 +2278,20 @@
     "Created: / 28-04-2010 / 14:00:56 / cg"
 !
 
+colorForInstrumentedPartiallyCoveredCode:aColor
+    "color for code in the browser which is instrumented and where some branches have been
+     executed"
+
+    self at:#colorForInstrumentedPartiallyCoveredCode put:aColor.
+
+    "
+     UserPreferences current colorForInstrumentedPartiallyCoveredCode:(Color orange slightlyLightened).
+     UserPreferences current colorForInstrumentedPartiallyCoveredCode:nil.
+    "
+
+    "Created: / 28-04-2010 / 14:00:56 / cg"
+!
+
 colorForPseudoProtocolsInMethodListInBrowser
     "eventually, make this also a settings value (for people with weak gray-visibility)"
 
@@ -2652,6 +2693,25 @@
     "Modified: / 17-02-2011 / 14:20:41 / cg"
 !
 
+commentFont
+    "the font used for comments; nil if no special font has been defined.
+     If syntaxColoring is turned on."
+
+    ^ self at:#commentFont ifAbsent:nil
+!
+
+commentFont:aFont
+    "the font used for comments; nil if no special font has been defined.
+     If syntaxColoring is turned on."
+
+    self at:#commentFont put:aFont
+
+    "
+     UserPreferences current commentFont:(XftFontDescription family: 'Comic Sans' size: 12)
+     UserPreferences current commentFont
+    "
+!
+
 constantColor
     "the color used for constants;
      If syntaxColoring is turned on."
@@ -3556,6 +3616,30 @@
 
 !UserPreferences methodsFor:'accessing-prefs-editor'!
 
+appendAbbreviationsToCompletionSuggestions
+    "show abbreviations in completion"                                                                 
+
+    ^ self at:#appendAbbreviationsToCompletionSuggestions ifAbsent:false
+
+    "
+     UserPreferences current appendAbbreviationsToCompletionSuggestions
+     UserPreferences current appendAbbreviationsToCompletionSuggestions:true
+     UserPreferences current appendAbbreviationsToCompletionSuggestions:false
+    "
+!
+
+appendAbbreviationsToCompletionSuggestions:aBoolean
+    "show abbreviations in completion"                                                                 
+
+    ^ self at:#appendAbbreviationsToCompletionSuggestions put:aBoolean
+
+    "
+     UserPreferences current appendAbbreviationsToCompletionSuggestions
+     UserPreferences current appendAbbreviationsToCompletionSuggestions:true
+     UserPreferences current appendAbbreviationsToCompletionSuggestions:false
+    "
+!
+
 codeCompletionOnControlKey
     "show completion with CTRL-key - experimental"                                                                 
 
@@ -4232,6 +4316,27 @@
 
 !UserPreferences methodsFor:'accessing-prefs-tools-building'!
 
+autoUnloadAutoloadedClassesInProjectDefinition
+    ^ self at:#autoUnloadAutoloadedClassesInProjectDefinition ifAbsent:false
+
+    "
+     UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition
+    "
+
+    "Created: / 28-01-2014 / 21:42:59 / cg"
+!
+
+autoUnloadAutoloadedClassesInProjectDefinition:aBoolean
+    ^ self at:#autoUnloadAutoloadedClassesInProjectDefinition put:aBoolean
+
+    "
+     UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition
+     UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition:false
+    "
+
+    "Created: / 28-01-2014 / 21:43:18 / cg"
+!
+
 buildDirectory
     ^ self at:#buildDirectory ifAbsent:nil
 
@@ -4268,6 +4373,27 @@
     "Created: / 20-09-2006 / 23:55:26 / cg"
 !
 
+suppressProjectDefinitionWarnings
+    ^ self at:#suppressProjectDefinitionWarnings ifAbsent:true
+
+    "
+     UserPreferences current suppressProjectDefinitionWarnings
+    "
+
+    "Created: / 28-01-2014 / 21:41:01 / cg"
+!
+
+suppressProjectDefinitionWarnings:aBoolean
+    ^ self at:#suppressProjectDefinitionWarnings put:aBoolean
+
+    "
+     UserPreferences current suppressProjectDefinitionWarnings
+     UserPreferences current suppressProjectDefinitionWarnings:true
+    "
+
+    "Created: / 28-01-2014 / 21:41:12 / cg"
+!
+
 usedCompilerForBuild
     ^ self at:#usedCompilerForBuild ifAbsent:nil
 
@@ -4577,11 +4703,11 @@
 !UserPreferences class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UserPreferences.st,v 1.352 2013-12-13 09:15:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UserPreferences.st,v 1.357 2014-02-01 23:13:55 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/UserPreferences.st,v 1.352 2013-12-13 09:15:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UserPreferences.st,v 1.357 2014-02-01 23:13:55 cg Exp $'
 !
 
 version_HG
--- a/Win32OperatingSystem.st	Fri Jan 31 02:04:30 2014 +0000
+++ b/Win32OperatingSystem.st	Sun Feb 02 14:16:24 2014 +0000
@@ -11318,14 +11318,15 @@
 !
 
 setBlocking:aBoolean on:fd
-    "{ Pragma: +optSpace }"
-
     "set/clear the blocking attribute - if set (which is the default)
      a read on the fileDescriptor will block until data is available.
      If cleared, a read operation will immediately return with a value of
-     nil."
-
-    ^ self "/ primitiveFailed
+     nil.
+
+     Ignored in windows. Windows calls operate in their own thread,
+     so non-blocking mode doesn't make sense."
+
+    ^ true 
 !
 
 waitForMultipleObjects:fdOrHandleArray withTimeout:millis
@@ -17487,15 +17488,15 @@
 !Win32OperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.488 2013-12-17 16:47:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.489 2014-01-29 16:08:17 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.488 2013-12-17 16:47:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.489 2014-01-29 16:08:17 stefan Exp $'
 !
 
 version_SVN
-    ^ '$Id: Win32OperatingSystem.st,v 1.488 2013-12-17 16:47:26 cg Exp $'
+    ^ '$Id: Win32OperatingSystem.st,v 1.489 2014-01-29 16:08:17 stefan Exp $'
 
 ! !