diff -ru smalltalk-2.3.5/.gdbinit smalltalk-2.3.6/.gdbinit --- smalltalk-2.3.5/.gdbinit 2006-02-05 19:40:26.000000000 +0100 +++ smalltalk-2.3.6/.gdbinit 2007-09-06 09:29:32.000000000 +0200 @@ -7,7 +7,7 @@ ####################################################################### # -# Copyright 2004 Free Software Foundation, Inc. +# Copyright 2004, 2006, 2007 Free Software Foundation, Inc. # Written by Paolo Bonzini # # This file is part of GNU Smalltalk. @@ -172,6 +172,8 @@ define pbctx +printf "Parent: " +pofield gst_block_context $arg0 parentContext printf "Block: " pofield gst_block_context $arg0 method pblock $ @@ -189,6 +191,8 @@ define pmctx +printf "Parent: " +pofield gst_method_context $arg0 parentContext printf "Method: " pofield gst_method_context $arg0 method pmeth ((gst_method_context)$arg0->object)->method diff -ru smalltalk-2.3.5/ChangeLog smalltalk-2.3.6/ChangeLog --- smalltalk-2.3.5/ChangeLog 2007-06-01 17:13:48.000000000 +0200 +++ smalltalk-2.3.6/ChangeLog 2007-08-28 15:25:12.000000000 +0200 @@ -1,3 +1,196 @@ +2007-08-28 Paolo Bonzini + + * kernel/SeqCollect.st: Properly forward #identityIndexOf: methods. + * kernel/Behavior.st: Add #lookupSelector:. + * examples/Methods.st: Add MethodWrapper. + +2007-08-28 Paolo Bonzini + + * kernel/Generator.st: Add #on:do:. + * kernel/StreamOps.st: Always delegate species, fix + PeekableStream>>#peek. + +2007-08-13 Paolo Bonzini + + * kernel/Float.st: Override #floorLog: and #ceilingLog:. + +2007-08-13 Paolo Bonzini + + * kernel/RWStream.st: Eliminate useless overrides. + * kernel/WriteStream.st: Likewise. + +2007-08-12 Paolo Bonzini + + * kernel/WriteStream.st: Fix ANSI testcases. + +2007-08-10 Paolo Bonzini + + * kernel/Number.st: Fix #= vs. #~= blunder. + +2007-07-23 Paolo Bonzini + + * kernel/MthContext.st: Make flags accessors foolproof. + * kernel/VFS.st: Don't redirect from %1 for DecodedFileHandler. + +2007-07-23 Paolo Bonzini + + * kernel/PosStream.st: Use #size in #position: or #basicPosition:. + * kernel/RWStream.st: Use PositionableStream definition of #size. + +2007-07-18 Paolo Bonzini + + * kernel/Directory.st: Return '.' from #pathTo: if appropriate. + * kernel/SeqCollect.st: Fix #allButLast and #allButLast:. + +2007-07-13 Stephen Compall + + * kernel/Dictionary.st: Explain that LookupTable is usually a + better choice. + * kernel/LookupTable.st: Expand the explanation of differences + with Dictionary. + +2007-07-12 Paolo Bonzini + + * kernel/Collection.st: Add a few messages from Squeak. + * kernel/SeqCollect.st: Add a few messages from Squeak. + +2007-07-12 Paolo Bonzini + + * tests/compiler.st: Add new testcase. + +2007-07-12 Paolo Bonzini + + * kernel/StreamOps.st: Fix access to PeekableStream. + +2007-07-11 Paolo Bonzini + + * examples/MiniDebugger.st: Fix bitrot. + * kernel/CompildCode.st: Fix generation of source code line map. + +2007-07-05 Paolo Bonzini + + * kernel/File.st: Fix typo. + +2007-07-03 Paolo Bonzini + + * kernel/File.st: Create absolute symlink if first component of path + differs. + * kernel/VFS.st: Don't fail if a symlink's destination does not exist. + +2007-07-01 Paolo Bonzini + + * kernel/Regex.st: add #replaceRegex:with: and #replacingAllRegex:with:. + +2007-06-29 Paolo Bonzini + + * kernel/File.st: Move #pathTo:... + * kernel/Directory.st: ... here, and mimic what File>>#pathFrom: does. + +2007-06-28 Paolo Bonzini + + * kernel/VFS.st: Free stat into the RealFileHandler's finalizer. + Move responsibility of registering an object with VFS's ObjectMemory + handler to the object, rather than doing this in #addToBeFinalized. + Fixes race where stat was finalized before an object that was later + resurrected. + +2007-06-27 Paolo Bonzini + + * kernel/Collection.st: Fix #do:separatedBy:. + +2007-06-25 Paolo Bonzini + + * kernel/CharArray.st: Add #%. + +2007-06-22 Paolo Bonzini + + * kernel/File.st: Fix fullNameFor: returning root, add + printing methods and #with{Read,Write}StreamDo:. + * kernel/Directory.st: Support appending empty filename, + return newly created directory in #create:. + +2007-06-19 Freddie Akeroyd + Paolo Bonzini + + * kernel/File.st: Support mixed \ and / in a Windows path. + Support a file named "C:" in the middle of a Windows path (?). + +2007-06-18 Paolo Bonzini + + * tests/fileext.st: Run tests using Unix file separator. + +2007-06-15 Freddie Akeroyd + Paolo Bonzini + + * kernel/Character.st: Add #isPathSeparator. + * kernel/Directory.st: Use it; add special cases for Win32 systems. + * kernel/File.st: Use it; add special cases for Win32 systems. + * kernel/FileDescr.st: Look for :// instead of :/ to distinguish URIs. + +2007-06-10 Stephen Compall + + * examples/Publish.st: Add Basic>>#skipWhiteExceptNewlines:, and + use it in Basic>>#reformatComment:, thereby preserving multiple + newlines as they appear in comments. + + * kernel/AbstNamespc.st: Reduce default size. + * kernel/RootNamespc.st: Same. + +2007-06-10 Stephen Compall + + * kernel/AbstNamespc.st: Document that #addSubspace: answers the + new namespace, also referring to the argument. + + * kernel/SeqCollect.st: Fix doc example for #join usage. + +2007-06-10 Stephen Compall + + * kernel/WeakObjects.st: Add #includes: to WeakSet, as the + inherited method doesn't work with this class. Add + #identityIncludes: to WeakIdentitySet. + +2007-06-11 Paolo Bonzini + + * kernel/File.st: Add #pathFrom:to: and symlink creation. + * kernel/VFS.st: Add symlink creation. + +2007-06-07 Paolo Bonzini + + * kernel/AnsiExcept.st: Remove two archaeological mysteries. + + * kernel/ArrayColl.st: Add #atAll:. + * kernel/Dictionary.st: Add #atAll:. + * kernel/SeqCollect.st: Add #atAll:. + * kernel/MappedColl.st: Add #atAll:, remove #domain/#map accessors, + rewrite #select:/#collect:/#reject:. + +2007-06-07 Stephen Compall + + * kernel/Collection.st: Add #join: class method. + * kernel/ArrayColl.st: Specialize. + * kernel/SeqCollect.st: Add #join method. + +2007-06-05 Paolo Bonzini + + * kernel/FileDescr.st: Add #shutdown. + * kernel/Stream.st: Wrap #linesDo: and #do: in an exception handler. + * kernel/VFS.st: Use #linesDo:. + +2007-06-04 Stephen Compall + + * kernel/AbstNamespc.st: Make removeSubspace: public, change its + argument to be a symbol rather than a namespace, and don't make it + a subspace of Smalltalk. + +2007-06-04 Paolo Bonzini + + * examples/Continuations.st: Adopt definitive API. + * examples/Gen3.st: Use Continuation>>#callCC, much faster. Rename to + Generator.st. + * examples/Generator.st: Rename to Gen3.st. + * kernel/ContextPart.st: Move the continuations example's #copyStack + method here, as #deepCopy. + 2007-06-01 Paolo Bonzini * scripts/GenLibDoc.st: Don't load examples/StreamFilter.st. diff -ru smalltalk-2.3.5/Makefile.am smalltalk-2.3.6/Makefile.am --- smalltalk-2.3.5/Makefile.am 2007-06-01 17:13:48.000000000 +0200 +++ smalltalk-2.3.6/Makefile.am 2007-09-06 09:29:42.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2000, 2001, 2002 +# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -107,7 +107,7 @@ # These two lines add a beatiful icon to the Win32 executable gsticon.o: gsticon.ico - echo ProgramIcon ICON `cygpath -w gsticon.ico` | windres -o gsticon.o + echo ProgramIcon ICON `$(CYGPATH_W) gsticon.ico` | windres -o gsticon.o gst.im: $(bin_PROGRAMS) $(srcdir)/kernel/stamp-classes SMALLTALK_KERNEL="`cd $(srcdir)/kernel; pwd`" \ diff -ru smalltalk-2.3.5/Makefile.in smalltalk-2.3.6/Makefile.in --- smalltalk-2.3.5/Makefile.in 2007-06-02 17:45:16.000000000 +0200 +++ smalltalk-2.3.6/Makefile.in 2007-09-06 09:34:44.000000000 +0200 @@ -14,7 +14,7 @@ @SET_MAKE@ -# Copyright 2000, 2001, 2002 +# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -1090,7 +1090,7 @@ # These two lines add a beatiful icon to the Win32 executable gsticon.o: gsticon.ico - echo ProgramIcon ICON `cygpath -w gsticon.ico` | windres -o gsticon.o + echo ProgramIcon ICON `$(CYGPATH_W) gsticon.ico` | windres -o gsticon.o gst.im: $(bin_PROGRAMS) $(srcdir)/kernel/stamp-classes SMALLTALK_KERNEL="`cd $(srcdir)/kernel; pwd`" \ diff -ru smalltalk-2.3.5/NEWS smalltalk-2.3.6/NEWS --- smalltalk-2.3.5/NEWS 2007-06-02 17:44:13.000000000 +0200 +++ smalltalk-2.3.6/NEWS 2007-09-06 09:28:09.000000000 +0200 @@ -1,5 +1,40 @@ List of user-visible changes in GNU Smalltalk +NEWS FROM 2.3.5 TO 2.3.6 + +o Added #% as a shortcut for CharacterArray>>#bindWithArguments:. + +o Added #allButFirst, #allButFirst:, #allButLast, #allButLast:, #atAll:, + #removeAllSuchThat: to Collection. + +o Added #join to SequenceableCollection. + +o Added symbolic link creation to File. + +o A race condition was fixed where a file handler was resurrected and + another object inside it had already been finalized. + +o Pipes use OS pipes or socketpairs instead of a pseudo-tty. + +o Fixed bitrot in the debugger. + +o Fixed bug where ~= was computed incorrectly as = (e.g. 3 ~= 3.0e). + +o Fixed bug with growing of the Undeclared dictionary. + +o Fixed many minor bugs. + +o Fixed GC bug that could cause crashes if two GCs happened at particularly + unlucky spots. + +o Fixes to File and Directory for Windows. + +o Fixes to MIME message parsing, UTF-7 encoding and XPath. + +o VariableBinding objects were made read-only when used as literals. + +----------------------------------------------------------------------------- + NEWS FROM 2.3.4 TO 2.3.5 o Added more examples of continuations. diff -ru smalltalk-2.3.5/browser/ChangeLog smalltalk-2.3.6/browser/ChangeLog --- smalltalk-2.3.5/browser/ChangeLog 2006-12-13 09:56:45.000000000 +0100 +++ smalltalk-2.3.6/browser/ChangeLog 2007-08-28 14:06:29.000000000 +0200 @@ -1,3 +1,11 @@ +2007-08-28 Paolo Bonzini + + * PCode.st: Turn FIXME into a comment. + +2007-07-11 Paolo Bonzini + + * Debugger.st: Highlight line 1 for nil context. + 2006-12-13 Paolo Bonzini *** Version 2.3.1 released. diff -ru smalltalk-2.3.5/browser/Debugger.st smalltalk-2.3.6/browser/Debugger.st --- smalltalk-2.3.5/browser/Debugger.st 2006-02-05 19:41:18.000000000 +0100 +++ smalltalk-2.3.6/browser/Debugger.st 2007-09-06 09:29:53.000000000 +0200 @@ -8,7 +8,8 @@ "====================================================================== | -| Copyright 1992,94,95,99,2000,2001,2002,2003 Free Software Foundation, Inc. +| Copyright 1992,94,95,99,2000,2001,2002,2003,2007 +| Free Software Foundation, Inc. | Written by Brad Diller and Paolo Bonzini. | | This file is part of GNU Smalltalk. @@ -297,6 +298,7 @@ lineFor: context | lineMap | + context isNil ifTrue: [ ^1 ]. lineMap := methodLineMapCache at: context method ifAbsentPut: [ context method sourceCodeMap ]. ^lineMap at: context ip + 1 ifAbsent: [ 1 ]! diff -ru smalltalk-2.3.5/browser/PCode.st smalltalk-2.3.6/browser/PCode.st --- smalltalk-2.3.5/browser/PCode.st 2006-02-05 19:41:18.000000000 +0100 +++ smalltalk-2.3.6/browser/PCode.st 2007-09-06 09:29:59.000000000 +0200 @@ -8,7 +8,8 @@ "====================================================================== | -| Copyright 1992,94,95,99,2000,2001,2002,2003 Free Software Foundation, Inc. +| Copyright 1992,94,95,99,2000,2001,2002,2003,2007 +| Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of GNU Smalltalk. @@ -177,7 +178,7 @@ highlightSyntax | parser | (source = self contents) ifFalse: - [ 'FIXME: this is wrong, something is being dropped elsewhere with respect to content updates' printNl. + [ "FIXME: this is wrong, something is being dropped elsewhere with respect to content updates" source:=self contents ]. parser := STInST.RBParser new diff -ru smalltalk-2.3.5/build-aux/inet.m4 smalltalk-2.3.6/build-aux/inet.m4 --- smalltalk-2.3.5/build-aux/inet.m4 2006-02-05 19:41:18.000000000 +0100 +++ smalltalk-2.3.6/build-aux/inet.m4 2007-07-03 16:13:26.000000000 +0200 @@ -2,18 +2,24 @@ dnl AC_DEFUN([GST_INET_SOCKETS], [ -AC_CHECK_FUNC(listen, , [ - AC_CHECK_LIB(socket, listen, , [ - AC_CHECK_LIB(wsock32, listen) - ]) -]) -AC_CHECK_LIB(nsl, gethostbyname) +AC_SEARCH_LIBS(listen, socket, [], [ + dnl Check for listen on MinGW. We need to include + dnl to get the correct __stdcall name decoration + AC_MSG_CHECKING([For listen in -lwsock32]) + OLD_LIBS="$LIBS" + LIBS="-lwsock32 $LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]],[[listen(0,0);]])], + [ac_cv_lib_wsock32_listen=yes + AC_MSG_RESULT(yes)], + [LIBS="$OLD_LIBS" + AC_MSG_RESULT(no)])]) +AC_SEARCH_LIBS(gethostbyname, nsl) gst_cv_inet_sockets=yes AC_CHECK_FUNC(socket, , gst_cv_inet_sockets=no) AC_CHECK_HEADER(netinet/in.h, , gst_cv_inet_sockets=no) AC_CHECK_HEADER(arpa/inet.h, , gst_cv_inet_sockets=no) -if test $gst_cv_inet_sockets = yes || test $ac_cv_lib_wsock32_socket = yes; then +if test $gst_cv_inet_sockets = yes || test $ac_cv_lib_wsock32_listen = yes; then AC_DEFINE(HAVE_INET_SOCKETS, 1, [Define if your system's sockets provide access to the Internet.]) fi diff -ru smalltalk-2.3.5/compiler/ChangeLog smalltalk-2.3.6/compiler/ChangeLog --- smalltalk-2.3.5/compiler/ChangeLog 2007-05-25 11:47:00.000000000 +0200 +++ smalltalk-2.3.6/compiler/ChangeLog 2007-09-05 08:21:41.000000000 +0200 @@ -1,3 +1,12 @@ +2007-09-02 Stephen Compall + + * compiler/STCompiler.st: Jump past #true bytes after ifFalse: branch + in #ifFalse:ifTrue:, not #false bytes. + +2007-08-10 Paolo Bonzini + + * compiler/RBParser.st: Convert to FloatD if there is no exponent. + 2007-05-24 Paolo Bonzini * compiler/ParseTreeSearcher.st: Sync with development version. diff -ru smalltalk-2.3.5/compiler/RBParser.st smalltalk-2.3.6/compiler/RBParser.st --- smalltalk-2.3.5/compiler/RBParser.st 2007-04-10 08:11:07.000000000 +0200 +++ smalltalk-2.3.6/compiler/RBParser.st 2007-08-10 19:31:09.000000000 +0200 @@ -882,7 +882,7 @@ currentCharacter == $q ifTrue: [ num := num asFloatQ ] ifFalse: [ ^exponent isNil ifTrue: [ num ] - ifFalse: [ num asFloatE * (base raisedToInteger: exponent) ] + ifFalse: [ num asFloat * (base raisedToInteger: exponent) ] ]]]. ch := currentCharacter. diff -ru smalltalk-2.3.5/compiler/STCompiler.st smalltalk-2.3.6/compiler/STCompiler.st --- smalltalk-2.3.5/compiler/STCompiler.st 2007-01-31 09:56:45.000000000 +0100 +++ smalltalk-2.3.6/compiler/STCompiler.st 2007-09-05 08:21:09.000000000 +0200 @@ -848,7 +848,7 @@ self compileJump: falseSize if: true. self nextPutAll: bcFalse. bcFalseReturns ifFalse: [ - self compileByte: Jump arg: bcFalse size. + self compileByte: Jump arg: bcTrue size. ]. self nextPutAll: bcTrue. ^true diff -ru smalltalk-2.3.5/config.h.in smalltalk-2.3.6/config.h.in --- smalltalk-2.3.5/config.h.in 2007-06-02 17:47:26.000000000 +0200 +++ smalltalk-2.3.6/config.h.in 2007-09-06 09:37:00.000000000 +0200 @@ -190,15 +190,6 @@ /* Define to 1 if you have the `ncurses' library (-lncurses). */ #undef HAVE_LIBNCURSES -/* Define to 1 if you have the `nsl' library (-lnsl). */ -#undef HAVE_LIBNSL - -/* Define to 1 if you have the `socket' library (-lsocket). */ -#undef HAVE_LIBSOCKET - -/* Define to 1 if you have the `wsock32' library (-lwsock32). */ -#undef HAVE_LIBWSOCK32 - /* Define if GNU lightning can be used */ #undef HAVE_LIGHTNING @@ -432,6 +423,15 @@ /* Define to 1 if you have the `usleep' function. */ #undef HAVE_USLEEP +/* Define to 1 if you have the `utime' function. */ +#undef HAVE_UTIME + +/* Define to 1 if you have the `utimes' function. */ +#undef HAVE_UTIMES + +/* Define to 1 if you have the header file. */ +#undef HAVE_UTIME_H + /* Define if the C compiler support the ELF hidden visibility */ #undef HAVE_VISIBILITY_HIDDEN diff -ru smalltalk-2.3.5/configure smalltalk-2.3.6/configure --- smalltalk-2.3.5/configure 2007-06-02 17:45:21.000000000 +0200 +++ smalltalk-2.3.6/configure 2007-09-06 09:34:49.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for GNU Smalltalk 2.3.5. +# Generated by GNU Autoconf 2.61 for GNU Smalltalk 2.3.6. # # Report bugs to . # @@ -724,8 +724,8 @@ # Identity of this package. PACKAGE_NAME='GNU Smalltalk' PACKAGE_TARNAME='smalltalk' -PACKAGE_VERSION='2.3.5' -PACKAGE_STRING='GNU Smalltalk 2.3.5' +PACKAGE_VERSION='2.3.6' +PACKAGE_STRING='GNU Smalltalk 2.3.6' PACKAGE_BUGREPORT='help-smalltalk@gnu.org' ac_unique_file="main.c" @@ -1450,7 +1450,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Smalltalk 2.3.5 to adapt to many kinds of systems. +\`configure' configures GNU Smalltalk 2.3.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1520,7 +1520,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Smalltalk 2.3.5:";; + short | recursive ) echo "Configuration of GNU Smalltalk 2.3.6:";; esac cat <<\_ACEOF @@ -1648,7 +1648,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Smalltalk configure 2.3.5 +GNU Smalltalk configure 2.3.6 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1662,7 +1662,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Smalltalk $as_me 2.3.5, which was +It was created by GNU Smalltalk $as_me 2.3.6, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -1951,6 +1951,7 @@ ac_header_list="$ac_header_list sys/mman.h" ac_header_list="$ac_header_list sys/file.h" ac_header_list="$ac_header_list execinfo.h" +ac_header_list="$ac_header_list utime.h" ac_header_list="$ac_header_list sys/wait.h" ac_header_list="$ac_header_list fcntl.h" ac_func_list="$ac_func_list gethostname" @@ -1968,6 +1969,8 @@ ac_func_list="$ac_func_list getcwd" ac_func_list="$ac_func_list fork" ac_func_list="$ac_func_list strchr" +ac_func_list="$ac_func_list utimes" +ac_func_list="$ac_func_list utime" ac_func_list="$ac_func_list sigsetmask" ac_func_list="$ac_func_list alarm" ac_func_list="$ac_func_list select" @@ -2432,7 +2435,7 @@ # Define the identity of the package. PACKAGE='smalltalk' - VERSION='2.3.5' + VERSION='2.3.6' cat >>confdefs.h <<_ACEOF @@ -8459,7 +8462,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 8462 "configure"' > conftest.$ac_ext + echo '#line 8465 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -10017,11 +10020,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10020: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10023: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:10024: \$? = $ac_status" >&5 + echo "$as_me:10027: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -10260,11 +10263,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10263: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10266: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:10267: \$? = $ac_status" >&5 + echo "$as_me:10270: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -10320,11 +10323,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10323: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10326: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:10327: \$? = $ac_status" >&5 + echo "$as_me:10330: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12468,7 +12471,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 echo $ECHO_N "checking for int8_t... $ECHO_C" >&6; } if test "${ac_cv_c_int8_t+set}" = set; then @@ -16543,6 +16550,14 @@ + + + + + + + + # Check for strtoul. Under some versions of AIX, strtoul returns # an incorrect terminator pointer for the string "0". { echo "$as_me:$LINENO: checking for working strtoul" >&5 @@ -18069,7 +18084,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 -echo $ECHO_N "checking for listen... $ECHO_C" >&6; } -if test "${ac_cv_func_listen+set}" = set; then +{ echo "$as_me:$LINENO: checking for library containing listen" >&5 +echo $ECHO_N "checking for library containing listen... $ECHO_C" >&6; } +if test "${ac_cv_search_listen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define listen to an innocuous variant, in case declares listen. - For example, HP-UX 11i declares gettimeofday. */ -#define listen innocuous_listen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char listen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef listen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -21584,13 +21584,6 @@ extern "C" #endif char listen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_listen || defined __stub___listen -choke me -#endif - int main () { @@ -21599,7 +21592,14 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -21617,120 +21617,51 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then - ac_cv_func_listen=yes + ac_cv_search_listen=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_listen=no + fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext + if test "${ac_cv_search_listen+set}" = set; then + break fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_listen" >&5 -echo "${ECHO_T}$ac_cv_func_listen" >&6; } -if test $ac_cv_func_listen = yes; then +done +if test "${ac_cv_search_listen+set}" = set; then : else - - -{ echo "$as_me:$LINENO: checking for listen in -lsocket" >&5 -echo $ECHO_N "checking for listen in -lsocket... $ECHO_C" >&6; } -if test "${ac_cv_lib_socket_listen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char listen (); -int -main () -{ -return listen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_listen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_listen=no + ac_cv_search_listen=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_listen" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_listen" >&6; } -if test $ac_cv_lib_socket_listen = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" +{ echo "$as_me:$LINENO: result: $ac_cv_search_listen" >&5 +echo "${ECHO_T}$ac_cv_search_listen" >&6; } +ac_res=$ac_cv_search_listen +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else - -{ echo "$as_me:$LINENO: checking for listen in -lwsock32" >&5 -echo $ECHO_N "checking for listen in -lwsock32... $ECHO_C" >&6; } -if test "${ac_cv_lib_wsock32_listen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lwsock32 $LIBS" -cat >conftest.$ac_ext <<_ACEOF + { echo "$as_me:$LINENO: checking For listen in -lwsock32" >&5 +echo $ECHO_N "checking For listen in -lwsock32... $ECHO_C" >&6; } + OLD_LIBS="$LIBS" + LIBS="-lwsock32 $LIBS" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char listen (); +#include int main () { -return listen (); +listen(0,0); ; return 0; } @@ -21754,42 +21685,27 @@ } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_wsock32_listen=yes + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_wsock32_listen=no + LIBS="$OLD_LIBS" + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_wsock32_listen" >&5 -echo "${ECHO_T}$ac_cv_lib_wsock32_listen" >&6; } -if test $ac_cv_lib_wsock32_listen = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBWSOCK32 1 -_ACEOF - - LIBS="-lwsock32 $LIBS" - -fi - - -fi - - fi - -{ echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then +{ echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 +echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; } +if test "${ac_cv_search_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" + ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21812,7 +21728,14 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -21830,26 +21753,33 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then - ac_cv_lib_nsl_gethostbyname=yes + ac_cv_search_gethostbyname=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_nsl_gethostbyname=no + fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if test "${ac_cv_search_gethostbyname+set}" = set; then + break fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } -if test $ac_cv_lib_nsl_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" +done +if test "${ac_cv_search_gethostbyname+set}" = set; then + : +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi @@ -22216,7 +22146,7 @@ fi -if test $gst_cv_inet_sockets = yes || test $ac_cv_lib_wsock32_socket = yes; then +if test $gst_cv_inet_sockets = yes || test $ac_cv_lib_wsock32_listen = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_INET_SOCKETS 1 @@ -24237,7 +24167,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Smalltalk $as_me 2.3.5, which was +This file was extended by GNU Smalltalk $as_me 2.3.6, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -24294,7 +24224,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GNU Smalltalk config.status 2.3.5 +GNU Smalltalk config.status 2.3.6 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -ru smalltalk-2.3.5/configure.ac smalltalk-2.3.6/configure.ac --- smalltalk-2.3.5/configure.ac 2007-06-02 17:44:19.000000000 +0200 +++ smalltalk-2.3.6/configure.ac 2007-09-06 09:28:23.000000000 +0200 @@ -1,13 +1,13 @@ dnl Hey Emacs, I want this in -*- Autoconf -*- mode, please. dnl --- -dnl Copyright 1992,1993,1994,1995,1999,2000,2001,2002,2003,2004,2005,2006 +dnl Copyright 1992,1993,1994,1995,1999,2000,2001,2002,2003,2004,2005,2006,2007 dnl Free Software Foundation, Inc. dnl Please see COPYING for a description your rights and responsibilities dnl with this software. dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.60) -AC_INIT([GNU Smalltalk], 2.3.5, help-smalltalk@gnu.org, smalltalk) +AC_INIT([GNU Smalltalk], 2.3.6, help-smalltalk@gnu.org, smalltalk) MAINTAINER="bonzini@gnu.org" dnl CURRENT:REVISION:AGE means this is the REVISION-th version of @@ -186,7 +186,7 @@ AC_HEADER_ASSERT AC_CHECK_HEADERS_ONCE(stdint.h inttypes.h unistd.h poll.h sys/ioctl.h \ sys/resource.h sys/utsname.h stropts.h sys/param.h stddef.h limits.h \ - sys/timeb.h termios.h sys/mman.h sys/file.h execinfo.h \ + sys/timeb.h termios.h sys/mman.h sys/file.h execinfo.h utime.h \ sys/wait.h fcntl.h, [], [], [AC_INCLUDES_DEFAULT]) AC_TYPE_INT8_T @@ -215,7 +215,7 @@ getdtablesize strstr ftruncate floorl ceill sqrtl frexpl ldexpl asinl \ acosl atanl logl expl tanl sinl cosl truncl lrintl strsep strpbrk) AC_CHECK_FUNCS_ONCE(gethostname memcpy memmove sighold uname sbrk usleep lstat \ - grantpt popen getrusage gettimeofday getcwd fork strchr \ + grantpt popen getrusage gettimeofday getcwd fork strchr utimes utime \ sigsetmask alarm select mprotect madvise nl_langinfo waitpid \ setsid spawnl nanosleep pread pwrite) diff -ru smalltalk-2.3.5/doc/classes.texi smalltalk-2.3.6/doc/classes.texi --- smalltalk-2.3.5/doc/classes.texi 2007-06-01 11:30:07.000000000 +0200 +++ smalltalk-2.3.6/doc/classes.texi 2007-09-06 09:47:45.000000000 +0200 @@ -661,7 +661,8 @@ @table @b @meindex addSubspace:@- @item addSubspace:@- aSymbol -Add aNamespace to the set of the receiver's subspaces +Create a namespace named aSymbol, add it to the receiver's +subspaces, and answer it. @meindex allSubassociationsDo:@- @@ -716,6 +717,11 @@ indirect superspaces +@meindex removeSubspace:@- +@item removeSubspace:@- aSymbol +Remove my subspace named aSymbol from the hierarchy. + + @meindex selectSubspaces:@- @item selectSubspaces:@- aBlock Return a Set of subspaces of the receiver satisfying aBlock. @@ -1086,6 +1092,12 @@ @subsection ArrayedCollection class:@- instance creation @table @b +@meindex join:@- +@item join:@- aCollection +Where aCollection is a collection of SequenceableCollections, +answer a new instance with all the elements therein, in order. + + @meindex new:@-withAll:@- @item new:@- size withAll:@- anObject Answer a collection with the given size, whose elements are all set to @@ -1144,6 +1156,14 @@ @item add:@- value This method should not be called for instances of this class. +@meindex atAll:@- +@slindex collect:@- +@item atAll:@- keyCollection +Answer a collection of the same kind returned by @-#collect:@-, that +only includes the values at the given indices. Fail if any of +the values in keyCollection is out of bounds for the receiver. + + @meindex copyFrom:@-to:@- @item copyFrom:@- start to:@- stop Answer a new collection containing all the items in the receiver from the @@ -1194,6 +1214,7 @@ Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, except for elements from index `start' to index `stop'. + If start < stop, these are replaced by the contents of the replacementCollection. Instead, If start = (stop + 1), like in `copyReplaceFrom:@- 4 to:@- 3 with:@- anArray', then every element of the receiver @@ -1207,6 +1228,7 @@ Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, except for elements from index `start' to index `stop'. + If start < stop, these are replaced by stop-start+1 copies of anObject. Instead, If start = (stop + 1), then every element of the receiver will be present in the answered copy; the operation will be an append if @@ -1865,6 +1887,12 @@ method dictionary. Evaluate aBlock if not found. +@meindex lookupSelector:@- +@item lookupSelector:@- aSelector +Return the compiled method associated with selector, from the local +method dictionary or one of a superclass; return nil if not found. + + @meindex selectorAt:@- @item selectorAt:@- method Return selector for the given compiledMethod @@ -3198,6 +3226,7 @@ @-#valueWithUnwind, after that call. Example:@- [ 1 / 0 ] valueWithUnwind. 'unwind works!' printNl. + Important:@- this method is public, but it is intended to be used in very special cases (as a rule of thumb, use it only when the corresponding C code uses the _gst_prepare_execution_environment and @@ -3654,6 +3683,7 @@ @meindex objectAt:@-put:@- @item "Storing methods + objectAt:@- index put:@- value @@ -5069,6 +5099,12 @@ True if self is a lowercase letter +@meindex isPathSeparator +@item isPathSeparator +Returns true if self is a path separator ($/ or $\ under Windows, +$/ only under Unix systems including Mac OS X). + + @meindex isPunctuation @item isPunctuation Returns true if self is one of '.,:@-;!?' @@ -5352,6 +5388,15 @@ @subsection CharacterArray:@- string processing @table @b +@meindex % +@item % anArray +Answer the receiver with every %n (1<=n<=9) replaced by the n-th element +of anArray. The replaced elements are `displayed' (i.e. their +displayString is used). In addition, the special pattern +%n is replaced with one of the two +strings depending on the n-th element of anArray being true or false. + + @meindex bindWith:@- @item bindWith:@- s1 Answer the receiver with every %1 replaced by the displayString of s1 @@ -5408,13 +5453,6 @@ the ANSI standard mandates `subStrings', with an uppercase s. -@meindex subStrings:@- -@item subStrings:@- aCharacter -Answer an OrderedCollection of substrings of the receiver. A new substring -start at the start of the receiver, or after every sequence of characters -matching aCharacter - - @meindex substrings:@- @item substrings:@- aCharacter Answer an OrderedCollection of substrings of the receiver. A new substring @@ -5423,6 +5461,13 @@ the ANSI standard mandates `subStrings:@-', with an uppercase s. +@meindex subStrings:@- +@item subStrings:@- aCharacter +Answer an OrderedCollection of substrings of the receiver. A new substring +start at the start of the receiver, or after every sequence of characters +matching aCharacter + + @end table @@ -6545,6 +6590,7 @@ that is, this method is equivalent either to cobj[anIndex]=aValue or cobj[anIndex]=*aValue. anIndex is zero-based, just like with all other C-style accessing. + In both cases, aValue should be of the element type or of the corresponding Smalltalk type (that is, a String is ok for an array of CStrings) to avoid typing problems which however will @@ -6607,6 +6653,13 @@ @subsection Collection class:@- instance creation @table @b +@meindex join:@- +@item join:@- aCollection +Answer a collection formed by treating each element in +aCollection as a `withAll:@-' argument collection to be added to a +new instance. + + @meindex with:@- @item with:@- anObject Answer a collection whose only element is anObject @@ -6930,6 +6983,11 @@ element is absent, pass it to aBlock. +@meindex removeAllSuchThat:@- +@item removeAllSuchThat:@- aBlock +Remove from the receiver all objects for which aBlock returns true. + + @end table @@ -7245,10 +7303,12 @@ For each bytecode, 4 bytes are reserved. The fourth byte is a flag byte:@- bit 7 means that the argument is a line number to be used in creating the bytecode->line number map. + The first three have a meaning only for those bytecodes that represent a combination of operations:@- the combination can be BC1 ARG BC2 OPERAND if the fourth byte's bit 0 = 0 or BC1 OPERAND BC2 ARG if the fourth byte's bit 0 = 1 + where BC1 is the first byte, BC2 is the second, ARG is the third and OPERAND is the bytecode argument as it appears in the bytecode stream. @@ -7836,6 +7896,7 @@ a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + If the flags field of the method header is 6, this method instead provides a hook from which the virtual machine can call back whenever execution of the method is requested. In this case, invoking the @@ -8175,11 +8236,15 @@ @subsection ContextPart:@- copying @table @b +@meindex copyStack +@item copyStack +Answer a copy of the entire stack. + + @meindex deepCopy @item deepCopy -Answer a shallow copy of the receiver -- duplicating -e.g. the method and the instance variables that have -been pushed is almost surely not the right thing. +Answer a copy of the entire stack, but don't copy any +of the other instance variables of the context. @end table @@ -10190,6 +10255,11 @@ unique objects (typcially instances of Symbol), and associates another object with that index. I use the equality operator = to determine equality of indices. + +In almost all places where you would use a plain Dictionary, a +LookupTable would be more efficient; see LookupTable's comment before +you use it. I do have a couple of special features that are useful in +certain special cases. @end table @menu @@ -10277,6 +10347,12 @@ Store value as associated to the given key +@meindex atAll:@- +@item atAll:@- keyCollection +Answer a Dictionary that only includes the given keys. Fail if any of +them is not found + + @meindex keyAtValue:@- @item keyAtValue:@- value Answer the key associated to the given value, or nil if the value is not found @@ -10702,7 +10778,7 @@ @meindex create:@- @item create:@- dirName -Create a directory named dirName. +Create a directory named dirName and answer it. @meindex working @@ -10804,6 +10880,11 @@ resides in the directory represented by the receiver. +@meindex pathTo:@- +@item pathTo:@- destName +Compute the relative path from the receiver to destName. + + @end table @@ -11304,11 +11385,6 @@ the receiver -@meindex whenSignalledIn:@-do:@-exitBlock:@- -@item whenSignalledIn:@- onDoBlock do:@- handlerBlock exitBlock:@- exitBlock -Private - Create an ExceptionHandler from the arguments and register it - - @end table @@ -11564,6 +11640,7 @@ * File-accessing:: (instance) * File-file name management:: (instance) * File-file operations:: (instance) +* File-printing:: (instance) * File-testing:: (instance) @end menu @@ -11616,6 +11693,10 @@ return the result. +@meindex pathFrom:@-to:@- +@item pathFrom:@- srcName to:@- destName +Not commented. + @meindex stripExtensionFrom:@- @item stripExtensionFrom:@- aString Remove the extension from the name of a file called `aString', and @@ -11664,6 +11745,17 @@ Rename the file with the given path name oldFileName to newFileName +@meindex symlink:@-as:@- +@item symlink:@- srcName as:@- destName +Create a symlink for the srcName file with the given path name + + +@meindex symlink:@-from:@- +@item symlink:@- destName from:@- srcName +Create a symlink named destName file from the given path (relative to +destName) + + @meindex touch:@- @item touch:@- fileName Update the timestamp of the file with the given path name. @@ -11882,6 +11974,11 @@ class constant methods). Upon failure, evaluate aBlock. +@meindex pathFrom:@- +@item pathFrom:@- dirName +Compute the relative path from the directory dirName to the receiver + + @meindex readStream @item readStream Open a read-only FileStream on the receiver @@ -11897,11 +11994,31 @@ Rename the file identified by the receiver to newName +@meindex symlinkAs:@- +@item symlinkAs:@- destName +Create destName as a symbolic link of the receiver. The appropriate +relative path is computed automatically. + + +@meindex symlinkFrom:@- +@item symlinkFrom:@- srcName +Create the receiver as a symbolic link from srcName (relative to the +path of the receiver). + + @meindex touch @item touch Update the timestamp of the file corresponding to the receiver. +@meindex withReadStreamDo:@- +@item withReadStreamDo:@- aBlock +Not commented. + +@meindex withWriteStreamDo:@- +@item withWriteStreamDo:@- aBlock +Not commented. + @meindex writeStream @item writeStream Open a write-only FileStream on the receiver @@ -11911,6 +12028,24 @@ +@node File-printing +@subsection File:@- printing + +@table @b +@meindex displayOn:@- +@item displayOn:@- aStream +Print a representation of the receiver on aStream. + + +@meindex printOn:@- +@item printOn:@- aStream +Print a representation of the receiver on aStream. + + +@end table + + + @node File-testing @subsection File:@- testing @@ -12106,6 +12241,7 @@ inspected by the virtual filesystem layers and replaced with tasks such as un-gzipping a file or extracting a file from an archive. + The file will be automatically closed upon GC if the object is not referenced anymore, but it is better to close it as soon as you're finished with it anyway, using @-#close. To keep a file open even when @@ -12130,6 +12266,7 @@ that are inspected by the virtual filesystem layers and replaced with tasks such as un-gzipping a file or extracting a file from an archive. + The file will be automatically closed upon GC if the object is not referenced anymore, but it is better to close it as soon as you're finished with it anyway, using @-#close. To keep a file open even when @@ -12346,6 +12483,12 @@ Reset the stream to its beginning +@meindex shutdown +@item shutdown +Close the transmission side of a full-duplex connection. This is useful +on read-write pipes. + + @meindex size @item size Return the current size of the file, in bytes @@ -13376,11 +13519,21 @@ Just defined for completeness. Return the receiver. +@meindex ceilingLog:@- +@item ceilingLog:@- radix +Answer (self log:@- radix) ceiling. + + @meindex estimatedLog @item estimatedLog Answer an estimate of (self abs floorLog:@- 10) +@meindex floorLog:@- +@item floorLog:@- radix +Answer (self log:@- radix) floor. + + @meindex log @item log Not commented. @@ -14435,6 +14588,7 @@ unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, and as a string for long options. + If an error is found, nil is returned. For more information on the syntax of pattern, see @-#parse:@-with:@-do:@-ifError:@-. @@ -14449,18 +14603,22 @@ unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, and as a string for long options. + If an error is found, the parsing is interrupted, errorBlock is evaluated, and the returned value is answered. + Every whitespace-separated part (`word') of pattern specifies a command-line option. If a word ends with a colon, the option will have a mandatory argument. If a word ends with two colons, the option will have an optional argument. Before the colons, multiple option names (either short names like `-l' or long names like `--long') can be specified. Before passing the option to actionBlock, the name will be canonicalized to the last one. + Prefixes of long options are accepted as long as they're unique, and they are canonicalized to the full name before passing it to actionBlock. Additionally, the full name of an option is accepted even if it is the prefix of a longer option. + Mandatory arguments can appear in the next argument, or in the same argument (separated by an = for arguments to long options). Optional arguments must appear in the same argument. @@ -16793,10 +16951,11 @@ @item Defined in namespace Smalltalk @itemx Superclass: Dictionary @itemx Category: Collections-Keyed -I am similar to Dictionary, except that my representation is -different (more efficient, but not useful to store a variable -binding). I use the object equality comparison message @-#= -to determine equivalence of indices. +I am a more efficient variant of Dictionary that cannot be used as a +pool dictionary of variables, as I don't use Associations to store +key-value pairs. I also cannot have nil as a key; if you need to be +able to store nil as a key, use Dictionary instead. I use the object +equality comparison message @-#= to determine equivalence of indices. @end table @menu @@ -17114,10 +17273,20 @@ Store value at the given key +@meindex atAll:@- +@item atAll:@- keyCollection +Answer a new MappedCollection that only includes the given keys. The new +MappedCollection might use keyCollection or consecutive integers for the +keys, depending on the map's type. Fail if any of them is not found in +the map. + + @meindex collect:@- @item collect:@- aBlock -Answer a MappedCollection with a copy of the receiver's map -and a domain obtained by passing each object through aBlock +Answer a Collection with the same keys as the map, where accessing +a key yields the value obtained by passing through aBlock the value +accessible from the key in the receiver. The result need not be +another MappedCollection @meindex contents @@ -17125,24 +17294,29 @@ Answer a bag with the receiver's values +@meindex copyFrom:@-to:@- +@item copyFrom:@- a to:@- b +Not commented. + @meindex do:@- @item do:@- aBlock Evaluate aBlock for each object -@meindex domain -@item domain -Answer the domain - - @meindex keys @item keys Answer the keys that can be used to access this collection. -@meindex map -@item map -Answer the map +@meindex keysAndValuesDo:@- +@item keysAndValuesDo:@- aBlock +Evaluate aBlock passing two arguments, one being a key that can be used to +access this collection, and the other one being the value. + + +@meindex keysDo:@- +@item keysDo:@- aBlock +Evaluate aBlock on the keys that can be used to access this collection. @meindex reject:@- @@ -17193,6 +17367,7 @@ @meindex at:@-put:@- @item "Storing methods + at:@- anAddress put:@- aValue @@ -17868,6 +18043,7 @@ when presenting a backtrace. Such contexts are identified through the @-#exceptionHandlingInternal:@- attribute:@- if there is such a context in the backtrace, all those above it are marked as internal. + That is, the attribute being set to true means that the context and all those above it are to be hidden, while the attribute being set to false means that the contexts above it must be hidden, but not the context itself. @@ -19728,6 +19904,7 @@ at all in a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden @@ -19740,6 +19917,7 @@ at all in a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden @@ -19752,6 +19930,7 @@ at all in a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden @@ -19764,6 +19943,7 @@ not reside at all in a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden @@ -19776,6 +19956,7 @@ not reside at all in a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden @@ -19788,6 +19969,7 @@ to Object -- it need not reside at all in a MethodDictionary, in fact -- but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden @@ -20326,15 +20508,15 @@ Same as isMetaclass +@meindex isMetaclass +@item isMetaclass +Answer `false'. + @meindex isMetaClass @item isMetaClass Same as isMetaclass -@meindex isMetaclass -@item isMetaclass -Answer `false'. - @meindex isNamespace @item isNamespace Answer `false'. @@ -21275,6 +21457,7 @@ the three possible places are 1) the system kernel directory's parent directory, 2) the local kernel directory's parent directory, 3) the local image directory (in order of decreasing priority). + For a packages.xml found in the system kernel directory's parent directory, all three directories are searched. For a packages.xml found in the local kernel directory's parent directory, only @@ -21527,6 +21710,7 @@ The three possible places are 1) the system kernel directory's parent directory, 2) the local kernel directory's parent directory, 3) the local image directory (in order of decreasing priority). + For a packages.xml found in the system kernel directory's parent directory, all three directories are searched. For a packages.xml found in the local kernel directory's parent directory, only @@ -21553,7 +21737,9 @@ Answer an OrderedCollection containing all the packages which you have to load to enable the packages in packagesList, in an appropriate order. For example + PackageLoader extractDependenciesFor:@- @-#('BloxTestSuite' 'Blox' 'Browser') + on a newly built image will evaluate to an OrderedCollection containing 'Kernel', 'Blox', 'BloxTestSuite' and 'Browser'. Note that Blox has been moved before BloxTestSuite. @@ -23118,14 +23304,10 @@ @subsection ReadWriteStream:@- positioning @table @b -@meindex position:@- -@item position:@- anInteger -Unlike WriteStreams, ReadWriteStreams don't truncate the stream - - -@meindex skip:@- -@item skip:@- anInteger -Unlike WriteStreams, ReadWriteStreams don't truncate the stream +@meindex contents +@item contents +Unlike WriteStreams, ReadWriteStreams return the whole contents of the +underlying collection. @end table @@ -24685,6 +24867,7 @@ @menu * SequenceableCollection class-instance creation:: (class) * SequenceableCollection-basic:: (instance) +* SequenceableCollection-concatenating:: (instance) * SequenceableCollection-copying SequenceableCollections:: (instance) * SequenceableCollection-enumerating:: (instance) * SequenceableCollection-replacing items:: (instance) @@ -24718,12 +24901,40 @@ if no following object is available +@meindex allButFirst +@item allButFirst +Answer a copy of the receiver without the first object. + + +@meindex allButFirst:@- +@item allButFirst:@- n +Answer a copy of the receiver without the first n objects. + + +@meindex allButLast +@item allButLast +Answer a copy of the receiver without the last object. + + +@meindex allButLast:@- +@item allButLast:@- n +Answer a copy of the receiver without the last n objects. + + @meindex at:@-ifAbsent:@- @item at:@- anIndex ifAbsent:@- aBlock Answer the anIndex-th item of the collection, or evaluate aBlock and answer the result if the index is out of range +@meindex atAll:@- +@slindex collect:@- +@item atAll:@- keyCollection +Answer a collection of the same kind returned by @-#collect:@-, that +only includes the values at the given indices. Fail if any of +the values in keyCollection is out of bounds for the receiver. + + @meindex atAll:@-put:@- @item atAll:@- aCollection put:@- anObject Put anObject at every index contained in aCollection @@ -24854,6 +25065,27 @@ +@node SequenceableCollection-concatenating +@subsection SequenceableCollection:@- concatenating + +@table @b +@meindex join +@item join +Answer a new collection like my first element, with all the +elements (in order) of all my elements, which should be +collections. + +I use my first element instead of myself as a prototype because +my elements are more likely to share the desired properties than +I am, such as in:@- + +@-#('hello, ' 'world') join => 'hello, world' + + +@end table + + + @node SequenceableCollection-copying SequenceableCollections @subsection SequenceableCollection:@- copying SequenceableCollections @@ -24888,6 +25120,7 @@ Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, except for elements from index `start' to index `stop'. + If start < stop, these are replaced by the contents of the replacementCollection. Instead, If start = (stop + 1), like in `copyReplaceFrom:@- 4 to:@- 3 with:@- anArray', then every element of the receiver @@ -24901,6 +25134,7 @@ Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, except for elements from index `start' to index `stop'. + If start < stop, these are replaced by stop-start+1 copies of anObject. Instead, If start = (stop + 1), then every element of the receiver will be present in the answered copy; the operation will be an append if @@ -26855,6 +27089,23 @@ to aBlock. +@meindex replacingAllRegex:@-with:@- +@slindex % +@item replacingAllRegex:@- pattern with:@- str +Returns the receiver if the pattern has no match in it. Otherwise, +any match of pattern in that part of the string is replaced with +str after substituting %n sequences with the captured subexpressions +of the match (as in @-#%). + + +@meindex replacingRegex:@-with:@- +@slindex % +@item replacingRegex:@- pattern with:@- str +Returns the receiver if the pattern has no match in it. If it has +a match, it is replaced with str after substituting %n sequences +with the captured subexpressions of the match (as in @-#%). + + @meindex searchRegex:@- @slindex =~ @item searchRegex:@- pattern @@ -27443,6 +27694,7 @@ unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, and as a string for long options. + If an error is found, nil is returned. For more information on the syntax of pattern, see @-#arguments:@-do:@-ifError:@-. @@ -27457,18 +27709,22 @@ unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, and as a string for long options. + If an error is found, the parsing is interrupted, errorBlock is evaluated, and the returned value is answered. + Every whitespace-separated part (`word') of pattern specifies a command-line option. If a word ends with a colon, the option will have a mandatory argument. If a word ends with two colons, the option will have an optional argument. Before the colons, multiple option names (either short names like `-l' or long names like `--long') can be specified. Before passing the option to actionBlock, the name will be canonicalized to the last one. + Prefixes of long options are accepted as long as they're unique, and they are canonicalized to the full name before passing it to actionBlock. Additionally, the full name of an option is accepted even if it is the prefix of a longer option. + Mandatory arguments can appear in the next argument, or in the same argument (separated by an = for arguments to long options). Optional arguments must appear in the same argument. @@ -29775,6 +30031,7 @@ Returns the character object, possibly a Character, corresponding to anInteger. Error if anInteger is not an integer, or not in 0..16r10FFFF. + This is only a primitive for speed. UnicodeCharacter's @-#value:@- method is equivalent to @-#codePoint:@- (which is the same for Character and UnicodeCharacter). @@ -30824,6 +31081,11 @@ like). +@meindex finalize +@item finalize +Free the statistics for the receiver + + @meindex isDirectory @item isDirectory Answer whether the file is a directory. @@ -30913,7 +31175,12 @@ @meindex renameTo:@- @item renameTo:@- newFileName -Rename the file with the given path name oldFileName to newFileName +Rename the file with the given path name to newFileName + + +@meindex symlinkFrom:@- +@item symlinkFrom:@- srcName +Create the receiver as a symlink from path destName @end table @@ -31129,6 +31396,10 @@ @item primRename:@- oldFileName to:@- newFileName Not commented. +@meindex primSymlink:@-as:@- +@item primSymlink:@- srcName as:@- destName +Not commented. + @meindex primUnlink:@- @item primUnlink:@- fileName Not commented. @@ -31213,6 +31484,11 @@ Rename the file with the given path name oldFileName to newFileName +@meindex symlinkFrom:@- +@item symlinkFrom:@- srcName +Create the receiver as a symlink from the relative path srcName + + @end table @@ -31454,8 +31730,24 @@ @end table @menu +* WeakIdentitySet-accessing:: (instance) @end menu + + +@node WeakIdentitySet-accessing +@subsection WeakIdentitySet:@- accessing + +@table @b +@meindex identityIncludes:@- +@slindex includes:@- +@item identityIncludes:@- anObject +Answer whether I include anObject exactly. As I am an +identity-set, this is the same as @-#includes:@-. + + +@end table + @node WeakKeyDictionary @section WeakKeyDictionary @clindex WeakKeyDictionary @@ -31548,6 +31840,11 @@ Enumerate all the non-nil members of the set +@meindex includes:@- +@item includes:@- anObject +Answer whether I contain anObject. + + @meindex remove:@-ifAbsent:@- @item remove:@- anObject ifAbsent:@- aBlock Remove oldObject to the set. If it is found, answer oldObject. @@ -31675,7 +31972,6 @@ @menu * WriteStream class-instance creation:: (class) -* WriteStream-accessing:: (instance) * WriteStream-accessing-writing:: (instance) * WriteStream-positioning:: (instance) @end menu @@ -31709,19 +32005,6 @@ -@node WriteStream-accessing -@subsection WriteStream:@- accessing - -@table @b -@meindex size -@item size -Answer how many objects have been written - - -@end table - - - @node WriteStream-accessing-writing @subsection WriteStream:@- accessing-writing diff -ru smalltalk-2.3.5/doc/gst-base.info smalltalk-2.3.6/doc/gst-base.info --- smalltalk-2.3.5/doc/gst-base.info 2007-06-02 17:48:26.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-base.info 2007-09-06 09:47:49.000000000 +0200 @@ -6,8 +6,8 @@ * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -26,1097 +26,1099 @@  Indirect: -gst-base.info-1: 1018 -gst-base.info-2: 300524 -gst-base.info-3: 600012 -gst-base.info-4: 748113 -gst-base.info-5: 1181244 +gst-base.info-1: 1023 +gst-base.info-2: 299906 +gst-base.info-3: 599338 +gst-base.info-4: 754037 +gst-base.info-5: 1191766  Tag Table: (Indirect) -Node: Top1018 -Node: Base classes2281 -Node: AbstractNamespace12142 -Node: AbstractNamespace class-instance creation12897 -Node: AbstractNamespace-accessing13336 -Node: AbstractNamespace-basic & copying14574 -Node: AbstractNamespace-copying15128 -Node: AbstractNamespace-namespace hierarchy15584 -Node: AbstractNamespace-overrides for superspaces18262 -Node: AbstractNamespace-printing19992 -Node: AbstractNamespace-testing20577 -Node: AlternativeObjectProxy20828 -Node: AlternativeObjectProxy class-instance creation21570 -Node: AlternativeObjectProxy-accessing22515 -Node: ArithmeticError23079 -Node: ArithmeticError-description23538 -Node: Array23756 -Node: Array-mutating objects24395 -Node: Array-printing24707 -Node: Array-testing24938 -Node: ArrayedCollection25091 -Node: ArrayedCollection class-instance creation25888 -Node: ArrayedCollection-basic27022 -Node: ArrayedCollection-built ins27933 -Node: ArrayedCollection-copying Collections28209 -Node: ArrayedCollection-enumerating the elements of a collection29973 -Node: ArrayedCollection-storing31132 -Node: Association31429 -Node: Association class-basic32114 -Node: Association-accessing32365 -Node: Association-finalization32985 -Node: Association-printing33218 -Node: Association-storing33478 -Node: Association-testing33744 -Node: Autoload34101 -Node: Autoload class-instance creation34779 -Node: Autoload-accessing35295 -Node: AutoloadClass35635 -Node: AutoloadClass-accessing36168 -Node: Bag37136 -Node: Bag class-basic37849 -Node: Bag-adding38118 -Node: Bag-enumerating the elements of a collection38611 -Node: Bag-extracting items38981 -Node: Bag-printing39273 -Node: Bag-removing39490 -Node: Bag-storing39812 -Node: Bag-testing collections40042 -Node: Behavior40540 -Node: Behavior-accessing class hierarchy42139 -Node: Behavior-accessing instances and variables42880 -Node: Behavior-accessing the methodDictionary44181 -Node: Behavior-built ins45276 -Node: Behavior-compilation (alternative)47479 -Node: Behavior-compiling methods48314 -Node: Behavior-creating a class hierarchy48789 -Node: Behavior-enumerating49240 -Node: Behavior-evaluating50308 -Node: Behavior-instance creation51613 -Node: Behavior-instance variables52409 -Node: Behavior-method dictionary52857 -Node: Behavior-pluggable behavior (not yet implemented)56476 -Node: Behavior-printing hierarchy57616 -Node: Behavior-support for lightweight classes58226 -Node: Behavior-testing functionality59418 -Node: Behavior-testing the class hierarchy59703 -Node: Behavior-testing the form of the instances60297 -Node: Behavior-testing the method dictionary61148 -Node: BindingDictionary62551 -Node: BindingDictionary-accessing63408 -Node: BindingDictionary-copying65304 -Node: BindingDictionary-forward declarations65979 -Node: BindingDictionary-printing66417 -Node: BindingDictionary-testing66825 -Node: BlockClosure67054 -Node: BlockClosure class-instance creation68287 -Node: BlockClosure class-testing69266 -Node: BlockClosure-accessing69574 -Node: BlockClosure-built ins71176 -Node: BlockClosure-control structures71826 -Node: BlockClosure-exception handling72507 -Node: BlockClosure-multiple process74523 -Node: BlockClosure-overriding75980 -Node: BlockClosure-testing76262 -Node: BlockClosure-unwind protection76536 -Node: BlockContext78021 -Node: BlockContext-accessing78850 -Node: BlockContext-debugging80377 -Node: BlockContext-printing80796 -Node: Boolean81035 -Node: Boolean class-testing81796 -Node: Boolean-basic82113 -Node: Boolean-C hacks83409 -Node: Boolean-overriding83671 -Node: Boolean-storing83914 -Node: ByteArray84143 -Node: ByteArray class-instance creation84741 -Node: ByteArray-built ins85077 -Node: ByteArray-converting86416 -Node: ByteArray-more advanced accessing86875 -Node: ByteStream93483 -Node: ByteStream-basic93872 -Node: CAggregate95744 -Node: CAggregate class-accessing96049 -Node: CAggregate-accessing96339 -Node: CallinProcess96577 -Node: CArray97105 -Node: CArray-accessing97358 -Node: CArrayCType97565 -Node: CArrayCType class-instance creation97876 -Node: CArrayCType-accessing98510 -Node: CBoolean98888 -Node: CBoolean-accessing99195 -Node: CByte99526 -Node: CByte class-conversion99918 -Node: CByte-accessing100251 -Node: CChar100703 -Node: CChar class-accessing101007 -Node: CChar-accessing101371 -Node: CChar-conversion101713 -Node: CCompound102114 -Node: CCompound class-instance creation102466 -Node: CCompound class-subclass creation102839 -Node: CCompound-instance creation104943 -Node: CDouble105296 -Node: CDouble class-accessing105578 -Node: CDouble-accessing105952 -Node: CFloat106279 -Node: CFloat class-accessing106567 -Node: CFloat-accessing106936 -Node: CFunctionDescriptor107258 -Node: CFunctionDescriptor class-instance creation108043 -Node: CFunctionDescriptor class-testing108405 -Node: CFunctionDescriptor-accessing108916 -Node: CFunctionDescriptor-calling109548 -Node: CFunctionDescriptor-printing111446 -Node: Character111719 -Node: Character class-built ins113022 -Node: Character class-constants113676 -Node: Character class-initializing lookup tables114484 -Node: Character class-instance creation115134 -Node: Character class-testing115506 -Node: Character-built ins115796 -Node: Character-coercion methods116585 -Node: Character-comparing117289 -Node: Character-converting117936 -Node: Character-printing118325 -Node: Character-storing118715 -Node: Character-testing118970 -Node: Character-testing functionality119717 -Node: CharacterArray119965 -Node: CharacterArray class-basic120648 -Node: CharacterArray-built ins121119 -Node: CharacterArray-comparing121554 -Node: CharacterArray-converting123857 -Node: CharacterArray-multibyte encodings125399 -Node: CharacterArray-string processing125852 -Node: CharacterArray-testing functionality128417 -Node: CInt128677 -Node: CInt class-accessing128948 -Node: CInt-accessing129287 -Node: Class129619 -Node: Class class-initialize130572 -Node: Class-accessing instances and variables130819 -Node: Class-filing132501 -Node: Class-instance creation133012 -Node: Class-instance creation - alternative135826 -Node: Class-pragmas138004 -Node: Class-printing138286 -Node: Class-saving and loading138683 -Node: Class-security140092 -Node: Class-testing140376 -Node: Class-testing functionality140621 -Node: ClassDescription140854 -Node: ClassDescription-compiling141526 -Node: ClassDescription-conversion142368 -Node: ClassDescription-copying142835 -Node: ClassDescription-filing144046 -Node: ClassDescription-organization of messages and classes144958 -Node: ClassDescription-printing146394 -Node: CLong147157 -Node: CLong class-accessing147441 -Node: CLong-accessing147805 -Node: CLongDouble148122 -Node: CLongDouble class-accessing148421 -Node: CLongDouble-accessing148815 -Node: CObject149162 -Node: CObject class-conversion150028 -Node: CObject class-instance creation150385 -Node: CObject-accessing150997 -Node: CObject-C data access151446 -Node: CObject-conversion152064 -Node: CObject-finalization152811 -Node: CObject-pointer-like behavior153289 -Node: Collection155558 -Node: Collection class-instance creation156495 -Node: Collection-adding157513 -Node: Collection-converting157874 -Node: Collection-copying Collections159145 -Node: Collection-enumeration159697 -Node: Collection-finalization162736 -Node: Collection-printing163055 -Node: Collection-removing163412 -Node: Collection-storing164266 -Node: Collection-testing collections164537 -Node: CompiledBlock165301 -Node: CompiledBlock class-instance creation165809 -Node: CompiledBlock-accessing166578 -Node: CompiledBlock-basic167651 -Node: CompiledBlock-printing168374 -Node: CompiledBlock-saving and loading168655 -Node: CompiledCode169090 -Node: CompiledCode class-cache flushing169953 -Node: CompiledCode class-instance creation170323 -Node: CompiledCode class-tables170922 -Node: CompiledCode-accessing171965 -Node: CompiledCode-basic173416 -Node: CompiledCode-copying174181 -Node: CompiledCode-debugging174420 -Node: CompiledCode-decoding bytecodes174693 -Node: CompiledCode-literals - iteration175118 -Node: CompiledCode-security175549 -Node: CompiledCode-testing accesses175881 -Node: CompiledCode-translation177048 -Node: CompiledMethod177322 -Node: CompiledMethod class-instance creation178235 -Node: CompiledMethod class-lean images179116 -Node: CompiledMethod-accessing179451 -Node: CompiledMethod-attributes180837 -Node: CompiledMethod-basic181793 -Node: CompiledMethod-c call-outs182575 -Node: CompiledMethod-invoking183018 -Node: CompiledMethod-printing184067 -Node: CompiledMethod-saving and loading184425 -Node: CompiledMethod-testing184889 -Node: ContextPart185489 -Node: ContextPart class-built ins186358 -Node: ContextPart class-exception handling186673 -Node: ContextPart-accessing187669 -Node: ContextPart-built ins191012 -Node: ContextPart-copying191712 -Node: ContextPart-debugging192079 -Node: ContextPart-enumerating192618 -Node: ContextPart-exception handling193236 -Node: ContextPart-printing193512 -Node: ContextPart-security checks193925 -Node: CoreException194546 -Node: CoreException class-instance creation195822 -Node: CoreException-accessing196092 -Node: CoreException-basic197040 -Node: CoreException-enumerating197309 -Node: CoreException-exception handling197981 -Node: CoreException-instance creation198646 -Node: CPtr198962 -Node: CPtr-accessing199205 -Node: CPtrCType199754 -Node: CPtrCType class-instance creation200048 -Node: CPtrCType-accessing200347 -Node: CScalar200822 -Node: CScalar class-instance creation201118 -Node: CScalar-accessing201591 -Node: CScalarCType202120 -Node: CScalarCType-accessing202418 -Node: CScalarCType-storing202760 -Node: CShort202996 -Node: CShort class-accessing203280 -Node: CShort-accessing203649 -Node: CSmalltalk203971 -Node: CSmalltalk class-accessing204266 -Node: CSmalltalk-accessing204655 -Node: CString204997 -Node: CString class-instance creation206008 -Node: CString-accessing206481 -Node: CStringCType207010 -Node: CStringCType-accessing207279 -Node: CStruct207494 -Node: CStruct class-subclass creation207754 -Node: CType208002 -Node: CType class-C instance creation209126 -Node: CType-accessing209396 -Node: CType-C instance creation210253 -Node: CType-storing210778 -Node: CUChar210989 -Node: CUChar class-getting info211264 -Node: CUChar-accessing211642 -Node: CUInt211967 -Node: CUInt class-accessing212236 -Node: CUInt-accessing212600 -Node: CULong212917 -Node: CULong class-accessing213190 -Node: CULong-accessing213559 -Node: CUnion213881 -Node: CUnion class-subclass creation214133 -Node: CUShort214377 -Node: CUShort class-accessing214654 -Node: CUShort-accessing215028 -Node: Date215355 -Node: Date class-basic216827 -Node: Date class-instance creation (ANSI)217955 -Node: Date class-instance creation (Blue Book)218445 -Node: Date-basic219765 -Node: Date-compatibility (non-ANSI)220239 -Node: Date-date computations220652 -Node: Date-printing222363 -Node: Date-storing222591 -Node: Date-testing222814 -Node: DateTime223133 -Node: DateTime class-information223777 -Node: DateTime class-instance creation224068 -Node: DateTime class-instance creation (non-ANSI)225369 -Node: DateTime-basic225871 -Node: DateTime-computations226218 -Node: DateTime-printing226910 -Node: DateTime-splitting in dates & times227176 -Node: DateTime-storing227775 -Node: DateTime-testing228040 -Node: DateTime-time zones228415 -Node: Delay229545 -Node: Delay class-general inquiries230318 -Node: Delay class-initialization230591 -Node: Delay class-instance creation230887 -Node: Delay-accessing231390 -Node: Delay-comparing231644 -Node: Delay-process delay231930 -Node: DelayedAdaptor232166 -Node: DelayedAdaptor-accessing232702 -Node: Dictionary233081 -Node: Dictionary class-instance creation234041 -Node: Dictionary-accessing234295 -Node: Dictionary-awful ST-80 compatibility hacks236072 -Node: Dictionary-dictionary enumerating236535 -Node: Dictionary-dictionary removing237623 -Node: Dictionary-dictionary testing238492 -Node: Dictionary-polymorphism hacks239166 -Node: Dictionary-printing239451 -Node: Dictionary-rehashing239815 -Node: Dictionary-storing240032 -Node: Dictionary-testing240294 -Node: DirectedMessage240570 -Node: DirectedMessage class-creating instances241146 -Node: DirectedMessage-accessing241579 -Node: DirectedMessage-basic241887 -Node: DirectedMessage-multiple process242311 -Node: DirectedMessage-saving and loading242909 -Node: Directory243347 -Node: Directory class-C call-outs244128 -Node: Directory class-file name management244364 -Node: Directory class-file operations244939 -Node: Directory class-reading system defaults245409 -Node: Directory-accessing246371 -Node: Directory-enumerating247392 -Node: DLD248367 -Node: DLD class-C call-outs249047 -Node: DLD class-dynamic linking249362 -Node: DumperProxy250708 -Node: DumperProxy class-accessing251244 -Node: DumperProxy class-instance creation251709 -Node: DumperProxy-saving and restoring252214 -Node: Duration252629 -Node: Duration class-instance creation253040 -Node: Duration class-instance creation (non ANSI)253540 -Node: Duration-arithmetics254019 -Node: Error255207 -Node: Error-exception description255532 -Node: Exception255873 -Node: Exception class-comparison257011 -Node: Exception class-creating ExceptionCollections257475 -Node: Exception class-initialization257899 -Node: Exception class-instance creation258281 -Node: Exception class-interoperability with TrappableEvents258865 -Node: Exception-comparison259487 -Node: Exception-exception description259935 -Node: Exception-exception signaling260378 -Node: ExceptionSet260771 -Node: ExceptionSet class-instance creation261346 -Node: ExceptionSet-enumerating261611 -Node: False262175 -Node: False-basic262574 -Node: False-C hacks263568 -Node: False-printing263748 -Node: File263949 -Node: File class-C functions264782 -Node: File class-file name management265018 -Node: File class-file operations266427 -Node: File class-instance creation267136 -Node: File class-reading system defaults267638 -Node: File class-testing267925 -Node: File-accessing268577 -Node: File-file name management270117 -Node: File-file operations270903 -Node: File-testing272098 -Node: FileDescriptor273165 -Node: FileDescriptor class-initialization274326 -Node: FileDescriptor class-instance creation274664 -Node: FileDescriptor-accessing280697 -Node: FileDescriptor-basic281857 -Node: FileDescriptor-built ins283194 -Node: FileDescriptor-class type methods284710 -Node: FileDescriptor-initialize-release285140 -Node: FileDescriptor-low-level access285534 -Node: FileDescriptor-overriding inherited methods286762 -Node: FileDescriptor-printing287896 -Node: FileDescriptor-testing288196 -Node: FileSegment288420 -Node: FileSegment class-basic289039 -Node: FileSegment class-installing289396 -Node: FileSegment-basic289782 -Node: FileSegment-equality290781 -Node: FileStream291064 -Node: FileStream class-file-in291743 -Node: FileStream class-standard streams295280 -Node: FileStream-basic296020 -Node: FileStream-buffering296969 -Node: FileStream-overriding inherited methods298201 -Node: FileStream-testing299139 -Node: Float299361 -Node: Float class-byte-order dependancies300244 -Node: Float class-characterization300524 -Node: Float-arithmetic301546 -Node: Float-basic301956 -Node: Float-built ins302151 -Node: Float-coercing303092 -Node: Float-comparing303597 -Node: Float-printing304247 -Node: Float-storing304472 -Node: Float-testing304693 -Node: Float-testing functionality305462 -Node: Float-transcendental operations305700 -Node: FloatD306052 -Node: FloatD class-byte-order dependancies306557 -Node: FloatD class-characterization306842 -Node: FloatD class-converting308116 -Node: FloatD-built ins308372 -Node: FloatD-coercing309609 -Node: FloatE310012 -Node: FloatE class-byte-order dependancies310517 -Node: FloatE class-characterization310802 -Node: FloatE class-converting312364 -Node: FloatE-built ins312620 -Node: FloatE-coercing313857 -Node: FloatQ314260 -Node: FloatQ class-byte-order dependancies314773 -Node: FloatQ class-characterization315058 -Node: FloatQ class-converting316620 -Node: FloatQ-built ins316876 -Node: FloatQ-coercing318113 -Node: Fraction318516 -Node: Fraction class-converting319270 -Node: Fraction class-instance creation319514 -Node: Fraction-accessing319899 -Node: Fraction-arithmetic320189 -Node: Fraction-coercing320913 -Node: Fraction-comparing321552 -Node: Fraction-converting322054 -Node: Fraction-optimized cases322555 -Node: Fraction-printing322989 -Node: Fraction-testing323319 -Node: Getopt323526 -Node: Getopt class-instance creation323891 -Node: Halt326523 -Node: Halt-description326817 -Node: HashedCollection327068 -Node: HashedCollection class-instance creation327929 -Node: HashedCollection-accessing328440 -Node: HashedCollection-builtins329020 -Node: HashedCollection-copying329797 -Node: HashedCollection-enumerating the elements of a collection330275 -Node: HashedCollection-rehashing330651 -Node: HashedCollection-removing330937 -Node: HashedCollection-saving and loading331344 -Node: HashedCollection-storing331858 -Node: HashedCollection-testing collections332185 -Node: HomedAssociation333132 -Node: HomedAssociation class-basic333702 -Node: HomedAssociation-accessing334004 -Node: HomedAssociation-finalization334370 -Node: HomedAssociation-storing334990 -Node: IdentityDictionary335259 -Node: IdentitySet335652 -Node: IdentitySet-testing336051 -Node: Integer336312 -Node: Integer class-converting337141 -Node: Integer-accessing337502 -Node: Integer-basic337741 -Node: Integer-bit operators337951 -Node: Integer-converting339319 -Node: Integer-extension340045 -Node: Integer-iterators340358 -Node: Integer-math methods340724 -Node: Integer-printing341625 -Node: Integer-storing342684 -Node: Integer-testing functionality343011 -Node: Interval343285 -Node: Interval class-instance creation343881 -Node: Interval-basic344483 -Node: Interval-printing345133 -Node: Interval-storing345458 -Node: Interval-testing345705 -Node: LargeArray345976 -Node: LargeArray-overridden346379 -Node: LargeArrayedCollection346571 -Node: LargeArrayedCollection class-instance creation347114 -Node: LargeArrayedCollection-accessing347473 -Node: LargeArrayedCollection-basic347977 -Node: LargeArraySubpart348378 -Node: LargeArraySubpart class-instance creation349257 -Node: LargeArraySubpart-accessing349666 -Node: LargeArraySubpart-comparing350621 -Node: LargeArraySubpart-modifying351643 -Node: LargeByteArray352405 -Node: LargeByteArray-overridden352828 -Node: LargeInteger353269 -Node: LargeInteger-accessing354104 -Node: LargeInteger-arithmetic354343 -Node: LargeInteger-bit operations355357 -Node: LargeInteger-built-ins356032 -Node: LargeInteger-coercion357111 -Node: LargeInteger-disabled357547 -Node: LargeInteger-primitive operations357922 -Node: LargeInteger-testing358402 -Node: LargeNegativeInteger359046 -Node: LargeNegativeInteger-converting359748 -Node: LargeNegativeInteger-numeric testing360136 -Node: LargeNegativeInteger-reverting to LargePositiveInteger360671 -Node: LargePositiveInteger361243 -Node: LargePositiveInteger-arithmetic362120 -Node: LargePositiveInteger-converting362596 -Node: LargePositiveInteger-helper byte-level methods363150 -Node: LargePositiveInteger-numeric testing364887 -Node: LargePositiveInteger-primitive operations365423 -Node: LargeWordArray366117 -Node: LargeWordArray-overridden366547 -Node: LargeZeroInteger366846 -Node: LargeZeroInteger-accessing367674 -Node: LargeZeroInteger-arithmetic367939 -Node: LargeZeroInteger-numeric testing368869 -Node: LargeZeroInteger-printing369206 -Node: Link369504 -Node: Link class-instance creation370049 -Node: Link-basic370281 -Node: Link-iteration370534 -Node: LinkedList370995 -Node: LinkedList-accessing371603 -Node: LinkedList-adding371919 -Node: LinkedList-enumerating372652 -Node: LinkedList-testing373132 -Node: LookupKey373488 -Node: LookupKey class-basic374042 -Node: LookupKey-accessing374284 -Node: LookupKey-printing374549 -Node: LookupKey-storing374796 -Node: LookupKey-testing375052 -Node: LookupTable375486 -Node: LookupTable class-instance creation376262 -Node: LookupTable-accessing376563 -Node: LookupTable-copying377368 -Node: LookupTable-enumerating377688 -Node: LookupTable-hashing378211 -Node: LookupTable-rehashing378452 -Node: LookupTable-removing378677 -Node: LookupTable-storing379179 -Node: Magnitude379418 -Node: Magnitude-basic379874 -Node: Magnitude-misc methods380446 -Node: MappedCollection380862 -Node: MappedCollection class-instance creation382237 -Node: MappedCollection-basic382690 -Node: Memory383652 -Node: Memory class-accessing384212 -Node: Message388222 -Node: Message class-creating instances388898 -Node: Message-accessing389190 -Node: Message-basic389632 -Node: Message-printing389931 -Node: MessageNotUnderstood390263 -Node: MessageNotUnderstood-accessing390757 -Node: MessageNotUnderstood-description391096 -Node: Metaclass391377 -Node: Metaclass class-instance creation392376 -Node: Metaclass-accessing392661 -Node: Metaclass-basic393107 -Node: Metaclass-delegation394388 -Node: Metaclass-filing395835 -Node: Metaclass-printing396126 -Node: Metaclass-testing functionality396681 -Node: MethodContext396942 -Node: MethodContext-accessing397484 -Node: MethodContext-debugging398794 -Node: MethodContext-printing399571 -Node: MethodDictionary399817 -Node: MethodDictionary-adding400348 -Node: MethodDictionary-rehashing400597 -Node: MethodDictionary-removing400851 -Node: MethodInfo401263 -Node: MethodInfo-accessing401749 -Node: MethodInfo-equality402694 -Node: Namespace402987 -Node: Namespace class-accessing403595 -Node: Namespace class-disabling instance creation403998 -Node: Namespace class-initialization404394 -Node: Namespace-accessing404831 -Node: Namespace-namespace hierarchy405120 -Node: Namespace-overrides for superspaces405618 -Node: Namespace-printing407415 -Node: NetClients.URIResolver407919 -Node: NetClients.URIResolver class-api408374 -Node: NetClients.URIResolver class-instance creation409524 -Node: NetClients.URL409901 -Node: NetClients.URL class-encoding URLs410622 -Node: NetClients.URL class-instance creation411127 -Node: NetClients.URL-accessing411952 -Node: NetClients.URL-comparing414677 -Node: NetClients.URL-copying415203 -Node: NetClients.URL-initialize-release415740 -Node: NetClients.URL-printing416039 -Node: NetClients.URL-testing416333 -Node: NetClients.URL-utilities417109 -Node: Notification417419 -Node: Notification-exception description417872 -Node: NullProxy418334 -Node: NullProxy class-instance creation418946 -Node: NullProxy-accessing419217 -Node: NullValueHolder419469 -Node: NullValueHolder class-creating instances420058 -Node: NullValueHolder-accessing420340 -Node: Number420688 -Node: Number class-converting421584 -Node: Number class-testing422044 -Node: Number-arithmetic422312 -Node: Number-comparing423645 -Node: Number-converting424198 -Node: Number-copying425545 -Node: Number-error raising425860 -Node: Number-misc math426231 -Node: Number-point creation428040 -Node: Number-retrying428335 -Node: Number-shortcuts and iterators430140 -Node: Number-testing431007 -Node: Number-truncation and round off432443 -Node: Object433258 -Node: Object class-initialization434214 -Node: Object-built ins434906 -Node: Object-change and update443603 -Node: Object-class type methods444810 -Node: Object-conversion445629 -Node: Object-copying445876 -Node: Object-debugging446540 -Node: Object-dependents access446869 -Node: Object-error raising447573 -Node: Object-finalization448260 -Node: Object-printing449253 -Node: Object-relational operators450998 -Node: Object-saving and loading451362 -Node: Object-storing452365 -Node: Object-syntax shortcuts452972 -Node: Object-testing functionality453299 -Node: Object-VM callbacks454867 -Node: ObjectDumper455352 -Node: ObjectDumper class-establishing proxy classes456557 -Node: ObjectDumper class-instance creation457406 -Node: ObjectDumper class-shortcuts457819 -Node: ObjectDumper class-testing458213 -Node: ObjectDumper-accessing458657 -Node: ObjectDumper-loading/dumping objects459165 -Node: ObjectDumper-stream interface459605 -Node: ObjectMemory459987 -Node: ObjectMemory class-accessing461072 -Node: ObjectMemory class-builtins461339 -Node: ObjectMemory class-initialization464686 -Node: ObjectMemory class-saving the image465016 -Node: ObjectMemory-accessing465344 -Node: ObjectMemory-builtins470298 -Node: ObjectMemory-derived information470583 -Node: OrderedCollection471570 -Node: OrderedCollection class-instance creation472292 -Node: OrderedCollection-accessing472650 -Node: OrderedCollection-adding473117 -Node: OrderedCollection-removing475181 -Node: Package475836 -Node: Package-accessing476253 -Node: PackageLoader479911 -Node: PackageLoader class-accessing480475 -Node: PackageLoader class-loading483143 -Node: PackageLoader class-testing484146 -Node: Permission484437 -Node: Permission class-testing484906 -Node: Permission-accessing485656 -Node: Permission-testing486234 -Node: PluggableAdaptor486484 -Node: PluggableAdaptor class-creating instances487121 -Node: PluggableAdaptor-accessing488217 -Node: PluggableProxy488518 -Node: PluggableProxy class-accessing489156 -Node: PluggableProxy-saving and restoring489606 -Node: Point490041 -Node: Point class-instance creation490780 -Node: Point-accessing491093 -Node: Point-arithmetic491527 -Node: Point-comparing492246 -Node: Point-converting493059 -Node: Point-point functions493578 -Node: Point-printing494526 -Node: Point-storing494760 -Node: Point-truncation and round off495008 -Node: PositionableStream495420 -Node: PositionableStream class-instance creation496339 -Node: PositionableStream-accessing-reading496864 -Node: PositionableStream-class type methods498239 -Node: PositionableStream-positioning498776 -Node: PositionableStream-testing500016 -Node: PositionableStream-truncating500498 -Node: Process500798 -Node: Process-accessing501378 -Node: Process-basic502892 -Node: Process-builtins504573 -Node: Process-printing505383 -Node: ProcessorScheduler505597 -Node: ProcessorScheduler class-instance creation506276 -Node: ProcessorScheduler-basic506590 -Node: ProcessorScheduler-built ins508172 -Node: ProcessorScheduler-idle tasks508874 -Node: ProcessorScheduler-printing509378 -Node: ProcessorScheduler-priorities509697 -Node: ProcessorScheduler-storing511363 -Node: ProcessorScheduler-timed invocation511704 -Node: Promise512275 -Node: Promise class-creating instances512859 -Node: Promise-accessing513122 -Node: Promise-initializing513462 -Node: Promise-printing513706 -Node: Random513913 -Node: Random class-instance creation514374 -Node: Random class-shortcuts514756 -Node: Random-basic515089 -Node: Random-testing515519 -Node: ReadStream515845 -Node: ReadStream class-instance creation516252 -Node: ReadWriteStream516672 -Node: ReadWriteStream class-instance creation517170 -Node: ReadWriteStream-positioning517808 -Node: Rectangle518189 -Node: Rectangle class-instance creation518990 -Node: Rectangle-accessing519548 -Node: Rectangle-copying521962 -Node: Rectangle-printing522196 -Node: Rectangle-rectangle functions522538 -Node: Rectangle-testing524441 -Node: Rectangle-transforming525271 -Node: Rectangle-truncation and round off525911 -Node: RecursionLock526216 -Node: RecursionLock class-instance creation526620 -Node: RecursionLock-accessing526870 -Node: RecursionLock-mutual exclusion527483 -Node: RecursionLock-printing527858 -Node: Regex528124 -Node: Regex class-instance creation529202 -Node: Regex-basic529441 -Node: Regex-conversion529863 -Node: Regex-printing530169 -Node: RegexResults530829 -Node: RegexResults-accessing531447 -Node: RegexResults-testing532960 -Node: RootNamespace533992 -Node: RootNamespace class-instance creation534552 -Node: RootNamespace-namespace hierarchy534901 -Node: RootNamespace-overrides for superspaces535348 -Node: RootNamespace-printing535979 -Node: RunArray536503 -Node: RunArray class-instance creation537476 -Node: RunArray-accessing537764 -Node: RunArray-adding538114 -Node: RunArray-basic539204 -Node: RunArray-copying539525 -Node: RunArray-enumerating539897 -Node: RunArray-removing540373 -Node: RunArray-searching540854 -Node: RunArray-testing541284 -Node: ScaledDecimal541543 -Node: ScaledDecimal class-constants542364 -Node: ScaledDecimal class-instance creation542630 -Node: ScaledDecimal-arithmetic543083 -Node: ScaledDecimal-coercion543818 -Node: ScaledDecimal-comparing544739 -Node: ScaledDecimal-constants545391 -Node: ScaledDecimal-printing545709 -Node: ScaledDecimal-storing546185 -Node: SecurityPolicy546439 -Node: SecurityPolicy-modifying547027 -Node: SecurityPolicy-querying547379 -Node: Semaphore547638 -Node: Semaphore class-instance creation548314 -Node: Semaphore-accessing548703 -Node: Semaphore-builtins549203 -Node: Semaphore-mutual exclusion550582 -Node: Semaphore-printing550932 -Node: SequenceableCollection551178 -Node: SequenceableCollection class-instance creation551892 -Node: SequenceableCollection-basic552323 -Node: SequenceableCollection-copying SequenceableCollections555915 -Node: SequenceableCollection-enumerating558201 -Node: SequenceableCollection-replacing items561828 -Node: SequenceableCollection-testing562791 -Node: Set563350 -Node: Set-arithmetic563782 -Node: Set-awful ST-80 compatibility hacks564127 -Node: Set-comparing564504 -Node: SharedQueue564915 -Node: SharedQueue class-instance creation565449 -Node: SharedQueue-accessing565834 -Node: Signal566352 -Node: Signal-accessing566989 -Node: Signal-exception handling567855 -Node: SingletonProxy570421 -Node: SingletonProxy class-accessing571037 -Node: SingletonProxy class-instance creation571418 -Node: SingletonProxy-saving and restoring571875 -Node: SmallInteger572318 -Node: SmallInteger class-getting limits573017 -Node: SmallInteger class-testing573519 -Node: SmallInteger-bit arithmetic573831 -Node: SmallInteger-built ins574198 -Node: SmallInteger-builtins576519 -Node: SmallInteger-coercion methods577286 -Node: SmallInteger-testing functionality577658 -Node: SortedCollection577907 -Node: SortedCollection class-hacking579051 -Node: SortedCollection class-instance creation579336 -Node: SortedCollection-basic579865 -Node: SortedCollection-copying580426 -Node: SortedCollection-disabled580749 -Node: SortedCollection-enumerating581619 -Node: SortedCollection-saving and loading581965 -Node: SortedCollection-searching582327 -Node: Stream582930 -Node: Stream-accessing-reading583932 -Node: Stream-accessing-writing585741 -Node: Stream-basic586312 -Node: Stream-built ins586503 -Node: Stream-character writing587395 -Node: Stream-enumerating588185 -Node: Stream-filing out588567 -Node: Stream-filtering588927 -Node: Stream-polymorphism591098 -Node: Stream-positioning591502 -Node: Stream-printing592684 -Node: Stream-storing593439 -Node: Stream-testing593807 -Node: String594321 -Node: String class-instance creation595426 -Node: String-accessing595894 -Node: String-basic596289 -Node: String-built ins596694 -Node: String-C call-outs598558 -Node: String-converting598865 -Node: String-printing599346 -Node: String-regex600012 -Node: String-testing functionality605385 -Node: String-useful functionality605623 -Node: Symbol605927 -Node: Symbol class-built ins606765 -Node: Symbol class-instance creation606996 -Node: Symbol class-symbol table608151 -Node: Symbol-basic609576 -Node: Symbol-built ins610345 -Node: Symbol-converting610670 -Node: Symbol-misc611026 -Node: Symbol-storing611206 -Node: Symbol-testing611995 -Node: Symbol-testing functionality612279 -Node: SymLink612516 -Node: SymLink class-instance creation613077 -Node: SymLink-accessing613413 -Node: SymLink-iteration613764 -Node: SymLink-printing613995 -Node: SystemDictionary614211 -Node: SystemDictionary-basic615117 -Node: SystemDictionary-builtins615414 -Node: SystemDictionary-c call-outs616786 -Node: SystemDictionary-command-line617195 -Node: SystemDictionary-miscellaneous619882 -Node: SystemDictionary-printing620348 -Node: SystemDictionary-special accessing620783 -Node: SystemDictionary-testing621396 -Node: SystemExceptions.AlreadyDefined621621 -Node: SystemExceptions.AlreadyDefined-accessing622147 -Node: SystemExceptions.ArgumentOutOfRange622415 -Node: SystemExceptions.ArgumentOutOfRange class-signaling623015 -Node: SystemExceptions.ArgumentOutOfRange-accessing623437 -Node: SystemExceptions.BadReturn624031 -Node: SystemExceptions.BadReturn-accessing624521 -Node: SystemExceptions.CInterfaceError624781 -Node: SystemExceptions.CInterfaceError-accessing625292 -Node: SystemExceptions.EmptyCollection625576 -Node: SystemExceptions.EmptyCollection-accessing626073 -Node: SystemExceptions.EndOfStream626357 -Node: SystemExceptions.EndOfStream class-signaling626858 -Node: SystemExceptions.EndOfStream-accessing627214 -Node: SystemExceptions.FileError627650 -Node: SystemExceptions.FileError-accessing628139 -Node: SystemExceptions.IndexOutOfRange628399 -Node: SystemExceptions.IndexOutOfRange class-signaling628995 -Node: SystemExceptions.IndexOutOfRange-accessing629377 -Node: SystemExceptions.InvalidArgument629907 -Node: SystemExceptions.InvalidArgument-accessing630414 -Node: SystemExceptions.InvalidProcessState630687 -Node: SystemExceptions.InvalidProcessState-accessing631228 -Node: SystemExceptions.InvalidSize631528 -Node: SystemExceptions.InvalidSize-accessing632005 -Node: SystemExceptions.InvalidValue632273 -Node: SystemExceptions.InvalidValue class-signaling632810 -Node: SystemExceptions.InvalidValue-accessing633275 -Node: SystemExceptions.MustBeBoolean633782 -Node: SystemExceptions.MustBeBoolean class-signaling634273 -Node: SystemExceptions.MutationError634542 -Node: SystemExceptions.MutationError-accessing635013 -Node: SystemExceptions.NoRunnableProcess635289 -Node: SystemExceptions.NoRunnableProcess-accessing635795 -Node: SystemExceptions.NotEnoughElements636087 -Node: SystemExceptions.NotEnoughElements class-signaling636653 -Node: SystemExceptions.NotEnoughElements-accessing637038 -Node: SystemExceptions.NotFound637590 -Node: SystemExceptions.NotFound class-accessing638116 -Node: SystemExceptions.NotFound-accessing638507 -Node: SystemExceptions.NotImplemented638813 -Node: SystemExceptions.NotImplemented-accessing639281 -Node: SystemExceptions.NotIndexable639561 -Node: SystemExceptions.NotIndexable-accessing640034 -Node: SystemExceptions.NotYetImplemented640306 -Node: SystemExceptions.NotYetImplemented-accessing640828 -Node: SystemExceptions.PrimitiveFailed641120 -Node: SystemExceptions.PrimitiveFailed-accessing641615 -Node: SystemExceptions.ProcessBeingTerminated641899 -Node: SystemExceptions.ProcessBeingTerminated-accessing642346 -Node: SystemExceptions.ProcessTerminated642658 -Node: SystemExceptions.ProcessTerminated-accessing643193 -Node: SystemExceptions.ReadOnlyObject643485 -Node: SystemExceptions.ReadOnlyObject-accessing643971 -Node: SystemExceptions.SecurityError644251 -Node: SystemExceptions.SecurityError class-accessing644825 -Node: SystemExceptions.SecurityError-accessing645221 -Node: SystemExceptions.ShouldNotImplement645707 -Node: SystemExceptions.ShouldNotImplement-accessing646246 -Node: SystemExceptions.SubclassResponsibility646542 -Node: SystemExceptions.SubclassResponsibility-accessing647122 -Node: SystemExceptions.UserInterrupt647434 -Node: SystemExceptions.UserInterrupt-accessing647906 -Node: SystemExceptions.VerificationError648182 -Node: SystemExceptions.VerificationError-accessing648667 -Node: SystemExceptions.VMError648959 -Node: SystemExceptions.VMError-accessing649399 -Node: SystemExceptions.WrongArgumentCount649651 -Node: SystemExceptions.WrongArgumentCount-accessing650217 -Node: SystemExceptions.WrongClass650513 -Node: SystemExceptions.WrongClass class-signaling651141 -Node: SystemExceptions.WrongClass-accessing651813 -Node: SystemExceptions.WrongMessageSent652482 -Node: SystemExceptions.WrongMessageSent class-signaling653139 -Node: SystemExceptions.WrongMessageSent-accessing653572 -Node: TextCollector654177 -Node: TextCollector class-accessing654887 -Node: TextCollector-accessing655400 -Node: TextCollector-printing656215 -Node: TextCollector-set up656563 -Node: TextCollector-storing657142 -Node: Time657486 -Node: Time class-basic (UTC)658277 -Node: Time class-builtins658739 -Node: Time class-clocks659780 -Node: Time class-initialization660351 -Node: Time class-instance creation660711 -Node: Time-accessing (ANSI for DateAndTimes)661604 -Node: Time-accessing (non ANSI & for Durations)662136 -Node: Time-arithmetic662602 -Node: Time-comparing663044 -Node: TokenStream663345 -Node: TokenStream class-instance creation664165 -Node: TokenStream-basic664541 -Node: TokenStream-write methods664879 -Node: TrappableEvent665138 -Node: TrappableEvent-enumerating665726 -Node: TrappableEvent-instance creation666290 -Node: True666636 -Node: True-basic667026 -Node: True-C hacks667992 -Node: True-printing668168 -Node: UndefinedObject668366 -Node: UndefinedObject-basic669098 -Node: UndefinedObject-class creation669383 -Node: UndefinedObject-class creation - alternative672175 -Node: UndefinedObject-CObject interoperability674479 -Node: UndefinedObject-dependents access674917 -Node: UndefinedObject-printing675306 -Node: UndefinedObject-storing675800 -Node: UndefinedObject-testing676092 -Node: UnicodeCharacter676944 -Node: UnicodeCharacter class-built ins677536 -Node: UnicodeString678065 -Node: UnicodeString class-converting678644 -Node: UnicodeString class-multibyte encodings679022 -Node: UnicodeString-built-ins679460 -Node: UnicodeString-converting679733 -Node: UnicodeString-multibyte encodings680473 -Node: ValueAdaptor680981 -Node: ValueAdaptor class-creating instances681475 -Node: ValueAdaptor-accessing681779 -Node: ValueAdaptor-printing682202 -Node: ValueHolder682431 -Node: ValueHolder class-creating instances683058 -Node: ValueHolder-accessing683457 -Node: ValueHolder-initializing683766 -Node: VariableBinding684005 -Node: VariableBinding-printing684649 -Node: VariableBinding-saving and loading684980 -Node: VariableBinding-storing685453 -Node: VariableBinding-testing685757 -Node: VersionableObjectProxy686031 -Node: VersionableObjectProxy class-saving and restoring686939 -Node: VersionableObjectProxy-saving and restoring687979 -Node: VFS.ArchiveFileHandler688329 -Node: VFS.ArchiveFileHandler class-registering689258 -Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol689729 -Node: VFS.ArchiveFileHandler-directory operations691122 -Node: VFS.ArchiveFileHandler-file operations691980 -Node: VFS.ArchiveMemberHandler692283 -Node: VFS.ArchiveMemberHandler-accessing693023 -Node: VFS.ArchiveMemberHandler-directory operations694199 -Node: VFS.ArchiveMemberHandler-file operations694836 -Node: VFS.ArchiveMemberHandler-finalization695518 -Node: VFS.ArchiveMemberHandler-initializing696027 -Node: VFS.ArchiveMemberHandler-testing696577 -Node: VFS.DecodedFileHandler697479 -Node: VFS.DecodedFileHandler class-registering698032 -Node: VFS.DecodedFileHandler-files699195 -Node: VFS.ExternalArchiveFileHandler699906 -Node: VFS.ExternalArchiveFileHandler class-registering700749 -Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol701703 -Node: VFS.ExternalArchiveFileHandler-members703040 -Node: VFS.ExternalArchiveFileHandler-releasing703567 -Node: VFS.RealFileHandler703933 -Node: VFS.RealFileHandler class-C call-outs704688 -Node: VFS.RealFileHandler class-initialization705035 -Node: VFS.RealFileHandler-accessing705378 -Node: VFS.RealFileHandler-directory operations706707 -Node: VFS.RealFileHandler-file operations707219 -Node: VFS.RealFileHandler-testing707921 -Node: VFS.VFSHandler708557 -Node: VFS.VFSHandler class-initializing709342 -Node: VFS.VFSHandler class-instance creation710256 -Node: VFS.VFSHandler-accessing710615 -Node: VFS.VFSHandler-C call-outs711973 -Node: VFS.VFSHandler-directory operations712854 -Node: VFS.VFSHandler-file operations713459 -Node: VFS.VFSHandler-testing714511 -Node: Warning715433 -Node: Warning-exception description715764 -Node: WeakArray715984 -Node: WeakArray class-instance creation716489 -Node: WeakArray-accessing716829 -Node: WeakArray-conversion718493 -Node: WeakArray-loading719144 -Node: WeakIdentitySet719425 -Node: WeakKeyDictionary719899 -Node: WeakKeyDictionary-accessing720460 -Node: WeakKeyIdentityDictionary720977 -Node: WeakSet721517 -Node: WeakSet-accessing721985 -Node: WeakValueIdentityDictionary722499 -Node: WeakValueLookupTable723057 -Node: WeakValueLookupTable class-hacks723723 -Node: WeakValueLookupTable-hacks724037 -Node: WeakValueLookupTable-rehashing724651 -Node: WordArray724890 -Node: WriteStream725208 -Node: WriteStream class-instance creation725746 -Node: WriteStream-accessing726432 -Node: WriteStream-accessing-writing726702 -Node: WriteStream-positioning727383 -Node: ZeroDivide727609 -Node: ZeroDivide class-instance creation728114 -Node: ZeroDivide-accessing728510 -Node: ZeroDivide-description728779 -Node: Class index729010 -Node: Method index748113 -Node: Cross-reference1181244 +Node: Top1023 +Node: Base classes2291 +Node: AbstractNamespace12152 +Node: AbstractNamespace class-instance creation12907 +Node: AbstractNamespace-accessing13346 +Node: AbstractNamespace-basic & copying14584 +Node: AbstractNamespace-copying15138 +Node: AbstractNamespace-namespace hierarchy15594 +Node: AbstractNamespace-overrides for superspaces18391 +Node: AbstractNamespace-printing20121 +Node: AbstractNamespace-testing20706 +Node: AlternativeObjectProxy20957 +Node: AlternativeObjectProxy class-instance creation21699 +Node: AlternativeObjectProxy-accessing22644 +Node: ArithmeticError23208 +Node: ArithmeticError-description23667 +Node: Array23885 +Node: Array-mutating objects24524 +Node: Array-printing24836 +Node: Array-testing25067 +Node: ArrayedCollection25220 +Node: ArrayedCollection class-instance creation26017 +Node: ArrayedCollection-basic27305 +Node: ArrayedCollection-built ins28443 +Node: ArrayedCollection-copying Collections28719 +Node: ArrayedCollection-enumerating the elements of a collection30484 +Node: ArrayedCollection-storing31643 +Node: Association31940 +Node: Association class-basic32625 +Node: Association-accessing32876 +Node: Association-finalization33496 +Node: Association-printing33729 +Node: Association-storing33989 +Node: Association-testing34255 +Node: Autoload34612 +Node: Autoload class-instance creation35290 +Node: Autoload-accessing35806 +Node: AutoloadClass36146 +Node: AutoloadClass-accessing36679 +Node: Bag37647 +Node: Bag class-basic38360 +Node: Bag-adding38629 +Node: Bag-enumerating the elements of a collection39122 +Node: Bag-extracting items39492 +Node: Bag-printing39784 +Node: Bag-removing40001 +Node: Bag-storing40323 +Node: Bag-testing collections40553 +Node: Behavior41051 +Node: Behavior-accessing class hierarchy42650 +Node: Behavior-accessing instances and variables43391 +Node: Behavior-accessing the methodDictionary44692 +Node: Behavior-built ins45959 +Node: Behavior-compilation (alternative)48162 +Node: Behavior-compiling methods48997 +Node: Behavior-creating a class hierarchy49472 +Node: Behavior-enumerating49923 +Node: Behavior-evaluating50991 +Node: Behavior-instance creation52296 +Node: Behavior-instance variables53092 +Node: Behavior-method dictionary53540 +Node: Behavior-pluggable behavior (not yet implemented)57159 +Node: Behavior-printing hierarchy58299 +Node: Behavior-support for lightweight classes58909 +Node: Behavior-testing functionality60101 +Node: Behavior-testing the class hierarchy60386 +Node: Behavior-testing the form of the instances60980 +Node: Behavior-testing the method dictionary61831 +Node: BindingDictionary63234 +Node: BindingDictionary-accessing64091 +Node: BindingDictionary-copying65987 +Node: BindingDictionary-forward declarations66662 +Node: BindingDictionary-printing67100 +Node: BindingDictionary-testing67508 +Node: BlockClosure67737 +Node: BlockClosure class-instance creation68970 +Node: BlockClosure class-testing69949 +Node: BlockClosure-accessing70257 +Node: BlockClosure-built ins71859 +Node: BlockClosure-control structures72509 +Node: BlockClosure-exception handling73190 +Node: BlockClosure-multiple process75206 +Node: BlockClosure-overriding76663 +Node: BlockClosure-testing76945 +Node: BlockClosure-unwind protection77219 +Node: BlockContext78704 +Node: BlockContext-accessing79533 +Node: BlockContext-debugging81060 +Node: BlockContext-printing81479 +Node: Boolean81718 +Node: Boolean class-testing82479 +Node: Boolean-basic82796 +Node: Boolean-C hacks84092 +Node: Boolean-overriding84354 +Node: Boolean-storing84597 +Node: ByteArray84826 +Node: ByteArray class-instance creation85424 +Node: ByteArray-built ins85760 +Node: ByteArray-converting87099 +Node: ByteArray-more advanced accessing87558 +Node: ByteStream94166 +Node: ByteStream-basic94555 +Node: CAggregate96427 +Node: CAggregate class-accessing96732 +Node: CAggregate-accessing97022 +Node: CallinProcess97260 +Node: CArray97788 +Node: CArray-accessing98041 +Node: CArrayCType98248 +Node: CArrayCType class-instance creation98559 +Node: CArrayCType-accessing99193 +Node: CBoolean99571 +Node: CBoolean-accessing99878 +Node: CByte100209 +Node: CByte class-conversion100601 +Node: CByte-accessing100934 +Node: CChar101386 +Node: CChar class-accessing101690 +Node: CChar-accessing102054 +Node: CChar-conversion102396 +Node: CCompound102797 +Node: CCompound class-instance creation103149 +Node: CCompound class-subclass creation103522 +Node: CCompound-instance creation105626 +Node: CDouble105979 +Node: CDouble class-accessing106261 +Node: CDouble-accessing106635 +Node: CFloat106962 +Node: CFloat class-accessing107250 +Node: CFloat-accessing107619 +Node: CFunctionDescriptor107941 +Node: CFunctionDescriptor class-instance creation108726 +Node: CFunctionDescriptor class-testing109088 +Node: CFunctionDescriptor-accessing109599 +Node: CFunctionDescriptor-calling110231 +Node: CFunctionDescriptor-printing112129 +Node: Character112402 +Node: Character class-built ins113705 +Node: Character class-constants114359 +Node: Character class-initializing lookup tables115167 +Node: Character class-instance creation115817 +Node: Character class-testing116189 +Node: Character-built ins116479 +Node: Character-coercion methods117268 +Node: Character-comparing117972 +Node: Character-converting118619 +Node: Character-printing119008 +Node: Character-storing119398 +Node: Character-testing119653 +Node: Character-testing functionality120541 +Node: CharacterArray120789 +Node: CharacterArray class-basic121472 +Node: CharacterArray-built ins121943 +Node: CharacterArray-comparing122378 +Node: CharacterArray-converting124681 +Node: CharacterArray-multibyte encodings126223 +Node: CharacterArray-string processing126676 +Node: CharacterArray-testing functionality129600 +Node: CInt129860 +Node: CInt class-accessing130131 +Node: CInt-accessing130470 +Node: Class130802 +Node: Class class-initialize131755 +Node: Class-accessing instances and variables132002 +Node: Class-filing133684 +Node: Class-instance creation134195 +Node: Class-instance creation - alternative137009 +Node: Class-pragmas139187 +Node: Class-printing139469 +Node: Class-saving and loading139866 +Node: Class-security141275 +Node: Class-testing141559 +Node: Class-testing functionality141804 +Node: ClassDescription142037 +Node: ClassDescription-compiling142709 +Node: ClassDescription-conversion143551 +Node: ClassDescription-copying144018 +Node: ClassDescription-filing145229 +Node: ClassDescription-organization of messages and classes146141 +Node: ClassDescription-printing147577 +Node: CLong148340 +Node: CLong class-accessing148624 +Node: CLong-accessing148988 +Node: CLongDouble149305 +Node: CLongDouble class-accessing149604 +Node: CLongDouble-accessing149998 +Node: CObject150345 +Node: CObject class-conversion151211 +Node: CObject class-instance creation151568 +Node: CObject-accessing152180 +Node: CObject-C data access152629 +Node: CObject-conversion153247 +Node: CObject-finalization153994 +Node: CObject-pointer-like behavior154472 +Node: Collection156746 +Node: Collection class-instance creation157683 +Node: Collection-adding158864 +Node: Collection-converting159225 +Node: Collection-copying Collections160496 +Node: Collection-enumeration161048 +Node: Collection-finalization164087 +Node: Collection-printing164406 +Node: Collection-removing164763 +Node: Collection-storing165717 +Node: Collection-testing collections165988 +Node: CompiledBlock166752 +Node: CompiledBlock class-instance creation167260 +Node: CompiledBlock-accessing168029 +Node: CompiledBlock-basic169102 +Node: CompiledBlock-printing169825 +Node: CompiledBlock-saving and loading170106 +Node: CompiledCode170541 +Node: CompiledCode class-cache flushing171404 +Node: CompiledCode class-instance creation171774 +Node: CompiledCode class-tables172373 +Node: CompiledCode-accessing173422 +Node: CompiledCode-basic174873 +Node: CompiledCode-copying175638 +Node: CompiledCode-debugging175877 +Node: CompiledCode-decoding bytecodes176150 +Node: CompiledCode-literals - iteration176575 +Node: CompiledCode-security177006 +Node: CompiledCode-testing accesses177338 +Node: CompiledCode-translation178505 +Node: CompiledMethod178779 +Node: CompiledMethod class-instance creation179692 +Node: CompiledMethod class-lean images180573 +Node: CompiledMethod-accessing180908 +Node: CompiledMethod-attributes182294 +Node: CompiledMethod-basic183250 +Node: CompiledMethod-c call-outs184032 +Node: CompiledMethod-invoking184475 +Node: CompiledMethod-printing185524 +Node: CompiledMethod-saving and loading185882 +Node: CompiledMethod-testing186346 +Node: ContextPart186946 +Node: ContextPart class-built ins187815 +Node: ContextPart class-exception handling188130 +Node: ContextPart-accessing189126 +Node: ContextPart-built ins192469 +Node: ContextPart-copying193169 +Node: ContextPart-debugging193529 +Node: ContextPart-enumerating194068 +Node: ContextPart-exception handling194686 +Node: ContextPart-printing194962 +Node: ContextPart-security checks195375 +Node: CoreException195996 +Node: CoreException class-instance creation197272 +Node: CoreException-accessing197542 +Node: CoreException-basic198490 +Node: CoreException-enumerating198759 +Node: CoreException-exception handling199431 +Node: CoreException-instance creation200096 +Node: CPtr200412 +Node: CPtr-accessing200655 +Node: CPtrCType201204 +Node: CPtrCType class-instance creation201498 +Node: CPtrCType-accessing201797 +Node: CScalar202272 +Node: CScalar class-instance creation202568 +Node: CScalar-accessing203041 +Node: CScalarCType203570 +Node: CScalarCType-accessing203868 +Node: CScalarCType-storing204210 +Node: CShort204446 +Node: CShort class-accessing204730 +Node: CShort-accessing205099 +Node: CSmalltalk205421 +Node: CSmalltalk class-accessing205716 +Node: CSmalltalk-accessing206105 +Node: CString206447 +Node: CString class-instance creation207458 +Node: CString-accessing207931 +Node: CStringCType208460 +Node: CStringCType-accessing208729 +Node: CStruct208944 +Node: CStruct class-subclass creation209204 +Node: CType209452 +Node: CType class-C instance creation210576 +Node: CType-accessing210846 +Node: CType-C instance creation211703 +Node: CType-storing212228 +Node: CUChar212439 +Node: CUChar class-getting info212714 +Node: CUChar-accessing213092 +Node: CUInt213417 +Node: CUInt class-accessing213686 +Node: CUInt-accessing214050 +Node: CULong214367 +Node: CULong class-accessing214640 +Node: CULong-accessing215009 +Node: CUnion215331 +Node: CUnion class-subclass creation215583 +Node: CUShort215827 +Node: CUShort class-accessing216104 +Node: CUShort-accessing216478 +Node: Date216805 +Node: Date class-basic218277 +Node: Date class-instance creation (ANSI)219405 +Node: Date class-instance creation (Blue Book)219895 +Node: Date-basic221215 +Node: Date-compatibility (non-ANSI)221689 +Node: Date-date computations222102 +Node: Date-printing223813 +Node: Date-storing224041 +Node: Date-testing224264 +Node: DateTime224583 +Node: DateTime class-information225227 +Node: DateTime class-instance creation225518 +Node: DateTime class-instance creation (non-ANSI)226819 +Node: DateTime-basic227321 +Node: DateTime-computations227668 +Node: DateTime-printing228360 +Node: DateTime-splitting in dates & times228626 +Node: DateTime-storing229225 +Node: DateTime-testing229490 +Node: DateTime-time zones229865 +Node: Delay230995 +Node: Delay class-general inquiries231768 +Node: Delay class-initialization232041 +Node: Delay class-instance creation232337 +Node: Delay-accessing232840 +Node: Delay-comparing233094 +Node: Delay-process delay233380 +Node: DelayedAdaptor233616 +Node: DelayedAdaptor-accessing234152 +Node: Dictionary234531 +Node: Dictionary class-instance creation235739 +Node: Dictionary-accessing235993 +Node: Dictionary-awful ST-80 compatibility hacks237890 +Node: Dictionary-dictionary enumerating238353 +Node: Dictionary-dictionary removing239441 +Node: Dictionary-dictionary testing240310 +Node: Dictionary-polymorphism hacks240984 +Node: Dictionary-printing241269 +Node: Dictionary-rehashing241633 +Node: Dictionary-storing241850 +Node: Dictionary-testing242112 +Node: DirectedMessage242388 +Node: DirectedMessage class-creating instances242964 +Node: DirectedMessage-accessing243397 +Node: DirectedMessage-basic243705 +Node: DirectedMessage-multiple process244129 +Node: DirectedMessage-saving and loading244727 +Node: Directory245165 +Node: Directory class-C call-outs245946 +Node: Directory class-file name management246182 +Node: Directory class-file operations246757 +Node: Directory class-reading system defaults247241 +Node: Directory-accessing248203 +Node: Directory-enumerating249304 +Node: DLD250279 +Node: DLD class-C call-outs250959 +Node: DLD class-dynamic linking251274 +Node: DumperProxy252620 +Node: DumperProxy class-accessing253156 +Node: DumperProxy class-instance creation253621 +Node: DumperProxy-saving and restoring254126 +Node: Duration254541 +Node: Duration class-instance creation254952 +Node: Duration class-instance creation (non ANSI)255452 +Node: Duration-arithmetics255931 +Node: Error257119 +Node: Error-exception description257444 +Node: Exception257785 +Node: Exception class-comparison258923 +Node: Exception class-creating ExceptionCollections259387 +Node: Exception class-initialization259811 +Node: Exception class-instance creation260193 +Node: Exception class-interoperability with TrappableEvents260777 +Node: Exception-comparison261251 +Node: Exception-exception description261699 +Node: Exception-exception signaling262142 +Node: ExceptionSet262535 +Node: ExceptionSet class-instance creation263110 +Node: ExceptionSet-enumerating263375 +Node: False263939 +Node: False-basic264338 +Node: False-C hacks265332 +Node: False-printing265512 +Node: File265713 +Node: File class-C functions266576 +Node: File class-file name management266812 +Node: File class-file operations268273 +Node: File class-instance creation269204 +Node: File class-reading system defaults269706 +Node: File class-testing269993 +Node: File-accessing270645 +Node: File-file name management272185 +Node: File-file operations272971 +Node: File-printing274623 +Node: File-testing274927 +Node: FileDescriptor275987 +Node: FileDescriptor class-initialization277148 +Node: FileDescriptor class-instance creation277486 +Node: FileDescriptor-accessing283520 +Node: FileDescriptor-basic284680 +Node: FileDescriptor-built ins286131 +Node: FileDescriptor-class type methods287647 +Node: FileDescriptor-initialize-release288077 +Node: FileDescriptor-low-level access288471 +Node: FileDescriptor-overriding inherited methods289699 +Node: FileDescriptor-printing290833 +Node: FileDescriptor-testing291133 +Node: FileSegment291357 +Node: FileSegment class-basic291976 +Node: FileSegment class-installing292333 +Node: FileSegment-basic292719 +Node: FileSegment-equality293718 +Node: FileStream294001 +Node: FileStream class-file-in294680 +Node: FileStream class-standard streams298217 +Node: FileStream-basic298957 +Node: FileStream-buffering299906 +Node: FileStream-overriding inherited methods301138 +Node: FileStream-testing302076 +Node: Float302298 +Node: Float class-byte-order dependancies303181 +Node: Float class-characterization303461 +Node: Float-arithmetic304483 +Node: Float-basic304893 +Node: Float-built ins305088 +Node: Float-coercing306029 +Node: Float-comparing306534 +Node: Float-printing307184 +Node: Float-storing307409 +Node: Float-testing307630 +Node: Float-testing functionality308399 +Node: Float-transcendental operations308637 +Node: FloatD309101 +Node: FloatD class-byte-order dependancies309606 +Node: FloatD class-characterization309891 +Node: FloatD class-converting311165 +Node: FloatD-built ins311421 +Node: FloatD-coercing312658 +Node: FloatE313061 +Node: FloatE class-byte-order dependancies313566 +Node: FloatE class-characterization313851 +Node: FloatE class-converting315413 +Node: FloatE-built ins315669 +Node: FloatE-coercing316906 +Node: FloatQ317309 +Node: FloatQ class-byte-order dependancies317822 +Node: FloatQ class-characterization318107 +Node: FloatQ class-converting319669 +Node: FloatQ-built ins319925 +Node: FloatQ-coercing321162 +Node: Fraction321565 +Node: Fraction class-converting322319 +Node: Fraction class-instance creation322563 +Node: Fraction-accessing322948 +Node: Fraction-arithmetic323238 +Node: Fraction-coercing323962 +Node: Fraction-comparing324601 +Node: Fraction-converting325103 +Node: Fraction-optimized cases325604 +Node: Fraction-printing326038 +Node: Fraction-testing326368 +Node: Getopt326575 +Node: Getopt class-instance creation326940 +Node: Halt329579 +Node: Halt-description329873 +Node: HashedCollection330124 +Node: HashedCollection class-instance creation330985 +Node: HashedCollection-accessing331496 +Node: HashedCollection-builtins332076 +Node: HashedCollection-copying332853 +Node: HashedCollection-enumerating the elements of a collection333331 +Node: HashedCollection-rehashing333707 +Node: HashedCollection-removing333993 +Node: HashedCollection-saving and loading334400 +Node: HashedCollection-storing334914 +Node: HashedCollection-testing collections335241 +Node: HomedAssociation336188 +Node: HomedAssociation class-basic336758 +Node: HomedAssociation-accessing337060 +Node: HomedAssociation-finalization337426 +Node: HomedAssociation-storing338046 +Node: IdentityDictionary338315 +Node: IdentitySet338708 +Node: IdentitySet-testing339107 +Node: Integer339368 +Node: Integer class-converting340197 +Node: Integer-accessing340558 +Node: Integer-basic340797 +Node: Integer-bit operators341007 +Node: Integer-converting342375 +Node: Integer-extension343101 +Node: Integer-iterators343414 +Node: Integer-math methods343780 +Node: Integer-printing344681 +Node: Integer-storing345740 +Node: Integer-testing functionality346067 +Node: Interval346341 +Node: Interval class-instance creation346937 +Node: Interval-basic347539 +Node: Interval-printing348189 +Node: Interval-storing348514 +Node: Interval-testing348761 +Node: LargeArray349032 +Node: LargeArray-overridden349435 +Node: LargeArrayedCollection349627 +Node: LargeArrayedCollection class-instance creation350170 +Node: LargeArrayedCollection-accessing350529 +Node: LargeArrayedCollection-basic351033 +Node: LargeArraySubpart351434 +Node: LargeArraySubpart class-instance creation352313 +Node: LargeArraySubpart-accessing352722 +Node: LargeArraySubpart-comparing353677 +Node: LargeArraySubpart-modifying354699 +Node: LargeByteArray355461 +Node: LargeByteArray-overridden355884 +Node: LargeInteger356325 +Node: LargeInteger-accessing357160 +Node: LargeInteger-arithmetic357399 +Node: LargeInteger-bit operations358413 +Node: LargeInteger-built-ins359088 +Node: LargeInteger-coercion360167 +Node: LargeInteger-disabled360603 +Node: LargeInteger-primitive operations360978 +Node: LargeInteger-testing361458 +Node: LargeNegativeInteger362102 +Node: LargeNegativeInteger-converting362804 +Node: LargeNegativeInteger-numeric testing363192 +Node: LargeNegativeInteger-reverting to LargePositiveInteger363727 +Node: LargePositiveInteger364299 +Node: LargePositiveInteger-arithmetic365176 +Node: LargePositiveInteger-converting365652 +Node: LargePositiveInteger-helper byte-level methods366206 +Node: LargePositiveInteger-numeric testing367943 +Node: LargePositiveInteger-primitive operations368479 +Node: LargeWordArray369173 +Node: LargeWordArray-overridden369603 +Node: LargeZeroInteger369902 +Node: LargeZeroInteger-accessing370730 +Node: LargeZeroInteger-arithmetic370995 +Node: LargeZeroInteger-numeric testing371925 +Node: LargeZeroInteger-printing372262 +Node: Link372560 +Node: Link class-instance creation373105 +Node: Link-basic373337 +Node: Link-iteration373590 +Node: LinkedList374051 +Node: LinkedList-accessing374659 +Node: LinkedList-adding374975 +Node: LinkedList-enumerating375708 +Node: LinkedList-testing376188 +Node: LookupKey376544 +Node: LookupKey class-basic377098 +Node: LookupKey-accessing377340 +Node: LookupKey-printing377605 +Node: LookupKey-storing377852 +Node: LookupKey-testing378108 +Node: LookupTable378542 +Node: LookupTable class-instance creation379453 +Node: LookupTable-accessing379754 +Node: LookupTable-copying380559 +Node: LookupTable-enumerating380879 +Node: LookupTable-hashing381402 +Node: LookupTable-rehashing381643 +Node: LookupTable-removing381868 +Node: LookupTable-storing382370 +Node: Magnitude382609 +Node: Magnitude-basic383065 +Node: Magnitude-misc methods383637 +Node: MappedCollection384053 +Node: MappedCollection class-instance creation385428 +Node: MappedCollection-basic385881 +Node: Memory387476 +Node: Memory class-accessing388036 +Node: Message392046 +Node: Message class-creating instances392722 +Node: Message-accessing393014 +Node: Message-basic393456 +Node: Message-printing393755 +Node: MessageNotUnderstood394087 +Node: MessageNotUnderstood-accessing394581 +Node: MessageNotUnderstood-description394920 +Node: Metaclass395201 +Node: Metaclass class-instance creation396200 +Node: Metaclass-accessing396485 +Node: Metaclass-basic396931 +Node: Metaclass-delegation398212 +Node: Metaclass-filing399659 +Node: Metaclass-printing399950 +Node: Metaclass-testing functionality400505 +Node: MethodContext400766 +Node: MethodContext-accessing401308 +Node: MethodContext-debugging402618 +Node: MethodContext-printing403400 +Node: MethodDictionary403646 +Node: MethodDictionary-adding404177 +Node: MethodDictionary-rehashing404426 +Node: MethodDictionary-removing404680 +Node: MethodInfo405092 +Node: MethodInfo-accessing405578 +Node: MethodInfo-equality406523 +Node: Namespace406816 +Node: Namespace class-accessing407424 +Node: Namespace class-disabling instance creation407827 +Node: Namespace class-initialization408223 +Node: Namespace-accessing408660 +Node: Namespace-namespace hierarchy408949 +Node: Namespace-overrides for superspaces409447 +Node: Namespace-printing411244 +Node: NetClients.URIResolver411748 +Node: NetClients.URIResolver class-api412203 +Node: NetClients.URIResolver class-instance creation413353 +Node: NetClients.URL413730 +Node: NetClients.URL class-encoding URLs414451 +Node: NetClients.URL class-instance creation414956 +Node: NetClients.URL-accessing415781 +Node: NetClients.URL-comparing418506 +Node: NetClients.URL-copying419032 +Node: NetClients.URL-initialize-release419569 +Node: NetClients.URL-printing419868 +Node: NetClients.URL-testing420162 +Node: NetClients.URL-utilities420938 +Node: Notification421248 +Node: Notification-exception description421701 +Node: NullProxy422163 +Node: NullProxy class-instance creation422775 +Node: NullProxy-accessing423046 +Node: NullValueHolder423298 +Node: NullValueHolder class-creating instances423887 +Node: NullValueHolder-accessing424169 +Node: Number424517 +Node: Number class-converting425413 +Node: Number class-testing425873 +Node: Number-arithmetic426141 +Node: Number-comparing427474 +Node: Number-converting428027 +Node: Number-copying429374 +Node: Number-error raising429689 +Node: Number-misc math430060 +Node: Number-point creation431869 +Node: Number-retrying432164 +Node: Number-shortcuts and iterators433969 +Node: Number-testing434836 +Node: Number-truncation and round off436272 +Node: Object437087 +Node: Object class-initialization438043 +Node: Object-built ins438735 +Node: Object-change and update447445 +Node: Object-class type methods448652 +Node: Object-conversion449471 +Node: Object-copying449718 +Node: Object-debugging450382 +Node: Object-dependents access450711 +Node: Object-error raising451415 +Node: Object-finalization452102 +Node: Object-printing453095 +Node: Object-relational operators454840 +Node: Object-saving and loading455204 +Node: Object-storing456207 +Node: Object-syntax shortcuts456814 +Node: Object-testing functionality457141 +Node: Object-VM callbacks458709 +Node: ObjectDumper459194 +Node: ObjectDumper class-establishing proxy classes460399 +Node: ObjectDumper class-instance creation461248 +Node: ObjectDumper class-shortcuts461661 +Node: ObjectDumper class-testing462055 +Node: ObjectDumper-accessing462499 +Node: ObjectDumper-loading/dumping objects463007 +Node: ObjectDumper-stream interface463447 +Node: ObjectMemory463829 +Node: ObjectMemory class-accessing464914 +Node: ObjectMemory class-builtins465181 +Node: ObjectMemory class-initialization468528 +Node: ObjectMemory class-saving the image468858 +Node: ObjectMemory-accessing469186 +Node: ObjectMemory-builtins474140 +Node: ObjectMemory-derived information474425 +Node: OrderedCollection475412 +Node: OrderedCollection class-instance creation476134 +Node: OrderedCollection-accessing476492 +Node: OrderedCollection-adding476959 +Node: OrderedCollection-removing479023 +Node: Package479678 +Node: Package-accessing480095 +Node: PackageLoader483753 +Node: PackageLoader class-accessing484317 +Node: PackageLoader class-loading486986 +Node: PackageLoader class-testing487996 +Node: Permission488287 +Node: Permission class-testing488756 +Node: Permission-accessing489506 +Node: Permission-testing490084 +Node: PluggableAdaptor490334 +Node: PluggableAdaptor class-creating instances490971 +Node: PluggableAdaptor-accessing492067 +Node: PluggableProxy492368 +Node: PluggableProxy class-accessing493006 +Node: PluggableProxy-saving and restoring493456 +Node: Point493891 +Node: Point class-instance creation494630 +Node: Point-accessing494943 +Node: Point-arithmetic495377 +Node: Point-comparing496096 +Node: Point-converting496909 +Node: Point-point functions497428 +Node: Point-printing498376 +Node: Point-storing498610 +Node: Point-truncation and round off498858 +Node: PositionableStream499270 +Node: PositionableStream class-instance creation500189 +Node: PositionableStream-accessing-reading500714 +Node: PositionableStream-class type methods502089 +Node: PositionableStream-positioning502626 +Node: PositionableStream-testing503866 +Node: PositionableStream-truncating504348 +Node: Process504648 +Node: Process-accessing505228 +Node: Process-basic506742 +Node: Process-builtins508423 +Node: Process-printing509233 +Node: ProcessorScheduler509447 +Node: ProcessorScheduler class-instance creation510126 +Node: ProcessorScheduler-basic510440 +Node: ProcessorScheduler-built ins512022 +Node: ProcessorScheduler-idle tasks512724 +Node: ProcessorScheduler-printing513228 +Node: ProcessorScheduler-priorities513547 +Node: ProcessorScheduler-storing515213 +Node: ProcessorScheduler-timed invocation515554 +Node: Promise516125 +Node: Promise class-creating instances516709 +Node: Promise-accessing516972 +Node: Promise-initializing517312 +Node: Promise-printing517556 +Node: Random517763 +Node: Random class-instance creation518224 +Node: Random class-shortcuts518606 +Node: Random-basic518939 +Node: Random-testing519369 +Node: ReadStream519695 +Node: ReadStream class-instance creation520102 +Node: ReadWriteStream520522 +Node: ReadWriteStream class-instance creation521020 +Node: ReadWriteStream-positioning521658 +Node: Rectangle521977 +Node: Rectangle class-instance creation522778 +Node: Rectangle-accessing523336 +Node: Rectangle-copying525750 +Node: Rectangle-printing525984 +Node: Rectangle-rectangle functions526326 +Node: Rectangle-testing528229 +Node: Rectangle-transforming529059 +Node: Rectangle-truncation and round off529699 +Node: RecursionLock530004 +Node: RecursionLock class-instance creation530408 +Node: RecursionLock-accessing530658 +Node: RecursionLock-mutual exclusion531271 +Node: RecursionLock-printing531646 +Node: Regex531912 +Node: Regex class-instance creation532990 +Node: Regex-basic533229 +Node: Regex-conversion533651 +Node: Regex-printing533957 +Node: RegexResults534617 +Node: RegexResults-accessing535235 +Node: RegexResults-testing536748 +Node: RootNamespace537780 +Node: RootNamespace class-instance creation538340 +Node: RootNamespace-namespace hierarchy538689 +Node: RootNamespace-overrides for superspaces539136 +Node: RootNamespace-printing539767 +Node: RunArray540291 +Node: RunArray class-instance creation541264 +Node: RunArray-accessing541552 +Node: RunArray-adding541902 +Node: RunArray-basic542992 +Node: RunArray-copying543313 +Node: RunArray-enumerating543685 +Node: RunArray-removing544161 +Node: RunArray-searching544642 +Node: RunArray-testing545072 +Node: ScaledDecimal545331 +Node: ScaledDecimal class-constants546152 +Node: ScaledDecimal class-instance creation546418 +Node: ScaledDecimal-arithmetic546871 +Node: ScaledDecimal-coercion547606 +Node: ScaledDecimal-comparing548527 +Node: ScaledDecimal-constants549179 +Node: ScaledDecimal-printing549497 +Node: ScaledDecimal-storing549973 +Node: SecurityPolicy550227 +Node: SecurityPolicy-modifying550815 +Node: SecurityPolicy-querying551167 +Node: Semaphore551426 +Node: Semaphore class-instance creation552102 +Node: Semaphore-accessing552491 +Node: Semaphore-builtins552991 +Node: Semaphore-mutual exclusion554370 +Node: Semaphore-printing554720 +Node: SequenceableCollection554966 +Node: SequenceableCollection class-instance creation555733 +Node: SequenceableCollection-basic556164 +Node: SequenceableCollection-concatenating560269 +Node: SequenceableCollection-copying SequenceableCollections560923 +Node: SequenceableCollection-enumerating563218 +Node: SequenceableCollection-replacing items566845 +Node: SequenceableCollection-testing567808 +Node: Set568367 +Node: Set-arithmetic568799 +Node: Set-awful ST-80 compatibility hacks569144 +Node: Set-comparing569521 +Node: SharedQueue569932 +Node: SharedQueue class-instance creation570466 +Node: SharedQueue-accessing570851 +Node: Signal571369 +Node: Signal-accessing572006 +Node: Signal-exception handling572872 +Node: SingletonProxy575438 +Node: SingletonProxy class-accessing576054 +Node: SingletonProxy class-instance creation576435 +Node: SingletonProxy-saving and restoring576892 +Node: SmallInteger577335 +Node: SmallInteger class-getting limits578034 +Node: SmallInteger class-testing578536 +Node: SmallInteger-bit arithmetic578848 +Node: SmallInteger-built ins579215 +Node: SmallInteger-builtins581536 +Node: SmallInteger-coercion methods582303 +Node: SmallInteger-testing functionality582675 +Node: SortedCollection582924 +Node: SortedCollection class-hacking584068 +Node: SortedCollection class-instance creation584353 +Node: SortedCollection-basic584882 +Node: SortedCollection-copying585443 +Node: SortedCollection-disabled585766 +Node: SortedCollection-enumerating586636 +Node: SortedCollection-saving and loading586982 +Node: SortedCollection-searching587344 +Node: Stream587947 +Node: Stream-accessing-reading588949 +Node: Stream-accessing-writing590758 +Node: Stream-basic591329 +Node: Stream-built ins591520 +Node: Stream-character writing592412 +Node: Stream-enumerating593202 +Node: Stream-filing out593584 +Node: Stream-filtering593944 +Node: Stream-polymorphism596115 +Node: Stream-positioning596519 +Node: Stream-printing597701 +Node: Stream-storing598456 +Node: Stream-testing598824 +Node: String599338 +Node: String class-instance creation600443 +Node: String-accessing600911 +Node: String-basic601306 +Node: String-built ins601711 +Node: String-C call-outs603575 +Node: String-converting603882 +Node: String-printing604363 +Node: String-regex605029 +Node: String-testing functionality610927 +Node: String-useful functionality611165 +Node: Symbol611469 +Node: Symbol class-built ins612307 +Node: Symbol class-instance creation612538 +Node: Symbol class-symbol table613693 +Node: Symbol-basic615118 +Node: Symbol-built ins615887 +Node: Symbol-converting616212 +Node: Symbol-misc616568 +Node: Symbol-storing616748 +Node: Symbol-testing617537 +Node: Symbol-testing functionality617821 +Node: SymLink618058 +Node: SymLink class-instance creation618619 +Node: SymLink-accessing618955 +Node: SymLink-iteration619306 +Node: SymLink-printing619537 +Node: SystemDictionary619753 +Node: SystemDictionary-basic620659 +Node: SystemDictionary-builtins620956 +Node: SystemDictionary-c call-outs622328 +Node: SystemDictionary-command-line622737 +Node: SystemDictionary-miscellaneous625428 +Node: SystemDictionary-printing625894 +Node: SystemDictionary-special accessing626329 +Node: SystemDictionary-testing626942 +Node: SystemExceptions.AlreadyDefined627167 +Node: SystemExceptions.AlreadyDefined-accessing627693 +Node: SystemExceptions.ArgumentOutOfRange627961 +Node: SystemExceptions.ArgumentOutOfRange class-signaling628561 +Node: SystemExceptions.ArgumentOutOfRange-accessing628983 +Node: SystemExceptions.BadReturn629577 +Node: SystemExceptions.BadReturn-accessing630067 +Node: SystemExceptions.CInterfaceError630327 +Node: SystemExceptions.CInterfaceError-accessing630838 +Node: SystemExceptions.EmptyCollection631122 +Node: SystemExceptions.EmptyCollection-accessing631619 +Node: SystemExceptions.EndOfStream631903 +Node: SystemExceptions.EndOfStream class-signaling632404 +Node: SystemExceptions.EndOfStream-accessing632760 +Node: SystemExceptions.FileError633196 +Node: SystemExceptions.FileError-accessing633685 +Node: SystemExceptions.IndexOutOfRange633945 +Node: SystemExceptions.IndexOutOfRange class-signaling634541 +Node: SystemExceptions.IndexOutOfRange-accessing634923 +Node: SystemExceptions.InvalidArgument635453 +Node: SystemExceptions.InvalidArgument-accessing635960 +Node: SystemExceptions.InvalidProcessState636233 +Node: SystemExceptions.InvalidProcessState-accessing636774 +Node: SystemExceptions.InvalidSize637074 +Node: SystemExceptions.InvalidSize-accessing637551 +Node: SystemExceptions.InvalidValue637819 +Node: SystemExceptions.InvalidValue class-signaling638356 +Node: SystemExceptions.InvalidValue-accessing638821 +Node: SystemExceptions.MustBeBoolean639328 +Node: SystemExceptions.MustBeBoolean class-signaling639819 +Node: SystemExceptions.MutationError640088 +Node: SystemExceptions.MutationError-accessing640559 +Node: SystemExceptions.NoRunnableProcess640835 +Node: SystemExceptions.NoRunnableProcess-accessing641341 +Node: SystemExceptions.NotEnoughElements641633 +Node: SystemExceptions.NotEnoughElements class-signaling642199 +Node: SystemExceptions.NotEnoughElements-accessing642584 +Node: SystemExceptions.NotFound643136 +Node: SystemExceptions.NotFound class-accessing643662 +Node: SystemExceptions.NotFound-accessing644053 +Node: SystemExceptions.NotImplemented644359 +Node: SystemExceptions.NotImplemented-accessing644827 +Node: SystemExceptions.NotIndexable645107 +Node: SystemExceptions.NotIndexable-accessing645580 +Node: SystemExceptions.NotYetImplemented645852 +Node: SystemExceptions.NotYetImplemented-accessing646374 +Node: SystemExceptions.PrimitiveFailed646666 +Node: SystemExceptions.PrimitiveFailed-accessing647161 +Node: SystemExceptions.ProcessBeingTerminated647445 +Node: SystemExceptions.ProcessBeingTerminated-accessing647892 +Node: SystemExceptions.ProcessTerminated648204 +Node: SystemExceptions.ProcessTerminated-accessing648739 +Node: SystemExceptions.ReadOnlyObject649031 +Node: SystemExceptions.ReadOnlyObject-accessing649517 +Node: SystemExceptions.SecurityError649797 +Node: SystemExceptions.SecurityError class-accessing650371 +Node: SystemExceptions.SecurityError-accessing650767 +Node: SystemExceptions.ShouldNotImplement651253 +Node: SystemExceptions.ShouldNotImplement-accessing651792 +Node: SystemExceptions.SubclassResponsibility652088 +Node: SystemExceptions.SubclassResponsibility-accessing652668 +Node: SystemExceptions.UserInterrupt652980 +Node: SystemExceptions.UserInterrupt-accessing653452 +Node: SystemExceptions.VerificationError653728 +Node: SystemExceptions.VerificationError-accessing654213 +Node: SystemExceptions.VMError654505 +Node: SystemExceptions.VMError-accessing654945 +Node: SystemExceptions.WrongArgumentCount655197 +Node: SystemExceptions.WrongArgumentCount-accessing655763 +Node: SystemExceptions.WrongClass656059 +Node: SystemExceptions.WrongClass class-signaling656687 +Node: SystemExceptions.WrongClass-accessing657359 +Node: SystemExceptions.WrongMessageSent658028 +Node: SystemExceptions.WrongMessageSent class-signaling658685 +Node: SystemExceptions.WrongMessageSent-accessing659118 +Node: TextCollector659723 +Node: TextCollector class-accessing660433 +Node: TextCollector-accessing660946 +Node: TextCollector-printing661761 +Node: TextCollector-set up662109 +Node: TextCollector-storing662688 +Node: Time663032 +Node: Time class-basic (UTC)663823 +Node: Time class-builtins664285 +Node: Time class-clocks665326 +Node: Time class-initialization665897 +Node: Time class-instance creation666257 +Node: Time-accessing (ANSI for DateAndTimes)667150 +Node: Time-accessing (non ANSI & for Durations)667682 +Node: Time-arithmetic668148 +Node: Time-comparing668590 +Node: TokenStream668891 +Node: TokenStream class-instance creation669711 +Node: TokenStream-basic670087 +Node: TokenStream-write methods670425 +Node: TrappableEvent670684 +Node: TrappableEvent-enumerating671272 +Node: TrappableEvent-instance creation671836 +Node: True672182 +Node: True-basic672572 +Node: True-C hacks673538 +Node: True-printing673714 +Node: UndefinedObject673912 +Node: UndefinedObject-basic674644 +Node: UndefinedObject-class creation674929 +Node: UndefinedObject-class creation - alternative677721 +Node: UndefinedObject-CObject interoperability680025 +Node: UndefinedObject-dependents access680463 +Node: UndefinedObject-printing680852 +Node: UndefinedObject-storing681346 +Node: UndefinedObject-testing681638 +Node: UnicodeCharacter682490 +Node: UnicodeCharacter class-built ins683082 +Node: UnicodeString683617 +Node: UnicodeString class-converting684196 +Node: UnicodeString class-multibyte encodings684574 +Node: UnicodeString-built-ins685012 +Node: UnicodeString-converting685285 +Node: UnicodeString-multibyte encodings686025 +Node: ValueAdaptor686533 +Node: ValueAdaptor class-creating instances687027 +Node: ValueAdaptor-accessing687331 +Node: ValueAdaptor-printing687754 +Node: ValueHolder687983 +Node: ValueHolder class-creating instances688610 +Node: ValueHolder-accessing689009 +Node: ValueHolder-initializing689318 +Node: VariableBinding689557 +Node: VariableBinding-printing690201 +Node: VariableBinding-saving and loading690532 +Node: VariableBinding-storing691005 +Node: VariableBinding-testing691309 +Node: VersionableObjectProxy691583 +Node: VersionableObjectProxy class-saving and restoring692491 +Node: VersionableObjectProxy-saving and restoring693531 +Node: VFS.ArchiveFileHandler693881 +Node: VFS.ArchiveFileHandler class-registering694810 +Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol695281 +Node: VFS.ArchiveFileHandler-directory operations696674 +Node: VFS.ArchiveFileHandler-file operations697532 +Node: VFS.ArchiveMemberHandler697835 +Node: VFS.ArchiveMemberHandler-accessing698575 +Node: VFS.ArchiveMemberHandler-directory operations699751 +Node: VFS.ArchiveMemberHandler-file operations700388 +Node: VFS.ArchiveMemberHandler-finalization701070 +Node: VFS.ArchiveMemberHandler-initializing701579 +Node: VFS.ArchiveMemberHandler-testing702129 +Node: VFS.DecodedFileHandler703031 +Node: VFS.DecodedFileHandler class-registering703584 +Node: VFS.DecodedFileHandler-files704747 +Node: VFS.ExternalArchiveFileHandler705458 +Node: VFS.ExternalArchiveFileHandler class-registering706301 +Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol707255 +Node: VFS.ExternalArchiveFileHandler-members708592 +Node: VFS.ExternalArchiveFileHandler-releasing709119 +Node: VFS.RealFileHandler709485 +Node: VFS.RealFileHandler class-C call-outs710240 +Node: VFS.RealFileHandler class-initialization710587 +Node: VFS.RealFileHandler-accessing710930 +Node: VFS.RealFileHandler-directory operations712311 +Node: VFS.RealFileHandler-file operations712823 +Node: VFS.RealFileHandler-testing713592 +Node: VFS.VFSHandler714228 +Node: VFS.VFSHandler class-initializing715013 +Node: VFS.VFSHandler class-instance creation715927 +Node: VFS.VFSHandler-accessing716286 +Node: VFS.VFSHandler-C call-outs717644 +Node: VFS.VFSHandler-directory operations718580 +Node: VFS.VFSHandler-file operations719185 +Node: VFS.VFSHandler-testing720328 +Node: Warning721250 +Node: Warning-exception description721581 +Node: WeakArray721801 +Node: WeakArray class-instance creation722306 +Node: WeakArray-accessing722646 +Node: WeakArray-conversion724310 +Node: WeakArray-loading724961 +Node: WeakIdentitySet725242 +Node: WeakIdentitySet-accessing725759 +Node: WeakKeyDictionary726049 +Node: WeakKeyDictionary-accessing726610 +Node: WeakKeyIdentityDictionary727127 +Node: WeakSet727667 +Node: WeakSet-accessing728135 +Node: WeakValueIdentityDictionary728709 +Node: WeakValueLookupTable729267 +Node: WeakValueLookupTable class-hacks729933 +Node: WeakValueLookupTable-hacks730247 +Node: WeakValueLookupTable-rehashing730861 +Node: WordArray731100 +Node: WriteStream731418 +Node: WriteStream class-instance creation731918 +Node: WriteStream-accessing-writing732612 +Node: WriteStream-positioning733307 +Node: ZeroDivide733533 +Node: ZeroDivide class-instance creation734038 +Node: ZeroDivide-accessing734434 +Node: ZeroDivide-description734703 +Node: Class index734934 +Node: Method index754037 +Node: Cross-reference1191766  End Tag Table diff -ru smalltalk-2.3.5/doc/gst-base.info-1 smalltalk-2.3.6/doc/gst-base.info-1 --- smalltalk-2.3.5/doc/gst-base.info-1 2007-06-02 17:48:26.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-base.info-1 2007-09-06 09:47:49.000000000 +0200 @@ -6,8 +6,8 @@ * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -35,8 +35,8 @@ This document describes the class libraries that are distributed together with the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -615,7 +615,8 @@ -------------------------------------------- addSubspace: aSymbol - Add aNamespace to the set of the receiver's subspaces + Create a namespace named aSymbol, add it to the receiver's + subspaces, and answer it. allSubassociationsDo: aBlock Invokes aBlock once for every association in each of the receiver's @@ -649,6 +650,9 @@ Answer whether aNamespace is one of the receiver's direct and indirect superspaces +removeSubspace: aSymbol + Remove my subspace named aSymbol from the hierarchy. + selectSubspaces: aBlock Return a Set of subspaces of the receiver satisfying aBlock. @@ -941,6 +945,10 @@ 1.5.1 ArrayedCollection class: instance creation ------------------------------------------------ +join: aCollection + Where aCollection is a collection of SequenceableCollections, + answer a new instance with all the elements therein, in order. + new: size withAll: anObject Answer a collection with the given size, whose elements are all set to anObject @@ -983,6 +991,11 @@ add: value This method should not be called for instances of this class. +atAll: keyCollection + Answer a collection of the same kind returned by #collect:, that + only includes the values at the given indices. Fail if any of the + values in keyCollection is out of bounds for the receiver. + copyFrom: start to: stop Answer a new collection containing all the items in the receiver from the start-th and to the stop-th @@ -1019,8 +1032,9 @@ copyReplaceFrom: start to: stop with: replacementCollection Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, - except for elements from index `start' to index `stop'. If start - < stop, these are replaced by the contents of the + except for elements from index `start' to index `stop'. + + If start < stop, these are replaced by the contents of the replacementCollection. Instead, If start = (stop + 1), like in `copyReplaceFrom: 4 to: 3 with: anArray', then every element of the receiver will be present in the answered copy; the operation @@ -1030,12 +1044,13 @@ copyReplaceFrom: start to: stop withObject: anObject Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, - except for elements from index `start' to index `stop'. If start - < stop, these are replaced by stop-start+1 copies of anObject. - Instead, If start = (stop + 1), then every element of the receiver - will be present in the answered copy; the operation will be an - append if stop is equal to the size of the receiver or, if it is - not, an insert before index `start'. + except for elements from index `start' to index `stop'. + + If start < stop, these are replaced by stop-start+1 copies of + anObject. Instead, If start = (stop + 1), then every element of + the receiver will be present in the answered copy; the operation + will be an append if stop is equal to the size of the receiver or, + if it is not, an insert before index `start'. reverse Answer the receivers' contents in reverse order @@ -1546,6 +1561,10 @@ Return the compiled method associated with selector, from the local method dictionary. Evaluate aBlock if not found. +lookupSelector: aSelector + Return the compiled method associated with selector, from the local + method dictionary or one of a superclass; return nil if not found. + selectorAt: method Return selector for the given compiledMethod @@ -2505,12 +2524,13 @@ Evaluate the receiver. Any errors caused by the block will cause a backtrace, but execution will continue in the method that sent #valueWithUnwind, after that call. Example: [ 1 / 0 ] - valueWithUnwind. 'unwind works!' printNl. Important: this method - is public, but it is intended to be used in very special cases (as - a rule of thumb, use it only when the corresponding C code uses - the _gst_prepare_execution_environment and - _gst_finish_execution_environment functions). You should usually - rely on #ensure: and #on:do:. + valueWithUnwind. 'unwind works!' printNl. + + Important: this method is public, but it is intended to be used in + very special cases (as a rule of thumb, use it only when the + corresponding C code uses the _gst_prepare_execution_environment + and _gst_finish_execution_environment functions). You should + usually rely on #ensure: and #on:do:.  @@ -3934,6 +3954,10 @@ isLowercase True if self is a lowercase letter +isPathSeparator + Returns true if self is a path separator ($/ or $\ under Windows, + $/ only under Unix systems including Mac OS X). + isPunctuation Returns true if self is one of '.,:;!?' @@ -4143,6 +4167,13 @@ 1.29.6 CharacterArray: string processing ---------------------------------------- +% anArray + Answer the receiver with every %n (1<=n<=9) replaced by the n-th + element of anArray. The replaced elements are `displayed' (i.e. + their displayString is used). In addition, the special pattern + %n is replaced with one of the two strings + depending on the n-th element of anArray being true or false. + bindWith: s1 Answer the receiver with every %1 replaced by the displayString of s1 @@ -4185,11 +4216,6 @@ backwards compatibility; the ANSI standard mandates `subStrings', with an uppercase s. -subStrings: aCharacter - Answer an OrderedCollection of substrings of the receiver. A new - substring start at the start of the receiver, or after every - sequence of characters matching aCharacter - substrings: aCharacter Answer an OrderedCollection of substrings of the receiver. A new substring start at the start of the receiver, or after every @@ -4197,6 +4223,11 @@ preserved for backwards compatibility; the ANSI standard mandates `subStrings:', with an uppercase s. +subStrings: aCharacter + Answer an OrderedCollection of substrings of the receiver. A new + substring start at the start of the receiver, or after every + sequence of characters matching aCharacter +  File: gst-base.info, Node: CharacterArray-testing functionality, Prev: CharacterArray-string processing, Up: CharacterArray @@ -5037,10 +5068,12 @@ or CObject `aValue'; if it is a CObject is dereferenced: that is, this method is equivalent either to cobj[anIndex]=aValue or cobj[anIndex]=*aValue. anIndex is zero-based, just like with all - other C-style accessing. In both cases, aValue should be of the - element type or of the corresponding Smalltalk type (that is, a - String is ok for an array of CStrings) to avoid typing problems - which however will not be signaled because C is untyped. + other C-style accessing. + + In both cases, aValue should be of the element type or of the + corresponding Smalltalk type (that is, a String is ok for an array + of CStrings) to avoid typing problems which however will not be + signaled because C is untyped. decr Adjust the pointer by sizeof(dereferencedType) bytes down (i.e. @@ -5093,6 +5126,10 @@ 1.36.1 Collection class: instance creation ------------------------------------------ +join: aCollection + Answer a collection formed by treating each element in aCollection + as a `withAll:' argument collection to be added to a new instance. + with: anObject Answer a collection whose only element is anObject @@ -5322,6 +5359,9 @@ Remove each object in aCollection, answer aCollection; if some element is absent, pass it to aBlock. +removeAllSuchThat: aBlock + Remove from the receiver all objects for which aBlock returns true. +  File: gst-base.info, Node: Collection-storing, Next: Collection-testing collections, Prev: Collection-removing, Up: Collection @@ -5558,13 +5598,16 @@ Return a ByteArray which defines some properties of the bytecodes. For each bytecode, 4 bytes are reserved. The fourth byte is a flag byte: bit 7 means that the argument is a line number to be - used in creating the bytecode->line number map. The first three - have a meaning only for those bytecodes that represent a - combination of operations: the combination can be BC1 ARG BC2 - OPERAND if the fourth byte's bit 0 = 0 or BC1 OPERAND BC2 - ARG if the fourth byte's bit 0 = 1 where BC1 is the first - byte, BC2 is the second, ARG is the third and OPERAND is the - bytecode argument as it appears in the bytecode stream. + used in creating the bytecode->line number map. + + The first three have a meaning only for those bytecodes that + represent a combination of operations: the combination can be BC1 + ARG BC2 OPERAND if the fourth byte's bit 0 = 0 or BC1 + OPERAND BC2 ARG if the fourth byte's bit 0 = 1 + + where BC1 is the first byte, BC2 is the second, ARG is the third + and OPERAND is the bytecode argument as it appears in the bytecode + stream. specialSelectors This method should not be called for instances of this class. @@ -5980,13 +6023,14 @@ hierarchy from the receiver's class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk virtual machine (and don't - blame anybody but yourself). If the flags field of the method - header is 6, this method instead provides a hook from which the - virtual machine can call back whenever execution of the method is - requested. In this case, invoking the method would cause an - infinite loop (the VM asks the method to run, the method asks the - VM to invoke it, and so on), so this method fails with a - #subclassResponsibility error. + blame anybody but yourself). + + If the flags field of the method header is 6, this method instead + provides a hook from which the virtual machine can call back + whenever execution of the method is requested. In this case, + invoking the method would cause an infinite loop (the VM asks the + method to run, the method asks the VM to invoke it, and so on), so + this method fails with a #subclassResponsibility error.  @@ -6233,10 +6277,12 @@ 1.40.5 ContextPart: copying --------------------------- +copyStack + Answer a copy of the entire stack. + deepCopy - Answer a shallow copy of the receiver - duplicating e.g. the - method and the instance variables that have been pushed is almost - surely not the right thing. + Answer a copy of the entire stack, but don't copy any of the other + instance variables of the context.  @@ -7791,6 +7837,11 @@ another object with that index. I use the equality operator = to determine equality of indices. + In almost all places where you would use a plain Dictionary, a + LookupTable would be more efficient; see LookupTable's comment + before you use it. I do have a couple of special features that + are useful in certain special cases. + * Menu: * Dictionary class-instance creation:: (class) @@ -7856,6 +7907,10 @@ at: key put: value Store value as associated to the given key +atAll: keyCollection + Answer a Dictionary that only includes the given keys. Fail if any + of them is not found + keyAtValue: value Answer the key associated to the given value, or nil if the value is not found @@ -8180,7 +8235,7 @@ Not commented. create: dirName - Create a directory named dirName. + Create a directory named dirName and answer it. working Not commented. @@ -8252,6 +8307,9 @@ Answer a String containing the path to a file named `aName' which resides in the directory represented by the receiver. +pathTo: destName + Compute the relative path from the receiver to destName. +  File: gst-base.info, Node: Directory-enumerating, Prev: Directory-accessing, Up: Directory @@ -8642,10 +8700,6 @@ Private - Answer the coreException which represents instances of the receiver -whenSignalledIn: onDoBlock do: handlerBlock exitBlock: exitBlock - Private - Create an ExceptionHandler from the arguments and - register it -  File: gst-base.info, Node: Exception-comparison, Next: Exception-exception description, Prev: Exception class-interoperability with TrappableEvents, Up: Exception @@ -8847,6 +8901,7 @@ * File-accessing:: (instance) * File-file name management:: (instance) * File-file operations:: (instance) +* File-printing:: (instance) * File-testing:: (instance)  @@ -8888,6 +8943,9 @@ final slash is stripped. If there is no path, evaluate aBlock and return the result. +pathFrom: srcName to: destName + Not commented. + stripExtensionFrom: aString Remove the extension from the name of a file called `aString', and answer the result. @@ -8921,6 +8979,13 @@ rename: oldFileName to: newFileName Rename the file with the given path name oldFileName to newFileName +symlink: srcName as: destName + Create a symlink for the srcName file with the given path name + +symlink: destName from: srcName + Create a symlink named destName file from the given path (relative + to destName) + touch: fileName Update the timestamp of the file with the given path name. @@ -9050,7 +9115,7 @@  -File: gst-base.info, Node: File-file operations, Next: File-testing, Prev: File-file name management, Up: File +File: gst-base.info, Node: File-file operations, Next: File-printing, Prev: File-file name management, Up: File 1.71.9 File: file operations ---------------------------- @@ -9075,6 +9140,10 @@ Open the receiver in the given mode (as answered by FileStream's class constant methods). Upon failure, evaluate aBlock. +pathFrom: dirName + Compute the relative path from the directory dirName to the + receiver + readStream Open a read-only FileStream on the receiver @@ -9084,17 +9153,44 @@ renameTo: newName Rename the file identified by the receiver to newName +symlinkAs: destName + Create destName as a symbolic link of the receiver. The + appropriate relative path is computed automatically. + +symlinkFrom: srcName + Create the receiver as a symbolic link from srcName (relative to + the path of the receiver). + touch Update the timestamp of the file corresponding to the receiver. +withReadStreamDo: aBlock + Not commented. + +withWriteStreamDo: aBlock + Not commented. + writeStream Open a write-only FileStream on the receiver  -File: gst-base.info, Node: File-testing, Prev: File-file operations, Up: File +File: gst-base.info, Node: File-printing, Next: File-testing, Prev: File-file operations, Up: File + +1.71.10 File: printing +---------------------- + +displayOn: aStream + Print a representation of the receiver on aStream. + +printOn: aStream + Print a representation of the receiver on aStream. + + + +File: gst-base.info, Node: File-testing, Prev: File-printing, Up: File -1.71.10 File: testing +1.71.11 File: testing --------------------- exists @@ -9228,6 +9324,7 @@ filesystem' path, including URLs and '#' suffixes that are inspected by the virtual filesystem layers and replaced with tasks such as un-gzipping a file or extracting a file from an archive. + The file will be automatically closed upon GC if the object is not referenced anymore, but it is better to close it as soon as you're finished with it anyway, using #close. To keep a file open even @@ -9241,11 +9338,12 @@ fileName can be a `virtual filesystem' path, including URLs and '#' suffixes that are inspected by the virtual filesystem layers and replaced with tasks such as un-gzipping a file or extracting a - file from an archive. The file will be automatically closed upon - GC if the object is not referenced anymore, but it is better to - close it as soon as you're finished with it anyway, using #close. - To keep a file open even when no references exist anymore, send it - #removeToBeFinalized + file from an archive. + + The file will be automatically closed upon GC if the object is not + referenced anymore, but it is better to close it as soon as you're + finished with it anyway, using #close. To keep a file open even + when no references exist anymore, send it #removeToBeFinalized openTemporaryFile: baseName Open for writing a file whose name starts with baseName, followed @@ -9390,6 +9488,10 @@ reset Reset the stream to its beginning +shutdown + Close the transmission side of a full-duplex connection. This is + useful on read-write pipes. + size Return the current size of the file, in bytes @@ -9812,125 +9914,3 @@ Truncate the file at the current position - -File: gst-base.info, Node: FileStream-buffering, Next: FileStream-overriding inherited methods, Prev: FileStream-basic, Up: FileStream - -1.74.4 FileStream: buffering ----------------------------- - -bufferSize - Answer the file's current buffer - -bufferSize: bufSize - Flush the file and set the buffer's size to bufSize - -clean - Synchronize the file descriptor's state with the object's state. - -fill - Private - Fill the input buffer - -flush - Flush the output buffer. - -newBuffer - Private - Answer a String to be used as the receiver's buffer - -next: n bufferAll: aCollection startingAt: pos - Private - Assuming that the buffer has space for n characters, - store n characters of aCollection in the buffer, starting from the - pos-th. - -next: anInteger into: answer - Private - Read up to anInteger bytes from the stream and store them - into answer. Return `answer' itself, possibly truncated if we - could not read the full amount of data. - -nextHunk - Answer the next buffers worth of stuff in the Stream represented - by the receiver. For n consecutive calls to this method, we do n - - 1 or n actual input operation. - -pendingWrite - Answer whether the output buffer is full. - - - -File: gst-base.info, Node: FileStream-overriding inherited methods, Next: FileStream-testing, Prev: FileStream-buffering, Up: FileStream - -1.74.5 FileStream: overriding inherited methods ------------------------------------------------ - -next: anInteger - Return the next 'anInteger' characters from the stream, as a - String. - -next: n putAll: aCollection startingAt: pos - Not commented. - -nextByteArray: anInteger - Return the next 'anInteger' bytes from the stream, as a ByteArray. - -nextLine - Returns a collection of the same type that the stream accesses, - containing the next line up to the next new-line character. - Returns the entire rest of the stream's contents if no new-line - character is found. - -nextPutAll: aCollection - Put all the characters in aCollection in the file - -nextPutAllFlush: aCollection - Put all the characters in aCollection in the file, then flush the - file buffers - - - -File: gst-base.info, Node: FileStream-testing, Prev: FileStream-overriding inherited methods, Up: FileStream - -1.74.6 FileStream: testing --------------------------- - -atEnd - Answer whether data has come to an end - - - -File: gst-base.info, Node: Float, Next: FloatD, Prev: FileStream, Up: Base classes - -1.75 Float -========== - -Defined in namespace Smalltalk -Superclass: Number -Category: Language-Data types - My instances represent floating point numbers that have arbitrary - precision. Besides the standard numerical operations, they provide - transcendental operations too. They implement IEEE-754 correctly - if the hardware supports it. - -* Menu: - -* Float class-byte-order dependancies:: (class) -* Float class-characterization:: (class) -* Float-arithmetic:: (instance) -* Float-basic:: (instance) -* Float-built ins:: (instance) -* Float-coercing:: (instance) -* Float-comparing:: (instance) -* Float-printing:: (instance) -* Float-storing:: (instance) -* Float-testing:: (instance) -* Float-testing functionality:: (instance) -* Float-transcendental operations:: (instance) - - -File: gst-base.info, Node: Float class-byte-order dependancies, Next: Float class-characterization, Up: Float - -1.75.1 Float class: byte-order dependancies -------------------------------------------- - -signByte - Answer the byte of the receiver that contains the sign bit - - diff -ru smalltalk-2.3.5/doc/gst-base.info-2 smalltalk-2.3.6/doc/gst-base.info-2 --- smalltalk-2.3.5/doc/gst-base.info-2 2007-06-02 17:48:26.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-base.info-2 2007-09-06 09:47:49.000000000 +0200 @@ -6,8 +6,8 @@ * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -25,6 +25,128 @@ with its equivalent in the printed manual, constitutes the Title Page.  +File: gst-base.info, Node: FileStream-buffering, Next: FileStream-overriding inherited methods, Prev: FileStream-basic, Up: FileStream + +1.74.4 FileStream: buffering +---------------------------- + +bufferSize + Answer the file's current buffer + +bufferSize: bufSize + Flush the file and set the buffer's size to bufSize + +clean + Synchronize the file descriptor's state with the object's state. + +fill + Private - Fill the input buffer + +flush + Flush the output buffer. + +newBuffer + Private - Answer a String to be used as the receiver's buffer + +next: n bufferAll: aCollection startingAt: pos + Private - Assuming that the buffer has space for n characters, + store n characters of aCollection in the buffer, starting from the + pos-th. + +next: anInteger into: answer + Private - Read up to anInteger bytes from the stream and store them + into answer. Return `answer' itself, possibly truncated if we + could not read the full amount of data. + +nextHunk + Answer the next buffers worth of stuff in the Stream represented + by the receiver. For n consecutive calls to this method, we do n + - 1 or n actual input operation. + +pendingWrite + Answer whether the output buffer is full. + + + +File: gst-base.info, Node: FileStream-overriding inherited methods, Next: FileStream-testing, Prev: FileStream-buffering, Up: FileStream + +1.74.5 FileStream: overriding inherited methods +----------------------------------------------- + +next: anInteger + Return the next 'anInteger' characters from the stream, as a + String. + +next: n putAll: aCollection startingAt: pos + Not commented. + +nextByteArray: anInteger + Return the next 'anInteger' bytes from the stream, as a ByteArray. + +nextLine + Returns a collection of the same type that the stream accesses, + containing the next line up to the next new-line character. + Returns the entire rest of the stream's contents if no new-line + character is found. + +nextPutAll: aCollection + Put all the characters in aCollection in the file + +nextPutAllFlush: aCollection + Put all the characters in aCollection in the file, then flush the + file buffers + + + +File: gst-base.info, Node: FileStream-testing, Prev: FileStream-overriding inherited methods, Up: FileStream + +1.74.6 FileStream: testing +-------------------------- + +atEnd + Answer whether data has come to an end + + + +File: gst-base.info, Node: Float, Next: FloatD, Prev: FileStream, Up: Base classes + +1.75 Float +========== + +Defined in namespace Smalltalk +Superclass: Number +Category: Language-Data types + My instances represent floating point numbers that have arbitrary + precision. Besides the standard numerical operations, they provide + transcendental operations too. They implement IEEE-754 correctly + if the hardware supports it. + +* Menu: + +* Float class-byte-order dependancies:: (class) +* Float class-characterization:: (class) +* Float-arithmetic:: (instance) +* Float-basic:: (instance) +* Float-built ins:: (instance) +* Float-coercing:: (instance) +* Float-comparing:: (instance) +* Float-printing:: (instance) +* Float-storing:: (instance) +* Float-testing:: (instance) +* Float-testing functionality:: (instance) +* Float-transcendental operations:: (instance) + + +File: gst-base.info, Node: Float class-byte-order dependancies, Next: Float class-characterization, Up: Float + +1.75.1 Float class: byte-order dependancies +------------------------------------------- + +signByte + Answer the byte of the receiver that contains the sign bit + + + File: gst-base.info, Node: Float class-characterization, Next: Float-arithmetic, Prev: Float class-byte-order dependancies, Up: Float 1.75.2 Float class: characterization @@ -248,9 +370,15 @@ asFloat Just defined for completeness. Return the receiver. +ceilingLog: radix + Answer (self log: radix) ceiling. + estimatedLog Answer an estimate of (self abs floorLog: 10) +floorLog: radix + Answer (self log: radix) floor. + log Not commented. @@ -995,9 +1123,10 @@ will be nil. For options without arguments, or with unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, - and as a string for long options. If an error is found, nil is - returned. For more information on the syntax of pattern, see - #parse:with:do:ifError:. + and as a string for long options. + + If an error is found, nil is returned. For more information on + the syntax of pattern, see #parse:with:do:ifError:. parse: args with: pattern do: actionBlock ifError: errorBlock Parse the command-line arguments in args according to the syntax @@ -1008,19 +1137,24 @@ will be nil. For options without arguments, or with unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, - and as a string for long options. If an error is found, the - parsing is interrupted, errorBlock is evaluated, and the returned - value is answered. Every whitespace-separated part (`word') of - pattern specifies a command-line option. If a word ends with a - colon, the option will have a mandatory argument. If a word ends - with two colons, the option will have an optional argument. - Before the colons, multiple option names (either short names like - `-l' or long names like `-long') can be specified. Before passing - the option to actionBlock, the name will be canonicalized to the - last one. Prefixes of long options are accepted as long as - they're unique, and they are canonicalized to the full name before - passing it to actionBlock. Additionally, the full name of an - option is accepted even if it is the prefix of a longer option. + and as a string for long options. + + If an error is found, the parsing is interrupted, errorBlock is + evaluated, and the returned value is answered. + + Every whitespace-separated part (`word') of pattern specifies a + command-line option. If a word ends with a colon, the option will + have a mandatory argument. If a word ends with two colons, the + option will have an optional argument. Before the colons, + multiple option names (either short names like `-l' or long names + like `-long') can be specified. Before passing the option to + actionBlock, the name will be canonicalized to the last one. + + Prefixes of long options are accepted as long as they're unique, + and they are canonicalized to the full name before passing it to + actionBlock. Additionally, the full name of an option is accepted + even if it is the prefix of a longer option. + Mandatory arguments can appear in the next argument, or in the same argument (separated by an = for arguments to long options). Optional arguments must appear in the same argument. @@ -2785,10 +2919,12 @@ Defined in namespace Smalltalk Superclass: Dictionary Category: Collections-Keyed - I am similar to Dictionary, except that my representation is - different (more efficient, but not useful to store a variable - binding). I use the object equality comparison message #= to - determine equivalence of indices. + I am a more efficient variant of Dictionary that cannot be used as + a pool dictionary of variables, as I don't use Associations to + store key-value pairs. I also cannot have nil as a key; if you + need to be able to store nil as a key, use Dictionary instead. I + use the object equality comparison message #= to determine + equivalence of indices. * Menu: @@ -3038,24 +3174,37 @@ at: key put: value Store value at the given key +atAll: keyCollection + Answer a new MappedCollection that only includes the given keys. + The new MappedCollection might use keyCollection or consecutive + integers for the keys, depending on the map's type. Fail if any of + them is not found in the map. + collect: aBlock - Answer a MappedCollection with a copy of the receiver's map and a - domain obtained by passing each object through aBlock + Answer a Collection with the same keys as the map, where accessing + a key yields the value obtained by passing through aBlock the value + accessible from the key in the receiver. The result need not be + another MappedCollection contents Answer a bag with the receiver's values +copyFrom: a to: b + Not commented. + do: aBlock Evaluate aBlock for each object -domain - Answer the domain - keys Answer the keys that can be used to access this collection. -map - Answer the map +keysAndValuesDo: aBlock + Evaluate aBlock passing two arguments, one being a key that can be + used to access this collection, and the other one being the value. + +keysDo: aBlock + Evaluate aBlock on the keys that can be used to access this + collection. reject: aBlock Answer the objects in the domain for which aBlock returns false @@ -3593,10 +3742,12 @@ the user when presenting a backtrace. Such contexts are identified through the #exceptionHandlingInternal: attribute: if there is such a context in the backtrace, all those above it are - marked as internal. That is, the attribute being set to true - means that the context and all those above it are to be hidden, - while the attribute being set to false means that the contexts - above it must be hidden, but not the context itself. + marked as internal. + + That is, the attribute being set to true means that the context + and all those above it are to be hidden, while the attribute being + set to false means that the contexts above it must be hidden, but + not the context itself.  @@ -4958,7 +5109,9 @@ receiver's class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame - anybody but yourself). This method should not be overridden + anybody but yourself). + + This method should not be overridden perform: selectorOrMethod with: arg1 Send the message named selectorOrMethod (if a Symbol) to the @@ -4967,8 +5120,9 @@ need not reside on the hierarchy from the receiver's class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk - virtual machine (and don't blame anybody but yourself). This - method should not be overridden + virtual machine (and don't blame anybody but yourself). + + This method should not be overridden perform: selectorOrMethod with: arg1 with: arg2 Send the message named selectorOrMethod (if a Symbol) to the @@ -4978,6 +5132,7 @@ class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden perform: selectorOrMethod with: arg1 with: arg2 with: arg3 @@ -4988,6 +5143,7 @@ class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden perform: selectorOrMethod with: arg1 with: arg2 with: arg3 with: arg4 @@ -4998,6 +5154,7 @@ class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame anybody but yourself). + This method should not be overridden perform: selectorOrMethod withArguments: argumentsArray @@ -5008,7 +5165,9 @@ the receiver's class to Object - it need not reside at all in a MethodDictionary, in fact - but doing bad things will compromise stability of the Smalltalk virtual machine (and don't blame - anybody but yourself). This method should not be overridden + anybody but yourself). + + This method should not be overridden primError: message This might start the debugger... Note that we use #basicPrint @@ -5390,12 +5549,12 @@ isMeta Same as isMetaclass -isMetaClass - Same as isMetaclass - isMetaclass Answer `false'. +isMetaClass + Same as isMetaclass + isNamespace Answer `false'. @@ -6092,8 +6251,9 @@ in baseDirs, which depend on where the packages.xml is found: the three possible places are 1) the system kernel directory's parent directory, 2) the local kernel directory's parent directory, 3) the - local image directory (in order of decreasing priority). For a - packages.xml found in the system kernel directory's parent + local image directory (in order of decreasing priority). + + For a packages.xml found in the system kernel directory's parent directory, all three directories are searched. For a packages.xml found in the local kernel directory's parent directory, only directories 2 and 3 are searched. For a packages.xml directory in @@ -6271,12 +6431,13 @@ The three possible places are 1) the system kernel directory's parent directory, 2) the local kernel directory's parent directory, 3) the local image directory (in order of decreasing - priority). For a packages.xml found in the system kernel - directory's parent directory, all three directories are searched. - For a packages.xml found in the local kernel directory's parent - directory, only directories 2 and 3 are searched. For a - packages.xml directory in the local image directory, instead, only - directory 3 is searched. + priority). + + For a packages.xml found in the system kernel directory's parent + directory, all three directories are searched. For a packages.xml + found in the local kernel directory's parent directory, only + directories 2 and 3 are searched. For a packages.xml directory in + the local image directory, instead, only directory 3 is searched. sunitScriptFor: package Answer a Strings containing a SUnit script that describes the @@ -6292,13 +6453,16 @@ extractDependenciesFor: packagesList onError: aBlock Answer an OrderedCollection containing all the packages which you have to load to enable the packages in packagesList, in an - appropriate order. For example PackageLoader - extractDependenciesFor: #('BloxTestSuite' 'Blox' 'Browser') on a - newly built image will evaluate to an OrderedCollection containing - 'Kernel', 'Blox', 'BloxTestSuite' and 'Browser'. Note that Blox - has been moved before BloxTestSuite. Pass an error message to - aBlock if one or more packages need prerequisites which are not - available. + appropriate order. For example + + PackageLoader extractDependenciesFor: #('BloxTestSuite' 'Blox' + 'Browser') + + on a newly built image will evaluate to an OrderedCollection + containing 'Kernel', 'Blox', 'BloxTestSuite' and 'Browser'. Note + that Blox has been moved before BloxTestSuite. Pass an error + message to aBlock if one or more packages need prerequisites which + are not available. fileInPackage: package File in the given package into GNU Smalltalk. @@ -7475,11 +7639,9 @@ 1.133.2 ReadWriteStream: positioning ------------------------------------ -position: anInteger - Unlike WriteStreams, ReadWriteStreams don't truncate the stream - -skip: anInteger - Unlike WriteStreams, ReadWriteStreams don't truncate the stream +contents + Unlike WriteStreams, ReadWriteStreams return the whole contents of + the underlying collection.  @@ -8653,6 +8815,7 @@ * SequenceableCollection class-instance creation:: (class) * SequenceableCollection-basic:: (instance) +* SequenceableCollection-concatenating:: (instance) * SequenceableCollection-copying SequenceableCollections:: (instance) * SequenceableCollection-enumerating:: (instance) * SequenceableCollection-replacing items:: (instance) @@ -8671,7 +8834,7 @@  -File: gst-base.info, Node: SequenceableCollection-basic, Next: SequenceableCollection-copying SequenceableCollections, Prev: SequenceableCollection class-instance creation, Up: SequenceableCollection +File: gst-base.info, Node: SequenceableCollection-basic, Next: SequenceableCollection-concatenating, Prev: SequenceableCollection class-instance creation, Up: SequenceableCollection 1.143.2 SequenceableCollection: basic ------------------------------------- @@ -8680,10 +8843,27 @@ Return the element after oldObject. Error if oldObject not found or if no following object is available +allButFirst + Answer a copy of the receiver without the first object. + +allButFirst: n + Answer a copy of the receiver without the first n objects. + +allButLast + Answer a copy of the receiver without the last object. + +allButLast: n + Answer a copy of the receiver without the last n objects. + at: anIndex ifAbsent: aBlock Answer the anIndex-th item of the collection, or evaluate aBlock and answer the result if the index is out of range +atAll: keyCollection + Answer a collection of the same kind returned by #collect:, that + only includes the values at the given indices. Fail if any of the + values in keyCollection is out of bounds for the receiver. + atAll: aCollection put: anObject Put anObject at every index contained in aCollection @@ -8772,9 +8952,27 @@  -File: gst-base.info, Node: SequenceableCollection-copying SequenceableCollections, Next: SequenceableCollection-enumerating, Prev: SequenceableCollection-basic, Up: SequenceableCollection +File: gst-base.info, Node: SequenceableCollection-concatenating, Next: SequenceableCollection-copying SequenceableCollections, Prev: SequenceableCollection-basic, Up: SequenceableCollection + +1.143.3 SequenceableCollection: concatenating +--------------------------------------------- + +join + Answer a new collection like my first element, with all the + elements (in order) of all my elements, which should be + collections. + + I use my first element instead of myself as a prototype because my + elements are more likely to share the desired properties than I + am, such as in: + + #('hello, ' 'world') join => 'hello, world' + + + +File: gst-base.info, Node: SequenceableCollection-copying SequenceableCollections, Next: SequenceableCollection-enumerating, Prev: SequenceableCollection-concatenating, Up: SequenceableCollection -1.143.3 SequenceableCollection: copying SequenceableCollections +1.143.4 SequenceableCollection: copying SequenceableCollections --------------------------------------------------------------- , aSequenceableCollection @@ -8796,8 +8994,9 @@ copyReplaceFrom: start to: stop with: replacementCollection Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, - except for elements from index `start' to index `stop'. If start - < stop, these are replaced by the contents of the + except for elements from index `start' to index `stop'. + + If start < stop, these are replaced by the contents of the replacementCollection. Instead, If start = (stop + 1), like in `copyReplaceFrom: 4 to: 3 with: anArray', then every element of the receiver will be present in the answered copy; the operation @@ -8807,12 +9006,13 @@ copyReplaceFrom: start to: stop withObject: anObject Answer a new collection of the same class as the receiver that contains the same elements as the receiver, in the same order, - except for elements from index `start' to index `stop'. If start - < stop, these are replaced by stop-start+1 copies of anObject. - Instead, If start = (stop + 1), then every element of the receiver - will be present in the answered copy; the operation will be an - append if stop is equal to the size of the receiver or, if it is - not, an insert before index `start'. + except for elements from index `start' to index `stop'. + + If start < stop, these are replaced by stop-start+1 copies of + anObject. Instead, If start = (stop + 1), then every element of + the receiver will be present in the answered copy; the operation + will be an append if stop is equal to the size of the receiver or, + if it is not, an insert before index `start'. copyUpTo: anObject Answer a new collection holding all the elements of the receiver @@ -8822,7 +9022,7 @@  File: gst-base.info, Node: SequenceableCollection-enumerating, Next: SequenceableCollection-replacing items, Prev: SequenceableCollection-copying SequenceableCollections, Up: SequenceableCollection -1.143.4 SequenceableCollection: enumerating +1.143.5 SequenceableCollection: enumerating ------------------------------------------- anyOne @@ -8915,7 +9115,7 @@  File: gst-base.info, Node: SequenceableCollection-replacing items, Next: SequenceableCollection-testing, Prev: SequenceableCollection-enumerating, Up: SequenceableCollection -1.143.5 SequenceableCollection: replacing items +1.143.6 SequenceableCollection: replacing items ----------------------------------------------- replaceAll: anObject with: anotherObject @@ -8938,7 +9138,7 @@  File: gst-base.info, Node: SequenceableCollection-testing, Prev: SequenceableCollection-replacing items, Up: SequenceableCollection -1.143.6 SequenceableCollection: testing +1.143.7 SequenceableCollection: testing --------------------------------------- = aCollection @@ -9981,188 +10181,3 @@ this method. - -File: gst-base.info, Node: String, Next: Symbol, Prev: Stream, Up: Base classes - -1.151 String -============ - -Defined in namespace Smalltalk -Superclass: CharacterArray -Category: Collections-Text - My instances represent 8-bit character strings. Being a very - common case, they are particularly optimized. - - Note that, if you care about multilingualization, you should treat - String only as an encoded representation of a UnicodeString. The - I18N package adds more Unicode-friendliness to the system so that - encoding and decoding is performed automatically in more cases. - In that case, String represents a case when the encoding is either - unknown, irrelevant, or assumed to be the system default. - -* Menu: - -* String class-instance creation:: (class) -* String-accessing:: (instance) -* String-basic:: (instance) -* String-built ins:: (instance) -* String-C call-outs:: (instance) -* String-converting:: (instance) -* String-printing:: (instance) -* String-regex:: (instance) -* String-testing functionality:: (instance) -* String-useful functionality:: (instance) - - -File: gst-base.info, Node: String class-instance creation, Next: String-accessing, Up: String - -1.151.1 String class: instance creation ---------------------------------------- - -fromCData: aCObject - Answer a String containing the bytes starting at the location - pointed to by aCObject, up to the first NUL character. - -fromCData: aCObject size: anInteger - Answer a String containing anInteger bytes starting at the - location pointed to by aCObject - - - -File: gst-base.info, Node: String-accessing, Next: String-basic, Prev: String class-instance creation, Up: String - -1.151.2 String: accessing -------------------------- - -byteAt: index - Answer the ascii value of index-th character variable of the - receiver - -byteAt: index put: value - Store (Character value: value) in the index-th indexed instance - variable of the receiver - - - -File: gst-base.info, Node: String-basic, Next: String-built ins, Prev: String-accessing, Up: String - -1.151.3 String: basic ---------------------- - -, aString - Answer a new instance of an ArrayedCollection containing all the - elements in the receiver, followed by all the elements in - aSequenceableCollection - -= aString - Answer whether the receiver's items match those in aCollection - - - -File: gst-base.info, Node: String-built ins, Next: String-C call-outs, Prev: String-basic, Up: String - -1.151.4 String: built ins -------------------------- - -asCData: aCType - Convert the receiver to a CObject with the given type - -at: anIndex - Answer the index-th indexed instance variable of the receiver - -at: anIndex put: value - Store value in the index-th indexed instance variable of the - receiver - -basicAt: anIndex - Answer the index-th indexed instance variable of the receiver. - This method must not be overridden, override at: instead - -basicAt: anIndex put: value - Store value in the index-th indexed instance variable of the - receiver This method must not be overridden, override at:put: - instead - -hash - Answer an hash value for the receiver - -primReplaceFrom: start to: stop with: replacementString - startingAt: replaceStart Private - Replace the characters from - start to stop with new characters contained in replacementString - (which, actually, can be any variable byte class, starting at the - replaceStart location of replacementString - -replaceFrom: start to: stop with: aString startingAt: replaceStart - Replace the characters from start to stop with new characters whose - ASCII codes are contained in aString, starting at the replaceStart - location of aString - -replaceFrom: start to: stop withByteArray: byteArray startingAt: replaceStart - Replace the characters from start to stop with new characters whose - ASCII codes are contained in byteArray, starting at the - replaceStart location of byteArray - -similarityTo: aString - Answer a number that denotes the similarity between aString and - the receiver. 0 indicates equality, negative numbers indicate - some difference. Implemented as a primitive for speed. - -size - Answer the size of the receiver - - - -File: gst-base.info, Node: String-C call-outs, Next: String-converting, Prev: String-built ins, Up: String - -1.151.5 String: C call-outs ---------------------------- - -lengthOfRegexMatch: pattern from: from to: to - Not commented. - -searchRegexInternal: pattern from: from to: to - Not commented. - - - -File: gst-base.info, Node: String-converting, Next: String-printing, Prev: String-C call-outs, Up: String - -1.151.6 String: converting --------------------------- - -asByteArray - Return the receiver, converted to a ByteArray of ASCII values - -asString - But I already am a String! Really! - -asSymbol - Returns the symbol corresponding to the receiver - -encoding - Answer the encoding of the receiver. This is not implemented - unless you load the Iconv package. - - - -File: gst-base.info, Node: String-printing, Next: String-regex, Prev: String-converting, Up: String - -1.151.7 String: printing ------------------------- - -displayOn: aStream - Print a representation of the receiver on aStream. Unlike - #printOn:, this method strips extra quotes. - -displayString - Answer a String representing the receiver. For most objects this - is simply its #printString, but for CharacterArrays and characters, - superfluous dollars or extra pair of quotes are stripped. - -printOn: aStream - Print a representation of the receiver on aStream - -storeOn: aStream - Store Smalltalk code compiling to the receiver on aStream - - diff -ru smalltalk-2.3.5/doc/gst-base.info-3 smalltalk-2.3.6/doc/gst-base.info-3 --- smalltalk-2.3.5/doc/gst-base.info-3 2007-06-02 17:48:26.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-base.info-3 2007-09-06 09:47:49.000000000 +0200 @@ -6,8 +6,8 @@ * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -25,6 +25,191 @@ with its equivalent in the printed manual, constitutes the Title Page.  +File: gst-base.info, Node: String, Next: Symbol, Prev: Stream, Up: Base classes + +1.151 String +============ + +Defined in namespace Smalltalk +Superclass: CharacterArray +Category: Collections-Text + My instances represent 8-bit character strings. Being a very + common case, they are particularly optimized. + + Note that, if you care about multilingualization, you should treat + String only as an encoded representation of a UnicodeString. The + I18N package adds more Unicode-friendliness to the system so that + encoding and decoding is performed automatically in more cases. + In that case, String represents a case when the encoding is either + unknown, irrelevant, or assumed to be the system default. + +* Menu: + +* String class-instance creation:: (class) +* String-accessing:: (instance) +* String-basic:: (instance) +* String-built ins:: (instance) +* String-C call-outs:: (instance) +* String-converting:: (instance) +* String-printing:: (instance) +* String-regex:: (instance) +* String-testing functionality:: (instance) +* String-useful functionality:: (instance) + + +File: gst-base.info, Node: String class-instance creation, Next: String-accessing, Up: String + +1.151.1 String class: instance creation +--------------------------------------- + +fromCData: aCObject + Answer a String containing the bytes starting at the location + pointed to by aCObject, up to the first NUL character. + +fromCData: aCObject size: anInteger + Answer a String containing anInteger bytes starting at the + location pointed to by aCObject + + + +File: gst-base.info, Node: String-accessing, Next: String-basic, Prev: String class-instance creation, Up: String + +1.151.2 String: accessing +------------------------- + +byteAt: index + Answer the ascii value of index-th character variable of the + receiver + +byteAt: index put: value + Store (Character value: value) in the index-th indexed instance + variable of the receiver + + + +File: gst-base.info, Node: String-basic, Next: String-built ins, Prev: String-accessing, Up: String + +1.151.3 String: basic +--------------------- + +, aString + Answer a new instance of an ArrayedCollection containing all the + elements in the receiver, followed by all the elements in + aSequenceableCollection + += aString + Answer whether the receiver's items match those in aCollection + + + +File: gst-base.info, Node: String-built ins, Next: String-C call-outs, Prev: String-basic, Up: String + +1.151.4 String: built ins +------------------------- + +asCData: aCType + Convert the receiver to a CObject with the given type + +at: anIndex + Answer the index-th indexed instance variable of the receiver + +at: anIndex put: value + Store value in the index-th indexed instance variable of the + receiver + +basicAt: anIndex + Answer the index-th indexed instance variable of the receiver. + This method must not be overridden, override at: instead + +basicAt: anIndex put: value + Store value in the index-th indexed instance variable of the + receiver This method must not be overridden, override at:put: + instead + +hash + Answer an hash value for the receiver + +primReplaceFrom: start to: stop with: replacementString + startingAt: replaceStart Private - Replace the characters from + start to stop with new characters contained in replacementString + (which, actually, can be any variable byte class, starting at the + replaceStart location of replacementString + +replaceFrom: start to: stop with: aString startingAt: replaceStart + Replace the characters from start to stop with new characters whose + ASCII codes are contained in aString, starting at the replaceStart + location of aString + +replaceFrom: start to: stop withByteArray: byteArray startingAt: replaceStart + Replace the characters from start to stop with new characters whose + ASCII codes are contained in byteArray, starting at the + replaceStart location of byteArray + +similarityTo: aString + Answer a number that denotes the similarity between aString and + the receiver. 0 indicates equality, negative numbers indicate + some difference. Implemented as a primitive for speed. + +size + Answer the size of the receiver + + + +File: gst-base.info, Node: String-C call-outs, Next: String-converting, Prev: String-built ins, Up: String + +1.151.5 String: C call-outs +--------------------------- + +lengthOfRegexMatch: pattern from: from to: to + Not commented. + +searchRegexInternal: pattern from: from to: to + Not commented. + + + +File: gst-base.info, Node: String-converting, Next: String-printing, Prev: String-C call-outs, Up: String + +1.151.6 String: converting +-------------------------- + +asByteArray + Return the receiver, converted to a ByteArray of ASCII values + +asString + But I already am a String! Really! + +asSymbol + Returns the symbol corresponding to the receiver + +encoding + Answer the encoding of the receiver. This is not implemented + unless you load the Iconv package. + + + +File: gst-base.info, Node: String-printing, Next: String-regex, Prev: String-converting, Up: String + +1.151.7 String: printing +------------------------ + +displayOn: aStream + Print a representation of the receiver on aStream. Unlike + #printOn:, this method strips extra quotes. + +displayString + Answer a String representing the receiver. For most objects this + is simply its #printString, but for CharacterArrays and characters, + superfluous dollars or extra pair of quotes are stripped. + +printOn: aStream + Print a representation of the receiver on aStream + +storeOn: aStream + Store Smalltalk code compiling to the receiver on aStream + + + File: gst-base.info, Node: String-regex, Next: String-testing functionality, Prev: String-printing, Up: String 1.151.8 String: regex @@ -124,6 +309,17 @@ given range of indices. For each match, pass the RegexResults object to aBlock. +replacingAllRegex: pattern with: str + Returns the receiver if the pattern has no match in it. Otherwise, + any match of pattern in that part of the string is replaced with + str after substituting %n sequences with the captured + subexpressions of the match (as in #%). + +replacingRegex: pattern with: str + Returns the receiver if the pattern has no match in it. If it has + a match, it is replaced with str after substituting %n sequences + with the captured subexpressions of the match (as in #%). + searchRegex: pattern A synonym for #=~. Answer a RegexResults object for matching the receiver against the Regex or String object pattern. @@ -577,9 +773,10 @@ For options without arguments, or with unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, and - as a string for long options. If an error is found, nil is - returned. For more information on the syntax of pattern, see - #arguments:do:ifError:. + as a string for long options. + + If an error is found, nil is returned. For more information on + the syntax of pattern, see #arguments:do:ifError:. arguments: pattern do: actionBlock ifError: errorBlock Parse the command-line arguments according to the syntax specified @@ -590,22 +787,27 @@ For options without arguments, or with unspecified optional arguments, the block's second argument will be nil. The option name will be passed as a character object for short options, and - as a string for long options. If an error is found, the parsing - is interrupted, errorBlock is evaluated, and the returned value is - answered. Every whitespace-separated part (`word') of pattern - specifies a command-line option. If a word ends with a colon, the - option will have a mandatory argument. If a word ends with two - colons, the option will have an optional argument. Before the - colons, multiple option names (either short names like `-l' or - long names like `-long') can be specified. Before passing the - option to actionBlock, the name will be canonicalized to the last - one. Prefixes of long options are accepted as long as they're - unique, and they are canonicalized to the full name before passing - it to actionBlock. Additionally, the full name of an option is - accepted even if it is the prefix of a longer option. Mandatory - arguments can appear in the next argument, or in the same argument - (separated by an = for arguments to long options). Optional - arguments must appear in the same argument. + as a string for long options. + + If an error is found, the parsing is interrupted, errorBlock is + evaluated, and the returned value is answered. + + Every whitespace-separated part (`word') of pattern specifies a + command-line option. If a word ends with a colon, the option will + have a mandatory argument. If a word ends with two colons, the + option will have an optional argument. Before the colons, + multiple option names (either short names like `-l' or long names + like `-long') can be specified. Before passing the option to + actionBlock, the name will be canonicalized to the last one. + + Prefixes of long options are accepted as long as they're unique, + and they are canonicalized to the full name before passing it to + actionBlock. Additionally, the full name of an option is accepted + even if it is the prefix of a longer option. + + Mandatory arguments can appear in the next argument, or in the + same argument (separated by an = for arguments to long options). + Optional arguments must appear in the same argument.  @@ -2459,9 +2661,11 @@ value: anInteger Returns the character object, possibly a Character, corresponding to anInteger. Error if anInteger is not an integer, or not in - 0..16r10FFFF. This is only a primitive for speed. - UnicodeCharacter's #value: method is equivalent to #codePoint: - (which is the same for Character and UnicodeCharacter). + 0..16r10FFFF. + + This is only a primitive for speed. UnicodeCharacter's #value: + method is equivalent to #codePoint: (which is the same for + Character and UnicodeCharacter).  @@ -3280,6 +3484,9 @@ time (the `last change time' has to do with permissions, ownership and the like). +finalize + Free the statistics for the receiver + isDirectory Answer whether the file is a directory. @@ -3341,7 +3548,10 @@ Remove the file with the given path name renameTo: newFileName - Rename the file with the given path name oldFileName to newFileName + Rename the file with the given path name to newFileName + +symlinkFrom: srcName + Create the receiver as a symlink from path destName  @@ -3505,6 +3715,9 @@ primRename: oldFileName to: newFileName Not commented. +primSymlink: srcName as: destName + Not commented. + primUnlink: fileName Not commented. @@ -3565,6 +3778,9 @@ renameTo: newFileName Rename the file with the given path name oldFileName to newFileName +symlinkFrom: srcName + Create the receiver as a symlink from the relative path srcName +  File: gst-base.info, Node: VFS.VFSHandler-testing, Prev: VFS.VFSHandler-file operations, Up: VFS.VFSHandler @@ -3752,6 +3968,19 @@ * Menu: +* WeakIdentitySet-accessing:: (instance) + + +File: gst-base.info, Node: WeakIdentitySet-accessing, Up: WeakIdentitySet + +1.208.1 WeakIdentitySet: accessing +---------------------------------- + +identityIncludes: anObject + Answer whether I include anObject exactly. As I am an + identity-set, this is the same as #includes:. + +  File: gst-base.info, Node: WeakKeyDictionary, Next: WeakKeyIdentityDictionary, Prev: WeakIdentitySet, Up: Base classes @@ -3834,6 +4063,9 @@ do: aBlock Enumerate all the non-nil members of the set +includes: anObject + Answer whether I contain anObject. + remove: anObject ifAbsent: aBlock Remove oldObject to the set. If it is found, answer oldObject. Otherwise, evaluate aBlock and return its value. @@ -3942,12 +4174,11 @@ * Menu: * WriteStream class-instance creation:: (class) -* WriteStream-accessing:: (instance) * WriteStream-accessing-writing:: (instance) * WriteStream-positioning:: (instance)  -File: gst-base.info, Node: WriteStream class-instance creation, Next: WriteStream-accessing, Up: WriteStream +File: gst-base.info, Node: WriteStream class-instance creation, Next: WriteStream-accessing-writing, Up: WriteStream 1.215.1 WriteStream class: instance creation -------------------------------------------- @@ -3967,19 +4198,9 @@  -File: gst-base.info, Node: WriteStream-accessing, Next: WriteStream-accessing-writing, Prev: WriteStream class-instance creation, Up: WriteStream - -1.215.2 WriteStream: accessing ------------------------------- - -size - Answer how many objects have been written - - - -File: gst-base.info, Node: WriteStream-accessing-writing, Next: WriteStream-positioning, Prev: WriteStream-accessing, Up: WriteStream +File: gst-base.info, Node: WriteStream-accessing-writing, Next: WriteStream-positioning, Prev: WriteStream class-instance creation, Up: WriteStream -1.215.3 WriteStream: accessing-writing +1.215.2 WriteStream: accessing-writing -------------------------------------- contents @@ -4001,7 +4222,7 @@  File: gst-base.info, Node: WriteStream-positioning, Prev: WriteStream-accessing-writing, Up: WriteStream -1.215.4 WriteStream: positioning +1.215.3 WriteStream: positioning -------------------------------- emptyStream Binary files smalltalk-2.3.5/doc/gst-base.info-4 and smalltalk-2.3.6/doc/gst-base.info-4 differ Binary files smalltalk-2.3.5/doc/gst-base.info-5 and smalltalk-2.3.6/doc/gst-base.info-5 differ diff -ru smalltalk-2.3.5/doc/gst-libs.info smalltalk-2.3.6/doc/gst-libs.info --- smalltalk-2.3.5/doc/gst-libs.info 2007-06-02 17:48:27.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-libs.info 2007-09-06 09:43:07.000000000 +0200 @@ -6,8 +6,8 @@ * Libraries: (gst-libs). The GNU Smalltalk class libraries. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2006 Free Software Foundation, Inc. @@ -26,361 +26,361 @@  Indirect: -gst-libs.info-1: 1021 -gst-libs.info-2: 295584 +gst-libs.info-1: 1026 +gst-libs.info-2: 295959  Tag Table: (Indirect) -Node: Top1021 -Node: BLOX2427 -Node: BLOX.BArc5037 -Node: BLOX.BArc-accessing5350 -Node: BLOX.BBalloon6896 -Node: BLOX.BBalloon class-accessing7368 -Node: BLOX.BBalloon-accessing7796 -Node: BLOX.BBalloon-initializing8192 -Node: BLOX.BBoundingBox8442 -Node: BLOX.BBoundingBox-accessing8913 -Node: BLOX.BButton11654 -Node: BLOX.BButton class-instance creation12129 -Node: BLOX.BButton-accessing12477 -Node: BLOX.BButtonLike16662 -Node: BLOX.BButtonLike-accessing17009 -Node: BLOX.BCanvas17810 -Node: BLOX.BCanvas-accessing18576 -Node: BLOX.BCanvas-geometry management19432 -Node: BLOX.BCanvas-widget protocol21151 -Node: BLOX.BCanvasObject22376 -Node: BLOX.BCanvasObject class-instance creation22918 -Node: BLOX.BCanvasObject-accessing23335 -Node: BLOX.BCanvasObject-widget protocol25285 -Node: BLOX.BCheckMenuItem26570 -Node: BLOX.BCheckMenuItem class-instance creation27017 -Node: BLOX.BCheckMenuItem-accessing27340 -Node: BLOX.BColorButton27802 -Node: BLOX.BColorButton-accessing28231 -Node: BLOX.BContainer28698 -Node: BLOX.BContainer-accessing29145 -Node: BLOX.BDialog29812 -Node: BLOX.BDialog class-instance creation30435 -Node: BLOX.BDialog class-prompters31352 -Node: BLOX.BDialog-accessing34889 -Node: BLOX.BDialog-widget protocol36097 -Node: BLOX.BDropDown36999 -Node: BLOX.BDropDown-accessing37931 -Node: BLOX.BDropDown-callbacks43195 -Node: BLOX.BDropDown-flexibility43821 -Node: BLOX.BDropDown-list box accessing45316 -Node: BLOX.BDropDown-widget protocol48366 -Node: BLOX.BDropDownEdit49309 -Node: BLOX.BDropDownEdit-accessing49845 -Node: BLOX.BDropDownEdit-accessing-overrides52009 -Node: BLOX.BDropDownEdit-text accessing52326 -Node: BLOX.BDropDownList53736 -Node: BLOX.BDropDownList-accessing54285 -Node: BLOX.BDropDownList-callbacks56972 -Node: BLOX.BDropDownList-list box accessing57672 -Node: BLOX.BEdit58112 -Node: BLOX.BEdit class-instance creation58529 -Node: BLOX.BEdit-accessing58867 -Node: BLOX.BEdit-widget protocol63230 -Node: BLOX.BEmbeddedImage65208 -Node: BLOX.BEmbeddedImage-accessing65559 -Node: BLOX.BEmbeddedText66508 -Node: BLOX.BEmbeddedText-accessing66870 -Node: BLOX.BEventSet69815 -Node: BLOX.BEventSet class-initializing70513 -Node: BLOX.BEventSet-accessing70981 -Node: BLOX.BEventSet-initializing71270 -Node: BLOX.BEventTarget71653 -Node: BLOX.BEventTarget-intercepting events72024 -Node: BLOX.BExtended78120 -Node: BLOX.BExtended-accessing78938 -Node: BLOX.BExtended-customization79202 -Node: BLOX.BForm80216 -Node: BLOX.BForm-accessing80589 -Node: BLOX.BImage82036 -Node: BLOX.BImage class-arrows82621 -Node: BLOX.BImage class-GNU83123 -Node: BLOX.BImage class-icons83377 -Node: BLOX.BImage class-instance creation83890 -Node: BLOX.BImage class-small icons84648 -Node: BLOX.BImage-accessing85030 -Node: BLOX.BImage-image management88158 -Node: BLOX.BImage-widget protocol90684 -Node: BLOX.BLabel90993 -Node: BLOX.BLabel class-initialization91385 -Node: BLOX.BLabel class-instance creation91665 -Node: BLOX.BLabel-accessing92050 -Node: BLOX.BLine96749 -Node: BLOX.BLine-accessing97095 -Node: BLOX.BList97665 -Node: BLOX.BList-accessing98040 -Node: BLOX.BList-widget protocol110049 -Node: BLOX.Blox111432 -Node: BLOX.Blox class-C call-outs112561 -Node: BLOX.Blox class-event dispatching112890 -Node: BLOX.Blox class-instance creation113893 -Node: BLOX.Blox class-utility114343 -Node: BLOX.Blox-accessing117536 -Node: BLOX.Blox-basic118890 -Node: BLOX.Blox-creating children119487 -Node: BLOX.Blox-customization120508 -Node: BLOX.Blox-widget protocol121305 -Node: BLOX.BMenu123566 -Node: BLOX.BMenu class-instance creation123964 -Node: BLOX.BMenu-accessing124381 -Node: BLOX.BMenu-callback registration125230 -Node: BLOX.BMenuBar126328 -Node: BLOX.BMenuBar-accessing126663 -Node: BLOX.BMenuItem126898 -Node: BLOX.BMenuItem class-instance creation127388 -Node: BLOX.BMenuItem-accessing127792 -Node: BLOX.BMenuObject128620 -Node: BLOX.BMenuObject-accessing129019 -Node: BLOX.BMenuObject-callback131358 -Node: BLOX.BOval132314 -Node: BLOX.BPolyline132638 -Node: BLOX.BPolyline-accessing132977 -Node: BLOX.BPopupMenu135314 -Node: BLOX.BPopupMenu-widget protocol135731 -Node: BLOX.BPopupWindow135948 -Node: BLOX.BPopupWindow-geometry management136551 -Node: BLOX.BPrimitive138619 -Node: BLOX.BPrimitive-accessing139010 -Node: BLOX.BProgress139241 -Node: BLOX.BProgress-accessing139573 -Node: BLOX.BRadioButton140819 -Node: BLOX.BRadioButton-accessing141168 -Node: BLOX.BRadioGroup142056 -Node: BLOX.BRadioGroup-accessing142689 -Node: BLOX.BRadioGroup-widget protocol143164 -Node: BLOX.BRectangle143494 -Node: BLOX.BRectangle-accessing143842 -Node: BLOX.BScrolledCanvas144330 -Node: BLOX.BSpline144759 -Node: BLOX.BSpline-accessing145096 -Node: BLOX.BText145527 -Node: BLOX.BText class-accessing146152 -Node: BLOX.BText class-instance creation146495 -Node: BLOX.BText-accessing146863 -Node: BLOX.BText-attributes152710 -Node: BLOX.BText-geometry management153981 -Node: BLOX.BText-images155560 -Node: BLOX.BText-inserting text157242 -Node: BLOX.BText-position & lines159258 -Node: BLOX.BTextAttributes161065 -Node: BLOX.BTextAttributes class-instance-creation shortcuts161531 -Node: BLOX.BTextAttributes-colors164390 -Node: BLOX.BTextAttributes-setting attributes165479 -Node: BLOX.BTextBindings169633 -Node: BLOX.BTextBindings class-instance creation170177 -Node: BLOX.BTextTags170429 -Node: BLOX.BToggle170798 -Node: BLOX.BToggle-accessing171187 -Node: BLOX.BTransientWindow172085 -Node: BLOX.BTransientWindow class-instance creation172604 -Node: BLOX.BTransientWindow-widget protocol173223 -Node: BLOX.BViewport173815 -Node: BLOX.BViewport-accessing174256 -Node: BLOX.BViewport-scrollbars174516 -Node: BLOX.BWidget175476 -Node: BLOX.BWidget class-popups176045 -Node: BLOX.BWidget-accessing177300 -Node: BLOX.BWidget-customization181915 -Node: BLOX.BWidget-geometry management183544 -Node: BLOX.BWidget-widget protocol200050 -Node: BLOX.BWindow202090 -Node: BLOX.BWindow class-instance creation202543 -Node: BLOX.BWindow-accessing202980 -Node: BLOX.BWindow-widget protocol205702 -Node: BLOX.Gui210412 -Node: BLOX.Gui-accessing210812 -Node: TCP211073 -Node: TCP.AbstractSocket212473 -Node: TCP.AbstractSocket class-defaults213087 -Node: TCP.AbstractSocket class-instance creation213973 -Node: TCP.AbstractSocket class-timed-out operations214568 -Node: TCP.AbstractSocket-accessing215559 -Node: TCP.AbstractSocket-printing216704 -Node: TCP.AbstractSocket-socket options217012 -Node: TCP.AbstractSocket-stream protocol217945 -Node: TCP.AbstractSocket-testing218518 -Node: TCP.AbstractSocketImpl218794 -Node: TCP.AbstractSocketImpl class-abstract219543 -Node: TCP.AbstractSocketImpl class-C call-outs219997 -Node: TCP.AbstractSocketImpl class-C constants221054 -Node: TCP.AbstractSocketImpl class-socket creation221599 -Node: TCP.AbstractSocketImpl-accessing221944 -Node: TCP.AbstractSocketImpl-asynchronous operations223105 -Node: TCP.AbstractSocketImpl-C call-outs223841 -Node: TCP.AbstractSocketImpl-socket operations224889 -Node: TCP.AbstractSocketImpl-socket options226843 -Node: TCP.Datagram228817 -Node: TCP.Datagram class-instance creation229136 -Node: TCP.Datagram-accessing230447 -Node: TCP.DatagramSocket231480 -Node: TCP.DatagramSocket class-accessing231987 -Node: TCP.DatagramSocket class-initialization232636 -Node: TCP.DatagramSocket class-instance creation232998 -Node: TCP.DatagramSocket-accessing234013 -Node: TCP.DatagramSocket-direct operations234916 -Node: TCP.DatagramSocketImpl235231 -Node: TCP.DatagramSocketImpl class-parameters235713 -Node: TCP.DatagramSocketImpl-accessing236014 -Node: TCP.DatagramSocketImpl-C constants236439 -Node: TCP.DatagramSocketImpl-socket operations236885 -Node: TCP.ICMPSocketImpl238039 -Node: TCP.ICMPSocketImpl class-C constants238396 -Node: TCP.ICMPSocketImpl class-implementation238657 -Node: TCP.IPAddress238998 -Node: TCP.IPAddress class-C call-outs239550 -Node: TCP.IPAddress class-C constants239818 -Node: TCP.IPAddress class-constants240130 -Node: TCP.IPAddress class-initialization240493 -Node: TCP.IPAddress class-instance creation241206 -Node: TCP.IPAddress-accessing245081 -Node: TCP.IPAddress-printing246219 -Node: TCP.MulticastSocket246446 -Node: TCP.MulticastSocket-instance creation246757 -Node: TCP.MulticastSocketImpl247588 -Node: TCP.MulticastSocketImpl-multicasting247916 -Node: TCP.OOBSocketImpl248703 -Node: TCP.OOBSocketImpl class-implementation249113 -Node: TCP.OOBSocketImpl-C constants249444 -Node: TCP.OOBSocketImpl-implementation249723 -Node: TCP.RawSocketImpl250123 -Node: TCP.RawSocketImpl class-parameters250425 -Node: TCP.ReadBuffer250667 -Node: TCP.ReadBuffer class-instance creation251139 -Node: TCP.ReadBuffer-buffer handling251610 -Node: TCP.ServerSocket252579 -Node: TCP.ServerSocket class-instance creation252960 -Node: TCP.ServerSocket-accessing254436 -Node: TCP.ServerSocket-initializing255361 -Node: TCP.Socket255756 -Node: TCP.Socket class-accessing256316 -Node: TCP.Socket class-instance creation257121 -Node: TCP.Socket class-tests257965 -Node: TCP.Socket class-well known ports259526 -Node: TCP.Socket-accessing261616 -Node: TCP.Socket-out-of-band data261929 -Node: TCP.Socket-printing262241 -Node: TCP.Socket-stream protocol262511 -Node: TCP.SocketAddress264606 -Node: TCP.SocketAddress class-abstract265129 -Node: TCP.SocketAddress class-accessing265573 -Node: TCP.SocketAddress class-C call-outs267576 -Node: TCP.SocketAddress class-host name lookup268017 -Node: TCP.SocketAddress class-initialization268825 -Node: TCP.SocketAddress-accessing270035 -Node: TCP.SocketImpl271042 -Node: TCP.SocketImpl class-parameters271424 -Node: TCP.SocketImpl-abstract271686 -Node: TCP.SocketImpl-socket operations272019 -Node: TCP.TCPSocketImpl272461 -Node: TCP.TCPSocketImpl class-C constants272857 -Node: TCP.TCPSocketImpl class-implementation273115 -Node: TCP.TCPSocketImpl-implementation273493 -Node: TCP.UDPSocketImpl273822 -Node: TCP.UDPSocketImpl class-C constants274226 -Node: TCP.UDPSocketImpl class-implementation274515 -Node: TCP.UDPSocketImpl-multicasting274891 -Node: TCP.WriteBuffer275799 -Node: TCP.WriteBuffer-buffer handling276213 -Node: Iconv/I18N276667 -Node: I18N.BigEndianFileStream278812 -Node: I18N.FileStreamSegment279178 -Node: I18N.FileStreamSegment-basic279608 -Node: I18N.LcCollate279926 -Node: I18N.LcCollate class-accessing280314 -Node: I18N.LcCollate-creating CollationKeys280851 -Node: I18N.LcCollate-reading281361 -Node: I18N.LcCollationKey281694 -Node: I18N.LcCollationKey class-instance creation282328 -Node: I18N.LcCollationKey-accessing282766 -Node: I18N.LcCollationKey-comparison283297 -Node: I18N.LcCollationMultipleWeights284013 -Node: I18N.LcCollationMultipleWeights-accessing284370 -Node: I18N.LcCollationSingleWeight284726 -Node: I18N.LcCollationSingleWeight class-accessing285135 -Node: I18N.LcCollationSingleWeight-accessing285438 -Node: I18N.LcCollationWeight285851 -Node: I18N.LcCollationWeight class-instance creation286814 -Node: I18N.LcCollationWeight-accessing287171 -Node: I18N.LcCollationWeightsSet287640 -Node: I18N.LcCollationWeightsSet-iteration288143 -Node: I18N.LcMessages288531 -Node: I18N.LcMessages class-accessing288992 -Node: I18N.LcMessages-accessing289377 -Node: I18N.LcMessages-opening MO files290114 -Node: I18N.LcMessagesCatalog290910 -Node: I18N.LcMessagesDomain291291 -Node: I18N.LcMessagesDomain class-opening MO files292407 -Node: I18N.LcMessagesDomain-handling the cache292798 -Node: I18N.LcMessagesDomain-querying293337 -Node: I18N.LcMessagesDummyDomain294460 -Node: I18N.LcMessagesMoFileVersion0294885 -Node: I18N.LcMessagesMoFileVersion0 class-documentation295584 -Node: I18N.LcMessagesMoFileVersion0 class-plurals303545 -Node: I18N.LcMessagesMoFileVersion0-flushing the cache304195 -Node: I18N.LcMessagesTerritoryDomain304636 -Node: I18N.LcMessagesTerritoryDomain class-instance creation305116 -Node: I18N.LcMonetary305496 -Node: I18N.LcMonetary class-accessing306036 -Node: I18N.LcMonetary-printing306422 -Node: I18N.LcMonetaryISO307221 -Node: I18N.LcMonetaryISO class-accessing307521 -Node: I18N.LcNumeric307797 -Node: I18N.LcNumeric class-accessing308278 -Node: I18N.LcNumeric-printing308659 -Node: I18N.LcPrintFormats309163 -Node: I18N.LcPrintFormats-printing309732 -Node: I18N.LcTime310242 -Node: I18N.LcTime class-accessing310746 -Node: I18N.LcTime-printing311112 -Node: I18N.LcTime-tests313412 -Node: I18N.Locale313646 -Node: I18N.Locale class-initialization314420 -Node: I18N.Locale class-instance creation314808 -Node: I18N.Locale-C call-outs315462 -Node: I18N.Locale-subobjects315747 -Node: I18N.LocaleConventions316376 -Node: I18N.LocaleConventions class-accessing316828 -Node: I18N.LocaleConventions-accessing317552 -Node: I18N.LocaleData317883 -Node: I18N.LocaleData class-accessing318401 -Node: I18N.LocaleData class-database319472 -Node: I18N.LocaleData-accessing320109 -Node: I18N.LocaleData-initialization321282 -Node: I18N.RTEAlternativeNode321682 -Node: I18N.RTEAlternativeNode class-compiling322063 -Node: I18N.RTEAlternativeNode-computing322483 -Node: I18N.RTEBinaryNode323059 -Node: I18N.RTEBinaryNode class-compiling323469 -Node: I18N.RTEBinaryNode-compiling323837 -Node: I18N.RTEBinaryNode-computing324148 -Node: I18N.RTELiteralNode324690 -Node: I18N.RTELiteralNode class-initializing325059 -Node: I18N.RTELiteralNode-computing325372 -Node: I18N.RTENegationNode325802 -Node: I18N.RTENegationNode class-initializing326178 -Node: I18N.RTENegationNode-computing326493 -Node: I18N.RTEParameterNode326950 -Node: I18N.RTEParameterNode-computing327279 -Node: I18N.RunTimeExpression327596 -Node: I18N.RunTimeExpression class-compiling328050 -Node: I18N.RunTimeExpression class-initializing328674 -Node: I18N.RunTimeExpression class-instance creation329049 -Node: I18N.RunTimeExpression-computing329424 -Node: XML329849 -Node: Building a DOM from XML330071 -Node: Building XML335460 -Node: Using DTDs338628 -Node: XSL Processing341882 -Node: Attributions343302 -Node: Class index343646 -Node: Method index352015 -Node: Cross-reference523030 +Node: Top1026 +Node: BLOX2437 +Node: BLOX.BArc5047 +Node: BLOX.BArc-accessing5360 +Node: BLOX.BBalloon6906 +Node: BLOX.BBalloon class-accessing7378 +Node: BLOX.BBalloon-accessing7806 +Node: BLOX.BBalloon-initializing8202 +Node: BLOX.BBoundingBox8452 +Node: BLOX.BBoundingBox-accessing8923 +Node: BLOX.BButton11664 +Node: BLOX.BButton class-instance creation12139 +Node: BLOX.BButton-accessing12487 +Node: BLOX.BButtonLike16672 +Node: BLOX.BButtonLike-accessing17019 +Node: BLOX.BCanvas17820 +Node: BLOX.BCanvas-accessing18586 +Node: BLOX.BCanvas-geometry management19442 +Node: BLOX.BCanvas-widget protocol21161 +Node: BLOX.BCanvasObject22386 +Node: BLOX.BCanvasObject class-instance creation22928 +Node: BLOX.BCanvasObject-accessing23345 +Node: BLOX.BCanvasObject-widget protocol25295 +Node: BLOX.BCheckMenuItem26580 +Node: BLOX.BCheckMenuItem class-instance creation27027 +Node: BLOX.BCheckMenuItem-accessing27350 +Node: BLOX.BColorButton27812 +Node: BLOX.BColorButton-accessing28241 +Node: BLOX.BContainer28708 +Node: BLOX.BContainer-accessing29155 +Node: BLOX.BDialog29822 +Node: BLOX.BDialog class-instance creation30445 +Node: BLOX.BDialog class-prompters31362 +Node: BLOX.BDialog-accessing34899 +Node: BLOX.BDialog-widget protocol36107 +Node: BLOX.BDropDown37009 +Node: BLOX.BDropDown-accessing37941 +Node: BLOX.BDropDown-callbacks43205 +Node: BLOX.BDropDown-flexibility43831 +Node: BLOX.BDropDown-list box accessing45326 +Node: BLOX.BDropDown-widget protocol48376 +Node: BLOX.BDropDownEdit49319 +Node: BLOX.BDropDownEdit-accessing49855 +Node: BLOX.BDropDownEdit-accessing-overrides52019 +Node: BLOX.BDropDownEdit-text accessing52336 +Node: BLOX.BDropDownList53746 +Node: BLOX.BDropDownList-accessing54295 +Node: BLOX.BDropDownList-callbacks56982 +Node: BLOX.BDropDownList-list box accessing57682 +Node: BLOX.BEdit58122 +Node: BLOX.BEdit class-instance creation58539 +Node: BLOX.BEdit-accessing58877 +Node: BLOX.BEdit-widget protocol63240 +Node: BLOX.BEmbeddedImage65218 +Node: BLOX.BEmbeddedImage-accessing65569 +Node: BLOX.BEmbeddedText66518 +Node: BLOX.BEmbeddedText-accessing66880 +Node: BLOX.BEventSet69825 +Node: BLOX.BEventSet class-initializing70523 +Node: BLOX.BEventSet-accessing70991 +Node: BLOX.BEventSet-initializing71280 +Node: BLOX.BEventTarget71663 +Node: BLOX.BEventTarget-intercepting events72034 +Node: BLOX.BExtended78130 +Node: BLOX.BExtended-accessing78948 +Node: BLOX.BExtended-customization79212 +Node: BLOX.BForm80226 +Node: BLOX.BForm-accessing80599 +Node: BLOX.BImage82046 +Node: BLOX.BImage class-arrows82631 +Node: BLOX.BImage class-GNU83133 +Node: BLOX.BImage class-icons83387 +Node: BLOX.BImage class-instance creation83900 +Node: BLOX.BImage class-small icons84658 +Node: BLOX.BImage-accessing85040 +Node: BLOX.BImage-image management88168 +Node: BLOX.BImage-widget protocol90694 +Node: BLOX.BLabel91003 +Node: BLOX.BLabel class-initialization91395 +Node: BLOX.BLabel class-instance creation91675 +Node: BLOX.BLabel-accessing92060 +Node: BLOX.BLine96759 +Node: BLOX.BLine-accessing97105 +Node: BLOX.BList97675 +Node: BLOX.BList-accessing98050 +Node: BLOX.BList-widget protocol110059 +Node: BLOX.Blox111442 +Node: BLOX.Blox class-C call-outs112571 +Node: BLOX.Blox class-event dispatching112900 +Node: BLOX.Blox class-instance creation113903 +Node: BLOX.Blox class-utility114353 +Node: BLOX.Blox-accessing117546 +Node: BLOX.Blox-basic118900 +Node: BLOX.Blox-creating children119497 +Node: BLOX.Blox-customization120518 +Node: BLOX.Blox-widget protocol121315 +Node: BLOX.BMenu123576 +Node: BLOX.BMenu class-instance creation123974 +Node: BLOX.BMenu-accessing124391 +Node: BLOX.BMenu-callback registration125240 +Node: BLOX.BMenuBar126338 +Node: BLOX.BMenuBar-accessing126673 +Node: BLOX.BMenuItem126908 +Node: BLOX.BMenuItem class-instance creation127398 +Node: BLOX.BMenuItem-accessing127802 +Node: BLOX.BMenuObject128630 +Node: BLOX.BMenuObject-accessing129029 +Node: BLOX.BMenuObject-callback131368 +Node: BLOX.BOval132324 +Node: BLOX.BPolyline132648 +Node: BLOX.BPolyline-accessing132987 +Node: BLOX.BPopupMenu135324 +Node: BLOX.BPopupMenu-widget protocol135741 +Node: BLOX.BPopupWindow135958 +Node: BLOX.BPopupWindow-geometry management136561 +Node: BLOX.BPrimitive138629 +Node: BLOX.BPrimitive-accessing139020 +Node: BLOX.BProgress139251 +Node: BLOX.BProgress-accessing139583 +Node: BLOX.BRadioButton140829 +Node: BLOX.BRadioButton-accessing141178 +Node: BLOX.BRadioGroup142066 +Node: BLOX.BRadioGroup-accessing142699 +Node: BLOX.BRadioGroup-widget protocol143174 +Node: BLOX.BRectangle143504 +Node: BLOX.BRectangle-accessing143852 +Node: BLOX.BScrolledCanvas144340 +Node: BLOX.BSpline144769 +Node: BLOX.BSpline-accessing145106 +Node: BLOX.BText145537 +Node: BLOX.BText class-accessing146162 +Node: BLOX.BText class-instance creation146505 +Node: BLOX.BText-accessing146873 +Node: BLOX.BText-attributes152720 +Node: BLOX.BText-geometry management153991 +Node: BLOX.BText-images155570 +Node: BLOX.BText-inserting text157252 +Node: BLOX.BText-position & lines159268 +Node: BLOX.BTextAttributes161075 +Node: BLOX.BTextAttributes class-instance-creation shortcuts161541 +Node: BLOX.BTextAttributes-colors164400 +Node: BLOX.BTextAttributes-setting attributes165489 +Node: BLOX.BTextBindings169643 +Node: BLOX.BTextBindings class-instance creation170187 +Node: BLOX.BTextTags170439 +Node: BLOX.BToggle170808 +Node: BLOX.BToggle-accessing171197 +Node: BLOX.BTransientWindow172095 +Node: BLOX.BTransientWindow class-instance creation172614 +Node: BLOX.BTransientWindow-widget protocol173233 +Node: BLOX.BViewport173825 +Node: BLOX.BViewport-accessing174266 +Node: BLOX.BViewport-scrollbars174526 +Node: BLOX.BWidget175486 +Node: BLOX.BWidget class-popups176055 +Node: BLOX.BWidget-accessing177310 +Node: BLOX.BWidget-customization181925 +Node: BLOX.BWidget-geometry management183554 +Node: BLOX.BWidget-widget protocol200060 +Node: BLOX.BWindow202100 +Node: BLOX.BWindow class-instance creation202553 +Node: BLOX.BWindow-accessing202990 +Node: BLOX.BWindow-widget protocol205712 +Node: BLOX.Gui210422 +Node: BLOX.Gui-accessing210822 +Node: TCP211083 +Node: TCP.AbstractSocket212483 +Node: TCP.AbstractSocket class-defaults213097 +Node: TCP.AbstractSocket class-instance creation213983 +Node: TCP.AbstractSocket class-timed-out operations214578 +Node: TCP.AbstractSocket-accessing215569 +Node: TCP.AbstractSocket-printing216714 +Node: TCP.AbstractSocket-socket options217022 +Node: TCP.AbstractSocket-stream protocol217955 +Node: TCP.AbstractSocket-testing218528 +Node: TCP.AbstractSocketImpl218804 +Node: TCP.AbstractSocketImpl class-abstract219553 +Node: TCP.AbstractSocketImpl class-C call-outs220007 +Node: TCP.AbstractSocketImpl class-C constants221064 +Node: TCP.AbstractSocketImpl class-socket creation221609 +Node: TCP.AbstractSocketImpl-accessing221954 +Node: TCP.AbstractSocketImpl-asynchronous operations223115 +Node: TCP.AbstractSocketImpl-C call-outs223851 +Node: TCP.AbstractSocketImpl-socket operations224899 +Node: TCP.AbstractSocketImpl-socket options226853 +Node: TCP.Datagram228827 +Node: TCP.Datagram class-instance creation229146 +Node: TCP.Datagram-accessing230457 +Node: TCP.DatagramSocket231490 +Node: TCP.DatagramSocket class-accessing231997 +Node: TCP.DatagramSocket class-initialization232646 +Node: TCP.DatagramSocket class-instance creation233008 +Node: TCP.DatagramSocket-accessing234023 +Node: TCP.DatagramSocket-direct operations234926 +Node: TCP.DatagramSocketImpl235241 +Node: TCP.DatagramSocketImpl class-parameters235723 +Node: TCP.DatagramSocketImpl-accessing236024 +Node: TCP.DatagramSocketImpl-C constants236449 +Node: TCP.DatagramSocketImpl-socket operations236895 +Node: TCP.ICMPSocketImpl238049 +Node: TCP.ICMPSocketImpl class-C constants238406 +Node: TCP.ICMPSocketImpl class-implementation238667 +Node: TCP.IPAddress239008 +Node: TCP.IPAddress class-C call-outs239560 +Node: TCP.IPAddress class-C constants239828 +Node: TCP.IPAddress class-constants240140 +Node: TCP.IPAddress class-initialization240503 +Node: TCP.IPAddress class-instance creation241216 +Node: TCP.IPAddress-accessing245091 +Node: TCP.IPAddress-printing246229 +Node: TCP.MulticastSocket246456 +Node: TCP.MulticastSocket-instance creation246767 +Node: TCP.MulticastSocketImpl247598 +Node: TCP.MulticastSocketImpl-multicasting247926 +Node: TCP.OOBSocketImpl248713 +Node: TCP.OOBSocketImpl class-implementation249123 +Node: TCP.OOBSocketImpl-C constants249454 +Node: TCP.OOBSocketImpl-implementation249733 +Node: TCP.RawSocketImpl250133 +Node: TCP.RawSocketImpl class-parameters250435 +Node: TCP.ReadBuffer250677 +Node: TCP.ReadBuffer class-instance creation251149 +Node: TCP.ReadBuffer-buffer handling251620 +Node: TCP.ServerSocket252589 +Node: TCP.ServerSocket class-instance creation252970 +Node: TCP.ServerSocket-accessing254446 +Node: TCP.ServerSocket-initializing255371 +Node: TCP.Socket255766 +Node: TCP.Socket class-accessing256326 +Node: TCP.Socket class-instance creation257131 +Node: TCP.Socket class-tests257975 +Node: TCP.Socket class-well known ports259536 +Node: TCP.Socket-accessing261626 +Node: TCP.Socket-out-of-band data261939 +Node: TCP.Socket-printing262251 +Node: TCP.Socket-stream protocol262521 +Node: TCP.SocketAddress264616 +Node: TCP.SocketAddress class-abstract265139 +Node: TCP.SocketAddress class-accessing265583 +Node: TCP.SocketAddress class-C call-outs267586 +Node: TCP.SocketAddress class-host name lookup268027 +Node: TCP.SocketAddress class-initialization268835 +Node: TCP.SocketAddress-accessing270045 +Node: TCP.SocketImpl271052 +Node: TCP.SocketImpl class-parameters271434 +Node: TCP.SocketImpl-abstract271696 +Node: TCP.SocketImpl-socket operations272029 +Node: TCP.TCPSocketImpl272471 +Node: TCP.TCPSocketImpl class-C constants272867 +Node: TCP.TCPSocketImpl class-implementation273125 +Node: TCP.TCPSocketImpl-implementation273503 +Node: TCP.UDPSocketImpl273832 +Node: TCP.UDPSocketImpl class-C constants274236 +Node: TCP.UDPSocketImpl class-implementation274525 +Node: TCP.UDPSocketImpl-multicasting274901 +Node: TCP.WriteBuffer275809 +Node: TCP.WriteBuffer-buffer handling276223 +Node: Iconv/I18N276677 +Node: I18N.BigEndianFileStream278822 +Node: I18N.FileStreamSegment279188 +Node: I18N.FileStreamSegment-basic279618 +Node: I18N.LcCollate279936 +Node: I18N.LcCollate class-accessing280689 +Node: I18N.LcCollate-creating CollationKeys281226 +Node: I18N.LcCollate-reading281736 +Node: I18N.LcCollationKey282069 +Node: I18N.LcCollationKey class-instance creation282703 +Node: I18N.LcCollationKey-accessing283141 +Node: I18N.LcCollationKey-comparison283672 +Node: I18N.LcCollationMultipleWeights284388 +Node: I18N.LcCollationMultipleWeights-accessing284745 +Node: I18N.LcCollationSingleWeight285101 +Node: I18N.LcCollationSingleWeight class-accessing285510 +Node: I18N.LcCollationSingleWeight-accessing285813 +Node: I18N.LcCollationWeight286226 +Node: I18N.LcCollationWeight class-instance creation287189 +Node: I18N.LcCollationWeight-accessing287546 +Node: I18N.LcCollationWeightsSet288015 +Node: I18N.LcCollationWeightsSet-iteration288518 +Node: I18N.LcMessages288906 +Node: I18N.LcMessages class-accessing289367 +Node: I18N.LcMessages-accessing289752 +Node: I18N.LcMessages-opening MO files290489 +Node: I18N.LcMessagesCatalog291285 +Node: I18N.LcMessagesDomain291666 +Node: I18N.LcMessagesDomain class-opening MO files292782 +Node: I18N.LcMessagesDomain-handling the cache293173 +Node: I18N.LcMessagesDomain-querying293712 +Node: I18N.LcMessagesDummyDomain294835 +Node: I18N.LcMessagesMoFileVersion0295260 +Node: I18N.LcMessagesMoFileVersion0 class-documentation295959 +Node: I18N.LcMessagesMoFileVersion0 class-plurals303938 +Node: I18N.LcMessagesMoFileVersion0-flushing the cache304588 +Node: I18N.LcMessagesTerritoryDomain305029 +Node: I18N.LcMessagesTerritoryDomain class-instance creation305509 +Node: I18N.LcMonetary305889 +Node: I18N.LcMonetary class-accessing306429 +Node: I18N.LcMonetary-printing306815 +Node: I18N.LcMonetaryISO307614 +Node: I18N.LcMonetaryISO class-accessing307914 +Node: I18N.LcNumeric308190 +Node: I18N.LcNumeric class-accessing308671 +Node: I18N.LcNumeric-printing309052 +Node: I18N.LcPrintFormats309556 +Node: I18N.LcPrintFormats-printing310125 +Node: I18N.LcTime310635 +Node: I18N.LcTime class-accessing311139 +Node: I18N.LcTime-printing311505 +Node: I18N.LcTime-tests313805 +Node: I18N.Locale314039 +Node: I18N.Locale class-initialization314750 +Node: I18N.Locale class-instance creation315138 +Node: I18N.Locale-C call-outs315792 +Node: I18N.Locale-subobjects316077 +Node: I18N.LocaleConventions316706 +Node: I18N.LocaleConventions class-accessing317158 +Node: I18N.LocaleConventions-accessing317882 +Node: I18N.LocaleData318213 +Node: I18N.LocaleData class-accessing318731 +Node: I18N.LocaleData class-database319802 +Node: I18N.LocaleData-accessing320439 +Node: I18N.LocaleData-initialization321612 +Node: I18N.RTEAlternativeNode322012 +Node: I18N.RTEAlternativeNode class-compiling322393 +Node: I18N.RTEAlternativeNode-computing322813 +Node: I18N.RTEBinaryNode323389 +Node: I18N.RTEBinaryNode class-compiling323799 +Node: I18N.RTEBinaryNode-compiling324167 +Node: I18N.RTEBinaryNode-computing324478 +Node: I18N.RTELiteralNode325020 +Node: I18N.RTELiteralNode class-initializing325389 +Node: I18N.RTELiteralNode-computing325702 +Node: I18N.RTENegationNode326132 +Node: I18N.RTENegationNode class-initializing326508 +Node: I18N.RTENegationNode-computing326823 +Node: I18N.RTEParameterNode327280 +Node: I18N.RTEParameterNode-computing327609 +Node: I18N.RunTimeExpression327926 +Node: I18N.RunTimeExpression class-compiling328380 +Node: I18N.RunTimeExpression class-initializing329004 +Node: I18N.RunTimeExpression class-instance creation329379 +Node: I18N.RunTimeExpression-computing329754 +Node: XML330179 +Node: Building a DOM from XML330401 +Node: Building XML335790 +Node: Using DTDs338958 +Node: XSL Processing342212 +Node: Attributions343632 +Node: Class index343976 +Node: Method index352345 +Node: Cross-reference523360  End Tag Table diff -ru smalltalk-2.3.5/doc/gst-libs.info-1 smalltalk-2.3.6/doc/gst-libs.info-1 --- smalltalk-2.3.5/doc/gst-libs.info-1 2007-06-02 17:48:27.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-libs.info-1 2007-09-06 09:43:07.000000000 +0200 @@ -6,8 +6,8 @@ * Libraries: (gst-libs). The GNU Smalltalk class libraries. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2006 Free Software Foundation, Inc. @@ -35,8 +35,8 @@ This document describes the class libraries that are distributed together with the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2006 Free Software Foundation, Inc. @@ -7969,6 +7969,17 @@ Defined in namespace I18N Superclass: I18N.LocaleData Category: i18n-Collation + This object is a factory of CollationKey objects; they are + obtained by sending either #? or #collationKeyFor:, with a String + as the only argument. + + The #? binary message allows for easily typed idioms: + + (aLocale ? string1 < string2) ifTrue: [ ... ] + + which could be interpreted as "hey, aLocale, tell me if string1 is + < string2!" + * Menu: diff -ru smalltalk-2.3.5/doc/gst-libs.info-2 smalltalk-2.3.6/doc/gst-libs.info-2 --- smalltalk-2.3.5/doc/gst-libs.info-2 2007-06-02 17:48:27.000000000 +0200 +++ smalltalk-2.3.6/doc/gst-libs.info-2 2007-09-06 09:43:07.000000000 +0200 @@ -6,8 +6,8 @@ * Libraries: (gst-libs). The GNU Smalltalk class libraries. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last -updated on 1 June 2007. + This file documents GNU Smalltalk Version 2.3.6. It was last +updated on 6 September 2007. Copyright (C) 1988-92, 1994-95, 1999-2006 Free Software Foundation, Inc. @@ -32,35 +32,41 @@ fileFormatDescription The Format of GNU MO Files (excerpt of the GNU gettext manual) - ============================================================== The - format of the generated MO files is best described by a picture, - which appears below. The first two words serve the identification - of the file. The magic number will always signal GNU MO files. - The number is stored in the byte order of the generating machine, - so the magic number really is two numbers: `0x950412de' and - `0xde120495'. The second word describes the current revision - of the file format. For now the revision is 0. This might change - in future versions, and ensures that the readers of MO files can - distinguish new formats from old ones, so that both can be handled - correctly. The version is kept separate from the magic number, - instead of using different magic numbers for different formats, - mainly because `/etc/magic' is not updated often. It might be - better to have magic separated from internal format version - identification. Follow a number of pointers to later tables in - the file, allowing for the extension of the prefix part of MO - files without having to recompile programs reading them. This - might become useful for later inserting a few flag bits, - indication about the charset used, new tables, or other things. + ============================================================== + + The format of the generated MO files is best described by a + picture, which appears below. + + The first two words serve the identification of the file. The + magic number will always signal GNU MO files. The number is + stored in the byte order of the generating machine, so the magic + number really is two numbers: `0x950412de' and `0xde120495'. + The second word describes the current revision of the file format. + For now the revision is 0. This might change in future versions, + and ensures that the readers of MO files can distinguish new + formats from old ones, so that both can be handled correctly. The + version is kept separate from the magic number, instead of using + different magic numbers for different formats, mainly because + `/etc/magic' is not updated often. It might be better to have + magic separated from internal format version identification. + + Follow a number of pointers to later tables in the file, allowing + for the extension of the prefix part of MO files without having to + recompile programs reading them. This might become useful for + later inserting a few flag bits, indication about the charset + used, new tables, or other things. + Then, at offset O and offset T in the picture, two tables of string descriptors can be found. In both tables, each string descriptor uses two 32 bits integers, one for the string length, another for the offset of the string in the MO file, counting in bytes from the start of the file. The first table contains descriptors for the original strings, and is sorted so the original strings are in - increasing lexicographical order. The second table contains + increasing lexicographical order. The second table contains descriptors for the translated strings, and is parallel to the first table: to find the corresponding translation one has to access the array slot in the second array with the same index. + Having the original strings sorted enables the use of simple binary search, for when the MO file does not contain an hashing table, or for when it is not practical to use the hashing table provided in @@ -69,81 +75,95 @@ system information attached to that particular MO file, and the empty string necessarily becomes the first in both the original and translated tables, making the system information very easy to - find. The size S of the hash table can be zero. In this case, - the hash table itself is not contained in the MO file. Some - people might prefer this because a precomputed hashing table takes - disk space, and does not win *that* much speed. The hash table - contains indices to the sorted array of strings in the MO file. - Conflict resolution is done by double hashing. The precise - hashing algorithm used is fairly dependent of GNU `gettext' code, - and is not documented here. As for the strings themselves, they - follow the hash file, and each is terminated with a , and - this is not counted in the length which appears in the - string descriptor. The `msgfmt' program has an option - selecting the alignment for MO file strings. With this option, - each string is separately aligned so it starts at an offset which - is a multiple of the alignment value. On some RISC machines, a - correct alignment will speed things up. Nothing prevents a MO - file from having embedded s in strings. However, the program - interface currently used already presumes that strings are - terminated, so embedded s are somewhat useless. But MO file - format is general enough so other interfaces would be later - possible, if for example, we ever want to implement wide characters - right in MO files, where bytes may accidently appear. This - particular issue has been strongly debated in the GNU `gettext' - development forum, and it is expectable that MO file format will - evolve or change over time. It is even possible that many formats - may later be supported concurrently. But surely, we have to start - somewhere, and the MO file format described here is a good start. - Nothing is cast in concrete, and the format may later evolve - fairly easily, so we should feel comfortable with the current - approach. byte +-----------------------------------------+ 0 | - magic number = 0x950412de | | - | 4 | file format revision = 0 - | | | 8 | - number of strings | == N | - | 12 | offset of table with original - strings | == O | | 16 | - offset of table with translation strings | == T | - | 20 | size of hashing table - | == S | | 24 | offset - of hashing table | == H | - | . . . - (possibly more entries later) . . - . | - | O | length & offset 0th string ---------------. O + 8 - | length & offset 1st string -----------------. ... - ... | | O + ((N-1)*8)| length & offset - (N-1)th string | | | | - | | | T | length & offset 0th translation --------------. - T + 8 | length & offset 1st translation ----------------. ... - ... | | | | T + ((N-1)*8)| - length & offset (N-1)th translation | | | | | | - | | | | | H | start hash - table | | | | | ... - ... | | | | H + S * 4 | end hash table - | | | | | | - | | | | | | NUL terminated 0th string <---------------' | | | - | | | | | | NUL terminated - 1st string <-----------------' | | | - | | | ... ... - | | | | | | | - NUL terminated 0th translation <--------------' | | - | | | NUL terminated 1st translation + find. + + The size S of the hash table can be zero. In this case, the hash + table itself is not contained in the MO file. Some people might + prefer this because a precomputed hashing table takes disk space, + and does not win *that* much speed. The hash table contains + indices to the sorted array of strings in the MO file. Conflict + resolution is done by double hashing. The precise hashing + algorithm used is fairly dependent of GNU `gettext' code, and is + not documented here. + + As for the strings themselves, they follow the hash file, and each + is terminated with a , and this is not counted in the + length which appears in the string descriptor. The `msgfmt' + program has an option selecting the alignment for MO file strings. + With this option, each string is separately aligned so it starts + at an offset which is a multiple of the alignment value. On some + RISC machines, a correct alignment will speed things up. + + Nothing prevents a MO file from having embedded s in strings. + However, the program interface currently used already presumes that + strings are terminated, so embedded s are somewhat + useless. But MO file format is general enough so other interfaces + would be later possible, if for example, we ever want to implement + wide characters right in MO files, where bytes may + accidently appear. + + This particular issue has been strongly debated in the GNU + `gettext' development forum, and it is expectable that MO file + format will evolve or change over time. It is even possible that + many formats may later be supported concurrently. But surely, we + have to start somewhere, and the MO file format described here is + a good start. Nothing is cast in concrete, and the format may + later evolve fairly easily, so we should feel comfortable with the + current approach. + + byte +-----------------------------------------+ 0 | magic number + = 0x950412de | | + | 4 | file format revision = 0 | | + | 8 | number of strings + | == N | + | 12 | offset of table with original strings | == O | + | 16 | offset of table with + translation strings | == T | + | 20 | size of hashing table | == S | + | 24 | offset of hashing table + | == H | | . + . . (possibly more + entries later) . . + . | | O | + length & offset 0th string ---------------. O + 8 | length & + offset 1st string -----------------. ... + ... | | O + ((N-1)*8)| length & offset (N-1)th string + | | | | | | | + T | length & offset 0th translation --------------. T + 8 | + length & offset 1st translation ----------------. ... + ... | | | | T + ((N-1)*8)| length & + offset (N-1)th translation | | | | | | + | | | | | H | start hash table + | | | | | ... + ... | | | | H + S * 4 | end hash table + | | | | | | | | | | | + | NUL terminated 0th string <---------------' | | | | + | | | | | NUL terminated 1st string + <-----------------' | | | | + | | ... ... | | | + | | | | NUL + terminated 0th translation <--------------' | | + | | | NUL terminated 1st translation <----------------' | | ... - ... | - | +-----------------------------------------+ + ... | + | +-----------------------------------------+ + Locating Message Catalog Files ----------------------------- + Because many different languages for many different packages have to be stored we need some way to add these information to file - message catalog files. The way usually used in Unix + message catalog files. The way usually used in Unix environments is have this encoding in the file name. This is also done here. The directory name given in `bindtextdomain's second argument (or the default directory), followed by the value and name of the locale and the domain name are concatenated: - DIR_NAME/LOCALE/LC_CATEGORY/DOMAIN_NAME.mo The default value for - DIR_NAME is system specific. For the GNU library, and for - packages adhering to its conventions, it's: /usr/local/share/locale + + DIR_NAME/LOCALE/LC_CATEGORY/DOMAIN_NAME.mo + + The default value for DIR_NAME is system specific. For the GNU + library, and for packages adhering to its conventions, it's: + /usr/local/share/locale + LOCALE is the value of the locale whose name is this `LC_CATEGORY'. For `gettext' and `dgettext' this locale is always `LC_MESSAGES'. @@ -464,17 +484,11 @@ Defined in namespace I18N Superclass: I18N.LocaleData Category: i18n-Messages - This object is a factory of CollationKey objects; they are - obtained by sending either #? or #collationKeyFor:, with a String - as the only argument. - - The #? binary message allows for easily typed idioms: - - (aLocale ? string1 < string2) ifTrue: [ ... ] - - which could be interpreted as "hey, aLocale, tell me if string1 is - < string2!" - + This object is an abstract superclass of objects related to the + territory and language in which the program is being used. + Instances of it are asked about information on the current locale, + and provide a means to be asked for things with a common idiom, + the #? binary message. * Menu: diff -ru smalltalk-2.3.5/doc/gst.1 smalltalk-2.3.6/doc/gst.1 --- smalltalk-2.3.5/doc/gst.1 2007-06-02 17:48:19.000000000 +0200 +++ smalltalk-2.3.6/doc/gst.1 2007-09-06 09:41:20.000000000 +0200 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH SMALLTALK "1" "June 2007" "Smalltalk version 2.3.4" "User Commands" +.TH SMALLTALK "1" "September 2007" "Smalltalk version 2.3.6" "User Commands" .SH NAME Smalltalk \- the GNU Smalltalk virtual machine .SH DESCRIPTION diff -ru smalltalk-2.3.5/doc/gst.info smalltalk-2.3.6/doc/gst.info --- smalltalk-2.3.5/doc/gst.info 2007-06-02 17:48:23.000000000 +0200 +++ smalltalk-2.3.6/doc/gst.info 2007-09-06 09:41:00.000000000 +0200 @@ -6,7 +6,7 @@ * GNU Smalltalk: (gst). The GNU Smalltalk environment. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last + This file documents GNU Smalltalk Version 2.3.6. It was last updated on 1 June 2007. Copyright (C) 1988, 1989, 1991, 1992, 1994, 1995, 1999, 2000, 2001, diff -ru smalltalk-2.3.5/doc/gst.info-1 smalltalk-2.3.6/doc/gst.info-1 --- smalltalk-2.3.5/doc/gst.info-1 2007-06-02 17:48:23.000000000 +0200 +++ smalltalk-2.3.6/doc/gst.info-1 2007-09-06 09:41:00.000000000 +0200 @@ -6,7 +6,7 @@ * GNU Smalltalk: (gst). The GNU Smalltalk environment. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last + This file documents GNU Smalltalk Version 2.3.6. It was last updated on 1 June 2007. Copyright (C) 1988, 1989, 1991, 1992, 1994, 1995, 1999, 2000, 2001, @@ -35,7 +35,7 @@ This document describes installing and operating the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.3.5. It was last + This file documents GNU Smalltalk Version 2.3.6. It was last updated on 1 June 2007. Copyright (C) 1988, 1989, 1991, 1992, 1994, 1995, 1999, 2000, 2001, diff -ru smalltalk-2.3.5/doc/gst.info-2 smalltalk-2.3.6/doc/gst.info-2 --- smalltalk-2.3.5/doc/gst.info-2 2007-06-02 17:48:23.000000000 +0200 +++ smalltalk-2.3.6/doc/gst.info-2 2007-09-06 09:41:00.000000000 +0200 @@ -6,7 +6,7 @@ * GNU Smalltalk: (gst). The GNU Smalltalk environment. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.3.5. It was last + This file documents GNU Smalltalk Version 2.3.6. It was last updated on 1 June 2007. Copyright (C) 1988, 1989, 1991, 1992, 1994, 1995, 1999, 2000, 2001, diff -ru smalltalk-2.3.5/doc/i18n.texi smalltalk-2.3.6/doc/i18n.texi --- smalltalk-2.3.5/doc/i18n.texi 2006-12-11 17:10:48.000000000 +0100 +++ smalltalk-2.3.6/doc/i18n.texi 2007-09-06 09:41:18.000000000 +0200 @@ -215,6 +215,14 @@ @item Defined in namespace I18N @itemx Superclass: I18N.LocaleData @itemx Category: i18n-Collation +This object is a factory of CollationKey objects; they are obtained by +sending either @-#? or @-#collationKeyFor:@-, with a String as the only argument. + +The @-#? binary message allows for easily typed idioms:@- + + (aLocale ? string1 < string2) ifTrue:@- [ ... ] + +which could be interpreted as "hey, aLocale, tell me if string1 is < string2!" @end table @@ -835,10 +843,12 @@ @item fileFormatDescription The Format of GNU MO Files (excerpt of the GNU gettext manual) ============================================================== + The format of the generated MO files is best described by a picture, which appears below. + The first two words serve the identification of the file. The magic -number will always signal GNU MO files. The number is stored in the +number will always signal GNU MO files. The number is stored in the byte order of the generating machine, so the magic number really is two numbers:@- `0x950412de' and `0xde120495'. The second word describes the current revision of the file format. For now the revision is 0. This @@ -848,21 +858,24 @@ instead of using different magic numbers for different formats, mainly because `/etc/magic' is not updated often. It might be better to have magic separated from internal format version identification. + Follow a number of pointers to later tables in the file, allowing for the extension of the prefix part of MO files without having to recompile programs reading them. This might become useful for later inserting a few flag bits, indication about the charset used, new tables, or other things. + Then, at offset O and offset T in the picture, two tables of string descriptors can be found. In both tables, each string descriptor uses two 32 bits integers, one for the string length, another for the offset of the string in the MO file, counting in bytes from the start of the file. The first table contains descriptors for the original strings, and is sorted so the original strings are in increasing lexicographical -order. The second table contains descriptors for the translated +order. The second table contains descriptors for the translated strings, and is parallel to the first table:@- to find the corresponding translation one has to access the array slot in the second array with the same index. + Having the original strings sorted enables the use of simple binary search, for when the MO file does not contain an hashing table, or for when it is not practical to use the hashing table provided in the MO @@ -871,26 +884,30 @@ attached to that particular MO file, and the empty string necessarily becomes the first in both the original and translated tables, making the system information very easy to find. + The size S of the hash table can be zero. In this case, the hash table itself is not contained in the MO file. Some people might prefer this because a precomputed hashing table takes disk space, and does not -win *that* much speed. The hash table contains indices to the sorted +win *that* much speed. The hash table contains indices to the sorted array of strings in the MO file. Conflict resolution is done by double hashing. The precise hashing algorithm used is fairly dependent of GNU `gettext' code, and is not documented here. + As for the strings themselves, they follow the hash file, and each is terminated with a , and this is not counted in the length -which appears in the string descriptor. The `msgfmt' program has an +which appears in the string descriptor. The `msgfmt' program has an option selecting the alignment for MO file strings. With this option, each string is separately aligned so it starts at an offset which is a multiple of the alignment value. On some RISC machines, a correct alignment will speed things up. + Nothing prevents a MO file from having embedded s in strings. However, the program interface currently used already presumes that strings are terminated, so embedded s are somewhat useless. But MO file format is general enough so other interfaces would be later possible, if for example, we ever want to implement wide characters right in MO files, where bytes may accidently appear. + This particular issue has been strongly debated in the GNU `gettext' development forum, and it is expectable that MO file format will evolve or change over time. It is even possible that many formats may later @@ -898,9 +915,10 @@ the MO file format described here is a good start. Nothing is cast in concrete, and the format may later evolve fairly easily, so we should feel comfortable with the current approach. + byte +------------------------------------------+ -0 | magic number = 0x950412de | +0 | magic number = 0x950412de | | | 4 | file format revision = 0 | | | @@ -945,19 +963,24 @@ ... ... | | +------------------------------------------+ + Locating Message Catalog Files ------------------------------ + Because many different languages for many different packages have to be stored we need some way to add these information to file message -catalog files. The way usually used in Unix environments is have this +catalog files. The way usually used in Unix environments is have this encoding in the file name. This is also done here. The directory name given in `bindtextdomain's second argument (or the default directory), followed by the value and name of the locale and the domain name are concatenated:@- + DIR_NAME/LOCALE/LC_CATEGORY/DOMAIN_NAME.mo + The default value for DIR_NAME is system specific. For the GNU library, and for packages adhering to its conventions, it's:@- /usr/local/share/locale + LOCALE is the value of the locale whose name is this `LC_CATEGORY'. For `gettext' and `dgettext' this locale is always `LC_MESSAGES'. @@ -1357,15 +1380,10 @@ @item Defined in namespace I18N @itemx Superclass: I18N.LocaleData @itemx Category: i18n-Messages -This object is a factory of CollationKey objects; they are obtained by -sending either @-#? or @-#collationKeyFor:@-, with a String as the only argument. - -The @-#? binary message allows for easily typed idioms:@- - - (aLocale ? string1 < string2) ifTrue:@- [ ... ] - -which could be interpreted as "hey, aLocale, tell me if string1 is < string2!" - +This object is an abstract superclass of objects related to the territory +and language in which the program is being used. Instances of it are +asked about information on the current locale, and provide a means to be +asked for things with a common idiom, the @-#? binary message. @end table @menu diff -ru smalltalk-2.3.5/doc/stamp-1 smalltalk-2.3.6/doc/stamp-1 --- smalltalk-2.3.5/doc/stamp-1 2007-06-02 17:48:20.000000000 +0200 +++ smalltalk-2.3.6/doc/stamp-1 2007-09-06 09:47:45.000000000 +0200 @@ -1,4 +1,4 @@ -@set UPDATED 1 June 2007 -@set UPDATED-MONTH June 2007 -@set EDITION 2.3.5 -@set VERSION 2.3.5 +@set UPDATED 6 September 2007 +@set UPDATED-MONTH September 2007 +@set EDITION 2.3.6 +@set VERSION 2.3.6 diff -ru smalltalk-2.3.5/doc/stamp-2 smalltalk-2.3.6/doc/stamp-2 --- smalltalk-2.3.5/doc/stamp-2 2007-06-02 17:48:20.000000000 +0200 +++ smalltalk-2.3.6/doc/stamp-2 2007-09-06 09:43:06.000000000 +0200 @@ -1,4 +1,4 @@ -@set UPDATED 1 June 2007 -@set UPDATED-MONTH June 2007 -@set EDITION 2.3.5 -@set VERSION 2.3.5 +@set UPDATED 6 September 2007 +@set UPDATED-MONTH September 2007 +@set EDITION 2.3.6 +@set VERSION 2.3.6 diff -ru smalltalk-2.3.5/doc/stamp-vti smalltalk-2.3.6/doc/stamp-vti --- smalltalk-2.3.5/doc/stamp-vti 2007-06-02 17:48:20.000000000 +0200 +++ smalltalk-2.3.6/doc/stamp-vti 2007-09-06 09:40:59.000000000 +0200 @@ -1,4 +1,4 @@ @set UPDATED 1 June 2007 @set UPDATED-MONTH June 2007 -@set EDITION 2.3.5 -@set VERSION 2.3.5 +@set EDITION 2.3.6 +@set VERSION 2.3.6 diff -ru smalltalk-2.3.5/doc/vers-base.texi smalltalk-2.3.6/doc/vers-base.texi --- smalltalk-2.3.5/doc/vers-base.texi 2007-06-02 17:48:20.000000000 +0200 +++ smalltalk-2.3.6/doc/vers-base.texi 2007-09-06 09:41:00.000000000 +0200 @@ -1,4 +1,4 @@ -@set UPDATED 1 June 2007 -@set UPDATED-MONTH June 2007 -@set EDITION 2.3.5 -@set VERSION 2.3.5 +@set UPDATED 6 September 2007 +@set UPDATED-MONTH September 2007 +@set EDITION 2.3.6 +@set VERSION 2.3.6 diff -ru smalltalk-2.3.5/doc/vers-gst.texi smalltalk-2.3.6/doc/vers-gst.texi --- smalltalk-2.3.5/doc/vers-gst.texi 2007-06-02 17:48:20.000000000 +0200 +++ smalltalk-2.3.6/doc/vers-gst.texi 2007-09-06 09:40:59.000000000 +0200 @@ -1,4 +1,4 @@ @set UPDATED 1 June 2007 @set UPDATED-MONTH June 2007 -@set EDITION 2.3.5 -@set VERSION 2.3.5 +@set EDITION 2.3.6 +@set VERSION 2.3.6 diff -ru smalltalk-2.3.5/doc/vers-libs.texi smalltalk-2.3.6/doc/vers-libs.texi --- smalltalk-2.3.5/doc/vers-libs.texi 2007-06-02 17:48:20.000000000 +0200 +++ smalltalk-2.3.6/doc/vers-libs.texi 2007-09-06 09:43:06.000000000 +0200 @@ -1,4 +1,4 @@ -@set UPDATED 1 June 2007 -@set UPDATED-MONTH June 2007 -@set EDITION 2.3.5 -@set VERSION 2.3.5 +@set UPDATED 6 September 2007 +@set UPDATED-MONTH September 2007 +@set EDITION 2.3.6 +@set VERSION 2.3.6 diff -ru smalltalk-2.3.5/examples/Continuations.st smalltalk-2.3.6/examples/Continuations.st --- smalltalk-2.3.5/examples/Continuations.st 2007-05-31 15:06:26.000000000 +0200 +++ smalltalk-2.3.6/examples/Continuations.st 2007-06-04 14:58:24.000000000 +0200 @@ -8,8 +8,8 @@ "====================================================================== | -| Copyright (C) 1992 University of Manchester -| Written by Ian Piumarta. +| Parts Copyright (C) 1992 University of Manchester +| Written by Ian Piumarta and Avi Bryant. | ======================================================================" @@ -19,9 +19,22 @@ instanceVariableNames: 'stack ' classVariableNames: '' poolDictionaries: '' - category: 'Kernel-Methods'! + category: 'Language-Implementation'! +!Continuation class methodsFor: 'instance creation'! + +escapeDo: aBlock + aBlock value: (self new stack: thisContext parentContext). + SystemExceptions.BadReturn signal. + Processor activeProcess terminate! + +current + ^self new stack: thisContext parentContext copyStack! + +currentDo: aBlock + ^aBlock value: (self new stack: thisContext parentContext copyStack)! ! + !Continuation methodsFor: 'private'! stack @@ -42,6 +55,12 @@ thisContext parentContext: stack. ^v! +callCC + | cont | + cont := Continuation new stack: thisContext parentContext. + thisContext parentContext: stack. + ^cont! + value thisContext parentContext: stack copyStack. ^nil! @@ -57,65 +76,10 @@ ^self value: (v at: 1)! ! -!Continuation class methodsFor: 'instance creation'! - -escape - ^self new stack: thisContext sender! - -escapeDo: aBlock - ^aBlock value: (self new stack: thisContext sender)! - -current - ^self fromContext: thisContext sender! - -currentDo: aBlock - ^aBlock value: (self fromContext: thisContext sender)! - -fromContext: aStack - ^self new stack: aStack copyStack! ! - -!Continuation class methodsFor: 'examples'! - -factorialExample: x - "Modified from the example given in Dybvig p. 81 (the example is - explained adequately there). Evaluate each of the following expressions - in turn. - Undeclared is used to hold a `global' temporary to avoid cluttering your - namespace." - - "Transcript cr; show: (self factorialExample: 4) printString; cr" - "(Undeclared at: #RetryCC) value: 2" - "(Undeclared at: #RetryCC) value: 5" - "Undeclared removeKey: #RetryCC" - - ^x == 0 - ifTrue: [ - [ :continuation | - Undeclared at: #RetryCC put: continuation. - 1] callCC] - ifFalse: [x * (self factorialExample: x - 1) printNl]! ! - -!BlockClosure methodsFor: 'copying'! - -copyStack - outerContext := outerContext copyStack! ! - !BlockClosure methodsFor: 'continuations'! callCC - ^self value: (Continuation fromContext: thisContext parentContext)! ! - -!ContextPart methodsFor: 'copying'! - -copyStack - self parentContext isNil - ifTrue:[^self copy] - ifFalse: [^self copy parentContext: self parentContext copyStack]! ! - -"(Continuation factorialExample: 4) printNl!" -"(Undeclared.RetryCC value: 10) printNl!" -"Undeclared removeKey: #RetryCC!" - + ^Continuation currentDo: self! ! Object subclass: #Amb instanceVariableNames: 'failureContinuation direction ' diff -ru smalltalk-2.3.5/examples/Generator.st smalltalk-2.3.6/examples/Generator.st --- smalltalk-2.3.5/examples/Generator.st 2007-06-01 11:27:12.000000000 +0200 +++ smalltalk-2.3.6/examples/Generator.st 2007-09-06 09:30:11.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2003 Free Software Foundation, Inc. +| Copyright 2003, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of GNU Smalltalk. @@ -28,8 +28,10 @@ | ======================================================================" +PackageLoader fileInPackage: #Continuations! + Stream subclass: #Generator - instanceVariableNames: 'next producer consumer process atEnd' + instanceVariableNames: 'next genCC consCC atEnd' classVariableNames: '' poolDictionaries: '' category: 'Streams-Generators' @@ -91,13 +93,20 @@ ^self new forkOn: aBlock; yourself +! + +on: aCollection do: aBlock + "Return a generator; for each item of aCollection, evaluate aBlock + passing the generator and the item." + ^self on: [ :gen | + aCollection do: [ :each | aBlock value: gen value: each ] ] ! ! !Generator methodsFor: 'stream protocol'! atEnd "Answer whether more data can be generated." - atEnd isNil ifTrue: [ self generateNext ]. + atEnd isNil ifTrue: [ genCC := genCC callCC ]. ^atEnd ! @@ -106,9 +115,9 @@ decides that nothing else can be generated." | result | self atEnd ifTrue: [ ^self pastEnd ]. - atEnd := nil. result := next. next := nil. + atEnd := nil. ^result ! @@ -134,32 +143,39 @@ !Generator methodsFor: 'private - continuations'! forkOn: aBlock - producer := Semaphore new. - consumer := Semaphore new. - process := [ - producer wait. - aBlock value: self. - consumer signal - ] fork! + "When initializing, we just store the current continuation and exit; + the ^self is where the control flow is actually split. When #next is + called first, the code after the continuation is executed, which + executes the generator block and finally resumes execution of the + consumer when the block leaves." + + "This is the only time we create a continuation with a block; after + this, we just replace a continuation with another through + Continuation>>#callCC." + consCC := Continuation escapeDo: [ :cc | + genCC := cc. + atEnd := nil. + ^self ]. -yield: anObject - "Save the object returned by the block in the next - instance variable, then restart the consumer thread - and put our own to wait." + atEnd := true. + genCC := nil. + aBlock value: self. + consCC oneShotValue! - next := anObject. +yield: anObject + "When entering from the generator the code in the block is executed and + control flow goes back to the consumer. When entering from the consumer, + the code after the continuation is executed, which resumes execution of + the generator block." atEnd := false. - consumer signal. - producer wait! - -generateNext - "Restart the producer thread and put our own to wait." + next := anObject. + consCC := consCC callCC. - atEnd := true. - process priority = Processor activePriority - ifFalse: [ process priority: Processor activePriority ]. - producer signal. - consumer wait! ! + "Make sure that an exception (or any other event that causes #yield: not + to be invoked again) terminates the generator. Also, generators should + not reenter." + genCC := nil. + atEnd := true! ! !Integer methodsFor: 'examples of generators'! @@ -167,24 +183,22 @@ ^Generator on: [ :gen | 'Entering gen' displayNl. 1 to: self do: [ :each | - ('Yielding ', each printString, '... ') display. + ('Yielding ', each printString, '... ') display. gen yield: each. - 'Resuming gen' displayNl + 'Resuming gen' displayNl ] ]! generatorExample: gen | n | ('Running on ', gen printString) displayNl. [ - 'Calling next... ' display. + 'Calling next... ' display. n := gen next. n notNil ] whileTrue: [ - ('Got ', n printString) displayNl + ('Got ', n printString) displayNl ]! ! -Eval [ - Smalltalk byteCodeCounter printNl. - 10 generatorExample: 10 generatorForGeneratorExample. - Smalltalk byteCodeCounter printNl -] +Smalltalk byteCodeCounter printNl. +10 generatorExample: 10 generatorForGeneratorExample. +Smalltalk byteCodeCounter printNl! diff -ru smalltalk-2.3.5/examples/Methods.st smalltalk-2.3.6/examples/Methods.st --- smalltalk-2.3.5/examples/Methods.st 2006-02-05 19:41:23.000000000 +0100 +++ smalltalk-2.3.6/examples/Methods.st 2007-08-28 15:24:50.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2006 Free Software Foundation, Inc. +| Copyright 2006, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -128,17 +128,6 @@ yourself! -!Behavior methodsFor: 'forwarding'! - -boundCompiledMethodAt: aSelector - | class method | - class := self. - [ - method := class compiledMethodAt: aSelector ifAbsent: [ nil ]. - method isNil ifFalse: [ ^method ]. - class := class superclass. - class isNil ifTrue: [ ^nil ] ] repeat! ! - !ForwardingMethod methodsFor: 'forwarding'! destClass @@ -155,7 +144,7 @@ valueWithReceiver: rec withArguments: args | method | - method := destClass boundCompiledMethodAt: destSelector. + method := destClass lookupSelector: destSelector. ^method isNil ifTrue: [ rec doesNotUnderstand: @@ -163,5 +152,154 @@ ifFalse: [ rec perform: method withArguments: args ]! ! +CompiledMethod subclass: #MethodWrapper + instanceVariableNames: 'method methodClass selector' + classVariableNames: 'WrapperList' + poolDictionaries: '' + category: 'Examples-VM'! + +!MethodWrapper class methodsFor: 'testing'! + +readdWrappersAfter: aWrapper + | all index toAdd | + all := self wrappersFor: aWrapper basicMethod. + index := all identityIndexOf: aWrapper. + toAdd := all copyFrom: index + 1. + all empty. + toAdd do: [ :each | each install ] +! + +recordWrapper: aWrapper + (self wrappersFor: aWrapper basicMethod) addLast: aWrapper +! + +wrappersFor: aMethod + WrapperList isNil ifTrue: [ WrapperList := IdentityDictionary new ]. + ^WrapperList at: aMethod ifAbsentPut: [ OrderedCollection new ] +! ! + +!MethodWrapper methodsFor: 'wrapping'! + +beforeMethod +! + +afterMethod +! + +valueWithReceiver: rec withArguments: args + self beforeMethod. + ^[ rec perform: method withArguments: args ] + ensure: [ self afterMethod ] +! ! + +!CompiledCode methodsFor: 'installing'! + +basicMethod + ^self +! ! + +!MethodWrapper methodsFor: 'installing'! + +basicMethod + ^method basicMethod +! + +install + method := self methodClass lookupSelector: selector. + method isNil ifTrue: [ self error: 'cannot find method' ]. + self methodClass methodDictionary at: selector put: self. + self class recordWrapper: self. +! + +uninstall + method methodClass == self methodClass + ifTrue: [ self methodDictionary at: selector put: method ] + ifFalse: [ self methodDictionary removeKey: selector ifAbsent: [] ]. + self class readdWrappersAfter: self. + method := nil. +! + +isInstalled + ^method notNil +! + +methodClass + ^methodClass +! + +methodDictionary + ^methodClass methodDictionary +! + +methodClass: aClass + methodClass := aClass +! + +selector: aSymbol + selector := aSymbol +! ! + +!MethodWrapper class methodsFor: 'instance creation'! + +on: aSymbol in: aClass + ^(self numArgs: aSymbol numArgs) + selector: aSymbol; + methodClass: aClass; + yourself! ! + +MethodWrapper subclass: #WrapperExample + instanceVariableNames: 'text' + classVariableNames: 'WrapperList' + poolDictionaries: '' + category: 'Examples-VM'! + +!WrapperExample class methodsFor: 'installing'! + +test + | a b | + a := WrapperExample on: #asArray in: String. + b := WrapperExample on: #asArray in: String. + + (a isInstalled->b isInstalled) printNl. + (String includesSelector: #asArray) printNl. + + a install: 'wrapper1'. + (a isInstalled->b isInstalled) printNl. + (String includesSelector: #asArray) printNl. + 'abc' asArray. + + b install: 'wrapper2'. + (a isInstalled->b isInstalled) printNl. + (String includesSelector: #asArray) printNl. + 'abc' asArray. + + a uninstall. + (a isInstalled->b isInstalled) printNl. + (String includesSelector: #asArray) printNl. + 'abc' asArray. + + b uninstall. + (a isInstalled->b isInstalled) printNl. + (String includesSelector: #asArray) printNl. + 'abc' asArray. +! ! + +!WrapperExample methodsFor: 'installing'! + +install: aString + text := aString. + self install +! + +beforeMethod + ('before ', text) printNl +! + +afterMethod + ('after ', text) printNl +! ! + InterpretedMethod test! ForwardingMethod test! +WrapperExample test! + diff -ru smalltalk-2.3.5/examples/MiniDebugger.st smalltalk-2.3.6/examples/MiniDebugger.st --- smalltalk-2.3.5/examples/MiniDebugger.st 2006-02-05 19:41:23.000000000 +0100 +++ smalltalk-2.3.6/examples/MiniDebugger.st 2007-09-06 09:30:14.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2002, 2006 Free Software Foundation, Inc. +| Copyright 2002, 2006, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of GNU Smalltalk. @@ -331,6 +331,7 @@ !MiniDebugger methodsFor: 'source code'! currentMethodSource + activeContext isNil ifTrue: [ ^#() ]. ^methodSourceCodeCache at: activeContext method ifAbsentPut: [ self linesOf: activeContext method methodSourceString ] @@ -338,6 +339,7 @@ currentLine | lineMap | + activeContext isNil ifTrue: [ ^self ]. lineMap := methodLineMapCache at: activeContext method ifAbsentPut: [ activeContext method sourceCodeMap ]. @@ -345,23 +347,15 @@ ! linesOf: aString - | oc start | - aString isNil ifTrue: [ ^#() ]. - oc := OrderedCollection new. - start := 0. - aString keysAndValuesDo: [ :index :each | - each == Character nl - ifTrue: [ - oc add: (aString copyFrom: start to: index - 1). - start := index + 1 - ] - ]. - oc add: (aString copyFrom: start). - ^oc + aString isNil ifTrue: [ ^nil ]. + ^aString readStream lines contents ! printCurrentMethod - self currentMethodSource keysAndValuesDo: [ :line :code | + | source | + source := self currentMethodSource. + source isNil ifTrue: [ ^self ]. + source keysAndValuesDo: [ :line :code | self rightJustify: line. stdout space; @@ -371,14 +365,16 @@ ! printCurrentLine - | line | + | line source | + source := self currentMethodSource. + source isNil ifTrue: [ ^self ]. line := self currentLine. line = 0 ifTrue: [ ^self ]. self rightJustify: line. stdout space; - nextPutAll: (self currentMethodSource at: line ifAbsent: [ '' ]); + nextPutAll: (source at: line ifAbsent: [ '' ]); nl ! ! @@ -402,8 +398,10 @@ (command == $c) ifTrue: [ self continue ]. ]. - activeContext == context ifFalse: [ activeContext printNl ]. - self printCurrentLine. + activeContext isNil ifFalse: [ + activeContext == context ifFalse: [ activeContext printNl ]. + self printCurrentLine ]. + ^true ! @@ -519,8 +517,8 @@ [ activeContext isInternalExceptionHandlingContext ] whileTrue: [ self finish ]. - process suspendedContext backtraceOn: stdout. - ObjectMemory globalGarbageCollect. + self backtraceOf: process. + self printCurrentLine. ! backtraceOf: aProcess diff -ru smalltalk-2.3.5/examples/PipeStream.st smalltalk-2.3.6/examples/PipeStream.st --- smalltalk-2.3.5/examples/PipeStream.st 2007-05-18 16:32:28.000000000 +0200 +++ smalltalk-2.3.6/examples/PipeStream.st 2007-06-06 16:36:45.000000000 +0200 @@ -11,20 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| This file is part of the GNU Smalltalk class library. | -| GNU Smalltalk is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. | -| You should have received a copy of the GNU General Public License along with -| GNU Smalltalk; see the file COPYING. If not, write to the Free Software -| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ======================================================================" diff -ru smalltalk-2.3.5/examples/Publish.st smalltalk-2.3.6/examples/Publish.st --- smalltalk-2.3.5/examples/Publish.st 2007-03-18 18:40:21.000000000 +0100 +++ smalltalk-2.3.6/examples/Publish.st 2007-09-06 09:30:17.000000000 +0200 @@ -7,7 +7,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002 +| Copyright 1988,92,94,95,99,2000,2001,2002,2007 | Free Software Foundation, Inc. | Written by Steve Byrne and Paolo Bonzini. | @@ -295,6 +295,19 @@ ^pos ! +skipWhiteExceptNewlines: stream + "Skip up to next non-separator or newline. Answer whether stream + is not at end afterwards." + [| char | + stream atEnd ifTrue: [^false]. + char := stream next. + char isSeparator and: + [(##({Character nl. Character cr} asString) + includes: char) not]] whileTrue. + stream skip: -1. + ^true +! + skipWhite: start on: string "Answer the position of the first white character in string, starting the scan at position start" @@ -390,7 +403,7 @@ [ input atEnd ] whileFalse: [ comment nextPutAll: (input upTo: Character nl). comment nl. - self skipWhite: input + self skipWhiteExceptNewlines: input ]. ^comment contents ! diff -ru smalltalk-2.3.5/examples/README smalltalk-2.3.6/examples/README --- smalltalk-2.3.5/examples/README 2007-05-31 15:06:27.000000000 +0200 +++ smalltalk-2.3.6/examples/README 2007-06-04 14:58:24.000000000 +0200 @@ -111,9 +111,9 @@ by me/sbb -Generator.st Python/Ruby-like generators, using processes. -Gen2.st Same, using contexts. -Gen3.st Same, hiding context manipulation with continuation objects. +Generator.st Python/Ruby-like generators, using continuations. +Gen2.st Same, using contexts (slower). +Gen3.st Same, using processes (in the middle). by me The directory also contains some bindings for external libraries; currently diff -ru smalltalk-2.3.5/examples/gdbm-c.st smalltalk-2.3.6/examples/gdbm-c.st --- smalltalk-2.3.5/examples/gdbm-c.st 2007-05-29 14:14:57.000000000 +0200 +++ smalltalk-2.3.6/examples/gdbm-c.st 2007-09-06 09:30:21.000000000 +0200 @@ -8,23 +8,25 @@ "====================================================================== | -| Copyright 2001, 2005 Free Software Foundation, Inc. +| Copyright 2001, 2005, 2007 Free Software Foundation, Inc. | Written by Steve Byrne. | -| This file is part of GNU Smalltalk. +| This file is part of the GNU Smalltalk class library. | -| GNU Smalltalk is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| GNU Smalltalk; see the file COPYING. If not, write to the Free Software -| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ======================================================================" diff -ru smalltalk-2.3.5/examples/gdbm.st smalltalk-2.3.6/examples/gdbm.st --- smalltalk-2.3.5/examples/gdbm.st 2007-05-24 22:11:07.000000000 +0200 +++ smalltalk-2.3.6/examples/gdbm.st 2007-09-06 09:30:24.000000000 +0200 @@ -8,23 +8,25 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2001 Free Software Foundation, Inc. +| Copyright 1988,92,94,95,99,2001,2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | -| This file is part of GNU Smalltalk. +| This file is part of the GNU Smalltalk class library. | -| GNU Smalltalk is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| GNU Smalltalk; see the file COPYING. If not, write to the Free Software -| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ======================================================================" diff -ru smalltalk-2.3.5/examples/md5.st smalltalk-2.3.6/examples/md5.st --- smalltalk-2.3.5/examples/md5.st 2006-02-05 19:41:23.000000000 +0100 +++ smalltalk-2.3.6/examples/md5.st 2007-09-06 09:30:26.000000000 +0200 @@ -8,23 +8,25 @@ "====================================================================== | -| Copyright 2001, 2005 Free Software Foundation, Inc. +| Copyright 2001, 2005, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| This file is part of the GNU Smalltalk class library. | -| GNU Smalltalk is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| GNU Smalltalk; see the file COPYING. If not, write to the Free Software -| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ======================================================================" diff -ru smalltalk-2.3.5/examples/zlib.st smalltalk-2.3.6/examples/zlib.st --- smalltalk-2.3.5/examples/zlib.st 2007-05-24 22:10:25.000000000 +0200 +++ smalltalk-2.3.6/examples/zlib.st 2007-06-06 16:36:45.000000000 +0200 @@ -11,20 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| This file is part of the GNU Smalltalk class library. | -| GNU Smalltalk is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. | -| You should have received a copy of the GNU General Public License along with -| GNU Smalltalk; see the file COPYING. If not, write to the Free Software -| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ======================================================================" diff -ru smalltalk-2.3.5/gst-load.in smalltalk-2.3.6/gst-load.in --- smalltalk-2.3.5/gst-load.in 2007-06-01 17:13:48.000000000 +0200 +++ smalltalk-2.3.6/gst-load.in 2007-06-22 17:20:32.000000000 +0200 @@ -39,19 +39,19 @@ script=$1 shift if test x${image_file:+set} = xset; then - "$GST" $GSTARGS -I "$image_file" -qK "$script" -a "$@" + eval \"\$GST\" "$GSTARGS" -I \"\$image_file\" -qK \"\$script\" -a \"\$@\" else - "$GST" $GSTARGS -qK "$script" -a "$@" + eval \"\$GST\" "$GSTARGS" -qK \"\$script\" -a \"\$@\" fi } show_help () { - "$GST" $GSTARGS -qK scripts/Load.st -a $1 + eval \"\$GST\" "$GSTARGS" -qK scripts/Load.st -a \$1 exit $? } getopt () { - "$GST" $GSTARGS -qK scripts/Getopt.st -a "$OPTIONS" "$@" + eval \"\$GST\" "$GSTARGS" -qK scripts/Getopt.st -a \"\$OPTIONS\" \"\$@\" } getopt "$@" | { diff -ru smalltalk-2.3.5/gst-mode.el.in smalltalk-2.3.6/gst-mode.el.in --- smalltalk-2.3.5/gst-mode.el.in 2006-02-05 19:41:23.000000000 +0100 +++ smalltalk-2.3.6/gst-mode.el.in 2007-09-06 09:30:33.000000000 +0200 @@ -1,6 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; -;;; Copyright 1988-92, 1994-95, 1999, 2000, 2003 Free Software Foundation, Inc. +;;; Copyright 1988-92, 1994-95, 1999, 2000, 2003, 2007 +;;; Free Software Foundation, Inc. ;;; Written by Steve Byrne. ;;; ;;; This file is part of GNU Smalltalk. @@ -191,6 +192,7 @@ (require 'comint) (comint-mode) (setq comint-prompt-regexp smalltalk-prompt-pattern) + (setq comint-use-prompt-regexp t) (use-local-map gst-mode-map) (make-local-variable 'mode-status) (make-local-variable 'smalltalk-command-string) diff -ru smalltalk-2.3.5/gst-sunit.in smalltalk-2.3.6/gst-sunit.in --- smalltalk-2.3.5/gst-sunit.in 2007-06-01 17:13:48.000000000 +0200 +++ smalltalk-2.3.6/gst-sunit.in 2007-06-22 17:20:32.000000000 +0200 @@ -40,19 +40,19 @@ script=$1 shift if test x${image_file:+set} = xset; then - "$GST" $GSTARGS -I "$image_file" -qK "$script" -a "$@" + eval \"\$GST\" "$GSTARGS" -I \"\$image_file\" -qK \"\$script\" -a \"\$@\" else - "$GST" $GSTARGS -qK "$script" -a "$@" + eval \"\$GST\" "$GSTARGS" -qK \"\$script\" -a \"\$@\" fi -} +} show_help () { - "$GST" $GSTARGS -qK scripts/Test.st -a $1 + eval \"\$GST\" "$GSTARGS" -qK scripts/Test.st -a \$1 exit $? } getopt () { - "$GST" $GSTARGS -qK scripts/Getopt.st -a "$OPTIONS" "$@" + eval \"\$GST\" "$GSTARGS" -qK scripts/Getopt.st -a \"\$OPTIONS\" \"\$@\" } getopt "$@" | { diff -ru smalltalk-2.3.5/i18n/ChangeLog smalltalk-2.3.6/i18n/ChangeLog --- smalltalk-2.3.5/i18n/ChangeLog 2006-12-13 09:56:50.000000000 +0100 +++ smalltalk-2.3.6/i18n/ChangeLog 2007-08-28 14:07:20.000000000 +0200 @@ -1,3 +1,28 @@ +2007-08-28 Paolo Bonzini + + * i18n/Sets.st: Add some methods, skip BOM when converting to UnicodeString. + +2007-07-02 Paolo Bonzini + + * i18n/Sets.st: Optimize leaving Base64. Reject partial characters + at end of input. + * i18n/iconvtests.st: Test for this. + +2007-07-02 Paolo Bonzini + + * i18n/iconvtests.st: More UTF-7 tests. + * i18n/Sets.st: UTF-7 fixes and some small optimization. + +2007-07-01 Paolo Bonzini + + * i18n/iconvtests.st: Add UTF-7 tests. + * i18n/Sets.st: Rewrite FromUTF7. + +2007-07-01 Paolo Bonzini + + * i18n/iconvtests.st: New. + * i18n/Sets.st: Fix buglet. + 2006-12-13 Paolo Bonzini *** Version 2.3.1 released. diff -ru smalltalk-2.3.5/i18n/Collation.st smalltalk-2.3.6/i18n/Collation.st --- smalltalk-2.3.5/i18n/Collation.st 2006-02-05 19:41:24.000000000 +0100 +++ smalltalk-2.3.6/i18n/Collation.st 2007-09-06 09:30:36.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2001, 2002 Free Software Foundation, Inc. +| Copyright 2001, 2002, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -36,7 +36,7 @@ poolDictionaries: '' category: 'i18n-Collation'! -Locale comment: +LcCollate comment: 'This object is a factory of CollationKey objects; they are obtained by sending either #? or #collationKeyFor:, with a String as the only argument. diff -ru smalltalk-2.3.5/i18n/Sets.st smalltalk-2.3.6/i18n/Sets.st --- smalltalk-2.3.5/i18n/Sets.st 2006-02-05 19:41:24.000000000 +0100 +++ smalltalk-2.3.6/i18n/Sets.st 2007-08-28 14:05:53.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2001, 2002, 2005, 2006 Free Software Foundation, Inc. +| Copyright 2001, 2002, 2005, 2006, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -387,6 +387,11 @@ ^origin atEnd ! +peekInput + "Return the next character in the origin without advancing it." + ^origin peek +! + nextInput "Return the next character in the origin. This method is for private use by encoders, calling it outside may corrupt the @@ -507,7 +512,7 @@ encoderTo := Iconv. EncodersRegistry do: [ :each | ((each at: 1) includes: to) - ifTrue: [ encoderTo := each at: 2 ] + ifTrue: [ encoderTo := each at: 3 ] ]. pipe := aStringOrStream. @@ -564,6 +569,9 @@ "Compose iconv-produced bytes into UTF-32 character codes if needed." encoderFrom == Iconv ifTrue: [ pipe := self compose: pipe from: pivot ]. + + "Skip the BOM, if present." + pipe peekFor: $<16rFEFF>. ^pipe ! @@ -603,7 +611,7 @@ ifTrue: [ from := aStringOrStream utf16Encoding ]. (to = 'UTF-32' or: [ to = 'UCS-4' ]) ifTrue: [ to := 'UTF-32BE' ]. - (to = 'UTF-16' or: [ to = 'UCS-2' ]) ifTrue: [ to := 'UTF-32BE' ]. + (to = 'UTF-16' or: [ to = 'UCS-2' ]) ifTrue: [ to := 'UTF-16BE' ]. pivot := 'UTF-32'. ((from startsWith: 'UCS-4') or: [ from startsWith: 'UTF-32' ]) @@ -945,6 +953,14 @@ !ToUTF7 methodsFor: 'private'! +isBase64: anInteger + | d | + ^anInteger < 128 and: [ + d := Base64Characters at: (anInteger // 8) + 1. + ((d bitShift: (0 - (anInteger \\ 8))) bitAnd: 1) == 1 + ] +! + isDirect: anInteger | d | ^anInteger < 128 and: [ @@ -984,42 +1000,35 @@ ch < 65536 ifTrue: [ left := 16. value := ch. ^$+ ]. - ch > 16r110000 + ch >= 16r110000 ifTrue: [ InvalidSequenceError signal ]. "Convert to a surrogate pair" ch := ch - 16r10000. left := 32. - value := (((ch bitAnd: 16rFFF) + 16rD800) bitShift: 16) + + value := (((ch bitAnd: 16r3FF) + 16rD800) bitShift: 16) + ((ch bitShift: -10) + 16rDC00). - ^$+ ]. left < 0 ifTrue: [ - "left = -2 ---> output the lookahead character and go to 0 - left = -1 ---> if there's a lookahead output - and go to -2, - if at end of input output - and stop, - else reactivate base64" - - left = -2 ifTrue: [ - left := 0. - ch := lookahead asCharacter. - lookahead := nil. - ^ch - ]. - lookahead isNil ifFalse: [ - left := -2. - ^$- - ]. + "if at end of input output -. otherwise: + left = -2 ---> output the lookahead character and go to 0 + left = -1 ---> if there's a lookahead output it; if -, go to -2 + without advancing in the input.; otherwise go to 0" - left := 0. - self atEndOfInput ifTrue: [ ^$- ]. - ]. + lookahead isNil + ifTrue: [ + left := 0. + self atEndOfInput ifTrue: [ ^$- ] ] + ifFalse: [ + ch := lookahead. + ^(left = -1 and: [ self isBase64: ch ]) + ifTrue: [ left := -2. $- ] + ifFalse: [ lookahead := nil. left := 0. ch asCharacter ]]]. left < 6 ifTrue: [ "Pump another character into the Base64 encoder" - "TODO: should deactivate base64 encoding" (self atEndOfInput or: [ self isDirect: (ch := self nextInput codePoint) ]) @@ -1028,16 +1037,14 @@ value := value bitShift: 6 - (left \\ 6). left := left + 6 - (left \\ 6). - lookahead := ch. - ] + lookahead := ch ] ifFalse: [ ch < 65536 ifTrue: [ left := left + 16. - value := (value bitShift: 16) + ch - ] + value := (value bitShift: 16) + ch ] ifFalse: [ - ch > 16r110000 + ch >= 16r110000 ifTrue: [ InvalidSequenceError signal ]. "Convert to a surrogate pair" @@ -1045,16 +1052,14 @@ left := left + 32. value := (value bitShift: 32) + (((ch bitAnd: 16rFFF) + 16rD800) bitShift: 16) + - ((ch bitShift: -10) + 16rDC00). - ] - ] - ]. + ((ch bitShift: -10) + 16rDC00) ] ] ]. "Take 6 bits out of the Base-64 encoded stream" left := left - 6. ch := value bitShift: 0 - left. value := value bitXor: (ch bitShift: left). + "Exit base64 if at end of input or next char is direct." left = 0 ifTrue: [ left := -1 ]. ^self toBase64Char: ch ! ! @@ -1107,27 +1112,9 @@ next "Answer the next character that the receiver can produce." | ch | - "The decoder will always decode a character ahead, because when we - are to read only a minus, we might already be at the end of the - stream! Here is a simple example: +AFs- which decodes to [ - We read + and switch to base-64 --> shift = 32 - We read A and put it into the accumulator --> shift = 26 - We read F and put it into the accumulator --> shift = 20 - We read s and put it into the accumulator --> shift = 14 - - We then decode the [ and return it. Now we are not - #atEndOfInput yet, but there are no more characters to - give away! Since we are not sure that the source supports - #peek, our only other option would be to implement peeking - for it and check for $- now. This would have an overhead - proportional to the number of input characters (to check - whether we have already peeked the next characters), while - our choice's overhead is proportional to the number of output - characters, which is always less in UTF-7." - lookahead isNil ifTrue: [ SystemExceptions.EndOfStream signal: self. ^nil ]. ch := lookahead. - lookahead := self getNext. + self getNext. ^ch ! @@ -1136,17 +1123,46 @@ (this is because UTF-7 encodes 6 bits at a time, so it takes three characters before it can provide a single 16-bit character and up to six characters before it can provide a full UTF-32 character)." - shift := 0. - lookahead := self getNext. + shift := -6. + wch := 0. + self getNext. ! ! !FromUTF7 methodsFor: 'private - converting'! getNext + [ + self atEndOfInput ifTrue: [ + (shift = -6 or: [ shift = 10 ]) ifFalse: [ + shift := -6. wch := 0. + InvalidSequenceError signal ]. + lookahead := nil. + ^self ]. + (lookahead := self readNext) isNil + ] whileTrue! + +readNext + "The decoder will always decode a character ahead, because when we + are to read only a minus, we might already be at the end of the + stream! Here is a simple example: +AFs- which decodes to [ + We read + and switch to base-64 --> shift = 10 + We read A and put it into the accumulator --> shift = 4 + We read F and put it into the accumulator --> shift = -2 *next is last* + We read s and put it into the accumulator --> shift = 8 + + We then decode the [ and return it. Now we are not + #atEndOfInput yet, but there are no more characters to + give away! Since we are not sure that the source supports + #peek, our only other option would be to implement peeking + for it and check for $- now. This would have an overhead + proportional to the number of input characters (to check + whether we have already peeked the next characters), while + our choice's overhead is proportional to the number of output + characters, which is always less in UTF-7." + | ch value wc1 | - self atEndOfInput ifTrue: [ ^nil ]. ch := self nextInput value. - shift = 0 ifTrue: [ + shift = -6 ifTrue: [ (self isDirect: ch) ifTrue: [ ^Character codePoint: ch ]. ch == 43 "plus" ifFalse: [ InvalidSequenceError signal ]. @@ -1154,8 +1170,7 @@ ch == 45 "minus" ifTrue: [ ^$+ ]. "Else switch into base64 mode" - shift := 32. - wch := 0. + shift := 10. ]. ((ch between: 43 and: 122) and: [ @@ -1164,55 +1179,45 @@ "Terminate base64 encoding. If accumulated data is nonzero, the input is invalid. Also, partial UTF-16 characters are invalid." - (shift <= 26 or: [ wch > 0 ]) ifTrue: [ - shift := 0. + (shift <= 4 or: [ wch > 0 ]) ifTrue: [ + shift := -6. wch := 0. InvalidSequenceError signal ]. - shift := 0. - ch = 45 "minus" ifFalse: [ ^$- ]. + shift := -6. - "Discard the -" - ^self getNext + "Discard a -" + ch = 45 "minus" ifTrue: [ ^nil ]. + (self isDirect: ch) ifFalse: [ InvalidSequenceError signal ]. + ^Character codePoint: ch ]. - "Concatenate the base64 integer value to the accumulator" - shift > 6 ifTrue: [ - shift := shift - 6. - wch := wch + (value bitShift: shift). - shift > 16 ifTrue: [ ^self getNext ]. - - (shift between: 11 and: 16) ifTrue: [ - "Completed an UTF-16 character. When we see a High - Surrogate, we must wait for the following Low Surrogate." - wc1 := wch bitShift: -16. - - (wc1 between: 16rD800 and: 16rDBFF) ifFalse: [ - wch := (wch bitAnd: 65535) bitShift: 16. - shift := shift + 16. - ^Character codePoint: wc1 - ]. - ]. - - (shift between: 5 and: 10) ifTrue: [ - "After an High Surrogate, verify that the next character - is indeed a Low Surrogate" - wc1 := wch bitAnd: 65535. - (wc1 between: 16rDC00 and: 16rDFFF) ifFalse: [ - shift := 0. - InvalidSequenceError signal ] - ]. - ]. - - "Completed an UTF-16 surrogate pair" - - "35FDC00 = -0xD800 << 10 - 0xDC00 + 0x10000" - wc1 := wch bitShift: -16. - wch := (wch bitAnd: 65535) + (value bitShift: shift - 6). - wc1 := (wc1 bitShift: 10) + wch - 16r35FDC00. - - wch := ((value bitShift: shift) bitAnd: 16r3F) bitShift: 26. - ^Character codePoint: wc1 -! ! + shift > 0 ifTrue: [ + "Concatenate the base64 integer value to the accumulator" + wch := wch + (value bitShift: shift). + shift := shift - 6. + ^nil ]. + + wc1 := wch + (value bitShift: shift). + wch := (value bitShift: shift + 16) bitAnd: 16rFC00. + shift := shift + 10. + + wc1 < 16rD800 ifTrue: [ + ^Character codePoint: wc1 ]. + wc1 < 16rDC00 ifTrue: [ + "Read a High Surrogate. D7C0 = D800 - (16r10000 bitShift: -6)" + wch := wch + (wc1 - 16rD7C0 bitShift: 16). + ^nil ]. + wc1 < 16rE000 ifTrue: [ + ^InvalidSequenceError signal ]. + wc1 <= 16rFFFF ifTrue: [ + ^Character codePoint: wc1 ]. + + "After an High Surrogate, verify that the next character + is indeed a Low Surrogate" + ((wc1 bitAnd: 65535) between: 16rDC00 and: 16rDFFF) ifFalse: [ + ^InvalidSequenceError signal ]. + wc1 := ((wc1 bitAnd: 16r7FF0000) bitShift: -6) + (wc1 bitAnd: 16r3FF). + ^Character codePoint: wc1! ! @@ -1263,6 +1268,16 @@ !CharacterArray methodsFor: 'multibyte encodings'! +asString: aString + "Return a String with the contents of the receiver, converted + into the aString locale character set." + ^(I18N.EncodedStream on: self from: self encoding to: aString) contents! + +asUnicodeString + "Return an UnicodeString with the contents of the receiver, interpreted + as the default locale character set." + ^(I18N.EncodedStream unicodeOn: self) contents! + numberOfCharacters "Answer the number of Unicode characters in the receiver, interpreting it as the default locale character set." @@ -1270,11 +1285,6 @@ !String methodsFor: 'multibyte encodings'! -asUnicodeString - "Return an UnicodeString with the contents of the receiver, interpreted - as the default locale character set." - ^(I18N.EncodedStream unicodeOn: self) contents! - numberOfCharacters: aString "Answer the number of Unicode characters in the receiver, interpreting it in the character encoding aString." @@ -1400,6 +1410,12 @@ !ByteArray methodsFor: 'converting'! +asString: aString + "Return a String with the contents of the receiver, interpreted + as the locale character set given by aString." + ^self asString asUnicodeString +! + asUnicodeString "Return an UnicodeString with the contents of the receiver, interpreted as the default locale character set." Only in smalltalk-2.3.6/i18n: iconvtests.st diff -ru smalltalk-2.3.5/kernel/AbstNamespc.st smalltalk-2.3.6/kernel/AbstNamespc.st --- smalltalk-2.3.5/kernel/AbstNamespc.st 2007-01-26 08:23:34.000000000 +0100 +++ smalltalk-2.3.6/kernel/AbstNamespc.st 2007-09-06 09:30:39.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002 +| Copyright 1999, 2000, 2001, 2002, 2007 | Free Software Foundation, Inc. | Written by Paolo Bonzini. | @@ -59,7 +59,7 @@ ^parent at: spaceName asGlobalKey - put: ((super new: 32) + put: ((super new: 24) setSuperspace: parent; name: spaceName asSymbol; yourself) @@ -242,7 +242,8 @@ !AbstractNamespace methodsFor: 'namespace hierarchy'! addSubspace: aSymbol - "Add aNamespace to the set of the receiver's subspaces" + "Create a namespace named aSymbol, add it to the receiver's + subspaces, and answer it." ^Namespace primNew: self name: aSymbol ! @@ -321,6 +322,17 @@ space notNil ] whileTrue ! +removeSubspace: aSymbol + "Remove my subspace named aSymbol from the hierarchy." + | spaceName | + spaceName := aSymbol asGlobalKey. "as with primNew:name:" + self subspaces remove: (self hereAt: spaceName) + ifAbsent: [SystemExceptions.InvalidValue + signalOn: aSymbol + reason: 'aSymbol must name a subspace']. + ^self removeKey: spaceName +! + selectSubspaces: aBlock "Return a Set of subspaces of the receiver satisfying aBlock." | aSet | @@ -489,11 +501,6 @@ setSubspaces: newSubspaces subspaces := newSubspaces -! - -removeSubspace: aNamespace - self subspaces remove: aNamespace. - aNamespace setSuperspace: nil ! ! diff -ru smalltalk-2.3.5/kernel/AnsiExcept.st smalltalk-2.3.6/kernel/AnsiExcept.st --- smalltalk-2.3.5/kernel/AnsiExcept.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/AnsiExcept.st 2007-09-06 09:30:42.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2000, 2001, 2002 Free Software Foundation, Inc. +| Copyright 2000, 2001, 2002, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -554,15 +554,6 @@ defaultHandler: [ :sig | sig defaultAction ]; signalClass: self; yourself -! - -whenSignalledIn: onDoBlock do: handlerBlock exitBlock: exitBlock - "Private - Create an ExceptionHandler from the arguments and register it" - - self coreException - whenSignalledIn: onDoBlock - do: handlerBlock - exitBlock: exitBlock ! ! @@ -606,10 +597,6 @@ !Exception methodsFor: 'private'! -asAnsiException - ^self -! - initialize: anObject "Initialize the receiver's instance variables." diff -ru smalltalk-2.3.5/kernel/ArrayColl.st smalltalk-2.3.6/kernel/ArrayColl.st --- smalltalk-2.3.5/kernel/ArrayColl.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/ArrayColl.st 2007-09-06 09:30:45.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -117,6 +117,19 @@ at: 4 put: element4; at: 5 put: element5; yourself +! + +join: aCollection + "Where aCollection is a collection of SequenceableCollections, + answer a new instance with all the elements therein, in order." + | newInst start | + newInst := self new: (aCollection inject: 0 into: + [:size :each | size + each size]). + start := 1. + aCollection do: [:subColl | + newInst replaceFrom: start to: (start := start + subColl size) - 1 + with: subColl]. + ^newInst ! ! @@ -143,6 +156,17 @@ yourself ! +atAll: keyCollection + "Answer a collection of the same kind returned by #collect:, that + only includes the values at the given indices. Fail if any of + the values in keyCollection is out of bounds for the receiver." + | result i | + result := self copyEmptyForCollect: keyCollection size. + i := 0. + keyCollection do: [ :key | result at: (i := i + 1) put: (self at: key) ]. + ^result +! + copyFrom: start to: stop "Answer a new collection containing all the items in the receiver from the start-th and to the stop-th" diff -ru smalltalk-2.3.5/kernel/Behavior.st smalltalk-2.3.6/kernel/Behavior.st --- smalltalk-2.3.5/kernel/Behavior.st 2007-05-26 14:01:34.000000000 +0200 +++ smalltalk-2.3.6/kernel/Behavior.st 2007-09-06 09:30:48.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006 +| Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -526,6 +526,18 @@ ^aSet ! +lookupSelector: aSelector + "Return the compiled method associated with selector, from the local + method dictionary or one of a superclass; return nil if not found." + | class method | + class := self. + [ + method := class compiledMethodAt: aSelector ifAbsent: [ nil ]. + method isNil ifFalse: [ ^method ]. + class := class superclass. + class isNil ifTrue: [ ^nil ] ] repeat +! + compiledMethodAt: selector ifAbsent: aBlock "Return the compiled method associated with selector, from the local method dictionary. Evaluate aBlock if not found." @@ -763,12 +775,7 @@ canUnderstand: selector "Returns true if the instances of the receiver understand the given selector" - (self includesSelector: selector) - ifTrue: [ ^true ]. - self allSuperclassesDo: - [ :superclass | (superclass includesSelector: selector) - ifTrue: [ ^true ] ]. - ^false + ^(self lookupSelector: selector) notNil ! whichClassIncludesSelector: selector diff -ru smalltalk-2.3.5/kernel/CharArray.st smalltalk-2.3.6/kernel/CharArray.st --- smalltalk-2.3.5/kernel/CharArray.st 2007-03-20 13:42:41.000000000 +0100 +++ smalltalk-2.3.6/kernel/CharArray.st 2007-09-06 09:30:52.000000000 +0200 @@ -8,7 +8,8 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc. +| Copyright 1999, 2000, 2001, 2002, 2006, 2007 +| Free Software Foundation, Inc. | Written by Steve Byrne and Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -305,14 +306,14 @@ bindWith: s1 "Answer the receiver with every %1 replaced by the displayString of s1" - ^self bindWithArguments: { s1 } + ^self % { s1 } ! bindWith: s1 with: s2 "Answer the receiver with every %1 or %2 replaced by s1 or s2, respectively. s1 and s2 are `displayed' (i.e. their displayString is used) upon replacement." - ^self bindWithArguments: { s1. s2 } + ^self % { s1. s2 } ! bindWith: s1 with: s2 with: s3 @@ -320,7 +321,7 @@ respectively. s1, s2 and s3 are `displayed' (i.e. their displayString is used) upon replacement." - ^self bindWithArguments: { s1. s2. s3 } + ^self % { s1. s2. s3 } ! bindWith: s1 with: s2 with: s3 with: s4 @@ -328,7 +329,7 @@ or s4, respectively. s1, s2, s3 and s4 are `displayed' (i.e. their displayString is used) upon replacement." - ^self bindWithArguments: { s1. s2. s3. s4 } + ^self % { s1. s2. s3. s4 } ! bindWithArguments: anArray @@ -338,6 +339,16 @@ %n is replaced with one of the two strings depending on the n-th element of anArray being true or false." + ^self % anArray +! + +% anArray + "Answer the receiver with every %n (1<=n<=9) replaced by the n-th element + of anArray. The replaced elements are `displayed' (i.e. their + displayString is used). In addition, the special pattern + %n is replaced with one of the two + strings depending on the n-th element of anArray being true or false." + | result wasPercent pattern char ifTrue ifFalse | result := WriteStream on: (self copyEmpty: self size + 20). wasPercent := false. diff -ru smalltalk-2.3.5/kernel/Character.st smalltalk-2.3.6/kernel/Character.st --- smalltalk-2.3.5/kernel/Character.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/Character.st 2007-09-06 09:30:56.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -258,6 +258,12 @@ ^(Table at: 1 + codePoint ifAbsent: [ 0 ]) = 4 ! +isPathSeparator + "Returns true if self is a path separator ($/ or $\ under Windows, + $/ only under Unix systems including Mac OS X)." + ^self == $/ or: [ self == Directory pathSeparator ] +! + isVowel "Returns true if self is a, e, i, o, or u; case insensitive" | char | diff -ru smalltalk-2.3.5/kernel/Collection.st smalltalk-2.3.6/kernel/Collection.st --- smalltalk-2.3.5/kernel/Collection.st 2007-05-31 15:06:17.000000000 +0200 +++ smalltalk-2.3.6/kernel/Collection.st 2007-09-06 09:31:00.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2003,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2003,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -85,6 +85,17 @@ they were passed" ^self new add: firstObject; add: secondObject; add: thirdObject; add: fourthObject; add: fifthObject; yourself +! + +join: aCollection + "Answer a collection formed by treating each element in + aCollection as a `withAll:' argument collection to be added to a + new instance." + | newInst | + newInst := self new: (aCollection inject: 0 into: + [:size :each | size + each size]). + aCollection do: [:each | newInst addAll: each]. + ^newInst ! ! @@ -113,6 +124,11 @@ ^self become: self copyEmpty ! +removeAllSuchThat: aBlock + "Remove from the receiver all objects for which aBlock returns true." + + self removeAll: (self select: aBlock) ifAbsent: [ :each | ]! + remove: oldObject ifAbsent: anExceptionBlock "Remove oldObject from the receiver. If absent, evaluate anExceptionBlock and answer the result, else answer oldObject." @@ -233,10 +249,10 @@ | first | first := true. self do: [ :each | - aBlock value: each. first ifTrue: [ first := false ] - ifFalse: [ separatorBlock value ] + ifFalse: [ separatorBlock value ]. + aBlock value: each. ] ! diff -ru smalltalk-2.3.5/kernel/CompildCode.st smalltalk-2.3.6/kernel/CompildCode.st --- smalltalk-2.3.5/kernel/CompildCode.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/CompildCode.st 2007-09-06 09:31:14.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +| Copyright 2000,2001,2002,2003,2004,2005,2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -474,7 +474,7 @@ map := ByteArray new: self size. line := 1. self allByteCodeIndicesDo: [ :each :byte :operand | - (self class bytecodeInfoTable at: byte * 4 + 4) > 128 ifTrue: [ + (self class bytecodeInfoTable at: byte * 4 + 4) >= 128 ifTrue: [ line := operand. operand > 255 ifTrue: [ map := map asArray ] ]. diff -ru smalltalk-2.3.5/kernel/ContextPart.st smalltalk-2.3.6/kernel/ContextPart.st --- smalltalk-2.3.5/kernel/ContextPart.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/ContextPart.st 2007-09-06 09:31:21.000000000 +0200 @@ -8,7 +8,8 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +| Copyright 1999, 2000, 2001, 2002, 2003, 2007 +| Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -367,11 +368,18 @@ !ContextPart methodsFor: 'copying'! deepCopy - "Answer a shallow copy of the receiver -- duplicating - e.g. the method and the instance variables that have - been pushed is almost surely not the right thing." - ^self shallowCopy -! ! + "Answer a copy of the entire stack, but don't copy any + of the other instance variables of the context." + ^self copyStack! + +copyStack + "Answer a copy of the entire stack." + | ret ctx | + ret := ctx := self copy. + [ ctx parentContext isNil ] whileFalse: [ + ctx parentContext: (ctx := ctx parentContext copy) ]. + + ^ret! ! !ContextPart methodsFor: 'enumerating'! diff -ru smalltalk-2.3.5/kernel/Dictionary.st smalltalk-2.3.6/kernel/Dictionary.st --- smalltalk-2.3.5/kernel/Dictionary.st 2007-05-28 12:12:37.000000000 +0200 +++ smalltalk-2.3.6/kernel/Dictionary.st 2007-09-06 09:31:26.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002 +| Copyright 1988,92,94,95,99,2000,2001,2002,2003,2007 | Free Software Foundation, Inc. | Written by Steve Byrne and Paolo Bonzini. | @@ -43,7 +43,12 @@ 'I implement a dictionary, which is an object that is indexed by unique objects (typcially instances of Symbol), and associates another object with that index. I use the equality operator = to determine -equality of indices.' ! +equality of indices. + +In almost all places where you would use a plain Dictionary, a +LookupTable would be more efficient; see LookupTable''s comment before +you use it. I do have a couple of special features that are useful in +certain special cases.' ! @@ -99,6 +104,14 @@ ^value ! +atAll: keyCollection + "Answer a Dictionary that only includes the given keys. Fail if any of + them is not found" + | result | + result := self class new: keyCollection size. + keyCollection do: [ :key | result at: key put: (self at: key) ]. + ^result! + at: key "Answer the value associated to the given key. Fail if the key is not found" diff -ru smalltalk-2.3.5/kernel/Directory.st smalltalk-2.3.6/kernel/Directory.st --- smalltalk-2.3.5/kernel/Directory.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/Directory.st 2007-09-06 09:31:31.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2005 +| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006,2007 | Free Software Foundation, Inc. | Written by Paolo Bonzini. | @@ -106,26 +106,34 @@ "Answer the name of a file named `fileName' which resides in a directory named `directory'." directory isEmpty ifTrue: [ ^fileName ]. - (fileName at: 1) = self pathSeparator - ifTrue: [ ^fileName ]. - (self pathSeparator = $\ and: [ fileName size >= 2 and: [ - (fileName at: 2) = $: ]]) ifTrue: [ ^fileName ]. - ^(directory at: directory size) = self pathSeparator + fileName isEmpty ifTrue: [ ^directory ]. + self pathSeparator == $\ + ifFalse: [ + (fileName at: 1) isPathSeparator ifTrue: [ ^fileName ] ] + ifTrue: [ + (fileName at: 1) isPathSeparator ifTrue: [ + ^(directory size >= 2 and: [ (directory at: 2) = $: ]) + ifTrue: [ '%1:%2' bindWith: directory first with: fileName ] + ifFalse: [ fileName ] ]. + (fileName size >= 2 and: [ (fileName at: 2) = $: ]) + ifTrue: [ ^fileName ] ]. + + ^(directory at: directory size) isPathSeparator ifTrue: [ directory, fileName ] ifFalse: [ '%1%2%3' bindWith: directory - with: self pathSeparatorString + with: self pathSeparator with: fileName ] ! pathSeparator "Answer (as a Character) the character used to separate directory names" - ^$/ + ^CSymbols.PathSeparator ! pathSeparatorString "Answer (in a String) the character used to separate directory names" - ^'/' + ^String with: self pathSeparator ! ! @@ -146,14 +154,28 @@ ! create: dirName - "Create a directory named dirName." - ^(VFS.VFSHandler for: (File pathFor: dirName ifNone: [ Directory working ])) - createDir: (File stripPathFrom: dirName) + "Create a directory named dirName and answer it." + | parent handler | + parent := File pathFor: dirName ifNone: [ Directory working ]. + handler := VFS.VFSHandler for: parent. + handler createDir: (File stripPathFrom: dirName). + ^Directory name: dirName ! ! !Directory methodsFor: 'accessing'! +pathTo: destName + "Compute the relative path from the receiver to destName." + | destFullName | + destFullName := File fullNameFor: destName. + vfsHandler realFileName = destFullName ifTrue: [ ^'.' ]. + + ^File + computePathFrom: vfsHandler realFileName, '/somefile' + to: destFullName +! + fileAt: aName "Answer a File object for a file named `aName' residing in the directory represented by the receiver." diff -ru smalltalk-2.3.5/kernel/File.st smalltalk-2.3.6/kernel/File.st --- smalltalk-2.3.5/kernel/File.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/File.st 2007-09-06 09:31:35.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006,2007 | Free Software Foundation, Inc. | Written by Paolo Bonzini. | @@ -132,15 +132,28 @@ "Answer the full path to a file called `aString', resolving the `.' and `..' directory entries, and answer the result. `/..' is the same as '/'." - | path substrings | + | path canonical result isAbsolute isWindows | + + isAbsolute := (aString at: 1) isPathSeparator. + isWindows := Directory pathSeparator == $\. + "Windows paths starting X:/ are absolute" + (isWindows and: [ + aString size >= 3 and: [ + (aString at: 2) = $: and: [ + (aString at: 3) isPathSeparator ]]]) ifTrue: [ isAbsolute := true ]. + path := OrderedCollection new. - (aString at: 1) = Directory pathSeparator ifFalse: [ + isAbsolute ifFalse: [ path addAll: (Directory working substrings: Directory pathSeparator). ]. - substrings := aString substrings: Directory pathSeparator. - substrings := ReadStream on: substrings. - substrings do: [ :each | + "A Windows path may contain both / and \ separators. Clean it up + to allow easy parsing" + canonical := Directory pathSeparator = $/ + ifTrue: [ aString ] + ifFalse: [ aString copyReplacing: $/ withObject: Directory pathSeparator ]. + + (canonical substrings: Directory pathSeparator) do: [ :each | each = '.' ifFalse: [ each = '..' ifTrue: [ path isEmpty ifFalse: [ path removeLast ] ] @@ -148,9 +161,54 @@ ] ]. - ^path inject: '/' into: [ :old :each | - Directory append: each to: old - ] + path isEmpty ifTrue: [ ^Directory pathSeparatorString ]. + result := path inject: '' into: [ :old :each | + old, Directory pathSeparatorString, each ]. + + "Remove initial / from /C:/" + ^(isWindows and: [ + result size >= 4 and: [ + (result at: 1) isPathSeparator and: [ + (result at: 3) = $: and: [ + (result at: 4) isPathSeparator ]]]]) + ifTrue: [ result copyFrom: 2 ] + ifFalse: [ result ] +! + +pathFrom: srcName to: destName + ^self + computePathFrom: (File fullNameFor: srcName) + to: (File fullNameFor: destName) +! ! + + +!File class methodsFor: 'private'! + +computePathFrom: srcName to: destName + | src dest srcComponent destComponent path | + src := srcName subStrings: Directory pathSeparator. + dest := destName subStrings: Directory pathSeparator. + + src := src asOrderedCollection. + src removeLast. + + dest := dest asOrderedCollection. + dest isEmpty ifTrue: [ dest addLast: '' ]. + + path := (src notEmpty and: [ src first ~= dest first ]) + ifTrue: [ OrderedCollection with: '' ] + ifFalse: [ + [ src isEmpty or: [ + dest size = 1 or: [ + src first ~= dest first ] ] ] whileFalse: [ + + src removeFirst. + dest removeFirst ]. + + src collect: [ :each | '..' ] ]. + + path addAllLast: dest. + ^path fold: [ :a :b | a, '/', b ] ! ! @@ -178,6 +236,17 @@ (File name: fileName) touch ! +symlink: srcName as: destName + "Create a symlink for the srcName file with the given path name" + (File name: srcName) symlinkAs: destName +! + +symlink: destName from: srcName + "Create a symlink named destName file from the given path (relative to + destName)" + (VFS.VFSHandler for: destName) symlinkFrom: srcName +! + remove: fileName "Remove the file with the given path name" (VFS.VFSHandler for: fileName) remove @@ -239,6 +308,30 @@ ! ! +!File methodsFor: 'printing'! + +printOn: aStream + "Print a representation of the receiver on aStream." + aStream + nextPut: $<; + print: self class; + space; + display: self; + nextPut: $> +! + +displayOn: aStream + "Print a representation of the receiver on aStream." + | name string | + name := self name. + string := (name anySatisfy: [ :each | '"$\<>'' `' includes: each ]) + ifTrue: [ { ''''. name copyReplaceAll: '''' with: '''\'''''. '''' } join ] + ifFalse: [ name ]. + + aStream nextPutAll: string +! ! + + !File methodsFor: 'accessing'! name @@ -435,16 +528,52 @@ ^vfsHandler openDescriptor: mode ifFail: aBlock ! +withReadStreamDo: aBlock + | stream | + stream := self readStream. + [ aBlock value: stream ] ensure: [ stream close ] +! + readStream "Open a read-only FileStream on the receiver" ^self open: FileStream read ! +withWriteStreamDo: aBlock + | stream | + stream := self writeStream. + [ aBlock value: stream ] ensure: [ stream close ] +! + writeStream "Open a write-only FileStream on the receiver" ^self open: FileStream write ! +symlinkAs: destName + "Create destName as a symbolic link of the receiver. The appropriate + relative path is computed automatically." + | dest relPath | + dest := VFS.VFSHandler for: destName. + relPath := File + computePathFrom: dest realFileName + to: vfsHandler realFileName. + dest symlinkFrom: relPath +! + +pathFrom: dirName + "Compute the relative path from the directory dirName to the receiver" + ^File + computePathFrom: (File fullNameFor: dirName), '/somefile' + to: vfsHandler realFileName +! + +symlinkFrom: srcName + "Create the receiver as a symbolic link from srcName (relative to the + path of the receiver)." + vfsHandler symlinkFrom: srcName +! + remove "Remove the file identified by the receiver" ^vfsHandler remove diff -ru smalltalk-2.3.5/kernel/FileDescr.st smalltalk-2.3.6/kernel/FileDescr.st --- smalltalk-2.3.5/kernel/FileDescr.st 2007-05-18 13:35:09.000000000 +0200 +++ smalltalk-2.3.6/kernel/FileDescr.st 2007-09-06 09:31:38.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2001, 2002, 2005, 2006 Free Software Foundation, Inc. +| Copyright 2001, 2002, 2005, 2006, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -103,7 +103,7 @@ finished with it anyway, using #close. To keep a file open even when no references exist anymore, send it #removeToBeFinalized" - ((fileName indexOfSubCollection: ':/') > 0 and: [ + ((fileName indexOfSubCollection: '://') > 0 and: [ fileMode = FileStream read ]) ifTrue: [ ^NetClients.URIResolver openStreamOn: fileName ]. @@ -263,6 +263,17 @@ file := nil ! +shutdown + "Close the transmission side of a full-duplex connection. This is useful + on read-write pipes." + file isNil ifTrue: [ ^self ]. + + self flush. + self fileOp: 19. + self checkError. + access := 1 +! + close "Close the file" file isNil ifTrue: [ ^self ]. diff -ru smalltalk-2.3.5/kernel/Float.st smalltalk-2.3.6/kernel/Float.st --- smalltalk-2.3.5/kernel/Float.st 2007-05-26 14:01:35.000000000 +0200 +++ smalltalk-2.3.6/kernel/Float.st 2007-09-06 09:31:41.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2003 +| Copyright 1988,92,94,95,99,2000,2001,2002,2003,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -302,6 +302,30 @@ ^self ln / self class ln10 ! +ceilingLog: radix + "Answer (self log: radix) ceiling." + + self < self zero ifTrue: [ + ^self arithmeticError: 'cannot extract logarithm of a negative number' + ]. + radix <= radix unity ifTrue: [ + (radix <= radix zero) ifTrue: [ ^self arithmeticError: 'bad radix' ]. + (radix = radix unity) ifTrue: [ ^self arithmeticError: 'bad radix' ] ]. + ^(self log: radix) ceiling +! + +floorLog: radix + "Answer (self log: radix) floor." + + self < self zero ifTrue: [ + ^self arithmeticError: 'cannot extract logarithm of a negative number' + ]. + radix <= radix unity ifTrue: [ + (radix <= radix zero) ifTrue: [ ^self arithmeticError: 'bad radix' ]. + (radix = radix unity) ifTrue: [ ^self arithmeticError: 'bad radix' ] ]. + ^(self log: radix) floor +! + estimatedLog "Answer an estimate of (self abs floorLog: 10)" ^(self exponent + 1) asFloatD / FloatD log10Base2 diff -ru smalltalk-2.3.5/kernel/LookupTable.st smalltalk-2.3.6/kernel/LookupTable.st --- smalltalk-2.3.5/kernel/LookupTable.st 2007-05-28 12:12:37.000000000 +0200 +++ smalltalk-2.3.6/kernel/LookupTable.st 2007-09-06 09:31:45.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002 +| Copyright 1999, 2000, 2001, 2002, 2007 | Free Software Foundation, Inc. | Written by Steve Byrne and Paolo Bonzini. | @@ -39,10 +39,11 @@ ! LookupTable comment: -'I am similar to Dictionary, except that my representation is -different (more efficient, but not useful to store a variable -binding). I use the object equality comparison message #= -to determine equivalence of indices.' ! +'I am a more efficient variant of Dictionary that cannot be used as a +pool dictionary of variables, as I don''t use Associations to store +key-value pairs. I also cannot have nil as a key; if you need to be +able to store nil as a key, use Dictionary instead. I use the object +equality comparison message #= to determine equivalence of indices.' ! !LookupTable class methodsFor: 'instance creation'! diff -ru smalltalk-2.3.5/kernel/MappedColl.st smalltalk-2.3.6/kernel/MappedColl.st --- smalltalk-2.3.5/kernel/MappedColl.st 2007-01-28 22:38:38.000000000 +0100 +++ smalltalk-2.3.6/kernel/MappedColl.st 2007-09-06 09:31:49.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -82,6 +82,16 @@ ^domain at: (map at: key) ! +atAll: keyCollection + "Answer a new MappedCollection that only includes the given keys. The new + MappedCollection might use keyCollection or consecutive integers for the + keys, depending on the map's type. Fail if any of them is not found in + the map." + ^self class + collection: domain + map: (map atAll: keyCollection) +! + at: key put: value "Store value at the given key" ^domain at: (map at: key) put: value @@ -104,54 +114,58 @@ ^aBag ! +copyFrom: a to: b + ^domain atAll: (map atAll: (a to: b)) +! + do: aBlock "Evaluate aBlock for each object" map do: [ :value | aBlock value: (domain at: value) ] ! -domain - "Answer the domain" - ^domain -! - keys "Answer the keys that can be used to access this collection." ^map keys ! -map - "Answer the map" - ^map +keysAndValuesDo: aBlock + "Evaluate aBlock passing two arguments, one being a key that can be used to + access this collection, and the other one being the value." + map do: [ :key | aBlock value: key value: (self at: key) ] +! + +keysDo: aBlock + "Evaluate aBlock on the keys that can be used to access this collection." + map do: aBlock ! collect: aBlock - "Answer a MappedCollection with a copy of the receiver's map - and a domain obtained by passing each object through aBlock" - | newDomain | - newDomain := domain collect: aBlock. - ^self species collection: newDomain map: map copy. + "Answer a Collection with the same keys as the map, where accessing + a key yields the value obtained by passing through aBlock the value + accessible from the key in the receiver. The result need not be + another MappedCollection" + + "This is tricky. Optimize the operation in order to perform the + minimal number of evaluation of aBlock" + ^domain size > map size + ifTrue: [ map collect: [ :key | aBlock value: (self at: key) ] ] + ifFalse: [ self class collection: (domain collect: aBlock) map: map copy ] ! reject: aBlock "Answer the objects in the domain for which aBlock returns false" - | aStream map | - aStream := WriteStream on: (domain copyEmpty: self size). - self do: [ :value | (aBlock value: value) ifFalse: - [ aStream nextPut: value ] ]. - - ^aStream contents + | newMap | + newMap := newMap reject: [ :key | aBlock value: (self at: key) ]. + ^self class collection: domain map: newMap ! select: aBlock "Answer the objects in the domain for which aBlock returns true" - | aStream | - aStream := WriteStream on: (domain copyEmpty: self size). - self do: [ :value | (aBlock value: value) ifFalse: - [ aStream nextPut: value ] ]. - - ^aStream contents + | newMap | + newMap := newMap select: [ :key | aBlock value: (self at: key) ]. + ^self class collection: domain map: newMap ! ! diff -ru smalltalk-2.3.5/kernel/MthContext.st smalltalk-2.3.6/kernel/MthContext.st --- smalltalk-2.3.5/kernel/MthContext.st 2006-02-05 19:41:26.000000000 +0100 +++ smalltalk-2.3.6/kernel/MthContext.st 2007-09-06 09:31:51.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002 +| Copyright 1988,92,94,95,99,2000,2001,2002,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -101,6 +101,7 @@ chain whenever a non-local return is done, but MethodContexts need to stay there in case there is a non-local return from the #ensure: block." + flags isInteger ifFalse: [ ^false ]. ^flags == 1 ! @@ -109,6 +110,7 @@ non-local return (a return from the enclosing method of a block, or a call to the #continue: method of ContextPart). Such contexts are created only by #ensure:." + flags isInteger ifFalse: [ ^false ]. ^(flags bitAnd: 2) == 2 ! @@ -118,6 +120,7 @@ ``termination'' method. Such a context can be used as a marker for the current execution environment. Answer whether the receiver is that kind of context." + flags isInteger ifFalse: [ ^false ]. ^(flags bitAnd: 4) == 4 ! diff -ru smalltalk-2.3.5/kernel/Number.st smalltalk-2.3.6/kernel/Number.st --- smalltalk-2.3.5/kernel/Number.st 2007-05-26 14:16:09.000000000 +0200 +++ smalltalk-2.3.6/kernel/Number.st 2007-09-06 09:31:54.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002 +| Copyright 1988,92,94,95,99,2000,2001,2002,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -241,7 +241,7 @@ aNumGen := aNumber generality. aNumGen isNil ifTrue: [ ^true ]. - selfGen > aNumGen ifTrue: [ ^false == (self = (self coerce: aNumber)) ]. + selfGen > aNumGen ifTrue: [ ^false == (self ~= (self coerce: aNumber)) ]. selfGen < aNumGen ifTrue: [ ^false == ((aNumber coerce: self) ~= aNumber) ]. self retryError diff -ru smalltalk-2.3.5/kernel/PosStream.st smalltalk-2.3.6/kernel/PosStream.st --- smalltalk-2.3.5/kernel/PosStream.st 2007-05-17 13:58:56.000000000 +0200 +++ smalltalk-2.3.6/kernel/PosStream.st 2007-09-06 09:31:56.000000000 +0200 @@ -7,7 +7,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -189,16 +189,16 @@ position: anInteger "Move the stream pointer to the anInteger-th object" - (anInteger between: 0 and: endPtr) + (anInteger between: 0 and: self size) ifTrue: [ ptr := anInteger + 1 ] - ifFalse: [ SystemExceptions.IndexOutOfRange signalOn: self withIndex: ptr ] + ifFalse: [ SystemExceptions.IndexOutOfRange signalOn: self withIndex: anInteger ] ! basicPosition: anInteger "Move the stream pointer to the anInteger-th object" - (anInteger between: 0 and: endPtr) + (anInteger between: 0 and: self size) ifTrue: [ ptr := anInteger + 1 ] - ifFalse: [ SystemExceptions.IndexOutOfRange signalOn: self withIndex: ptr ] + ifFalse: [ SystemExceptions.IndexOutOfRange signalOn: self withIndex: anInteger ] ! reset @@ -209,7 +209,7 @@ setToEnd "Move the current position to the end of the stream." - ptr := endPtr + 1 + self position: self size ! size diff -ru smalltalk-2.3.5/kernel/RWStream.st smalltalk-2.3.6/kernel/RWStream.st --- smalltalk-2.3.5/kernel/RWStream.st 2006-02-05 19:41:27.000000000 +0100 +++ smalltalk-2.3.6/kernel/RWStream.st 2007-09-06 09:31:59.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2006 +| Copyright 1988,92,94,95,99,2000,2001,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -73,14 +73,10 @@ !ReadWriteStream methodsFor: 'positioning'! -position: anInteger - "Unlike WriteStreams, ReadWriteStreams don't truncate the stream" - self basicPosition: anInteger -! - -skip: anInteger - "Unlike WriteStreams, ReadWriteStreams don't truncate the stream" - self basicPosition: ((self position + anInteger max: 0) min: endPtr). +contents + "Unlike WriteStreams, ReadWriteStreams return the whole contents of the + underlying collection." + ^collection copyFrom: 1 to: endPtr ! ! diff -ru smalltalk-2.3.5/kernel/Regex.st smalltalk-2.3.6/kernel/Regex.st --- smalltalk-2.3.5/kernel/Regex.st 2007-03-16 16:27:08.000000000 +0100 +++ smalltalk-2.3.6/kernel/Regex.st 2007-09-06 09:32:05.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2001, 2003, 2005, 2006 Free Software Foundation, Inc. +| Copyright 2001, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. | Written by Dragomir Milevojevic, Paolo Bonzini, Mike Anderson. | | This file is part of the GNU Smalltalk class library. @@ -553,16 +553,62 @@ ^self occurrencesOfRegex: pattern from: 1 to: self size. ! +replacingRegex: pattern with: str + "Returns the receiver if the pattern has no match in it. If it has + a match, it is replaced with str after substituting %n sequences + with the captured subexpressions of the match (as in #%)." + | regs beg end repl res | + regs := self searchRegexInternal: pattern from: 1 to: self size. + regs isNil ifTrue: [ ^self ]. + + beg := regs from. + end := regs to. + repl := str % regs. + ^(res := self species new: self size - (end - beg + 1) + repl size) + replaceFrom: 1 to: beg - 1 with: self startingAt: 1; + replaceFrom: beg to: beg + repl size - 1 with: repl startingAt: 1; + replaceFrom: beg + repl size to: res size with: self startingAt: end + 1 +! + +replacingAllRegex: pattern with: str + "Returns the receiver if the pattern has no match in it. Otherwise, + any match of pattern in that part of the string is replaced with + str after substituting %n sequences with the captured subexpressions + of the match (as in #%)." + + | res idx regex beg end regs | + regex := pattern asRegex. + regs := self searchRegexInternal: regex from: 1 to: self size. + regs isNil ifTrue: [ ^self ]. + + res := WriteStream on: (String new: self size). + idx := 1. + [ + beg := regs from. + end := regs to. + res next: beg - idx putAll: self startingAt: idx. + res nextPutAll: (str % regs). + idx := end + 1. + beg > end ifTrue: [ res nextPut: (self at: idx). idx := idx + 1 ]. + idx > self size ifTrue: [ ^res contents ]. + regs := self searchRegexInternal: regex from: idx to: self size. + regs isNil + ] whileFalse. + + res next: self size - idx + 1 putAll: self startingAt: idx. + ^res contents +! + copyFrom: from to: to replacingRegex: pattern with: str "Returns the substring of the receiver between from and to. If pattern has a match in that part of the string, the match is replaced with str after substituting %n sequences with the captured subexpressions of the match (as in #bindWithArguments:)." | regs beg end repl res | - regs := self searchRegex: pattern from: from to: to. + regs := self searchRegexInternal: pattern from: from to: to. - regs matched - ifTrue: [ + regs isNil + ifFalse: [ beg := regs from. end := regs to. repl := str bindWithArguments: regs. @@ -570,7 +616,7 @@ res replaceFrom: 1 to: beg - from with: self startingAt: from. res replaceFrom: beg - from + 1 to: beg - from + repl size with: repl. res replaceFrom: beg - from + repl size + 1 to: res size with: self startingAt: end - from + 2 ] - ifFalse: [ res := self copyFrom: from to: to ]. + ifTrue: [ res := self copyFrom: from to: to ]. ^res ! @@ -594,9 +640,9 @@ res := WriteStream on: (String new: to - from + 1). idx := from. [ - regs := self searchRegex: regex from: idx to: to. - regs matched - ] whileTrue: [ + regs := self searchRegexInternal: regex from: idx to: to. + regs isNil + ] whileFalse: [ beg := regs from. end := regs to. res next: beg - idx putAll: self startingAt: idx. diff -ru smalltalk-2.3.5/kernel/RootNamespc.st smalltalk-2.3.6/kernel/RootNamespc.st --- smalltalk-2.3.5/kernel/RootNamespc.st 2006-02-05 19:41:27.000000000 +0100 +++ smalltalk-2.3.6/kernel/RootNamespc.st 2007-09-06 09:32:10.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002 +| Copyright 1999, 2000, 2001, 2002, 2007 | Free Software Foundation, Inc. | Written by Paolo Bonzini. | @@ -51,7 +51,7 @@ a key that references it." ^Smalltalk at: spaceName asGlobalKey - put: ((super new: 31) setSuperspace: nil) + put: ((super new: 24) setSuperspace: nil) ! ! diff -ru smalltalk-2.3.5/kernel/SeqCollect.st smalltalk-2.3.6/kernel/SeqCollect.st --- smalltalk-2.3.5/kernel/SeqCollect.st 2007-05-18 13:35:09.000000000 +0200 +++ smalltalk-2.3.6/kernel/SeqCollect.st 2007-09-06 09:32:19.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2003,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2003,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -151,6 +151,15 @@ ^self at: anIndex ! +atAll: keyCollection + "Answer a collection of the same kind returned by #collect:, that + only includes the values at the given indices. Fail if any of + the values in keyCollection is out of bounds for the receiver." + | result | + result := self copyEmptyForCollect: keyCollection size. + keyCollection do: [ :key | result add: (self at: key) ]. + ^result! + atAll: aCollection put: anObject "Put anObject at every index contained in aCollection" aCollection do: [ :index | self at: index put: anObject ] @@ -183,6 +192,26 @@ ^self at: i - 1 ! +allButFirst + "Answer a copy of the receiver without the first object." + ^self copyFrom: 2 +! + +allButFirst: n + "Answer a copy of the receiver without the first n objects." + ^self copyFrom: n + 1 +! + +allButLast + "Answer a copy of the receiver without the last object." + ^self copyFrom: 1 to: self size - 1 +! + +allButLast: n + "Answer a copy of the receiver without the last n objects." + ^self copyFrom: 1 to: self size - n +! + first "Answer the first item in the receiver" ^self at: 1 @@ -332,20 +361,20 @@ identityIndexOf: anElement startingAt: anIndex "Answer the first index > anIndex which contains an object identical to anElement. Answer 0 if no item is found" - ^self indexOf: anElement startingAt: anIndex ifAbsent: [ ^0 ] + ^self identityIndexOf: anElement startingAt: anIndex ifAbsent: [ ^0 ] ! identityIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of the first occurrence of an object identical to anElement in the receiver. Invoke exceptionBlock and answer its result if no item is found" - ^self indexOf: anElement startingAt: 1 ifAbsent: exceptionBlock + ^self identityIndexOf: anElement startingAt: 1 ifAbsent: exceptionBlock ! identityIndexOf: anElement "Answer the index of the first occurrence of an object identical to anElement in the receiver. Answer 0 if no item is found" - ^self indexOf: anElement startingAt: 1 ifAbsent: [ ^0 ] + ^self identityIndexOf: anElement startingAt: 1 ifAbsent: [ ^0 ] ! ! @@ -543,6 +572,24 @@ +!SequenceableCollection methodsFor: 'concatenating'! + +join + "Answer a new collection like my first element, with all the + elements (in order) of all my elements, which should be + collections. + + I use my first element instead of myself as a prototype because + my elements are more likely to share the desired properties than + I am, such as in: + + #('hello, ' 'world') join => 'hello, world'" + ^self isEmpty ifTrue: [#()] + ifFalse: [self first species join: self] +! ! + + + !SequenceableCollection methodsFor: 'enumerating'! readStream diff -ru smalltalk-2.3.5/kernel/Stream.st smalltalk-2.3.6/kernel/Stream.st --- smalltalk-2.3.5/kernel/Stream.st 2007-05-18 13:35:09.000000000 +0200 +++ smalltalk-2.3.6/kernel/Stream.st 2007-09-06 09:32:16.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2005,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -242,15 +242,18 @@ linesDo: aBlock "Evaluate aBlock once for every line in the receiver (assuming the receiver is streaming on Characters)." - [self atEnd] whileFalse: - [aBlock value: self nextLine]. + [ + [self atEnd] whileFalse: + [aBlock value: self nextLine ] + ] on: EndOfStream do: [ :ex | ex return ] ! do: aBlock "Evaluate aBlock once for every object in the receiver" - [self atEnd] whileFalse: - [aBlock value: self next ] - + [ + [self atEnd] whileFalse: + [aBlock value: self next ] + ] on: EndOfStream do: [ :ex | ex return ] ! ! diff -ru smalltalk-2.3.5/kernel/StreamOps.st smalltalk-2.3.6/kernel/StreamOps.st --- smalltalk-2.3.5/kernel/StreamOps.st 2007-06-01 11:27:12.000000000 +0200 +++ smalltalk-2.3.6/kernel/StreamOps.st 2007-09-06 09:46:17.000000000 +0200 @@ -112,6 +112,10 @@ ^false ! +species + ^streams first species +! + name self atEnd ifTrue: [ ^nil ]. ^streams first name @@ -320,6 +324,10 @@ ^haveLookahead not and: [ stream atEnd ] ! +species + ^stream species +! + pastEnd ^stream pastEnd ! @@ -329,7 +337,7 @@ Returns nil when at end of stream." haveLookahead ifFalse: [ stream atEnd ifTrue: [ ^nil ]. - haveLookahead := true. lookahead := self next ]. + haveLookahead := true. lookahead := stream next ]. ^lookahead ! @@ -416,7 +424,7 @@ | copy | copy := self copy. copy == self ifTrue: [ ^self shouldNotImplement ]. - self become: (PeekableStream on: copy). + self become: (Kernel.PeekableStream on: copy). ^self peekFor: aCharacter ! diff -ru smalltalk-2.3.5/kernel/VFS.st smalltalk-2.3.6/kernel/VFS.st --- smalltalk-2.3.5/kernel/VFS.st 2006-02-05 19:41:28.000000000 +0100 +++ smalltalk-2.3.6/kernel/VFS.st 2007-09-06 09:32:23.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 2002, 2005 Free Software Foundation, Inc. +| Copyright 2002, 2005, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -145,6 +145,9 @@ primIsExecutable: name ! +primSymlink: srcName as: destName + ! + primUnlink: fileName ! @@ -392,6 +395,11 @@ self subclassResponsibility ! +symlinkFrom: srcName + "Create the receiver as a symlink from the relative path srcName" + self subclassResponsibility +! + renameTo: newFileName "Rename the file with the given path name oldFileName to newFileName" self subclassResponsibility @@ -475,18 +483,26 @@ ^self getDateAndTime: self stat stMtime value ! +finalize + "Free the statistics for the receiver" + | statVar | + statVar := stat. + stat := nil. + statVar free +! + refresh "Refresh the statistics for the receiver" stat isNil ifTrue: [ stat := CStatStruct new. - stat addToBeFinalized + self addToBeFinalized ]. self lstatOn: self realFileName into: stat. File checkError. isSymbolicLink := (stat stMode value bitAnd: 8r170000) = 8r120000. "S_IFLNK" isSymbolicLink ifTrue: [ self statOn: self realFileName into: stat. - File checkError ] + File errno ] ! ! @@ -497,10 +513,14 @@ "Answer whether a file with the name contained in the receiver does exist." stat isNil ifTrue: [ stat := CStatStruct new. - stat addToBeFinalized. + self addToBeFinalized. ]. - self statOn: self realFileName into: stat. - ^File errno == 0 + self lstatOn: self realFileName into: stat. + File errno == 0 ifFalse: [ ^false ]. + + isSymbolicLink := (stat stMode value bitAnd: 8r170000) = 8r120000. "S_IFLNK" + isSymbolicLink ifTrue: [ self statOn: self realFileName into: stat ]. + ^true ! isReadable @@ -543,8 +563,14 @@ File checkError ! +symlinkFrom: srcName + "Create the receiver as a symlink from path destName" + self primSymlink: srcName as: self realFileName. + File checkError +! + renameTo: newFileName - "Rename the file with the given path name oldFileName to newFileName" + "Rename the file with the given path name to newFileName" self primRename: self realFileName to: newFileName. File checkError ! ! @@ -606,12 +632,12 @@ "Initialize the default virtual filesystems and the associated filter commands." FileTypes := LookupTable new - at: 'Z' put: 'compress -cf < %1 > %2'; - at: 'uZ' put: 'zcat -f < %1 > %2'; - at: 'gz' put: 'gzip -cf < %1 > %2'; - at: 'ugz' put: 'gzip -cdf < %1 > %2'; - at: 'bz2' put: 'bzip2 < %1 > %2'; - at: 'ubz2' put: 'bzip2 -d < %1 > %2'; + at: 'Z' put: 'compress -cf %1 > %2'; + at: 'uZ' put: 'zcat -f %1 > %2'; + at: 'gz' put: 'gzip -cf %1 > %2'; + at: 'ugz' put: 'gzip -cdf %1 > %2'; + at: 'bz2' put: 'bzip2 -c %1 > %2'; + at: 'ubz2' put: 'bzip2 -cd %1 > %2'; at: 'tar' put: 'tar chof %2 %1'; at: 'tgz' put: 'tar chof - %1 | gzip -cf > %2'; at: 'nop' put: 'cat %1 > %2'; @@ -650,7 +676,7 @@ virtualFileName file into temporaryFileName." self addToBeFinalized. self name: virtualFileName. - realFileName := temporaryFileName! + realFileName := File fullNameFor: temporaryFileName! finalize "Upon finalization, we remove the file that was temporarily holding the file @@ -854,7 +880,7 @@ with: anArchiveMemberHandler name with: temp name). - temp name + File fullNameFor: temp name ]! fillMember: anArchiveMemberHandler @@ -933,10 +959,8 @@ pipe := FileStream popen: command, ' list ', self name dir: FileStream read. - [ - line := pipe nextLine readStream. - line atEnd - ] whileFalse: [ + pipe linesDo: [ :l || line | + line := l readStream. isDir := line next = $d. line skipTo: Character space. "Attributes" line skipSeparators. diff -ru smalltalk-2.3.5/kernel/WeakObjects.st smalltalk-2.3.6/kernel/WeakObjects.st --- smalltalk-2.3.5/kernel/WeakObjects.st 2006-02-05 19:41:28.000000000 +0100 +++ smalltalk-2.3.6/kernel/WeakObjects.st 2007-09-06 09:32:26.000000000 +0200 @@ -7,7 +7,7 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +| Copyright 1999, 2000, 2001, 2002, 2007 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -264,6 +264,11 @@ ^anObject ! +includes: anObject + "Answer whether I contain anObject." + ^super includes: (HomedAssociation key: anObject value: nil environment: self) +! + remove: anObject ifAbsent: aBlock "Remove oldObject to the set. If it is found, answer oldObject. Otherwise, evaluate aBlock and return its value." @@ -470,6 +475,14 @@ ! ! +!WeakIdentitySet methodsFor: 'accessing'! + +identityIncludes: anObject + "Answer whether I include anObject exactly. As I am an + identity-set, this is the same as #includes:." + ^self includes: anObject +! ! + !WeakIdentitySet methodsFor: 'private methods'! hashFor: anObject diff -ru smalltalk-2.3.5/kernel/WriteStream.st smalltalk-2.3.6/kernel/WriteStream.st --- smalltalk-2.3.5/kernel/WriteStream.st 2006-02-05 19:41:28.000000000 +0100 +++ smalltalk-2.3.6/kernel/WriteStream.st 2007-09-06 09:32:31.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1988,92,94,95,99,2000,2001,2002,2006 +| Copyright 1988,92,94,95,99,2000,2001,2002,2006,2007 | Free Software Foundation, Inc. | Written by Steve Byrne. | @@ -74,9 +74,10 @@ !WriteStream methodsFor: 'accessing'! -size - "Answer how many objects have been written" - ^ptr - 1 +contents + "Returns a collection of the same type that the stream accesses, up to + and including the final element." + ^collection copyFrom: 1 to: ptr - 1 ! ! @@ -140,7 +141,7 @@ moveToEnd endPtr := collection size. - self setToEnd + ptr := endPtr + 1 ! growCollection diff -ru smalltalk-2.3.5/lib-src/ChangeLog smalltalk-2.3.6/lib-src/ChangeLog --- smalltalk-2.3.5/lib-src/ChangeLog 2007-04-06 16:18:56.000000000 +0200 +++ smalltalk-2.3.6/lib-src/ChangeLog 2007-07-03 16:11:47.000000000 +0200 @@ -1,3 +1,14 @@ +2007-07-03 Freddie Akeroyd + Paolo Bonzini + + * lib-src/socketx.h: Add declarations for new functions in socketx.c. + * lib-src/socketx.c: New. + * lib-src/poll.c: Include socketx.h. + +2007-06-05 Paolo Bonzini + + * lib-src/poll.c: Yet another MacOS workaround. + 2007-04-07 Paolo Bonzini * lib-src/lrintl.c: New. diff -ru smalltalk-2.3.5/lib-src/Makefile.am smalltalk-2.3.6/lib-src/Makefile.am --- smalltalk-2.3.5/lib-src/Makefile.am 2006-02-05 19:41:28.000000000 +0100 +++ smalltalk-2.3.6/lib-src/Makefile.am 2007-07-03 15:48:36.000000000 +0200 @@ -6,7 +6,7 @@ # These are to be included *always*, the rest are driven by configure.in library_la_SOURCES = \ qsort.c getopt.c getopt1.c md5.c avltrees.c rbtrees.c \ - strspell.c signalx.c ltdl.c regex.c + strspell.c signalx.c ltdl.c regex.c socketx.c noinst_HEADERS = \ obstack.h poll_.h getopt.h md5.h ansidecl.h strspell.h \ diff -ru smalltalk-2.3.5/lib-src/Makefile.in smalltalk-2.3.6/lib-src/Makefile.in --- smalltalk-2.3.5/lib-src/Makefile.in 2007-06-02 17:45:12.000000000 +0200 +++ smalltalk-2.3.6/lib-src/Makefile.in 2007-09-06 09:34:37.000000000 +0200 @@ -86,7 +86,8 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am_library_la_OBJECTS = qsort.lo getopt.lo getopt1.lo md5.lo \ - avltrees.lo rbtrees.lo strspell.lo signalx.lo ltdl.lo regex.lo + avltrees.lo rbtrees.lo strspell.lo signalx.lo ltdl.lo regex.lo \ + socketx.lo library_la_OBJECTS = $(am_library_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp @@ -278,7 +279,7 @@ # These are to be included *always*, the rest are driven by configure.in library_la_SOURCES = \ qsort.c getopt.c getopt1.c md5.c avltrees.c rbtrees.c \ - strspell.c signalx.c ltdl.c regex.c + strspell.c signalx.c ltdl.c regex.c socketx.c noinst_HEADERS = \ obstack.h poll_.h getopt.h md5.h ansidecl.h strspell.h \ @@ -376,6 +377,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rbtrees.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalx.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strspell.Plo@am__quote@ .c.o: diff -ru smalltalk-2.3.5/lib-src/poll.c smalltalk-2.3.6/lib-src/poll.c --- smalltalk-2.3.5/lib-src/poll.c 2007-01-03 11:51:30.000000000 +0100 +++ smalltalk-2.3.6/lib-src/poll.c 2007-07-03 15:48:36.000000000 +0200 @@ -25,8 +25,7 @@ #include "poll.h" #include #include -#include -#include +#include "socketx.h" #include #ifdef HAVE_SYS_IOCTL_H @@ -165,7 +164,12 @@ 0-byte recv, and use ioctl(2) to detect POLLHUP. */ r = recv (pfd[i].fd, NULL, 0, MSG_PEEK); if (r == 0 || errno == ENOTSOCK) - ioctl(pfd[i].fd, FIONREAD, &r); + { + ioctl(pfd[i].fd, FIONREAD, &r); + if (r == 0 && isatty (pfd[i].fd)) + r++; + errno = 0; + } #else char data[64]; r = recv (pfd[i].fd, data, sizeof (data), MSG_PEEK); Only in smalltalk-2.3.6/lib-src: socketx.c diff -ru smalltalk-2.3.5/lib-src/socketx.h smalltalk-2.3.6/lib-src/socketx.h --- smalltalk-2.3.5/lib-src/socketx.h 2006-02-05 19:41:29.000000000 +0100 +++ smalltalk-2.3.6/lib-src/socketx.h 2007-09-06 09:32:37.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2003, 2006 Free Software Foundation, Inc. + * Copyright 2003, 2006, 2007 Free Software Foundation, Inc. * Written by Paolo Bonzini. * * This file is part of GNU Smalltalk. @@ -53,13 +53,56 @@ #ifndef GST_SOCKETX_H #define GST_SOCKETX_H +#include "config.h" + #ifdef HAVE_INET_SOCKETS #ifdef __MSVCRT__ +#include #include +#include + #define is_socket_error(err) (WSAGetLastError() == WSA##err) #define clear_socket_error() WSASetLastError(0) + +#define ESHUTDOWN WSAESHUTDOWN +#define ENOTCONN WSAENOTCONN +#define ECONNRESET WSAECONNRESET +#define ECONNABORTED WSAECONNABORTED +#define ENETRESET WSAENETRESET + +typedef int nfds_t; + +/* re-define FD_ISSET to avoid a WSA call while we are not using + * network sockets */ +#undef FD_ISSET +#define FD_ISSET(fd, set) win_fd_isset(fd, set) + +static inline int +win_fd_isset (int fd, fd_set * set) +{ + int i; + if (set == NULL) + return 0; + + for (i = 0; i < set->fd_count; i++) + if (set->fd_array[i] == fd) + return 1; + + return 0; +} + +int win_select(int n, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *ptv); +int win_recv(int fd, void* buffer, int n, int flags); + +#undef select +#define select win_select + +#undef recv +#define recv win_recv + #else /* !__MSVCRT__ */ + #include #include #include diff -ru smalltalk-2.3.5/libgst/ChangeLog smalltalk-2.3.6/libgst/ChangeLog --- smalltalk-2.3.5/libgst/ChangeLog 2007-06-01 11:27:12.000000000 +0200 +++ smalltalk-2.3.6/libgst/ChangeLog 2007-08-13 14:30:33.000000000 +0200 @@ -1,3 +1,70 @@ +2007-08-13 Paolo Bonzini + + * libgst/interp.c: Fix GC bug in _gst_prepare_execution_environment. + +2007-08-12 Paolo Bonzini + + * libgst/comp.c: Make literals read-only in make_oop_constant. + * libgst/dict.inl: Make Float* and Character literals read-only. + +2007-07-12 Paolo Bonzini + + * libgst/dict.c: Fix pasto in _gst_grow_dictionary. + +2007-07-11 Paolo Bonzini + + * libgst/interp-bc.inl: Reset _gst_except_flag to false at beginning + of monitor_byte_codes. + +2007-07-03 Freddie Akeroyd + Paolo Bonzini + + * libgst/alloc.c: Remove #undef small. + * libgst/alloc.h: Move it here. + * libgst/prims.def: Flush stdio files before quitting. + * libgst/sysdep.c: Implement _gst_recv with recvfrom. + +2007-07-01 Paolo Bonzini + + * libgst/prims.def: Remove bogus check on file in of FileDescriptor + objects. + +2007-06-25 Paolo Bonzini + + * libgst/lex.c: Don't lose on integer literals followed by identifiers. + +2007-06-19 Paolo Bonzini + + * libgst/sysdep.c: Look for backslashes in Windows paths. + +2007-06-18 Paolo Bonzini + + * libgst/sysdep.c: Use utime if utimes missing. + * tests/fileext.st: Run tests using Unix file separator. + +2007-06-15 Freddie Akeroyd + Paolo Bonzini + + * libgst/cint.c: Remove my_utime. + * libgst/sysdep.c: Move it here as _gst_set_file_access_times. + * libgst/sysdep.h: Declare it. + * libgst/dict.c: Add CSymbols.PathSeparator. + +2007-06-11 Paolo Bonzini + + * libgst/cint.c: Add symlink function. + +2007-06-07 Paolo Bonzini + + * libgst/comp.c: Initialize an attribute's arguments array before + filling it, a GC may trigger while it is being created. + +2007-06-05 Paolo Bonzini + + * libgst/interp.h: Add PRIM_SHUTDOWN_WRITE. + * libgst/interp.c: Implement it. Fix bug in PRIM_MK_TEMP. + * libgst/sysdep.c: Use pipes/sockets instead of pty's. + 2007-06-01 Paolo Bonzini * libgst/lib.c: Load StreamOps.st. diff -ru smalltalk-2.3.5/libgst/alloc.c smalltalk-2.3.6/libgst/alloc.c --- smalltalk-2.3.5/libgst/alloc.c 2006-02-05 19:41:32.000000000 +0100 +++ smalltalk-2.3.6/libgst/alloc.c 2007-09-06 09:32:39.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + * Copyright 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. * Written by Paolo Bonzini. Ideas based on Mike Haertel's malloc. * * This file is part of GNU Smalltalk. @@ -97,11 +97,6 @@ static void init_heap (heap_data *h, size_t heap_allocation_size, size_t heap_limit); -/* Oh my God, how broken things sometimes are! */ -#if defined small -# undef small -#endif - #define vSmall var.small #define vLarge var.large #define vFree var.free diff -ru smalltalk-2.3.5/libgst/alloc.h smalltalk-2.3.6/libgst/alloc.h --- smalltalk-2.3.5/libgst/alloc.h 2006-02-05 19:41:32.000000000 +0100 +++ smalltalk-2.3.6/libgst/alloc.h 2007-09-06 09:32:42.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2002, 2004, 2006 Free Software Foundation, Inc. + * Copyright 2002, 2004, 2006, 2007 Free Software Foundation, Inc. * Written by Paolo Bonzini. * * This file is part of GNU Smalltalk. @@ -54,6 +54,11 @@ #define NUM_FREELISTS 47 +/* Oh my God, how broken things sometimes are! */ +#if defined small +# undef small +#endif + typedef struct heap_freeobj { struct heap_freeobj *next; diff -ru smalltalk-2.3.5/libgst/cint.c smalltalk-2.3.6/libgst/cint.c --- smalltalk-2.3.5/libgst/cint.c 2006-12-07 09:09:12.000000000 +0100 +++ smalltalk-2.3.6/libgst/cint.c 2007-09-06 09:32:45.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -332,22 +332,6 @@ } int -my_utime (const char *name, - long new_atime, - long new_mtime) -{ - struct timeval times[2]; - int result; - times[0].tv_sec = new_atime + 86400 * 10957; - times[1].tv_sec = new_mtime + 86400 * 10957; - times[0].tv_usec = times[1].tv_usec = 0; - result = utimes (name, times); - if (!result) - errno = 0; - return (result); -} - -int my_stat (const char *name, gst_stat * out) { @@ -539,7 +523,7 @@ _gst_define_cfunc ("strerror", strerror); _gst_define_cfunc ("stat", my_stat); _gst_define_cfunc ("lstat", my_lstat); - _gst_define_cfunc ("utime", my_utime); + _gst_define_cfunc ("utime", _gst_set_file_access_times); _gst_define_cfunc ("opendir", my_opendir); _gst_define_cfunc ("closedir", closedir); @@ -547,6 +531,7 @@ _gst_define_cfunc ("rewinddir", rewinddir); _gst_define_cfunc ("extractDirentName", extract_dirent_name); + _gst_define_cfunc ("symlink", symlink); _gst_define_cfunc ("unlink", unlink); _gst_define_cfunc ("rename", rename); _gst_define_cfunc ("rmdir", rmdir); diff -ru smalltalk-2.3.5/libgst/comp.c smalltalk-2.3.6/libgst/comp.c --- smalltalk-2.3.5/libgst/comp.c 2006-02-05 19:41:33.000000000 +0100 +++ smalltalk-2.3.6/libgst/comp.c 2007-09-06 09:32:47.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -1105,8 +1105,6 @@ return; } } - else - MAKE_OOP_READONLY (constantOOP, true); index = add_literal (constantOOP); } @@ -2182,9 +2180,8 @@ elementOOP = make_constant_oop (arrayElt->v_list.value); result = OOP_TO_OBJ (resultOOP); result->data[i] = elementOOP; - if (IS_OOP (elementOOP)) - MAKE_OOP_READONLY (elementOOP, true); } + MAKE_OOP_READONLY (resultOOP, true); INC_RESTORE_POINTER (incPtr); return (resultOOP); } @@ -2207,7 +2204,9 @@ return (floatq_new (constExpr->v_const.val.fVal)); case CONST_STRING: - return (_gst_string_new (constExpr->v_const.val.sVal)); + resultOOP = _gst_string_new (constExpr->v_const.val.sVal); + MAKE_OOP_READONLY (resultOOP, true); + return (resultOOP); case CONST_OOP: return (constExpr->v_const.val.oopVal); @@ -2216,6 +2215,7 @@ bo = constExpr->v_const.val.boVal; result = instantiate_with (bo->class, bo->size, &resultOOP); memcpy (result->data, bo->body, bo->size); + MAKE_OOP_READONLY (resultOOP, true); return (resultOOP); case CONST_ARRAY: @@ -2232,10 +2232,9 @@ elementOOP = make_constant_oop (arrayElt->v_list.value); result = OOP_TO_OBJ (resultOOP); result->data[i] = elementOOP; - if (IS_OOP (elementOOP)) - MAKE_OOP_READONLY (elementOOP, true); } + MAKE_OOP_READONLY (resultOOP, true); INC_RESTORE_POINTER (incPtr); return (resultOOP); } @@ -2344,7 +2343,7 @@ selectorOOP = compute_keyword_selector (attribute_keywords); numArgs = list_length (attribute_keywords); - argsArray = new_instance_with (_gst_array_class, numArgs, &argsArrayOOP); + argsArray = instantiate_with (_gst_array_class, numArgs, &argsArrayOOP); INC_ADD_OOP (argsArrayOOP); for (i = 0, keyword = attribute_keywords; keyword != NULL; diff -ru smalltalk-2.3.5/libgst/dict.c smalltalk-2.3.6/libgst/dict.c --- smalltalk-2.3.5/libgst/dict.c 2007-05-24 14:36:11.000000000 +0200 +++ smalltalk-2.3.6/libgst/dict.c 2007-09-06 09:32:59.000000000 +0200 @@ -7,7 +7,8 @@ /*********************************************************************** * - * Copyright 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005,2006,2007 + * Free Software Foundation, Inc. * Written by Steve Byrne. * * This file is part of GNU Smalltalk. @@ -1088,6 +1089,14 @@ #define NAN (0.0 / 0.0) #endif +#if defined WIN32 && !defined __CYGWIN__ + NAMESPACE_AT_PUT (cSymbolsOOP, _gst_intern_string ("PathSeparator"), + CHAR_OOP_AT ('\\')); +#else + NAMESPACE_AT_PUT (cSymbolsOOP, _gst_intern_string ("PathSeparator"), + CHAR_OOP_AT ('/')); +#endif + NAMESPACE_AT_PUT (cSymbolsOOP, _gst_intern_string ("CDoubleMin"), floatd_new (DBL_MIN)); NAMESPACE_AT_PUT (cSymbolsOOP, _gst_intern_string ("CDoubleMax"), @@ -1530,9 +1539,9 @@ object, the new dictionary itself */ dictionary = instantiate_with (OOP_CLASS (oldDictionaryOOP), - numFields, &dictionaryOOP); + numFields, &dictionaryOOP); memcpy (dictionary->data, oldDictionary->data, sizeof (PTR) * numFixedFields); - oldDictionary = OOP_TO_OBJ (dictionaryOOP); + oldDictionary = OOP_TO_OBJ (oldDictionaryOOP); /* rehash all associations from old dictionary into new one */ for (i = 0; i < oldNumFields; i++) diff -ru smalltalk-2.3.5/libgst/dict.inl smalltalk-2.3.6/libgst/dict.inl --- smalltalk-2.3.5/libgst/dict.inl 2006-02-05 19:41:33.000000000 +0100 +++ smalltalk-2.3.6/libgst/dict.inl 2007-09-06 09:33:03.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + * Copyright 2000, 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc. * Written by Steve Byrne. * * This file is part of GNU Smalltalk. @@ -463,6 +463,7 @@ (_gst_floate_class, sizeof (float), &floatOOP); floatObject->value = f; + MAKE_OOP_READONLY (floatOOP, true); return (floatOOP); } @@ -507,6 +508,7 @@ memcpy (&obj->data, &f, sizeof (double)); #endif + MAKE_OOP_READONLY (floatOOP, true); return (floatOOP); } @@ -551,6 +553,7 @@ memcpy (&obj->data, &f, sizeof (long double)); #endif + MAKE_OOP_READONLY (floatOOP, true); return (floatOOP); } @@ -567,6 +570,7 @@ charObject = (gst_char) new_instance (_gst_unicode_character_class, &charOOP); charObject->codePoint = FROM_INT (codePoint); + MAKE_OOP_READONLY (charOOP, true); return (charOOP); } diff -ru smalltalk-2.3.5/libgst/interp-bc.inl smalltalk-2.3.6/libgst/interp-bc.inl --- smalltalk-2.3.5/libgst/interp-bc.inl 2007-04-16 15:38:21.000000000 +0200 +++ smalltalk-2.3.6/libgst/interp-bc.inl 2007-09-06 09:33:08.000000000 +0200 @@ -8,7 +8,7 @@ /*********************************************************************** * - * Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + * Copyright 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc. * Written by Steve Byrne. * * This file is part of GNU Smalltalk. @@ -506,6 +506,7 @@ IMPORT_REGS (); monitor_byte_codes: + SET_EXCEPT_FLAG (false); if (!disable_preemption) { _gst_disable_interrupts (); /* block out everything! */ @@ -571,12 +572,12 @@ printf ("%5td:", (ptrdiff_t) (ip - method_base)); _gst_print_bytecode_name (ip, ip - method_base, _gst_literals, ""); + SET_EXCEPT_FLAG (true); } if UNCOMMON (time_to_preempt) set_preemption_timer (); - SET_EXCEPT_FLAG (_gst_execution_tracing); FETCH (normal_byte_codes); /* Some more routines we need... */ diff -ru smalltalk-2.3.5/libgst/interp.c smalltalk-2.3.6/libgst/interp.c --- smalltalk-2.3.5/libgst/interp.c 2006-02-05 19:41:34.000000000 +0100 +++ smalltalk-2.3.6/libgst/interp.c 2007-09-06 09:33:11.000000000 +0200 @@ -10,7 +10,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -2073,7 +2073,8 @@ _gst_prepare_execution_environment (void) { gst_method_context dummyContext; - OOP dummyContextOOP; + OOP dummyContextOOP, processOOP; + inc_ptr inc = INC_SAVE_POINTER (); empty_context_stack (); dummyContext = alloc_stack_context (4); @@ -2096,7 +2097,12 @@ dummyContextOOP = alloc_oop (dummyContext, _gst_mem.active_flag | F_POOLED | F_CONTEXT); - return (create_callin_process (dummyContextOOP)); + + INC_ADD_OOP (dummyContextOOP); + processOOP = create_callin_process (dummyContextOOP); + + INC_RESTORE_POINTER (inc); + return (processOOP); } OOP diff -ru smalltalk-2.3.5/libgst/interp.h smalltalk-2.3.6/libgst/interp.h --- smalltalk-2.3.5/libgst/interp.h 2006-02-05 19:41:34.000000000 +0100 +++ smalltalk-2.3.6/libgst/interp.h 2007-09-06 09:33:13.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -81,7 +81,8 @@ PRIM_IS_PIPE, /* no args */ PRIM_MK_TEMP, /* base: */ PRIM_GET_CHARS_AT, /* data:from:to:absOfs: */ - PRIM_PUT_CHARS_AT /* data:from:to:absOfs: */ + PRIM_PUT_CHARS_AT, /* data:from:to:absOfs: */ + PRIM_SHUTDOWN_WRITE /* shutdown */ }; /* These macros are used to quickly compute the number of words needed diff -ru smalltalk-2.3.5/libgst/lex.c smalltalk-2.3.6/libgst/lex.c --- smalltalk-2.3.5/libgst/lex.c 2007-05-26 14:16:10.000000000 +0200 +++ smalltalk-2.3.6/libgst/lex.c 2007-08-12 17:00:38.000000000 +0200 @@ -824,6 +824,7 @@ /* incubator is set up by _gst_compile_method */ INC_ADD_OOP (lvalp->oval); + MAKE_OOP_READONLY (lvalp->oval, true); return (SCALED_DECIMAL_LITERAL); } while (0); @@ -888,6 +889,8 @@ } else { + char *p = obstack_finish (_gst_compilation_obstack); + obstack_free (_gst_compilation_obstack, p); lvalp->ival = (intptr_t) num; return (INTEGER_LITERAL); } diff -ru smalltalk-2.3.5/libgst/prims.def smalltalk-2.3.6/libgst/prims.def --- smalltalk-2.3.5/libgst/prims.def 2007-01-28 22:38:38.000000000 +0100 +++ smalltalk-2.3.6/libgst/prims.def 2007-09-06 09:33:15.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -3079,6 +3079,8 @@ if (IS_INT (oop1)) { suspend_process (get_scheduled_process ()); + fflush (stdout); + fflush (stderr); _gst_msg_sendf (NULL, "%v %o changed: %S", _gst_object_memory_class, "aboutToQuit"); arg1 = TO_INT (oop1); @@ -5052,19 +5054,6 @@ if (!RECEIVER_IS_OOP (streamOOP)) PRIM_FAILED; - if (is_a_kind_of (OOP_CLASS (streamOOP), _gst_file_descriptor_class)) - { - gst_file_stream fileStream = (gst_file_stream) OOP_TO_OBJ (streamOOP); - char *fileName = _gst_to_cstring (fileStream->name); - if (!_gst_file_is_readable (fileName)) - { - xfree (fileName); - PRIM_FAILED; - } - else - xfree (fileName); - } - _gst_push_stream_oop (streamOOP); _gst_use_undeclared++; parse_stream_with_protection (false); @@ -5220,7 +5209,7 @@ fd = mkstemp ((char *) fileName2); xfree (fileName); - if (fd >= 0) + if (fd < 0) { xfree (fileName2); UNPOP (numArgs); @@ -5488,6 +5477,16 @@ PRIM_SUCCEEDED; } break; + + case PRIM_SHUTDOWN_WRITE: + shutdown (fd, 1); + if (errno == ENOTSOCK && isatty (fd)) + { + char buf[1]; + write (fd, buf, 0); + errno == 0; + } + break; } if (errno) diff -ru smalltalk-2.3.5/libgst/prims.inl smalltalk-2.3.6/libgst/prims.inl --- smalltalk-2.3.5/libgst/prims.inl 2007-01-29 09:28:49.000000000 +0100 +++ smalltalk-2.3.6/libgst/prims.inl 2007-09-06 09:33:18.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -4161,6 +4161,8 @@ if (IS_INT (oop1)) { suspend_process (get_scheduled_process ()); + fflush (stdout); + fflush (stderr); _gst_msg_sendf (NULL, "%v %o changed: %S", _gst_object_memory_class, "aboutToQuit"); arg1 = TO_INT (oop1); @@ -4173,7 +4175,7 @@ intptr_t VMpr_ObjectMemory_abort (int id, volatile int numArgs) -#line 3092 "prims.def" +#line 3094 "prims.def" { _gst_primitives_executed++; abort (); @@ -4184,7 +4186,7 @@ intptr_t VMpr_Dictionary_at (int id, volatile int numArgs) -#line 3100 "prims.def" +#line 3102 "prims.def" { OOP oop1; OOP oop2; @@ -4201,7 +4203,7 @@ intptr_t VMpr_Dictionary_atPut (int id, volatile int numArgs) -#line 3114 "prims.def" +#line 3116 "prims.def" { OOP oop1; OOP oop2; @@ -4226,7 +4228,7 @@ intptr_t VMpr_Object_bootstrapException (int id, volatile int numArgs) -#line 3138 "prims.def" +#line 3140 "prims.def" { OOP oop1; OOP oop2; @@ -4251,7 +4253,7 @@ intptr_t VMpr_Character_create (int id, volatile int numArgs) -#line 3160 "prims.def" +#line 3162 "prims.def" { OOP oop1; OOP oop2; @@ -4278,7 +4280,7 @@ intptr_t VMpr_UnicodeCharacter_create (int id, volatile int numArgs) -#line 3184 "prims.def" +#line 3186 "prims.def" { OOP oop1; OOP oop2; @@ -4304,7 +4306,7 @@ intptr_t VMpr_Character_equal (int id, volatile int numArgs) -#line 3207 "prims.def" +#line 3209 "prims.def" { OOP oop1; OOP oop2; @@ -4323,7 +4325,7 @@ intptr_t VMpr_Symbol_intern (int id, volatile int numArgs) -#line 3223 "prims.def" +#line 3225 "prims.def" { OOP oop2; _gst_primitives_executed++; @@ -4347,7 +4349,7 @@ intptr_t VMpr_Dictionary_new (int id, volatile int numArgs) -#line 3244 "prims.def" +#line 3246 "prims.def" { OOP oop1, dictionaryOOP; _gst_primitives_executed++; @@ -4363,7 +4365,7 @@ intptr_t VMpr_Memory_addressOfOOP (int id, volatile int numArgs) -#line 3257 "prims.def" +#line 3259 "prims.def" { OOP oop1; OOP oop2; @@ -4384,7 +4386,7 @@ intptr_t VMpr_Memory_addressOf (int id, volatile int numArgs) -#line 3275 "prims.def" +#line 3277 "prims.def" { OOP oop1; OOP oop2; @@ -4407,7 +4409,7 @@ intptr_t VMpr_SystemDictionary_backtrace (int id, volatile int numArgs) -#line 3295 "prims.def" +#line 3297 "prims.def" { _gst_primitives_executed++; _gst_show_backtrace (); @@ -4418,7 +4420,7 @@ intptr_t VMpr_SystemDictionary_getTraceFlag (int id, volatile int numArgs) -#line 3303 "prims.def" +#line 3305 "prims.def" { OOP oop1; OOP oop2; @@ -4448,7 +4450,7 @@ intptr_t VMpr_SystemDictionary_setTraceFlag (int id, volatile int numArgs) -#line 3330 "prims.def" +#line 3332 "prims.def" { OOP oop1; OOP oop2; @@ -4478,7 +4480,7 @@ intptr_t VMpr_CObject_alloc (int id, volatile int numArgs) -#line 3357 "prims.def" +#line 3359 "prims.def" { OOP oop1; OOP oop2; @@ -4501,7 +4503,7 @@ intptr_t VMpr_Memory_at (int id, volatile int numArgs) -#line 3377 "prims.def" +#line 3379 "prims.def" { OOP oop1; OOP oop2; @@ -4570,7 +4572,7 @@ intptr_t VMpr_Memory_atPut (int id, volatile int numArgs) -#line 3443 "prims.def" +#line 3445 "prims.def" { OOP oop4; OOP oop3; @@ -4704,7 +4706,7 @@ intptr_t VMpr_Behavior_methodsFor (int id, volatile int numArgs) -#line 3574 "prims.def" +#line 3576 "prims.def" { OOP oop2 = POP_OOP (); OOP oop1 = STACKTOP (); @@ -4724,7 +4726,7 @@ intptr_t VMpr_Behavior_methodsForIfTrue (int id, volatile int numArgs) -#line 3591 "prims.def" +#line 3593 "prims.def" { OOP oop3 = POP_OOP (); OOP oop2 = POP_OOP (); @@ -4751,7 +4753,7 @@ intptr_t VMpr_Processor_disableEnableInterrupts (int id, volatile int numArgs) -#line 3617 "prims.def" +#line 3619 "prims.def" { OOP processOOP; gst_process process; @@ -4780,7 +4782,7 @@ intptr_t VMpr_Processor_signalOnInterrupt (int id, volatile int numArgs) -#line 3643 "prims.def" +#line 3645 "prims.def" { OOP oop1; OOP oop2; @@ -4805,7 +4807,7 @@ intptr_t VMpr_ObjectMemory_getSpaceGrowRate (int id, volatile int numArgs) -#line 3665 "prims.def" +#line 3667 "prims.def" { _gst_primitives_executed++; SET_STACKTOP (floatd_new ((double) _gst_mem.space_grow_rate)); @@ -4816,7 +4818,7 @@ intptr_t VMpr_ObjectMemory_setSpaceGrowRate (int id, volatile int numArgs) -#line 3673 "prims.def" +#line 3675 "prims.def" { intptr_t arg1; OOP oop1; @@ -4851,7 +4853,7 @@ intptr_t VMpr_ObjectMemory_getSmoothingFactor (int id, volatile int numArgs) -#line 3705 "prims.def" +#line 3707 "prims.def" { _gst_primitives_executed++; SET_STACKTOP (floatd_new ((double) _gst_mem.factor)); @@ -4862,7 +4864,7 @@ intptr_t VMpr_ObjectMemory_setSmoothingFactor (int id, volatile int numArgs) -#line 3713 "prims.def" +#line 3715 "prims.def" { OOP oop1; intptr_t arg1; @@ -4896,7 +4898,7 @@ intptr_t VMpr_ObjectMemory_getGrowThresholdPercent (int id, volatile int numArgs) -#line 3744 "prims.def" +#line 3746 "prims.def" { _gst_primitives_executed++; SET_STACKTOP (floatd_new ((double) _gst_mem.grow_threshold_percent)); @@ -4907,7 +4909,7 @@ intptr_t VMpr_ObjectMemory_setGrowThresholdPercent (int id, volatile int numArgs) -#line 3752 "prims.def" +#line 3754 "prims.def" { OOP oop1; intptr_t arg1; @@ -4941,7 +4943,7 @@ intptr_t VMpr_ObjectMemory_getBigObjectThreshold (int id, volatile int numArgs) -#line 3783 "prims.def" +#line 3785 "prims.def" { _gst_primitives_executed++; SET_STACKTOP_INT (_gst_mem.big_object_threshold); @@ -4952,7 +4954,7 @@ intptr_t VMpr_ObjectMemory_setBigObjectThreshold (int id, volatile int numArgs) -#line 3791 "prims.def" +#line 3793 "prims.def" { OOP oop1; intptr_t arg1; @@ -4983,7 +4985,7 @@ intptr_t VMpr_ObjectMemory_growTo (int id, volatile int numArgs) -#line 3819 "prims.def" +#line 3821 "prims.def" { OOP oop1; intptr_t arg1; @@ -5005,7 +5007,7 @@ intptr_t VMpr_ObjectMemory_update (int id, volatile int numArgs) -#line 3838 "prims.def" +#line 3840 "prims.def" { _gst_primitives_executed++; @@ -5023,7 +5025,7 @@ intptr_t VMpr_CObject_allocType (int id, volatile int numArgs) -#line 3853 "prims.def" +#line 3855 "prims.def" { OOP oop1; OOP oop2; @@ -5049,7 +5051,7 @@ intptr_t VMpr_Float_sin (int id, volatile int numArgs) -#line 3876 "prims.def" +#line 3878 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5080,7 +5082,7 @@ intptr_t VMpr_Float_cos (int id, volatile int numArgs) -#line 3904 "prims.def" +#line 3906 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5111,7 +5113,7 @@ intptr_t VMpr_Float_tan (int id, volatile int numArgs) -#line 3932 "prims.def" +#line 3934 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5142,7 +5144,7 @@ intptr_t VMpr_Float_arcSin (int id, volatile int numArgs) -#line 3960 "prims.def" +#line 3962 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5173,7 +5175,7 @@ intptr_t VMpr_Float_arcCos (int id, volatile int numArgs) -#line 3988 "prims.def" +#line 3990 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5204,7 +5206,7 @@ intptr_t VMpr_Float_arcTan (int id, volatile int numArgs) -#line 4016 "prims.def" +#line 4018 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5235,7 +5237,7 @@ intptr_t VMpr_Float_exp (int id, volatile int numArgs) -#line 4044 "prims.def" +#line 4046 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5266,7 +5268,7 @@ intptr_t VMpr_Float_ln (int id, volatile int numArgs) -#line 4072 "prims.def" +#line 4074 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5297,7 +5299,7 @@ intptr_t VMpr_Float_pow (int id, volatile int numArgs) -#line 4100 "prims.def" +#line 4102 "prims.def" { OOP oop1; OOP oop2; @@ -5374,7 +5376,7 @@ intptr_t VMpr_CObject_free (int id, volatile int numArgs) -#line 4174 "prims.def" +#line 4176 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5393,7 +5395,7 @@ intptr_t VMpr_Float_sqrt (int id, volatile int numArgs) -#line 4190 "prims.def" +#line 4192 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5424,7 +5426,7 @@ intptr_t VMpr_Float_ceil_floor (int id, volatile int numArgs) -#line 4220 "prims.def" +#line 4222 "prims.def" { OOP oop1; double farg1; @@ -5460,7 +5462,7 @@ intptr_t VMpr_Behavior_basicNewFixed (int id, volatile int numArgs) -#line 4253 "prims.def" +#line 4255 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5484,7 +5486,7 @@ intptr_t VMpr_Behavior_basicNewFixedColon (int id, volatile int numArgs) -#line 4274 "prims.def" +#line 4276 "prims.def" { OOP oop1; OOP oop2; @@ -5516,7 +5518,7 @@ intptr_t VMpr_Object_tenure (int id, volatile int numArgs) -#line 4303 "prims.def" +#line 4305 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5534,7 +5536,7 @@ intptr_t VMpr_Object_makeFixed (int id, volatile int numArgs) -#line 4318 "prims.def" +#line 4320 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -5555,7 +5557,7 @@ intptr_t VMpr_CObject_at (int id, volatile int numArgs) -#line 4338 "prims.def" +#line 4340 "prims.def" { OOP oop1; OOP oop2; @@ -5678,7 +5680,7 @@ intptr_t VMpr_CObject_atPut (int id, volatile int numArgs) -#line 4460 "prims.def" +#line 4462 "prims.def" { /* I don't think that this deals properly with setting the pointer value as opposed to setting the pointed-to value. */ @@ -5879,7 +5881,7 @@ intptr_t VMpr_CString_replaceWith (int id, volatile int numArgs) -#line 4658 "prims.def" +#line 4660 "prims.def" { OOP oop1; OOP oop2; @@ -5914,7 +5916,7 @@ intptr_t VMpr_ByteArray_fromCData_size (int id, volatile int numArgs) -#line 4690 "prims.def" +#line 4692 "prims.def" { OOP oop1; OOP oop2; @@ -5940,7 +5942,7 @@ intptr_t VMpr_String_fromCData_size (int id, volatile int numArgs) -#line 4713 "prims.def" +#line 4715 "prims.def" { OOP oop1; OOP oop2; @@ -5966,7 +5968,7 @@ intptr_t VMpr_String_fromCData (int id, volatile int numArgs) -#line 4736 "prims.def" +#line 4738 "prims.def" { OOP oop1; OOP oop2; @@ -5985,7 +5987,7 @@ intptr_t VMpr_String_ByteArray_asCData (int id, volatile int numArgs) -#line 4754 "prims.def" +#line 4756 "prims.def" { PTR data; int size; @@ -6023,7 +6025,7 @@ intptr_t VMpr_SystemDictionary_byteCodeCounter (int id, volatile int numArgs) -#line 4789 "prims.def" +#line 4791 "prims.def" { _gst_primitives_executed++; SET_STACKTOP_INT (_gst_bytecode_counter); @@ -6034,7 +6036,7 @@ intptr_t VMpr_SystemDictionary_debug (int id, volatile int numArgs) -#line 4797 "prims.def" +#line 4799 "prims.def" { _gst_primitives_executed++; _gst_debug (); /* used to allow gdb to stop based on @@ -6047,7 +6049,7 @@ intptr_t VMpr_Object_isUntrusted (int id, volatile int numArgs) -#line 4807 "prims.def" +#line 4809 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -6061,7 +6063,7 @@ intptr_t VMpr_Object_makeUntrusted (int id, volatile int numArgs) -#line 4818 "prims.def" +#line 4820 "prims.def" { OOP oop1; OOP oop2; @@ -6088,7 +6090,7 @@ intptr_t VMpr_Object_isReadOnly (int id, volatile int numArgs) -#line 4842 "prims.def" +#line 4844 "prims.def" { OOP oop1; _gst_primitives_executed++; @@ -6102,7 +6104,7 @@ intptr_t VMpr_Object_makeReadOnly (int id, volatile int numArgs) -#line 4853 "prims.def" +#line 4855 "prims.def" { OOP oop1; OOP oop2; @@ -6133,7 +6135,7 @@ intptr_t VMpr_Behavior_compileString (int id, volatile int numArgs) -#line 4881 "prims.def" +#line 4883 "prims.def" { OOP oop1; OOP oop2; @@ -6158,7 +6160,7 @@ intptr_t VMpr_Behavior_compileStringIfError (int id, volatile int numArgs) -#line 4903 "prims.def" +#line 4905 "prims.def" { OOP oop1; OOP oop2; @@ -6226,7 +6228,7 @@ intptr_t VMpr_CFuncDescriptor_create (int id, volatile int numArgs) -#line 4968 "prims.def" +#line 4970 "prims.def" { OOP oop1; OOP oop2; @@ -6256,7 +6258,7 @@ intptr_t VMpr_ObjectMemory_snapshot (int id, volatile int numArgs) -#line 4995 "prims.def" +#line 4997 "prims.def" { char *fileName; OOP oop2; @@ -6287,7 +6289,7 @@ intptr_t VMpr_Object_basicPrint (int id, volatile int numArgs) -#line 5023 "prims.def" +#line 5025 "prims.def" { _gst_primitives_executed++; printf ("Object: %O", STACKTOP ()); @@ -6299,7 +6301,7 @@ intptr_t VMpr_Object_makeWeak (int id, volatile int numArgs) -#line 5032 "prims.def" +#line 5034 "prims.def" { OOP oop1 = STACKTOP (); _gst_primitives_executed++; @@ -6318,7 +6320,7 @@ intptr_t VMpr_Stream_fileIn (int id, volatile int numArgs) -#line 5048 "prims.def" +#line 5050 "prims.def" { OOP streamOOP = STACKTOP (); _gst_primitives_executed++; @@ -6326,19 +6328,6 @@ if (!RECEIVER_IS_OOP (streamOOP)) PRIM_FAILED; - if (is_a_kind_of (OOP_CLASS (streamOOP), _gst_file_descriptor_class)) - { - gst_file_stream fileStream = (gst_file_stream) OOP_TO_OBJ (streamOOP); - char *fileName = _gst_to_cstring (fileStream->name); - if (!_gst_file_is_readable (fileName)) - { - xfree (fileName); - PRIM_FAILED; - } - else - xfree (fileName); - } - _gst_push_stream_oop (streamOOP); _gst_use_undeclared++; parse_stream_with_protection (false); @@ -6352,7 +6341,7 @@ intptr_t VMpr_Stream_fileInLine (int id, volatile int numArgs) -#line 5079 "prims.def" +#line 5068 "prims.def" { OOP oop3 = POP_OOP (); OOP oop2 = POP_OOP (); @@ -6411,7 +6400,7 @@ intptr_t VMpr_FileDescriptor_fileOp (int id, volatile int numArgs) -#line 5135 "prims.def" +#line 5124 "prims.def" { char *fileName, *fileName2; gst_file_stream fileStream; @@ -6500,7 +6489,7 @@ fd = mkstemp ((char *) fileName2); xfree (fileName); - if (fd >= 0) + if (fd < 0) { xfree (fileName2); UNPOP (numArgs); @@ -6768,6 +6757,16 @@ PRIM_SUCCEEDED; } break; + + case PRIM_SHUTDOWN_WRITE: + shutdown (fd, 1); + if (errno == ENOTSOCK && isatty (fd)) + { + char buf[1]; + write (fd, buf, 0); + errno == 0; + } + break; } if (errno) @@ -6782,7 +6781,7 @@ intptr_t VMpr_FileDescriptor_socketOp (int id, volatile int numArgs) -#line 5503 "prims.def" +#line 5502 "prims.def" { gst_file_stream fileStream; int fd; @@ -6923,7 +6922,7 @@ intptr_t VMpr_CFuncDescriptor_asyncCall (int id, volatile int numArgs) -#line 5641 "prims.def" +#line 5640 "prims.def" { volatile OOP result = NULL; volatile gst_method_context context; @@ -6964,7 +6963,7 @@ intptr_t VMpr_CFuncDescriptor_call (int id, volatile int numArgs) -#line 5679 "prims.def" +#line 5678 "prims.def" { volatile OOP result = NULL; /* initialize to please GCC */ volatile gst_method_context context; @@ -7022,7 +7021,7 @@ intptr_t VMpr_Object_makeEphemeron (int id, volatile int numArgs) -#line 5734 "prims.def" +#line 5733 "prims.def" { _gst_primitives_executed++; if (NUM_OOPS (OOP_TO_OBJ (STACKTOP ())) == 0) @@ -7036,7 +7035,7 @@ intptr_t VMpr_Namespace_setCurrent (int id, volatile int numArgs) -#line 5745 "prims.def" +#line 5744 "prims.def" { OOP oop1; @@ -7054,7 +7053,7 @@ intptr_t VMpr_ObjectMemory_gcPrimitives (int id, volatile int numArgs) -#line 5765 "prims.def" +#line 5764 "prims.def" { _gst_primitives_executed++; switch (id) diff -ru smalltalk-2.3.5/libgst/sysdep.c smalltalk-2.3.6/libgst/sysdep.c --- smalltalk-2.3.5/libgst/sysdep.c 2007-05-07 15:12:04.000000000 +0200 +++ smalltalk-2.3.6/libgst/sysdep.c 2007-09-06 09:33:20.000000000 +0200 @@ -11,7 +11,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -58,6 +58,10 @@ #include "gstpriv.h" +#ifdef HAVE_UTIME_H +# include +#endif + #ifdef HAVE_SYS_TIMES_H # include #endif @@ -745,30 +749,56 @@ } +int +_gst_set_file_access_times (const char *name, long new_atime, long new_mtime) +{ + int result; +#if defined HAVE_UTIMES + struct timeval times[2]; + times[0].tv_sec = new_atime + 86400 * 10957; + times[1].tv_sec = new_mtime + 86400 * 10957; + times[0].tv_usec = times[1].tv_usec = 0; + result = utimes (name, times); +#elif defined HAVE_UTIME + struct utimbuf utb; + utb.actime = new_atime + 86400 * 10957; + utb.modtime = new_mtime + 86400 * 10957; + result = utime (name, &utb); +#else +#warning neither utime nor utimes are available. + errno = ENOSYS; + result = -1; +#endif + if (!result) + errno = 0; + return (result); +} + + char * _gst_get_full_file_name (const char *fileName) { char *fullFileName; static char *fullPath = NULL; - if (fileName[0] == '/') /* absolute, so don't need to change */ + /* Absolute paths don't need to change */ + if (fileName[0] == '/') return (xstrdup (fileName)); +#if defined WIN32 && !defined __CYGWIN__ + if (fileName[0] == '\\' || (fileName[0] != '\0' && fileName[1] == ':')) + return (xstrdup (fileName)); +#endif + /* Only need to do this once, then cache the result */ if (fullPath == NULL) - { - /* Only need to do this once, then cache the result */ - fullPath = _gst_get_cur_dir_name (); - } + fullPath = _gst_get_cur_dir_name (); + +#if !defined WIN32 || defined __CYGWIN__ + asprintf (&fullFileName, "%s/%s", fullPath, fileName); +#else + asprintf (&fullFileName, "%s\\%s", fullPath, fileName); +#endif - /* - * ### canonicalize filename and full path here in the future (remove any - * extraneous .. or . directories, etc.) - */ - - fullFileName = (char *) xmalloc (strlen (fullPath) + strlen (fileName) + 1 /* slash - */ - + 1 /* trailing nul */ ); - sprintf (fullFileName, "%s/%s", fullPath, fileName); return (fullFileName); } @@ -806,6 +836,9 @@ } +/* Code to use PTY's did not work on Mac OS. I'm keeping the Unix code, + but it should not be used. */ +#ifdef __MSVCRT__ typedef struct pty_info { int access; int master; @@ -907,7 +940,7 @@ return pty->master; } - pty->slavenam[strlen ("/dev/")] = 'p'; + slavenam[strlen ("/dev/")] = 'p'; close (pty->master); } /* open master */ } /* hex digit */ @@ -1170,6 +1203,118 @@ else return (master); } +#else + +/* Use sockets or pipes. */ +int +_gst_open_pipe (const char *command, + const char *mode) +{ + int fd[2]; + int our_fd, child_fd; + int master; + int access; + int result; + + access = strchr (mode, '+') ? O_RDWR : + (mode[0] == 'r' ? O_RDONLY : O_WRONLY); + + if (access == O_RDWR) + { + result = socketpair (AF_UNIX, SOCK_STREAM, 0, fd); + our_fd = fd[1]; + child_fd = fd[0]; + } + else + { + result = pipe (fd); + our_fd = access == O_RDONLY ? fd[0] : fd[1]; + child_fd = access == O_RDONLY ? fd[1] : fd[0]; + } + + if (result == -1) + return -1; + + _gst_set_signal_handler (SIGPIPE, SIG_DFL); + +#ifdef HAVE_SPAWNL + { + /* Prepare file descriptors, saving the old ones so that we can keep + them. */ + int save_stdin = -1, save_stdout = -1, save_stderr = -1; + if (access != O_WRONLY) + { + save_stdout = dup (1); + save_stderr = dup (2); + dup2 (child_fd, 1); + dup2 (child_fd, 2); + } + if (access != O_RDONLY) + { + save_stdin = dup (0); + dup2 (child_fd, 0); + } + +#ifdef __CYGWIN__ + result = spawnl (P_NOWAIT, "/bin/sh", "/bin/sh", "-c", command, NULL); +#else + result = spawnl (P_NOWAIT, getenv("COMSPEC"), "/C", command, NULL); +#endif + + if (save_stdin != -1) + { + dup2 (save_stdin, 0); + close (save_stdin); + } + + if (save_stdout != -1) + { + dup2 (save_stdout, 1); + close (save_stdout); + } + + if (save_stderr != -1) + { + dup2 (save_stderr, 2); + close (save_stderr); + } + } +#else /* !HAVE_SPAWNL */ + /* We suppose it is a system that has fork. */ + result = fork (); + if (result == 0) + { + /* Child process */ + close (our_fd); + if (access != O_WRONLY) + { + dup2 (child_fd, 1); + dup2 (child_fd, 2); + } + if (access != O_RDONLY) + dup2 (child_fd, 0); + + _exit (system (command) >= 0); + /*NOTREACHED*/ + } + +#endif /* !HAVE_SPAWNL */ + + close (child_fd); + _gst_set_signal_handler (SIGPIPE, SIG_IGN); + + if (result == -1) + { + int save_errno; + save_errno = errno; + close (our_fd); + errno = save_errno; + return (-1); + } + else + return (our_fd); +} +#endif int _gst_open_file (const char *filename, @@ -1249,7 +1394,7 @@ for (;;) { - result = recv (fd, buffer, size, flags); + result = recvfrom (fd, buffer, size, flags, NULL, NULL); if (errno == EFAULT) abort (); diff -ru smalltalk-2.3.5/libgst/sysdep.h smalltalk-2.3.6/libgst/sysdep.h --- smalltalk-2.3.5/libgst/sysdep.h 2006-02-05 19:41:35.000000000 +0100 +++ smalltalk-2.3.6/libgst/sysdep.h 2007-09-06 09:33:23.000000000 +0200 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2006 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2006,2007 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -138,6 +138,12 @@ extern time_t _gst_get_file_modify_time (const char *fileName) ATTRIBUTE_HIDDEN; +/* Sets the time when FILENAME was last modified. The times are in + seconds, relative to 1 Jan 2000. */ +extern int _gst_set_file_access_times (const char *name, long new_atime, + long new_mtime) + ATTRIBUTE_HIDDEN; + /* Converts the given time (expressed in seconds since midnight Jan 1, 1970, and in Universal Coordinated Time) into a local time. */ extern time_t _gst_adjust_time_zone (time_t t) diff -ru smalltalk-2.3.5/net/ChangeLog smalltalk-2.3.6/net/ChangeLog --- smalltalk-2.3.5/net/ChangeLog 2007-06-01 11:29:02.000000000 +0200 +++ smalltalk-2.3.6/net/ChangeLog 2007-09-06 08:27:32.000000000 +0200 @@ -1,3 +1,15 @@ +2007-09-06 Paolo Bonzini + + * MIME.st: More fixes to previous change. + +2007-09-05 Paolo Bonzini + + * MIME.st: Try not to use negative #skip:. + +2007-09-04 Paolo Bonzini + + * MIME.st: Use #subStrings:. + 2007-06-01 Paolo Bonzini * net/HTTP.st: Use #, on streams directly. diff -ru smalltalk-2.3.5/net/MIME.st smalltalk-2.3.6/net/MIME.st --- smalltalk-2.3.5/net/MIME.st 2006-02-05 19:41:36.000000000 +0100 +++ smalltalk-2.3.6/net/MIME.st 2007-09-06 08:27:32.000000000 +0200 @@ -708,8 +708,14 @@ If anObject is not found answer everything." | str | - lookahead isNil ifFalse: [ source skip: -1 ]. + lookahead = anObject ifTrue: [ + self sourceTrailNextPut: lookahead. + lookahead := nil. + ^'' ]. str := source upTo: anObject. + lookahead isNil ifFalse: [ + str := lookahead asString, str. + lookahead := nil ]. self sourceTrailNextPutAll: str; sourceTrailNextPut: anObject. @@ -717,7 +723,9 @@ upToAll: pattern | str | - lookahead isNil ifFalse: [ source skip: -1 ]. + lookahead isNil ifFalse: [ + source skip: -1. + lookahead := nil ]. str := source upToAll: pattern. self sourceTrailNextPutAll: str; @@ -726,8 +734,10 @@ upToEnd | str | - lookahead isNil ifFalse: [ source skip: -1 ]. str := source upToEnd. + lookahead isNil ifFalse: [ + str := lookahead asString, str. + lookahead := nil ]. self sourceTrailNextPutAll: str. ^str! ! @@ -2441,11 +2451,6 @@ count := count - 3]]]. ^data copyFrom: 1 to: output position! ! -!MimeScanner methodsFor: 'constants'! - -boundaryDashes - ^'--'! ! - !MimeScanner methodsFor: 'multi-character scans'! scanText @@ -2459,13 +2464,12 @@ " Scan for specified boundary (RFC2046, p5.1). Answer two-element array. First element is the scanned text from current position up to the beginning of the boundary. Second element is either #next or #last. #next means the boundary found is not the last one. #last means the boundary is the closing boundary for the multi-part body (that is, it looks like '----) " | pattern string kind | - pattern := (String with: Character nl), self boundaryDashes , boundary. + pattern := (String with: Character nl), '--' , boundary. string := self upToAll: pattern. - self next: pattern size. " Skip over pattern " - kind := (self next: 2) = self boundaryDashes + kind := ((self peekFor: $-) and: [ self peekFor: $- ]) ifTrue: [#last] - ifFalse:[self skip: -2. #next]. - self upTo: Character nl. " Skip to the end of line " + ifFalse:[#next]. + self upTo: Character nl. ^Array with: string with: kind.! scanToken @@ -2847,7 +2851,7 @@ version: string | arr | - arr := string tokensBasedOn: $.. + arr := string subStrings: $.. arr size < 2 ifTrue: [ self notify: 'Version should be specified as .' ]. self majorVersion: arr first. self minorVersion: arr last.! ! diff -ru smalltalk-2.3.5/packages.xml smalltalk-2.3.6/packages.xml --- smalltalk-2.3.5/packages.xml 2007-06-02 17:48:29.000000000 +0200 +++ smalltalk-2.3.6/packages.xml 2007-09-06 09:47:49.000000000 +0200 @@ -1,4 +1,4 @@ - + @@ -194,12 +194,15 @@ Iconv I18N + I18N.IconvTest Sets.st + iconvtests.st i18n i18n Sets.st + iconvtests.st diff -ru smalltalk-2.3.5/packages.xml.in smalltalk-2.3.6/packages.xml.in --- smalltalk-2.3.5/packages.xml.in 2007-06-01 17:13:48.000000000 +0200 +++ smalltalk-2.3.6/packages.xml.in 2007-07-02 08:00:21.000000000 +0200 @@ -194,12 +194,15 @@ Iconv I18N + I18N.IconvTest Sets.st + iconvtests.st i18n i18n Sets.st + iconvtests.st <@I18N_DISABLED@package> diff -ru smalltalk-2.3.5/smalltalk-mode.el.in smalltalk-2.3.6/smalltalk-mode.el.in --- smalltalk-2.3.5/smalltalk-mode.el.in 2006-02-05 19:41:39.000000000 +0100 +++ smalltalk-2.3.6/smalltalk-mode.el.in 2007-09-06 09:33:32.000000000 +0200 @@ -1,6 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; -;;; Copyright 1988-92, 1994-95, 1999, 2000, 2003 Free Software Foundation, Inc. +;;; Copyright 1988-92, 1994-95, 1999, 2000, 2003, 2007 +;;; Free Software Foundation, Inc. ;;; Written by Steve Byrne. ;;; ;;; This file is part of GNU Smalltalk. @@ -832,6 +833,9 @@ first-hit) (or second-hit "")))) +;; ---[ Emacs configuration ]----------------------------------------- + +(push '("\\.st\\'" . smalltalk-mode) auto-mode-alist) (provide 'smalltalk-mode) (autoload 'gst "@lispdir@/gst-mode.elc" "" t) diff -ru smalltalk-2.3.5/tests/Makefile.am smalltalk-2.3.6/tests/Makefile.am --- smalltalk-2.3.5/tests/Makefile.am 2007-05-25 12:00:59.000000000 +0200 +++ smalltalk-2.3.6/tests/Makefile.am 2007-08-14 14:35:18.000000000 +0200 @@ -1,4 +1,4 @@ -nodist_check_DATA = gst.im +nodist_check_DATA = gst.im gst AUTOTEST = $(AUTOM4TE) --language=autotest TESTSUITE = $(srcdir)/testsuite @@ -27,12 +27,15 @@ regress: SMALLTALK_KERNEL="$(top_srcdir)/kernel/"; \ export SMALLTALK_KERNEL; \ - for test in $(low_level_tests) $(benchmark_tests); do \ + for test in $(TESTS); do \ result=`echo $$test | $(SED) 's/st$$/ok/'`; \ $(top_builddir)/gst -I $(top_builddir)/gst.im \ -r $$test 2>&1 | tee $$result; \ done +gst: ../gst + rm -f gst; $(LN_S) ../gst . + gst.im: ../kernel/stamp-classes AnsiLoad.st Ansi.st AnsiDB.st cp ../gst.im . builddir=`pwd` && \ diff -ru smalltalk-2.3.5/tests/Makefile.in smalltalk-2.3.6/tests/Makefile.in --- smalltalk-2.3.5/tests/Makefile.in 2007-06-02 17:45:15.000000000 +0200 +++ smalltalk-2.3.6/tests/Makefile.in 2007-09-06 09:34:43.000000000 +0200 @@ -247,7 +247,7 @@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ -nodist_check_DATA = gst.im +nodist_check_DATA = gst.im gst AUTOTEST = $(AUTOM4TE) --language=autotest TESTSUITE = $(srcdir)/testsuite dist_noinst_DATA = \ @@ -438,12 +438,15 @@ regress: SMALLTALK_KERNEL="$(top_srcdir)/kernel/"; \ export SMALLTALK_KERNEL; \ - for test in $(low_level_tests) $(benchmark_tests); do \ + for test in $(TESTS); do \ result=`echo $$test | $(SED) 's/st$$/ok/'`; \ $(top_builddir)/gst -I $(top_builddir)/gst.im \ -r $$test 2>&1 | tee $$result; \ done +gst: ../gst + rm -f gst; $(LN_S) ../gst . + gst.im: ../kernel/stamp-classes AnsiLoad.st Ansi.st AnsiDB.st cp ../gst.im . builddir=`pwd` && \ diff -ru smalltalk-2.3.5/tests/compiler.ok smalltalk-2.3.6/tests/compiler.ok --- smalltalk-2.3.5/tests/compiler.ok 2007-05-12 13:25:52.000000000 +0200 +++ smalltalk-2.3.6/tests/compiler.ok 2007-07-12 17:03:52.000000000 +0200 @@ -16,12 +16,318 @@ returned value is Array new: 3 "<0>" Execution begins... +returned value is Object + +Execution begins... +returned value is 0 + +Execution begins... +returned value is 1 + +Execution begins... +returned value is 2 + +Execution begins... +returned value is 3 + +Execution begins... +returned value is 4 + +Execution begins... +returned value is 5 + +Execution begins... +returned value is 6 + +Execution begins... +returned value is 7 + +Execution begins... +returned value is 8 + +Execution begins... +returned value is 9 + +Execution begins... +returned value is 10 + +Execution begins... +returned value is 11 + +Execution begins... +returned value is 12 + +Execution begins... +returned value is 13 + +Execution begins... +returned value is 14 + +Execution begins... +returned value is 15 + +Execution begins... +returned value is 16 + +Execution begins... +returned value is 17 + +Execution begins... +returned value is 18 + +Execution begins... +returned value is 19 + +Execution begins... +returned value is 20 + +Execution begins... +returned value is 21 + +Execution begins... +returned value is 22 + +Execution begins... +returned value is 23 + +Execution begins... +returned value is 24 + +Execution begins... +returned value is 25 + +Execution begins... +returned value is 26 + +Execution begins... +returned value is 27 + +Execution begins... +returned value is 28 + +Execution begins... +returned value is 29 + +Execution begins... +returned value is 30 + +Execution begins... +returned value is 31 + +Execution begins... +returned value is 32 + +Execution begins... +returned value is 33 + +Execution begins... +returned value is 34 + +Execution begins... +returned value is 35 + +Execution begins... +returned value is 36 + +Execution begins... +returned value is 37 + +Execution begins... +returned value is 38 + +Execution begins... +returned value is 39 + +Execution begins... +returned value is 40 + +Execution begins... +returned value is 41 + +Execution begins... +returned value is 42 + +Execution begins... +returned value is 43 + +Execution begins... +returned value is 44 + +Execution begins... +returned value is 45 + +Execution begins... +returned value is 46 + +Execution begins... +returned value is 47 + +Execution begins... +returned value is 48 + +Execution begins... +returned value is 49 + +Execution begins... +returned value is 50 + +Execution begins... +returned value is 51 + +Execution begins... +returned value is 52 + +Execution begins... +returned value is 53 + +Execution begins... +returned value is 54 + +Execution begins... +returned value is 55 + +Execution begins... +returned value is 56 + +Execution begins... +returned value is 57 + +Execution begins... +returned value is 58 + +Execution begins... +returned value is 59 + +Execution begins... +returned value is 60 + +Execution begins... +returned value is 61 + +Execution begins... +returned value is 62 + +Execution begins... +returned value is 63 + +Execution begins... +returned value is 64 + +Execution begins... +returned value is 65 + +Execution begins... +returned value is 66 + +Execution begins... +returned value is 67 + +Execution begins... +returned value is 68 + +Execution begins... +returned value is 69 + +Execution begins... +returned value is 70 + +Execution begins... +returned value is 71 + +Execution begins... +returned value is 72 + +Execution begins... +returned value is 73 + +Execution begins... +returned value is 74 + +Execution begins... +returned value is 75 + +Execution begins... +returned value is 76 + +Execution begins... +returned value is 77 + +Execution begins... +returned value is 78 + +Execution begins... +returned value is 79 + +Execution begins... +returned value is 80 + +Execution begins... +returned value is 81 + +Execution begins... +returned value is 82 + +Execution begins... +returned value is 83 + +Execution begins... +returned value is 84 + +Execution begins... +returned value is 85 + +Execution begins... +returned value is 86 + +Execution begins... +returned value is 87 + +Execution begins... +returned value is 88 + +Execution begins... +returned value is 89 + +Execution begins... +returned value is 90 + +Execution begins... +returned value is 91 + +Execution begins... +returned value is 92 + +Execution begins... +returned value is 93 + +Execution begins... +returned value is 94 + +Execution begins... +returned value is 95 + +Execution begins... +returned value is 96 + +Execution begins... +returned value is 97 + +Execution begins... +returned value is 98 + +Execution begins... +returned value is 99 + +Execution begins... +returned value is 100 + +Execution begins... returned value is BugTest class -compiler.st:107: parse error, expected keyword +compiler.st:212: parse error, expected keyword Execution begins... returned value is 'No crashes' -compiler.st:114: parse error, expected '!' +compiler.st:219: parse error, expected '!' Execution begins... returned value is 2 diff -ru smalltalk-2.3.5/tests/compiler.st smalltalk-2.3.6/tests/compiler.st --- smalltalk-2.3.5/tests/compiler.st 2007-03-28 08:36:55.000000000 +0200 +++ smalltalk-2.3.6/tests/compiler.st 2007-09-06 09:33:37.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright (C) 2003 Free Software Foundation. +| Copyright (C) 2003, 2007 Free Software Foundation. | Written by Paolo Bonzini | | This file is part of GNU Smalltalk. @@ -91,6 +91,111 @@ '(111) 111-1111' phoneNumber! +!Object methodsFor: 'aaa'! + +a1 ##(Undeclared keys size). ^A1! +a2 ##(Undeclared keys size). ^A2! +a3 ##(Undeclared keys size). ^A3! +a4 ##(Undeclared keys size). ^A4! +a5 ##(Undeclared keys size). ^A5! +a6 ##(Undeclared keys size). ^A6! +a7 ##(Undeclared keys size). ^A7! +a8 ##(Undeclared keys size). ^A8! +a9 ##(Undeclared keys size). ^A9! +a10 ##(Undeclared keys size). ^A10! +a11 ##(Undeclared keys size). ^A11! +a12 ##(Undeclared keys size). ^A12! +a13 ##(Undeclared keys size). ^A13! +a14 ##(Undeclared keys size). ^A14! +a15 ##(Undeclared keys size). ^A15! +a16 ##(Undeclared keys size). ^A16! +a17 ##(Undeclared keys size). ^A17! +a18 ##(Undeclared keys size). ^A18! +a19 ##(Undeclared keys size). ^A19! +a20 ##(Undeclared keys size). ^A20! +a21 ##(Undeclared keys size). ^A21! +a22 ##(Undeclared keys size). ^A22! +a23 ##(Undeclared keys size). ^A23! +a24 ##(Undeclared keys size). ^A24! +a25 ##(Undeclared keys size). ^A25! +a26 ##(Undeclared keys size). ^A26! +a27 ##(Undeclared keys size). ^A27! +a28 ##(Undeclared keys size). ^A28! +a29 ##(Undeclared keys size). ^A29! +a30 ##(Undeclared keys size). ^A30! +a31 ##(Undeclared keys size). ^A31! +a32 ##(Undeclared keys size). ^A32! +a33 ##(Undeclared keys size). ^A33! +a34 ##(Undeclared keys size). ^A34! +a35 ##(Undeclared keys size). ^A35! +a36 ##(Undeclared keys size). ^A36! +a37 ##(Undeclared keys size). ^A37! +a38 ##(Undeclared keys size). ^A38! +a39 ##(Undeclared keys size). ^A39! +a40 ##(Undeclared keys size). ^A40! +a41 ##(Undeclared keys size). ^A41! +a42 ##(Undeclared keys size). ^A42! +a43 ##(Undeclared keys size). ^A43! +a44 ##(Undeclared keys size). ^A44! +a45 ##(Undeclared keys size). ^A45! +a46 ##(Undeclared keys size). ^A46! +a47 ##(Undeclared keys size). ^A47! +a48 ##(Undeclared keys size). ^A48! +a49 ##(Undeclared keys size). ^A49! +a50 ##(Undeclared keys size). ^A50! +a51 ##(Undeclared keys size). ^A51! +a52 ##(Undeclared keys size). ^A52! +a53 ##(Undeclared keys size). ^A53! +a54 ##(Undeclared keys size). ^A54! +a55 ##(Undeclared keys size). ^A55! +a56 ##(Undeclared keys size). ^A56! +a57 ##(Undeclared keys size). ^A57! +a58 ##(Undeclared keys size). ^A58! +a59 ##(Undeclared keys size). ^A59! +a60 ##(Undeclared keys size). ^A60! +a61 ##(Undeclared keys size). ^A61! +a62 ##(Undeclared keys size). ^A62! +a63 ##(Undeclared keys size). ^A63! +a64 ##(Undeclared keys size). ^A64! +a65 ##(Undeclared keys size). ^A65! +a66 ##(Undeclared keys size). ^A66! +a67 ##(Undeclared keys size). ^A67! +a68 ##(Undeclared keys size). ^A68! +a69 ##(Undeclared keys size). ^A69! +a70 ##(Undeclared keys size). ^A70! +a71 ##(Undeclared keys size). ^A71! +a72 ##(Undeclared keys size). ^A72! +a73 ##(Undeclared keys size). ^A73! +a74 ##(Undeclared keys size). ^A74! +a75 ##(Undeclared keys size). ^A75! +a76 ##(Undeclared keys size). ^A76! +a77 ##(Undeclared keys size). ^A77! +a78 ##(Undeclared keys size). ^A78! +a79 ##(Undeclared keys size). ^A79! +a80 ##(Undeclared keys size). ^A80! +a81 ##(Undeclared keys size). ^A81! +a82 ##(Undeclared keys size). ^A82! +a83 ##(Undeclared keys size). ^A83! +a84 ##(Undeclared keys size). ^A84! +a85 ##(Undeclared keys size). ^A85! +a86 ##(Undeclared keys size). ^A86! +a87 ##(Undeclared keys size). ^A87! +a88 ##(Undeclared keys size). ^A88! +a89 ##(Undeclared keys size). ^A89! +a90 ##(Undeclared keys size). ^A90! +a91 ##(Undeclared keys size). ^A91! +a92 ##(Undeclared keys size). ^A92! +a93 ##(Undeclared keys size). ^A93! +a94 ##(Undeclared keys size). ^A94! +a95 ##(Undeclared keys size). ^A95! +a96 ##(Undeclared keys size). ^A96! +a97 ##(Undeclared keys size). ^A97! +a98 ##(Undeclared keys size). ^A98! +a99 ##(Undeclared keys size). ^A99! +a100 ##(Undeclared keys size). ^A100! ! + +Undeclared keys size! + "Various errors in the recursive-descent parser" !BugTest class methodsFor: 'bugs'! diff -ru smalltalk-2.3.5/tests/fileext.st smalltalk-2.3.6/tests/fileext.st --- smalltalk-2.3.5/tests/fileext.st 2006-02-05 19:41:42.000000000 +0100 +++ smalltalk-2.3.6/tests/fileext.st 2007-09-06 09:33:40.000000000 +0200 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright (C) 2003 Free Software Foundation. +| Copyright (C) 2003, 2007 Free Software Foundation. | Written by Paolo Bonzini, based on test vectors by Nicolas Pelletier. | This file is part of GNU Smalltalk. | @@ -72,4 +72,5 @@ [(File stripExtensionFrom: each key), (File extensionFor: each key) = each key] value printNl ]! ! +CSymbols.PathSeparator := $/. Object new testExtensionFor; testStripExtensionFrom! diff -ru smalltalk-2.3.5/tests/local.at smalltalk-2.3.6/tests/local.at --- smalltalk-2.3.5/tests/local.at 2007-05-24 22:10:25.000000000 +0200 +++ smalltalk-2.3.6/tests/local.at 2007-08-14 14:34:00.000000000 +0200 @@ -21,11 +21,11 @@ dnl ---------------------------------------------------------------- m4_define([AT_CHECK_GST], [ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I m4_ifval([$2], [$2], [$abs_top_builddir/gst.im])" ;; - *) GST="$AUTOTEST_PATH/gst m4_ifval([$2], [-I $2])" ;; + tests) image_path="-I m4_ifval([$2], [$2], [$abs_top_builddir/gst.im])" ;; + *) image_path="m4_ifval([$2], [-I $2])" ;; esac - AT_CHECK([cd m4_ifval([$3], [$3], [$abs_top_builddir]) && $GST $1], 0, [$4], [$5]) + AT_CHECK([{ (cd m4_ifval([$3], [$3], [$abs_top_builddir]) && gst $image_path $1); echo exit $? > retcode; } | tr -d '\r'; . retcode], 0, [$4], [$5]) ]) dnl AT_DIFF_TEST([FILE], [XFAILS]) @@ -43,7 +43,7 @@ dnl ------------------------------------ m4_define([AT_PACKAGE_TEST], [ AT_SETUP([$1]) - AT_KEYWORDS([m4_if([$1], [SUnit], [], [SUnit ])SUnit]) + AT_KEYWORDS([m4_if([$1], [SUnit], [], [$1 ])SUnit]) $2 AT_CHECK_GST([-f $abs_top_srcdir/scripts/Test.st -p $1], [], [], [ignore]) AT_CLEANUP diff -ru smalltalk-2.3.5/tests/package.m4 smalltalk-2.3.6/tests/package.m4 --- smalltalk-2.3.5/tests/package.m4 2007-06-02 17:48:12.000000000 +0200 +++ smalltalk-2.3.6/tests/package.m4 2007-09-06 09:42:32.000000000 +0200 @@ -1,6 +1,6 @@ # Signature of the current package. m4_define([AT_PACKAGE_NAME], [GNU Smalltalk]) m4_define([AT_PACKAGE_TARNAME], [smalltalk]) -m4_define([AT_PACKAGE_VERSION], [2.3.5]) -m4_define([AT_PACKAGE_STRING], [GNU Smalltalk 2.3.5]) +m4_define([AT_PACKAGE_VERSION], [2.3.6]) +m4_define([AT_PACKAGE_STRING], [GNU Smalltalk 2.3.6]) m4_define([AT_PACKAGE_BUGREPORT], [help-smalltalk@gnu.org]) diff -ru smalltalk-2.3.5/tests/testsuite smalltalk-2.3.6/tests/testsuite --- smalltalk-2.3.5/tests/testsuite 2007-06-02 17:48:15.000000000 +0200 +++ smalltalk-2.3.6/tests/testsuite 2007-09-06 09:42:34.000000000 +0200 @@ -618,9 +618,9 @@ at_times_file=$at_suite_dir/at-times # List of the tested programs. -at_tested='../gst' +at_tested='gst' # List of the all the test groups. -at_groups_all=' banner-1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 banner-2 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 banner-3 41 42 banner-4 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 banner-5 108 109 110 111 112' +at_groups_all=' banner-1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 banner-2 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 banner-3 41 42 banner-4 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 banner-5 108 109 110 111 112 113' # As many question marks as there are digits in the last test group number. # Used to normalize the test group numbers so that `ls' lists them in # numerical order. @@ -667,7 +667,7 @@ 39;testsuite.at:67;sieve.st;base; 40;testsuite.at:68;strcat.st;base; 41;testsuite.at:71;SUnit;SUnit; -42;testsuite.at:72;Parser;SUnit SUnit; +42;testsuite.at:72;Parser;Parser SUnit; 43;testsuite.at:75;ArrayANSITest;ANSI SUnit; 44;testsuite.at:76;ArrayFactoryANSITest;ANSI SUnit; 45;testsuite.at:77;BagANSITest;ANSI SUnit; @@ -733,11 +733,12 @@ 105;testsuite.at:137;WriteStreamFactoryANSITest;ANSI SUnit; 106;testsuite.at:138;ZeroDivideANSITest;ANSI SUnit; 107;testsuite.at:139;ZeroDivideFactoryANSITest;ANSI SUnit; -108;testsuite.at:142;Continuations;SUnit SUnit; -109;testsuite.at:143;DhbNumericalMethods;SUnit SUnit; +108;testsuite.at:142;Continuations;Continuations SUnit; +109;testsuite.at:143;DhbNumericalMethods;DhbNumericalMethods SUnit; 110;testsuite.at:144;GDBM;GDBM SUnit; -111;testsuite.at:145;MD5;SUnit SUnit; +111;testsuite.at:145;MD5;MD5 SUnit; 112;testsuite.at:146;ZLib;ZLib SUnit; +113;testsuite.at:147;Iconv;Iconv SUnit; " at_prev= @@ -961,7 +962,7 @@ # List of tests. if $at_list_p; then cat <<_ATEOF -GNU Smalltalk 2.3.5 test suite test groups: +GNU Smalltalk 2.3.6 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS @@ -985,7 +986,7 @@ exit 0 fi if $at_version_p; then - echo "$as_me (GNU Smalltalk 2.3.5)" + echo "$as_me (GNU Smalltalk 2.3.6)" cat <<\_ACEOF Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software @@ -1069,13 +1070,13 @@ # Banners and logs. cat <<\_ASBOX ## ------------------------------- ## -## GNU Smalltalk 2.3.5 test suite. ## +## GNU Smalltalk 2.3.6 test suite. ## ## ------------------------------- ## _ASBOX { cat <<\_ASBOX ## ------------------------------- ## -## GNU Smalltalk 2.3.5 test suite. ## +## GNU Smalltalk 2.3.6 test suite. ## ## ------------------------------- ## _ASBOX echo @@ -1337,17 +1338,17 @@ cat $abs_srcdir/arrays.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:27: cd \$abs_srcdir && \$GST -r arrays.st 2>&1" +echo "$at_srcdir/testsuite.at:27: { (cd \$abs_srcdir && gst \$image_path -r arrays.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:27 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r arrays.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r arrays.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1355,12 +1356,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r arrays.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r arrays.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r arrays.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r arrays.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1404,17 +1405,17 @@ cat $abs_srcdir/classes.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:28: cd \$abs_srcdir && \$GST -r classes.st 2>&1" +echo "$at_srcdir/testsuite.at:28: { (cd \$abs_srcdir && gst \$image_path -r classes.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:28 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r classes.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r classes.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1422,12 +1423,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r classes.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r classes.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r classes.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r classes.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1471,17 +1472,17 @@ cat $abs_srcdir/blocks.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:29: cd \$abs_srcdir && \$GST -r blocks.st 2>&1" +echo "$at_srcdir/testsuite.at:29: { (cd \$abs_srcdir && gst \$image_path -r blocks.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:29 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r blocks.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r blocks.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1489,12 +1490,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r blocks.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r blocks.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r blocks.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r blocks.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1538,17 +1539,17 @@ cat $abs_srcdir/sets.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:30: cd \$abs_srcdir && \$GST -r sets.st 2>&1" +echo "$at_srcdir/testsuite.at:30: { (cd \$abs_srcdir && gst \$image_path -r sets.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:30 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r sets.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r sets.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1556,12 +1557,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r sets.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r sets.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r sets.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r sets.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1605,17 +1606,17 @@ cat $abs_srcdir/processes.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:31: cd \$abs_srcdir && \$GST -r processes.st 2>&1" +echo "$at_srcdir/testsuite.at:31: { (cd \$abs_srcdir && gst \$image_path -r processes.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:31 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r processes.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r processes.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1623,12 +1624,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r processes.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r processes.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r processes.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r processes.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1672,17 +1673,17 @@ cat $abs_srcdir/exceptions.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:32: cd \$abs_srcdir && \$GST -r exceptions.st 2>&1" +echo "$at_srcdir/testsuite.at:32: { (cd \$abs_srcdir && gst \$image_path -r exceptions.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:32 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r exceptions.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r exceptions.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1690,12 +1691,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r exceptions.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r exceptions.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r exceptions.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r exceptions.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1739,17 +1740,17 @@ cat $abs_srcdir/intmath.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:33: cd \$abs_srcdir && \$GST -r intmath.st 2>&1" +echo "$at_srcdir/testsuite.at:33: { (cd \$abs_srcdir && gst \$image_path -r intmath.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:33 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r intmath.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r intmath.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1757,12 +1758,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r intmath.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r intmath.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r intmath.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r intmath.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1806,17 +1807,17 @@ cat $abs_srcdir/floatmath.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:34: cd \$abs_srcdir && \$GST -r floatmath.st 2>&1" +echo "$at_srcdir/testsuite.at:34: { (cd \$abs_srcdir && gst \$image_path -r floatmath.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:34 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r floatmath.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r floatmath.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1824,12 +1825,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r floatmath.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r floatmath.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r floatmath.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r floatmath.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1873,17 +1874,17 @@ cat $abs_srcdir/dates.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:35: cd \$abs_srcdir && \$GST -r dates.st 2>&1" +echo "$at_srcdir/testsuite.at:35: { (cd \$abs_srcdir && gst \$image_path -r dates.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:35 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r dates.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r dates.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1891,12 +1892,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r dates.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r dates.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r dates.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r dates.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -1940,17 +1941,17 @@ cat $abs_srcdir/objects.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:36: cd \$abs_srcdir && \$GST -r objects.st 2>&1" +echo "$at_srcdir/testsuite.at:36: { (cd \$abs_srcdir && gst \$image_path -r objects.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:36 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r objects.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r objects.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -1958,12 +1959,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r objects.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r objects.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r objects.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r objects.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2007,17 +2008,17 @@ cat $abs_srcdir/strings.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:37: cd \$abs_srcdir && \$GST -r strings.st 2>&1" +echo "$at_srcdir/testsuite.at:37: { (cd \$abs_srcdir && gst \$image_path -r strings.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:37 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r strings.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r strings.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2025,12 +2026,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r strings.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r strings.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r strings.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r strings.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2074,17 +2075,17 @@ cat $abs_srcdir/chars.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:38: cd \$abs_srcdir && \$GST -r chars.st 2>&1" +echo "$at_srcdir/testsuite.at:38: { (cd \$abs_srcdir && gst \$image_path -r chars.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:38 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r chars.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r chars.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2092,12 +2093,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r chars.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r chars.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r chars.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r chars.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2141,17 +2142,17 @@ cat $abs_srcdir/objdump.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:39: cd \$abs_srcdir && \$GST -r objdump.st 2>&1" +echo "$at_srcdir/testsuite.at:39: { (cd \$abs_srcdir && gst \$image_path -r objdump.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:39 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r objdump.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r objdump.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2159,12 +2160,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r objdump.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r objdump.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r objdump.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r objdump.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2208,17 +2209,17 @@ cat $abs_srcdir/delays.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:40: cd \$abs_srcdir && \$GST -r delays.st 2>&1" +echo "$at_srcdir/testsuite.at:40: { (cd \$abs_srcdir && gst \$image_path -r delays.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:40 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r delays.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r delays.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2226,12 +2227,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r delays.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r delays.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r delays.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r delays.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2275,17 +2276,17 @@ cat $abs_srcdir/geometry.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:41: cd \$abs_srcdir && \$GST -r geometry.st 2>&1" +echo "$at_srcdir/testsuite.at:41: { (cd \$abs_srcdir && gst \$image_path -r geometry.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:41 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r geometry.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r geometry.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2293,12 +2294,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r geometry.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r geometry.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r geometry.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r geometry.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2342,17 +2343,17 @@ cat $abs_srcdir/cobjects.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:42: cd \$abs_srcdir && \$GST -r cobjects.st 2>&1" +echo "$at_srcdir/testsuite.at:42: { (cd \$abs_srcdir && gst \$image_path -r cobjects.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:42 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r cobjects.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r cobjects.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2360,12 +2361,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r cobjects.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r cobjects.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r cobjects.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r cobjects.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2409,17 +2410,17 @@ cat $abs_srcdir/compiler.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:43: cd \$abs_srcdir && \$GST -r compiler.st 2>&1" +echo "$at_srcdir/testsuite.at:43: { (cd \$abs_srcdir && gst \$image_path -r compiler.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:43 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r compiler.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r compiler.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2427,12 +2428,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r compiler.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r compiler.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r compiler.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r compiler.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2476,17 +2477,17 @@ cat $abs_srcdir/fileext.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:44: cd \$abs_srcdir && \$GST -r fileext.st 2>&1" +echo "$at_srcdir/testsuite.at:44: { (cd \$abs_srcdir && gst \$image_path -r fileext.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:44 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r fileext.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r fileext.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2494,12 +2495,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r fileext.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r fileext.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r fileext.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r fileext.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2543,17 +2544,17 @@ cat $abs_srcdir/mutate.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:45: cd \$abs_srcdir && \$GST -r mutate.st 2>&1" +echo "$at_srcdir/testsuite.at:45: { (cd \$abs_srcdir && gst \$image_path -r mutate.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:45 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r mutate.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r mutate.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2561,12 +2562,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r mutate.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r mutate.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r mutate.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r mutate.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2610,17 +2611,17 @@ cat $abs_srcdir/untrusted.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:46: cd \$abs_srcdir && \$GST -r untrusted.st 2>&1" +echo "$at_srcdir/testsuite.at:46: { (cd \$abs_srcdir && gst \$image_path -r untrusted.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:46 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r untrusted.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r untrusted.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2628,12 +2629,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r untrusted.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r untrusted.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r untrusted.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r untrusted.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2677,17 +2678,17 @@ cat $abs_srcdir/getopt.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:47: cd \$abs_srcdir && \$GST -r getopt.st 2>&1" +echo "$at_srcdir/testsuite.at:47: { (cd \$abs_srcdir && gst \$image_path -r getopt.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:47 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r getopt.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r getopt.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2695,12 +2696,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r getopt.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r getopt.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r getopt.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r getopt.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2744,17 +2745,17 @@ cat $abs_srcdir/quit.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:48: cd \$abs_srcdir && \$GST -r quit.st 2>&1" +echo "$at_srcdir/testsuite.at:48: { (cd \$abs_srcdir && gst \$image_path -r quit.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:48 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r quit.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r quit.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2762,12 +2763,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r quit.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r quit.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r quit.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r quit.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2820,17 +2821,17 @@ cat $abs_srcdir/ackermann.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:51: cd \$abs_srcdir && \$GST -r ackermann.st 2>&1" +echo "$at_srcdir/testsuite.at:51: { (cd \$abs_srcdir && gst \$image_path -r ackermann.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:51 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r ackermann.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r ackermann.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2838,12 +2839,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r ackermann.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r ackermann.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r ackermann.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r ackermann.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2887,17 +2888,17 @@ cat $abs_srcdir/ary3.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:52: cd \$abs_srcdir && \$GST -r ary3.st 2>&1" +echo "$at_srcdir/testsuite.at:52: { (cd \$abs_srcdir && gst \$image_path -r ary3.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:52 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r ary3.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r ary3.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2905,12 +2906,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r ary3.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r ary3.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r ary3.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r ary3.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -2954,17 +2955,17 @@ cat $abs_srcdir/except.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:53: cd \$abs_srcdir && \$GST -r except.st 2>&1" +echo "$at_srcdir/testsuite.at:53: { (cd \$abs_srcdir && gst \$image_path -r except.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:53 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r except.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r except.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -2972,12 +2973,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r except.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r except.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r except.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r except.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3021,17 +3022,17 @@ cat $abs_srcdir/fibo.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:54: cd \$abs_srcdir && \$GST -r fibo.st 2>&1" +echo "$at_srcdir/testsuite.at:54: { (cd \$abs_srcdir && gst \$image_path -r fibo.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:54 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r fibo.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r fibo.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3039,12 +3040,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r fibo.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r fibo.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r fibo.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r fibo.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3088,17 +3089,17 @@ cat $abs_srcdir/hash.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:55: cd \$abs_srcdir && \$GST -r hash.st 2>&1" +echo "$at_srcdir/testsuite.at:55: { (cd \$abs_srcdir && gst \$image_path -r hash.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:55 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r hash.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r hash.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3106,12 +3107,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r hash.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r hash.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r hash.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r hash.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3155,17 +3156,17 @@ cat $abs_srcdir/hash2.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:56: cd \$abs_srcdir && \$GST -r hash2.st 2>&1" +echo "$at_srcdir/testsuite.at:56: { (cd \$abs_srcdir && gst \$image_path -r hash2.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:56 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r hash2.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r hash2.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3173,12 +3174,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r hash2.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r hash2.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r hash2.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r hash2.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3222,17 +3223,17 @@ cat $abs_srcdir/heapsort.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:57: cd \$abs_srcdir && \$GST -r heapsort.st 2>&1" +echo "$at_srcdir/testsuite.at:57: { (cd \$abs_srcdir && gst \$image_path -r heapsort.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:57 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r heapsort.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r heapsort.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3240,12 +3241,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r heapsort.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r heapsort.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r heapsort.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r heapsort.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3289,17 +3290,17 @@ cat $abs_srcdir/lists.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:58: cd \$abs_srcdir && \$GST -r lists.st 2>&1" +echo "$at_srcdir/testsuite.at:58: { (cd \$abs_srcdir && gst \$image_path -r lists.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:58 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r lists.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r lists.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3307,12 +3308,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r lists.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r lists.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r lists.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r lists.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3356,17 +3357,17 @@ cat $abs_srcdir/lists1.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:59: cd \$abs_srcdir && \$GST -r lists1.st 2>&1" +echo "$at_srcdir/testsuite.at:59: { (cd \$abs_srcdir && gst \$image_path -r lists1.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:59 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r lists1.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r lists1.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3374,12 +3375,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r lists1.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r lists1.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r lists1.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r lists1.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3423,17 +3424,17 @@ cat $abs_srcdir/lists2.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:60: cd \$abs_srcdir && \$GST -r lists2.st 2>&1" +echo "$at_srcdir/testsuite.at:60: { (cd \$abs_srcdir && gst \$image_path -r lists2.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:60 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r lists2.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r lists2.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3441,12 +3442,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r lists2.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r lists2.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r lists2.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r lists2.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3490,17 +3491,17 @@ cat $abs_srcdir/matrix.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:61: cd \$abs_srcdir && \$GST -r matrix.st 2>&1" +echo "$at_srcdir/testsuite.at:61: { (cd \$abs_srcdir && gst \$image_path -r matrix.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:61 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r matrix.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r matrix.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3508,12 +3509,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r matrix.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r matrix.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r matrix.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r matrix.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3557,17 +3558,17 @@ cat $abs_srcdir/methcall.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:62: cd \$abs_srcdir && \$GST -r methcall.st 2>&1" +echo "$at_srcdir/testsuite.at:62: { (cd \$abs_srcdir && gst \$image_path -r methcall.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:62 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r methcall.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r methcall.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3575,12 +3576,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r methcall.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r methcall.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r methcall.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r methcall.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3624,17 +3625,17 @@ cat $abs_srcdir/nestedloop.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:63: cd \$abs_srcdir && \$GST -r nestedloop.st 2>&1" +echo "$at_srcdir/testsuite.at:63: { (cd \$abs_srcdir && gst \$image_path -r nestedloop.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:63 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r nestedloop.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r nestedloop.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3642,12 +3643,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r nestedloop.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r nestedloop.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r nestedloop.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r nestedloop.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3691,17 +3692,17 @@ cat $abs_srcdir/objinst.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:64: cd \$abs_srcdir && \$GST -r objinst.st 2>&1" +echo "$at_srcdir/testsuite.at:64: { (cd \$abs_srcdir && gst \$image_path -r objinst.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:64 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r objinst.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r objinst.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3709,12 +3710,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r objinst.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r objinst.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r objinst.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r objinst.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3758,17 +3759,17 @@ cat $abs_srcdir/prodcons.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:65: cd \$abs_srcdir && \$GST -r prodcons.st 2>&1" +echo "$at_srcdir/testsuite.at:65: { (cd \$abs_srcdir && gst \$image_path -r prodcons.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:65 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r prodcons.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r prodcons.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3776,12 +3777,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r prodcons.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r prodcons.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r prodcons.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r prodcons.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3825,17 +3826,17 @@ cat $abs_srcdir/random-bench.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:66: cd \$abs_srcdir && \$GST -r random-bench.st 2>&1" +echo "$at_srcdir/testsuite.at:66: { (cd \$abs_srcdir && gst \$image_path -r random-bench.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:66 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r random-bench.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r random-bench.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3843,12 +3844,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r random-bench.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r random-bench.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r random-bench.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r random-bench.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3892,17 +3893,17 @@ cat $abs_srcdir/sieve.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:67: cd \$abs_srcdir && \$GST -r sieve.st 2>&1" +echo "$at_srcdir/testsuite.at:67: { (cd \$abs_srcdir && gst \$image_path -r sieve.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:67 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r sieve.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r sieve.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3910,12 +3911,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r sieve.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r sieve.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r sieve.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r sieve.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -3959,17 +3960,17 @@ cat $abs_srcdir/strcat.ok > expout case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:68: cd \$abs_srcdir && \$GST -r strcat.st 2>&1" +echo "$at_srcdir/testsuite.at:68: { (cd \$abs_srcdir && gst \$image_path -r strcat.st 2>&1); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:68 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_srcdir && $GST -r strcat.st 2>&1" in + case "{ (cd $abs_srcdir && gst $image_path -r strcat.st 2>&1); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -3977,12 +3978,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_srcdir && $GST -r strcat.st 2>&1 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_srcdir && gst $image_path -r strcat.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_srcdir && $GST -r strcat.st 2>&1 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_srcdir && gst $image_path -r strcat.st 2>&1); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4034,17 +4035,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:71: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p SUnit" +echo "$at_srcdir/testsuite.at:71: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p SUnit); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:71 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p SUnit" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p SUnit); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4052,12 +4053,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p SUnit ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p SUnit); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p SUnit ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p SUnit); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4100,17 +4101,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:72: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p Parser" +echo "$at_srcdir/testsuite.at:72: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p Parser); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:72 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p Parser" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Parser); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4118,12 +4119,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p Parser ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Parser); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p Parser ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Parser); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4175,17 +4176,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:75: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ArrayANSITest" +echo "$at_srcdir/testsuite.at:75: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ArrayANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:75 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ArrayANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ArrayANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4193,12 +4194,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ArrayANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ArrayANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ArrayANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ArrayANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4241,17 +4242,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:76: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ArrayFactoryANSITest" +echo "$at_srcdir/testsuite.at:76: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ArrayFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:76 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ArrayFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ArrayFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4259,12 +4260,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ArrayFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ArrayFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ArrayFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ArrayFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4307,17 +4308,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:77: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st BagANSITest" +echo "$at_srcdir/testsuite.at:77: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st BagANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:77 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BagANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BagANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4325,12 +4326,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BagANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BagANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BagANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BagANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4373,17 +4374,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:78: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st BagFactoryANSITest" +echo "$at_srcdir/testsuite.at:78: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st BagFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:78 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BagFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BagFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4391,12 +4392,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BagFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BagFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BagFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BagFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4439,17 +4440,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:79: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st BooleanANSITest" +echo "$at_srcdir/testsuite.at:79: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st BooleanANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:79 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BooleanANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BooleanANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4457,12 +4458,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BooleanANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BooleanANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st BooleanANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st BooleanANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4505,17 +4506,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:80: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ByteArrayANSITest" +echo "$at_srcdir/testsuite.at:80: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ByteArrayANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:80 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ByteArrayANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ByteArrayANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4523,12 +4524,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ByteArrayANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ByteArrayANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ByteArrayANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ByteArrayANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4571,17 +4572,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:81: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest" +echo "$at_srcdir/testsuite.at:81: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:81 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4589,12 +4590,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ByteArrayFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4637,17 +4638,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:82: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st CharacterANSITest" +echo "$at_srcdir/testsuite.at:82: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st CharacterANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:82 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st CharacterANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st CharacterANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4655,12 +4656,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st CharacterANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st CharacterANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st CharacterANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st CharacterANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4703,17 +4704,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:83: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st CharacterFactoryANSITest" +echo "$at_srcdir/testsuite.at:83: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st CharacterFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:83 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st CharacterFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st CharacterFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4721,12 +4722,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st CharacterFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st CharacterFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st CharacterFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st CharacterFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4769,17 +4770,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:84: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DateAndTimeANSITest" +echo "$at_srcdir/testsuite.at:84: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DateAndTimeANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:84 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DateAndTimeANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DateAndTimeANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4787,12 +4788,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DateAndTimeANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DateAndTimeANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DateAndTimeANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DateAndTimeANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4835,17 +4836,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:85: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest" +echo "$at_srcdir/testsuite.at:85: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:85 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4853,12 +4854,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DateAndTimeFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4901,17 +4902,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:86: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DictionaryANSITest" +echo "$at_srcdir/testsuite.at:86: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DictionaryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:86 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DictionaryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DictionaryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4919,12 +4920,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DictionaryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DictionaryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DictionaryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DictionaryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -4967,17 +4968,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:87: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DictionaryFactoryANSITest" +echo "$at_srcdir/testsuite.at:87: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DictionaryFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:87 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DictionaryFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DictionaryFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -4985,12 +4986,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DictionaryFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DictionaryFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DictionaryFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DictionaryFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5033,17 +5034,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:88: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DurationANSITest" +echo "$at_srcdir/testsuite.at:88: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DurationANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:88 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DurationANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DurationANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5051,12 +5052,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DurationANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DurationANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DurationANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DurationANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5099,17 +5100,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:89: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DurationFactoryANSITest" +echo "$at_srcdir/testsuite.at:89: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DurationFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:89 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DurationFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DurationFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5117,12 +5118,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DurationFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DurationFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DurationFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DurationFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5165,17 +5166,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:90: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st DyadicValuableANSITest" +echo "$at_srcdir/testsuite.at:90: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st DyadicValuableANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:90 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DyadicValuableANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DyadicValuableANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5183,12 +5184,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DyadicValuableANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DyadicValuableANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st DyadicValuableANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st DyadicValuableANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5231,17 +5232,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:91: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ErrorANSITest" +echo "$at_srcdir/testsuite.at:91: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ErrorANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:91 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ErrorANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ErrorANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5249,12 +5250,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ErrorANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ErrorANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ErrorANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ErrorANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5297,17 +5298,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:92: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ErrorClassANSITest" +echo "$at_srcdir/testsuite.at:92: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ErrorClassANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:92 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ErrorClassANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ErrorClassANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5315,12 +5316,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ErrorClassANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ErrorClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ErrorClassANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ErrorClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5363,17 +5364,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:93: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ExceptionANSITest" +echo "$at_srcdir/testsuite.at:93: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ExceptionANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:93 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5381,12 +5382,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5429,17 +5430,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:94: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ExceptionClassANSITest" +echo "$at_srcdir/testsuite.at:94: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ExceptionClassANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:94 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionClassANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionClassANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5447,12 +5448,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionClassANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionClassANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5495,17 +5496,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:95: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ExceptionSetANSITest" +echo "$at_srcdir/testsuite.at:95: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ExceptionSetANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:95 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionSetANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionSetANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5513,12 +5514,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionSetANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionSetANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ExceptionSetANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ExceptionSetANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5561,17 +5562,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:96: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st FailedMessageANSITest" +echo "$at_srcdir/testsuite.at:96: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st FailedMessageANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:96 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FailedMessageANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FailedMessageANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5579,12 +5580,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FailedMessageANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FailedMessageANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FailedMessageANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FailedMessageANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5627,17 +5628,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:97: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st FileStreamFactoryANSITest" +echo "$at_srcdir/testsuite.at:97: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st FileStreamFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:97 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FileStreamFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FileStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5645,12 +5646,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FileStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FileStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FileStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FileStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5693,17 +5694,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:98: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st FloatANSITest" +echo "$at_srcdir/testsuite.at:98: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st FloatANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:98 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FloatANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FloatANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5711,12 +5712,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FloatANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FloatANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FloatANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FloatANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5759,17 +5760,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:99: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st FloatCharacterizationANSITest" +echo "$at_srcdir/testsuite.at:99: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st FloatCharacterizationANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:99 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FloatCharacterizationANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FloatCharacterizationANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5777,12 +5778,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FloatCharacterizationANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FloatCharacterizationANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FloatCharacterizationANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FloatCharacterizationANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5825,17 +5826,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:100: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st FractionANSITest" +echo "$at_srcdir/testsuite.at:100: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st FractionANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:100 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FractionANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FractionANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5843,12 +5844,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FractionANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FractionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FractionANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FractionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5891,17 +5892,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:101: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st FractionFactoryANSITest" +echo "$at_srcdir/testsuite.at:101: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st FractionFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:101 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FractionFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FractionFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5909,12 +5910,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FractionFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FractionFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st FractionFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st FractionFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -5957,17 +5958,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:102: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st IdentityDictionaryANSITest" +echo "$at_srcdir/testsuite.at:102: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st IdentityDictionaryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:102 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IdentityDictionaryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IdentityDictionaryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -5975,12 +5976,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IdentityDictionaryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IdentityDictionaryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IdentityDictionaryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IdentityDictionaryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6023,17 +6024,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:103: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest" +echo "$at_srcdir/testsuite.at:103: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:103 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6041,12 +6042,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IdentityDictionaryFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6089,17 +6090,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:104: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st IntegerANSITest" +echo "$at_srcdir/testsuite.at:104: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st IntegerANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:104 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntegerANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntegerANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6107,12 +6108,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntegerANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntegerANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntegerANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntegerANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6155,17 +6156,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:105: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st IntervalANSITest" +echo "$at_srcdir/testsuite.at:105: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st IntervalANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:105 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntervalANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntervalANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6173,12 +6174,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntervalANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntervalANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntervalANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntervalANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6221,17 +6222,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:106: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st IntervalFactoryANSITest" +echo "$at_srcdir/testsuite.at:106: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st IntervalFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:106 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntervalFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntervalFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6239,12 +6240,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntervalFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntervalFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st IntervalFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st IntervalFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6287,17 +6288,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:107: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest" +echo "$at_srcdir/testsuite.at:107: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:107 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6305,12 +6306,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6353,17 +6354,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:108: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest" +echo "$at_srcdir/testsuite.at:108: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:108 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6371,12 +6372,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MessageNotUnderstoodSelectorANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6419,17 +6420,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:109: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st MonadicBlockANSITest" +echo "$at_srcdir/testsuite.at:109: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st MonadicBlockANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:109 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MonadicBlockANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MonadicBlockANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6437,12 +6438,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MonadicBlockANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MonadicBlockANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st MonadicBlockANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st MonadicBlockANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6485,17 +6486,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:110: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st NilANSITest" +echo "$at_srcdir/testsuite.at:110: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st NilANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:110 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NilANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NilANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6503,12 +6504,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NilANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NilANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NilANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NilANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6551,17 +6552,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:111: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st NiladicBlockANSITest" +echo "$at_srcdir/testsuite.at:111: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st NiladicBlockANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:111 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NiladicBlockANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NiladicBlockANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6569,12 +6570,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NiladicBlockANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NiladicBlockANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NiladicBlockANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NiladicBlockANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6617,17 +6618,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:112: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st NotificationANSITest" +echo "$at_srcdir/testsuite.at:112: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st NotificationANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:112 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NotificationANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NotificationANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6635,12 +6636,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NotificationANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NotificationANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NotificationANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NotificationANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6683,17 +6684,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:113: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st NotificationClassANSITest" +echo "$at_srcdir/testsuite.at:113: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st NotificationClassANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:113 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NotificationClassANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NotificationClassANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6701,12 +6702,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NotificationClassANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NotificationClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st NotificationClassANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st NotificationClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6749,17 +6750,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:114: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ObjectANSITest" +echo "$at_srcdir/testsuite.at:114: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ObjectANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:114 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ObjectANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ObjectANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6767,12 +6768,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ObjectANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ObjectANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ObjectANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ObjectANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6815,17 +6816,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:115: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ObjectClassANSITest" +echo "$at_srcdir/testsuite.at:115: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ObjectClassANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:115 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ObjectClassANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ObjectClassANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6833,12 +6834,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ObjectClassANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ObjectClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ObjectClassANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ObjectClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6881,17 +6882,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:116: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st OrderedCollectionANSITest" +echo "$at_srcdir/testsuite.at:116: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st OrderedCollectionANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:116 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st OrderedCollectionANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st OrderedCollectionANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6899,12 +6900,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st OrderedCollectionANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st OrderedCollectionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st OrderedCollectionANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st OrderedCollectionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -6947,17 +6948,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:117: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest" +echo "$at_srcdir/testsuite.at:117: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:117 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -6965,12 +6966,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st OrderedCollectionFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7013,17 +7014,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:118: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ReadFileStreamANSITest" +echo "$at_srcdir/testsuite.at:118: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ReadFileStreamANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:118 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadFileStreamANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadFileStreamANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7031,12 +7032,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadFileStreamANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadFileStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadFileStreamANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadFileStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7079,17 +7080,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:119: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ReadStreamANSITest" +echo "$at_srcdir/testsuite.at:119: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ReadStreamANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:119 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadStreamANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadStreamANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7097,12 +7098,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadStreamANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadStreamANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7145,17 +7146,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:120: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest" +echo "$at_srcdir/testsuite.at:120: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:120 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7163,12 +7164,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7211,17 +7212,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:121: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ReadWriteStreamANSITest" +echo "$at_srcdir/testsuite.at:121: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ReadWriteStreamANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:121 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadWriteStreamANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadWriteStreamANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7229,12 +7230,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadWriteStreamANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadWriteStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadWriteStreamANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadWriteStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7277,17 +7278,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:122: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest" +echo "$at_srcdir/testsuite.at:122: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:122 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7295,12 +7296,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ReadWriteStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7343,17 +7344,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:123: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ScaledDecimalANSITest" +echo "$at_srcdir/testsuite.at:123: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ScaledDecimalANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:123 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ScaledDecimalANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ScaledDecimalANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7361,12 +7362,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ScaledDecimalANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ScaledDecimalANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ScaledDecimalANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ScaledDecimalANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7409,17 +7410,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:124: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st SelectorANSITest" +echo "$at_srcdir/testsuite.at:124: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st SelectorANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:124 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SelectorANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SelectorANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7427,12 +7428,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SelectorANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SelectorANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SelectorANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SelectorANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7475,17 +7476,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:125: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st SetANSITest" +echo "$at_srcdir/testsuite.at:125: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st SetANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:125 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SetANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SetANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7493,12 +7494,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SetANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SetANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SetANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SetANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7541,17 +7542,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:126: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st SetFactoryANSITest" +echo "$at_srcdir/testsuite.at:126: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st SetFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:126 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SetFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SetFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7559,12 +7560,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SetFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SetFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SetFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SetFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7607,17 +7608,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:127: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st SortedCollectionANSITest" +echo "$at_srcdir/testsuite.at:127: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st SortedCollectionANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:127 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SortedCollectionANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SortedCollectionANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7625,12 +7626,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SortedCollectionANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SortedCollectionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SortedCollectionANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SortedCollectionANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7673,17 +7674,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:128: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest" +echo "$at_srcdir/testsuite.at:128: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:128 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7691,12 +7692,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SortedCollectionFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7739,17 +7740,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:129: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st StringANSITest" +echo "$at_srcdir/testsuite.at:129: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st StringANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:129 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st StringANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st StringANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7757,12 +7758,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st StringANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st StringANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st StringANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st StringANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7805,17 +7806,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:130: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st StringFactoryANSITest" +echo "$at_srcdir/testsuite.at:130: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st StringFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:130 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st StringFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st StringFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7823,12 +7824,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st StringFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st StringFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st StringFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st StringFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7871,17 +7872,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:131: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st SymbolANSITest" +echo "$at_srcdir/testsuite.at:131: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st SymbolANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:131 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SymbolANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SymbolANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7889,12 +7890,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SymbolANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SymbolANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st SymbolANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st SymbolANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -7937,17 +7938,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:132: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st TranscriptANSITest" +echo "$at_srcdir/testsuite.at:132: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st TranscriptANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:132 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st TranscriptANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st TranscriptANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -7955,12 +7956,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st TranscriptANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st TranscriptANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st TranscriptANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st TranscriptANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8003,17 +8004,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:133: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st WarningANSITest" +echo "$at_srcdir/testsuite.at:133: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st WarningANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:133 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WarningANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WarningANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8021,12 +8022,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WarningANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WarningANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WarningANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WarningANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8069,17 +8070,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:134: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st WarningClassANSITest" +echo "$at_srcdir/testsuite.at:134: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st WarningClassANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:134 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WarningClassANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WarningClassANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8087,12 +8088,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WarningClassANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WarningClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WarningClassANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WarningClassANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8135,17 +8136,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:135: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st WriteFileStreamANSITest" +echo "$at_srcdir/testsuite.at:135: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st WriteFileStreamANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:135 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteFileStreamANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteFileStreamANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8153,12 +8154,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteFileStreamANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteFileStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteFileStreamANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteFileStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8201,17 +8202,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:136: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st WriteStreamANSITest" +echo "$at_srcdir/testsuite.at:136: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st WriteStreamANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:136 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteStreamANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteStreamANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8219,12 +8220,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteStreamANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteStreamANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteStreamANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8267,17 +8268,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:137: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest" +echo "$at_srcdir/testsuite.at:137: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:137 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8285,12 +8286,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st WriteStreamFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8333,17 +8334,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:138: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ZeroDivideANSITest" +echo "$at_srcdir/testsuite.at:138: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ZeroDivideANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:138 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ZeroDivideANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ZeroDivideANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8351,12 +8352,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ZeroDivideANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ZeroDivideANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ZeroDivideANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ZeroDivideANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8399,17 +8400,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst -I $abs_builddir/gst.im" ;; + tests) image_path="-I $abs_builddir/gst.im" ;; + *) image_path="-I $abs_builddir/gst.im" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:139: cd \$abs_top_builddir && \$GST -f \$abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest" +echo "$at_srcdir/testsuite.at:139: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:139 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8417,12 +8418,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_srcdir/AnsiRun.st ZeroDivideFactoryANSITest); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8474,17 +8475,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:142: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p Continuations" +echo "$at_srcdir/testsuite.at:142: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p Continuations); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:142 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p Continuations" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Continuations); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8492,12 +8493,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p Continuations ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Continuations); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p Continuations ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Continuations); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8540,17 +8541,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:143: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods" +echo "$at_srcdir/testsuite.at:143: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:143 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8558,12 +8559,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p DhbNumericalMethods); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8606,17 +8607,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:144: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p GDBM +echo "$at_srcdir/testsuite.at:144: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p GDBM ret=\$? case \$ret in 2) exit 77 ;; 0|1) exit \$ret ;; - esac" + esac); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:144 >"$at_check_line_file" at_trace_this= @@ -8625,22 +8626,22 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p GDBM + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p GDBM ret=$? case $ret in 2) exit 77 ;; 0|1) exit $ret ;; - esac ) >"$at_stdout" 2>"$at_stder1" + esac); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p GDBM + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p GDBM ret=$? case $ret in 2) exit 77 ;; 0|1) exit $ret ;; - esac ) >"$at_stdout" 2>"$at_stderr" + esac); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8683,17 +8684,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:145: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p MD5" +echo "$at_srcdir/testsuite.at:145: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p MD5); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:145 >"$at_check_line_file" at_trace_this= if test -n "$at_traceon"; then - case "cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p MD5" in + case "{ (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p MD5); echo exit $? > retcode; } | tr -d '\\r'; . retcode" in *' '*) echo 'Not enabling shell tracing (command contains an embedded newline)' ;; *) at_trace_this=yes ;; @@ -8701,12 +8702,12 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p MD5 ) >"$at_stdout" 2>"$at_stder1" + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p MD5); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p MD5 ) >"$at_stdout" 2>"$at_stderr" + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p MD5); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8749,17 +8750,17 @@ case $AUTOTEST_PATH in - tests) GST="$abs_top_builddir/gst -I $abs_top_builddir/gst.im" ;; - *) GST="$AUTOTEST_PATH/gst " ;; + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; esac $at_traceoff -echo "$at_srcdir/testsuite.at:146: cd \$abs_top_builddir && \$GST -f \$abs_top_srcdir/scripts/Test.st -p ZLib +echo "$at_srcdir/testsuite.at:146: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p ZLib ret=\$? case \$ret in 2) exit 77 ;; 0|1) exit \$ret ;; - esac" + esac); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" echo testsuite.at:146 >"$at_check_line_file" at_trace_this= @@ -8768,22 +8769,22 @@ fi if test -n "$at_trace_this"; then - ( $at_traceon; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p ZLib + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p ZLib ret=$? case $ret in 2) exit 77 ;; 0|1) exit $ret ;; - esac ) >"$at_stdout" 2>"$at_stder1" + esac); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" at_status=$? grep '^ *+' "$at_stder1" >&2 grep -v '^ *+' "$at_stder1" >"$at_stderr" else - ( :; cd $abs_top_builddir && $GST -f $abs_top_srcdir/scripts/Test.st -p ZLib + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p ZLib ret=$? case $ret in 2) exit 77 ;; 0|1) exit $ret ;; - esac ) >"$at_stdout" 2>"$at_stderr" + esac); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" at_status=$? fi @@ -8812,6 +8813,83 @@ at_status=`cat "$at_status_file"` ;; + 113 ) # 113. testsuite.at:147: Iconv + at_setup_line='testsuite.at:147' + at_desc="Iconv" + $at_quiet $ECHO_N "113: Iconv $ECHO_C" + at_xfail=no + echo "# -*- compilation -*-" >> "$at_group_log" + ( + echo "113. testsuite.at:147: testing ..." + $at_traceon + + + + + case $AUTOTEST_PATH in + tests) image_path="-I $abs_top_builddir/gst.im" ;; + *) image_path="" ;; + esac + + $at_traceoff +echo "$at_srcdir/testsuite.at:147: { (cd \$abs_top_builddir && gst \$image_path -f \$abs_top_srcdir/scripts/Test.st -p Iconv + ret=\$? + case \$ret in + 2) exit 77 ;; + 0|1) exit \$ret ;; + esac); echo exit \$? > retcode; } | tr -d '\\r'; . retcode" +echo testsuite.at:147 >"$at_check_line_file" + +at_trace_this= +if test -n "$at_traceon"; then + echo 'Not enabling shell tracing (command contains an embedded newline)' +fi + +if test -n "$at_trace_this"; then + ( $at_traceon; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Iconv + ret=$? + case $ret in + 2) exit 77 ;; + 0|1) exit $ret ;; + esac); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stder1" + at_status=$? + grep '^ *+' "$at_stder1" >&2 + grep -v '^ *+' "$at_stder1" >"$at_stderr" +else + ( :; { (cd $abs_top_builddir && gst $image_path -f $abs_top_srcdir/scripts/Test.st -p Iconv + ret=$? + case $ret in + 2) exit 77 ;; + 0|1) exit $ret ;; + esac); echo exit $? > retcode; } | tr -d '\r'; . retcode ) >"$at_stdout" 2>"$at_stderr" + at_status=$? +fi + +at_failed=false +$at_diff "$at_devnull" "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +case $at_status in + 77) echo 77 > "$at_status_file"; exit 77;; + 0) ;; + *) echo "$at_srcdir/testsuite.at:147: exit code was $at_status, expected 0" + at_failed=:;; +esac +if $at_failed; then + + + echo 1 > "$at_status_file" + exit 1 +fi + +$at_traceon + + + $at_traceoff + $at_times_p && times >"$at_times_file" + ) 5>&1 2>&1 | eval $at_tee_pipe + at_status=`cat "$at_status_file"` + ;; + * ) echo "$as_me: no such test group: $at_group" >&2 @@ -9102,7 +9180,7 @@ echo "Please send \`${at_testdir+${at_testdir}/}$as_me.log' and all information you think might help:" echo echo " To: " - echo " Subject: [GNU Smalltalk 2.3.5] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}" + echo " Subject: [GNU Smalltalk 2.3.6] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}" echo if test $at_debug_p = false; then echo diff -ru smalltalk-2.3.5/tests/testsuite.at smalltalk-2.3.6/tests/testsuite.at --- smalltalk-2.3.5/tests/testsuite.at 2007-05-25 11:46:23.000000000 +0200 +++ smalltalk-2.3.6/tests/testsuite.at 2007-08-14 14:34:00.000000000 +0200 @@ -21,7 +21,7 @@ m4_include([local.at]) AT_INIT -AT_TESTED(../gst) +AT_TESTED(gst) AT_BANNER([Regression tests.]) AT_DIFF_TEST([arrays.st]) @@ -144,3 +144,4 @@ AT_OPTIONAL_PACKAGE_TEST([GDBM]) AT_PACKAGE_TEST([MD5]) AT_OPTIONAL_PACKAGE_TEST([ZLib]) +AT_OPTIONAL_PACKAGE_TEST([Iconv]) diff -ru smalltalk-2.3.5/xml/ChangeLog smalltalk-2.3.6/xml/ChangeLog --- smalltalk-2.3.5/xml/ChangeLog 2006-12-13 09:57:19.000000000 +0100 +++ smalltalk-2.3.6/xml/ChangeLog 2007-06-25 15:21:24.000000000 +0200 @@ -1,3 +1,10 @@ +2007-06-25 Paolo Bonzini + + * xml/XPath.st: Change #usedVarNames to #xpathUsedVarNames, add + a few methods for VW compatibility. + * xml/XSL.st: Adapt to these changes and to the non-bogusness of our + XPath parser compared to VW's. + 2006-12-13 Paolo Bonzini *** Version 2.3.1 released. diff -ru smalltalk-2.3.5/xml/XPath.st smalltalk-2.3.6/xml/XPath.st --- smalltalk-2.3.5/xml/XPath.st 2006-02-05 19:41:43.000000000 +0100 +++ smalltalk-2.3.6/xml/XPath.st 2007-06-25 15:19:48.000000000 +0200 @@ -435,7 +435,7 @@ predicates ^predicates! -usedVarNames +xpathUsedVarNames | list | list := OrderedCollection new. self enumerate: [:exp | @@ -443,6 +443,11 @@ ifTrue: [list add: exp name]]. ^list! ! +!Object methodsFor: 'xpath'! + +xpathUsedVarNames + ^OrderedCollection new! ! + !XPathExpression methodsFor: 'matching'! baseValueIn: aNodeContext @@ -2020,6 +2025,9 @@ atEndOfExpression ^tokenType == #endOfExpression! +init: streamOrString notifying: nothing failBlock: bah + self source: streamOrString! + source: streamOrString buffer := String new writeStream. stack := OrderedCollection new. @@ -2042,6 +2050,9 @@ stack size = 1 ifFalse: [self error: 'Parsing logic error, incorrect number of values on the stack']. ^stack first! +initScanner + "Present for compatibility with the parser in VW."! + xmlNode: aNode xmlNode := aNode! ! diff -ru smalltalk-2.3.5/xml/XSL.st smalltalk-2.3.6/xml/XSL.st --- smalltalk-2.3.5/xml/XSL.st 2006-02-05 19:41:43.000000000 +0100 +++ smalltalk-2.3.6/xml/XSL.st 2007-06-25 15:19:48.000000000 +0200 @@ -490,7 +490,7 @@ [sorted size = lastSize] whileFalse: [lastSize := sorted size. unsorted copy do: [:var | - list := var expression usedVarNames. + list := var expression xpathUsedVarNames. list := list reject: [:nm | sorted includes: nm]. list isEmpty ifTrue: @@ -1135,9 +1135,9 @@ | test doc default result | default := self examplesDirectory. test := self new. - test readFileNamed: (default construct: 'activityinfo.xsl'). + test readFileNamed: (default nameAt: 'activityinfo.xsl'). doc := XMLParser - processDocumentInFilename: (default construct: 'activityinfo.xml') + processDocumentInFilename: (default nameAt: 'activityinfo.xml') beforeScanDo: [:parser | parser validate: false]. result := test process: doc. self store: result on: 'activityinfo.html'! @@ -1148,9 +1148,9 @@ | test doc default result | default := self examplesDirectory. test := self new. - test readFileNamed: (default construct: 'activityinfo2.xsl'). + test readFileNamed: (default nameAt: 'activityinfo2.xsl'). doc := XMLParser - processDocumentInFilename: (default construct: 'activityinfo.xml') + processDocumentInFilename: (default nameAt: 'activityinfo.xml') beforeScanDo: [:parser | parser validate: false]. result := test process: doc. self store: result on: 'activityinfo2.html'.! @@ -1161,9 +1161,9 @@ | test doc default result | default := self examplesDirectory. test := self new. - test readFileNamed: (default construct: 'activityinfo3.xsl'). + test readFileNamed: (default nameAt: 'activityinfo3.xsl'). doc := XMLParser - processDocumentInFilename: (default construct: 'activityinfo.xml') + processDocumentInFilename: (default nameAt: 'activityinfo.xml') beforeScanDo: [:parser | parser validate: false]. result := test process: doc. self store: result on: 'activityinfo3.html'.! @@ -1174,9 +1174,9 @@ | test doc default result | default := self examplesDirectory. test := self new. - test readFileNamed: (default construct: 'listgen.xsl'). + test readFileNamed: (default nameAt: 'listgen.xsl'). doc := XMLParser - processDocumentInFilename: (default construct: 'listgen.xml') + processDocumentInFilename: (default nameAt: 'listgen.xml') beforeScanDo: [:parser | parser validate: false]. result := test process: doc. self store: result on: 'listgen.html'.! @@ -1502,7 +1502,9 @@ expr := p result. elm := expr xpathValueIn: aNodeContext. output nextPutAll: elm xpathAsString. - p pastEnd ifFalse: [source skip: -1]]] + + "Not needed with our XPath parser!" + "p pastEnd ifFalse: [source skip: -1]" ]] ifFalse: [ch = $} ifTrue: [source next = $} ifFalse: [self error: 'Expected doubled }'].