diff -rNu smalltalk-2.1.9/ChangeLog smalltalk-2.1.10/ChangeLog --- smalltalk-2.1.9/ChangeLog 2004-09-06 18:28:52.000000000 +0200 +++ smalltalk-2.1.10/ChangeLog 2005-02-02 18:28:32.000000000 +0100 @@ -1,3 +1,17 @@ +2005-02-02 Paolo Bonzini + + * kernel/PkgLoader.st: Add comments to undocumented methods. + +2005-02-02 Paolo Bonzini + + * examples/gdbm.c: Do not include malloc.h. + +2004-11-13 Paolo Bonzini + + * kernel/Directory.st: support passing an absolute path as the + file name in Directory>>#append:to:. + * kernel/PkgLoader.st: support source files in multiple directories. + 2004-09-06 Paolo Bonzini * kernel/CObject.st: implement #narrow for UndefinedObject. diff -rNu smalltalk-2.1.9/Makefile.am smalltalk-2.1.10/Makefile.am --- smalltalk-2.1.9/Makefile.am 2003-12-13 10:38:03.000000000 +0100 +++ smalltalk-2.1.10/Makefile.am 2005-02-03 09:43:38.000000000 +0100 @@ -74,6 +74,7 @@ # The \( ... \) below protect against substitution in config.status dist-hook: gst-package sed -e "s/@\(I18N_DISABLED\)@/disabled-/" \ + -e "s/@\(GTK_DISABLED\)@/disabled-/" \ -e "s/@\(VERSION\)@/@VERSION@/" \ $(srcdir)/packages.xml.in > packages.tmp SMALLTALK_IMAGE=$(distdir) \ diff -rNu smalltalk-2.1.9/Makefile.in smalltalk-2.1.10/Makefile.in --- smalltalk-2.1.9/Makefile.in 2004-10-02 15:29:43.000000000 +0200 +++ smalltalk-2.1.10/Makefile.in 2005-02-03 09:43:53.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -57,6 +57,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = gst$(EXEEXT) subdir = . @@ -87,15 +88,18 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = gnu-smalltalk.spec gst-config gst-package libc.la -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(lispdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkglibdir)" +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(lispdir)" "$(DESTDIR)$(pkgdatadir)" \ + "$(DESTDIR)$(pkglibdir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_gst_OBJECTS = main.$(OBJEXT) @@ -105,14 +109,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I. depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/main.Po COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(gst_SOURCES) DIST_SOURCES = $(gst_SOURCES) @@ -122,11 +125,17 @@ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; lispLISP_INSTALL = $(INSTALL_DATA) LISP = $(lisp_LISP) am__ELFILES = gst-mode.el smalltalk-mode.el am__ELCFILES = $(am__ELFILES:.el=.elc) -ELCFILES = $(am__ELCFILES) +ELCFILES = $(LISP:.el=.elc) elisp_comp = $(top_srcdir)/config/elisp-comp pkgdataDATA_INSTALL = $(INSTALL_DATA) pkglibDATA_INSTALL = $(INSTALL_DATA) @@ -271,6 +280,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -457,24 +468,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -487,12 +495,12 @@ -rm -f libtool uninstall-info-am: -elc-stamp: $(am__ELFILES) +elc-stamp: $(LISP) @echo 'WARNING: Warnings can be ignored. :-)' @rm -f elc-temp && touch elc-temp if test "$(EMACS)" != no; then \ set x; \ - list='$(am__ELFILES)'; for p in $$list; do \ + list='$(LISP)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ set x "$$@" "$$d$$p"; shift; \ done; \ @@ -511,7 +519,7 @@ test -z "$(lispdir)" || $(mkdir_p) "$(DESTDIR)$(lispdir)"; \ list='$(lisp_LISP)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(lispLISP_INSTALL) '$$d$$p' '$(DESTDIR)$(lispdir)/$$f'"; \ $(lispLISP_INSTALL) "$$d$$p" "$(DESTDIR)$(lispdir)/$$f"; \ if test -f $${p}c; then \ @@ -525,7 +533,7 @@ @$(NORMAL_UNINSTALL) @if test "$(EMACS)" != no; then \ list='$(lisp_LISP)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(lispdir)/$$f' '$(DESTDIR)$(lispdir)/$${f}c'"; \ rm -f "$(DESTDIR)$(lispdir)/$$f" "$(DESTDIR)$(lispdir)/$${f}c"; \ done; \ @@ -538,7 +546,7 @@ test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ done @@ -546,7 +554,7 @@ uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ done @@ -555,7 +563,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ done @@ -563,7 +571,7 @@ uninstall-pkglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkglib_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ done @@ -691,7 +699,7 @@ distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/config + $(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/lib-src @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ @@ -721,12 +729,14 @@ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || mkdir "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="../$(top_distdir)" \ - distdir="../$(distdir)/$$subdir" \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ @@ -740,15 +750,15 @@ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir - $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir @@ -761,7 +771,7 @@ $(am__remove_distdir) dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -770,11 +780,11 @@ distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ @@ -858,7 +868,7 @@ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -928,17 +938,17 @@ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-binPROGRAMS clean-generic clean-libtool \ clean-lisp clean-recursive ctags ctags-recursive dist dist-all \ - dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-local distclean-recursive \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-binSCRIPTS install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-lispLISP install-man \ - install-pkgdataDATA install-pkglibDATA install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ + dist-bzip2 dist-gzip dist-hook dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-local \ + distclean-recursive distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-binSCRIPTS \ + install-data install-data-am install-data-hook install-exec \ + install-exec-am install-info install-info-am install-lispLISP \ + install-man install-pkgdataDATA install-pkglibDATA \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ @@ -967,6 +977,7 @@ # The \( ... \) below protect against substitution in config.status dist-hook: gst-package sed -e "s/@\(I18N_DISABLED\)@/disabled-/" \ + -e "s/@\(GTK_DISABLED\)@/disabled-/" \ -e "s/@\(VERSION\)@/@VERSION@/" \ $(srcdir)/packages.xml.in > packages.tmp SMALLTALK_IMAGE=$(distdir) \ diff -rNu smalltalk-2.1.9/NEWS smalltalk-2.1.10/NEWS --- smalltalk-2.1.9/NEWS 2004-10-02 15:36:43.000000000 +0200 +++ smalltalk-2.1.10/NEWS 2004-11-25 15:19:16.000000000 +0100 @@ -1,5 +1,25 @@ List of user-visible changes in GNU Smalltalk +NEWS IN 2.1.10 + +This is a bugfix release, but with these visible change: + +o PackageLoader supports loading package source code from multiple + directories. + + Directory packages.xml is in Directories looked in + /usr/share/smalltalk /usr/share/smalltalk + parent of local kernel directory, if any + image directory + parent of local kernel directory parent of local kernel directory + image directory + image directory image directory + +o Directory>>#append:to: supports passing an absolute path as the file + name (first argument). In this case, the file name itself is returned. + +This release works under MacOS X (Darwin) 10.3 as well. + NEWS FROM 2.1.5 TO 2.1.9 These are bugfix releases. The only visible changes are: diff -rNu smalltalk-2.1.9/aclocal.m4 smalltalk-2.1.10/aclocal.m4 --- smalltalk-2.1.9/aclocal.m4 2004-10-02 15:29:25.000000000 +0200 +++ smalltalk-2.1.10/aclocal.m4 2005-02-03 09:30:33.000000000 +0100 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.8.5 -*- Autoconf -*- +# generated automatically by aclocal 1.9.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. @@ -33,14 +33,14 @@ # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.8.5])]) + [AM_AUTOMAKE_VERSION([1.9.2])]) # AM_AUX_DIR_EXPAND @@ -108,7 +108,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -145,8 +145,8 @@ fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]) + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) fi])]) # serial 7 -*- Autoconf -*- @@ -319,7 +319,8 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -355,27 +356,21 @@ else continue fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue @@ -430,7 +425,7 @@ # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -506,7 +501,6 @@ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl @@ -515,7 +509,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl - +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], @@ -820,13 +816,21 @@ # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -992,6 +996,114 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004 Free Software Foundation, Inc. + +# This program 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. + +# This program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 1 + + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + m4_include([config/align.m4]) m4_include([config/bold.m4]) m4_include([config/codeset.m4]) @@ -1020,3 +1132,4 @@ m4_include([config/symbolset.m4]) m4_include([config/tcltk.m4]) m4_include([config/version.m4]) +m4_include([config/wlong-double.m4]) diff -rNu smalltalk-2.1.9/blox-tk/Makefile.am smalltalk-2.1.10/blox-tk/Makefile.am --- smalltalk-2.1.9/blox-tk/Makefile.am 2003-05-27 19:41:21.000000000 +0200 +++ smalltalk-2.1.10/blox-tk/Makefile.am 2004-11-25 15:19:16.000000000 +0100 @@ -1,7 +1,7 @@ dist_noinst_DATA = stamp-classes -stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ +$(srcdir)/stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ BloxText.st BloxWidgets.st @echo Updating $@ @sed -n "s/.*'\([^']*\.st\)'.*/\1/p" $(srcdir)/Blox.st>$@ diff -rNu smalltalk-2.1.9/blox-tk/Makefile.in smalltalk-2.1.10/blox-tk/Makefile.in --- smalltalk-2.1.9/blox-tk/Makefile.in 2004-10-02 15:29:44.000000000 +0200 +++ smalltalk-2.1.10/blox-tk/Makefile.in 2005-02-03 09:30:43.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,6 +38,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = blox-tk DIST_COMMON = $(dist_noinst_DATA) $(noinst_HEADERS) \ @@ -63,12 +64,19 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkglibdir)" pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkglib_LTLIBRARIES) @@ -78,14 +86,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/BloxTK.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(blox_tk_la_SOURCES) DIST_SOURCES = $(blox_tk_la_SOURCES) @@ -219,6 +226,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -298,7 +307,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ else :; fi; \ @@ -306,8 +315,8 @@ uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ done @@ -335,24 +344,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -466,7 +472,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -536,7 +542,7 @@ uninstall-pkglibLTLIBRARIES -stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ +$(srcdir)/stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ BloxText.st BloxWidgets.st @echo Updating $@ @sed -n "s/.*'\([^']*\.st\)'.*/\1/p" $(srcdir)/Blox.st>$@ diff -rNu smalltalk-2.1.9/config/Makefile.in smalltalk-2.1.10/config/Makefile.in --- smalltalk-2.1.9/config/Makefile.in 2004-10-02 15:29:44.000000000 +0200 +++ smalltalk-2.1.10/config/Makefile.in 2005-02-03 09:30:48.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -35,6 +35,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = config DIST_COMMON = $(dist_aclocal_DATA) $(dist_noinst_DATA) \ @@ -63,15 +64,22 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SCRIPTS = $(dist_noinst_SCRIPTS) SOURCES = DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(aclocaldir)" dist_aclocalDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_aclocal_DATA) $(dist_noinst_DATA) @@ -201,6 +209,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -290,7 +300,7 @@ test -z "$(aclocaldir)" || $(mkdir_p) "$(DESTDIR)$(aclocaldir)" @list='$(dist_aclocal_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(dist_aclocalDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(aclocaldir)/$$f'"; \ $(dist_aclocalDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(aclocaldir)/$$f"; \ done @@ -298,7 +308,7 @@ uninstall-dist_aclocalDATA: @$(NORMAL_UNINSTALL) @list='$(dist_aclocal_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(aclocaldir)/$$f'"; \ rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \ done @@ -362,7 +372,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff -rNu smalltalk-2.1.9/config/compile smalltalk-2.1.10/config/compile --- smalltalk-2.1.9/config/compile 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/compile 2005-02-02 14:52:09.000000000 +0100 @@ -1,8 +1,9 @@ #! /bin/sh - # Wrapper for compilers which do not understand `-c -o'. -# Copyright 1999, 2000 Free Software Foundation, Inc. +scriptversion=2004-09-10.20 + +# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -24,76 +25,116 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Usage: -# compile PROGRAM [ARGS]... -# `-o FOO.o' is removed from the args passed to the actual compile. - -prog=$1 -shift +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "compile $scriptversion" + exit 0 + ;; +esac ofile= cfile= -args= -while test $# -gt 0; do - case "$1" in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we do something ugly here. - ofile=$2 - shift - case "$ofile" in - *.o | *.obj) - ;; - *) - args="$args -o $ofile" - ofile= - ;; - esac - ;; - *.c) - cfile=$1 - args="$args $1" - ;; - *) - args="$args $1" - ;; - esac - shift +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$prog" $args + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" fi # Name of file we expect compiler to create. -cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. -lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do - if mkdir $lockdir > /dev/null 2>&1; then - break - fi - sleep 1 + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir $lockdir; exit 1" 1 2 15 +trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. -"$prog" $args -status=$? +"$@" +ret=$? if test -f "$cofile"; then - mv "$cofile" "$ofile" + mv "$cofile" "$ofile" fi -rmdir $lockdir -exit $status +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/config.guess smalltalk-2.1.10/config/config.guess --- smalltalk-2.1.9/config/config.guess 2003-12-13 10:13:24.000000000 +0100 +++ smalltalk-2.1.10/config/config.guess 2005-02-02 15:55:33.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -timestamp='2003-10-20' +timestamp='2004-09-07' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -53,7 +53,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -197,15 +197,21 @@ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; + amd64:OpenBSD:*:*) + echo x86_64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} + cats:OpenBSD:*:*) + echo arm-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + luna88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; @@ -221,28 +227,33 @@ mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} + echo mips64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit 0 ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU @@ -280,14 +291,12 @@ "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? @@ -405,6 +414,9 @@ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; @@ -740,7 +752,7 @@ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` @@ -763,21 +775,7 @@ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -826,9 +824,18 @@ cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit 0 ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; @@ -1069,9 +1076,9 @@ M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; - M68*:*:R3V[567]*:*) + M68*:*:R3V[5678]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1169,9 +1176,10 @@ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) - case `uname -p` in + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; + unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; @@ -1186,7 +1194,7 @@ *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) @@ -1230,9 +1238,16 @@ SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; - *:DRAGONFLY:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms && exit 0 ;; + I*) echo ia64-dec-vms && exit 0 ;; + V*) echo vax-dec-vms && exit 0 ;; + esac esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -rNu smalltalk-2.1.9/config/config.sub smalltalk-2.1.10/config/config.sub --- smalltalk-2.1.9/config/config.sub 2003-12-13 10:13:24.000000000 +0100 +++ smalltalk-2.1.10/config/config.sub 2005-02-02 15:55:33.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -timestamp='2003-11-20' +timestamp='2004-08-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -70,7 +70,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -145,7 +145,7 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -237,7 +237,7 @@ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m68000 | m68k | m88k | mcore \ + | m32r | m32rle | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -262,7 +262,7 @@ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ @@ -300,7 +300,7 @@ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ @@ -308,7 +308,7 @@ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* \ + | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -326,8 +326,9 @@ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ + | mmix-* \ | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ @@ -336,7 +337,7 @@ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ @@ -363,6 +364,9 @@ basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -380,6 +384,9 @@ amd64) basic_machine=x86_64-pc ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -439,12 +446,27 @@ basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -645,10 +667,6 @@ mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -729,10 +747,6 @@ np1) basic_machine=np1-gould ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -1045,6 +1059,9 @@ romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1067,7 +1084,7 @@ sh64) basic_machine=sh64-unknown ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) @@ -1140,8 +1157,9 @@ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ @@ -1359,6 +1377,9 @@ *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; diff -rNu smalltalk-2.1.9/config/depcomp smalltalk-2.1.10/config/depcomp --- smalltalk-2.1.9/config/depcomp 2003-06-09 09:36:05.000000000 +0200 +++ smalltalk-2.1.10/config/depcomp 2005-02-02 14:52:09.000000000 +0100 @@ -1,7 +1,9 @@ #! /bin/sh - # depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 Free Software Foundation, Inc. + +scriptversion=2004-05-31.23 + +# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +27,45 @@ # Originally written by Alexandre Oliva . +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit 0 + ;; +esac + if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" @@ -172,19 +197,25 @@ aix) # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. This file always lives in the current directory. - # Also, the AIX compiler puts `$object:' at the start of each line; - # $object doesn't have directory information. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" - outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi - stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + if test $stat -eq 0; then : else rm -f "$tmpdepfile" @@ -192,6 +223,7 @@ fi if test -f "$tmpdepfile"; then + outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. @@ -206,6 +238,44 @@ rm -f "$tmpdepfile" ;; +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. @@ -217,31 +287,40 @@ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then + # Dependencies are output in .lo.d with libtool 1.4. + # With libtool 1.5 they are output both in $dir.libs/$base.o.d + # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the + # latter, because the former will be cleaned when $dir.libs is + # erased. tmpdepfile1="$dir.libs/$base.lo.d" - tmpdepfile2="$dir.libs/$base.d" + tmpdepfile2="$dir$base.o.d" + tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" + tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else - rm -f "$tmpdepfile1" "$tmpdepfile2" + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" - else + elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" + else + tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -254,7 +333,7 @@ dashmstdout) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o. + # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. @@ -265,9 +344,7 @@ shift fi - # Remove `-o $object'. We will use -o /dev/null later, - # however we can't do the remplacement now because - # `-o $object' might simply not be used + # Remove `-o $object'. IFS=" " for arg do @@ -287,7 +364,11 @@ done test -z "$dashmflag" && dashmflag=-M - "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' @@ -306,6 +387,13 @@ makedepend) "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi # X makedepend shift cleared=no @@ -318,7 +406,9 @@ case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; - -*) + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; @@ -339,7 +429,7 @@ cpp) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout. + # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. @@ -381,7 +471,7 @@ msvisualcpp) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, + # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " @@ -421,3 +511,12 @@ esac exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/install-sh smalltalk-2.1.10/config/install-sh --- smalltalk-2.1.9/config/install-sh 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/install-sh 2005-02-02 14:52:09.000000000 +0100 @@ -1,19 +1,38 @@ #!/bin/sh -# # install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). + +scriptversion=2004-09-10.20 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. # -# Copyright 1991 by the Massachusetts Institute of Technology +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it @@ -23,13 +42,11 @@ # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. - # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" - # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" @@ -41,211 +58,265 @@ rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" -transformbasename="" -transform_arg="" -instcmd="$mvprog" chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" +chowncmd= +chgrpcmd= +stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script +src= +dst= +dir_arg= +dstarg= +no_target_directory= + +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test -n "$1"; do + case $1 in + -c) shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit 0;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' + -t) dstarg=$2 + shift + shift + continue;; -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" + -T) no_target_directory=true shift + continue;; - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - : - fi + --version) echo "$0 $scriptversion"; exit 0;; - pathcomp="${pathcomp}/" + *) # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + test -n "$dir_arg$dstarg" && break + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done + break;; + esac done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - : - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile +if test -z "$1"; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi -fi && +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + src= + + if test -d "$dst"; then + mkdircmd=: + chmodcmd= + else + mkdircmd=$mkdirprog + fi + else + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dst=$dst/`basename "$src"` + fi + fi + + # This sed command emulates the dirname command. + dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + + # Make sure that the destination directory exists. + + # Skip lots of stat calls in the usual case. + if test ! -d "$dstdir"; then + defaultIFS=' + ' + IFS="${IFS-$defaultIFS}" + + oIFS=$IFS + # Some sh's can't handle IFS=/ for some reason. + IFS='%' + set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` + IFS=$oIFS + + pathcomp= + + while test $# -ne 0 ; do + pathcomp=$pathcomp$1 + shift + if test ! -d "$pathcomp"; then + $mkdirprog "$pathcomp" + # mkdir can fail with a `File exist' error in case several + # install-sh are creating the directory concurrently. This + # is OK. + test -d "$pathcomp" || exit + fi + pathcomp=$pathcomp/ + done + fi + + if test -n "$dir_arg"; then + $doit $mkdircmd "$dst" \ + && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } + + else + dstfile=`basename "$dst"` + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + trap '(exit $?); exit' 1 2 13 15 + + # Copy the file name to the temp name. + $doit $cpprog "$src" "$dsttmp" && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dstdir/$dstfile"; then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ + || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ + || { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + } + } + fi || { (exit 1); exit; } +done -exit 0 +# The final little trick to "correctly" pass the exit status to the exit trap. +{ + (exit 0); exit +} + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/libtool.m4 smalltalk-2.1.10/config/libtool.m4 --- smalltalk-2.1.9/config/libtool.m4 2003-12-19 17:08:25.000000000 +0100 +++ smalltalk-2.1.10/config/libtool.m4 2005-02-03 09:29:07.000000000 +0100 @@ -1,5 +1,5 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -## Copyright 1996, 1997, 1998, 1999, 2000, 2001 +## Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 ## Free Software Foundation, Inc. ## Originally by Gordon Matzigkeit , 1996 ## @@ -23,7 +23,6 @@ ## the same distribution terms that you use for the rest of that program. # serial 47 AC_PROG_LIBTOOL -# Debian $Rev: 74 $ # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) @@ -201,6 +200,8 @@ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) @@ -318,7 +319,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then @@ -642,7 +643,7 @@ AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 - testring="ABCD" + teststring="ABCD" case $build_os in msdosdjgpp*) @@ -677,20 +678,34 @@ lt_cv_sys_max_cmd_len=8192; ;; + netbsd* | freebsd* | openbsd* | darwin* ) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for *BSD + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + ;; + *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` - testring=$testring$testring + teststring=$teststring$teststring done - testring= + teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. @@ -840,7 +855,7 @@ lt_cv_dlopen_self=yes ]) ;; - + *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], @@ -929,13 +944,6 @@ mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. @@ -1022,8 +1030,8 @@ [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && @@ -1080,7 +1088,7 @@ *) AC_MSG_RESULT([no]) ;; - esac + esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP @@ -1093,7 +1101,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext=".so" +shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -1190,7 +1198,7 @@ shlibpath_var=LIBRARY_PATH ;; -bsdi4*) +bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -1206,7 +1214,7 @@ cygwin* | mingw* | pw32*) version_type=windows - shrext=".dll" + shrext_cmds=".dll" need_version=no need_lib_prefix=no @@ -1271,7 +1279,7 @@ soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -1354,7 +1362,7 @@ need_version=no case "$host_cpu" in ia64*) - shrext='.so' + shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH @@ -1369,7 +1377,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) - shrext='.sl' + shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH @@ -1380,7 +1388,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) - shrext='.sl' + shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH @@ -1449,6 +1457,12 @@ # before this can be enabled. hardcode_into_libs=yes + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, @@ -1458,6 +1472,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -1467,7 +1493,7 @@ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi @@ -1516,7 +1542,7 @@ os2*) libname_spec='$name' - shrext=".dll" + shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' @@ -1662,7 +1688,9 @@ case $tagname in CXX) - if test -n "$CXX" && test "X$CXX" != "Xno"; then + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" @@ -2067,6 +2095,15 @@ *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac ])# AC_PROG_LD_RELOAD_FLAG @@ -2100,30 +2137,26 @@ lt_cv_deplibs_check_method=pass_all ;; -bsdi4*) +bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin* | mingw* | pw32*) - # win32_libid is a shell function defined in ltmain.sh +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='win32_libid' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) - # this will be overwritten by pass_all, but leave it in just in case - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[[012]]) - lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac lt_cv_deplibs_check_method=pass_all ;; @@ -2166,38 +2199,18 @@ ;; irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" - ;; + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) - # linux always uses pass_all now, this code is the old way (tm) - case $host_cpu in - alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; - esac lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) @@ -2219,19 +2232,14 @@ ;; openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; @@ -2241,7 +2249,6 @@ solaris*) lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) @@ -2418,10 +2425,21 @@ # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX +# _LT_AC_PROG_CXXCPP +# --------------- +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP # AC_LIBTOOL_F77 # -------------- @@ -2507,7 +2525,7 @@ fi if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : + if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : else AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no @@ -2557,48 +2575,11 @@ fi ;; -aix4*) +aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi - ;; - darwin* | rhapsody*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; + ;; esac AC_MSG_RESULT([$enable_shared]) @@ -2623,7 +2604,7 @@ AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= @@ -2875,6 +2856,7 @@ esac ;; + cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. @@ -2898,57 +2880,68 @@ _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - darwin* | rhapsody*) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; + ;; dgux*) case $cc_basename in @@ -3005,7 +2998,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then @@ -3154,9 +3147,20 @@ icpc) # Intel C++ with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' @@ -3213,6 +3217,22 @@ # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; osf3*) case $cc_basename in KCC) @@ -3712,7 +3732,7 @@ postinstall_cmds='$RANLIB $lib' fi ;; -aix4*) +aix4* | aix5*) test "$enable_shared" = yes && enable_static=no ;; esac @@ -3854,7 +3874,7 @@ # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST - fi + fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. @@ -3909,7 +3929,7 @@ _LT_AC_TAGVAR(archive_cmds, $1) | \ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ _LT_AC_TAGVAR(module_cmds, $1) | \ - _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ @@ -3979,7 +3999,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= @@ -4071,7 +4091,7 @@ libext="$libext" # Shared library suffix (normally ".so"). -shrext='$shrext' +shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" @@ -4384,6 +4404,13 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; @@ -4611,6 +4638,16 @@ ;; esac ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; dgux*) case $cc_basename in ec++) @@ -4675,7 +4712,7 @@ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; + ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha @@ -4864,6 +4901,16 @@ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being @@ -5035,7 +5082,7 @@ _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* @@ -5179,7 +5226,7 @@ ;; linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" supports_anon_versioning=no @@ -5365,7 +5412,7 @@ _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; - bsdi4*) + bsdi[[45]]*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; @@ -5379,7 +5426,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext=".dll" + shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -5391,53 +5438,53 @@ ;; darwin* | rhapsody*) - if test "$GXX" = yes ; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi ;; dgux*) @@ -5581,6 +5628,7 @@ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else @@ -5787,7 +5835,7 @@ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext - + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest @@ -5946,7 +5994,7 @@ fi done done -SED=$lt_cv_path_SED ]) +SED=$lt_cv_path_SED AC_MSG_RESULT([$SED]) ]) diff -rNu smalltalk-2.1.9/config/ltmain.sh smalltalk-2.1.10/config/ltmain.sh --- smalltalk-2.1.9/config/ltmain.sh 2003-12-19 17:04:41.000000000 +0100 +++ smalltalk-2.1.10/config/ltmain.sh 2005-02-03 09:29:07.000000000 +0100 @@ -1,7 +1,7 @@ # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # @@ -24,6 +24,34 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.10 +TIMESTAMP=" (1.1220.2.130 2004/09/19 12:13:49)" + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes. +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. @@ -36,7 +64,7 @@ : else # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} + exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then @@ -45,19 +73,9 @@ cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Global variables. @@ -119,10 +137,13 @@ # Shell function definitions: # This seems to be the best place for them +# func_win32_libid arg +# return the library type of file 'arg' +# # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. -win32_libid () { +func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in @@ -131,7 +152,7 @@ ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` if test "X$win32_nmres" = "Ximport" ; then @@ -141,7 +162,7 @@ fi fi ;; - *DLL*) + *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... @@ -155,9 +176,192 @@ $echo $win32_libid_type } + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () { + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () { + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xdir="$my_gentop/$my_xlib" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + status=$? + if test "$status" -ne 0 && test ! -d "$my_xdir"; then + exit $status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename $darwin_archive` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + # Remove the table of contents from the thin files. + $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true + $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $AR -xo "${darwin_base_archive}" + rm "${darwin_base_archive}" + cd "$darwin_curdir" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + rm -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + (cd $my_xdir && $AR x $my_xabs) || exit $? + fi # $darwin_arches + fi # $run + ;; + *) + # We will extract separately just the conflicting names and we will + # no longer touch any unique names. It is faster to leave these + # extract automatically by $AR in one run. + $show "(cd $my_xdir && $AR x $my_xabs)" + $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $? + if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 + $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 + $AR t "$my_xabs" | sort | uniq -cd | while read -r count name + do + i=1 + while test "$i" -le "$count" + do + # Put our $i before any first dot (extension) + # Never overwrite any file + name_to="$name" + while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to" + do + name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` + done + $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')" + $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $? + i=`expr $i + 1` + done + done + fi + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} # End of Shell function definitions ##################################### +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + # Parse our command line options once, thoroughly. while test "$#" -gt 0 do @@ -177,12 +381,13 @@ ;; tag) tagname="$arg" + preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -192,17 +397,16 @@ # not specially marked. ;; *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; - *) eval "$prev=\$arg" ;; @@ -225,21 +429,22 @@ $echo "Copyright (C) 2003 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit 0 + exit $EXIT_SUCCESS ;; --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done - exit 0 + exit $EXIT_SUCCESS ;; --debug) $echo "$progname: enabling shell trace mode" set -x + preserve_args="$preserve_args $arg" ;; --dry-run | -n) @@ -258,7 +463,7 @@ else $echo "disable static libraries" fi - exit 0 + exit $EXIT_SUCCESS ;; --finish) mode="finish" ;; @@ -270,6 +475,7 @@ --quiet | --silent) show=: + preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag ;; @@ -277,6 +483,7 @@ set tag "$optarg" ${1+"$@"} shift prev=tag + preserve_args="$preserve_args --tag" ;; -dlopen) @@ -287,7 +494,7 @@ -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *) @@ -300,7 +507,7 @@ if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # If this variable is set in any of the actions, the command in it @@ -356,7 +563,7 @@ if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. @@ -371,9 +578,11 @@ # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes suppress_output= arg_mode=normal libobj= + later= for arg do @@ -396,24 +605,19 @@ -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 + exit $EXIT_FAILURE fi arg_mode=target continue ;; - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" continue ;; - -prefer-non-pic) - pic_mode=no + -no-suppress) + suppress_opt=no continue ;; @@ -426,7 +630,7 @@ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' - for arg in $args; do + for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. @@ -476,11 +680,11 @@ case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" - exit 1 + exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *) # Get the name of the library object. @@ -513,50 +717,30 @@ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base compile - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case "$base_compile " in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue ;; esac - fi + done objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` @@ -570,7 +754,7 @@ if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Delete any leftover library objects. @@ -581,7 +765,7 @@ fi $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in @@ -600,7 +784,7 @@ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no @@ -610,7 +794,7 @@ # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do + until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done @@ -628,7 +812,7 @@ compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi $echo $srcfile > "$lockfile" fi @@ -683,7 +867,7 @@ if $run eval "$command"; then : else test -n "$output_obj" && $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi if test "$need_locks" = warn && @@ -703,7 +887,7 @@ compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one @@ -724,7 +908,9 @@ EOF # Allow error messages only from the first compilation. - suppress_output=' >/dev/null 2>&1' + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi else # No PIC object so indicate it doesn't exist in the libtool # object file. @@ -753,7 +939,7 @@ if $run eval "$command"; then : else $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi if test "$need_locks" = warn && @@ -773,7 +959,7 @@ compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi # Just move the object if needed @@ -811,7 +997,7 @@ $run $rm "$lockfile" fi - exit 0 + exit $EXIT_SUCCESS ;; # libtool link mode @@ -837,7 +1023,7 @@ ;; esac libtool_args="$nonopt" - base_compile="$nonopt" + base_compile="$nonopt $@" compile_command="$nonopt" finalize_command="$nonopt" @@ -869,6 +1055,7 @@ no_install=no objs= non_pic_objects= + precious_files_regex= prefer_static_libs=no preload=no prev= @@ -882,6 +1069,8 @@ vinfo= vinfo_number=no + func_infer_tag $base_compile + # We need to know -static, to get the right output filenames. for arg do @@ -913,7 +1102,6 @@ # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" - base_compile="$base_compile $arg" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") @@ -977,7 +1165,7 @@ export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" - exit 1 + exit $EXIT_FAILURE fi prev= continue @@ -992,6 +1180,11 @@ prev= continue ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; release) release="-$arg" prev= @@ -1024,7 +1217,7 @@ test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Extract subdirectory from the argument. @@ -1077,7 +1270,7 @@ # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 + exit $EXIT_FAILURE else # Dry-run case. @@ -1098,7 +1291,7 @@ done else $echo "$modename: link input file \`$save_arg' does not exist" - exit 1 + exit $EXIT_FAILURE fi arg=$save_arg prev= @@ -1110,7 +1303,7 @@ [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then @@ -1150,6 +1343,11 @@ finalize_command="$finalize_command $qarg" continue ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; *) eval "$prev=\"\$arg\"" prev= @@ -1198,7 +1396,7 @@ -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 + exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms @@ -1234,7 +1432,7 @@ absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi dir="$absdir" ;; @@ -1289,6 +1487,11 @@ continue ;; + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + deplibs="$deplibs $arg" + continue + ;; + -module) module=yes continue @@ -1353,6 +1556,11 @@ -o) prev=output ;; + -precious-files-regex) + prev=precious_regex + continue + ;; + -release) prev=release continue @@ -1375,7 +1583,7 @@ [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac case "$xrpath " in @@ -1498,7 +1706,7 @@ test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Extract subdirectory from the argument. @@ -1551,7 +1759,7 @@ # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 + exit $EXIT_FAILURE else # Dry-run case. @@ -1618,48 +1826,7 @@ if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 - fi - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base link - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case $base_compile in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in $compile_command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac + exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then @@ -1703,7 +1870,7 @@ "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; @@ -1713,7 +1880,7 @@ case $host in *cygwin* | *mingw* | *pw32*) - # don't eliminate duplcations in $postdeps and $predeps + # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) @@ -1766,7 +1933,7 @@ *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac done @@ -1804,6 +1971,15 @@ lib= found=no case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + fi + continue + ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 @@ -1815,7 +1991,7 @@ fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - for search_ext in .la $shrext .so .a; do + for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then @@ -1891,11 +2067,11 @@ fi if test "$pass" = scan; then deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 @@ -1923,7 +2099,22 @@ fi case $linkmode in lib) - if test "$deplibs_check_method" != pass_all; then + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" @@ -1974,14 +2165,14 @@ if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` @@ -2017,7 +2208,7 @@ if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" @@ -2034,12 +2225,12 @@ done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 + exit $EXIT_FAILURE fi continue fi # $pass = conv - + # Get the name of the library we link against. linklib= for l in $old_library $library_names; do @@ -2047,16 +2238,18 @@ done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't @@ -2094,10 +2287,17 @@ absdir="$libdir" fi else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` @@ -2105,7 +2305,7 @@ if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). @@ -2132,7 +2332,7 @@ continue fi - + if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" @@ -2219,17 +2419,18 @@ need_relink=yes fi # This is a shared library - - # Warn about portability, can't link against -module's on some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi - $echo "*** $linklib is not portable!" - fi + $echo "*** $linklib is not portable!" + fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. @@ -2287,9 +2488,10 @@ else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' - eval cmds=\"$extract_expsyms_cmds\" + cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -2300,9 +2502,10 @@ if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' - eval cmds=\"$old_archive_from_expsyms_cmds\" + cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -2325,9 +2528,9 @@ case $host in *-*-sco3.2v5* ) add_dir="-L$dir" ;; *-*-darwin* ) - # if the lib is a module then we can not link against it, someone - # is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo @@ -2335,7 +2538,7 @@ $echo "** The link will probably fail, sorry" else add="$dir/$old_library" - fi + fi fi esac elif test "$hardcode_minus_L" = no; then @@ -2377,7 +2580,7 @@ if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 + exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then @@ -2420,7 +2623,8 @@ esac add="-l$name" elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" @@ -2500,7 +2704,8 @@ if test "$linkmode" = lib; then if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= @@ -2557,7 +2762,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 @@ -2567,7 +2772,8 @@ depdepl= case $host in *-*-darwin*) - # we do not want to link against static libs, but need to link against shared + # we do not want to link against static libs, + # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do @@ -2575,43 +2781,42 @@ done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" - fi + fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac - path="" fi + path="" ;; *) - path="-L$path" - ;; - esac - + path="-L$path" + ;; + esac ;; - -l*) + -l*) case $host in *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" ;; *) continue ;; - esac + esac ;; *) continue ;; esac case " $deplibs " in *" $depdepl "*) ;; - *) deplibs="$deplibs $depdepl" ;; - esac + *) deplibs="$depdepl $deplibs" ;; + esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; @@ -2701,7 +2906,8 @@ eval $var=\"$tmp_libs\" done # for var fi - # Last step: remove runtime libs from dependency_libs (they stay in deplibs) + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in @@ -2761,19 +2967,19 @@ case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` @@ -2784,7 +2990,7 @@ if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 + exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" @@ -2832,13 +3038,13 @@ if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible - + case $vinfo_number in yes) number_major="$2" @@ -2882,7 +3088,7 @@ *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -2891,7 +3097,7 @@ *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -2900,14 +3106,14 @@ *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Calculate the version variables. @@ -2924,7 +3130,7 @@ versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) @@ -2996,7 +3202,7 @@ *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -3050,6 +3256,12 @@ *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi removelist="$removelist $p" ;; *) ;; @@ -3529,7 +3741,7 @@ fi # Get the real and link names of the library. - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" @@ -3559,10 +3771,11 @@ $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" + cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" @@ -3592,12 +3805,12 @@ for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; - *) + *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done - deplibs="$tmp_deplibs" + deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then @@ -3605,67 +3818,13 @@ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" fi fi - + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" @@ -3679,19 +3838,23 @@ # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval cmds=\"$module_expsym_cmds\" + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds else - eval cmds=\"$module_cmds\" + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds else - eval cmds=\"$archive_cmds\" + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds fi fi - if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && + if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else @@ -3792,19 +3955,28 @@ # value of $libobjs for piecewise linking. # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds else - eval cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. - eval cmds=\"\$cmds~$rm $delfiles\" + eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -3813,7 +3985,7 @@ # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 + exit $EXIT_SUCCESS fi # Create links to the real library. @@ -3861,7 +4033,7 @@ *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 + exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` @@ -3890,64 +4062,10 @@ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi @@ -3955,10 +4073,11 @@ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" - eval cmds=\"$reload_cmds\" + cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -3971,7 +4090,7 @@ $run ${rm}r $gentop fi - exit 0 + exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then @@ -3984,17 +4103,18 @@ # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? - exit 0 + exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" - eval cmds=\"$reload_cmds\" + cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -4006,7 +4126,7 @@ $run ${rm}r $gentop fi - exit 0 + exit $EXIT_SUCCESS ;; prog) @@ -4324,7 +4444,7 @@ ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac else @@ -4412,7 +4532,7 @@ # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? - exit 0 + exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then @@ -4467,10 +4587,10 @@ fi # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else @@ -4496,7 +4616,7 @@ cwrappersource=`$echo ${objdir}/lt-${output}.c` cwrapper=`$echo ${output}.exe` $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource < $output "\ #! $SHELL @@ -4726,7 +4846,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" @@ -4805,7 +4925,7 @@ else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" - exit 1 + exit $EXIT_FAILURE fi fi @@ -4867,20 +4987,20 @@ esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 + exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi\ " chmod +x $output fi - exit 0 + exit $EXIT_SUCCESS ;; esac @@ -4903,76 +5023,21 @@ if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" + cmds=$old_archive_from_new_cmds else eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." @@ -4999,7 +5064,7 @@ for obj in $save_oldobjs do last_oldobj=$obj - done + done for obj in $save_oldobjs do oldobjs="$objlist $obj" @@ -5013,7 +5078,7 @@ oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB - fi + fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= @@ -5024,12 +5089,13 @@ if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else - eval cmds=\"\$concat_cmds~$old_archive_cmds\" + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do + eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? @@ -5061,11 +5127,13 @@ fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then - relink_command= - fi + relink_command= + fi + + # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do @@ -5083,7 +5151,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; @@ -5097,7 +5165,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done @@ -5108,7 +5176,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done @@ -5116,7 +5184,7 @@ else newdlfiles= for lib in $dlfiles; do - case $lib in + case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac @@ -5125,7 +5193,7 @@ dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do - case $lib in + case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac @@ -5188,7 +5256,7 @@ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac - exit 0 + exit $EXIT_SUCCESS ;; # libtool install mode @@ -5277,13 +5345,13 @@ if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -z "$files"; then @@ -5293,7 +5361,7 @@ $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. @@ -5314,7 +5382,7 @@ if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi case $destdir in @@ -5326,7 +5394,7 @@ *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac done @@ -5355,7 +5423,7 @@ else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi library_names= @@ -5397,7 +5465,7 @@ # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then @@ -5412,7 +5480,7 @@ if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi @@ -5447,10 +5515,11 @@ # Do each command in the postinstall commands. lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" + cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -5490,7 +5559,7 @@ *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -5508,7 +5577,7 @@ $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi - exit 0 + exit $EXIT_SUCCESS ;; *) @@ -5562,7 +5631,7 @@ # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi finalize=yes @@ -5603,8 +5672,12 @@ tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : + save_umask=`umask` + umask 0077 + if $mkdir "$tmpdir"; then + umask $save_umask else + umask $save_umask $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi @@ -5663,16 +5736,17 @@ $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? - if test -n "$stripme" && test -n "$striplib"; then + if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" + cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -5686,9 +5760,9 @@ if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 --finish$current_libdirs' + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else - exit 0 + exit $EXIT_SUCCESS fi ;; @@ -5707,10 +5781,11 @@ for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" + cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" @@ -5727,7 +5802,7 @@ fi # Exit here if they wanted silent mode. - test "$show" = : && exit 0 + test "$show" = : && exit $EXIT_SUCCESS $echo "----------------------------------------------------------------------" $echo "Libraries have been installed in:" @@ -5763,7 +5838,7 @@ $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "----------------------------------------------------------------------" - exit 0 + exit $EXIT_SUCCESS ;; # libtool execute mode @@ -5775,7 +5850,7 @@ if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" - exit 1 + exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. @@ -5783,7 +5858,7 @@ if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi dir= @@ -5794,7 +5869,7 @@ else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Read the libtool library. @@ -5821,7 +5896,7 @@ dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi ;; @@ -5901,7 +5976,7 @@ $echo "export $shlibpath_var" fi $echo "$cmd$args" - exit 0 + exit $EXIT_SUCCESS fi ;; @@ -5929,7 +6004,7 @@ if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi rmdirs= @@ -5984,10 +6059,11 @@ if test "$mode" = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" + cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then @@ -5999,10 +6075,11 @@ if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" + cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then @@ -6041,7 +6118,7 @@ if test "$mode" = clean ; then noexename=$name case $file in - *.exe) + *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, @@ -6086,20 +6163,20 @@ "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd - exit 1 + exit $EXIT_FAILURE fi # We need to display help for each of the modes. @@ -6135,7 +6212,7 @@ a more detailed description of MODE. Report bugs to ." - exit 0 + exit $EXIT_SUCCESS ;; clean) @@ -6247,6 +6324,8 @@ -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries @@ -6288,14 +6367,14 @@ *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." -exit 0 +exit $EXIT_SUCCESS # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting diff -rNu smalltalk-2.1.9/config/mdate-sh smalltalk-2.1.10/config/mdate-sh --- smalltalk-2.1.9/config/mdate-sh 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/mdate-sh 2005-02-02 14:52:51.000000000 +0100 @@ -1,6 +1,9 @@ #!/bin/sh # Get modification time of a file or directory and pretty-print it. -# Copyright 1995, 1996, 1997 Free Software Foundation, Inc. + +scriptversion=2003-11-09.00 + +# Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 # # This program is free software; you can redistribute it and/or modify @@ -22,6 +25,31 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No file. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: mdate-sh [--help] [--version] FILE + +Pretty-print the modification time of FILE. + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "mdate-sh $scriptversion" + exit 0 + ;; +esac + # Prevent date giving response in another language. LANG=C export LANG @@ -30,24 +58,38 @@ LC_TIME=C export LC_TIME -# Get the extended ls output of the file or directory. -# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +save_arg1="$1" + +# Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then - set - x`ls -L -l -d $1` + ls_command='ls -L -l -d' else - set - x`ls -l -d $1` + ls_command='ls -l -d' fi -# The month is at least the fourth argument -# (3 shifts here, the next inside the loop). -shift -shift -shift -# Find the month. Next argument is day, followed by the year or time. +# A `ls -l' line looks as follows on OS/2. +# drwxrwx--- 0 Aug 11 2001 foo +# This differs from Unix, which adds ownership information. +# drwxrwx--- 2 root root 4096 Aug 11 2001 foo +# +# To find the date, we split the line on spaces and iterate on words +# until we find a month. This cannot work with files whose owner is a +# user named `Jan', or `Feb', etc. However, it's unlikely that `/' +# will be owned by a user whose name is a month. So we first look at +# the extended ls output of the root directory to decide how many +# words should be skipped to get the date. + +# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +set - x`$ls_command /` + +# Find which argument is the month. month= +command= until test $month do shift + # Add another shift to the command. + command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; @@ -64,6 +106,28 @@ esac done +# Get the extended ls output of the file or directory. +set - x`eval "$ls_command \"\$save_arg1\""` + +# Remove all preceding arguments +eval $command + +# Get the month. Next argument is day, followed by the year or time. +case $1 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; +esac + day=$2 # Here we have to deal with the problem that the ls output gives either @@ -95,3 +159,12 @@ # The result. echo $day $month $year + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/missing smalltalk-2.1.10/config/missing --- smalltalk-2.1.9/config/missing 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/missing 2005-02-02 14:52:09.000000000 +0100 @@ -1,6 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. + +scriptversion=2004-09-07.08 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 +# Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -38,18 +42,24 @@ configure_ac=configure.in fi +msg="missing on your system" + case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in -h|--h|--he|--hel|--help) echo "\ @@ -74,11 +84,15 @@ lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit 0 ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" + echo "missing $scriptversion (GNU Automake)" + exit 0 ;; -*) @@ -87,14 +101,44 @@ exit 1 ;; - aclocal*) +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case "$1" in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 fi + ;; +esac +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + aclocal*) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." @@ -102,13 +146,8 @@ ;; autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." @@ -116,13 +155,8 @@ ;; autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." @@ -140,13 +174,8 @@ ;; automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." @@ -156,16 +185,11 @@ ;; autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the proper tools for further handling them. - You can get \`$1Help2man' as part of \`Autoconf' from any GNU + You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` @@ -185,7 +209,7 @@ bison|yacc) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." @@ -215,7 +239,7 @@ lex|flex) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." @@ -237,13 +261,8 @@ ;; help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." @@ -262,13 +281,8 @@ ;; makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, @@ -284,10 +298,6 @@ tar) shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error @@ -323,10 +333,10 @@ *) echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing + it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 @@ -334,3 +344,10 @@ esac exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/symbolset.m4 smalltalk-2.1.10/config/symbolset.m4 --- smalltalk-2.1.9/config/symbolset.m4 2003-12-13 10:16:38.000000000 +0100 +++ smalltalk-2.1.10/config/symbolset.m4 2004-11-25 15:19:17.000000000 +0100 @@ -87,7 +87,7 @@ echo " exit (0);" ;\ echo "}") >conftest.$ac_ext - dnl Stolen from AC_TRY_RUN's definition + dnl Stolen from AC_RUN_IFELSE's definition AC_TRY_EVAL(ac_link) && gst_cv_machine_defines=`./conftest 2>/dev/null` fi if test -z "$gst_cv_machine_defines"; then diff -rNu smalltalk-2.1.9/config/texinfo.tex smalltalk-2.1.10/config/texinfo.tex --- smalltalk-2.1.9/config/texinfo.tex 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/texinfo.tex 2005-02-02 14:52:51.000000000 +0100 @@ -3,10 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2002-06-04.06} +\def\texinfoversion{2004-09-06.16} % -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -% 2000, 01, 02 Free Software Foundation, Inc. +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software +% Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -23,24 +24,17 @@ % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % -% In other words, you are welcome to use, share and improve this program. -% You are forbidden to forbid anyone else to use, share and improve -% what you give them. Help stamp out software-hoarding! +% As a special exception, when this file is read by TeX when processing +% a Texinfo source document, you may use the result without +% restriction. (This has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: -% ftp://ftp.gnu.org/gnu/texinfo.tex -% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) -% ftp://texinfo.org/texinfo/texinfo.tex +% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or % ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org), -% and /home/gd/gnu/doc/texinfo.tex on the GNU machines. -% -% The texinfo.tex in any given Texinfo distribution could well be out +% (and all CTAN mirrors, see http://www.ctan.org). +% The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. -% -% Texinfo has a small home page at http://texinfo.org/ and also -% http://www.gnu.org/software/texinfo. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the @@ -58,8 +52,12 @@ % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % -% It is possible to adapt texinfo.tex for other languages. You can get -% the existing language-specific files from the full Texinfo distribution. +% It is possible to adapt texinfo.tex for other languages, to some +% extent. You can get the existing language-specific files from the +% full Texinfo distribution. +% +% The GNU Texinfo home page is http://www.gnu.org/software/texinfo. + \message{Loading texinfo [version \texinfoversion]:} @@ -69,7 +67,14 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} -% Save some parts of plain tex whose names we will redefine. +\message{Basics,} +\chardef\other=12 + +% We never want plain's \outer definition of \+ in Texinfo. +% For @tex, we can use \tabalign. +\let\+ = \relax + +% Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c @@ -79,23 +84,34 @@ \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! +\let\ptexfootnote=\footnote +\let\ptexgtr=> +\let\ptexhat=^ \let\ptexi=\i +\let\ptexindent=\indent +\let\ptexnoindent=\noindent +\let\ptexinsert=\insert \let\ptexlbrace=\{ +\let\ptexless=< +\let\ptexplus=+ \let\ptexrbrace=\} +\let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t -% We never want plain's outer \+ definition in Texinfo. -% For @tex, we can use \tabalign. -\let\+ = \relax - -\message{Basics,} -\chardef\other=12 - % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J +% Use TeX 3.0's \inputlineno to get the line number, for better error +% messages, but if we're using an old version of TeX, don't do anything. +% +\ifx\inputlineno\thisisundefined + \let\linenumber = \empty % Pre-3.0. +\else + \def\linenumber{l.\the\inputlineno:\space} +\fi + % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi @@ -134,48 +150,111 @@ \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi -\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi + +% In some macros, we cannot use the `\? notation---the left quote is +% in some cases the escape char. +\chardef\colonChar = `\: +\chardef\commaChar = `\, +\chardef\dotChar = `\. +\chardef\exclamChar= `\! +\chardef\questChar = `\? +\chardef\semiChar = `\; +\chardef\underChar = `\_ + +\chardef\spaceChar = `\ % +\chardef\spacecat = 10 +\def\spaceisspace{\catcode\spaceChar=\spacecat} % Ignore a token. % \def\gobble#1{} -\hyphenation{ap-pen-dix} -\hyphenation{mini-buf-fer mini-buf-fers} -\hyphenation{eshell} -\hyphenation{white-space} +% The following is used inside several \edef's. +\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} + +% Hyphenation fixes. +\hyphenation{ + Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script + ap-pen-dix bit-map bit-maps + data-base data-bases eshell fall-ing half-way long-est man-u-script + man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm + par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces + spell-ing spell-ings + stand-alone strong-est time-stamp time-stamps which-ever white-space + wide-spread wrap-around +} % Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset -\newdimen \normaloffset +\newdimen\bindingoffset +\newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight +% For a final copy, take out the rectangles +% that mark overfull boxes (in case you have decided +% that the text looks ok even though it passes the margin). +% +\def\finalout{\overfullrule=0pt} + +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} + % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. +% since that produces some useless output on the terminal. We also make +% some effort to order the tracing commands to reduce output in the log +% file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\ifx\eTeXversion\undefined -\def\loggingall{\tracingcommands2 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% -\else -\def\loggingall{\tracingcommands3 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \tracingscantokens1 \tracingassigns1 \tracingifs1 - \tracinggroups1 \tracingnesting2 - \showboxbreadth\maxdimen\showboxdepth\maxdimen +\def\loggingall{% + \tracingstats2 + \tracingpages1 + \tracinglostchars2 % 2 gives us more in etex + \tracingparagraphs1 + \tracingoutput1 + \tracingmacros2 + \tracingrestores1 + \showboxbreadth\maxdimen \showboxdepth\maxdimen + \ifx\eTeXversion\undefined\else % etex gives us more logging + \tracingscantokens1 + \tracingifs1 + \tracinggroups1 + \tracingnesting2 + \tracingassigns1 + \fi + \tracingcommands3 % 3 gives us more in etex + \errorcontextlines16 }% -\fi % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. -% +% \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount @@ -228,7 +307,7 @@ % the page break happens to be in the middle of an example. \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. - \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi + \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize @@ -276,7 +355,7 @@ \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox - }% end of group with \turnoffactive + }% end of group with \normalturnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } @@ -309,143 +388,162 @@ % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % -\def\parsearg#1{% - \let\next = #1% +\def\parsearg{\parseargusing{}} +\def\parseargusing#1#2{% + \def\next{#2}% \begingroup \obeylines - \futurelet\temp\parseargx -} - -% If the next token is an obeyed space (from an @example environment or -% the like), remove it and recurse. Otherwise, we're done. -\def\parseargx{% - % \obeyedspace is defined far below, after the definition of \sepspaces. - \ifx\obeyedspace\temp - \expandafter\parseargdiscardspace - \else - \expandafter\parseargline - \fi + \spaceisspace + #1% + \parseargline\empty% Insert the \empty token, see \finishparsearg below. } -% Remove a single space (as the delimiter token to the macro call). -{\obeyspaces % - \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} - {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. - % - % First remove any @c comment, then any @comment. - % Result of each macro is put in \toks0. - \argremovec #1\c\relax % - \expandafter\argremovecomment \the\toks0 \comment\relax % - % - % Call the caller's macro, saved as \next in \parsearg. - \expandafter\next\expandafter{\the\toks0}% + \argremovecomment #1\comment\ArgTerm% }% } -% Since all \c{,omment} does is throw away the argument, we can let TeX -% do that for us. The \relax here is matched by the \relax in the call -% in \parseargline; it could be more or less anything, its purpose is -% just to delimit the argument to the \c. -\def\argremovec#1\c#2\relax{\toks0 = {#1}} -\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} +% First remove any @comment, then any @c comment. +\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} +\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} -% \argremovec{,omment} might leave us with trailing spaces, though; e.g., +% Each occurence of `\^^M' or `\^^M' is replaced by a single space. +% +% \argremovec might leave us with trailing space, e.g., % @end itemize @c foo -% will have two active spaces as part of the argument with the -% `itemize'. Here we remove all active spaces from #1, and assign the -% result to \toks0. -% -% This loses if there are any *other* active characters besides spaces -% in the argument -- _ ^ +, for example -- since they get expanded. -% Fortunately, Texinfo does not define any such commands. (If it ever -% does, the catcode of the characters in questionwill have to be changed -% here.) But this means we cannot call \removeactivespaces as part of -% \argremovec{,omment}, since @c uses \parsearg, and thus the argument -% that \parsearg gets might well have any character at all in it. +% This space token undergoes the same procedure and is eventually removed +% by \finishparsearg. % -\def\removeactivespaces#1{% - \begingroup - \ignoreactivespaces - \edef\temp{#1}% - \global\toks0 = \expandafter{\temp}% - \endgroup +\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} +\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} +\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% + \def\temp{#3}% + \ifx\temp\empty + % We cannot use \next here, as it holds the macro to run; + % thus we reuse \temp. + \let\temp\finishparsearg + \else + \let\temp\argcheckspaces + \fi + % Put the space token in: + \temp#1 #3\ArgTerm } -% Change the active space to expand to nothing. +% If a _delimited_ argument is enclosed in braces, they get stripped; so +% to get _exactly_ the rest of the line, we had to prevent such situation. +% We prepended an \empty token at the very beginning and we expand it now, +% just before passing the control to \next. +% (Similarily, we have to think about #3 of \argcheckspacesY above: it is +% either the null string, or it ends with \^^M---thus there is no danger +% that a pair of braces would be stripped. % -\begingroup - \obeyspaces - \gdef\ignoreactivespaces{\obeyspaces\let =\empty} -\endgroup +% But first, we have to remove the trailing space token. +% +\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} +% \parseargdef\foo{...} +% is roughly equivalent to +% \def\foo{\parsearg\Xfoo} +% \def\Xfoo#1{...} +% +% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my +% favourite TeX trick. --kasal, 16nov03 -\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} +\def\parseargdef#1{% + \expandafter \doparseargdef \csname\string#1\endcsname #1% +} +\def\doparseargdef#1#2{% + \def#2{\parsearg#1}% + \def#1##1% +} -%% These are used to keep @begin/@end levels from running away -%% Call \inENV within environments (after a \begingroup) -\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} -\def\ENVcheck{% -\ifENV\errmessage{Still within an environment; press RETURN to continue} -\endgroup\fi} % This is not perfect, but it should reduce lossage +% Several utility definitions with active space: +{ + \obeyspaces + \gdef\obeyedspace{ } -% @begin foo is the same as @foo, for now. -\newhelp\EMsimple{Press RETURN to continue.} + % Make each space character in the input produce a normal interword + % space in the output. Don't allow a line break at this space, as this + % is used only in environments like @example, where each line of input + % should produce a line of output anyway. + % + \gdef\sepspaces{\obeyspaces\let =\tie} + + % If an index command is used in an @example environment, any spaces + % therein should become regular spaces in the raw index file, not the + % expansion of \tie (\leavevmode \penalty \@M \ ). + \gdef\unsepspaces{\let =\space} +} -\outer\def\begin{\parsearg\beginxxx} -\def\beginxxx #1{% -\expandafter\ifx\csname #1\endcsname\relax -{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else -\csname #1\endcsname\fi} +\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} -% @end foo executes the definition of \Efoo. +% Define the framework for environments in texinfo.tex. It's used like this: % -\def\end{\parsearg\endxxx} -\def\endxxx #1{% - \removeactivespaces{#1}% - \edef\endthing{\the\toks0}% - % - \expandafter\ifx\csname E\endthing\endcsname\relax - \expandafter\ifx\csname \endthing\endcsname\relax - % There's no \foo, i.e., no ``environment'' foo. - \errhelp = \EMsimple - \errmessage{Undefined command `@end \endthing'}% - \else - \unmatchedenderror\endthing - \fi +% \envdef\foo{...} +% \def\Efoo{...} +% +% It's the responsibility of \envdef to insert \begingroup before the +% actual body; @end closes the group after calling \Efoo. \envdef also +% defines \thisenv, so the current environment is known; @end checks +% whether the environment name matches. The \checkenv macro can also be +% used to check whether the current environment is the one expected. +% +% Non-false conditionals (@iftex, @ifset) don't fit into this, so they +% are not treated as enviroments; they don't open a group. (The +% implementation of @end takes care not to call \endgroup in this +% special case.) + + +% At runtime, environments start with this: +\def\startenvironment#1{\begingroup\def\thisenv{#1}} +% initialize +\let\thisenv\empty + +% ... but they get defined via ``\envdef\foo{...}'': +\long\def\envdef#1#2{\def#1{\startenvironment#1#2}} +\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} + +% Check whether we're in the right environment: +\def\checkenv#1{% + \def\temp{#1}% + \ifx\thisenv\temp \else - % Everything's ok; the right environment has been started. - \csname E\endthing\endcsname + \badenverr \fi } -% There is an environment #1, but it hasn't been started. Give an error. -% -\def\unmatchedenderror#1{% +% Evironment mismatch, #1 expected: +\def\badenverr{% \errhelp = \EMsimple - \errmessage{This `@end #1' doesn't have a matching `@#1'}% + \errmessage{This command can appear only \inenvironment\temp, + not \inenvironment\thisenv}% +} +\def\inenvironment#1{% + \ifx#1\empty + out of any environment% + \else + in environment \expandafter\string#1% + \fi } -% Define the control sequence \E#1 to give an unmatched @end error. +% @end foo executes the definition of \Efoo. +% But first, it executes a specialized version of \checkenv % -\def\defineunmatchedend#1{% - \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% +\parseargdef\end{% + \if 1\csname iscond.#1\endcsname + \else + % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 + \expandafter\checkenv\csname#1\endcsname + \csname E#1\endcsname + \endgroup + \fi } +\newhelp\EMsimple{Press RETURN to continue.} -% Single-spacing is done by various environments (specifically, in -% \nonfillstart and \quotations). -\newskip\singlespaceskip \singlespaceskip = 12.5pt -\def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading\singlespaceskip -} %% Simple single-character @ commands @@ -466,16 +564,22 @@ \let\{=\mylbrace \let\}=\myrbrace \begingroup - % Definitions to produce actual \{ & \} command in an index. - \catcode`\{ = 12 \catcode`\} = 12 + % Definitions to produce \{ and \} commands for indices, + % and @{ and @} for the aux file. + \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\@ = 0 \catcode`\\ = 12 - @gdef@lbracecmd[\{]% - @gdef@rbracecmd[\}]% -@endgroup + \catcode`\! = 0 \catcode`\\ = \other + !gdef!lbracecmd[\{]% + !gdef!rbracecmd[\}]% + !gdef!lbraceatcmd[@{]% + !gdef!rbraceatcmd[@}]% +!endgroup + +% @comma{} to avoid , parsing problems. +\let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. +% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} @@ -483,10 +587,12 @@ \let\ubaraccent = \b \let\udotaccent = \d -% Other special characters: @questiondown @exclamdown -% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. +% Other special characters: @questiondown @exclamdown @ordf @ordm +% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} @@ -499,6 +605,25 @@ \fi\fi } +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) +% +\edef\TeX{\TeX \spacefactor=1000 } + +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). +% +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% + \kern-.15em + \TeX +} + % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -517,6 +642,9 @@ % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} +% @/ allows a line break. +\let\/=\allowbreak + % @. is an end-of-sentence period. \def\.{.\spacefactor=3000 } @@ -539,47 +667,24 @@ % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % -\def\group{\begingroup - \ifnum\catcode13=\active \else +% Another complication is that the group might be very large. This can +% cause the glue on the previous page to be unduly stretched, because it +% does not have much material. In this case, it's better to add an +% explicit \vfill so that the extra space is at the bottom. The +% threshold for doing this is if the group is more than \vfilllimit +% percent of a page (\vfilllimit can be changed inside of @tex). +% +\newbox\groupbox +\def\vfilllimit{0.7} +% +\envdef\group{% + \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi + \startsavinginserts % - % The \vtop we start below produces a box with normal height and large - % depth; thus, TeX puts \baselineskip glue before it, and (when the - % next line of text is done) \lineskip glue after it. (See p.82 of - % the TeXbook.) Thus, space below is not quite equal to space - % above. But it's pretty close. - \def\Egroup{% - \egroup % End the \vtop. - \endgroup % End the \group. - }% - % - \vtop\bgroup - % We have to put a strut on the last line in case the @group is in - % the midst of an example, rather than completely enclosing it. - % Otherwise, the interline space between the last line of the group - % and the first line afterwards is too small. But we can't put the - % strut in \Egroup, since there it would be on a line by itself. - % Hence this just inserts a strut at the beginning of each line. - \everypar = {\strut}% - % - % Since we have a strut on every line, we don't need any of TeX's - % normal interline spacing. - \offinterlineskip - % - % OK, but now we have to do something about blank - % lines in the input in @example-like environments, which normally - % just turn into \lisppar, which will insert no space now that we've - % turned off the interline space. Simplest is to make them be an - % empty paragraph. - \ifx\par\lisppar - \edef\par{\leavevmode \par}% - % - % Reset ^^M's definition to new definition of \par. - \obeylines - \fi - % + \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after @@ -589,6 +694,32 @@ \comment } % +% The \vtop produces a box with normal height and large depth; thus, TeX puts +% \baselineskip glue before it, and (when the next line of text is done) +% \lineskip glue after it. Thus, space below is not quite equal to space +% above. But it's pretty close. +\def\Egroup{% + % To get correct interline space between the last line of the group + % and the first line afterwards, we have to propagate \prevdepth. + \endgraf % Not \par, as it may have been set to \lisppar. + \global\dimen1 = \prevdepth + \egroup % End the \vtop. + % \dimen0 is the vertical size of the group's box. + \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox + % \dimen2 is how much space is left on the page (more or less). + \dimen2 = \pageheight \advance\dimen2 by -\pagetotal + % if the group doesn't fit on the current page, and it's a big big + % group, force a page break. + \ifdim \dimen0 > \dimen2 + \ifdim \pagetotal < \vfilllimit\pageheight + \page + \fi + \fi + \box\groupbox + \prevdepth = \dimen1 + \checkinserts +} +% % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % @@ -601,10 +732,8 @@ \newdimen\mil \mil=0.001in -\def\need{\parsearg\needx} - % Old definition--didn't work. -%\def\needx #1{\par % +%\parseargdef\need{\par % %% This method tries to make TeX break the page naturally %% if the depth of the box does not fit. %{\baselineskip=0pt% @@ -612,7 +741,7 @@ %\prevdepth=-1000pt %}} -\def\needx#1{% +\parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par @@ -651,37 +780,11 @@ \fi } -% @br forces paragraph break +% @br forces paragraph break (and is undocumented). \let\br = \par -% @dots{} output an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. -% -\def\dots{% - \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \leavevmode - \hbox to 2em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% - \spacefactor=3000 -} - - -% @page forces the start of a new page +% @page forces the start of a new page. % \def\page{\par\vfill\supereject} @@ -693,13 +796,11 @@ \newskip\exdentamount % This defn is used inside fill environments such as @defun. -\def\exdent{\parsearg\exdentyyy} -\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} +\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. -\def\nofillexdent{\parsearg\nofillexdentyyy} -\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount -\leftline{\hskip\leftskip{\rm#1}}}} +\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount + \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion @@ -730,10 +831,10 @@ % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). -% +% \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% + \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% @@ -751,37 +852,71 @@ } % @include file insert text of that file as input. -% Allow normal characters that we make active in the argument (a file name). -\def\include{\begingroup - \catcode`\\=12 - \catcode`~=12 - \catcode`^=12 - \catcode`_=12 - \catcode`|=12 - \catcode`<=12 - \catcode`>=12 - \catcode`+=12 - \parsearg\includezzz} -% Restore active chars for included file. -\def\includezzz#1{\endgroup\begingroup - % Read the included file in a group so nested @include's work. +% +\def\include{\parseargusing\filenamecatcodes\includezzz} +\def\includezzz#1{% + \pushthisfilestack \def\thisfile{#1}% - \input\thisfile -\endgroup} + {% + \makevalueexpandable + \def\temp{\input #1 }% + \expandafter + }\temp + \popthisfilestack +} +\def\filenamecatcodes{% + \catcode`\\=\other + \catcode`~=\other + \catcode`^=\other + \catcode`_=\other + \catcode`|=\other + \catcode`<=\other + \catcode`>=\other + \catcode`+=\other + \catcode`-=\other +} -\def\thisfile{} +\def\pushthisfilestack{% + \expandafter\pushthisfilestackX\popthisfilestack\StackTerm +} +\def\pushthisfilestackX{% + \expandafter\pushthisfilestackY\thisfile\StackTerm +} +\def\pushthisfilestackY #1\StackTerm #2\StackTerm {% + \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% +} -% @center line outputs that line, centered +\def\popthisfilestack{\errthisfilestackempty} +\def\errthisfilestackempty{\errmessage{Internal error: + the stack of filenames is empty.}} -\def\center{\parsearg\centerzzz} -\def\centerzzz #1{{\advance\hsize by -\leftskip -\advance\hsize by -\rightskip -\centerline{#1}}} +\def\thisfile{} + +% @center line +% outputs that line, centered. +% +\parseargdef\center{% + \ifhmode + \let\next\centerH + \else + \let\next\centerV + \fi + \next{\hfil \ignorespaces#1\unskip \hfil}% +} +\def\centerH#1{% + {% + \hfil\break + \advance\hsize by -\leftskip + \advance\hsize by -\rightskip + \line{#1}% + \break + }% +} +\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} % @sp n outputs n lines of vertical space -\def\sp{\parsearg\spxxx} -\def\spxxx #1{\vskip #1\baselineskip} +\parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment @@ -796,13 +931,13 @@ % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. -% We cannot implement @paragraphindent asis, though. -% +% NCHARS can also be the word `asis' or `none'. +% We cannot feasibly implement @paragraphindent asis, though. +% \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % -\def\paragraphindent{\parsearg\doparagraphindent} -\def\doparagraphindent#1{% +\parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else @@ -819,8 +954,7 @@ % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. -\def\exampleindent{\parsearg\doexampleindent} -\def\doexampleindent#1{% +\parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else @@ -832,51 +966,138 @@ \fi } +% @firstparagraphindent WORD +% If WORD is `none', then suppress indentation of the first paragraph +% after a section heading. If WORD is `insert', then do indent at such +% paragraphs. +% +% The paragraph indentation is suppressed or not by calling +% \suppressfirstparagraphindent, which the sectioning commands do. +% We switch the definition of this back and forth according to WORD. +% By default, we suppress indentation. +% +\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} +\def\insertword{insert} +% +\parseargdef\firstparagraphindent{% + \def\temp{#1}% + \ifx\temp\noneword + \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent + \else\ifx\temp\insertword + \let\suppressfirstparagraphindent = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @firstparagraphindent option `\temp'}% + \fi\fi +} + +% Here is how we actually suppress indentation. Redefine \everypar to +% \kern backwards by \parindent, and then reset itself to empty. +% +% We also make \indent itself not actually do anything until the next +% paragraph. +% +\gdef\dosuppressfirstparagraphindent{% + \gdef\indent{% + \restorefirstparagraphindent + \indent + }% + \gdef\noindent{% + \restorefirstparagraphindent + \noindent + }% + \global\everypar = {% + \kern -\parindent + \restorefirstparagraphindent + }% +} + +\gdef\restorefirstparagraphindent{% + \global \let \indent = \ptexindent + \global \let \noindent = \ptexnoindent + \global \everypar = {}% +} + + % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. -% We don't use $'s directly in the definition of \math because we need -% to set catcodes according to plain TeX first, to allow for subscripts, -% superscripts, special math chars, etc. -% -% @math does not do math typesetting in section titles, index -% entries, and other such contexts where the catcodes are set before -% @math gets a chance to work. This could perhaps be fixed, but for now -% at least we can have real math in the main text, where it's needed most. -% -\let\implicitmath = $%$ font-lock fix % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ within @math be active (mathcode "8000), and distinguish by seeing -% if the current family is \slfam, which is what @var uses. -% -{\catcode95 = \active % 95 = _ -\gdef\mathunderscore{% - \catcode95=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% -}} -% +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode\underChar = \active + \gdef\mathunderscore{% + \catcode\underChar=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} % Another complication: we want \\ (and @\) to output a \ character. % FYI, plain.tex uses \\ as a temporary control sequence (why?), but % this is not advertised and we don't care. Texinfo does not % otherwise define @\. -% +% % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex - \mathcode`\_="8000 \mathunderscore + \mathunderscore \let\\ = \mathbackslash - \implicitmath\finishmath} -\def\finishmath#1{#1\implicitmath\Etex} + \mathactive + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + } +} % @bullet and @minus need the same treatment as @math, just above. -\def\bullet{\implicitmath\ptexbullet\implicitmath} -\def\minus{\implicitmath-\implicitmath} +\def\bullet{$\ptexbullet$} +\def\minus{$-$} + +% @dots{} outputs an ellipsis using the current font. +% We do .5em per period so that it has the same spacing in a typewriter +% font as three actual period characters. +% +\def\dots{% + \leavevmode + \hbox to 1.5em{% + \hskip 0pt plus 0.25fil + .\hfil.\hfil.% + \hskip 0pt plus 0.5fil + }% +} + +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=3000 +} + +% @comma{} is so commas can be inserted into text without messing up +% Texinfo's parsing. +% +\let\comma = , % @refill is a no-op. \let\refill=\relax @@ -892,20 +1113,20 @@ % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% + \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks - \readauxfile + \tryauxfile + % Open the new aux file. TeX will close it automatically at exit. + \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \global\let\setfilename=\comment % Ignore extra @setfilename cmds. + \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. - % Just to be on the safe side, close the input stream before the \input. \openin 1 texinfo.cnf - \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi - \closein1 - \temp + \ifeof 1 \else \input texinfo.cnf \fi + \closein 1 % \comment % Ignore the actual filename. } @@ -941,17 +1162,23 @@ \newif\ifpdf \newif\ifpdfmakepagedest +% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 +% can be set). So we test for \relax and 0 as well as \undefined, +% borrowed from ifpdf.sty. \ifx\pdfoutput\undefined - \pdffalse - \let\pdfmkdest = \gobble - \let\pdfurl = \gobble - \let\endlink = \relax - \let\linkcolor = \relax - \let\pdfmakeoutlines = \relax \else - \pdftrue - \pdfoutput = 1 + \ifx\pdfoutput\relax + \else + \ifcase\pdfoutput + \else + \pdftrue + \fi + \fi +\fi +% +\ifpdf \input pdfcolor + \pdfcatalog{/PageMode /UseOutlines}% \def\dopdfimage#1#2#3{% \def\imagewidth{#2}% \def\imageheight{#3}% @@ -965,14 +1192,20 @@ \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi \ifnum\pdftexversion<13 - #1.pdf% + #1.pdf% \else {#1.pdf}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} - \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}} + \def\pdfmkdest#1{{% + % We have to set dummies so commands such as @code in a section title + % aren't expanded. + \atdummies + \normalturnoffactive + \pdfdest name{#1} xyz% + }} \def\pdfmkpgn#1{#1} \let\linkcolor = \Blue % was Cyan, but that seems light? \def\endlink{\Black\pdfendlink} @@ -981,49 +1214,94 @@ \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax - \advance\tempnum by1 + \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} - \def\pdfmakeoutlines{{% - \openin 1 \jobname.toc - \ifeof 1\else\begingroup - \closein 1 - \indexnofonts - \def\tt{} - \let\_ = \normalunderscore - % Thanh's hack / proper braces in bookmarks + % + % #1 is the section text. #2 is the pdf expression for the number + % of subentries (or empty, for subsubsections). #3 is the node + % text, which might be empty if this toc entry had no + % corresponding node. #4 is the page number. + % + \def\dopdfoutline#1#2#3#4{% + % Generate a link to the node text if that exists; else, use the + % page number. We could generate a destination for the section + % text in the case where a section has no node, but it doesn't + % seem worthwhile, since most documents are normally structured. + \def\pdfoutlinedest{#3}% + \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi + % + \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}% + } + % + \def\pdfmakeoutlines{% + \begingroup + % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % - \def\chapentry ##1##2##3{} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{} - \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} - \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} - \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} + % Read toc silently, to get counts of subentries for \pdfoutline. + \def\numchapentry##1##2##3##4{% + \def\thischapnum{##2}% + \let\thissecnum\empty + \let\thissubsecnum\empty + }% + \def\numsecentry##1##2##3##4{% + \advancenumber{chap\thischapnum}% + \def\thissecnum{##2}% + \let\thissubsecnum\empty + }% + \def\numsubsecentry##1##2##3##4{% + \advancenumber{sec\thissecnum}% + \def\thissubsecnum{##2}% + }% + \def\numsubsubsecentry##1##2##3##4{% + \advancenumber{subsec\thissubsecnum}% + }% + \let\thischapnum\empty + \let\thissecnum\empty + \let\thissubsecnum\empty + % + % use \def rather than \let here because we redefine \chapentry et + % al. a second time, below. + \def\appentry{\numchapentry}% + \def\appsecentry{\numsecentry}% + \def\appsubsecentry{\numsubsecentry}% + \def\appsubsubsecentry{\numsubsubsecentry}% + \def\unnchapentry{\numchapentry}% + \def\unnsecentry{\numsecentry}% + \def\unnsubsecentry{\numsubsecentry}% + \def\unnsubsubsecentry{\numsubsubsecentry}% \input \jobname.toc - \def\chapentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} - \def\secentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} - \def\subsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} - \def\subsubsecentry ##1##2##3##4##5##6{% - \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} + % + % Read toc second time, this time actually producing the outlines. + % The `-' means take the \expnumber as the absolute number of + % subentries, which we calculated on our first read of the .toc above. + % + % We use the node names as the destinations. + \def\numchapentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% + \def\numsecentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% + \def\numsubsecentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% + \def\numsubsubsecentry##1##2##3##4{% count is always zero + \dopdfoutline{##1}{}{##3}{##4}}% + % + % PDF outlines are displayed using system fonts, instead of + % document fonts. Therefore we cannot use special characters, + % since the encoding is unknown. For example, the eogonek from + % Latin 2 (0xea) gets translated to a | character. Info from + % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. + % + % xx to do this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Right + % now, I guess we'll just let the pdf reader have its way. + \indexnofonts + \turnoffactive \input \jobname.toc - \endgroup\fi - }} + \endgroup + } + % \def\makelinks #1,{% \def\params{#1}\def\E{END}% \ifx\params\E @@ -1032,7 +1310,7 @@ \let\nextmakelinks=\makelinks \ifnum\lnkcount>0,\fi \picknum{#1}% - \startlink attr{/Border [0 0 0]} + \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{\the\pgn}}% \linkcolor #1% \advance\lnkcount by 1% @@ -1054,7 +1332,6 @@ \def\ppn#1{\pgn=#1\gobble} \def\ppnn{\pgn=\first} \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} - \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces @@ -1072,22 +1349,21 @@ \def\pdfurl#1{% \begingroup \normalturnoffactive\def\@{@}% - \let\value=\expandablevalue + \makevalueexpandable \leavevmode\Red \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% - % #1 \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% - \expandafter\poptoks\the\toksA|ENDTOKS| + \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 + \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else @@ -1103,20 +1379,44 @@ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \linkcolor #1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} -\fi % \ifx\pdfoutput +\else + \let\pdfmkdest = \gobble + \let\pdfurl = \gobble + \let\endlink = \relax + \let\linkcolor = \relax + \let\pdfmakeoutlines = \relax +\fi % \ifx\pdfoutput \message{fonts,} -% Font-change commands. + +% Change the current font style to #1, remembering it in \curfontstyle. +% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in +% italics, not bold italics. +% +\def\setfontstyle#1{% + \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. + \csname ten#1\endcsname % change the current font +} + +% Select #1 fonts with the current style. +% +\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} + +\def\rm{\fam=0 \setfontstyle{rm}} +\def\it{\fam=\itfam \setfontstyle{it}} +\def\sl{\fam=\slfam \setfontstyle{sl}} +\def\bf{\fam=\bffam \setfontstyle{bf}} +\def\tt{\fam=\ttfam \setfontstyle{tt}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. -% So we set up a \sf analogous to plain's \rm, etc. +% So we set up a \sf. \newfam\sffam -\def\sf{\fam=\sffam \tensf} +\def\sf{\fam=\sffam \setfontstyle{sf}} \let\li = \sf % Sometimes we call it \li, not \sf. -% We don't need math for this one. -\def\ttsl{\tenttsl} +% We don't need math for this font style. +\def\ttsl{\setfontstyle{ttsl}} % Default leading. \newdimen\textleading \textleading = 13.2pt @@ -1167,10 +1467,11 @@ \def\scshape{csc} \def\scbshape{csc} +% Text fonts (11.2pt, magstep1). \newcount\mainmagstep \ifx\bigger\relax % not really supported. - \let\mainmagstep=\magstep1 + \mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else @@ -1178,9 +1479,6 @@ \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \fi -% Instead of cmb10, you many want to use cmbx10. -% cmbx10 is a prettier font on its own, but cmb10 -% looks better when embedded in a line with cmr10. \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} @@ -1190,10 +1488,11 @@ \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep -% A few fonts for @defun, etc. -\setfont\defbf\bxshape{10}{\magstep1} %was 1314 +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstep1} \setfont\deftt\ttshape{10}{\magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} +\setfont\defttsl\ttslshape{10}{\magstep1} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \setfont\smallrm\rmshape{9}{1000} @@ -1219,7 +1518,7 @@ \font\smalleri=cmmi8 \font\smallersy=cmsy8 -% Fonts for title page: +% Fonts for title page (20.4pt): \setfont\titlerm\rmbshape{12}{\magstep3} \setfont\titleit\itbshape{10}{\magstep4} \setfont\titlesl\slbshape{10}{\magstep4} @@ -1231,6 +1530,7 @@ \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} +\def\authortt{\sectt} % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} @@ -1264,11 +1564,21 @@ \setfont\ssecttsl\ttslshape{10}{1315} \setfont\ssecsf\sfbshape{12}{\magstephalf} \let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{\magstep1} +\setfont\ssecsc\scbshape{10}{1315} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 -% The smallcaps and symbol fonts should actually be scaled \magstep1.5, -% but that is not a standard magnification. + +% Reduced fonts for @acro in text (10pt). +\setfont\reducedrm\rmshape{10}{1000} +\setfont\reducedtt\ttshape{10}{1000} +\setfont\reducedbf\bfshape{10}{1000} +\setfont\reducedit\itshape{10}{1000} +\setfont\reducedsl\slshape{10}{1000} +\setfont\reducedsf\sfshape{10}{1000} +\setfont\reducedsc\scshape{10}{1000} +\setfont\reducedttsl\ttslshape{10}{1000} +\font\reducedi=cmmi10 +\font\reducedsy=cmsy10 % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since @@ -1283,56 +1593,95 @@ } % The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this so that font changes will continue to work -% in math mode, where it is the current \fam that is relevant in most -% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam -% \tenbf}, for example. By redefining \tenbf, we obviate the need to -% redefine \bf itself. +% of just \STYLE. We do this because \STYLE needs to also set the +% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire +% \tenSTYLE to set the current font. +% +% Each font-changing command also sets the names \lsize (one size lower) +% and \lllsize (three sizes lower). These relative commands are used in +% the LaTeX logo and acronyms. +% +% This all needs generalizing, badly. +% \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl + \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy + \let\tenttsl=\textttsl + \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl + \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{25pt}} \def\titlefont#1{{\titlefonts\rm #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl + \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl + \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy + \let\tenttsl=\secttsl + \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl + \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy + \let\tenttsl=\ssecttsl + \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} -\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf? +\let\subsubsecfonts = \subsecfonts +\def\reducedfonts{% + \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl + \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc + \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy + \let\tenttsl=\reducedttsl + \def\lsize{small}\def\lllsize{smaller}% + \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl + \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl + \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} -\let\smallexamplefonts = \smallerfonts + +% Set the fonts to use with the @small... environments. +\let\smallexamplefonts = \smallfonts + +% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample +% can fit this many characters: +% 8.5x11=86 smallbook=72 a4=90 a5=69 +% If we use \scriptfonts (8pt), then we can fit this many characters: +% 8.5x11=90+ smallbook=80 a4=90+ a5=77 +% For me, subjectively, the few extra characters that fit aren't worth +% the additional smallness of 8pt. So I'm making the default 9pt. +% +% By the way, for comparison, here's what fits with @example (10pt): +% 8.5x11=71 smallbook=60 a4=75 a5=58 +% +% I wish the USA used A4 paper. +% --karl, 24jan03. + % Set up the default fonts, so we can use them for creating boxes. % -\textfonts +\textfonts \rm % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} @@ -1343,23 +1692,33 @@ % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bxshape{12}{1000} +\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000} +\setfont\shortconttt\ttshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} -\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} +\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else + \ptexslash\fi\fi\fi} +\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} +\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} + +% like \smartslanted except unconditionally uses \ttsl. +% @var is set to this for defun arguments. +\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} + +% like \smartslanted except unconditionally use \sl. We never want +% ttsl for book titles, do we? +\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} \let\i=\smartitalic +\let\slanted=\smartslanted \let\var=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic -\let\cite=\smartslanted \def\b#1{{\bf #1}} \let\strong=\b @@ -1371,11 +1730,21 @@ \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } +% Set sfcode to normal for the chars that usually have another value. +% Can't use plain's \frenchspacing because it uses the `\x notation, and +% sometimes \x has an active definition that messes things up. +% +\catcode`@=11 + \def\frenchspacing{% + \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m + \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + } +\catcode`@=\other + \def\t#1{% {\tt \rawbackslash \frenchspacing #1}% \null } -\let\ttfont=\t \def\samp#1{`\tclose{#1}'\null} \setfont\keyrm\rmshape{8}{1000} \font\keysy=cmsy9 @@ -1416,7 +1785,7 @@ \null } -% We *must* turn on hyphenation at `-' and `_' in \code. +% We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. @@ -1434,10 +1803,6 @@ \catcode`\_=\active \let_\codeunder \codex } - % - % If we end up with any active - characters when handling the index, - % just treat them as a normal -. - \global\def\indexbreaks{\catcode`\-=\active \let-\realdash} } \def\realdash{-} @@ -1461,8 +1826,7 @@ % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). -\def\kbdinputstyle{\parsearg\kbdinputstylexxx} -\def\kbdinputstylexxx#1{% +\parseargdef\kbdinputstyle{% \def\arg{#1}% \ifx\arg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% @@ -1470,15 +1834,17 @@ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% + \else + \errhelp = \EMsimple + \errmessage{Unknown @kbdinputstyle option `\arg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} -% Default is kbdinputdistinct. (Too much of a hassle to call the macro, -% the catcodes are wrong for parsearg to work.) -\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} +% Default is `distinct.' +\kbdinputstyle distinct \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% @@ -1486,8 +1852,8 @@ \else{\tclose{\kbdfont\look}}\fi \else{\tclose{\kbdfont\look}}\fi} -% For @url, @env, @command quotes seem unnecessary, so use \code. -\let\url=\code +% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. +\let\indicateurl=\code \let\env=\code \let\command=\code @@ -1519,9 +1885,13 @@ \endlink \endgroup} +% @url synonym for @uref, since that's how everyone uses it. +% +\let\url=\uref + % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. -% +% %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} @@ -1560,12 +1930,53 @@ \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font -% @acronym downcases the argument and prints in smallcaps. -\def\acronym#1{{\smallcaps \lowercase{#1}}} +% @acronym for "FBI", "NATO", and the like. +% We print this one point size smaller, since it's intended for +% all-uppercase. +% +\def\acronym#1{\doacronym #1,,\finish} +\def\doacronym#1,#2,#3\finish{% + {\selectfonts\lsize #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi +} + +% @abbr for "Comput. J." and the like. +% No font change, but don't do end-of-sentence spacing. +% +\def\abbr#1{\doabbr #1,,\finish} +\def\doabbr#1,#2,#3\finish{% + {\frenchspacing #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi +} -% @pounds{} is a sterling sign. +% @pounds{} is a sterling sign, which Knuth put in the CM italic font. +% \def\pounds{{\it\$}} +% @registeredsymbol - R in a circle. The font for the R should really +% be smaller yet, but lllsize is the best we can do for now. +% Adapted from the plain.tex definition of \copyright. +% +\def\registeredsymbol{% + $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% + \hfil\crcr\Orb}}% + }$% +} + +% Laurent Siebenmann reports \Orb undefined with: +% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 +% so we'll define it if necessary. +% +\ifx\Orb\undefined +\def\Orb{\mathhexbox20D} +\fi + \message{page headings,} @@ -1584,86 +1995,103 @@ \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue -\def\shorttitlepage{\parsearg\shorttitlepagezzz} -\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% +\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} -\def\titlepage{\begingroup \parindent=0pt \textfonts - \let\subtitlerm=\tenrm - \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% - % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% - % - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % - % Now you can print the title using @title. - \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefonts\rm ##1} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Now you can put text using @subtitle. - \def\subtitle{\parsearg\subtitlezzz}% - \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% - % - % @author should come last, but may come many times. - \def\author{\parsearg\authorzzz}% - \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi - {\authorfont \leftline{##1}}}% - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% +\envdef\titlepage{% + % Open one extra group, as we want to close it in the middle of \Etitlepage. + \begingroup + \parindent=0pt \textfonts + % Leave some space at the very top of the page. + \vglue\titlepagetopglue + % No rule at page bottom unless we print one at the top with @title. + \finishedtitlepagetrue + % + % Most title ``pages'' are actually two pages long, with space + % at the top of the second. We don't want the ragged left on the second. + \let\oldpage = \page + \def\page{% \iffinishedtitlepage\else - \finishtitlepage + \finishtitlepage \fi - \oldpage \let\page = \oldpage - \hbox{}}% -% \def\page{\oldpage \hbox{}} + \page + \null + }% } \def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon - % - % If they want short, they certainly want long too. - \ifsetshortcontentsaftertitlepage - \shortcontents - \contents - \global\let\shortcontents = \relax - \global\let\contents = \relax - \fi - % - \ifsetcontentsaftertitlepage - \contents - \global\let\contents = \relax - \global\let\shortcontents = \relax - \fi + \iffinishedtitlepage\else + \finishtitlepage + \fi + % It is important to do the page break before ending the group, + % because the headline and footline are only empty inside the group. + % If we use the new definition of \page, we always get a blank page + % after the title page, which we certainly don't want. + \oldpage + \endgroup + % + % Need this before the \...aftertitlepage checks so that if they are + % in effect the toc pages will come out with page numbers. + \HEADINGSon + % + % If they want short, they certainly want long too. + \ifsetshortcontentsaftertitlepage + \shortcontents + \contents + \global\let\shortcontents = \relax + \global\let\contents = \relax + \fi + % + \ifsetcontentsaftertitlepage + \contents + \global\let\contents = \relax + \global\let\shortcontents = \relax + \fi } \def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue + \vskip4pt \hrule height 2pt width \hsize + \vskip\titlepagebottomglue + \finishedtitlepagetrue +} + +%%% Macros to be used within @titlepage: + +\let\subtitlerm=\tenrm +\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} + +\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines + \let\tt=\authortt} + +\parseargdef\title{% + \checkenv\titlepage + \leftline{\titlefonts\rm #1} + % print a rule at the page bottom also. + \finishedtitlepagefalse + \vskip4pt \hrule height 4pt width \hsize \vskip4pt } +\parseargdef\subtitle{% + \checkenv\titlepage + {\subtitlefont \rightline{#1}}% +} + +% @author should come last, but may come many times. +% It can also be used inside @quotation. +% +\parseargdef\author{% + \def\temp{\quotation}% + \ifx\thisenv\temp + \def\quotationauthor{#1}% printed in \Equotation. + \else + \checkenv\titlepage + \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi + {\authorfont \leftline{#1}}% + \fi +} + + %%% Set up page headings and footings. \let\thispage=\folio @@ -1673,7 +2101,7 @@ \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages -% Now make Tex use those variables +% Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline @@ -1687,32 +2115,27 @@ % @evenfooting @thisfile|| % @oddfooting ||@thisfile -\def\evenheading{\parsearg\evenheadingxxx} -\def\oddheading{\parsearg\oddheadingxxx} -\def\everyheading{\parsearg\everyheadingxxx} - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\oddfooting{\parsearg\oddfootingxxx} -\def\everyfooting{\parsearg\everyfootingxxx} - -{\catcode`\@=0 % -\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} -\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% +\def\evenheading{\parsearg\evenheadingxxx} +\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} +\def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} -\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% +\def\oddheading{\parsearg\oddheadingxxx} +\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} +\def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% +\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% -\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} -\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% +\def\evenfooting{\parsearg\evenfootingxxx} +\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} +\def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} -\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% +\def\oddfooting{\parsearg\oddfootingxxx} +\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} +\def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume @@ -1721,9 +2144,8 @@ \global\advance\vsize by -\baselineskip } -\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} -% -}% unbind the catcode of @. +\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} + % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. @@ -1737,7 +2159,7 @@ \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\HEADINGSoff{ +\def\HEADINGSoff{% \global\evenheadline={\hfil} \global\evenfootline={\hfil} \global\oddheadline={\hfil} \global\oddfootline={\hfil}} \HEADINGSoff @@ -1746,7 +2168,7 @@ % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. -\def\HEADINGSdouble{ +\def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} @@ -1758,7 +2180,7 @@ % For single-sided printing, chapter title goes across top left of page, % page number on top right. -\def\HEADINGSsingle{ +\def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} @@ -1805,12 +2227,11 @@ % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} -\def\settitle{\parsearg\settitlezzz} -\def\settitlezzz #1{\gdef\thistitle{#1}} +\def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} -% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). +% Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in @@ -1822,7 +2243,7 @@ % used internally for \itemindent minus \itemmargin \newdimen\itemmax -% Note @table, @vtable, and @vtable define @item, @itemx, etc., with +% Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). @@ -1834,22 +2255,10 @@ \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} -\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} -\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} - -\def\internalBkitem{\smallbreak \parsearg\kitemzzz} -\def\internalBkitemx{\itemxpar \parsearg\kitemzzz} - -\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% - \itemzzz {#1}} - -\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% - \itemzzz {#1}} - \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent - \setbox0=\hbox{\itemfont{#1}}% + \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % @@ -1873,10 +2282,14 @@ % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % - % Stop a page break at the \parskip glue coming up. Unfortunately - % we can't prevent a possible page break at the following - % \baselineskip glue. - \nobreak + % Stop a page break at the \parskip glue coming up. However, if + % what follows is an environment such as @example, there will be no + % \parskip glue; then the negative vskip we just inserted would + % cause the example and the item to crash together. So we use this + % bizarre value of 10001 as a signal to \aboveenvbreak to insert + % \parskip glue after all. Section titles are handled this way also. + % + \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else @@ -1895,97 +2308,95 @@ \fi } -\def\item{\errmessage{@item while not in a table}} -\def\itemx{\errmessage{@itemx while not in a table}} -\def\kitem{\errmessage{@kitem while not in a table}} -\def\kitemx{\errmessage{@kitemx while not in a table}} -\def\xitem{\errmessage{@xitem while not in a table}} -\def\xitemx{\errmessage{@xitemx while not in a table}} - -% Contains a kludge to get @end[description] to work. -\def\description{\tablez{\dontindex}{1}{}{}{}{}} +\def\item{\errmessage{@item while not in a list environment}} +\def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. -\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} -{\obeylines\obeyspaces% -\gdef\tablex #1^^M{% -\tabley\dontindex#1 \endtabley}} - -\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} -{\obeylines\obeyspaces% -\gdef\ftablex #1^^M{% -\tabley\fnitemindex#1 \endtabley -\def\Eftable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} -{\obeylines\obeyspaces% -\gdef\vtablex #1^^M{% -\tabley\vritemindex#1 \endtabley -\def\Evtable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\dontindex #1{} -\def\fnitemindex #1{\doind {fn}{\code{#1}}}% -\def\vritemindex #1{\doind {vr}{\code{#1}}}% - -{\obeyspaces % -\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% -\tablez{#1}{#2}{#3}{#4}{#5}{#6}}} - -\def\tablez #1#2#3#4#5#6{% -\aboveenvbreak % -\begingroup % -\def\Edescription{\Etable}% Necessary kludge. -\let\itemindex=#1% -\ifnum 0#3>0 \advance \leftskip by #3\mil \fi % -\ifnum 0#4>0 \tableindent=#4\mil \fi % -\ifnum 0#5>0 \advance \rightskip by #5\mil \fi % -\def\itemfont{#2}% -\itemmax=\tableindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \tableindent % -\exdentamount=\tableindent -\parindent = 0pt -\parskip = \smallskipamount -\ifdim \parskip=0pt \parskip=2pt \fi% -\def\Etable{\endgraf\afterenvbreak\endgroup}% -\let\item = \internalBitem % -\let\itemx = \internalBitemx % -\let\kitem = \internalBkitem % -\let\kitemx = \internalBkitemx % -\let\xitem = \internalBxitem % -\let\xitemx = \internalBxitemx % +\envdef\table{% + \let\itemindex\gobble + \tablex +} +\envdef\ftable{% + \def\itemindex ##1{\doind {fn}{\code{##1}}}% + \tablex +} +\envdef\vtable{% + \def\itemindex ##1{\doind {vr}{\code{##1}}}% + \tablex +} +\def\tablex#1{% + \def\itemindicate{#1}% + \parsearg\tabley +} +\def\tabley#1{% + {% + \makevalueexpandable + \edef\temp{\noexpand\tablez #1\space\space\space}% + \expandafter + }\temp \endtablez } +\def\tablez #1 #2 #3 #4\endtablez{% + \aboveenvbreak + \ifnum 0#1>0 \advance \leftskip by #1\mil \fi + \ifnum 0#2>0 \tableindent=#2\mil \fi + \ifnum 0#3>0 \advance \rightskip by #3\mil \fi + \itemmax=\tableindent + \advance \itemmax by -\itemmargin + \advance \leftskip by \tableindent + \exdentamount=\tableindent + \parindent = 0pt + \parskip = \smallskipamount + \ifdim \parskip=0pt \parskip=2pt \fi + \let\item = \internalBitem + \let\itemx = \internalBitemx +} +\def\Etable{\endgraf\afterenvbreak} +\let\Eftable\Etable +\let\Evtable\Etable +\let\Eitemize\Etable +\let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno -\def\itemize{\parsearg\itemizezzz} +\envdef\itemize{\parsearg\doitemize} -\def\itemizezzz #1{% - \begingroup % ended by the @end itemize - \itemizey {#1}{\Eitemize} -} - -\def\itemizey #1#2{% -\aboveenvbreak % -\itemmax=\itemindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \itemindent % -\exdentamount=\itemindent -\parindent = 0pt % -\parskip = \smallskipamount % -\ifdim \parskip=0pt \parskip=2pt \fi% -\def#2{\endgraf\afterenvbreak\endgroup}% -\def\itemcontents{#1}% -\let\item=\itemizeitem} +\def\doitemize#1{% + \aboveenvbreak + \itemmax=\itemindent + \advance\itemmax by -\itemmargin + \advance\leftskip by \itemindent + \exdentamount=\itemindent + \parindent=0pt + \parskip=\smallskipamount + \ifdim\parskip=0pt \parskip=2pt \fi + \def\itemcontents{#1}% + % @itemize with no arg is equivalent to @itemize @bullet. + \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi + \let\item=\itemizeitem +} -% Set sfcode to normal for the chars that usually have another value. -% These are `.?!:;,' -\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 - \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } +% Definition of @item while inside @itemize and @enumerate. +% +\def\itemizeitem{% + \advance\itemno by 1 % for enumerations + {\let\par=\endgraf \smallbreak}% reasonable place to break + {% + % If the document has an @itemize directly after a section title, a + % \nobreak will be last on the list, and \sectionheading will have + % done a \vskip-\parskip. In that case, we don't want to zero + % parskip, or the item text will crash with the heading. On the + % other hand, when there is normal text preceding the item (as there + % usually is), we do want to zero parskip, or there would be too much + % space. In that case, we won't have a \nobreak before. At least + % that's the theory. + \ifnum\lastpenalty<10000 \parskip=0in \fi + \noindent + \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% + \vadjust{\penalty 1200}}% not good to break after first line of item. + \flushcr +} % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. @@ -1996,11 +2407,8 @@ % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % -\def\enumerate{\parsearg\enumeratezzz} -\def\enumeratezzz #1{\enumeratey #1 \endenumeratey} +\envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% - \begingroup % ended by the @end enumerate - % % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi @@ -2071,13 +2479,13 @@ }% } -% Call itemizey, adding a period to the first argument and supplying the +% Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 - \itemizey{#1.}\Eenumerate\flushcr + \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg @@ -2088,16 +2496,6 @@ \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} -% Definition of @item while inside @itemize. - -\def\itemizeitem{% -\advance\itemno by 1 -{\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{In hmode at itemizeitem}\fi -{\parskip=0in \hskip 0pt -\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% -\vadjust{\penalty 1200}}% -\flushcr} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 @@ -2124,24 +2522,14 @@ % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. -% -% For those who want to use more than one line's worth of words in -% the preamble, break the line within one argument and it -% will parse correctly, i.e., -% -% @multitable {Column 1 template} {Column 2 template} {Column 3 -% template} -% Not: -% @multitable {Column 1 template} {Column 2 template} -% {Column 3 template} % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. -% @item, @tab, @multitable or @end multitable do not need to be on their -% own lines, but it will not hurt if they are. +% @item, @tab do not need to be on their own lines, but it will not hurt +% if they are. % Sample multitable: @@ -2185,13 +2573,12 @@ \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent -% #1 is the part of the @columnfraction before the decimal point, which -% is presumably either 0 or the empty string (but we don't check, we -% just throw it away). #2 is the decimal part, which we use as the -% percent of \hsize for this column. -\def\pickupwholefraction#1.#2 {% +% #1 is the @columnfraction, usually a decimal number like .5, but might +% be just 1. We just use it, whatever it is. +% +\def\pickupwholefraction#1 {% \global\advance\colcount by 1 - \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}% + \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } @@ -2208,8 +2595,8 @@ \let\go\pickupwholefraction \else \global\advance\colcount by 1 - \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator; - % typically that is always in the input, anyway. + \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a + % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi @@ -2224,18 +2611,33 @@ \go } -% This used to have \hskip1sp. But then the space in a template line is -% not enough. That is bad. So let's go back to just & until we -% encounter the problem it was intended to solve again. -% --karl, nathan@acm.org, 20apr99. -\def\tab{&} +% multitable-only commands. +% +% @headitem starts a heading row, which we typeset in bold. +% Assignments have to be global since we are inside the implicit group +% of an alignment entry. Note that \everycr resets \everytab. +\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% +% +% A \tab used to include \hskip1sp. But then the space in a template +% line is not enough. That is bad. So let's go back to just `&' until +% we encounter the problem it was intended to solve again. +% --karl, nathan@acm.org, 20apr99. +\def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % -\def\multitable{\parsearg\dotable} -\def\dotable#1{\bgroup +\newtoks\everytab % insert after every tab. +% +\envdef\multitable{% \vskip\parskip - \let\item\crcr + \startsavinginserts + % + % @item within a multitable starts a normal row. + % We use \def instead of \let so that if one of the multitable entries + % contains an @itemize, we don't choke on the \item (seen as \crcr aka + % \endtemplate) expanding \doitemize. + \def\item{\crcr}% + % \tolerance=9500 \hbadness=9500 \setmultitablespacing @@ -2243,66 +2645,80 @@ \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 - \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% % + \everycr = {% + \noalign{% + \global\everytab={}% + \global\colcount=0 % Reset the column counter. + % Check for saved footnotes, etc. + \checkinserts + % Keeps underfull box messages off when table breaks over pages. + %\filbreak + % Maybe so, but it also creates really weird page breaks when the + % table breaks over pages. Wouldn't \vfil be better? Wait until the + % problem manifests itself, so it can be fixed for real --karl. + }% + }% + % + \parsearg\domultitable +} +\def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % - % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. - % The table preamble - % looks at the current \colcount to find the correct column width. - \everycr{\noalign{% - % - % \filbreak%% keeps underfull box messages off when table breaks over pages. - % Maybe so, but it also creates really weird page breaks when the table - % breaks over pages. Wouldn't \vfil be better? Wait until the problem - % manifests itself, so it can be fixed for real --karl. - \global\colcount=0\relax}}% - % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. - \halign\bgroup&\global\advance\colcount by 1\relax - \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname - % - % In order to keep entries from bumping into each other - % we will add a \leftskip of \multitablecolspace to all columns after - % the first one. - % - % If a template has been used, we will add \multitablecolspace - % to the width of each template entry. - % - % If the user has set preamble in terms of percent of \hsize we will - % use that dimension as the width of the column, and the \leftskip - % will keep entries from bumping into each other. Table will start at - % left margin and final column will justify at right margin. - % - % Make sure we don't inherit \rightskip from the outer environment. - \rightskip=0pt - \ifnum\colcount=1 - % The first column will be indented with the surrounding text. - \advance\hsize by\leftskip - \else - \ifsetpercent \else - % If user has not set preamble in terms of percent of \hsize - % we will advance \hsize by \multitablecolspace. - \advance\hsize by \multitablecolspace - \fi - % In either case we will make \leftskip=\multitablecolspace: - \leftskip=\multitablecolspace - \fi - % Ignoring space at the beginning and end avoids an occasional spurious - % blank line, when TeX decides to break the line at the space before the - % box from the multistrut, so the strut ends up on a line by itself. - % For example: - % @multitable @columnfractions .11 .89 - % @item @code{#} - % @tab Legal holiday which is valid in major parts of the whole country. - % Is automatically provided with highlighting sequences respectively marking - % characters. - \noindent\ignorespaces##\unskip\multistrut}\cr + \halign\bgroup &% + \global\advance\colcount by 1 + \multistrut + \vtop{% + % Use the current \colcount to find the correct column width: + \hsize=\expandafter\csname col\the\colcount\endcsname + % + % In order to keep entries from bumping into each other + % we will add a \leftskip of \multitablecolspace to all columns after + % the first one. + % + % If a template has been used, we will add \multitablecolspace + % to the width of each template entry. + % + % If the user has set preamble in terms of percent of \hsize we will + % use that dimension as the width of the column, and the \leftskip + % will keep entries from bumping into each other. Table will start at + % left margin and final column will justify at right margin. + % + % Make sure we don't inherit \rightskip from the outer environment. + \rightskip=0pt + \ifnum\colcount=1 + % The first column will be indented with the surrounding text. + \advance\hsize by\leftskip + \else + \ifsetpercent \else + % If user has not set preamble in terms of percent of \hsize + % we will advance \hsize by \multitablecolspace. + \advance\hsize by \multitablecolspace + \fi + % In either case we will make \leftskip=\multitablecolspace: + \leftskip=\multitablecolspace + \fi + % Ignoring space at the beginning and end avoids an occasional spurious + % blank line, when TeX decides to break the line at the space before the + % box from the multistrut, so the strut ends up on a line by itself. + % For example: + % @multitable @columnfractions .11 .89 + % @item @code{#} + % @tab Legal holiday which is valid in major parts of the whole country. + % Is automatically provided with highlighting sequences respectively + % marking characters. + \noindent\ignorespaces##\unskip\multistrut + }\cr +} +\def\Emultitable{% + \crcr + \egroup % end the \halign + \global\setpercentfalse } \def\setmultitablespacing{% test to see if user has set \multitablelinespace. @@ -2334,294 +2750,172 @@ \message{conditionals,} -% Prevent errors for section commands. -% Used in @ignore and in failing conditionals. -\def\ignoresections{% - \let\chapter=\relax - \let\unnumbered=\relax - \let\top=\relax - \let\unnumberedsec=\relax - \let\unnumberedsection=\relax - \let\unnumberedsubsec=\relax - \let\unnumberedsubsection=\relax - \let\unnumberedsubsubsec=\relax - \let\unnumberedsubsubsection=\relax - \let\section=\relax - \let\subsec=\relax - \let\subsubsec=\relax - \let\subsection=\relax - \let\subsubsection=\relax - \let\appendix=\relax - \let\appendixsec=\relax - \let\appendixsection=\relax - \let\appendixsubsec=\relax - \let\appendixsubsection=\relax - \let\appendixsubsubsec=\relax - \let\appendixsubsubsection=\relax - \let\contents=\relax - \let\smallbook=\relax - \let\titlepage=\relax -} - -% Used in nested conditionals, where we have to parse the Texinfo source -% and so want to turn off most commands, in case they are used -% incorrectly. -% -\def\ignoremorecommands{% - \let\defcodeindex = \relax - \let\defcv = \relax - \let\deffn = \relax - \let\deffnx = \relax - \let\defindex = \relax - \let\defivar = \relax - \let\defmac = \relax - \let\defmethod = \relax - \let\defop = \relax - \let\defopt = \relax - \let\defspec = \relax - \let\deftp = \relax - \let\deftypefn = \relax - \let\deftypefun = \relax - \let\deftypeivar = \relax - \let\deftypeop = \relax - \let\deftypevar = \relax - \let\deftypevr = \relax - \let\defun = \relax - \let\defvar = \relax - \let\defvr = \relax - \let\ref = \relax - \let\xref = \relax - \let\printindex = \relax - \let\pxref = \relax - \let\settitle = \relax - \let\setchapternewpage = \relax - \let\setchapterstyle = \relax - \let\everyheading = \relax - \let\evenheading = \relax - \let\oddheading = \relax - \let\everyfooting = \relax - \let\evenfooting = \relax - \let\oddfooting = \relax - \let\headings = \relax - \let\include = \relax - \let\lowersections = \relax - \let\down = \relax - \let\raisesections = \relax - \let\up = \relax - \let\set = \relax - \let\clear = \relax - \let\item = \relax -} -% Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, -% @direntry, and @documentdescription. +% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, +% @ifnotxml always succeed. They currently do nothing; we don't +% attempt to check whether the conditionals are properly nested. But we +% have to remember that they are conditionals, so that @end doesn't +% attempt to close an environment group. +% +\def\makecond#1{% + \expandafter\let\csname #1\endcsname = \relax + \expandafter\let\csname iscond.#1\endcsname = 1 +} +\makecond{iftex} +\makecond{ifnotdocbook} +\makecond{ifnothtml} +\makecond{ifnotinfo} +\makecond{ifnotplaintext} +\makecond{ifnotxml} + +% Ignore @ignore, @ifhtml, @ifinfo, and the like. % -\def\ignore{\doignore{ignore}} +\def\direntry{\doignore{direntry}} +\def\documentdescription{\doignore{documentdescription}} +\def\docbook{\doignore{docbook}} +\def\html{\doignore{html}} +\def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} -\def\ifplaintext{\doignore{ifplaintext}} \def\ifnottex{\doignore{ifnottex}} -\def\html{\doignore{html}} +\def\ifplaintext{\doignore{ifplaintext}} +\def\ifxml{\doignore{ifxml}} +\def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} -\def\direntry{\doignore{direntry}} -\def\documentdescription{\doignore{documentdescription}} -\def\documentdescriptionword{documentdescription} - -% @dircategory CATEGORY -- specify a category of the dir file -% which this file should belong to. Ignore this in TeX. -\let\dircategory = \comment +\def\xml{\doignore{xml}} -% Ignore text until a line `@end #1'. +% Ignore text until a line `@end #1', keeping track of nested conditionals. % +% A count to remember the depth of nesting. +\newcount\doignorecount + \def\doignore#1{\begingroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define a command to swallow text until we reach `@end #1'. - % This @ is a catcode 12 token (that is the normal catcode of @ in - % this texinfo.tex file). We change the catcode of @ below to match. - \long\def\doignoretext##1@end #1{\enddoignore}% + % Scan in ``verbatim'' mode: + \catcode`\@ = \other + \catcode`\{ = \other + \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. - \catcode32 = 10 + \spaceisspace % - % Ignore braces, too, so mismatched braces don't cause trouble. - \catcode`\{ = 9 - \catcode`\} = 9 - % - % We must not have @c interpreted as a control sequence. - \catcode`\@ = 12 - % - \def\ignoreword{#1}% - \ifx\ignoreword\documentdescriptionword - % The c kludge breaks documentdescription, since - % `documentdescription' contains a `c'. Means not everything will - % be ignored inside @documentdescription, but oh well... - \else - % Make the letter c a comment character so that the rest of the line - % will be ignored. This way, the document can have (for example) - % @c @end ifinfo - % and the @end ifinfo will be properly ignored. - % (We've just changed @ to catcode 12.) - \catcode`\c = 14 - \fi - % - % And now expand the command defined above. - \doignoretext -} - -% What we do to finish off ignored text. -% -\def\enddoignore{\endgroup\ignorespaces}% - -\newif\ifwarnedobs\warnedobsfalse -\def\obstexwarn{% - \ifwarnedobs\relax\else - % We need to warn folks that they may have trouble with TeX 3.0. - % This uses \immediate\write16 rather than \message to get newlines. - \immediate\write16{} - \immediate\write16{WARNING: for users of Unix TeX 3.0!} - \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} - \immediate\write16{If you are running another version of TeX, relax.} - \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} - \immediate\write16{ Then upgrade your TeX installation if you can.} - \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)} - \immediate\write16{If you are stuck with version 3.0, run the} - \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} - \immediate\write16{ to use a workaround.} - \immediate\write16{} - \global\warnedobstrue - \fi -} - -% **In TeX 3.0, setting text in \nullfont hangs tex. For a -% workaround (which requires the file ``dummy.tfm'' to be installed), -% uncomment the following line: -%%%%%\font\nullfont=dummy\let\obstexwarn=\relax - -% Ignore text, except that we keep track of conditional commands for -% purposes of nesting, up to an `@end #1' command. -% -\def\nestedignore#1{% - \obstexwarn - % We must actually expand the ignored text to look for the @end - % command, so that nested ignore constructs work. Thus, we put the - % text into a \vbox and then do nothing with the result. To minimize - % the change of memory overflow, we follow the approach outlined on - % page 401 of the TeXbook: make the current font be a dummy font. - % - \setbox0 = \vbox\bgroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define `@end #1' to end the box, which will in turn undefine the - % @end command again. - \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% - % - % We are going to be parsing Texinfo commands. Most cause no - % trouble when they are used incorrectly, but some commands do - % complicated argument parsing or otherwise get confused, so we - % undefine them. - % - % We can't do anything about stray @-signs, unfortunately; - % they'll produce `undefined control sequence' errors. - \ignoremorecommands - % - % Set the current font to be \nullfont, a TeX primitive, and define - % all the font commands to also use \nullfont. We don't use - % dummy.tfm, as suggested in the TeXbook, because not all sites - % might have that installed. Therefore, math mode will still - % produce output, but that should be an extremely small amount of - % stuff compared to the main input. - % - \nullfont - \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont - \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont - \let\tensf=\nullfont - % Similarly for index fonts. - \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont - \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont - \let\smallsf=\nullfont - % Similarly for smallexample fonts. - \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont - \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont - \let\smallersf=\nullfont - % - % Don't complain when characters are missing from the fonts. - \tracinglostchars = 0 - % - % Don't bother to do space factor calculations. - \frenchspacing - % - % Don't report underfull hboxes. - \hbadness = 10000 + % Count number of #1's that we've seen. + \doignorecount = 0 + % + % Swallow text until we reach the matching `@end #1'. + \dodoignore{#1}% +} + +{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. + \obeylines % + % + \gdef\dodoignore#1{% + % #1 contains the command name as a string, e.g., `ifinfo'. % - % Do minimal line-breaking. - \pretolerance = 10000 + % Define a command to find the next `@end #1', which must be on a line + % by itself. + \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% + % And this command to find another #1 command, at the beginning of a + % line. (Otherwise, we would consider a line `@c @ifset', for + % example, to count as an @ifset for nesting.) + \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % - % Do not execute instructions in @tex - \def\tex{\doignore{tex}}% - % Do not execute macro definitions. - % `c' is a comment character, so the word `macro' will get cut off. - \def\macro{\doignore{ma}}% + % And now expand that command. + \obeylines % + \doignoretext ^^M% + }% +} + +\def\doignoreyyy#1{% + \def\temp{#1}% + \ifx\temp\empty % Nothing found. + \let\next\doignoretextzzz + \else % Found a nested condition, ... + \advance\doignorecount by 1 + \let\next\doignoretextyyy % ..., look for another. + % If we're here, #1 ends with ^^M\ifinfo (for example). + \fi + \next #1% the token \_STOP_ is present just after this macro. +} + +% We have to swallow the remaining "\_STOP_". +% +\def\doignoretextzzz#1{% + \ifnum\doignorecount = 0 % We have just found the outermost @end. + \let\next\enddoignore + \else % Still inside a nested condition. + \advance\doignorecount by -1 + \let\next\doignoretext % Look for the next @end. + \fi + \next } +% Finish off ignored text. +\def\enddoignore{\endgroup\ignorespaces} + + % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we -% didn't need it. Make sure the catcode of space is correct to avoid -% losing inside @example, for instance. +% didn't need it. +% We rely on the fact that \parsearg sets \catcode`\ =10. % -\def\set{\begingroup\catcode` =10 - \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. - \parsearg\setxxx} -\def\setxxx#1{\setyyy#1 \endsetyyy} +\parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% - \def\temp{#2}% - \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty - \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. - \fi - \endgroup + {% + \makevalueexpandable + \def\temp{#2}% + \edef\next{\gdef\makecsname{SET#1}}% + \ifx\temp\empty + \next{}% + \else + \setzzz#2\endsetzzz + \fi + }% } -% Can't use \xdef to pre-expand #2 and save some time, since \temp or -% \next or other control sequences that we've defined might get us into -% an infinite loop. Consider `@set foo @cite{bar}'. -\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} +% Remove the trailing space \setxxx inserted. +\def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % -\def\clear{\parsearg\clearxxx} -\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} +\parseargdef\clear{% + {% + \makevalueexpandable + \global\expandafter\let\csname SET#1\endcsname=\relax + }% +} % @value{foo} gets the text saved in variable foo. +\def\value{\begingroup\makevalueexpandable\valuexxx} +\def\valuexxx#1{\expandablevalue{#1}\endgroup} { - \catcode`\_ = \active + \catcode`\- = \active \catcode`\_ = \active % - % We might end up with active _ or - characters in the argument if - % we're called from @code, as @code{@value{foo-bar_}}. So \let any - % such active characters to their normal equivalents. - \gdef\value{\begingroup - \catcode`\-=12 \catcode`\_=12 - \indexbreaks \let_\normalunderscore - \valuexxx} + \gdef\makevalueexpandable{% + \let\value = \expandablevalue + % We don't want these characters active, ... + \catcode`\-=\other \catcode`\_=\other + % ..., but we might end up with active ones in the argument if + % we're called from @code, as @code{@value{foo-bar_}}, though. + % So \let them to their normal equivalents. + \let-\realdash \let_\normalunderscore + } } -\def\valuexxx#1{\expandablevalue{#1}\endgroup} % We have this subroutine so that we can handle at least some @value's -% properly in indexes (we \let\value to this in \indexdummies). Ones -% whose names contain - or _ still won't work, but we can't do anything -% about that. The command has to be fully expandable, since the result -% winds up in the index file. This means that if the variable's value -% contains other Texinfo commands, it's almost certain it will fail -% (although perhaps we could fix that with sufficient work to do a -% one-level expansion on the result, instead of complete). +% properly in indexes (we call \makevalueexpandable in \indexdummies). +% The command has to be fully expandable (if the variable is set), since +% the result winds up in the index file. This means that if the +% variable's value contains other Texinfo commands, it's almost certain +% it will fail (although perhaps we could fix that with sufficient work +% to do a one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% + \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi @@ -2630,68 +2924,36 @@ % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % -\def\ifset{\parsearg\ifsetxxx} -\def\ifsetxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifsetfail - \else - \expandafter\ifsetsucceed - \fi +% To get special treatment of `@end ifset,' call \makeond and the redefine. +% +\makecond{ifset} +\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} +\def\doifset#1#2{% + {% + \makevalueexpandable + \let\next=\empty + \expandafter\ifx\csname SET#2\endcsname\relax + #1% If not set, redefine \next. + \fi + \expandafter + }\next } -\def\ifsetsucceed{\conditionalsucceed{ifset}} -\def\ifsetfail{\nestedignore{ifset}} -\defineunmatchedend{ifset} +\def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % -\def\ifclear{\parsearg\ifclearxxx} -\def\ifclearxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifclearsucceed - \else - \expandafter\ifclearfail - \fi -} -\def\ifclearsucceed{\conditionalsucceed{ifclear}} -\def\ifclearfail{\nestedignore{ifclear}} -\defineunmatchedend{ifclear} - -% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we -% read the text following, through the first @end iftex (etc.). Make -% `@end iftex' (etc.) valid only after an @iftex. -% -\def\iftex{\conditionalsucceed{iftex}} -\def\ifnothtml{\conditionalsucceed{ifnothtml}} -\def\ifnotinfo{\conditionalsucceed{ifnotinfo}} -\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} -\defineunmatchedend{iftex} -\defineunmatchedend{ifnothtml} -\defineunmatchedend{ifnotinfo} -\defineunmatchedend{ifnotplaintext} - -% We can't just want to start a group at @iftex (etc.) and end it at -% @end iftex, since then @set commands inside the conditional have no -% effect (they'd get reverted at the end of the group). So we must -% define \Eiftex to redefine itself to be its previous value. (We can't -% just define it to fail again with an ``unmatched end'' error, since -% the @ifset might be nested.) -% -\def\conditionalsucceed#1{% - \edef\temp{% - % Remember the current value of \E#1. - \let\nece{prevE#1} = \nece{E#1}% - % - % At the `@end #1', redefine \E#1 to be its previous value. - \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% - }% - \temp -} +% The `\else' inside the `\doifset' parameter is a trick to reuse the +% above code: if the variable is not set, do nothing, if it is set, +% then redefine \next to \ifclearfail. +% +\makecond{ifclear} +\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} +\def\ifclearfail{\doignore{ifclear}} -% We need to expand lots of \csname's, but we don't want to expand the -% control sequences after we've constructed them. -% -\def\nece#1{\expandafter\noexpand\csname#1\endcsname} +% @dircategory CATEGORY -- specify a category of the dir file +% which this file should belong to. Ignore this in TeX. +\let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment @@ -2742,10 +3004,10 @@ % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. -% +% % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. -% +% \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} @@ -2784,284 +3046,402 @@ \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} -% Take care of texinfo commands likely to appear in an index entry. -% (Must be a way to avoid doing expansion at all, and thus not have to -% laboriously list every single command here.) -% +% Take care of Texinfo commands that can appear in an index entry. +% Since there are some commands we want to expand, and others we don't, +% we have to laboriously prevent expansion for those that we don't. +% \def\indexdummies{% -\def\ { }% -\def\@{@}% change to @@ when we switch to @ as escape char in aux files. -% Need these in case \tex is in effect and \{ is a \delimiter again. -% But can't use \lbracecmd and \rbracecmd because texindex assumes -% braces and backslashes are used only as delimiters. -\let\{ = \mylbrace -\let\} = \myrbrace -\def\_{{\realbackslash _}}% -\normalturnoffactive -% -% Take care of the plain tex accent commands. -\def\,##1{\realbackslash ,{##1}}% -\def\"{\realbackslash "}% -\def\`{\realbackslash `}% -\def\'{\realbackslash '}% -\def\^{\realbackslash ^}% -\def\~{\realbackslash ~}% -\def\={\realbackslash =}% -\def\b{\realbackslash b}% -\def\c{\realbackslash c}% -\def\d{\realbackslash d}% -\def\u{\realbackslash u}% -\def\v{\realbackslash v}% -\def\H{\realbackslash H}% -\def\dotless##1{\realbackslash dotless {##1}}% -% Take care of the plain tex special European modified letters. -\def\AA{\realbackslash AA}% -\def\AE{\realbackslash AE}% -\def\L{\realbackslash L}% -\def\OE{\realbackslash OE}% -\def\O{\realbackslash O}% -\def\aa{\realbackslash aa}% -\def\ae{\realbackslash ae}% -\def\l{\realbackslash l}% -\def\oe{\realbackslash oe}% -\def\o{\realbackslash o}% -\def\ss{\realbackslash ss}% -% -% Although these internals commands shouldn't show up, sometimes they do. -\def\bf{\realbackslash bf }% -\def\gtr{\realbackslash gtr}% -\def\hat{\realbackslash hat}% -\def\less{\realbackslash less}% -%\def\rm{\realbackslash rm }% -\def\sf{\realbackslash sf}% -\def\sl{\realbackslash sl }% -\def\tclose##1{\realbackslash tclose {##1}}% -\def\tt{\realbackslash tt}% -% -\def\b##1{\realbackslash b {##1}}% -\def\i##1{\realbackslash i {##1}}% -\def\sc##1{\realbackslash sc {##1}}% -\def\t##1{\realbackslash t {##1}}% -\def\r##1{\realbackslash r {##1}}% -% -\def\TeX{\realbackslash TeX}% -\def\acronym##1{\realbackslash acronym {##1}}% -\def\cite##1{\realbackslash cite {##1}}% -\def\code##1{\realbackslash code {##1}}% -\def\command##1{\realbackslash command {##1}}% -\def\dfn##1{\realbackslash dfn {##1}}% -\def\dots{\realbackslash dots }% -\def\emph##1{\realbackslash emph {##1}}% -\def\env##1{\realbackslash env {##1}}% -\def\file##1{\realbackslash file {##1}}% -\def\kbd##1{\realbackslash kbd {##1}}% -\def\key##1{\realbackslash key {##1}}% -\def\math##1{\realbackslash math {##1}}% -\def\option##1{\realbackslash option {##1}}% -\def\samp##1{\realbackslash samp {##1}}% -\def\strong##1{\realbackslash strong {##1}}% -\def\uref##1{\realbackslash uref {##1}}% -\def\url##1{\realbackslash url {##1}}% -\def\var##1{\realbackslash var {##1}}% -\def\w{\realbackslash w }% -% -% These math commands don't seem likely to be used in index entries. -\def\copyright{\realbackslash copyright}% -\def\equiv{\realbackslash equiv}% -\def\error{\realbackslash error}% -\def\expansion{\realbackslash expansion}% -\def\point{\realbackslash point}% -\def\print{\realbackslash print}% -\def\result{\realbackslash result}% -% -% Handle some cases of @value -- where the variable name does not -% contain - or _, and the value does not contain any -% (non-fully-expandable) commands. -\let\value = \expandablevalue -% -\unsepspaces -% Turn off macro expansion -\turnoffmacros -} - -% If an index command is used in an @example environment, any spaces -% therein should become regular spaces in the raw index file, not the -% expansion of \tie (\leavevmode \penalty \@M \ ). -{\obeyspaces - \gdef\unsepspaces{\obeyspaces\let =\space}} - -% \indexnofonts no-ops all font-change commands. -% This is used when outputting the strings to sort the index by. -\def\indexdummyfont#1{#1} -\def\indexdummytex{TeX} -\def\indexdummydots{...} + \def\@{@}% change to @@ when we switch to @ as escape char in index files. + \def\ {\realbackslash\space }% + % Need these in case \tex is in effect and \{ is a \delimiter again. + % But can't use \lbracecmd and \rbracecmd because texindex assumes + % braces and backslashes are used only as delimiters. + \let\{ = \mylbrace + \let\} = \myrbrace + % + % \definedummyword defines \#1 as \realbackslash #1\space, thus + % effectively preventing its expansion. This is used only for control + % words, not control letters, because the \space would be incorrect + % for control characters, but is needed to separate the control word + % from whatever follows. + % + % For control letters, we have \definedummyletter, which omits the + % space. + % + % These can be used both for control words that take an argument and + % those that do not. If it is followed by {arg} in the input, then + % that will dutifully get written to the index (or wherever). + % + \def\definedummyword##1{% + \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% + }% + \def\definedummyletter##1{% + \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% + }% + \let\definedummyaccent\definedummyletter + % + % Do the redefinitions. + \commondummies +} -\def\indexnofonts{% -\def\@{@}% -% how to handle braces? -\def\_{\normalunderscore}% -% -\let\,=\indexdummyfont -\let\"=\indexdummyfont -\let\`=\indexdummyfont -\let\'=\indexdummyfont -\let\^=\indexdummyfont -\let\~=\indexdummyfont -\let\==\indexdummyfont -\let\b=\indexdummyfont -\let\c=\indexdummyfont -\let\d=\indexdummyfont -\let\u=\indexdummyfont -\let\v=\indexdummyfont -\let\H=\indexdummyfont -\let\dotless=\indexdummyfont -% Take care of the plain tex special European modified letters. -\def\AA{AA}% -\def\AE{AE}% -\def\L{L}% -\def\OE{OE}% -\def\O{O}% -\def\aa{aa}% -\def\ae{ae}% -\def\l{l}% -\def\oe{oe}% -\def\o{o}% -\def\ss{ss}% -% -% Don't no-op \tt, since it isn't a user-level command -% and is used in the definitions of the active chars like <, >, |, etc. -% Likewise with the other plain tex font commands. -%\let\tt=\indexdummyfont -% -\let\b=\indexdummyfont -\let\i=\indexdummyfont -\let\r=\indexdummyfont -\let\sc=\indexdummyfont -\let\t=\indexdummyfont -% -\let\TeX=\indexdummytex -\let\acronym=\indexdummyfont -\let\cite=\indexdummyfont -\let\code=\indexdummyfont -\let\command=\indexdummyfont -\let\dfn=\indexdummyfont -\let\dots=\indexdummydots -\let\emph=\indexdummyfont -\let\env=\indexdummyfont -\let\file=\indexdummyfont -\let\kbd=\indexdummyfont -\let\key=\indexdummyfont -\let\math=\indexdummyfont -\let\option=\indexdummyfont -\let\samp=\indexdummyfont -\let\strong=\indexdummyfont -\let\uref=\indexdummyfont -\let\url=\indexdummyfont -\let\var=\indexdummyfont -\let\w=\indexdummyfont -} - -% To define \realbackslash, we must make \ not be an escape. -% We must first make another character (@) an escape -% so we do not become unable to do a definition. +% For the aux file, @ is the escape character. So we want to redefine +% everything using @ instead of \realbackslash. When everything uses +% @, this will be simpler. +% +\def\atdummies{% + \def\@{@@}% + \def\ {@ }% + \let\{ = \lbraceatcmd + \let\} = \rbraceatcmd + % + % (See comments in \indexdummies.) + \def\definedummyword##1{% + \expandafter\def\csname ##1\endcsname{@##1\space}% + }% + \def\definedummyletter##1{% + \expandafter\def\csname ##1\endcsname{@##1}% + }% + \let\definedummyaccent\definedummyletter + % + % Do the redefinitions. + \commondummies +} + +% Called from \indexdummies and \atdummies. \definedummyword and +% \definedummyletter must be defined first. +% +\def\commondummies{% + % + \normalturnoffactive + % + \commondummiesnofonts + % + \definedummyletter{_}% + % + % Non-English letters. + \definedummyword{AA}% + \definedummyword{AE}% + \definedummyword{L}% + \definedummyword{OE}% + \definedummyword{O}% + \definedummyword{aa}% + \definedummyword{ae}% + \definedummyword{l}% + \definedummyword{oe}% + \definedummyword{o}% + \definedummyword{ss}% + \definedummyword{exclamdown}% + \definedummyword{questiondown}% + \definedummyword{ordf}% + \definedummyword{ordm}% + % + % Although these internal commands shouldn't show up, sometimes they do. + \definedummyword{bf}% + \definedummyword{gtr}% + \definedummyword{hat}% + \definedummyword{less}% + \definedummyword{sf}% + \definedummyword{sl}% + \definedummyword{tclose}% + \definedummyword{tt}% + % + \definedummyword{LaTeX}% + \definedummyword{TeX}% + % + % Assorted special characters. + \definedummyword{bullet}% + \definedummyword{comma}% + \definedummyword{copyright}% + \definedummyword{registeredsymbol}% + \definedummyword{dots}% + \definedummyword{enddots}% + \definedummyword{equiv}% + \definedummyword{error}% + \definedummyword{expansion}% + \definedummyword{minus}% + \definedummyword{pounds}% + \definedummyword{point}% + \definedummyword{print}% + \definedummyword{result}% + % + % Handle some cases of @value -- where it does not contain any + % (non-fully-expandable) commands. + \makevalueexpandable + % + % Normal spaces, not active ones. + \unsepspaces + % + % No macro expansion. + \turnoffmacros +} + +% \commondummiesnofonts: common to \commondummies and \indexnofonts. +% +% Better have this without active chars. +{ + \catcode`\~=\other + \gdef\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter{!}% + \definedummyaccent{"}% + \definedummyaccent{'}% + \definedummyletter{*}% + \definedummyaccent{,}% + \definedummyletter{.}% + \definedummyletter{/}% + \definedummyletter{:}% + \definedummyaccent{=}% + \definedummyletter{?}% + \definedummyaccent{^}% + \definedummyaccent{`}% + \definedummyaccent{~}% + \definedummyword{u}% + \definedummyword{v}% + \definedummyword{H}% + \definedummyword{dotaccent}% + \definedummyword{ringaccent}% + \definedummyword{tieaccent}% + \definedummyword{ubaraccent}% + \definedummyword{udotaccent}% + \definedummyword{dotless}% + % + % Texinfo font commands. + \definedummyword{b}% + \definedummyword{i}% + \definedummyword{r}% + \definedummyword{sc}% + \definedummyword{t}% + % + % Commands that take arguments. + \definedummyword{acronym}% + \definedummyword{cite}% + \definedummyword{code}% + \definedummyword{command}% + \definedummyword{dfn}% + \definedummyword{emph}% + \definedummyword{env}% + \definedummyword{file}% + \definedummyword{kbd}% + \definedummyword{key}% + \definedummyword{math}% + \definedummyword{option}% + \definedummyword{samp}% + \definedummyword{strong}% + \definedummyword{tie}% + \definedummyword{uref}% + \definedummyword{url}% + \definedummyword{var}% + \definedummyword{verb}% + \definedummyword{w}% + } +} -{\catcode`\@=0 \catcode`\\=\other - @gdef@realbackslash{\}} +% \indexnofonts is used when outputting the strings to sort the index +% by, and when constructing control sequence names. It eliminates all +% control sequences and just writes whatever the best ASCII sort string +% would be for a given command (usually its argument). +% +\def\indexnofonts{% + % Accent commands should become @asis. + \def\definedummyaccent##1{% + \expandafter\let\csname ##1\endcsname\asis + }% + % We can just ignore other control letters. + \def\definedummyletter##1{% + \expandafter\def\csname ##1\endcsname{}% + }% + % Hopefully, all control words can become @asis. + \let\definedummyword\definedummyaccent + % + \commondummiesnofonts + % + % Don't no-op \tt, since it isn't a user-level command + % and is used in the definitions of the active chars like <, >, |, etc. + % Likewise with the other plain tex font commands. + %\let\tt=\asis + % + \def\ { }% + \def\@{@}% + % how to handle braces? + \def\_{\normalunderscore}% + % + % Non-English letters. + \def\AA{AA}% + \def\AE{AE}% + \def\L{L}% + \def\OE{OE}% + \def\O{O}% + \def\aa{aa}% + \def\ae{ae}% + \def\l{l}% + \def\oe{oe}% + \def\o{o}% + \def\ss{ss}% + \def\exclamdown{!}% + \def\questiondown{?}% + \def\ordf{a}% + \def\ordm{o}% + % + \def\LaTeX{LaTeX}% + \def\TeX{TeX}% + % + % Assorted special characters. + % (The following {} will end up in the sort string, but that's ok.) + \def\bullet{bullet}% + \def\comma{,}% + \def\copyright{copyright}% + \def\registeredsymbol{R}% + \def\dots{...}% + \def\enddots{...}% + \def\equiv{==}% + \def\error{error}% + \def\expansion{==>}% + \def\minus{-}% + \def\pounds{pounds}% + \def\point{.}% + \def\print{-|}% + \def\result{=>}% + % + % Don't write macro names. + \emptyusermacros +} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? -% For \ifx comparisons. -\def\emptymacro{\empty} - % Most index entries go through here, but \dosubind is the general case. -% -\def\doind#1#2{\dosubind{#1}{#2}\empty} +% #1 is the index name, #2 is the entry text. +\def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- -% \empty if called from \doind, as we usually are. The main exception -% is with defuns, which call us directly. +% empty if called from \doind, as we usually are (the main exception +% is with most defuns, which call us directly). % \def\dosubind#1#2#3{% + \iflinks + {% + % Store the main index entry text (including the third arg). + \toks0 = {#2}% + % If third arg is present, precede it with a space. + \def\thirdarg{#3}% + \ifx\thirdarg\empty \else + \toks0 = \expandafter{\the\toks0 \space #3}% + \fi + % + \edef\writeto{\csname#1indfile\endcsname}% + % + \ifvmode + \dosubindsanitize + \else + \dosubindwrite + \fi + }% + \fi +} + +% Write the entry in \toks0 to the index file: +% +\def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else - \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% + \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi - {% - \count255=\lastpenalty - {% - \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ - {% - \let\folio = 0% We will expand all macros now EXCEPT \folio. - \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now - % so it will be output as is; and it will print as backslash. - % - \def\thirdarg{#3}% - % - % If third arg is present, precede it with space in sort key. - \ifx\thirdarg\emptymacro - \let\subentry = \empty - \else - \def\subentry{ #3}% - \fi - % - % First process the index entry with all font commands turned - % off to get the string to sort by. - {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% - % - % Now the real index entry with the fonts. - \toks0 = {#2}% - % - % If the third (subentry) arg is present, add it to the index - % line to write. - \ifx\thirdarg\emptymacro \else - \toks0 = \expandafter{\the\toks0{#3}}% - \fi - % - % Set up the complete index entry, with both the sort key and - % the original text, including any font commands. We write - % three arguments to \entry to the .?? file (four in the - % subentry case), texindex reduces to two when writing the .??s - % sorted result. - \edef\temp{% - \write\csname#1indfile\endcsname{% - \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% - }% - % - % If a skip is the last thing on the list now, preserve it - % by backing up by \lastskip, doing the \write, then inserting - % the skip again. Otherwise, the whatsit generated by the - % \write will make \lastskip zero. The result is that sequences - % like this: - % @end defun - % @tindex whatever - % @defun ... - % will have extra space inserted, because the \medbreak in the - % start of the @defun won't see the skip inserted by the @end of - % the previous defun. - % - % But don't do any of this if we're not in vertical mode. We - % don't want to do a \vskip and prematurely end a paragraph. - % - % Avoid page breaks due to these extra skips, too. - % - \iflinks - \ifvmode - \skip0 = \lastskip - \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi - \fi - % - \temp % do the write - % - % - \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi - \fi - }% - }% - \penalty\count255 + % + % Remember, we are within a group. + \indexdummies % Must do this here, since \bf, etc expand at this stage + \escapechar=`\\ + \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now + % so it will be output as is; and it will print as backslash. + % + % Process the index entry with all font commands turned off, to + % get the string to sort by. + {\indexnofonts + \edef\temp{\the\toks0}% need full expansion + \xdef\indexsorttmp{\temp}% + }% + % + % Set up the complete index entry, with both the sort key and + % the original text, including any font commands. We write + % three arguments to \entry to the .?? file (four in the + % subentry case), texindex reduces to two when writing the .??s + % sorted result. + \edef\temp{% + \write\writeto{% + \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% + \temp +} + +% Take care of unwanted page breaks: +% +% If a skip is the last thing on the list now, preserve it +% by backing up by \lastskip, doing the \write, then inserting +% the skip again. Otherwise, the whatsit generated by the +% \write will make \lastskip zero. The result is that sequences +% like this: +% @end defun +% @tindex whatever +% @defun ... +% will have extra space inserted, because the \medbreak in the +% start of the @defun won't see the skip inserted by the @end of +% the previous defun. +% +% But don't do any of this if we're not in vertical mode. We +% don't want to do a \vskip and prematurely end a paragraph. +% +% Avoid page breaks due to these extra skips, too. +% +% But wait, there is a catch there: +% We'll have to check whether \lastskip is zero skip. \ifdim is not +% sufficient for this purpose, as it ignores stretch and shrink parts +% of the skip. The only way seems to be to check the textual +% representation of the skip. +% +% The following is almost like \def\zeroskipmacro{0.0pt} except that +% the ``p'' and ``t'' characters have catcode \other, not 11 (letter). +% +\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} +% +% ..., ready, GO: +% +\def\dosubindsanitize{% + % \lastskip and \lastpenalty cannot both be nonzero simultaneously. + \skip0 = \lastskip + \edef\lastskipmacro{\the\lastskip}% + \count255 = \lastpenalty + % + % If \lastskip is nonzero, that means the last item was a + % skip. And since a skip is discardable, that means this + % -\skip0 glue we're inserting is preceded by a + % non-discardable item, therefore it is not a potential + % breakpoint, therefore no \nobreak needed. + \ifx\lastskipmacro\zeroskipmacro + \else + \vskip-\skip0 + \fi + % + \dosubindwrite + % + \ifx\lastskipmacro\zeroskipmacro + % If \lastskip was zero, perhaps the last item was a penalty, and + % perhaps it was >=10000, e.g., a \nobreak. In that case, we want + % to re-insert the same penalty (values >10000 are used for various + % signals); since we just inserted a non-discardable item, any + % following glue (such as a \parskip) would be a breakpoint. For example: + % + % @deffn deffn-whatever + % @vindex index-whatever + % Description. + % would allow a break between the index-whatever whatsit + % and the "Description." paragraph. + \ifnum\count255>9999 \penalty\count255 \fi + \else + % On the other hand, if we had a nonzero \lastskip, + % this make-up glue would be preceded by a non-discardable item + % (the whatsit from the \write), so we must insert a \nobreak. + \nobreak\vskip\skip0 + \fi } % The index entry written in the file actually looks like @@ -3099,13 +3479,12 @@ % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % -\def\printindex{\parsearg\doprintindex} -\def\doprintindex#1{\begingroup +\parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 - \indexbreaks + \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains @@ -3132,7 +3511,7 @@ % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. - \def\indexbackslash{\rawbackslashxx}% + \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns @@ -3154,7 +3533,10 @@ \removelastskip % % We like breaks before the index initials, so insert a bonus. - \penalty -300 + \nobreak + \vskip 0pt plus 3\baselineskip + \penalty 0 + \vskip 0pt plus -3\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column @@ -3164,80 +3546,100 @@ % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% - \vskip .33\baselineskip plus .1\baselineskip - % % Do our best not to break after the initial. \nobreak + \vskip .33\baselineskip plus .1\baselineskip }} -% This typesets a paragraph consisting of #1, dot leaders, and then #2 -% flush to the right margin. It is used for index and table of contents -% entries. The paragraph is indented by \leftskip. -% -\def\entry#1#2{\begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent = 2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % A bit of stretch before each entry for the benefit of balancing columns. - \vskip 0pt plus1pt - % - % Start a ``paragraph'' for the index entry so the line breaking - % parameters we've set above will have an effect. - \noindent - % - % Insert the text of the index entry. TeX will do line-breaking on it. - #1% - % The following is kludged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#2}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd\ \else% - % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. - % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ifpdf - \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. +% \entry typesets a paragraph consisting of the text (#1), dot leaders, and +% then page number (#2) flushed to the right margin. It is used for index +% and table of contents entries. The paragraph is indented by \leftskip. +% +% A straightforward implementation would start like this: +% \def\entry#1#2{... +% But this frozes the catcodes in the argument, and can cause problems to +% @code, which sets - active. This problem was fixed by a kludge--- +% ``-'' was active throughout whole index, but this isn't really right. +% +% The right solution is to prevent \entry from swallowing the whole text. +% --kasal, 21nov03 +\def\entry{% + \begingroup + % + % Start a new paragraph if necessary, so our assignments below can't + % affect previous text. + \par + % + % Do not fill out the last line with white space. + \parfillskip = 0in + % + % No extra space above this paragraph. + \parskip = 0in + % + % Do not prefer a separate line ending with a hyphen to fewer lines. + \finalhyphendemerits = 0 + % + % \hangindent is only relevant when the entry text and page number + % don't both fit on one line. In that case, bob suggests starting the + % dots pretty far over on the line. Unfortunately, a large + % indentation looks wrong when the entry text itself is broken across + % lines. So we use a small indentation and put up with long leaders. + % + % \hangafter is reset to 1 (which is the value we want) at the start + % of each paragraph, so we need not do anything with that. + \hangindent = 2em + % + % When the entry text needs to be broken, just fill out the first line + % with blank space. + \rightskip = 0pt plus1fil + % + % A bit of stretch before each entry for the benefit of balancing + % columns. + \vskip 0pt plus1pt + % + % Swallow the left brace of the text (first parameter): + \afterassignment\doentry + \let\temp = +} +\def\doentry{% + \bgroup % Instead of the swallowed brace. + \noindent + \aftergroup\finishentry + % And now comes the text of the entry. +} +\def\finishentry#1{% + % #1 is the page number. + % + % The following is kludged to not output a line of dots in the index if + % there are no page numbers. The next person who breaks this will be + % cursed by a Unix daemon. + \def\tempa{{\rm }}% + \def\tempb{#1}% + \edef\tempc{\tempa}% + \edef\tempd{\tempb}% + \ifx\tempc\tempd + \ % \else - \ #2% The page number ends the paragraph. + % + % If we must, put the page number on a line of its own, and fill out + % this line with blank space. (The \hfil is overwhelmed with the + % fill leaders glue in \indexdotfill if the page number does fit.) + \hfil\penalty50 + \null\nobreak\indexdotfill % Have leaders before the page number. + % + % The `\ ' here is removed by the implicit \unskip that TeX does as + % part of (the primitive) \par. Without it, a spurious underfull + % \hbox ensues. + \ifpdf + \pdfgettoks#1.% + \ \the\toksA + \else + \ #1% + \fi \fi - \fi% - \par -\endgroup} + \par + \endgroup +} % Like \dotfill except takes at least 1 em. \def\indexdotfill{\cleaders @@ -3348,7 +3750,7 @@ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } -% +% % All done with double columns. \def\enddoublecolumns{% \output = {% @@ -3406,6 +3808,12 @@ \message{sectioning,} % Chapters, sections, etc. +% \unnumberedno is an oxymoron, of course. But we count the unnumbered +% sections so that we can refer to them unambiguously in the pdf +% outlines by their "section number". We avoid collisions with chapter +% numbers by starting them at 10000. (If a document ever has 10000 +% chapters, we're in trouble anyway, I'm sure.) +\newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 @@ -3413,9 +3821,12 @@ % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ +% % \def\appendixletter{\char\the\appendixno} -% We do the following for the sake of pdftex, which needs the actual +% We do the following ugly conditional instead of the above simple +% construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. +% \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% @@ -3453,11 +3864,12 @@ % Each @chapter defines this as the name of the chapter. % page headings and footings can use it. @section does likewise. +% However, they are not reliable, because we don't use marks. \def\thischapter{} \def\thissection{} \newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raise/lowersections modify this count +\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} @@ -3467,288 +3879,246 @@ \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name -% Choose a numbered-heading macro -% #1 is heading level if unmodified by @raisesections or @lowersections -% #2 is text for heading -\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \chapterzzz{#2} -\or - \seczzz{#2} -\or - \numberedsubseczzz{#2} -\or - \numberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \chapterzzz{#2} +% we only have subsub. +\chardef\maxseclevel = 3 +% +% A numbered section within an unnumbered changes to unnumbered too. +% To achive this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unmlevel = \maxseclevel +% +% Trace whether the current chapter is an appendix or not: +% \chapheadtype is "N" or "A", unnumbered chapters are ignored. +\def\chapheadtype{N} + +% Choose a heading macro +% #1 is heading type +% #2 is heading level +% #3 is text for heading +\def\genhead#1#2#3{% + % Compute the abs. sec. level: + \absseclevel=#2 + \advance\absseclevel by \secbase + % Make sure \absseclevel doesn't fall outside the range: + \ifnum \absseclevel < 0 + \absseclevel = 0 \else - \numberedsubsubseczzz{#2} + \ifnum \absseclevel > 3 + \absseclevel = 3 + \fi \fi -\fi -} - -% like \numhead, but chooses appendix heading levels -\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \appendixzzz{#2} -\or - \appendixsectionzzz{#2} -\or - \appendixsubseczzz{#2} -\or - \appendixsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \appendixzzz{#2} + % The heading type: + \def\headtype{#1}% + \if \headtype U% + \ifnum \absseclevel < \unmlevel + \chardef\unmlevel = \absseclevel + \fi \else - \appendixsubsubseczzz{#2} + % Check for appendix sections: + \ifnum \absseclevel = 0 + \edef\chapheadtype{\headtype}% + \else + \if \headtype A\if \chapheadtype N% + \errmessage{@appendix... within a non-appendix chapter}% + \fi\fi + \fi + % Check for numbered within unnumbered: + \ifnum \absseclevel > \unmlevel + \def\headtype{U}% + \else + \chardef\unmlevel = 3 + \fi \fi -\fi -} - -% like \numhead, but chooses numberless heading levels -\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \unnumberedzzz{#2} -\or - \unnumberedseczzz{#2} -\or - \unnumberedsubseczzz{#2} -\or - \unnumberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \unnumberedzzz{#2} + % Now print the heading: + \if \headtype U% + \ifcase\absseclevel + \unnumberedzzz{#3}% + \or \unnumberedseczzz{#3}% + \or \unnumberedsubseczzz{#3}% + \or \unnumberedsubsubseczzz{#3}% + \fi \else - \unnumberedsubsubseczzz{#2} + \if \headtype A% + \ifcase\absseclevel + \appendixzzz{#3}% + \or \appendixsectionzzz{#3}% + \or \appendixsubseczzz{#3}% + \or \appendixsubsubseczzz{#3}% + \fi + \else + \ifcase\absseclevel + \chapterzzz{#3}% + \or \seczzz{#3}% + \or \numberedsubseczzz{#3}% + \or \numberedsubsubseczzz{#3}% + \fi + \fi \fi -\fi + \suppressfirstparagraphindent } -% @chapter, @appendix, @unnumbered. -\def\thischaptername{No Chapter Title} -\outer\def\chapter{\parsearg\chapteryyy} -\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% -\chapmacro {#1}{\the\chapno}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -% We don't substitute the actual chapter name into \thischapter -% because we don't want its macros evaluated now. -\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% - {\the\chapno}}}% -\temp -\donoderef -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec -} - -\outer\def\appendix{\parsearg\appendixyyy} -\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \appendixno by 1 -\message{\putwordAppendix\space \appendixletter}% -\chapmacro {#1}{\putwordAppendix{} \appendixletter}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}% - {\appendixletter}}}% -\temp -\appendixnoderef -\global\let\section = \appendixsec -\global\let\subsection = \appendixsubsec -\global\let\subsubsection = \appendixsubsubsec +% an interface: +\def\numhead{\genhead N} +\def\apphead{\genhead A} +\def\unnmhead{\genhead U} + +% @chapter, @appendix, @unnumbered. Increment top-level counter, reset +% all lower-level sectioning counters to zero. +% +% Also set \chaplevelprefix, which we prepend to @float sequence numbers +% (e.g., figures), q.v. By default (before any chapter), that is empty. +\let\chaplevelprefix = \empty +% +\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz +\def\chapterzzz#1{% + % section resetting is \global in case the chapter is in a group, such + % as an @include file. + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\chapno by 1 + % + % Used for \float. + \gdef\chaplevelprefix{\the\chapno.}% + \resetallfloatnos + % + \message{\putwordChapter\space \the\chapno}% + % + % Write the actual heading. + \chapmacro{#1}{Ynumbered}{\the\chapno}% + % + % So @section and the like are numbered underneath this chapter. + \global\let\section = \numberedsec + \global\let\subsection = \numberedsubsec + \global\let\subsubsection = \numberedsubsubsec } -% @centerchap is like @unnumbered, but the heading is centered. -\outer\def\centerchap{\parsearg\centerchapyyy} -\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}} +\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz +\def\appendixzzz#1{% + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\appendixno by 1 + \gdef\chaplevelprefix{\appendixletter.}% + \resetallfloatnos + % + \def\appendixnum{\putwordAppendix\space \appendixletter}% + \message{\appendixnum}% + % + \chapmacro{#1}{Yappendix}{\appendixletter}% + % + \global\let\section = \appendixsec + \global\let\subsection = \appendixsubsec + \global\let\subsubsection = \appendixsubsubsec +} -% @top is like @unnumbered. -\outer\def\top{\parsearg\unnumberedyyy} +\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz +\def\unnumberedzzz#1{% + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\unnumberedno by 1 + % + % Since an unnumbered has no number, no prefix for figures. + \global\let\chaplevelprefix = \empty + \resetallfloatnos + % + % This used to be simply \message{#1}, but TeX fully expands the + % argument to \message. Therefore, if #1 contained @-commands, TeX + % expanded them. For example, in `@unnumbered The @cite{Book}', TeX + % expanded @cite (which turns out to cause errors because \cite is meant + % to be executed, not expanded). + % + % Anyway, we don't want the fully-expanded definition of @cite to appear + % as a result of the \message, we just want `@cite' itself. We use + % \the to achieve this: TeX expands \the only once, + % simply yielding the contents of . (We also do this for + % the toc entries.) + \toks0 = {#1}% + \message{(\the\toks0)}% + % + \chapmacro{#1}{Ynothing}{\the\unnumberedno}% + % + \global\let\section = \unnumberedsec + \global\let\subsection = \unnumberedsubsec + \global\let\subsubsection = \unnumberedsubsubsec +} -\outer\def\unnumbered{\parsearg\unnumberedyyy} -\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -% -% This used to be simply \message{#1}, but TeX fully expands the -% argument to \message. Therefore, if #1 contained @-commands, TeX -% expanded them. For example, in `@unnumbered The @cite{Book}', TeX -% expanded @cite (which turns out to cause errors because \cite is meant -% to be executed, not expanded). -% -% Anyway, we don't want the fully-expanded definition of @cite to appear -% as a result of the \message, we just want `@cite' itself. We use -% \the to achieve this: TeX expands \the only once, -% simply yielding the contents of . (We also do this for -% the toc entries.) -\toks0 = {#1}\message{(\the\toks0)}% -% -\unnumbchapmacro {#1}% -\gdef\thischapter{#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% -\temp -\unnumbnoderef -\global\let\section = \unnumberedsec -\global\let\subsection = \unnumberedsubsec -\global\let\subsubsection = \unnumberedsubsubsec +% @centerchap is like @unnumbered, but the heading is centered. +\outer\parseargdef\centerchap{% + % Well, we could do the following in a group, but that would break + % an assumption that \chapmacro is called at the outermost level. + % Thus we are safer this way: --kasal, 24feb04 + \let\centerparametersmaybe = \centerparameters + \unnmhead0{#1}% + \let\centerparametersmaybe = \relax } +% @top is like @unnumbered. +\let\top\unnumbered + % Sections. -\outer\def\numberedsec{\parsearg\secyyy} -\def\secyyy #1{\numhead1{#1}} % normally calls seczzz -\def\seczzz #1{% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% - {\the\chapno}{\the\secno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsection{\parsearg\appendixsecyyy} -\outer\def\appendixsec{\parsearg\appendixsecyyy} -\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz #1{% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% - {\appendixletter}{\the\secno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} -\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz #1{% -\plainsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% - {\the\toks0}{\the\chapno}}}% -\temp -\unnumbnoderef -\nobreak +\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz +\def\seczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% +} + +\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz +\def\appendixsectionzzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% +} +\let\appendixsec\appendixsection + +\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz +\def\unnumberedseczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. -\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} -\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz #1{% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% - {\the\chapno}{\the\secno}{\the\subsecno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} -\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz #1{% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% - {\appendixletter}{\the\secno}{\the\subsecno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} -\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz #1{% -\plainsubsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}}}% -\temp -\unnumbnoderef -\nobreak +\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz +\def\numberedsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% +} + +\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz +\def\appendixsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Yappendix}% + {\appendixletter.\the\secno.\the\subsecno}% +} + +\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz +\def\unnumberedsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Ynothing}% + {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. -\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} -\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz #1{% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} -\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz #1{% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} -\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz #1{% -\plainsubsubsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% -\temp -\unnumbnoderef -\nobreak -} - -% These are variants which are not "outer", so they can appear in @ifinfo. -% Actually, they should now be obsolete; ordinary section commands should work. -\def\infotop{\parsearg\unnumberedzzz} -\def\infounnumbered{\parsearg\unnumberedzzz} -\def\infounnumberedsec{\parsearg\unnumberedseczzz} -\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} -\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} - -\def\infoappendix{\parsearg\appendixzzz} -\def\infoappendixsec{\parsearg\appendixseczzz} -\def\infoappendixsubsec{\parsearg\appendixsubseczzz} -\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} - -\def\infochapter{\parsearg\chapterzzz} -\def\infosection{\parsearg\sectionzzz} -\def\infosubsection{\parsearg\subsectionzzz} -\def\infosubsubsection{\parsearg\subsubsectionzzz} +\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz +\def\numberedsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Ynumbered}% + {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% +} + +\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz +\def\appendixsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Yappendix}% + {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% +} + +\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz +\def\unnumberedsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Ynothing}% + {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% +} % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec +\let\section = \numberedsec +\let\subsection = \numberedsubsec +\let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading @@ -3761,23 +4131,27 @@ % if justification is not attempted. Hence \raggedright. -\def\majorheading{\parsearg\majorheadingzzz} -\def\majorheadingzzz #1{% -{\advance\chapheadingskip by 10pt \chapbreak }% -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\chapheading{\parsearg\chapheadingzzz} -\def\chapheadingzzz #1{\chapbreak % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} +\def\majorheading{% + {\advance\chapheadingskip by 10pt \chapbreak }% + \parsearg\chapheadingzzz +} + +\def\chapheading{\chapbreak \parsearg\chapheadingzzz} +\def\chapheadingzzz#1{% + {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 + \parindent=0pt\raggedright + \rm #1\hfill}}% + \bigskip \par\penalty 200\relax + \suppressfirstparagraphindent +} % @heading, @subheading, @subsubheading. -\def\heading{\parsearg\plainsecheading} -\def\subheading{\parsearg\plainsubsecheading} -\def\subsubheading{\parsearg\plainsubsubsecheading} +\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} +\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} +\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), @@ -3786,8 +4160,6 @@ %%% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} - %%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) @@ -3810,7 +4182,7 @@ \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} -\def\CHAPPAGodd{ +\def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage @@ -3818,107 +4190,193 @@ \CHAPPAGon -\def\CHAPFplain{ -\global\let\chapmacro=\chfplain -\global\let\unnumbchapmacro=\unnchfplain -\global\let\centerchapmacro=\centerchfplain} - -% Plain chapter opening. -% #1 is the text, #2 the chapter number or empty if unnumbered. -\def\chfplain#1#2{% +% Chapter opening. +% +% #1 is the text, #2 is the section type (Ynumbered, Ynothing, +% Yappendix, Yomitfromtoc), #3 the chapter number. +% +% To test against our argument. +\def\Ynothingkeyword{Ynothing} +\def\Yomitfromtockeyword{Yomitfromtoc} +\def\Yappendixkeyword{Yappendix} +% +\def\chapmacro#1#2#3{% \pchapsepmacro {% \chapfonts \rm - \def\chapnum{#2}% - \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}% + % + % Have to define \thissection before calling \donoderef, because the + % xref code eventually uses it. On the other hand, it has to be called + % after \pchapsepmacro, or the headline will change too soon. + \gdef\thissection{#1}% + \gdef\thischaptername{#1}% + % + % Only insert the separating space if we have a chapter/appendix + % number, and don't print the unnumbered ``number''. + \def\temptype{#2}% + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unnchap}% + \def\thischapter{#1}% + \else\ifx\temptype\Yomitfromtockeyword + \setbox0 = \hbox{}% contents like unnumbered, but no toc entry + \def\toctype{omit}% + \xdef\thischapter{}% + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% + \def\toctype{app}% + % We don't substitute the actual chapter name into \thischapter + % because we don't want its macros evaluated now. And we don't + % use \thissection because that changes with each section. + % + \xdef\thischapter{\putwordAppendix{} \appendixletter: + \noexpand\thischaptername}% + \else + \setbox0 = \hbox{#3\enspace}% + \def\toctype{numchap}% + \xdef\thischapter{\putwordChapter{} \the\chapno: + \noexpand\thischaptername}% + \fi\fi\fi + % + % Write the toc entry for this chapter. Must come before the + % \donoderef, because we include the current node name in the toc + % entry, and \donoderef resets it to empty. + \writetocentry{\toctype}{#1}{#3}% + % + % For pdftex, we have to write out the node definition (aka, make + % the pdfdest) after any page break, but before the actual text has + % been typeset. If the destination for the pdf outline is after the + % text, then jumping from the outline may wind up with the text not + % being visible, for instance under high magnification. + \donoderef{#2}% + % + % Typeset the actual heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 \centerparametersmaybe + \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } -% Plain opening for unnumbered. -\def\unnchfplain#1{\chfplain{#1}{}} - % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax -\def\centerchfplain#1{{% - \def\centerparametersmaybe{% - \advance\rightskip by 3\rightskip - \leftskip = \rightskip - \parfillskip = 0pt - }% - \chfplain{#1}{}% -}} +\def\centerparameters{% + \advance\rightskip by 3\rightskip + \leftskip = \rightskip + \parfillskip = 0pt +} -\CHAPFplain % The default +% I don't think this chapter style is supported any more, so I'm not +% updating it with the new noderef stuff. We'll see. --karl, 11aug03. +% +\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} +% \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}\bigskip \par\nobreak } - \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } - \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt \hfill {\rm #1}\hfill}}\bigskip \par\nobreak } +\def\CHAPFopen{% + \global\let\chapmacro=\chfopen + \global\let\centerchapmacro=\centerchfopen} -\def\CHAPFopen{ -\global\let\chapmacro=\chfopen -\global\let\unnumbchapmacro=\unnchfopen -\global\let\centerchapmacro=\centerchfopen} - -% Section titles. +% Section titles. These macros combine the section number parts and +% call the generic \sectionheading to do the printing. +% \newskip\secheadingskip -\def\secheadingbreak{\dobreak \secheadingskip {-1000}} -\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}} -\def\plainsecheading#1{\sectionheading{sec}{}{#1}} +\def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. -\newskip \subsecheadingskip -\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} -\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}} -\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}} +\newskip\subsecheadingskip +\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. -\let\subsubsecheadingskip = \subsecheadingskip -\let\subsubsecheadingbreak = \subsecheadingbreak -\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}} -\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}} +\def\subsubsecheadingskip{\subsecheadingskip} +\def\subsubsecheadingbreak{\subsecheadingbreak} -% Print any size section title. +% Print any size, any type, section title. % -% #1 is the section type (sec/subsec/subsubsec), #2 is the section -% number (maybe empty), #3 the text. -\def\sectionheading#1#2#3{% - {% - \expandafter\advance\csname #1headingskip\endcsname by \parskip - \csname #1headingbreak\endcsname - }% +% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is +% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the +% section number. +% +\def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. - \csname #1fonts\endcsname \rm + \csname #2fonts\endcsname \rm + % + % Insert space above the heading. + \csname #2headingbreak\endcsname % - % Only insert the separating space if we have a section number. - \def\secnum{#2}% - \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}% + % Only insert the space after the number if we have a section number. + \def\sectionlevel{#2}% + \def\temptype{#3}% % + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unn}% + \gdef\thissection{#1}% + \else\ifx\temptype\Yomitfromtockeyword + % for @headings -- no section number, don't include in toc, + % and don't redefine \thissection. + \setbox0 = \hbox{}% + \def\toctype{omit}% + \let\sectionlevel=\empty + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{#4\enspace}% + \def\toctype{app}% + \gdef\thissection{#1}% + \else + \setbox0 = \hbox{#4\enspace}% + \def\toctype{num}% + \gdef\thissection{#1}% + \fi\fi\fi + % + % Write the toc entry (before \donoderef). See comments in \chfplain. + \writetocentry{\toctype\sectionlevel}{#1}{#4}% + % + % Write the node reference (= pdf destination for pdftex). + % Again, see comments in \chfplain. + \donoderef{#3}% + % + % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 % zero if no section number - \unhbox0 #3}% + \hangindent=\wd0 % zero if no section number + \unhbox0 #1}% }% - \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak + % Add extra space after the heading -- half of whatever came above it. + % Don't allow stretch, though. + \kern .5 \csname #2headingskip\endcsname + % + % Do not let the kern be a potential breakpoint, as it would be if it + % was followed by glue. + \nobreak + % + % We'll almost certainly start a paragraph next, so don't let that + % glue accumulate. (Not a breakpoint because it's preceded by a + % discardable item.) + \vskip-\parskip + % + % This is purely so the last item on the list is a known \penalty > + % 10000. This is so \startdefun can avoid allowing breakpoints after + % section headings. Otherwise, it would insert a valid breakpoint between: + % + % @section sec-whatever + % @deffn def-whatever + \penalty 10001 } @@ -3927,112 +4385,152 @@ \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. -% Called from @chapter, etc. We supply {\folio} at the end of the -% argument, which will end up as the last argument to the \...entry macro. +% Called from @chapter, etc. % -% We open the .toc file here instead of at @setfilename or any other -% fixed time so that @contents can be put in the document anywhere. +% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} +% We append the current node name (if any) and page number as additional +% arguments for the \{chap,sec,...}entry macros which will eventually +% read this. The node name is used in the pdf outlines as the +% destination to jump to. +% +% We open the .toc file for writing here instead of at @setfilename (or +% any other fixed time) so that @contents can be anywhere in the document. +% But if #1 is `omit', then we don't do anything. This is used for the +% table of contents chapter openings themselves. % \newif\iftocfileopened -\def\writetocentry#1{% - \iftocfileopened\else - \immediate\openout\tocfile = \jobname.toc - \global\tocfileopenedtrue - \fi - \iflinks \write\tocfile{#1{\folio}}\fi - % - % Tell \shipout to create a page destination if we're doing pdf, which - % will be the target of the links in the table of contents. We can't - % just do it on every page because the title pages are numbered 1 and - % 2 (the page numbers aren't printed), and so are the first two pages - % of the document. Thus, we'd have two destinations named `1', and - % two named `2'. - \ifpdf \pdfmakepagedesttrue \fi +\def\omitkeyword{omit}% +% +\def\writetocentry#1#2#3{% + \edef\writetoctype{#1}% + \ifx\writetoctype\omitkeyword \else + \iftocfileopened\else + \immediate\openout\tocfile = \jobname.toc + \global\tocfileopenedtrue + \fi + % + \iflinks + \toks0 = {#2}% + \toks2 = \expandafter{\lastnode}% + \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}% + {\the\toks2}{\noexpand\folio}}}% + \temp + \fi + \fi + % + % Tell \shipout to create a pdf destination on each page, if we're + % writing pdf. These are used in the table of contents. We can't + % just write one on every page because the title pages are numbered + % 1 and 2 (the page numbers aren't printed), and so are the first + % two pages of the document. Thus, we'd have two destinations named + % `1', and two named `2'. + \ifpdf \global\pdfmakepagedesttrue \fi } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 -% Finish up the main text and prepare to read what we've written -% to \tocfile. +% Prepare to read what we've written to \tocfile. % \def\startcontents#1{% - % If @setchapternewpage on, and @headings double, the contents should - % start on an odd page, unlike chapters. Thus, we maintain - % \contentsalignmacro in parallel with \pagealignmacro. - % From: Torbjorn Granlund - \contentsalignmacro - \immediate\closeout\tocfile - % - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \unnumbchapmacro{#1}\def\thischapter{}% - \savepageno = \pageno - \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. - % - % Roman numerals for page numbers. - \ifnum \pageno>0 \pageno = \lastnegativepageno \fi + % If @setchapternewpage on, and @headings double, the contents should + % start on an odd page, unlike chapters. Thus, we maintain + % \contentsalignmacro in parallel with \pagealignmacro. + % From: Torbjorn Granlund + \contentsalignmacro + \immediate\closeout\tocfile + % + % Don't need to put `Contents' or `Short Contents' in the headline. + % It is abundantly clear what they are. + \def\thischapter{}% + \chapmacro{#1}{Yomitfromtoc}{}% + % + \savepageno = \pageno + \begingroup % Set up to handle contents files properly. + \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 + % We can't do this, because then an actual ^ in a section + % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. + %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi + \raggedbottom % Worry more about breakpoints than the bottom. + \advance\hsize by -\contentsrightmargin % Don't use the full line length. + % + % Roman numerals for page numbers. + \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % Normal (long) toc. \def\contents{% - \startcontents{\putwordTOC}% - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \pdfmakeoutlines - \endgroup - \lastnegativepageno = \pageno - \pageno = \savepageno + \startcontents{\putwordTOC}% + \openin 1 \jobname.toc + \ifeof 1 \else + \input \jobname.toc + \fi + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \ifeof 1 \else + \pdfmakeoutlines + \fi + \closein 1 + \endgroup + \lastnegativepageno = \pageno + \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% - \startcontents{\putwordShortTOC}% - % - \let\chapentry = \shortchapentry - \let\appendixentry = \shortappendixentry - \let\unnumbchapentry = \shortunnumberedentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl - \rm - \hyphenpenalty = 10000 - \advance\baselineskip by 1pt % Open it up a little. - \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2##3{} - \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2##3##4{} - \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2##3##4##5{} - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \endgroup - \lastnegativepageno = \pageno - \pageno = \savepageno + \startcontents{\putwordShortTOC}% + % + \let\numchapentry = \shortchapentry + \let\appentry = \shortchapentry + \let\unnchapentry = \shortunnchapentry + % We want a true roman here for the page numbers. + \secfonts + \let\rm=\shortcontrm \let\bf=\shortcontbf + \let\sl=\shortcontsl \let\tt=\shortconttt + \rm + \hyphenpenalty = 10000 + \advance\baselineskip by 1pt % Open it up a little. + \def\numsecentry##1##2##3##4{} + \let\appsecentry = \numsecentry + \let\unnsecentry = \numsecentry + \let\numsubsecentry = \numsecentry + \let\appsubsecentry = \numsecentry + \let\unnsubsecentry = \numsecentry + \let\numsubsubsecentry = \numsecentry + \let\appsubsubsecentry = \numsecentry + \let\unnsubsubsecentry = \numsecentry + \openin 1 \jobname.toc + \ifeof 1 \else + \input \jobname.toc + \fi + \closein 1 + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \endgroup + \lastnegativepageno = \pageno + \global\pageno = \savepageno } \let\shortcontents = \summarycontents -\ifpdf - \pdfcatalog{/PageMode /UseOutlines}% -\fi +% Typeset the label for a chapter or appendix for the short contents. +% The arg is, e.g., `A' for an appendix, or `3' for a chapter. +% +\def\shortchaplabel#1{% + % This space should be enough, since a single number is .5em, and the + % widest letter (M) is 1em, at least in the Computer Modern fonts. + % But use \hss just in case. + % (This space doesn't include the extra space that gets added after + % the label; that gets put in by \shortchapentry above.) + % + % We'd like to right-justify chapter numbers, but that looks strange + % with appendix letters. And right-justifying numbers and + % left-justifying letters looks strange when there is less than 10 + % chapters. Have to read the whole toc once to know how many chapters + % there are before deciding ... + \hbox to 1em{#1\hss}% +} % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. @@ -4040,57 +4538,46 @@ % The arguments in between are the chapter number, section number, ... % Chapters, in the main contents. -\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} +\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. -\def\shortchapentry#1#2#3{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% +\def\shortchapentry#1#2#3#4{% + \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. -\def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}} -% -% Appendices, in the short toc. -\let\shortappendixentry = \shortchapentry - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter. -% We could simplify the code here by writing out an \appendixentry -% command in the toc file for appendices, instead of using \chapentry -% for both, but it doesn't seem worth it. +% Need the word Appendix, and a fixed-size box. % -\newdimen\shortappendixwidth +\def\appendixbox#1{% + % We use M since it's probably the widest letter. + \setbox0 = \hbox{\putwordAppendix{} M}% + \hbox to \wd0{\putwordAppendix{} #1\hss}} % -\def\shortchaplabel#1{% - % This space should be enough, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % But use \hss just in case. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in by \shortchapentry above.) - \dimen0 = 1em - \hbox to \dimen0{#1\hss}% -} +\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} % Unnumbered chapters. -\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} -\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} +\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} +\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. -\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} +\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} +\let\appsecentry=\numsecentry +\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. -\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} +\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} +\let\appsubsecentry=\numsubsecentry +\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. -\def\subsubsecentry#1#2#3#4#5#6{% - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} +\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} +\let\appsubsubsecentry=\numsubsubsecentry +\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. -\newdimen\tocindent \tocindent = 3pc +% Same as \defaultparindent. +\newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. @@ -4121,17 +4608,8 @@ \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} -% Final typesetting of a toc entry; we use the same \entry macro as for -% the index entries, but we want to suppress hyphenation here. (We -% can't do that in the \entry macro, since index entries might consist -% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) -\def\tocentry#1#2{\begingroup - \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks - % Do not use \turnoffactive in these arguments. Since the toc is - % typeset in cmr, characters such as _ would come out wrong; we - % have to do the usual translation tricks. - \entry{#1}{#2}% -\endgroup} +% We use the same \entry macro as for the index entries. +\let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} @@ -4141,15 +4619,15 @@ \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} -\let\subsecentryfonts = \textfonts -\let\subsubsecentryfonts = \textfonts +\def\subsecentryfonts{\textfonts} +\def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% +% % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % @@ -4161,7 +4639,7 @@ % The @error{} command. % Adapted from the TeXbook's \boxit. -% +% \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. @@ -4169,10 +4647,10 @@ % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} % -\global\setbox\errorbox=\hbox to \dimen0{\hfil +\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. - \vbox{ + \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. @@ -4186,17 +4664,16 @@ % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain tex @ character. -\def\tex{\begingroup +\envdef\tex{% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 - \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie + \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 - \catcode 43=12 % plus - \catcode`\"=12 - \catcode`\==12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 + \catcode `\+=\other + \catcode `\"=\other + \catcode `\|=\other + \catcode `\<=\other + \catcode `\>=\other \escapechar=`\\ % \let\b=\ptexb @@ -4208,19 +4685,23 @@ \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi + \let\indent=\ptexindent + \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace + \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% -\let\Etex=\endgroup} +} +% There is no need to define \Etex. % Define @lisp ... @end lisp. -% @lisp does a \begingroup so it can rebind things, +% @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. @@ -4231,34 +4712,25 @@ % have any width. \def\lisppar{\null\endgraf} -% Make each space character in the input produce a normal interword -% space in the output. Don't allow a line break at this space, as this -% is used only in environments like @example, where each line of input -% should produce a line of output anyway. -% -{\obeyspaces % -\gdef\sepspaces{\obeyspaces\let =\tie}} - -% Define \obeyedspace to be our active space, whatever it is. This is -% for use in \parsearg. -{\sepspaces% -\global\let\obeyedspace= } - % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip +% start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% - \ifnum\lastpenalty < 10000 + % =10000 instead of <10000 because of a special case in \itemzzz and + % \sectionheading, q.v. + \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip - \penalty-50 + % it's not a good place to break if the last penalty was \nobreak + % or better ... + \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi @@ -4290,54 +4762,54 @@ % \newskip\lskip\newskip\rskip -\long\def\cartouche{% -\begingroup - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt %we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18.4pt % allow for 3pt kerns on either -% side, and for 6pt waste from -% each corner char, and rule thickness - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \hsize=\cartinner - \kern3pt - \begingroup - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip +\envdef\cartouche{% + \ifhmode\par\fi % can't be in the midst of a paragraph. + \startsavinginserts + \lskip=\leftskip \rskip=\rightskip + \leftskip=0pt\rightskip=0pt % we want these *outside*. + \cartinner=\hsize \advance\cartinner by-\lskip + \advance\cartinner by-\rskip + \cartouter=\hsize + \advance\cartouter by 18.4pt % allow for 3pt kerns on either + % side, and for 6pt waste from + % each corner char, and rule thickness + \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip + % Flag to tell @lisp, etc., not to narrow margin. + \let\nonarrowing=\comment + \vbox\bgroup + \baselineskip=0pt\parskip=0pt\lineskip=0pt + \carttop + \hbox\bgroup + \hskip\lskip + \vrule\kern3pt + \vbox\bgroup + \kern3pt + \hsize=\cartinner + \baselineskip=\normbskip + \lineskip=\normlskip + \parskip=\normpskip + \vskip -\parskip + \comment % For explanation, see the end of \def\group. +} \def\Ecartouche{% - \endgroup - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup -\endgroup -}} + \ifhmode\par\fi + \kern3pt + \egroup + \kern3pt\vrule + \hskip\rskip + \egroup + \cartbot + \egroup + \checkinserts +} % This macro is called at the beginning of all the @example variants, % inside a group. \def\nonfillstart{% \aboveenvbreak - \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt @@ -4348,115 +4820,99 @@ \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing - \let\exdent=\nofillexdent - \let\nonarrowing=\relax \fi + \let\exdent=\nofillexdent } -% Define the \E... control sequence only if we are inside the particular -% environment, so the error checking in \end will work. +% If you want all examples etc. small: @set dispenvsize small. +% If you want even small examples the full size: @set dispenvsize nosmall. +% This affects the following displayed environments: +% @example, @display, @format, @lisp % -% To end an @example-like environment, we first end the paragraph (via -% \afterenvbreak's vertical glue), and then the group. That way we keep -% the zero \parskip that the environments set -- \parskip glue will be -% inserted at the beginning of the next paragraph in the document, after -% the environment. -% -\def\nonfillfinish{\afterenvbreak\endgroup} - -% @lisp: indented, narrowed, typewriter font. -\def\lisp{\begingroup - \nonfillstart - \let\Elisp = \nonfillfinish - \tt - \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return +\def\smallword{small} +\def\nosmallword{nosmall} +\let\SETdispenvsize\relax +\def\setnormaldispenv{% + \ifx\SETdispenvsize\smallword + \smallexamplefonts \rm + \fi +} +\def\setsmalldispenv{% + \ifx\SETdispenvsize\nosmallword + \else + \smallexamplefonts \rm + \fi } -% @example: Same as @lisp. -\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} +% We often define two environments, @foo and @smallfoo. +% Let's do it by one command: +\def\makedispenv #1#2{ + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} + \expandafter\let\csname E#1\endcsname \afterenvbreak + \expandafter\let\csname Esmall#1\endcsname \afterenvbreak +} -% @small... is usually equivalent to the non-small (@smallbook -% redefines). We must call \example (or whatever) last in the -% definition, since it reads the return following the @example (or -% whatever) command. -% -% This actually allows (for example) @end display inside an -% @smalldisplay. Too bad, but makeinfo will catch the error anyway. -% -\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} -\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} -\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} -\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} +% Define two synonyms: +\def\maketwodispenvs #1#2#3{ + \makedispenv{#1}{#3} + \makedispenv{#2}{#3} +} -% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. +% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. +% +% @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. -\def\smalllispx{\begingroup - \def\Esmalllisp{\nonfillfinish\endgroup}% - \def\Esmallexample{\nonfillfinish\endgroup}% - \smallexamplefonts - \lisp +% +\maketwodispenvs {lisp}{example}{% + \nonfillstart + \tt + \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. + \gobble % eat return } -% @display: same as @lisp except keep current font. +% @display/@smalldisplay: same as @lisp except keep current font. % -\def\display{\begingroup +\makedispenv {display}{% \nonfillstart - \let\Edisplay = \nonfillfinish \gobble } -% -% @smalldisplay (when @smallbook): @display plus smaller fonts. -% -\def\smalldisplayx{\begingroup - \def\Esmalldisplay{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \display -} -% @format: same as @display except don't narrow margins. +% @format/@smallformat: same as @display except don't narrow margins. % -\def\format{\begingroup - \let\nonarrowing = t +\makedispenv{format}{% + \let\nonarrowing = t% \nonfillstart - \let\Eformat = \nonfillfinish \gobble } -% -% @smallformat (when @smallbook): @format plus smaller fonts. -% -\def\smallformatx{\begingroup - \def\Esmallformat{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \format -} -% @flushleft (same as @format). -% -\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format} +% @flushleft: same as @format, but doesn't obey \SETdispenvsize. +\envdef\flushleft{% + \let\nonarrowing = t% + \nonfillstart + \gobble +} +\let\Eflushleft = \afterenvbreak % @flushright. % -\def\flushright{\begingroup - \let\nonarrowing = t +\envdef\flushright{% + \let\nonarrowing = t% \nonfillstart - \let\Eflushright = \nonfillfinish \advance\leftskip by 0pt plus 1fill \gobble } +\let\Eflushright = \afterenvbreak % @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. +% and narrows the margins. We keep \parskip nonzero in general, since +% we're doing normal filling. So, when using \aboveenvbreak and +% \afterenvbreak, temporarily make \parskip 0. % -\def\quotation{% - \begingroup\inENV %This group ends at the end of the @quotation body +\envdef\quotation{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace \parindent=0pt - % We have retained a nonzero parskip for the environment, since we're - % doing normal filling. So to avoid extra space below the environment... - \def\Equotation{\parskip = 0pt \nonfillfinish}% % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax @@ -4465,24 +4921,49 @@ \exdentamount = \lispnarrowing \let\nonarrowing = \relax \fi + \parsearg\quotationlabel } - -% LaTeX-like @verbatim...@end verbatim and @verb{...} -% If we want to allow any as delimiter, -% we need the curly braces so that makeinfo sees the @verb command, eg: -% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org -% -% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. +% We have retained a nonzero parskip for the environment, since we're +% doing normal filling. % -% [Knuth] p. 344; only we need to do '@' too +\def\Equotation{% + \par + \ifx\quotationauthor\undefined\else + % indent a bit. + \leftline{\kern 2\leftskip \sl ---\quotationauthor}% + \fi + {\parskip=0pt \afterenvbreak}% +} + +% If we're given an argument, typeset it in bold with a colon after. +\def\quotationlabel#1{% + \def\temp{#1}% + \ifx\temp\empty \else + {\bf #1: }% + \fi +} + + +% LaTeX-like @verbatim...@end verbatim and @verb{...} +% If we want to allow any as delimiter, +% we need the curly braces so that makeinfo sees the @verb command, eg: +% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org +% +% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. +% +% [Knuth] p.344; only we need to do the other characters Texinfo sets +% active too. Otherwise, they get lost as the first character on a +% verbatim line. \def\dospecials{% - \do\ \do\\\do\@\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} + \do\ \do\\\do\{\do\}\do\$\do\&% + \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% + \do\<\do\>\do\|\do\@\do+\do\"% +} % % [Knuth] p. 380 \def\uncatcodespecials{% - \def\do##1{\catcode`##1=12}\dospecials} + \def\do##1{\catcode`##1=\other}\dospecials} % % [Knuth] pp. 380,381,391 % Disable Spanish ligatures ?` and !` of \tt font @@ -4530,6 +5011,8 @@ } \endgroup \def\setupverbatim{% + \nonfillstart + \advance\leftskip by -\defbodyindent % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% @@ -4543,15 +5026,15 @@ \everypar{\starttabbox}% } -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a +% Do the @verb magic: verbatim text is quoted by unique +% delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup - \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12 + \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % @@ -4563,611 +5046,395 @@ % % \def\doverbatim#1@end verbatim{#1} % -% For Texinfo it's a lot easier than for LaTeX, +% For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': -% we need not redefine '\', '{' and '}' +% we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] -%% Include LaTeX hack for completeness -- never know -%% \begingroup -%% \catcode`|=0 \catcode`[=1 -%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active -%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ -%% #1|endgroup|def|Everbatim[]|end[verbatim]] -%% |endgroup +% \begingroup \catcode`\ =\active - \gdef\doverbatim#1@end verbatim{#1\end{verbatim}} + \obeylines % + % ignore everything up to the first ^^M, that's the newline at the end + % of the @verbatim input line itself. Otherwise we get an extra blank + % line in the output. + \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% + % We really want {...\end verbatim} in the body of the macro, but + % without the active space; thus we have to use \xdef and \gobble. \endgroup % -\def\verbatim{% - \def\Everbatim{\nonfillfinish\endgroup}% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim\doverbatim +\envdef\verbatim{% + \setupverbatim\doverbatim } +\let\Everbatim = \afterenvbreak + % @verbatiminclude FILE - insert text of file in verbatim environment. % -% Allow normal characters that we make active in the argument (a file name). -\def\verbatiminclude{% - \begingroup - \catcode`\\=12 - \catcode`~=12 - \catcode`^=12 - \catcode`_=12 - \catcode`|=12 - \catcode`<=12 - \catcode`>=12 - \catcode`+=12 - \parsearg\doverbatiminclude -} -\def\setupverbatiminclude{% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim -} +\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% - % Restore active chars for included file. - \endgroup - \begingroup - \def\thisfile{#1}% - \expandafter\expandafter\setupverbatiminclude\input\thisfile - \endgroup\nonfillfinish\endgroup + {% + \makevalueexpandable + \setupverbatim + \input #1 + \afterenvbreak + }% } % @copying ... @end copying. % Save the text away for @insertcopying later. -% -\newbox\copyingbox % -\def\copying{\begingroup - \parindent = 0pt % looks wrong on title page - \def\Ecopying{\egroup\endgroup}% - \global\setbox\copyingbox = \vbox\bgroup +% We save the uninterpreted tokens, rather than creating a box. +% Saving the text in a box would be much easier, but then all the +% typesetting commands (@smallbook, font changes, etc.) have to be done +% beforehand -- and a) we want @copying to be done first in the source +% file; b) letting users define the frontmatter in as flexible order as +% possible is very desirable. +% +\def\copying{\checkenv{}\begingroup\scanargctxt\docopying} +\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} +% +\def\insertcopying{% + \begingroup + \parindent = 0pt % paragraph indentation looks wrong on title page + \scanexp\copyingtext + \endgroup } -% @insertcopying. -% -\def\insertcopying{\unvcopy\copyingbox} - - \message{defuns,} % @defun etc. -% Allow user to change definition object font (\df) internally -\def\setdeffont #1 {\csname DEF#1\endcsname} - \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt -\newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt -\newcount\parencount -% define \functionparens, which makes ( and ) and & do special things. -% \functionparens affects the group it is contained in. -\def\activeparens{% -\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active -\catcode`\[=\active \catcode`\]=\active} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -{\activeparens % Now, smart parens don't turn on until &foo (see \amprm) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -\global\let(=\lparen \global\let)=\rparen -\global\let[=\lbrack \global\let]=\rbrack - -\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } -\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} -% This is used to turn on special parens -% but make & act ordinary (given that it's active). -\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} - -% Definitions of (, ) and & used in args for functions. -% This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested - \global\advance\parencount by 1 -} -% -% This is the definition of ( when already inside a level of parens. -\gdef\opnested{\char`\(\global\advance\parencount by 1 } -% -\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. - % also in that case restore the outer-level definition of (. - \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi - \global\advance \parencount by -1 } -% If we encounter &foo, then turn on ()-hacking afterwards -\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } -% -\gdef\normalparens{\boldbrax\let&=\ampnr} -} % End of definition inside \activeparens -%% These parens (in \boldbrax) actually are a little bolder than the -%% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } -\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } -\let\ampnr = \& -\def\lbrb{{\bf\char`\[}} -\def\rbrb{{\bf\char`\]}} - -% Active &'s sneak into the index arguments, so make sure it's defined. -{ - \catcode`& = 13 - \global\let& = \ampnr -} - -% First, defname, which formats the header line itself. -% #1 should be the function name. -% #2 should be the type of definition, such as "Function". - -\def\defname #1#2{% -% Get the values of \leftskip and \rightskip as they were -% outside the @def... -\dimen2=\leftskip -\advance\dimen2 by -\defbodyindent -\noindent -\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% -\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations -\parshape 2 0in \dimen0 \defargsindent \dimen1 -% Now output arg 2 ("Function" or some such) -% ending at \deftypemargin from the right margin, -% but stuck inside a box of width 0 so it does not interfere with linebreaking -{% Adjust \hsize to exclude the ambient margins, -% so that \rightline will obey them. -\advance \hsize by -\dimen2 -\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% -% Make all lines underfull and no complaints: -\tolerance=10000 \hbadness=10000 -\advance\leftskip by -\defbodyindent -\exdentamount=\defbodyindent -{\df #1}\enskip % Generate function name -} - -% Common pieces to start any @def... -% #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence (which our caller defines). -% #3 is the control sequence to process the header, such as \defunheader. -% -\def\parsebodycommon#1#2#3{% - \begingroup\inENV - % If there are two @def commands in a row, we'll have a \nobreak, - % which is there to keep the function description together with its - % header. But if there's nothing but headers, we want to allow a - % break after all. - \ifnum\lastpenalty = 10000 \penalty0 \fi - \medbreak - % - % Define the \E... end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% +% Start the processing of @deffn: +\def\startdefun{% + \ifnum\lastpenalty<10000 + \medbreak + \else + % If there are two @def commands in a row, we'll have a \nobreak, + % which is there to keep the function description together with its + % header. But if there's nothing but headers, we need to allow a + % break somewhere. Check specifically for penalty 10002, inserted + % by \defargscommonending, instead of 10000, since the sectioning + % commands also insert a nobreak penalty, and we don't want to allow + % a break between a section heading and a defun. + % + \ifnum\lastpenalty=10002 \penalty2000 \fi + % + % Similarly, after a section heading, do not allow a break. + % But do insert the glue. + \medskip % preceded by discardable penalty, so not a breakpoint + \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } -% Process body of @defun, @deffn, @defmac, etc. -% -\def\defparsebody#1#2#3{% - \parsebodycommon{#1}{#2}{#3}% - \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% - \catcode61=\active % 61 is `=' - \begingroup\obeylines\activeparens - \spacesplit#3% -} - -% #1, #2, #3 are the common arguments (see \defparsebody). -% #4, delimited by the space, is the class name. -% -\def\defmethparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#4}}% -} - -% Used for @deftypemethod and @deftypeivar. -% #1, #2, #3 are the common arguments (see \defparsebody). -% #4, delimited by a space, is the class name. -% #5 is the method's return type. -% -\def\deftypemethparsebody#1#2#3#4 #5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#4}{#5}}% -} - -% Used for @deftypeop. The change from \deftypemethparsebody is an -% extra argument at the beginning which is the `category', instead of it -% being the hardwired string `Method' or `Instance Variable'. We have -% to account for this both in the \...x definition and in parsing the -% input at hand. Thus also need a control sequence (passed as #5) for -% the \E... definition to assign the category name to. -% -\def\deftypeopparsebody#1#2#3#4#5 #6 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 ##3 {% - \def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#5}{#6}}% -} - -% For @defop. -\def\defopparsebody #1#2#3#4#5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#5}}% -} - -% These parsing functions are similar to the preceding ones -% except that they do not make parens into active characters. -% These are used for "variables" since they have no arguments. -% -\def\defvarparsebody #1#2#3{% - \parsebodycommon{#1}{#2}{#3}% - \def#2{\begingroup\obeylines\spacesplit#3}% - \catcode61=\active % - \begingroup\obeylines - \spacesplit#3% -} - -% @defopvar. -\def\defopvarparsebody #1#2#3#4#5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\def#4{##1}% - \begingroup\obeylines\spacesplit{#3{##2}}}% - \begingroup\obeylines - \spacesplit{#3{#5}}% -} - -\def\defvrparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \begingroup\obeylines - \spacesplit{#3{#4}}% -} - -% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the -% type is just `struct', because we lose the braces in `{struct -% termios}' when \spacesplit reads its undelimited argument. Sigh. -% \let\deftpparsebody=\defvrparsebody -% -% So, to get around this, we put \empty in with the type name. That -% way, TeX won't find exactly `{...}' as an undelimited argument, and -% won't strip off the braces. -% -\def\deftpparsebody #1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \begingroup\obeylines - \spacesplit{\parsetpheaderline{#3{#4}}}\empty -} - -% Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does. -% -\def\removeemptybraces\empty#1\relax{#1} - -% After \spacesplit has done its work, this is called -- #1 is the final -% thing to call, #2 the type name (which starts with \empty), and #3 -% (which might be empty) the arguments. -% -\def\parsetpheaderline#1#2#3{% - #1{\removeemptybraces#2\relax}{#3}% -}% +\def\dodefunx#1{% + % First, check whether we are in the right environment: + \checkenv#1% + % + % As above, allow line break if we have multiple x headers in a row. + % It's not a great place, though. + \ifnum\lastpenalty=10002 \penalty3000 \fi + % + % And now, it's time to reuse the body of the original defun: + \expandafter\gobbledefun#1% +} +\def\gobbledefun#1\startdefun{} -% Split up #2 at the first space token. -% call #1 with two arguments: -% the first is all of #2 before the space token, -% the second is all of #2 after that space token. -% If #2 contains no space token, all of it is passed as the first arg -% and the second is passed as empty. +% \printdefunline \deffnheader{text} % -{\obeylines -\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% -\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% -\ifx\relax #3% -#1{#2}{}\else #1{#2}{#3#4}\fi}} - -% Define @defun. +\def\printdefunline#1#2{% + \begingroup + % call \deffnheader: + #1#2 \endheader + % common ending: + \interlinepenalty = 10000 + \advance\rightskip by 0pt plus 1fil + \endgraf + \nobreak\vskip -\parskip + \penalty 10002 % signal to \startdefun and \dodefunx + % Some of the @defun-type tags do not enable magic parentheses, + % rendering the following check redundant. But we don't optimize. + \checkparencounts + \endgroup +} -% First, define the processing that is wanted for arguments of \defun -% Use this to expand the args and terminate the paragraph they make up +\def\Edefun{\endgraf\medbreak} -\def\defunargs#1{\functionparens \sl -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Set the font temporarily and use \font in case \setfont made \tensl a macro. -{\tensl\hyphenchar\font=0}% -#1% -{\tensl\hyphenchar\font=45}% -\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\nobreak\vskip -\parskip\nobreak +% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; +% the only thing remainnig is to define \deffnheader. +% +\def\makedefun#1{% + \expandafter\let\csname E#1\endcsname = \Edefun + \edef\temp{\noexpand\domakedefun + \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% + \temp } -\def\deftypefunargs #1{% -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Use \boldbraxnoamp, not \functionparens, so that & is not special. -\boldbraxnoamp -\tclose{#1}% avoid \code because of side effects on active chars -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\nobreak\vskip -\parskip\nobreak +% \domakedefun \deffn \deffnx \deffnheader +% +% Define \deffn and \deffnx, without parameters. +% \deffnheader has to be defined explicitly. +% +\def\domakedefun#1#2#3{% + \envdef#1{% + \startdefun + \parseargusing\activeparens{\printdefunline#3}% + }% + \def#2{\dodefunx#1}% + \def#3% } -% Do complete processing of one @defun or @defunx line already parsed. +%%% Untyped functions: -% @deffn Command forward-char nchars +% @deffn category name args +\makedefun{deffn}{\deffngeneral{}} -\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} +% @deffn category class name args +\makedefun{defop}#1 {\defopon{#1\ \putwordon}} -\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% -\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defun == @deffn Function +% \defopon {category on}class name args +\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } -\def\defun{\defparsebody\Edefun\defunx\defunheader} - -\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDeffunc}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody +% \deffngeneral {subind}category name args +% +\def\deffngeneral#1#2 #3 #4\endheader{% + % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. + \dosubind{fn}{\code{#3}}{#1}% + \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } -% @deftypefun int foobar (int @var{foo}, float @var{bar}) +%%% Typed functions: -\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} +% @deftypefn category type name args +\makedefun{deftypefn}{\deftypefngeneral{}} -% #1 is the data type. #2 is the name and args. -\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} -% #1 is the data type, #2 the name, #3 the args. -\def\deftypefunheaderx #1#2 #3\relax{% -\doind {fn}{\code{#2}}% Make entry in function index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% -\deftypefunargs {#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} +% @deftypeop category class type name args +\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} -% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) +% \deftypeopon {category on}class type name args +\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } -\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} +% \deftypefngeneral {subind}category type name args +% +\def\deftypefngeneral#1#2 #3 #4 #5\endheader{% + \dosubind{fn}{\code{#4}}{#1}% + \defname{#2}{#3}{#4}\defunargs{#5\unskip}% +} -% \defheaderxcond#1\relax$.$ -% puts #1 in @code, followed by a space, but does nothing if #1 is null. -\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi} +%%% Typed variables: -% #1 is the classification. #2 is the data type. #3 is the name and args. -\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} -% #1 is the classification, #2 the data type, #3 the name, #4 the args. -\def\deftypefnheaderx #1#2#3 #4\relax{% -\doind {fn}{\code{#3}}% Make entry in function index -\begingroup -\normalparens % notably, turn off `&' magic, which prevents -% at least some C++ text from working -\defname {\defheaderxcond#2\relax$.$#3}{#1}% -\deftypefunargs {#4}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} +% @deftypevr category type var args +\makedefun{deftypevr}{\deftypecvgeneral{}} -% @defmac == @deffn Macro +% @deftypecv category class type var args +\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} -\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} +% \deftypecvof {category of}class type var args +\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } -\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefmac}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody +% \deftypecvgeneral {subind}category type var args +% +\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% + \dosubind{vr}{\code{#4}}{#1}% + \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -% @defspec == @deffn Special Form +%%% Untyped variables: -\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} +% @defvr category var args +\makedefun{defvr}#1 {\deftypevrheader{#1} {} } -\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefspec}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} +% @defcv category class var args +\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} -% @defop CATEGORY CLASS OPERATION ARG... -% -\def\defop #1 {\def\defoptype{#1}% -\defopparsebody\Edefop\defopx\defopheader\defoptype} -% -\def\defopheader#1#2#3{% -\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index -\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}% -\defunargs {#3}\endgroup % -} +% \defcvof {category of}class var args +\def\defcvof#1#2 {\deftypecvof{#1}#2 {} } -% @deftypeop CATEGORY CLASS TYPE OPERATION ARG... -% -\def\deftypeop #1 {\def\deftypeopcategory{#1}% - \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader - \deftypeopcategory} -% -% #1 is the class name, #2 the data type, #3 the operation name, #4 the args. -\def\deftypeopheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\deftypeopcategory\ \putwordon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup +%%% Type: +% @deftp category name args +\makedefun{deftp}#1 #2 #3\endheader{% + \doind{tp}{\code{#2}}% + \defname{#1}{}{#2}\defunargs{#3\unskip}% } -% @deftypemethod CLASS TYPE METHOD ARG... -% -\def\deftypemethod{% - \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} -% -% #1 is the class name, #2 the data type, #3 the method name, #4 the args. -\def\deftypemethodheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup -} +% Remaining @defun-like shortcuts: +\makedefun{defun}{\deffnheader{\putwordDeffunc} } +\makedefun{defmac}{\deffnheader{\putwordDefmac} } +\makedefun{defspec}{\deffnheader{\putwordDefspec} } +\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } +\makedefun{defvar}{\defvrheader{\putwordDefvar} } +\makedefun{defopt}{\defvrheader{\putwordDefopt} } +\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } +\makedefun{defmethod}{\defopon\putwordMethodon} +\makedefun{deftypemethod}{\deftypeopon\putwordMethodon} +\makedefun{defivar}{\defcvof\putwordInstanceVariableof} +\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} -% @deftypeivar CLASS TYPE VARNAME +% \defname, which formats the name of the @def (not the args). +% #1 is the category, such as "Function". +% #2 is the return type, if any. +% #3 is the function name. % -\def\deftypeivar{% - \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader} +% We are followed by (but not passed) the arguments, if any. % -% #1 is the class name, #2 the data type, #3 the variable name. -\def\deftypeivarheader#1#2#3{% - \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\putwordInstanceVariableof\ \code{#1}}% - \defvarargs{#3}% - \endgroup +\def\defname#1#2#3{% + % Get the values of \leftskip and \rightskip as they were outside the @def... + \advance\leftskip by -\defbodyindent + % + % How we'll format the type name. Putting it in brackets helps + % distinguish it from the body text that may end up on the next line + % just below it. + \def\temp{#1}% + \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} + % + % Figure out line sizes for the paragraph shape. + % The first line needs space for \box0; but if \rightskip is nonzero, + % we need only space for the part of \box0 which exceeds it: + \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip + % The continuations: + \dimen2=\hsize \advance\dimen2 by -\defargsindent + % (plain.tex says that \dimen1 should be used only as global.) + \parshape 2 0in \dimen0 \defargsindent \dimen2 + % + % Put the type name to the right margin. + \noindent + \hbox to 0pt{% + \hfil\box0 \kern-\hsize + % \hsize has to be shortened this way: + \kern\leftskip + % Intentionally do not respect \rightskip, since we need the space. + }% + % + % Allow all lines to be underfull without complaint: + \tolerance=10000 \hbadness=10000 + \exdentamount=\defbodyindent + {% + % defun fonts. We use typewriter by default (used to be bold) because: + % . we're printing identifiers, they should be in tt in principle. + % . in languages with many accents, such as Czech or French, it's + % common to leave accents off identifiers. The result looks ok in + % tt, but exceedingly strange in rm. + % . we don't want -- and --- to be treated as ligatures. + % . this still does not fix the ?` and !` ligatures, but so far no + % one has made identifiers using them :). + \df \tt + \def\temp{#2}% return value type + \ifx\temp\empty\else \tclose{\temp} \fi + #3% output function name + }% + {\rm\enskip}% hskip 0.5 em of \tenrm + % + \boldbrax + % arguments will be output next, if any. } -% @defmethod == @defop Method +% Print arguments in slanted roman (not ttsl), inconsistently with using +% tt for the name. This is because literal text is sometimes needed in +% the argument list (groff manual), and ttsl and tt are not very +% distinguishable. Prevent hyphenation at `-' chars. % -\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} -% -% #1 is the class name, #2 the method name, #3 the args. -\def\defmethodheader#1#2#3{% - \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{#2}{\putwordMethodon\ \code{#1}}% - \defunargs{#3}% - \endgroup -} - -% @defcv {Class Option} foo-class foo-flag - -\def\defcv #1 {\def\defcvtype{#1}% -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} - -\def\defcvarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index -\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}% -\defvarargs {#3}\endgroup % +\def\defunargs#1{% + % use sl by default (not ttsl), + % tt for the names. + \df \sl \hyphenchar\font=0 + % + % On the other hand, if an argument has two dashes (for instance), we + % want a way to get ttsl. Let's try @var for that. + \let\var=\ttslanted + #1% + \sl\hyphenchar\font=45 } -% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME -% -\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} +% We want ()&[] to print specially on the defun line. % -\def\defivarheader#1#2#3{% - \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index - \begingroup - \defname{#2}{\putwordInstanceVariableof\ #1}% - \defvarargs{#3}% - \endgroup +\def\activeparens{% + \catcode`\(=\active \catcode`\)=\active + \catcode`\[=\active \catcode`\]=\active + \catcode`\&=\active } -% @defvar -% First, define the processing that is wanted for arguments of @defvar. -% This is actually simple: just print them in roman. -% This must expand the args and terminate the paragraph they make up -\def\defvarargs #1{\normalparens #1% -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak} - -% @defvr Counter foo-count - -\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} - -\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% -\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} - -% @defvar == @defvr Variable +% Make control sequences which act like normal parenthesis chars. +\let\lparen = ( \let\rparen = ) -\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} +% Be sure that we always have a definition for `(', etc. For example, +% if the fn name has parens in it, \boldbrax will not be in effect yet, +% so TeX would otherwise complain about undefined control sequence. +{ + \activeparens + \global\let(=\lparen \global\let)=\rparen + \global\let[=\lbrack \global\let]=\rbrack + \global\let& = \& -\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefvar}% -\defvarargs {#2}\endgroup % + \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} + \gdef\magicamp{\let&=\amprm} } -% @defopt == @defvr {User Option} +\newcount\parencount -\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} +% If we encounter &foo, then turn on ()-hacking afterwards +\newif\ifampseen +\def\amprm#1 {\ampseentrue{\bf\ }} -\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefopt}% -\defvarargs {#2}\endgroup % +\def\parenfont{% + \ifampseen + % At the first level, print parens in roman, + % otherwise use the default font. + \ifnum \parencount=1 \rm \fi + \else + % The \sf parens (in \boldbrax) actually are a little bolder than + % the contained text. This is especially needed for [ and ] . + \sf + \fi } +\def\infirstlevel#1{% + \ifampseen + \ifnum\parencount=1 + #1% + \fi + \fi +} +\def\bfafterword#1 {#1 \bf} -% @deftypevar int foobar - -\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} - -% #1 is the data type. #2 is the name, perhaps followed by text that -% is actually part of the data type, which should not be put into the index. -\def\deftypevarheader #1#2{% -\dovarind#2 \relax% Make entry in variables index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak -\endgroup} -\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} - -% @deftypevr {Global Flag} int enable - -\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} - -\def\deftypevrheader #1#2#3{\dovarind#3 \relax% -\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak -\endgroup} - -% Now define @deftp -% Args are printed in bold, a slight difference from @defvar. - -\def\deftpargs #1{\bf \defvarargs{#1}} - -% @deftp Class window height width ... - -\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} +\def\opnr{% + \global\advance\parencount by 1 + {\parenfont(}% + \infirstlevel \bfafterword +} +\def\clnr{% + {\parenfont)}% + \infirstlevel \sl + \global\advance\parencount by -1 +} -\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% -\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} +\newcount\brackcount +\def\lbrb{% + \global\advance\brackcount by 1 + {\bf[}% +} +\def\rbrb{% + {\bf]}% + \global\advance\brackcount by -1 +} -% These definitions are used if you use @defunx (etc.) -% anywhere other than immediately after a @defun or @defunx. -% -\def\defcvx#1 {\errmessage{@defcvx in invalid context}} -\def\deffnx#1 {\errmessage{@deffnx in invalid context}} -\def\defivarx#1 {\errmessage{@defivarx in invalid context}} -\def\defmacx#1 {\errmessage{@defmacx in invalid context}} -\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}} -\def\defoptx #1 {\errmessage{@defoptx in invalid context}} -\def\defopx#1 {\errmessage{@defopx in invalid context}} -\def\defspecx#1 {\errmessage{@defspecx in invalid context}} -\def\deftpx#1 {\errmessage{@deftpx in invalid context}} -\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}} -\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}} -\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}} -\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}} -\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}} -\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}} -\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}} -\def\defunx#1 {\errmessage{@defunx in invalid context}} -\def\defvarx#1 {\errmessage{@defvarx in invalid context}} -\def\defvrx#1 {\errmessage{@defvrx in invalid context}} +\def\checkparencounts{% + \ifnum\parencount=0 \else \badparencount \fi + \ifnum\brackcount=0 \else \badbrackcount \fi +} +\def\badparencount{% + \errmessage{Unbalanced parentheses in @def}% + \global\parencount=0 +} +\def\badbrackcount{% + \errmessage{Unbalanced square braces in @def}% + \global\brackcount=0 +} \message{macros,} @@ -5176,28 +5443,42 @@ % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\undefined - \newwrite\macscribble - \def\scanmacro#1{% - \begingroup \newlinechar`\^^M - % Undo catcode changes of \startcontents and \doprintindex - \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ - % Append \endinput to make sure that TeX does not see the ending newline. - \toks0={#1\endinput}% - \immediate\openout\macscribble=\jobname.tmp - \immediate\write\macscribble{\the\toks0}% - \immediate\closeout\macscribble - \let\xeatspaces\eatspaces - \input \jobname.tmp - \endgroup -} -\else -\def\scanmacro#1{% -\begingroup \newlinechar`\^^M -% Undo catcode changes of \startcontents and \doprintindex -\catcode`\@=0 \catcode`\\=12 \escapechar=`\@ -\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} + \newwrite\macscribble + \def\scantokens#1{% + \toks0={#1}% + \immediate\openout\macscribble=\jobname.tmp + \immediate\write\macscribble{\the\toks0}% + \immediate\closeout\macscribble + \input \jobname.tmp + } \fi +\def\scanmacro#1{% + \begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % ... and \example + \spaceisspace + % + % Append \endinput to make sure that TeX does not see the ending newline. + % + % I've verified that it is necessary both for e-TeX and for ordinary TeX + % --kasal, 29nov03 + \scantokens{#1\endinput}% + \endgroup +} + +\def\scanexp#1{% + \edef\temp{\noexpand\scanmacro{#1}}% + \temp +} + \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? @@ -5205,13 +5486,15 @@ % \do\macro1\do\macro2... % Utility routines. -% Thisdoes \let #1 = #2, except with \csnames. +% This does \let #1 = #2, with \csnames; that is, +% \let \csname#1\endcsname = \csname#2\endcsname +% (except of course we have to play expansion games). +% \def\cslet#1#2{% -\expandafter\expandafter -\expandafter\let -\expandafter\expandafter -\csname#1\endcsname -\csname#2\endcsname} + \expandafter\let + \csname#1\expandafter\endcsname + \csname#2\endcsname +} % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). @@ -5224,7 +5507,7 @@ } % Trim a single trailing ^^M off a string. -{\catcode`\^^M=12\catcode`\Q=3% +{\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% @@ -5238,30 +5521,36 @@ % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. +\def\scanctxt{% + \catcode`\"=\other + \catcode`\+=\other + \catcode`\<=\other + \catcode`\>=\other + \catcode`\@=\other + \catcode`\^=\other + \catcode`\_=\other + \catcode`\|=\other + \catcode`\~=\other +} + +\def\scanargctxt{% + \scanctxt + \catcode`\\=\other + \catcode`\^^M=\other +} + \def\macrobodyctxt{% - \catcode`\~=12 - \catcode`\^=12 - \catcode`\_=12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \catcode`\+=12 - \catcode`\{=12 - \catcode`\}=12 - \catcode`\@=12 - \catcode`\^^M=12 - \usembodybackslash} + \scanctxt + \catcode`\{=\other + \catcode`\}=\other + \catcode`\^^M=\other + \usembodybackslash +} \def\macroargctxt{% - \catcode`\~=12 - \catcode`\^=12 - \catcode`\_=12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \catcode`\+=12 - \catcode`\@=12 - \catcode`\\=12} + \scanctxt + \catcode`\\=\other +} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N @@ -5302,32 +5591,32 @@ \else \expandafter\parsemacbody \fi} -\def\unmacro{\parsearg\unmacroxxx} -\def\unmacroxxx#1{% +\parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% - % Remove the macro name from \macrolist + % Remove the macro name from \macrolist: \begingroup - \edef\tempa{\expandafter\noexpand\csname#1\endcsname}% - \def\do##1{% - \def\tempb{##1}% - \ifx\tempa\tempb - % remove this - \else - \toks0 = \expandafter{\newmacrolist\do}% - \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}% - \fi}% - \def\newmacrolist{}% - % Execute macro list to define \newmacrolist - \macrolist - \global\let\macrolist\newmacrolist + \expandafter\let\csname#1\endcsname \relax + \let\do\unmacrodo + \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } +% Called by \do from \dounmacro on each macro. The idea is to omit any +% macro definitions that have been changed to \relax. +% +\def\unmacrodo#1{% + \ifx#1\relax + % remove this + \else + \noexpand\do \noexpand #1% + \fi +} + % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. @@ -5443,25 +5732,41 @@ \expandafter\parsearg \fi \next} -% We mant to disable all macros during \shipout so that they are not +% We want to disable all macros during \shipout so that they are not % expanded by \write. \def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% \edef\next{\macrolist}\expandafter\endgroup\next} +% For \indexnofonts, we need to get rid of all macros, leaving only the +% arguments (if present). Of course this is not nearly correct, but it +% is the best we can do for now. makeinfo does not expand macros in the +% argument to @deffn, which ends up writing an index entry, and texindex +% isn't prepared for an index sort entry that starts with \. +% +% Since macro invocations are followed by braces, we can just redefine them +% to take a single TeX argument. The case of a macro invocation that +% goes to end-of-line is not handled. +% +\def\emptyusermacros{\begingroup + \def\do##1{\let\noexpand##1=\noexpand\asis}% + \edef\next{\macrolist}\expandafter\endgroup\next} + % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Just make them active and then expand them all to nothing. -\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx} +\def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} -\def\aliasyyy #1=#2\relax{\ignoreactivespaces -\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=% - \expandafter\noexpand\csname#2\endcsname}% -\expandafter\endgroup\next} +\def\aliasyyy #1=#2\relax{% + {% + \expandafter\let\obeyedspace=\empty + \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% + }% + \next +} \message{cross references,} -% @xref etc. \newwrite\auxfile @@ -5473,56 +5778,70 @@ \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} -% @node's job is to define \lastnode. -\def\node{\ENVcheck\parsearg\nodezzz} -\def\nodezzz#1{\nodexxx [#1,]} -\def\nodexxx[#1,#2]{\gdef\lastnode{#1}} +% @node's only job in TeX is to define \lastnode, which is used in +% cross-references. The @node line might or might not have commas, and +% might or might not have spaces before the first comma, like: +% @node foo , bar , ... +% We don't want such trailing spaces in the node name. +% +\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} +% +% also remove a trailing comma, in case of something like this: +% @node Help-Cross, , , Cross-refs +\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} +\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} + \let\nwnode=\node -\let\lastnode=\relax +\let\lastnode=\empty -% The sectioning commands (@chapter, etc.) call these. -\def\donoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Ysectionnumberandtype}% - \global\let\lastnode=\relax - \fi -} -\def\unnumbnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}% - \global\let\lastnode=\relax - \fi -} -\def\appendixnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Yappendixletterandtype}% - \global\let\lastnode=\relax +% Write a cross-reference definition for the current node. #1 is the +% type (Ynumbered, Yappendix, Ynothing). +% +\def\donoderef#1{% + \ifx\lastnode\empty\else + \setref{\lastnode}{#1}% + \global\let\lastnode=\empty \fi } - % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister -\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} -\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} -\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} - -% \setref{NAME}{SNT} defines a cross-reference point NAME, namely -% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have -% to set \indexdummies so commands such as @code in a section title -% aren't expanded. It would be nicer not to expand the titles in the -% first place, but there's so many layers that that is hard to do. % -\def\setref#1#2{{% - \indexdummies +\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} +\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} +\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} + +% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an +% anchor), which consists of three parts: +% 1) NAME-title - the current sectioning name taken from \thissection, +% or the anchor name. +% 2) NAME-snt - section number and type, passed as the SNT arg, or +% empty for anchors. +% 3) NAME-pg - the page number. +% +% This is called from \donoderef, \anchor, and \dofloat. In the case of +% floats, there is an additional part, which is not written here: +% 4) NAME-lof - the text as it should appear in a @listoffloats. +% +\def\setref#1#2{% \pdfmkdest{#1}% - \dosetq{#1-title}{Ytitle}% - \dosetq{#1-pg}{Ypagenumber}% - \dosetq{#1-snt}{#2}% -}} + \iflinks + {% + \atdummies % preserve commands, but don't expand them + \turnoffactive + \otherbackslash + \edef\writexrdef##1##2{% + \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef + ##1}{##2}}% these are parameters of \writexrdef + }% + \toks0 = \expandafter{\thissection}% + \immediate \writexrdef{title}{\the\toks0 }% + \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. + \writexrdef{pg}{\folio}% will be written later, during \shipout + }% + \fi +} % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed @@ -5535,137 +5854,156 @@ \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces \def\printedmanual{\ignorespaces #5}% - \def\printednodename{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual}% - \setbox0=\hbox{\printednodename}% + \def\printedrefname{\ignorespaces #3}% + \setbox1=\hbox{\printedmanual\unskip}% + \setbox0=\hbox{\printedrefname\unskip}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1 > 0pt % It is in another manual, so we don't have it. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}{}}% + \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. + % Make link in pdf output. \ifpdf \leavevmode \getfilename{#4}% - {\normalturnoffactive + {\turnoffactive \otherbackslash \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% goto file{\the\filename.pdf} name{#1}% \else \startlink attr{/Border [0 0 0]}% - goto name{#1}% + goto name{\pdfmkpgn{#1}}% \fi }% \linkcolor \fi % - \ifdim \wd1 > 0pt - \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}% + % Float references are printed completely differently: "Figure 1.2" + % instead of "[somenode], p.3". We distinguish them by the + % LABEL-title being set to a magic string. + {% + % Have to otherify everything special to allow the \csname to + % include an _ in the xref name, etc. + \indexnofonts + \turnoffactive + \otherbackslash + \expandafter\global\expandafter\let\expandafter\Xthisreftitle + \csname XR#1-title\endcsname + }% + \iffloat\Xthisreftitle + % If the user specified the print name (third arg) to the ref, + % print it instead of our usual "Figure 1.2". + \ifdim\wd0 = 0pt + \refx{#1-snt}% + \else + \printedrefname + \fi + % + % if the user also gave the printed manual name (fifth arg), append + % "in MANUALNAME". + \ifdim \wd1 > 0pt + \space \putwordin{} \cite{\printedmanual}% + \fi \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\normalturnoffactive - % Only output a following space if the -snt ref is nonempty; for - % @unnumbered and @anchor, it won't be. - \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% - \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi - }% - % [mynode], - [\printednodename],\space - % page 3 - \turnoffactive \putwordpage\tie\refx{#1-pg}{}% + % node/anchor (non-float) references. + % + % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not + % insert empty discretionaries after hyphens, which means that it will + % not find a line break at a hyphen in a node names. Since some manuals + % are best written with fairly long node names, containing hyphens, this + % is a loss. Therefore, we give the text of the node name again, so it + % is as if TeX is seeing it for the first time. + \ifdim \wd1 > 0pt + \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% + \else + % _ (for example) has to be the character _ for the purposes of the + % control sequence corresponding to the node, but it has to expand + % into the usual \leavevmode...\vrule stuff for purposes of + % printing. So we \turnoffactive for the \refx-snt, back on for the + % printing, back off for the \refx-pg. + {\turnoffactive \otherbackslash + % Only output a following space if the -snt ref is nonempty; for + % @unnumbered and @anchor, it won't be. + \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% + \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi + }% + % output the `[mynode]' via a macro so it can be overridden. + \xrefprintnodename\printedrefname + % + % But we always want a comma and a space: + ,\space + % + % output the `page 3'. + \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% + \fi \fi \endlink \endgroup} -% \dosetq is the interface for calls from other macros - -% Use \normalturnoffactive so that punctuation chars such as underscore -% and backslash work in node names. (\turnoffactive doesn't do \.) -\def\dosetq#1#2{% - {\let\folio=0% - \normalturnoffactive - \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% - \iflinks - \next - \fi - }% -} - -% \internalsetq {foo}{page} expands into -% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} -% When the aux file is read, ' is the escape character - -\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} - -% Things to be expanded by \internalsetq - -\def\Ypagenumber{\folio} - -\def\Ytitle{\thissection} - -\def\Ynothing{} - -\def\Ysectionnumberandtype{% -\ifnum\secno=0 \putwordChapter\xreftie\the\chapno % -\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\def\Yappendixletterandtype{% -\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% -\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\gdef\xreftie{'tie} +% This macro is called from \xrefX for the `[nodename]' part of xref +% output. It's a separate macro only so it can be changed more easily, +% since square brackets don't work well in some documents. Particularly +% one that Bob is working on :). +% +\def\xrefprintnodename#1{[#1]} -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. +% Things referred to by \setref. % -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Non-3.0. -\else - \def\linenumber{\the\inputlineno:\space} -\fi +\def\Ynothing{} +\def\Yomitfromtoc{} +\def\Ynumbered{% + \ifnum\secno=0 + \putwordChapter@tie \the\chapno + \else \ifnum\subsecno=0 + \putwordSection@tie \the\chapno.\the\secno + \else \ifnum\subsubsecno=0 + \putwordSection@tie \the\chapno.\the\secno.\the\subsecno + \else + \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno + \fi\fi\fi +} +\def\Yappendix{% + \ifnum\secno=0 + \putwordAppendix@tie @char\the\appendixno{}% + \else \ifnum\subsecno=0 + \putwordSection@tie @char\the\appendixno.\the\secno + \else \ifnum\subsubsecno=0 + \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno + \else + \putwordSection@tie + @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno + \fi\fi\fi +} % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. - +% \def\refx#1#2{% - \expandafter\ifx\csname X#1\endcsname\relax + {% + \indexnofonts + \otherbackslash + \expandafter\global\expandafter\let\expandafter\thisrefX + \csname XR#1\endcsname + }% + \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks @@ -5680,21 +6018,49 @@ \fi \else % It's defined, so just use it. - \csname X#1\endcsname + \thisrefX \fi #2% Output the suffix in any case. } -% This is the macro invoked by entries in the aux file. -% -\def\xrdef#1{\begingroup - % Reenable \ as an escape while reading the second argument. - \catcode`\\ = 0 - \afterassignment\endgroup - \expandafter\gdef\csname X#1\endcsname +% This is the macro invoked by entries in the aux file. Usually it's +% just a \def (we prepend XR to the control sequence name to avoid +% collisions). But if this is a float type, we have more work to do. +% +\def\xrdef#1#2{% + \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. + % + % Was that xref control sequence that we just defined for a float? + \expandafter\iffloat\csname XR#1\endcsname + % it was a float, and we have the (safe) float type in \iffloattype. + \expandafter\let\expandafter\floatlist + \csname floatlist\iffloattype\endcsname + % + % Is this the first time we've seen this float type? + \expandafter\ifx\floatlist\relax + \toks0 = {\do}% yes, so just \do + \else + % had it before, so preserve previous elements in list. + \toks0 = \expandafter{\floatlist\do}% + \fi + % + % Remember this xref in the control sequence \floatlistFLOATTYPE, + % for later use in \listoffloats. + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% + \fi } % Read the last existing aux file, if any. No error if none exists. +% +\def\tryauxfile{% + \openin 1 \jobname.aux + \ifeof 1 \else + \readauxfile + \global\havexrefstrue + \fi + \closein 1 +} + \def\readauxfile{\begingroup \catcode`\^^@=\other \catcode`\^^A=\other @@ -5723,9 +6089,7 @@ \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other - \catcode`\@=\other - \catcode`\^=\other - % It was suggested to define this as 7, which would allow ^^e4 etc. + % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ @@ -5738,6 +6102,9 @@ % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % + \catcode`\^=\other + % + % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other @@ -5749,8 +6116,19 @@ \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other + \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off - % Make the characters 128-255 be printing characters + % + % This is to support \ in node names and titles, since the \ + % characters end up in a \csname. It's easier than + % leaving it active and making its active definition an actual \ + % character. What I don't understand is why it works in the *value* + % of the xrdef. Seems like it should be a catcode12 \, and that + % should not typeset properly. But it works, so I'm moving on for + % now. --karl, 15jan04. + \catcode`\\=\other + % + % Make the characters 128-255 be printing characters. {% \count 1=128 \def\loop{% @@ -5759,31 +6137,18 @@ \ifnum \count 1<256 \loop \fi }% }% - % The aux file uses ' as the escape (for now). - % Turn off \ as an escape so we do not lose on - % entries which were dumped with control sequences in their names. - % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ - % Reference to such entries still does not work the way one would wish, - % but at least they do not bomb out when the aux file is read in. + % + % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 - \catcode`\%=\other - \catcode`\'=0 - \catcode`\\=\other + \catcode`\@=0 % - \openin 1 \jobname.aux - \ifeof 1 \else - \closein 1 - \input \jobname.aux - \global\havexrefstrue - \global\warnedobstrue - \fi - % Open the new aux file. TeX will close it automatically at exit. - \openout\auxfile=\jobname.aux + \input \jobname.aux \endgroup} -% Footnotes. +\message{insertions,} +% including footnotes. \newcount \footnoteno @@ -5797,37 +6162,39 @@ % @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment -\let\ptexfootnote=\footnote - {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% + \let\indent=\ptexindent + \let\noindent=\ptexnoindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi + \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf - \footnotezzz + \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % -% Oh yes, they do; otherwise, @ifset and anything else that uses -% \parseargline fail inside footnotes because the tokens are fixed when +% Oh yes, they do; otherwise, @ifset (and anything else that uses +% \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % -\long\gdef\footnotezzz{\insert\footins\bgroup +\gdef\dofootnote{% + \insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. + \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox @@ -5857,48 +6224,68 @@ \footstrut \futurelet\next\fo@t } -\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} -\def\f@@t{\bgroup\aftergroup\@foot\let\next} -\def\f@t#1{#1\@foot} -\def\@foot{\strut\par\egroup} - }%end \catcode `\@=11 -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% +% In case a @footnote appears in a vbox, save the footnote text and create +% the real \insert just after the vbox finished. Otherwise, the insertion +% would be lost. +% Similarily, if a @footnote appears inside an alignment, save the footnote +% text to a box and make the \insert when a row of the table is finished. +% And the same can be done for other insert classes. --kasal, 16nov03. + +% Replace the \insert primitive by a cheating macro. +% Deeper inside, just make sure that the saved insertions are not spilled +% out prematurely. +% +\def\startsavinginserts{% + \ifx \insert\ptexinsert + \let\insert\saveinsert + \else + \let\checkinserts\relax + \fi } -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). +% This \insert replacement works for both \insert\footins{foo} and +% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % -\def\finalout{\overfullrule=0pt} +\def\saveinsert#1{% + \edef\next{\noexpand\savetobox \makeSAVEname#1}% + \afterassignment\next + % swallow the left brace + \let\temp = +} +\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} +\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} + +\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} + +\def\placesaveins#1{% + \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname + {\box#1}% +} + +% eat @SAVE -- beware, all of them have catcode \other: +{ + \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) + \gdef\gobblesave @SAVE{} +} + +% initialization: +\def\newsaveins #1{% + \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% + \next +} +\def\newsaveinsX #1{% + \csname newbox\endcsname #1% + \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts + \checksaveins #1}% +} + +% initialize: +\let\checkinserts\empty +\newsaveins\footins +\newsaveins\margin + % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. @@ -5908,12 +6295,12 @@ % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else - \closein 1 - % Do not bother showing banner with post-v2.7 epsf.tex (available in - % doc/epsf.tex until it shows up on ctan). + % Do not bother showing banner with epsf.tex v2.7k (available in + % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi +\closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf @@ -5949,7 +6336,7 @@ \nobreak\bigskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space - % above and below. + % above and below. \nobreak\vskip\parskip \nobreak \line\bgroup\hss @@ -5969,6 +6356,269 @@ \endgroup} +% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, +% etc. We don't actually implement floating yet, we always include the +% float "here". But it seemed the best name for the future. +% +\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} + +% There may be a space before second and/or third parameter; delete it. +\def\eatcommaspace#1, {#1,} + +% #1 is the optional FLOATTYPE, the text label for this float, typically +% "Figure", "Table", "Example", etc. Can't contain commas. If omitted, +% this float will not be numbered and cannot be referred to. +% +% #2 is the optional xref label. Also must be present for the float to +% be referable. +% +% #3 is the optional positioning argument; for now, it is ignored. It +% will somehow specify the positions allowed to float to (here, top, bottom). +% +% We keep a separate counter for each FLOATTYPE, which we reset at each +% chapter-level command. +\let\resetallfloatnos=\empty +% +\def\dofloat#1,#2,#3,#4\finish{% + \let\thiscaption=\empty + \let\thisshortcaption=\empty + % + % don't lose footnotes inside @float. + % + % BEWARE: when the floats start float, we have to issue warning whenever an + % insert appears inside a float which could possibly float. --kasal, 26may04 + % + \startsavinginserts + % + % We can't be used inside a paragraph. + \par + % + \vtop\bgroup + \def\floattype{#1}% + \def\floatlabel{#2}% + \def\floatloc{#3}% we do nothing with this yet. + % + \ifx\floattype\empty + \let\safefloattype=\empty + \else + {% + % the floattype might have accents or other special characters, + % but we need to use it in a control sequence name. + \indexnofonts + \turnoffactive + \xdef\safefloattype{\floattype}% + }% + \fi + % + % If label is given but no type, we handle that as the empty type. + \ifx\floatlabel\empty \else + % We want each FLOATTYPE to be numbered separately (Figure 1, + % Table 1, Figure 2, ...). (And if no label, no number.) + % + \expandafter\getfloatno\csname\safefloattype floatno\endcsname + \global\advance\floatno by 1 + % + {% + % This magic value for \thissection is output by \setref as the + % XREFLABEL-title value. \xrefX uses it to distinguish float + % labels (which have a completely different output format) from + % node and anchor labels. And \xrdef uses it to construct the + % lists of floats. + % + \edef\thissection{\floatmagic=\safefloattype}% + \setref{\floatlabel}{Yfloat}% + }% + \fi + % + % start with \parskip glue, I guess. + \vskip\parskip + % + % Don't suppress indentation if a float happens to start a section. + \restorefirstparagraphindent +} + +% we have these possibilities: +% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap +% @float Foo,lbl & no caption: Foo 1.1 +% @float Foo & @caption{Cap}: Foo: Cap +% @float Foo & no caption: Foo +% @float ,lbl & Caption{Cap}: 1.1: Cap +% @float ,lbl & no caption: 1.1 +% @float & @caption{Cap}: Cap +% @float & no caption: +% +\def\Efloat{% + \let\floatident = \empty + % + % In all cases, if we have a float type, it comes first. + \ifx\floattype\empty \else \def\floatident{\floattype}\fi + % + % If we have an xref label, the number comes next. + \ifx\floatlabel\empty \else + \ifx\floattype\empty \else % if also had float type, need tie first. + \appendtomacro\floatident{\tie}% + \fi + % the number. + \appendtomacro\floatident{\chaplevelprefix\the\floatno}% + \fi + % + % Start the printed caption with what we've constructed in + % \floatident, but keep it separate; we need \floatident again. + \let\captionline = \floatident + % + \ifx\thiscaption\empty \else + \ifx\floatident\empty \else + \appendtomacro\captionline{: }% had ident, so need a colon between + \fi + % + % caption text. + \appendtomacro\captionline{\scanexp\thiscaption}% + \fi + % + % If we have anything to print, print it, with space before. + % Eventually this needs to become an \insert. + \ifx\captionline\empty \else + \vskip.5\parskip + \captionline + % + % Space below caption. + \vskip\parskip + \fi + % + % If have an xref label, write the list of floats info. Do this + % after the caption, to avoid chance of it being a breakpoint. + \ifx\floatlabel\empty \else + % Write the text that goes in the lof to the aux file as + % \floatlabel-lof. Besides \floatident, we include the short + % caption if specified, else the full caption if specified, else nothing. + {% + \atdummies \turnoffactive \otherbackslash + % since we read the caption text in the macro world, where ^^M + % is turned into a normal character, we have to scan it back, so + % we don't write the literal three characters "^^M" into the aux file. + \scanexp{% + \xdef\noexpand\gtemp{% + \ifx\thisshortcaption\empty + \thiscaption + \else + \thisshortcaption + \fi + }% + }% + \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident + \ifx\gtemp\empty \else : \gtemp \fi}}% + }% + \fi + \egroup % end of \vtop + % + % place the captured inserts + % + % BEWARE: when the floats start float, we have to issue warning whenever an + % insert appears inside a float which could possibly float. --kasal, 26may04 + % + \checkinserts +} + +% Append the tokens #2 to the definition of macro #1, not expanding either. +% +\def\appendtomacro#1#2{% + \expandafter\def\expandafter#1\expandafter{#1#2}% +} + +% @caption, @shortcaption +% +\def\caption{\docaption\thiscaption} +\def\shortcaption{\docaption\thisshortcaption} +\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} +\def\defcaption#1#2{\egroup \def#1{#2}} + +% The parameter is the control sequence identifying the counter we are +% going to use. Create it if it doesn't exist and assign it to \floatno. +\def\getfloatno#1{% + \ifx#1\relax + % Haven't seen this figure type before. + \csname newcount\endcsname #1% + % + % Remember to reset this floatno at the next chap. + \expandafter\gdef\expandafter\resetallfloatnos + \expandafter{\resetallfloatnos #1=0 }% + \fi + \let\floatno#1% +} + +% \setref calls this to get the XREFLABEL-snt value. We want an @xref +% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we +% first read the @float command. +% +\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% + +% Magic string used for the XREFLABEL-title value, so \xrefX can +% distinguish floats from other xref types. +\def\floatmagic{!!float!!} + +% #1 is the control sequence we are passed; we expand into a conditional +% which is true if #1 represents a float ref. That is, the magic +% \thissection value which we \setref above. +% +\def\iffloat#1{\expandafter\doiffloat#1==\finish} +% +% #1 is (maybe) the \floatmagic string. If so, #2 will be the +% (safe) float type for this float. We set \iffloattype to #2. +% +\def\doiffloat#1=#2=#3\finish{% + \def\temp{#1}% + \def\iffloattype{#2}% + \ifx\temp\floatmagic +} + +% @listoffloats FLOATTYPE - print a list of floats like a table of contents. +% +\parseargdef\listoffloats{% + \def\floattype{#1}% floattype + {% + % the floattype might have accents or other special characters, + % but we need to use it in a control sequence name. + \indexnofonts + \turnoffactive + \xdef\safefloattype{\floattype}% + }% + % + % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. + \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax + \ifhavexrefs + % if the user said @listoffloats foo but never @float foo. + \message{\linenumber No `\safefloattype' floats to list.}% + \fi + \else + \begingroup + \leftskip=\tocindent % indent these entries like a toc + \let\do=\listoffloatsdo + \csname floatlist\safefloattype\endcsname + \endgroup + \fi +} + +% This is called on each entry in a list of floats. We're passed the +% xref label, in the form LABEL-title, which is how we save it in the +% aux file. We strip off the -title and look up \XRLABEL-lof, which +% has the text we're supposed to typeset here. +% +% Figures without xref labels will not be included in the list (since +% they won't appear in the aux file). +% +\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} +\def\listoffloatsdoentry#1-title\finish{{% + % Can't fully expand XR#1-lof because it can contain anything. Just + % pass the control sequence. On the other hand, XR#1-pg is just the + % page number, and we want to fully expand that so we can get a link + % in pdf output. + \toksA = \expandafter{\csname XR#1-lof\endcsname}% + % + % use the same \entry macro we use to generate the TOC and index. + \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% + \writeentry +}} + \message{localization,} % and i18n. @@ -5977,19 +6627,17 @@ % properly. Single argument is the language abbreviation. % It would be nice if we could set up a hyphenation file here. % -\def\documentlanguage{\parsearg\dodocumentlanguage} -\def\dodocumentlanguage#1{% +\parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. - \openin 1 txi-#1.tex - \ifeof1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% - \let\temp = \relax - \else - \def\temp{\input txi-#1.tex }% - \fi - \temp + % Read the file if it exists. + \openin 1 txi-#1.tex + \ifeof 1 + \errhelp = \nolanghelp + \errmessage{Cannot read language file txi-#1.tex}% + \else + \input txi-#1.tex + \fi + \closein 1 \endgroup } \newhelp\nolanghelp{The given language definition file cannot be found or @@ -6035,11 +6683,13 @@ } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip. We also call -% \setleading{\textleading}, so the caller should define \textleading. -% The caller should also set \parskip. +% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) +% physical page width. % -\def\internalpagesizes#1#2#3#4#5#6{% +% We also call \setleading{\textleading}, so the caller should define +% \textleading. The caller should also set \parskip. +% +\def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip @@ -6058,28 +6708,27 @@ \normaloffset = #4\relax \bindingoffset = #5\relax % + \ifpdf + \pdfpageheight #7\relax + \pdfpagewidth #8\relax + \fi + % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } -% Use `small' versions. -% -\def\smallenvironments{% - \let\smalldisplay = \smalldisplayx - \let\smallexample = \smalllispx - \let\smallformat = \smallformatx - \let\smalllisp = \smalllispx -} - % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% + \internalpagesizes{46\baselineskip}{6in}% + {\voffset}{.25in}% + {\bindingoffset}{36pt}% + {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. @@ -6087,26 +6736,42 @@ \parskip = 2pt plus 1pt \textleading = 12pt % - \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% + \internalpagesizes{7.5in}{5in}% + {\voffset}{.25in}% + {\bindingoffset}{16pt}% + {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt - \deftypemargin = 0pt \defbodyindent = .5cm - \smallenvironments }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt - \textleading = 12pt + \textleading = 13.2pt % - \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% + % Double-side printing via postscript on Laserjet 4050 + % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. + % To change the settings for a different printer or situation, adjust + % \normaloffset until the front-side and back-side texts align. Then + % do the same for \bindingoffset. You can set these for testing in + % your texinfo source file like this: + % @tex + % \global\normaloffset = -6mm + % \global\bindingoffset = 10mm + % @end tex + \internalpagesizes{51\baselineskip}{160mm} + {\voffset}{\hoffset}% + {\bindingoffset}{44pt}% + {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. @@ -6116,44 +6781,46 @@ \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % - \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% + \internalpagesizes{160mm}{120mm}% + {\voffset}{\hoffset}% + {\bindingoffset}{8pt}% + {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt - \contentsrightmargin = 0mm - \deftypemargin = 0pt + \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm - % - \smallenvironments }} -% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin -% 29mm, hence bottom margin 28mm, nominal side margin 3cm. +% A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 - \textleading = 13.6pt - % \afourpaper - \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% + \internalpagesizes{237mm}{150mm}% + {\voffset}{4.6mm}% + {\bindingoffset}{7mm}% + {297mm}{210mm}% % - % Must explicitly reset to 0 because we call \afourpaper, apparently, - % although this does not entirely make sense. + % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} -% Use @afourwide to print on European A4 paper in wide format. -\def\afourwide{% +% Use @afourwide to print on A4 paper in landscape format. +\def\afourwide{{\globaldefs = 1 \afourpaper - \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% -} + \internalpagesizes{241mm}{165mm}% + {\voffset}{-2.95mm}% + {\bindingoffset}{7mm}% + {297mm}{210mm}% + \globaldefs = 0 +}} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % -\def\pagesizes{\parsearg\pagesizesxxx} -\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish} +\parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 @@ -6161,7 +6828,16 @@ \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% + \dimen0 = #1 + \advance\dimen0 by \voffset + % + \dimen2 = \hsize + \advance\dimen2 by \normaloffset + % + \internalpagesizes{#1}{\hsize}% + {\voffset}{\normaloffset}% + {\bindingoffset}{44pt}% + {\dimen0}{\dimen2}% }} % Set default to letter. @@ -6191,8 +6867,8 @@ \def\normalplus{+} \def\normaldollar{$}%$ font-lock fix -% This macro is used to make a character print one way in ttfont -% where it can probably just be output, and another way in other fonts, +% This macro is used to make a character print one way in \tt +% (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print @@ -6225,7 +6901,7 @@ \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. -\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} +\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} @@ -6239,15 +6915,6 @@ \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix -%\catcode 27=\active -%\def^^[{$\diamondsuit$} - -% Set up an active definition for =, but don't enable it most of the time. -{\catcode`\==\active -\global\def={{\tt \char 61}}} - -\catcode`+=\active -\catcode`\_=\active % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. @@ -6257,44 +6924,48 @@ \catcode`\@=0 -% \rawbackslashxx output one backslash character in current font -\global\chardef\rawbackslashxx=`\\ -%{\catcode`\\=\other -%@gdef@rawbackslashxx{\}} - -% \rawbackslash redefines \ as input to do \rawbackslashxx. +% \backslashcurfont outputs one backslash character in current font, +% as in \char`\\. +\global\chardef\backslashcurfont=`\\ +\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work + +% \rawbackslash defines an active \ to do \backslashcurfont. +% \otherbackslash defines an active \ to be a literal `\' character with +% catcode other. {\catcode`\\=\active -@gdef@rawbackslash{@let\=@rawbackslashxx }} + @gdef@rawbackslash{@let\=@backslashcurfont} + @gdef@otherbackslash{@let\=@realbackslash} +} + +% \realbackslash is an actual character `\' with catcode other. +{\catcode`\\=\other @gdef@realbackslash{\}} % \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\rawbackslashxx}} +\def\normalbackslash{{\tt\backslashcurfont}} -% \catcode 17=0 % Define control-q \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. -@def@turnoffactive{@let"=@normaldoublequote -@let\=@realbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix - -@def@normalturnoffactive{@let"=@normaldoublequote -@let\=@normalbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix +@def@turnoffactive{% + @let"=@normaldoublequote + @let\=@realbackslash + @let~=@normaltilde + @let^=@normalcaret + @let_=@normalunderscore + @let|=@normalverticalbar + @let<=@normalless + @let>=@normalgreater + @let+=@normalplus + @let$=@normaldollar %$ font-lock fix + @unsepspaces +} + +% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of +% the literal character `\'. (Thus, \ is not expandable when this is in +% effect.) +% +@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @@ -6322,15 +6993,11 @@ % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These look ok in all fonts, so just make them not special. +% These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other -@c Set initial fonts. -@textfonts -@rm - @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @@ -6339,3 +7006,9 @@ @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: + +@c vim:sw=2: + +@ignore + arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 +@end ignore diff -rNu smalltalk-2.1.9/config/wlong-double.m4 smalltalk-2.1.10/config/wlong-double.m4 --- smalltalk-2.1.9/config/wlong-double.m4 1970-01-01 01:00:00.000000000 +0100 +++ smalltalk-2.1.10/config/wlong-double.m4 2004-11-25 15:19:17.000000000 +0100 @@ -0,0 +1,19 @@ +dnl I'd like this to be edited in -*- Autoconf -*- mode... +dnl +AC_DEFUN([GST_C_WARN_LONG_DOUBLE], +[AC_CACHE_CHECK([whether -Wno-long-double is needed], gst_cv_c_wno_long_double, +[gst_cv_c_wno_long_double=no +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +AC_COMPILE_IFELSE([[long double a;]], + [gst_cv_c_wno_long_double=no; break], + [CFLAGS="$CFLAGS -Wno-long-double" + AC_COMPILE_IFELSE([[long double a;]], + [gst_cv_c_wno_long_double=yes; break], + [AC_MSG_ERROR([compiler does not have long double])])]) +CFLAGS="$save_CFLAGS" +]) +if test $gst_cv_c_wno_long_double = yes; then + CFLAGS="$CFLAGS -Wno-long-double" +fi +])# ACX_C_HIDDEN_VISIBILITY diff -rNu smalltalk-2.1.9/config/ylwrap smalltalk-2.1.10/config/ylwrap --- smalltalk-2.1.9/config/ylwrap 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/ylwrap 2005-02-02 14:52:54.000000000 +0100 @@ -1,8 +1,10 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002 Free Software -# Foundation, Inc. + +scriptversion=2004-09-10.20 + +# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. # # Written by Tom Tromey . # @@ -25,23 +27,52 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Usage: -# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... -# * INPUT is the input file -# * OUTPUT is file PROG generates -# * DESIRED is file we actually want -# * PROGRAM is program to run -# * ARGS are passed to PROG -# Any number of OUTPUT,DESIRED pairs may be used. +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case "$1" in + '') + echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to . +EOF + exit 0 + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit 0 + ;; +esac + # The input. input="$1" shift case "$input" in - [\\/]* | ?:[\\/]*) + [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; - *) + *) # Relative path. Make it absolute. input="`pwd`/$input" ;; @@ -49,12 +80,12 @@ pairlist= while test "$#" -ne 0; do - if test "$1" = "--"; then - shift - break - fi - pairlist="$pairlist $1" - shift + if test "$1" = "--"; then + shift + break + fi + pairlist="$pairlist $1" + shift done # The program to run. @@ -62,8 +93,8 @@ shift # Make any relative path in $prog absolute. case "$prog" in - [\\/]* | ?:[\\/]*) ;; - *[\\/]*) prog="`pwd`/$prog" ;; + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog="`pwd`/$prog" ;; esac # FIXME: add hostname here for parallel makes that run commands on @@ -75,86 +106,117 @@ cd $dirname case $# in - 0) $prog "$input" ;; - *) $prog "$@" "$input" ;; + 0) $prog "$input" ;; + *) $prog "$@" "$input" ;; esac -status=$? +ret=$? -if test $status -eq 0; then - set X $pairlist - shift - first=yes - # Since DOS filename conventions don't allow two dots, - # the DOS version of Bison writes out y_tab.c instead of y.tab.c - # and y_tab.h instead of y.tab.h. Test to see if this is the case. - y_tab_nodot="no" - if test -f y_tab.c || test -f y_tab.h; then - y_tab_nodot="yes" - fi - - # The directory holding the input. - input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` - # Quote $INPUT_DIR so we can use it in a regexp. - # FIXME: really we should care about more than `.' and `\'. - input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` - - while test "$#" -ne 0; do - from="$1" - # Handle y_tab.c and y_tab.h output by DOS - if test $y_tab_nodot = "yes"; then - if test $from = "y.tab.c"; then - from="y_tab.c" - else - if test $from = "y.tab.h"; then - from="y_tab.h" - fi - fi - fi - if test -f "$from"; then - # If $2 is an absolute path name, then just use that, - # otherwise prepend `../'. - case "$2" in - [\\/]* | ?:[\\/]*) target="$2";; - *) target="../$2";; - esac - - # Edit out `#line' or `#' directives. - # - # We don't want the resulting debug information to point at - # an absolute srcdir; it is better for it to just mention the - # .y file with no path. - # - # We want to use the real output file name, not yy.lex.c for - # instance. - # - # We want the include guards to be adjusted too. - FROM=`echo "$from" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - TARGET=`echo "$2" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - sed "/^#/{s,$input_rx,,;s,$from,$2,;s,$FORM,$TO,;}" "$from" >"$target" || - status=$? +if test $ret -eq 0; then + set X $pairlist + shift + first=yes + # Since DOS filename conventions don't allow two dots, + # the DOS version of Bison writes out y_tab.c instead of y.tab.c + # and y_tab.h instead of y.tab.h. Test to see if this is the case. + y_tab_nodot="no" + if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot="yes" + fi + + # The directory holding the input. + input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` + # Quote $INPUT_DIR so we can use it in a regexp. + # FIXME: really we should care about more than `.' and `\'. + input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` + + while test "$#" -ne 0; do + from="$1" + # Handle y_tab.c and y_tab.h output by DOS + if test $y_tab_nodot = "yes"; then + if test $from = "y.tab.c"; then + from="y_tab.c" else - # A missing file is only an error for the first file. This - # is a blatant hack to let us support using "yacc -d". If -d - # is not specified, we don't want an error when the header - # file is "missing". - if test $first = yes; then - status=1 - fi + if test $from = "y.tab.h"; then + from="y_tab.h" + fi + fi + fi + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend `../'. + case "$2" in + [\\/]* | ?:[\\/]*) target="$2";; + *) target="../$2";; + esac + + # We do not want to overwrite a header file if it hasn't + # changed. This avoid useless recompilations. However the + # parser itself (the first file) should always be updated, + # because it is the destination of the .y.c rule in the + # Makefile. Divert the output of all other files to a temporary + # file so we can compare them to existing versions. + if test $first = no; then + realtarget="$target" + target="tmp-`echo $target | sed s/.*[\\/]//g`" fi - shift - shift - first=no - done + # Edit out `#line' or `#' directives. + # + # We don't want the resulting debug information to point at + # an absolute srcdir; it is better for it to just mention the + # .y file with no path. + # + # We want to use the real output file name, not yy.lex.c for + # instance. + # + # We want the include guards to be adjusted too. + FROM=`echo "$from" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` + TARGET=`echo "$2" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` + + sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ + -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? + + # Check whether header files must be updated. + if test $first = no; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$2" is unchanged + rm -f "$target" + else + echo updating "$2" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the first file. This + # is a blatant hack to let us support using "yacc -d". If -d + # is not specified, we don't want an error when the header + # file is "missing". + if test $first = yes; then + ret=1 + fi + fi + shift + shift + first=no + done else - status=$? + ret=$? fi # Remove the directory. cd .. rm -rf $dirname -exit $status +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config.h.in smalltalk-2.1.10/config.h.in --- smalltalk-2.1.9/config.h.in 2004-10-02 15:32:13.000000000 +0200 +++ smalltalk-2.1.10/config.h.in 2005-02-03 09:32:15.000000000 +0100 @@ -235,6 +235,9 @@ /* Define to 1 if you have the `poll' function. */ #undef HAVE_POLL +/* Define to 1 if you have the header file. */ +#undef HAVE_POLL_H + /* Define to 1 if you have the `popen' function. */ #undef HAVE_POPEN diff -rNu smalltalk-2.1.9/configure smalltalk-2.1.10/configure --- smalltalk-2.1.9/configure 2004-10-02 15:30:00.000000000 +0200 +++ smalltalk-2.1.10/configure 2005-02-03 09:30:51.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for GNU Smalltalk 2.1.9. +# Generated by GNU Autoconf 2.59 for GNU Smalltalk 2.1.10. # # Report bugs to . # @@ -280,7 +280,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then @@ -419,8 +419,8 @@ # Identity of this package. PACKAGE_NAME='GNU Smalltalk' PACKAGE_TARNAME='smalltalk' -PACKAGE_VERSION='2.1.9' -PACKAGE_STRING='GNU Smalltalk 2.1.9' +PACKAGE_VERSION='2.1.10' +PACKAGE_STRING='GNU Smalltalk 2.1.10' PACKAGE_BUGREPORT='help-smalltalk@gnu.org' ac_unique_file="main.c" @@ -463,7 +463,7 @@ ac_subdirs_all="$ac_subdirs_all snprintfv" ac_subdirs_all="$ac_subdirs_all sigsegv" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION VERSION_INFO MAINTAINER INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP LN_S INSTALL_INFO EMACS EMACSLOADPATH lispdir LEX YACC RM LIBSNPRINTFV INCSNPRINTFV subdirs HAVE_SIGSEGV_TRUE HAVE_SIGSEGV_FALSE LIBC_SO_NAME LIBC_SO_DIR ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP LIBTOOL ICON ALLOCA LIBOBJS INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL LIBICONV LTLIBICONV LIBGMP TCLSH LIBTCLTK INCTCLTK LIBREADLINE MODULES_EXAMPLE MODULES_TCP MODULES_GTK MODULES_I18N MODULES_TK I18N_DISABLED GTK_DISABLED BLOX_IMPLEMENTATION PKG_CONFIG ATK_CFLAGS ATK_LIBS PANGO_CFLAGS PANGO_LIBS GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS GLIB_GENMARSHAL GOBJECT_QUERY GLIB_MKENUMS HAVE_GTK_TRUE HAVE_GTK_FALSE LIGHTNING_MAIN_TRUE LIGHTNING_MAIN_FALSE HAVE_INSTALLED_LIGHTNING_TRUE HAVE_INSTALLED_LIGHTNING_FALSE USE_JIT_TRANSLATION_TRUE USE_JIT_TRANSLATION_FALSE WITH_EMACS_TRUE WITH_EMACS_FALSE MODULES INCLTDL LIBLTDL LDPATH LTALLOCA LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION VERSION_INFO MAINTAINER INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP LN_S INSTALL_INFO EMACS EMACSLOADPATH lispdir LEX YACC RM LIBSNPRINTFV INCSNPRINTFV subdirs HAVE_SIGSEGV_TRUE HAVE_SIGSEGV_FALSE LIBC_SO_NAME LIBC_SO_DIR ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP LIBTOOL ICON ALLOCA LIBOBJS INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL LIBICONV LTLIBICONV LIBGMP TCLSH LIBTCLTK INCTCLTK LIBREADLINE MODULES_EXAMPLE MODULES_TCP MODULES_GTK MODULES_I18N MODULES_TK I18N_DISABLED GTK_DISABLED BLOX_IMPLEMENTATION PKG_CONFIG ATK_CFLAGS ATK_LIBS PANGO_CFLAGS PANGO_LIBS GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS GLIB_GENMARSHAL GOBJECT_QUERY GLIB_MKENUMS HAVE_GTK_TRUE HAVE_GTK_FALSE LIGHTNING_MAIN_TRUE LIGHTNING_MAIN_FALSE HAVE_INSTALLED_LIGHTNING_TRUE HAVE_INSTALLED_LIGHTNING_FALSE USE_JIT_TRANSLATION_TRUE USE_JIT_TRANSLATION_FALSE WITH_EMACS_TRUE WITH_EMACS_FALSE MODULES INCLTDL LIBLTDL LDPATH LTALLOCA LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -940,7 +940,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.1.9 to adapt to many kinds of systems. +\`configure' configures GNU Smalltalk 2.1.10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1006,7 +1006,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Smalltalk 2.1.9:";; + short | recursive ) echo "Configuration of GNU Smalltalk 2.1.10:";; esac cat <<\_ACEOF @@ -1165,7 +1165,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -GNU Smalltalk configure 2.1.9 +GNU Smalltalk configure 2.1.10 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1179,7 +1179,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.1.9, which was +It was created by GNU Smalltalk $as_me 2.1.10, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1591,7 +1591,7 @@ ac_config_headers="$ac_config_headers config.h" -am__api_version="1.8" +am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -1743,13 +1743,21 @@ fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -1865,7 +1873,7 @@ # Define the identity of the package. PACKAGE='smalltalk' - VERSION='2.1.9' + VERSION='2.1.10' cat >>confdefs.h <<_ACEOF @@ -1893,9 +1901,6 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -AMTAR=${AMTAR-"${am_missing_run}tar"} - install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user @@ -1988,6 +1993,13 @@ # We need awk for the "check" target. The system "awk" is bad on # some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + @@ -5063,6 +5075,91 @@ ;; esac +echo "$as_me:$LINENO: checking whether -Wno-long-double is needed" >&5 +echo $ECHO_N "checking whether -Wno-long-double is needed... $ECHO_C" >&6 +if test "${gst_cv_c_wno_long_double+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gst_cv_c_wno_long_double=no +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +cat >conftest.$ac_ext <<_ACEOF +long double a; +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 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); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gst_cv_c_wno_long_double=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +CFLAGS="$CFLAGS -Wno-long-double" + cat >conftest.$ac_ext <<_ACEOF +long double a; +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 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); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gst_cv_c_wno_long_double=yes; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: compiler does not have long double" >&5 +echo "$as_me: error: compiler does not have long double" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" + +fi +echo "$as_me:$LINENO: result: $gst_cv_c_wno_long_double" >&5 +echo "${ECHO_T}$gst_cv_c_wno_long_double" >&6 +if test $gst_cv_c_wno_long_double = yes; then + CFLAGS="$CFLAGS -Wno-long-double" +fi + echo "$as_me:$LINENO: checking for goto void *" >&5 @@ -5401,10 +5498,10 @@ fi done done -SED=$lt_cv_path_SED fi +SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 @@ -5530,6 +5627,15 @@ *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 @@ -5605,30 +5711,26 @@ lt_cv_deplibs_check_method=pass_all ;; -bsdi4*) +bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin* | mingw* | pw32*) - # win32_libid is a shell function defined in ltmain.sh +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='win32_libid' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) - # this will be overwritten by pass_all, but leave it in just in case - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[012]) - lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac lt_cv_deplibs_check_method=pass_all ;; @@ -5671,38 +5773,18 @@ ;; irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" - ;; + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) - # linux always uses pass_all now, this code is the old way (tm) - case $host_cpu in - alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; - esac lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) @@ -5724,19 +5806,14 @@ ;; openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; @@ -5746,7 +5823,6 @@ solaris*) lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) @@ -5825,7 +5901,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5828 "configure"' > conftest.$ac_ext + echo '#line 5904 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6389,7 +6465,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 - testring="ABCD" + teststring="ABCD" case $build_os in msdosdjgpp*) @@ -6424,20 +6500,34 @@ lt_cv_sys_max_cmd_len=8192; ;; + netbsd* | freebsd* | openbsd* | darwin* ) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for *BSD + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + ;; + *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` - testring=$testring$testring + teststring=$teststring$teststring done - testring= + teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. @@ -6498,6 +6588,13 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; @@ -6997,6 +7094,8 @@ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) @@ -7272,11 +7371,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7275: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7374: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7279: \$? = $ac_status" >&5 + echo "$as_me:7378: \$? = $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 @@ -7383,6 +7482,16 @@ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being @@ -7505,11 +7614,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7508: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7617: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7512: \$? = $ac_status" >&5 + echo "$as_me:7621: \$? = $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 @@ -7556,13 +7665,6 @@ mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. @@ -7572,11 +7674,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7575: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7677: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7579: \$? = $ac_status" >&5 + echo "$as_me:7681: \$? = $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 @@ -7788,7 +7890,7 @@ ;; linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds="$tmp_archive_cmds" supports_anon_versioning=no @@ -8076,7 +8178,7 @@ ld_shlibs=no ;; - bsdi4*) + bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; @@ -8090,7 +8192,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext=".dll" + shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -8102,52 +8204,52 @@ ;; darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc=no case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' + whole_archive_flag_spec='' link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else - ld_shlibs=no + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac fi ;; @@ -8292,6 +8394,7 @@ hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else @@ -8546,7 +8649,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext=".so" +shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -8643,7 +8746,7 @@ shlibpath_var=LIBRARY_PATH ;; -bsdi4*) +bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -8659,7 +8762,7 @@ cygwin* | mingw* | pw32*) version_type=windows - shrext=".dll" + shrext_cmds=".dll" need_version=no need_lib_prefix=no @@ -8724,7 +8827,7 @@ soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -8807,7 +8910,7 @@ need_version=no case "$host_cpu" in ia64*) - shrext='.so' + shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH @@ -8822,7 +8925,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) - shrext='.sl' + shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH @@ -8833,7 +8936,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) - shrext='.sl' + shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH @@ -8902,6 +9005,12 @@ # before this can be enabled. hardcode_into_libs=yes + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, @@ -8911,6 +9020,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -8920,7 +9041,7 @@ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi @@ -8969,7 +9090,7 @@ os2*) libname_spec='$name' - shrext=".dll" + shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' @@ -9071,8 +9192,8 @@ echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var " || \ - test "X$hardcode_automatic"="Xyes" ; then + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && @@ -9738,7 +9859,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 @@ -10146,7 +10230,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= @@ -10237,7 +10321,7 @@ libext="$libext" # Shared library suffix (normally ".so"). -shrext='$shrext' +shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" @@ -13871,7 +13955,8 @@ -for ac_header in unistd.h sys/ioctl.h sys/resource.h \ + +for ac_header in 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/wait.h fcntl.h @@ -14024,6 +14109,11 @@ done +if test x$ac_cv_header_poll_h = xno; then + ac_config_links="$ac_config_links lib-src/poll.h:lib-src/poll_.h" + +fi + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo "$as_me:$LINENO: checking for working alloca.h" >&5 @@ -16022,7 +16112,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -22034,7 +22127,7 @@ } >&5 cat >&5 <<_CSEOF -This file was extended by GNU Smalltalk $as_me 2.1.9, which was +This file was extended by GNU Smalltalk $as_me 2.1.10, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22100,7 +22193,7 @@ cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GNU Smalltalk config.status 2.1.9 +GNU Smalltalk config.status 2.1.10 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -22230,11 +22323,13 @@ "kernel/Makefile" ) CONFIG_FILES="$CONFIG_FILES kernel/Makefile" ;; "tcp/Makefile" ) CONFIG_FILES="$CONFIG_FILES tcp/Makefile" ;; "gtk/Makefile" ) CONFIG_FILES="$CONFIG_FILES gtk/Makefile" ;; + "lib-src/poll.h" ) CONFIG_LINKS="$CONFIG_LINKS lib-src/poll.h:lib-src/poll_.h" ;; "lightning/asm.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/asm.h:lightning/$cpu_subdir/asm.h" ;; "lightning/core.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/core.h:lightning/$cpu_subdir/core.h" ;; "lightning/fp.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/fp.h:lightning/$cpu_subdir/fp.h" ;; "lightning/funcs.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/funcs.h:lightning/$cpu_subdir/funcs.h" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "$srcdir/packages.xml" ) CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/packages.xml" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} @@ -22335,7 +22430,6 @@ s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t @@ -22344,6 +22438,9 @@ s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t +s,@AMTAR@,$AMTAR,;t t +s,@am__tar@,$am__tar,;t t +s,@am__untar@,$am__untar,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t @@ -23213,27 +23310,21 @@ else continue fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue @@ -23279,6 +23370,13 @@ done done ;; + $srcdir/packages.xml ) + if test -f $srcdir/packages.xml; then + : + else + $as_ln_s `pwd`/packages.xml $srcdir/packages.xml + fi + ;; esac done _ACEOF diff -rNu smalltalk-2.1.9/configure.ac smalltalk-2.1.10/configure.ac --- smalltalk-2.1.9/configure.ac 2004-10-02 15:28:47.000000000 +0200 +++ smalltalk-2.1.10/configure.ac 2005-02-03 09:29:07.000000000 +0100 @@ -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 +dnl Copyright 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2005 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.52) -AC_INIT([GNU Smalltalk], 2.1.9, help-smalltalk@gnu.org, smalltalk) +AC_INIT([GNU Smalltalk], 2.1.10, help-smalltalk@gnu.org, smalltalk) MAINTAINER="bonzini@gnu.org" dnl CURRENT:REVISION:AGE means this is the REVISION-th version of @@ -74,12 +74,13 @@ AC_C_CONST AC_C_VOLATILE ACX_C_RESTRICT +GST_C_WARN_LONG_DOUBLE GST_C_GOTO_VOID_P GST_C_SYMBOLSET GST_LIBC_SO_NAME -AC_LIBTOOL_TAGS([]) +AC_LIBTOOL_TAGS AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -116,11 +117,15 @@ AC_HEADER_STDC AC_HEADER_DIRENT AC_HEADER_TIME -AC_CHECK_HEADERS(unistd.h sys/ioctl.h sys/resource.h \ +AC_CHECK_HEADERS(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/wait.h fcntl.h) +if test x$ac_cv_header_poll_h = xno; then + AC_CONFIG_LINKS([lib-src/poll.h:lib-src/poll_.h]) +fi + AC_FUNC_ALLOCA AC_FUNC_MEMCMP AC_FUNC_OBSTACK @@ -275,4 +280,15 @@ dnl Smalltalk makefiles AC_CONFIG_FILES(blox-tk/Makefile examples/Makefile i18n/Makefile kernel/Makefile tcp/Makefile gtk/Makefile) +dnl Support VPATH builds off a CVS repository. When building from +dnl the tarball, a suitable packages.xml file is put in the root source +dnl directory by `make dist'. +AC_CONFIG_COMMANDS($srcdir/packages.xml, [ + if test -f $srcdir/packages.xml; then + : + else + $as_ln_s `pwd`/packages.xml $srcdir/packages.xml + fi +]) + AC_OUTPUT diff -rNu smalltalk-2.1.9/doc/Makefile.am smalltalk-2.1.10/doc/Makefile.am --- smalltalk-2.1.9/doc/Makefile.am 2003-05-27 19:41:22.000000000 +0200 +++ smalltalk-2.1.10/doc/Makefile.am 2004-11-25 15:19:17.000000000 +0100 @@ -28,9 +28,7 @@ $(HELP2MAN) --info-page gst \ --name "the GNU Smalltalk virtual machine" $(top_builddir)/gst >$@ -# Must check whether this stuff works with VPATH builds - -blox.texi: $(top_builddir)/blox-tk/stamp-classes +$(srcdir)/blox.texi: $(top_builddir)/blox-tk/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -48,11 +46,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/blox.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -tcp.texi: $(top_builddir)/tcp/stamp-classes +$(srcdir)/tcp.texi: $(top_builddir)/tcp/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -70,11 +68,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/tcp.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -i18n.texi: $(top_builddir)/i18n/stamp-classes +$(srcdir)/i18n.texi: $(top_builddir)/i18n/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -92,11 +90,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/i18n.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -classes.texi: $(top_builddir)/kernel/stamp-classes +$(srcdir)/classes.texi: $(top_builddir)/kernel/stamp-classes touch $(srcdir)/gst-base.texi @builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ diff -rNu smalltalk-2.1.9/doc/Makefile.in smalltalk-2.1.10/doc/Makefile.in --- smalltalk-2.1.9/doc/Makefile.in 2004-10-02 15:29:46.000000000 +0200 +++ smalltalk-2.1.10/doc/Makefile.in 2005-02-03 09:30:43.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -33,6 +33,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(dist_man_MANS) $(gst_TEXINFOS) $(gst_base_TEXINFOS) \ @@ -61,15 +62,17 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = -INFO_DEPS = $(srcdir)/gst.info $(srcdir)/gst-base.info $(srcdir)/gst-libs.info +INFO_DEPS = $(srcdir)/gst.info $(srcdir)/gst-base.info \ + $(srcdir)/gst-libs.info TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/config DVIS = gst.dvi gst-base.dvi gst-libs.dvi @@ -211,6 +214,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -318,10 +323,18 @@ $(TEXI2PDF) $< .texi.html: - $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ - -o $@ $< - if test ! -d $@ && test -d $(@:.html=); then \ - mv $(@:.html=) $@; else :; fi + rm -rf $(@:.html=.htp) + if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ + -o $(@:.html=.htp) $<; \ + then \ + rm -rf $@; \ + if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ + mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ + else \ + if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ + rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ + exit 1; \ + fi $(srcdir)/gst.info: gst.texi $(srcdir)/vers-gst.texi $(gst_TEXINFOS) gst.dvi: gst.texi $(srcdir)/vers-gst.texi $(gst_TEXINFOS) gst.pdf: gst.texi $(srcdir)/vers-gst.texi $(gst_TEXINFOS) @@ -562,7 +575,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -665,9 +678,7 @@ $(HELP2MAN) --info-page gst \ --name "the GNU Smalltalk virtual machine" $(top_builddir)/gst >$@ -# Must check whether this stuff works with VPATH builds - -blox.texi: $(top_builddir)/blox-tk/stamp-classes +$(srcdir)/blox.texi: $(top_builddir)/blox-tk/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -685,11 +696,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/blox.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -tcp.texi: $(top_builddir)/tcp/stamp-classes +$(srcdir)/tcp.texi: $(top_builddir)/tcp/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -707,11 +718,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/tcp.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -i18n.texi: $(top_builddir)/i18n/stamp-classes +$(srcdir)/i18n.texi: $(top_builddir)/i18n/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -729,11 +740,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/i18n.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -classes.texi: $(top_builddir)/kernel/stamp-classes +$(srcdir)/classes.texi: $(top_builddir)/kernel/stamp-classes touch $(srcdir)/gst-base.texi @builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ diff -rNu smalltalk-2.1.9/doc/classes.texi smalltalk-2.1.10/doc/classes.texi --- smalltalk-2.1.9/doc/classes.texi 2004-10-02 15:32:51.000000000 +0200 +++ smalltalk-2.1.10/doc/classes.texi 2005-02-02 15:37:47.000000000 +0100 @@ -20350,6 +20350,20 @@ distributed, that are part of the package. +@meindex baseDirs:@- +@item baseDirs:@- baseDirs +Resolve the names in the package according to the base directories +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 +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. + + @meindex builtFiles @item builtFiles Answer a (modifiable) OrderedCollection of files that are part of @@ -20368,11 +20382,9 @@ Answer the base directory from which to load the package. -@meindex directory:@-forBaseDir:@- -@item directory:@- dir forBaseDir:@- baseDir +@meindex directory:@- +@item directory:@- dir Set the base directory from which to load the package to dir. -If dir is a relative directory, store an absolute path composed -from the (already absolute) baseDir and from dir. @meindex fileIns @@ -20388,6 +20400,20 @@ the package. +@meindex findBaseDirs:@-for:@- +@item findBaseDirs:@- baseDirs for:@- aCollection +Resolve the names in aCollection according to the base directories +in baseDirs, and return the collection with the full filenames, or +nil if no directory was found for one or more file in aCollection. + + +@meindex findBaseDirs:@-forFile:@- +@item findBaseDirs:@- baseDirs forFile:@- fileName +Try appending 'self directory' and fileName to each of the directory +in baseDirs, and return the path to the first tried filename that exists. +Return nil if no directory is found that contains the file. + + @meindex libraries @item libraries Answer a (modifiable) Set of shared library names @@ -20524,7 +20550,15 @@ @meindex refreshDependencies @item refreshDependencies -Reload the `packages.xml' file in the image and kernel directories +Reload the `packages.xml' file in the image and kernel directories. +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. @end table diff -rNu smalltalk-2.1.9/doc/gst-base.info smalltalk-2.1.10/doc/gst-base.info --- smalltalk-2.1.9/doc/gst-base.info 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,1041 +23,1039 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  Indirect: -gst-base.info-1: 996 -gst-base.info-2: 300268 -gst-base.info-3: 600063 -gst-base.info-4: 688398 -gst-base.info-5: 1087667 +gst-base.info-1: 1015 +gst-base.info-2: 300957 +gst-base.info-3: 600644 +gst-base.info-4: 888335  Tag Table: (Indirect) -Node: Top996 -Node: Base classes2257 -Node: AbstractNamespace11566 -Node: AbstractNamespace class-instance creation12321 -Node: AbstractNamespace-accessing12760 -Node: AbstractNamespace-basic & copying13998 -Node: AbstractNamespace-copying14552 -Node: AbstractNamespace-namespace hierarchy15008 -Node: AbstractNamespace-overrides for superspaces17686 -Node: AbstractNamespace-printing19416 -Node: AbstractNamespace-testing20001 -Node: AlternativeObjectProxy20252 -Node: AlternativeObjectProxy class-instance creation20994 -Node: AlternativeObjectProxy-accessing21939 -Node: ArithmeticError22503 -Node: ArithmeticError-description22962 -Node: Array23180 -Node: Array-mutating objects23819 -Node: Array-printing24131 -Node: Array-testing24362 -Node: ArrayedCollection24515 -Node: ArrayedCollection class-instance creation25312 -Node: ArrayedCollection-basic26446 -Node: ArrayedCollection-built ins27357 -Node: ArrayedCollection-copying Collections27633 -Node: ArrayedCollection-enumerating the elements of a collection29397 -Node: ArrayedCollection-storing30556 -Node: Association30853 -Node: Association class-basic31538 -Node: Association-accessing31789 -Node: Association-finalization32409 -Node: Association-printing32642 -Node: Association-storing32902 -Node: Association-testing33168 -Node: Autoload33525 -Node: Autoload class-instance creation34203 -Node: Autoload-accessing34719 -Node: AutoloadClass34957 -Node: AutoloadClass-accessing35490 -Node: Bag36458 -Node: Bag class-basic37171 -Node: Bag-adding37440 -Node: Bag-enumerating the elements of a collection37933 -Node: Bag-extracting items38303 -Node: Bag-printing38595 -Node: Bag-removing38812 -Node: Bag-storing39134 -Node: Bag-testing collections39364 -Node: Behavior39862 -Node: Behavior-accessing class hierarchy41461 -Node: Behavior-accessing instances and variables42202 -Node: Behavior-accessing the methodDictionary43503 -Node: Behavior-built ins44598 -Node: Behavior-compilation (alternative)46801 -Node: Behavior-compiling methods47636 -Node: Behavior-creating a class hierarchy48111 -Node: Behavior-enumerating48562 -Node: Behavior-evaluating49630 -Node: Behavior-instance creation50935 -Node: Behavior-instance variables51731 -Node: Behavior-method dictionary52179 -Node: Behavior-pluggable behavior (not yet implemented)55633 -Node: Behavior-printing hierarchy56773 -Node: Behavior-support for lightweight classes57383 -Node: Behavior-testing functionality58439 -Node: Behavior-testing the class hierarchy58724 -Node: Behavior-testing the form of the instances59263 -Node: Behavior-testing the method dictionary60407 -Node: BindingDictionary61810 -Node: BindingDictionary-accessing62667 -Node: BindingDictionary-copying64563 -Node: BindingDictionary-forward declarations65110 -Node: BindingDictionary-printing65730 -Node: BindingDictionary-testing66138 -Node: BlockClosure66367 -Node: BlockClosure class-instance creation67600 -Node: BlockClosure class-testing68181 -Node: BlockClosure-accessing68489 -Node: BlockClosure-built ins70091 -Node: BlockClosure-control structures70872 -Node: BlockClosure-exception handling71553 -Node: BlockClosure-multiple process73569 -Node: BlockClosure-overriding75026 -Node: BlockClosure-testing75308 -Node: BlockClosure-unwind protection75582 -Node: BlockContext77067 -Node: BlockContext-accessing77857 -Node: BlockContext-printing79385 -Node: Boolean79624 -Node: Boolean class-testing80385 -Node: Boolean-basic80702 -Node: Boolean-C hacks81998 -Node: Boolean-overriding82260 -Node: Boolean-storing82503 -Node: ByteArray82732 -Node: ByteArray-built ins83283 -Node: ByteArray-converting84580 -Node: ByteArray-more advanced accessing84872 -Node: ByteStream91390 -Node: ByteStream-basic91779 -Node: CAggregate93069 -Node: CAggregate class-accessing93374 -Node: CAggregate-accessing93664 -Node: CallinProcess93902 -Node: CArray94430 -Node: CArray-accessing94683 -Node: CArrayCType94890 -Node: CArrayCType class-instance creation95201 -Node: CArrayCType-accessing95835 -Node: CBoolean96213 -Node: CBoolean-accessing96520 -Node: CByte96851 -Node: CByte class-conversion97243 -Node: CByte-accessing97576 -Node: CChar98028 -Node: CChar class-accessing98299 -Node: CChar-accessing98663 -Node: CCompound98980 -Node: CCompound class-instance creation99332 -Node: CCompound class-subclass creation99705 -Node: CCompound-instance creation101809 -Node: CDouble102162 -Node: CDouble class-accessing102444 -Node: CDouble-accessing102818 -Node: CFloat103145 -Node: CFloat class-accessing103433 -Node: CFloat-accessing103802 -Node: CFunctionDescriptor104124 -Node: CFunctionDescriptor class-instance creation104909 -Node: CFunctionDescriptor class-testing105271 -Node: CFunctionDescriptor-accessing105782 -Node: CFunctionDescriptor-calling106414 -Node: CFunctionDescriptor-printing108368 -Node: Character108641 -Node: Character class-built ins109620 -Node: Character class-constants110406 -Node: Character class-initializing lookup tables111214 -Node: Character class-instance creation111864 -Node: Character class-testing112236 -Node: Character-built ins112609 -Node: Character-coercion methods113398 -Node: Character-comparing113976 -Node: Character-converting114623 -Node: Character-printing114940 -Node: Character-storing115330 -Node: Character-testing115585 -Node: Character-testing functionality116237 -Node: CharacterArray116485 -Node: CharacterArray class-basic117236 -Node: CharacterArray-basic117640 -Node: CharacterArray-built ins118331 -Node: CharacterArray-comparing118760 -Node: CharacterArray-converting120984 -Node: CharacterArray-printing122355 -Node: CharacterArray-storing122988 -Node: CharacterArray-string processing123281 -Node: CharacterArray-testing functionality125834 -Node: CInt126094 -Node: CInt class-accessing126365 -Node: CInt-accessing126704 -Node: Class127036 -Node: Class-accessing instances and variables127892 -Node: Class-filing129418 -Node: Class-instance creation129872 -Node: Class-instance creation - alternative132091 -Node: Class-printing134270 -Node: Class-saving and loading134691 -Node: Class-testing136099 -Node: Class-testing functionality136352 -Node: ClassDescription136583 -Node: ClassDescription-compiling137255 -Node: ClassDescription-conversion138097 -Node: ClassDescription-copying138564 -Node: ClassDescription-filing139775 -Node: ClassDescription-organization of messages and classes140611 -Node: ClassDescription-printing141925 -Node: CLong142688 -Node: CLong class-accessing142968 -Node: CLong-accessing143332 -Node: CObject143649 -Node: CObject class-conversion144509 -Node: CObject class-instance creation144866 -Node: CObject-accessing145478 -Node: CObject-C data access145927 -Node: CObject-conversion146545 -Node: CObject-finalization147292 -Node: CObject-pointer-like behavior147770 -Node: Collection150039 -Node: Collection class-instance creation150976 -Node: Collection-adding151994 -Node: Collection-converting152355 -Node: Collection-copying Collections153462 -Node: Collection-enumeration154014 -Node: Collection-finalization157053 -Node: Collection-printing157372 -Node: Collection-removing157729 -Node: Collection-storing158583 -Node: Collection-testing collections158854 -Node: CompiledBlock159509 -Node: CompiledBlock class-instance creation160017 -Node: CompiledBlock-accessing160767 -Node: CompiledBlock-basic161840 -Node: CompiledBlock-printing162563 -Node: CompiledBlock-saving and loading162844 -Node: CompiledCode163279 -Node: CompiledCode class-cache flushing164015 -Node: CompiledCode class-instance creation164385 -Node: CompiledCode-accessing164945 -Node: CompiledCode-basic166358 -Node: CompiledCode-copying167123 -Node: CompiledCode-debugging167362 -Node: CompiledCode-decoding bytecodes167635 -Node: CompiledCode-testing accesses168056 -Node: CompiledCode-translation169231 -Node: CompiledMethod169503 -Node: CompiledMethod class-instance creation170291 -Node: CompiledMethod class-lean images170942 -Node: CompiledMethod-accessing171277 -Node: CompiledMethod-basic172658 -Node: CompiledMethod-printing173436 -Node: CompiledMethod-saving and loading173791 -Node: CompiledMethod-testing174255 -Node: ContextPart174853 -Node: ContextPart class-exception handling175637 -Node: ContextPart-accessing176597 -Node: ContextPart-built ins179844 -Node: ContextPart-copying180544 -Node: ContextPart-debugging180911 -Node: ContextPart-enumerating181449 -Node: ContextPart-exception handling181848 -Node: ContextPart-printing182124 -Node: CoreException182501 -Node: CoreException class-instance creation183777 -Node: CoreException-accessing184047 -Node: CoreException-basic184995 -Node: CoreException-enumerating185264 -Node: CoreException-exception handling185936 -Node: CoreException-instance creation186601 -Node: CPtr186917 -Node: CPtr-accessing187160 -Node: CPtrCType187709 -Node: CPtrCType class-instance creation188003 -Node: CPtrCType-accessing188302 -Node: CScalar188777 -Node: CScalar class-instance creation189073 -Node: CScalar-accessing189546 -Node: CScalarCType190075 -Node: CScalarCType-accessing190373 -Node: CScalarCType-storing190715 -Node: CShort190951 -Node: CShort class-accessing191235 -Node: CShort-accessing191604 -Node: CSmalltalk191926 -Node: CSmalltalk class-accessing192221 -Node: CSmalltalk-accessing192610 -Node: CString192952 -Node: CString class-instance creation193769 -Node: CString-accessing194242 -Node: CStringCType194771 -Node: CStringCType-accessing195040 -Node: CStruct195255 -Node: CStruct class-subclass creation195515 -Node: CType195763 -Node: CType class-C instance creation196887 -Node: CType-accessing197157 -Node: CType-C instance creation198014 -Node: CType-storing198539 -Node: CUChar198750 -Node: CUChar class-getting info199025 -Node: CUChar-accessing199403 -Node: CUInt199728 -Node: CUInt class-accessing199997 -Node: CUInt-accessing200361 -Node: CULong200678 -Node: CULong class-accessing200951 -Node: CULong-accessing201320 -Node: CUnion201642 -Node: CUnion class-subclass creation201894 -Node: CUShort202138 -Node: CUShort class-accessing202415 -Node: CUShort-accessing202789 -Node: Date203116 -Node: Date class-basic204588 -Node: Date class-instance creation (ANSI)205716 -Node: Date class-instance creation (Blue Book)206206 -Node: Date-basic207526 -Node: Date-compatibility (non-ANSI)208000 -Node: Date-date computations208413 -Node: Date-printing210036 -Node: Date-storing210264 -Node: Date-testing210487 -Node: DateTime210806 -Node: DateTime class-information211450 -Node: DateTime class-instance creation211741 -Node: DateTime class-instance creation (non-ANSI)213042 -Node: DateTime-basic213544 -Node: DateTime-computations213891 -Node: DateTime-printing214583 -Node: DateTime-splitting in dates & times214849 -Node: DateTime-storing215448 -Node: DateTime-testing215713 -Node: DateTime-time zones216088 -Node: Delay217218 -Node: Delay class-general inquiries217991 -Node: Delay class-initialization218264 -Node: Delay class-instance creation218560 -Node: Delay-accessing219063 -Node: Delay-comparing219317 -Node: Delay-process delay219603 -Node: DelayedAdaptor219839 -Node: DelayedAdaptor-accessing220375 -Node: Dictionary220754 -Node: Dictionary class-instance creation221714 -Node: Dictionary-accessing221968 -Node: Dictionary-awful ST-80 compatibility hacks223639 -Node: Dictionary-dictionary enumerating224102 -Node: Dictionary-dictionary removing225190 -Node: Dictionary-dictionary testing226059 -Node: Dictionary-polymorphism hacks226733 -Node: Dictionary-printing227018 -Node: Dictionary-rehashing227382 -Node: Dictionary-storing227599 -Node: Dictionary-testing227861 -Node: DirectedMessage228137 -Node: DirectedMessage class-creating instances228713 -Node: DirectedMessage-accessing229146 -Node: DirectedMessage-basic229454 -Node: DirectedMessage-multiple process229878 -Node: DirectedMessage-saving and loading230476 -Node: Directory230914 -Node: Directory class-C functions231695 -Node: Directory class-file name management232010 -Node: Directory class-file operations232585 -Node: Directory class-reading system defaults232967 -Node: Directory-accessing233929 -Node: Directory-enumerating234805 -Node: DLD235561 -Node: DLD class-C functions236241 -Node: DLD class-dynamic linking236632 -Node: DumperProxy237978 -Node: DumperProxy class-accessing238514 -Node: DumperProxy class-instance creation238979 -Node: DumperProxy-saving and restoring239484 -Node: Duration239899 -Node: Duration class-instance creation240310 -Node: Duration class-instance creation (non ANSI)240810 -Node: Duration-arithmetics241289 -Node: Error242477 -Node: Error-exception description242802 -Node: Exception243143 -Node: Exception class-comparison244281 -Node: Exception class-creating ExceptionCollections244745 -Node: Exception class-initialization245169 -Node: Exception class-instance creation245551 -Node: Exception class-interoperability with TrappableEvents246135 -Node: Exception-comparison246757 -Node: Exception-exception description247205 -Node: Exception-exception signaling247648 -Node: ExceptionSet248041 -Node: ExceptionSet class-instance creation248616 -Node: ExceptionSet-enumerating248881 -Node: False249445 -Node: False-basic249844 -Node: False-C hacks250838 -Node: False-printing251018 -Node: File251219 -Node: File class-C functions252052 -Node: File class-file name management252333 -Node: File class-file operations253474 -Node: File class-instance creation254102 -Node: File class-reading system defaults254604 -Node: File class-testing254891 -Node: File-accessing255543 -Node: File-file name management256643 -Node: File-file operations257429 -Node: File-testing258401 -Node: FileDescriptor259334 -Node: FileDescriptor class-initialization260495 -Node: FileDescriptor class-instance creation260833 -Node: FileDescriptor-accessing266866 -Node: FileDescriptor-basic268026 -Node: FileDescriptor-built ins269271 -Node: FileDescriptor-class type methods270483 -Node: FileDescriptor-initialize-release270913 -Node: FileDescriptor-low-level access271449 -Node: FileDescriptor-overriding inherited methods272535 -Node: FileDescriptor-printing273336 -Node: FileDescriptor-testing273636 -Node: FileSegment273860 -Node: FileSegment class-basic274479 -Node: FileSegment class-installing274836 -Node: FileSegment-basic275222 -Node: FileSegment-equality276085 -Node: FileStream276368 -Node: FileStream class-file-in277084 -Node: FileStream class-standard streams280620 -Node: FileStream-basic281360 -Node: FileStream-buffering282312 -Node: FileStream-filing in283131 -Node: FileStream-overriding inherited methods284060 -Node: FileStream-testing284933 -Node: Float285155 -Node: Float class-byte-order dependancies285958 -Node: Float class-characterization286238 -Node: Float-arithmetic287260 -Node: Float-basic287592 -Node: Float-built ins287787 -Node: Float-coercing288728 -Node: Float-printing289364 -Node: Float-storing289588 -Node: Float-testing289809 -Node: Float-testing functionality290576 -Node: FloatD290774 -Node: FloatD class-byte-order dependancies291443 -Node: FloatD class-characterization291728 -Node: FloatD class-converting293002 -Node: FloatD-built ins293258 -Node: FloatD-coercing294495 -Node: FloatE294898 -Node: FloatE class-byte-order dependancies295568 -Node: FloatE class-characterization295853 -Node: FloatE class-converting297415 -Node: FloatE-built ins297671 -Node: FloatE-coercing298908 -Node: FloatQ299311 -Node: FloatQ class-byte-order dependancies299983 -Node: FloatQ class-characterization300268 -Node: FloatQ class-converting301830 -Node: FloatQ-built ins302086 -Node: FloatQ-coercing303323 -Node: Fraction303726 -Node: Fraction class-converting304478 -Node: Fraction class-instance creation304722 -Node: Fraction-accessing305107 -Node: Fraction-arithmetic305397 -Node: Fraction-coercing306121 -Node: Fraction-comparing306760 -Node: Fraction-converting307262 -Node: Fraction-optimized cases307763 -Node: Fraction-printing308197 -Node: Fraction-testing308527 -Node: Halt308734 -Node: Halt-description309030 -Node: HashedCollection309281 -Node: HashedCollection class-instance creation310142 -Node: HashedCollection-accessing310519 -Node: HashedCollection-builtins311099 -Node: HashedCollection-copying311876 -Node: HashedCollection-enumerating the elements of a collection312354 -Node: HashedCollection-rehashing312730 -Node: HashedCollection-removing313016 -Node: HashedCollection-saving and loading313423 -Node: HashedCollection-storing313937 -Node: HashedCollection-testing collections314264 -Node: HomedAssociation315211 -Node: HomedAssociation class-basic315781 -Node: HomedAssociation-accessing316083 -Node: HomedAssociation-finalization316449 -Node: HomedAssociation-storing317069 -Node: IdentityDictionary317338 -Node: IdentitySet317731 -Node: IdentitySet-testing318130 -Node: Integer318391 -Node: Integer class-converting319220 -Node: Integer-accessing319452 -Node: Integer-basic319691 -Node: Integer-bit operators319901 -Node: Integer-converting321187 -Node: Integer-extension321891 -Node: Integer-iterators322204 -Node: Integer-math methods322570 -Node: Integer-printing323381 -Node: Integer-storing324440 -Node: Integer-testing functionality324767 -Node: Interval325041 -Node: Interval class-instance creation325637 -Node: Interval-basic326239 -Node: Interval-printing326925 -Node: Interval-storing327165 -Node: Interval-testing327412 -Node: LargeArray327683 -Node: LargeArray-overridden328086 -Node: LargeArrayedCollection328278 -Node: LargeArrayedCollection class-instance creation328821 -Node: LargeArrayedCollection-accessing329180 -Node: LargeArrayedCollection-basic329684 -Node: LargeArraySubpart330085 -Node: LargeArraySubpart class-instance creation330964 -Node: LargeArraySubpart-accessing331373 -Node: LargeArraySubpart-comparing332328 -Node: LargeArraySubpart-modifying333350 -Node: LargeByteArray334112 -Node: LargeByteArray-overridden334535 -Node: LargeInteger334976 -Node: LargeInteger-arithmetic335772 -Node: LargeInteger-bit operations336749 -Node: LargeInteger-built-ins337351 -Node: LargeInteger-coercion338430 -Node: LargeInteger-disabled338866 -Node: LargeInteger-primitive operations339241 -Node: LargeInteger-testing339721 -Node: LargeNegativeInteger340361 -Node: LargeNegativeInteger-converting341063 -Node: LargeNegativeInteger-numeric testing341451 -Node: LargeNegativeInteger-reverting to LargePositiveInteger341986 -Node: LargePositiveInteger342552 -Node: LargePositiveInteger-arithmetic343429 -Node: LargePositiveInteger-converting343905 -Node: LargePositiveInteger-helper byte-level methods344462 -Node: LargePositiveInteger-numeric testing346199 -Node: LargePositiveInteger-primitive operations346735 -Node: LargeWordArray347429 -Node: LargeWordArray-overridden347859 -Node: LargeZeroInteger348158 -Node: LargeZeroInteger-accessing348986 -Node: LargeZeroInteger-arithmetic349251 -Node: LargeZeroInteger-numeric testing350181 -Node: LargeZeroInteger-printing350518 -Node: Link350816 -Node: Link class-instance creation351361 -Node: Link-basic351593 -Node: Link-iteration351846 -Node: LinkedList352307 -Node: LinkedList-accessing352915 -Node: LinkedList-adding353231 -Node: LinkedList-enumerating353964 -Node: LinkedList-testing354305 -Node: LookupKey354661 -Node: LookupKey class-basic355215 -Node: LookupKey-accessing355457 -Node: LookupKey-printing355722 -Node: LookupKey-storing355969 -Node: LookupKey-testing356225 -Node: LookupTable356659 -Node: LookupTable class-instance creation357433 -Node: LookupTable-accessing357693 -Node: LookupTable-copying358496 -Node: LookupTable-enumerating358814 -Node: LookupTable-hashing359205 -Node: LookupTable-rehashing359444 -Node: LookupTable-removing359667 -Node: LookupTable-storing360167 -Node: Magnitude360404 -Node: Magnitude-basic360858 -Node: Magnitude-misc methods361388 -Node: MappedCollection361802 -Node: MappedCollection class-instance creation363177 -Node: MappedCollection-basic363630 -Node: Memory364521 -Node: Memory class-accessing365081 -Node: Message368978 -Node: Message class-creating instances369628 -Node: Message-accessing369920 -Node: Message-basic370362 -Node: MessageNotUnderstood370689 -Node: MessageNotUnderstood-accessing371183 -Node: MessageNotUnderstood-description371522 -Node: Metaclass371803 -Node: Metaclass class-instance creation372802 -Node: Metaclass-accessing373087 -Node: Metaclass-basic373533 -Node: Metaclass-delegation374645 -Node: Metaclass-filing376045 -Node: Metaclass-printing376336 -Node: Metaclass-testing functionality376891 -Node: MethodContext377152 -Node: MethodContext-accessing377654 -Node: MethodContext-printing378928 -Node: MethodDictionary379174 -Node: MethodDictionary-adding379705 -Node: MethodDictionary-rehashing379954 -Node: MethodDictionary-removing380208 -Node: MethodInfo380620 -Node: MethodInfo-accessing381106 -Node: MethodInfo-equality382051 -Node: Namespace382344 -Node: Namespace class-accessing382952 -Node: Namespace class-disabling instance creation383355 -Node: Namespace class-initialization383751 -Node: Namespace-accessing384188 -Node: Namespace-namespace hierarchy384477 -Node: Namespace-overrides for superspaces384975 -Node: Namespace-printing386772 -Node: NetClients.URIResolver387276 -Node: NetClients.URIResolver class-api387731 -Node: NetClients.URIResolver class-instance creation388881 -Node: NetClients.URL389258 -Node: NetClients.URL class-encoding URLs389979 -Node: NetClients.URL class-instance creation390484 -Node: NetClients.URL-accessing391309 -Node: NetClients.URL-comparing394034 -Node: NetClients.URL-copying394560 -Node: NetClients.URL-initialize-release395097 -Node: NetClients.URL-printing395396 -Node: NetClients.URL-testing395690 -Node: NetClients.URL-utilities396466 -Node: Notification396776 -Node: Notification-exception description397229 -Node: NullProxy397691 -Node: NullProxy class-instance creation398303 -Node: NullProxy-accessing398574 -Node: NullValueHolder398826 -Node: NullValueHolder class-creating instances399415 -Node: NullValueHolder-accessing399697 -Node: Number400045 -Node: Number class-converting400941 -Node: Number class-testing401401 -Node: Number-arithmetic401669 -Node: Number-comparing403002 -Node: Number-converting403425 -Node: Number-copying404693 -Node: Number-error raising405008 -Node: Number-misc math405379 -Node: Number-point creation406942 -Node: Number-retrying407237 -Node: Number-shortcuts and iterators409042 -Node: Number-testing409909 -Node: Number-truncation and round off411345 -Node: Object412160 -Node: Object class-initialization413122 -Node: Object-built ins413814 -Node: Object-change and update421748 -Node: Object-class type methods422955 -Node: Object-conversion423774 -Node: Object-copying424021 -Node: Object-debugging424685 -Node: Object-dependents access425145 -Node: Object-error raising425849 -Node: Object-exception handling426542 -Node: Object-finalization427065 -Node: Object-printing428063 -Node: Object-relational operators429808 -Node: Object-saving and loading430172 -Node: Object-storing431175 -Node: Object-syntax shortcuts431782 -Node: Object-testing functionality432109 -Node: ObjectDumper433649 -Node: ObjectDumper class-establishing proxy classes434854 -Node: ObjectDumper class-instance creation435703 -Node: ObjectDumper class-shortcuts436116 -Node: ObjectDumper class-testing436510 -Node: ObjectDumper-accessing436954 -Node: ObjectDumper-loading/dumping objects437462 -Node: ObjectDumper-stream interface437902 -Node: ObjectMemory438284 -Node: ObjectMemory class-accessing439369 -Node: ObjectMemory class-builtins439636 -Node: ObjectMemory class-initialization442983 -Node: ObjectMemory class-saving the image443275 -Node: ObjectMemory-accessing443603 -Node: ObjectMemory-builtins448557 -Node: ObjectMemory-derived information448842 -Node: OrderedCollection449829 -Node: OrderedCollection class-instance creation450551 -Node: OrderedCollection-accessing450909 -Node: OrderedCollection-adding451376 -Node: OrderedCollection-removing453440 -Node: Package454094 -Node: Package-accessing454511 -Node: PackageLoader456276 -Node: PackageLoader class-accessing456846 -Node: PackageLoader class-loading458646 -Node: PackageLoader class-testing459649 -Node: PluggableAdaptor459940 -Node: PluggableAdaptor class-creating instances460580 -Node: PluggableAdaptor-accessing461676 -Node: PluggableProxy461977 -Node: PluggableProxy class-accessing462615 -Node: PluggableProxy-saving and restoring463065 -Node: Point463500 -Node: Point class-instance creation464239 -Node: Point-accessing464552 -Node: Point-arithmetic464986 -Node: Point-comparing465705 -Node: Point-converting466518 -Node: Point-point functions467037 -Node: Point-printing467985 -Node: Point-storing468219 -Node: Point-truncation and round off468467 -Node: PositionableStream468879 -Node: PositionableStream class-instance creation469798 -Node: PositionableStream-accessing-reading470323 -Node: PositionableStream-class type methods471494 -Node: PositionableStream-positioning471999 -Node: PositionableStream-testing473153 -Node: PositionableStream-truncating473635 -Node: Process473935 -Node: Process-accessing474515 -Node: Process-basic476029 -Node: Process-builtins477576 -Node: Process-printing478386 -Node: ProcessorScheduler478600 -Node: ProcessorScheduler class-instance creation479279 -Node: ProcessorScheduler-basic479593 -Node: ProcessorScheduler-built ins481175 -Node: ProcessorScheduler-idle tasks481877 -Node: ProcessorScheduler-printing482396 -Node: ProcessorScheduler-priorities482715 -Node: ProcessorScheduler-storing484381 -Node: ProcessorScheduler-timed invocation484722 -Node: Promise485293 -Node: Promise class-creating instances485877 -Node: Promise-accessing486140 -Node: Promise-initializing486480 -Node: Promise-printing486724 -Node: Random486931 -Node: Random class-instance creation487392 -Node: Random class-shortcuts487774 -Node: Random-basic488107 -Node: Random-testing488537 -Node: ReadStream488863 -Node: ReadStream class-instance creation489315 -Node: ReadStream-accessing-reading489606 -Node: ReadWriteStream489916 -Node: ReadWriteStream class-instance creation490414 -Node: ReadWriteStream-positioning490885 -Node: Rectangle491266 -Node: Rectangle class-instance creation492067 -Node: Rectangle-accessing492625 -Node: Rectangle-copying495039 -Node: Rectangle-printing495273 -Node: Rectangle-rectangle functions495615 -Node: Rectangle-testing497472 -Node: Rectangle-transforming498302 -Node: Rectangle-truncation and round off498942 -Node: RecursionLock499247 -Node: RecursionLock class-instance creation499659 -Node: RecursionLock-accessing499909 -Node: RecursionLock-mutual exclusion500522 -Node: RecursionLock-printing500897 -Node: RootNamespace501163 -Node: RootNamespace class-instance creation501724 -Node: RootNamespace-namespace hierarchy502073 -Node: RootNamespace-overrides for superspaces502520 -Node: RootNamespace-printing503151 -Node: RunArray503675 -Node: RunArray class-instance creation504648 -Node: RunArray-accessing504936 -Node: RunArray-adding505286 -Node: RunArray-basic506376 -Node: RunArray-copying506697 -Node: RunArray-enumerating507069 -Node: RunArray-removing507545 -Node: RunArray-searching508026 -Node: RunArray-testing508456 -Node: ScaledDecimal508715 -Node: ScaledDecimal class-constants509531 -Node: ScaledDecimal class-instance creation509797 -Node: ScaledDecimal-arithmetic510250 -Node: ScaledDecimal-coercion510985 -Node: ScaledDecimal-comparing511906 -Node: ScaledDecimal-constants512558 -Node: ScaledDecimal-printing512876 -Node: ScaledDecimal-storing513352 -Node: Semaphore513606 -Node: Semaphore class-instance creation514281 -Node: Semaphore-accessing514670 -Node: Semaphore-builtins515170 -Node: Semaphore-mutual exclusion516526 -Node: Semaphore-printing516876 -Node: SequenceableCollection517122 -Node: SequenceableCollection class-instance creation517836 -Node: SequenceableCollection-basic518267 -Node: SequenceableCollection-copying SequenceableCollections521705 -Node: SequenceableCollection-enumerating523991 -Node: SequenceableCollection-replacing items527199 -Node: SequenceableCollection-testing528162 -Node: Set528612 -Node: Set-arithmetic529044 -Node: Set-awful ST-80 compatibility hacks529389 -Node: Set-comparing529766 -Node: SharedQueue530177 -Node: SharedQueue class-instance creation530711 -Node: SharedQueue-accessing531096 -Node: Signal531614 -Node: Signal-accessing532251 -Node: Signal-exception handling533117 -Node: SingletonProxy535686 -Node: SingletonProxy class-accessing536302 -Node: SingletonProxy class-instance creation536683 -Node: SingletonProxy-saving and restoring537140 -Node: SmallInteger537583 -Node: SmallInteger class-getting limits538282 -Node: SmallInteger class-testing538784 -Node: SmallInteger-bit arithmetic539096 -Node: SmallInteger-built ins539390 -Node: SmallInteger-builtins541711 -Node: SmallInteger-coercion methods542478 -Node: SmallInteger-testing functionality542850 -Node: SortedCollection543099 -Node: SortedCollection class-hacking544243 -Node: SortedCollection class-instance creation544528 -Node: SortedCollection-basic545057 -Node: SortedCollection-copying545618 -Node: SortedCollection-disabled545941 -Node: SortedCollection-enumerating546811 -Node: SortedCollection-saving and loading547157 -Node: SortedCollection-searching547519 -Node: Stream548122 -Node: Stream-accessing-reading549076 -Node: Stream-accessing-writing550885 -Node: Stream-basic551456 -Node: Stream-character writing551655 -Node: Stream-enumerating552192 -Node: Stream-filing out552443 -Node: Stream-positioning552805 -Node: Stream-printing553529 -Node: Stream-providing consistent protocols554305 -Node: Stream-storing554680 -Node: Stream-testing555070 -Node: String555372 -Node: String class-basic555966 -Node: String class-instance creation556299 -Node: String-built ins556646 -Node: String-converting558654 -Node: String-storing559015 -Node: String-testing functionality559268 -Node: String-useful functionality559508 -Node: Symbol559810 -Node: Symbol class-built ins560648 -Node: Symbol class-instance creation560879 -Node: Symbol class-symbol table562034 -Node: Symbol-basic563459 -Node: Symbol-built ins564228 -Node: Symbol-converting564553 -Node: Symbol-misc564909 -Node: Symbol-storing565089 -Node: Symbol-testing565768 -Node: Symbol-testing functionality566052 -Node: SymLink566289 -Node: SymLink class-instance creation566850 -Node: SymLink-accessing567186 -Node: SymLink-iteration567537 -Node: SymLink-printing567768 -Node: SystemDictionary567984 -Node: SystemDictionary-basic568844 -Node: SystemDictionary-builtins569141 -Node: SystemDictionary-C functions570487 -Node: SystemDictionary-miscellaneous571009 -Node: SystemDictionary-printing571370 -Node: SystemDictionary-special accessing571805 -Node: SystemDictionary-testing572418 -Node: SystemExceptions.AlreadyDefined572643 -Node: SystemExceptions.AlreadyDefined-accessing573169 -Node: SystemExceptions.ArgumentOutOfRange573437 -Node: SystemExceptions.ArgumentOutOfRange class-signaling574037 -Node: SystemExceptions.ArgumentOutOfRange-accessing574459 -Node: SystemExceptions.BadReturn575053 -Node: SystemExceptions.BadReturn-accessing575543 -Node: SystemExceptions.CInterfaceError575803 -Node: SystemExceptions.CInterfaceError-accessing576314 -Node: SystemExceptions.EmptyCollection576598 -Node: SystemExceptions.EmptyCollection-accessing577095 -Node: SystemExceptions.EndOfStream577379 -Node: SystemExceptions.EndOfStream class-signaling577880 -Node: SystemExceptions.EndOfStream-accessing578236 -Node: SystemExceptions.FileError578672 -Node: SystemExceptions.FileError-accessing579161 -Node: SystemExceptions.IndexOutOfRange579421 -Node: SystemExceptions.IndexOutOfRange class-signaling580017 -Node: SystemExceptions.IndexOutOfRange-accessing580399 -Node: SystemExceptions.InvalidArgument580929 -Node: SystemExceptions.InvalidArgument-accessing581436 -Node: SystemExceptions.InvalidProcessState581709 -Node: SystemExceptions.InvalidProcessState-accessing582250 -Node: SystemExceptions.InvalidSize582550 -Node: SystemExceptions.InvalidSize-accessing583027 -Node: SystemExceptions.InvalidValue583295 -Node: SystemExceptions.InvalidValue class-signaling583815 -Node: SystemExceptions.InvalidValue-accessing584280 -Node: SystemExceptions.MustBeBoolean584787 -Node: SystemExceptions.MutationError585219 -Node: SystemExceptions.MutationError-accessing585690 -Node: SystemExceptions.NoRunnableProcess585966 -Node: SystemExceptions.NoRunnableProcess-accessing586463 -Node: SystemExceptions.NotFound586755 -Node: SystemExceptions.NotFound class-accessing587281 -Node: SystemExceptions.NotFound-accessing587672 -Node: SystemExceptions.NotImplemented587978 -Node: SystemExceptions.NotImplemented-accessing588446 -Node: SystemExceptions.NotIndexable588726 -Node: SystemExceptions.NotIndexable-accessing589199 -Node: SystemExceptions.NotYetImplemented589471 -Node: SystemExceptions.NotYetImplemented-accessing589993 -Node: SystemExceptions.PrimitiveFailed590285 -Node: SystemExceptions.PrimitiveFailed-accessing590780 -Node: SystemExceptions.ProcessBeingTerminated591064 -Node: SystemExceptions.ProcessBeingTerminated-accessing591511 -Node: SystemExceptions.ProcessTerminated591823 -Node: SystemExceptions.ProcessTerminated-accessing592358 -Node: SystemExceptions.ReadOnlyObject592650 -Node: SystemExceptions.ReadOnlyObject-accessing593141 -Node: SystemExceptions.ShouldNotImplement593421 -Node: SystemExceptions.ShouldNotImplement-accessing593961 -Node: SystemExceptions.SubclassResponsibility594257 -Node: SystemExceptions.SubclassResponsibility-accessing594837 -Node: SystemExceptions.UserInterrupt595149 -Node: SystemExceptions.UserInterrupt-accessing595611 -Node: SystemExceptions.VMError595887 -Node: SystemExceptions.VMError-accessing596323 -Node: SystemExceptions.WrongArgumentCount596575 -Node: SystemExceptions.WrongArgumentCount-accessing597141 -Node: SystemExceptions.WrongClass597437 -Node: SystemExceptions.WrongClass class-signaling598065 -Node: SystemExceptions.WrongClass-accessing598737 -Node: SystemExceptions.WrongMessageSent599406 -Node: SystemExceptions.WrongMessageSent class-signaling600063 -Node: SystemExceptions.WrongMessageSent-accessing600496 -Node: TextCollector601101 -Node: TextCollector class-accessing601811 -Node: TextCollector-accessing602324 -Node: TextCollector-printing603139 -Node: TextCollector-set up603487 -Node: TextCollector-storing604066 -Node: Time604410 -Node: Time class-basic (UTC)605201 -Node: Time class-builtins605663 -Node: Time class-clocks606704 -Node: Time class-initialization607275 -Node: Time class-instance creation607635 -Node: Time-accessing (ANSI for DateAndTimes)608528 -Node: Time-accessing (non ANSI & for Durations)609060 -Node: Time-arithmetic609526 -Node: Time-comparing609968 -Node: TokenStream610269 -Node: TokenStream class-instance creation611089 -Node: TokenStream-basic611465 -Node: TokenStream-write methods611803 -Node: TrappableEvent612062 -Node: TrappableEvent-enumerating612650 -Node: TrappableEvent-instance creation613214 -Node: True613560 -Node: True-basic613950 -Node: True-C hacks614916 -Node: True-printing615092 -Node: UndefinedObject615290 -Node: UndefinedObject-basic616018 -Node: UndefinedObject-class creation616303 -Node: UndefinedObject-class creation - alternative618500 -Node: UndefinedObject-CObject interoperability620804 -Node: UndefinedObject-dependents access621242 -Node: UndefinedObject-printing621631 -Node: UndefinedObject-storing621927 -Node: UndefinedObject-testing622219 -Node: ValueAdaptor623071 -Node: ValueAdaptor class-creating instances623567 -Node: ValueAdaptor-accessing623871 -Node: ValueAdaptor-printing624294 -Node: ValueHolder624523 -Node: ValueHolder class-creating instances625150 -Node: ValueHolder-accessing625549 -Node: ValueHolder-initializing625858 -Node: VariableBinding626097 -Node: VariableBinding-printing626741 -Node: VariableBinding-saving and loading627072 -Node: VariableBinding-storing627545 -Node: VariableBinding-testing627849 -Node: VersionableObjectProxy628123 -Node: VersionableObjectProxy class-saving and restoring629031 -Node: VersionableObjectProxy-saving and restoring630071 -Node: VFS.ArchiveFileHandler630421 -Node: VFS.ArchiveFileHandler class-registering631350 -Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol631821 -Node: VFS.ArchiveFileHandler-directory operations633214 -Node: VFS.ArchiveFileHandler-file operations634072 -Node: VFS.ArchiveMemberHandler634375 -Node: VFS.ArchiveMemberHandler-accessing635115 -Node: VFS.ArchiveMemberHandler-directory operations636291 -Node: VFS.ArchiveMemberHandler-file operations636928 -Node: VFS.ArchiveMemberHandler-finalization637610 -Node: VFS.ArchiveMemberHandler-initializing638119 -Node: VFS.ArchiveMemberHandler-testing638669 -Node: VFS.DecodedFileHandler639571 -Node: VFS.DecodedFileHandler class-registering640124 -Node: VFS.DecodedFileHandler-files641287 -Node: VFS.ExternalArchiveFileHandler641998 -Node: VFS.ExternalArchiveFileHandler class-registering642841 -Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol643741 -Node: VFS.ExternalArchiveFileHandler-members645078 -Node: VFS.ExternalArchiveFileHandler-releasing645605 -Node: VFS.RealFileHandler645971 -Node: VFS.RealFileHandler class-C functions646726 -Node: VFS.RealFileHandler class-initialization647024 -Node: VFS.RealFileHandler-accessing647367 -Node: VFS.RealFileHandler-directory operations648573 -Node: VFS.RealFileHandler-file operations649085 -Node: VFS.RealFileHandler-testing649643 -Node: VFS.VFSHandler650403 -Node: VFS.VFSHandler class-initializing651188 -Node: VFS.VFSHandler class-instance creation652102 -Node: VFS.VFSHandler-accessing652461 -Node: VFS.VFSHandler-C functions653819 -Node: VFS.VFSHandler-directory operations654971 -Node: VFS.VFSHandler-file operations655576 -Node: VFS.VFSHandler-testing656366 -Node: Warning657223 -Node: Warning-exception description657554 -Node: WeakArray657774 -Node: WeakArray class-instance creation658279 -Node: WeakArray-accessing658619 -Node: WeakArray-conversion660283 -Node: WeakArray-loading660934 -Node: WeakIdentitySet661215 -Node: WeakKeyDictionary661689 -Node: WeakKeyDictionary-accessing662250 -Node: WeakKeyIdentityDictionary662767 -Node: WeakSet663307 -Node: WeakSet-accessing663775 -Node: WeakValueIdentityDictionary664289 -Node: WeakValueLookupTable664847 -Node: WeakValueLookupTable-hacks665467 -Node: WeakValueLookupTable-rehashing666040 -Node: WordArray666279 -Node: WriteStream666597 -Node: WriteStream class-instance creation667135 -Node: WriteStream-accessing667821 -Node: WriteStream-accessing-writing668091 -Node: WriteStream-positioning668698 -Node: ZeroDivide668924 -Node: ZeroDivide class-instance creation669429 -Node: ZeroDivide-accessing669825 -Node: ZeroDivide-description670094 -Node: Class index670325 -Node: Method index688398 -Node: Cross-reference1087667 +Node: Top1015 +Node: Base classes2176 +Node: AbstractNamespace11481 +Node: AbstractNamespace class-instance creation12228 +Node: AbstractNamespace-accessing12655 +Node: AbstractNamespace-basic & copying13881 +Node: AbstractNamespace-copying14423 +Node: AbstractNamespace-namespace hierarchy14867 +Node: AbstractNamespace-overrides for superspaces17533 +Node: AbstractNamespace-printing19251 +Node: AbstractNamespace-testing19824 +Node: AlternativeObjectProxy20063 +Node: AlternativeObjectProxy class-instance creation20797 +Node: AlternativeObjectProxy-accessing21730 +Node: ArithmeticError22282 +Node: ArithmeticError-description22733 +Node: Array22939 +Node: Array-mutating objects23570 +Node: Array-printing23870 +Node: Array-testing24089 +Node: ArrayedCollection24230 +Node: ArrayedCollection class-instance creation25019 +Node: ArrayedCollection-basic26141 +Node: ArrayedCollection-built ins27040 +Node: ArrayedCollection-copying Collections27304 +Node: ArrayedCollection-enumerating the elements of a collection29056 +Node: ArrayedCollection-storing30203 +Node: Association30488 +Node: Association class-basic31165 +Node: Association-accessing31404 +Node: Association-finalization32012 +Node: Association-printing32233 +Node: Association-storing32481 +Node: Association-testing32735 +Node: Autoload33080 +Node: Autoload class-instance creation33750 +Node: Autoload-accessing34254 +Node: AutoloadClass34480 +Node: AutoloadClass-accessing35005 +Node: Bag35961 +Node: Bag class-basic36666 +Node: Bag-adding36923 +Node: Bag-enumerating the elements of a collection37404 +Node: Bag-extracting items37762 +Node: Bag-printing38042 +Node: Bag-removing38247 +Node: Bag-storing38557 +Node: Bag-testing collections38775 +Node: Behavior39261 +Node: Behavior-accessing class hierarchy40850 +Node: Behavior-accessing instances and variables41577 +Node: Behavior-accessing the methodDictionary42864 +Node: Behavior-built ins43945 +Node: Behavior-compilation (alternative)46134 +Node: Behavior-compiling methods46955 +Node: Behavior-creating a class hierarchy47416 +Node: Behavior-enumerating47853 +Node: Behavior-evaluating48907 +Node: Behavior-instance creation50198 +Node: Behavior-instance variables50978 +Node: Behavior-method dictionary51410 +Node: Behavior-pluggable behavior (not yet implemented)54848 +Node: Behavior-printing hierarchy55972 +Node: Behavior-support for lightweight classes56566 +Node: Behavior-testing functionality57606 +Node: Behavior-testing the class hierarchy57875 +Node: Behavior-testing the form of the instances58398 +Node: Behavior-testing the method dictionary59526 +Node: BindingDictionary60913 +Node: BindingDictionary-accessing61760 +Node: BindingDictionary-copying63642 +Node: BindingDictionary-forward declarations64175 +Node: BindingDictionary-printing64781 +Node: BindingDictionary-testing65175 +Node: BlockClosure65390 +Node: BlockClosure class-instance creation66613 +Node: BlockClosure class-testing67180 +Node: BlockClosure-accessing67474 +Node: BlockClosure-built ins69062 +Node: BlockClosure-control structures69829 +Node: BlockClosure-exception handling70496 +Node: BlockClosure-multiple process72498 +Node: BlockClosure-overriding73941 +Node: BlockClosure-testing74209 +Node: BlockClosure-unwind protection74469 +Node: BlockContext75938 +Node: BlockContext-accessing76718 +Node: BlockContext-printing78232 +Node: Boolean78457 +Node: Boolean class-testing79208 +Node: Boolean-basic79511 +Node: Boolean-C hacks80793 +Node: Boolean-overriding81041 +Node: Boolean-storing81270 +Node: ByteArray81485 +Node: ByteArray-built ins82026 +Node: ByteArray-converting83309 +Node: ByteArray-more advanced accessing83587 +Node: ByteStream90091 +Node: ByteStream-basic90470 +Node: CAggregate91746 +Node: CAggregate class-accessing92041 +Node: CAggregate-accessing92317 +Node: CallinProcess92541 +Node: CArray93059 +Node: CArray-accessing93302 +Node: CArrayCType93495 +Node: CArrayCType class-instance creation93796 +Node: CArrayCType-accessing94416 +Node: CBoolean94780 +Node: CBoolean-accessing95077 +Node: CByte95394 +Node: CByte class-conversion95776 +Node: CByte-accessing96095 +Node: CChar96533 +Node: CChar class-accessing96794 +Node: CChar-accessing97144 +Node: CCompound97447 +Node: CCompound class-instance creation97789 +Node: CCompound class-subclass creation98148 +Node: CCompound-instance creation100238 +Node: CDouble100577 +Node: CDouble class-accessing100849 +Node: CDouble-accessing101209 +Node: CFloat101522 +Node: CFloat class-accessing101800 +Node: CFloat-accessing102155 +Node: CFunctionDescriptor102463 +Node: CFunctionDescriptor class-instance creation103238 +Node: CFunctionDescriptor class-testing103586 +Node: CFunctionDescriptor-accessing104083 +Node: CFunctionDescriptor-calling104701 +Node: CFunctionDescriptor-printing106641 +Node: Character106900 +Node: Character class-built ins107869 +Node: Character class-constants108641 +Node: Character class-initializing lookup tables109435 +Node: Character class-instance creation110071 +Node: Character class-testing110429 +Node: Character-built ins110788 +Node: Character-coercion methods111563 +Node: Character-comparing112127 +Node: Character-converting112760 +Node: Character-printing113063 +Node: Character-storing113437 +Node: Character-testing113676 +Node: Character-testing functionality114312 +Node: CharacterArray114544 +Node: CharacterArray class-basic115285 +Node: CharacterArray-basic115675 +Node: CharacterArray-built ins116352 +Node: CharacterArray-comparing116767 +Node: CharacterArray-converting118977 +Node: CharacterArray-printing120334 +Node: CharacterArray-storing120953 +Node: CharacterArray-string processing121232 +Node: CharacterArray-testing functionality123771 +Node: CInt124017 +Node: CInt class-accessing124278 +Node: CInt-accessing124603 +Node: Class124921 +Node: Class-accessing instances and variables125767 +Node: Class-filing127279 +Node: Class-instance creation127719 +Node: Class-instance creation - alternative129924 +Node: Class-printing132089 +Node: Class-saving and loading132496 +Node: Class-testing133890 +Node: Class-testing functionality134129 +Node: ClassDescription134346 +Node: ClassDescription-compiling135008 +Node: ClassDescription-conversion135836 +Node: ClassDescription-copying136289 +Node: ClassDescription-filing137486 +Node: ClassDescription-organization of messages and classes138308 +Node: ClassDescription-printing139608 +Node: CLong140357 +Node: CLong class-accessing140627 +Node: CLong-accessing140977 +Node: CObject141280 +Node: CObject class-conversion142130 +Node: CObject class-instance creation142473 +Node: CObject-accessing143071 +Node: CObject-C data access143506 +Node: CObject-conversion144110 +Node: CObject-finalization144843 +Node: CObject-pointer-like behavior145307 +Node: Collection147562 +Node: Collection class-instance creation148489 +Node: Collection-adding149493 +Node: Collection-converting149840 +Node: Collection-copying Collections150933 +Node: Collection-enumeration151471 +Node: Collection-finalization154496 +Node: Collection-printing154801 +Node: Collection-removing155144 +Node: Collection-storing155984 +Node: Collection-testing collections156241 +Node: CompiledBlock156880 +Node: CompiledBlock class-instance creation157378 +Node: CompiledBlock-accessing158114 +Node: CompiledBlock-basic159173 +Node: CompiledBlock-printing159882 +Node: CompiledBlock-saving and loading160149 +Node: CompiledCode160570 +Node: CompiledCode class-cache flushing161296 +Node: CompiledCode class-instance creation161652 +Node: CompiledCode-accessing162198 +Node: CompiledCode-basic163597 +Node: CompiledCode-copying164348 +Node: CompiledCode-debugging164573 +Node: CompiledCode-decoding bytecodes164832 +Node: CompiledCode-testing accesses165239 +Node: CompiledCode-translation166400 +Node: CompiledMethod166658 +Node: CompiledMethod class-instance creation167436 +Node: CompiledMethod class-lean images168073 +Node: CompiledMethod-accessing168394 +Node: CompiledMethod-basic169761 +Node: CompiledMethod-printing170525 +Node: CompiledMethod-saving and loading170866 +Node: CompiledMethod-testing171316 +Node: ContextPart171900 +Node: ContextPart class-exception handling172674 +Node: ContextPart-accessing173620 +Node: ContextPart-built ins176853 +Node: ContextPart-copying177539 +Node: ContextPart-debugging177892 +Node: ContextPart-enumerating178416 +Node: ContextPart-exception handling178801 +Node: ContextPart-printing179063 +Node: CoreException179426 +Node: CoreException class-instance creation180692 +Node: CoreException-accessing180948 +Node: CoreException-basic181882 +Node: CoreException-enumerating182137 +Node: CoreException-exception handling182795 +Node: CoreException-instance creation183446 +Node: CPtr183748 +Node: CPtr-accessing183981 +Node: CPtrCType184516 +Node: CPtrCType class-instance creation184800 +Node: CPtrCType-accessing185085 +Node: CScalar185546 +Node: CScalar class-instance creation185832 +Node: CScalar-accessing186291 +Node: CScalarCType186806 +Node: CScalarCType-accessing187094 +Node: CScalarCType-storing187422 +Node: CShort187644 +Node: CShort class-accessing187918 +Node: CShort-accessing188273 +Node: CSmalltalk188581 +Node: CSmalltalk class-accessing188866 +Node: CSmalltalk-accessing189241 +Node: CString189569 +Node: CString class-instance creation190376 +Node: CString-accessing190835 +Node: CStringCType191350 +Node: CStringCType-accessing191609 +Node: CStruct191810 +Node: CStruct class-subclass creation192060 +Node: CType192294 +Node: CType class-C instance creation193408 +Node: CType-accessing193664 +Node: CType-C instance creation194507 +Node: CType-storing195018 +Node: CUChar195215 +Node: CUChar class-getting info195480 +Node: CUChar-accessing195844 +Node: CUInt196155 +Node: CUInt class-accessing196414 +Node: CUInt-accessing196764 +Node: CULong197067 +Node: CULong class-accessing197330 +Node: CULong-accessing197685 +Node: CUnion197993 +Node: CUnion class-subclass creation198235 +Node: CUShort198465 +Node: CUShort class-accessing198732 +Node: CUShort-accessing199092 +Node: Date199405 +Node: Date class-basic200867 +Node: Date class-instance creation (ANSI)201981 +Node: Date class-instance creation (Blue Book)202457 +Node: Date-basic203763 +Node: Date-compatibility (non-ANSI)204223 +Node: Date-date computations204622 +Node: Date-printing206231 +Node: Date-storing206445 +Node: Date-testing206654 +Node: DateTime206959 +Node: DateTime class-information207593 +Node: DateTime class-instance creation207870 +Node: DateTime class-instance creation (non-ANSI)209157 +Node: DateTime-basic209645 +Node: DateTime-computations209978 +Node: DateTime-printing210656 +Node: DateTime-splitting in dates & times210908 +Node: DateTime-storing211493 +Node: DateTime-testing211744 +Node: DateTime-time zones212105 +Node: Delay213219 +Node: Delay class-general inquiries213982 +Node: Delay class-initialization214241 +Node: Delay class-instance creation214523 +Node: Delay-accessing215012 +Node: Delay-comparing215252 +Node: Delay-process delay215524 +Node: DelayedAdaptor215746 +Node: DelayedAdaptor-accessing216272 +Node: Dictionary216637 +Node: Dictionary class-instance creation217587 +Node: Dictionary-accessing217827 +Node: Dictionary-awful ST-80 compatibility hacks219484 +Node: Dictionary-dictionary enumerating219933 +Node: Dictionary-dictionary removing221007 +Node: Dictionary-dictionary testing221862 +Node: Dictionary-polymorphism hacks222522 +Node: Dictionary-printing222793 +Node: Dictionary-rehashing223143 +Node: Dictionary-storing223346 +Node: Dictionary-testing223592 +Node: DirectedMessage223852 +Node: DirectedMessage class-creating instances224418 +Node: DirectedMessage-accessing224837 +Node: DirectedMessage-basic225131 +Node: DirectedMessage-multiple process225541 +Node: DirectedMessage-saving and loading226125 +Node: Directory226549 +Node: Directory class-C functions227320 +Node: Directory class-file name management227621 +Node: Directory class-file operations228182 +Node: Directory class-reading system defaults228550 +Node: Directory-accessing229498 +Node: Directory-enumerating230360 +Node: DLD231102 +Node: DLD class-C functions231772 +Node: DLD class-dynamic linking232149 +Node: DumperProxy233481 +Node: DumperProxy class-accessing234007 +Node: DumperProxy class-instance creation234458 +Node: DumperProxy-saving and restoring234949 +Node: Duration235350 +Node: Duration class-instance creation235751 +Node: Duration class-instance creation (non ANSI)236237 +Node: Duration-arithmetics236702 +Node: Error237876 +Node: Error-exception description238191 +Node: Exception238518 +Node: Exception class-comparison239646 +Node: Exception class-creating ExceptionCollections240096 +Node: Exception class-initialization240506 +Node: Exception class-instance creation240874 +Node: Exception class-interoperability with TrappableEvents241444 +Node: Exception-comparison242052 +Node: Exception-exception description242486 +Node: Exception-exception signaling242915 +Node: ExceptionSet243294 +Node: ExceptionSet class-instance creation243859 +Node: ExceptionSet-enumerating244110 +Node: False244660 +Node: False-basic245049 +Node: False-C hacks246029 +Node: False-printing246195 +Node: File246382 +Node: File class-C functions247205 +Node: File class-file name management247472 +Node: File class-file operations248599 +Node: File class-instance creation249213 +Node: File class-reading system defaults249701 +Node: File class-testing249974 +Node: File-accessing250612 +Node: File-file name management251698 +Node: File-file operations252470 +Node: File-testing253428 +Node: FileDescriptor254345 +Node: FileDescriptor class-initialization255496 +Node: FileDescriptor class-instance creation255820 +Node: FileDescriptor-accessing261839 +Node: FileDescriptor-basic262985 +Node: FileDescriptor-built ins264216 +Node: FileDescriptor-class type methods265414 +Node: FileDescriptor-initialize-release265830 +Node: FileDescriptor-low-level access266352 +Node: FileDescriptor-overriding inherited methods267424 +Node: FileDescriptor-printing268211 +Node: FileDescriptor-testing268495 +Node: FileSegment268703 +Node: FileSegment class-basic269312 +Node: FileSegment class-installing269655 +Node: FileSegment-basic270027 +Node: FileSegment-equality270876 +Node: FileStream271145 +Node: FileStream class-file-in271851 +Node: FileStream class-standard streams275373 +Node: FileStream-basic276099 +Node: FileStream-buffering277037 +Node: FileStream-filing in277842 +Node: FileStream-overriding inherited methods278757 +Node: FileStream-testing279616 +Node: Float279824 +Node: Float class-byte-order dependancies280617 +Node: Float class-characterization280883 +Node: Float-arithmetic281891 +Node: Float-basic282209 +Node: Float-built ins282390 +Node: Float-coercing283317 +Node: Float-printing283939 +Node: Float-storing284149 +Node: Float-testing284356 +Node: Float-testing functionality285109 +Node: FloatD285291 +Node: FloatD class-byte-order dependancies285950 +Node: FloatD class-characterization286221 +Node: FloatD class-converting287481 +Node: FloatD-built ins287723 +Node: FloatD-coercing288946 +Node: FloatE289335 +Node: FloatE class-byte-order dependancies289995 +Node: FloatE class-characterization290266 +Node: FloatE class-converting291814 +Node: FloatE-built ins292056 +Node: FloatE-coercing293279 +Node: FloatQ293668 +Node: FloatQ class-byte-order dependancies294330 +Node: FloatQ class-characterization294601 +Node: FloatQ class-converting296149 +Node: FloatQ-built ins296391 +Node: FloatQ-coercing297614 +Node: Fraction298003 +Node: Fraction class-converting298745 +Node: Fraction class-instance creation298975 +Node: Fraction-accessing299346 +Node: Fraction-arithmetic299622 +Node: Fraction-coercing300332 +Node: Fraction-comparing300957 +Node: Fraction-converting301445 +Node: Fraction-optimized cases301932 +Node: Fraction-printing302352 +Node: Fraction-testing302668 +Node: Halt302859 +Node: Halt-description303145 +Node: HashedCollection303382 +Node: HashedCollection class-instance creation304233 +Node: HashedCollection-accessing304596 +Node: HashedCollection-builtins305162 +Node: HashedCollection-copying305925 +Node: HashedCollection-enumerating the elements of a collection306389 +Node: HashedCollection-rehashing306751 +Node: HashedCollection-removing307023 +Node: HashedCollection-saving and loading307416 +Node: HashedCollection-storing307916 +Node: HashedCollection-testing collections308229 +Node: HomedAssociation309160 +Node: HomedAssociation class-basic309720 +Node: HomedAssociation-accessing310008 +Node: HomedAssociation-finalization310360 +Node: HomedAssociation-storing310966 +Node: IdentityDictionary311221 +Node: IdentitySet311604 +Node: IdentitySet-testing311993 +Node: Integer312240 +Node: Integer class-converting313059 +Node: Integer-accessing313277 +Node: Integer-basic313502 +Node: Integer-bit operators313698 +Node: Integer-converting314970 +Node: Integer-extension315660 +Node: Integer-iterators315959 +Node: Integer-math methods316311 +Node: Integer-printing317108 +Node: Integer-storing318153 +Node: Integer-testing functionality318464 +Node: Interval318722 +Node: Interval class-instance creation319308 +Node: Interval-basic319896 +Node: Interval-printing320568 +Node: Interval-storing320794 +Node: Interval-testing321027 +Node: LargeArray321284 +Node: LargeArray-overridden321677 +Node: LargeArrayedCollection321855 +Node: LargeArrayedCollection class-instance creation322388 +Node: LargeArrayedCollection-accessing322733 +Node: LargeArrayedCollection-basic323223 +Node: LargeArraySubpart323610 +Node: LargeArraySubpart class-instance creation324479 +Node: LargeArraySubpart-accessing324874 +Node: LargeArraySubpart-comparing325815 +Node: LargeArraySubpart-modifying326823 +Node: LargeByteArray327571 +Node: LargeByteArray-overridden327984 +Node: LargeInteger328411 +Node: LargeInteger-arithmetic329197 +Node: LargeInteger-bit operations330160 +Node: LargeInteger-built-ins330748 +Node: LargeInteger-coercion331813 +Node: LargeInteger-disabled332235 +Node: LargeInteger-primitive operations332596 +Node: LargeInteger-testing333062 +Node: LargeNegativeInteger333688 +Node: LargeNegativeInteger-converting334380 +Node: LargeNegativeInteger-numeric testing334754 +Node: LargeNegativeInteger-reverting to LargePositiveInteger335275 +Node: LargePositiveInteger335827 +Node: LargePositiveInteger-arithmetic336694 +Node: LargePositiveInteger-converting337156 +Node: LargePositiveInteger-helper byte-level methods337699 +Node: LargePositiveInteger-numeric testing339422 +Node: LargePositiveInteger-primitive operations339944 +Node: LargeWordArray340624 +Node: LargeWordArray-overridden341044 +Node: LargeZeroInteger341329 +Node: LargeZeroInteger-accessing342147 +Node: LargeZeroInteger-arithmetic342398 +Node: LargeZeroInteger-numeric testing343314 +Node: LargeZeroInteger-printing343637 +Node: Link343921 +Node: Link class-instance creation344456 +Node: Link-basic344674 +Node: Link-iteration344913 +Node: LinkedList345360 +Node: LinkedList-accessing345958 +Node: LinkedList-adding346260 +Node: LinkedList-enumerating346979 +Node: LinkedList-testing347306 +Node: LookupKey347648 +Node: LookupKey class-basic348192 +Node: LookupKey-accessing348420 +Node: LookupKey-printing348671 +Node: LookupKey-storing348904 +Node: LookupKey-testing349146 +Node: LookupTable349566 +Node: LookupTable class-instance creation350330 +Node: LookupTable-accessing350576 +Node: LookupTable-copying351365 +Node: LookupTable-enumerating351669 +Node: LookupTable-hashing352046 +Node: LookupTable-rehashing352271 +Node: LookupTable-removing352480 +Node: LookupTable-storing352966 +Node: Magnitude353189 +Node: Magnitude-basic353633 +Node: Magnitude-misc methods354149 +Node: MappedCollection354549 +Node: MappedCollection class-instance creation355912 +Node: MappedCollection-basic356349 +Node: Memory357224 +Node: Memory class-accessing357772 +Node: Message361653 +Node: Message class-creating instances362291 +Node: Message-accessing362567 +Node: Message-basic362993 +Node: MessageNotUnderstood363304 +Node: MessageNotUnderstood-accessing363786 +Node: MessageNotUnderstood-description364109 +Node: Metaclass364374 +Node: Metaclass class-instance creation365361 +Node: Metaclass-accessing365630 +Node: Metaclass-basic366060 +Node: Metaclass-delegation367156 +Node: Metaclass-filing368540 +Node: Metaclass-printing368815 +Node: Metaclass-testing functionality369354 +Node: MethodContext369599 +Node: MethodContext-accessing370089 +Node: MethodContext-printing371347 +Node: MethodDictionary371577 +Node: MethodDictionary-adding372096 +Node: MethodDictionary-rehashing372329 +Node: MethodDictionary-removing372567 +Node: MethodInfo372963 +Node: MethodInfo-accessing373437 +Node: MethodInfo-equality374366 +Node: Namespace374643 +Node: Namespace class-accessing375239 +Node: Namespace class-disabling instance creation375626 +Node: Namespace class-initialization376006 +Node: Namespace-accessing376427 +Node: Namespace-namespace hierarchy376700 +Node: Namespace-overrides for superspaces377182 +Node: Namespace-printing378963 +Node: NetClients.URIResolver379451 +Node: NetClients.URIResolver class-api379894 +Node: NetClients.URIResolver class-instance creation381028 +Node: NetClients.URL381389 +Node: NetClients.URL class-encoding URLs382098 +Node: NetClients.URL class-instance creation382587 +Node: NetClients.URL-accessing383396 +Node: NetClients.URL-comparing386105 +Node: NetClients.URL-copying386615 +Node: NetClients.URL-initialize-release387136 +Node: NetClients.URL-printing387419 +Node: NetClients.URL-testing387697 +Node: NetClients.URL-utilities388457 +Node: Notification388751 +Node: Notification-exception description389192 +Node: NullProxy389638 +Node: NullProxy class-instance creation390238 +Node: NullProxy-accessing390493 +Node: NullValueHolder390729 +Node: NullValueHolder class-creating instances391306 +Node: NullValueHolder-accessing391572 +Node: Number391904 +Node: Number class-converting392788 +Node: Number class-testing393232 +Node: Number-arithmetic393484 +Node: Number-comparing394801 +Node: Number-converting395208 +Node: Number-copying396460 +Node: Number-error raising396759 +Node: Number-misc math397114 +Node: Number-point creation398661 +Node: Number-retrying398940 +Node: Number-shortcuts and iterators400727 +Node: Number-testing401576 +Node: Number-truncation and round off402994 +Node: Object403791 +Node: Object class-initialization404741 +Node: Object-built ins405417 +Node: Object-change and update413335 +Node: Object-class type methods414526 +Node: Object-conversion415329 +Node: Object-copying415560 +Node: Object-debugging416208 +Node: Object-dependents access416652 +Node: Object-error raising417340 +Node: Object-exception handling418017 +Node: Object-finalization418522 +Node: Object-printing419502 +Node: Object-relational operators421229 +Node: Object-saving and loading421575 +Node: Object-storing422560 +Node: Object-syntax shortcuts423149 +Node: Object-testing functionality423458 +Node: ObjectDumper424980 +Node: ObjectDumper class-establishing proxy classes426173 +Node: ObjectDumper class-instance creation427006 +Node: ObjectDumper class-shortcuts427403 +Node: ObjectDumper class-testing427781 +Node: ObjectDumper-accessing428209 +Node: ObjectDumper-loading/dumping objects428701 +Node: ObjectDumper-stream interface429125 +Node: ObjectMemory429491 +Node: ObjectMemory class-accessing430564 +Node: ObjectMemory class-builtins430815 +Node: ObjectMemory class-initialization434146 +Node: ObjectMemory class-saving the image434422 +Node: ObjectMemory-accessing434734 +Node: ObjectMemory-builtins439672 +Node: ObjectMemory-derived information439941 +Node: OrderedCollection440912 +Node: OrderedCollection class-instance creation441622 +Node: OrderedCollection-accessing441964 +Node: OrderedCollection-adding442415 +Node: OrderedCollection-removing444463 +Node: Package445101 +Node: Package-accessing445506 +Node: PackageLoader448354 +Node: PackageLoader class-accessing448912 +Node: PackageLoader class-loading451263 +Node: PackageLoader class-testing452250 +Node: PluggableAdaptor452525 +Node: PluggableAdaptor class-creating instances453153 +Node: PluggableAdaptor-accessing454232 +Node: PluggableProxy454517 +Node: PluggableProxy class-accessing455143 +Node: PluggableProxy-saving and restoring455577 +Node: Point455996 +Node: Point class-instance creation456723 +Node: Point-accessing457020 +Node: Point-arithmetic457438 +Node: Point-comparing458141 +Node: Point-converting458938 +Node: Point-point functions459441 +Node: Point-printing460373 +Node: Point-storing460591 +Node: Point-truncation and round off460823 +Node: PositionableStream461219 +Node: PositionableStream class-instance creation462126 +Node: PositionableStream-accessing-reading462635 +Node: PositionableStream-class type methods463790 +Node: PositionableStream-positioning464279 +Node: PositionableStream-testing465417 +Node: PositionableStream-truncating465883 +Node: Process466167 +Node: Process-accessing466735 +Node: Process-basic468233 +Node: Process-builtins469764 +Node: Process-printing470558 +Node: ProcessorScheduler470756 +Node: ProcessorScheduler class-instance creation471423 +Node: ProcessorScheduler-basic471721 +Node: ProcessorScheduler-built ins473287 +Node: ProcessorScheduler-idle tasks473973 +Node: ProcessorScheduler-printing474476 +Node: ProcessorScheduler-priorities474779 +Node: ProcessorScheduler-storing476429 +Node: ProcessorScheduler-timed invocation476754 +Node: Promise477309 +Node: Promise class-creating instances477881 +Node: Promise-accessing478128 +Node: Promise-initializing478452 +Node: Promise-printing478680 +Node: Random478871 +Node: Random class-instance creation479320 +Node: Random class-shortcuts479686 +Node: Random-basic480003 +Node: Random-testing480417 +Node: ReadStream480727 +Node: ReadStream class-instance creation481167 +Node: ReadStream-accessing-reading481442 +Node: ReadWriteStream481736 +Node: ReadWriteStream class-instance creation482222 +Node: ReadWriteStream-positioning482677 +Node: Rectangle483042 +Node: Rectangle class-instance creation483831 +Node: Rectangle-accessing484373 +Node: Rectangle-copying486771 +Node: Rectangle-printing486989 +Node: Rectangle-rectangle functions487315 +Node: Rectangle-testing489156 +Node: Rectangle-transforming489970 +Node: Rectangle-truncation and round off490594 +Node: RecursionLock490883 +Node: RecursionLock class-instance creation491283 +Node: RecursionLock-accessing491517 +Node: RecursionLock-mutual exclusion492114 +Node: RecursionLock-printing492473 +Node: RootNamespace492723 +Node: RootNamespace class-instance creation493272 +Node: RootNamespace-namespace hierarchy493605 +Node: RootNamespace-overrides for superspaces494036 +Node: RootNamespace-printing494651 +Node: RunArray495159 +Node: RunArray class-instance creation496120 +Node: RunArray-accessing496392 +Node: RunArray-adding496726 +Node: RunArray-basic497800 +Node: RunArray-copying498105 +Node: RunArray-enumerating498461 +Node: RunArray-removing498921 +Node: RunArray-searching499386 +Node: RunArray-testing499800 +Node: ScaledDecimal500043 +Node: ScaledDecimal class-constants500847 +Node: ScaledDecimal class-instance creation501097 +Node: ScaledDecimal-arithmetic501534 +Node: ScaledDecimal-coercion502253 +Node: ScaledDecimal-comparing503158 +Node: ScaledDecimal-constants503794 +Node: ScaledDecimal-printing504096 +Node: ScaledDecimal-storing504556 +Node: Semaphore504794 +Node: Semaphore class-instance creation505457 +Node: Semaphore-accessing505830 +Node: Semaphore-builtins506314 +Node: Semaphore-mutual exclusion507654 +Node: Semaphore-printing507988 +Node: SequenceableCollection508218 +Node: SequenceableCollection class-instance creation508920 +Node: SequenceableCollection-basic509335 +Node: SequenceableCollection-copying SequenceableCollections512757 +Node: SequenceableCollection-enumerating515027 +Node: SequenceableCollection-replacing items518219 +Node: SequenceableCollection-testing519166 +Node: Set519600 +Node: Set-arithmetic520020 +Node: Set-awful ST-80 compatibility hacks520349 +Node: Set-comparing520710 +Node: SharedQueue521105 +Node: SharedQueue class-instance creation521627 +Node: SharedQueue-accessing521996 +Node: Signal522498 +Node: Signal-accessing523123 +Node: Signal-exception handling523973 +Node: SingletonProxy526526 +Node: SingletonProxy class-accessing527130 +Node: SingletonProxy class-instance creation527495 +Node: SingletonProxy-saving and restoring527936 +Node: SmallInteger528363 +Node: SmallInteger class-getting limits529050 +Node: SmallInteger class-testing529536 +Node: SmallInteger-bit arithmetic529832 +Node: SmallInteger-built ins530110 +Node: SmallInteger-builtins532415 +Node: SmallInteger-coercion methods533166 +Node: SmallInteger-testing functionality533522 +Node: SortedCollection533755 +Node: SortedCollection class-hacking534887 +Node: SortedCollection class-instance creation535156 +Node: SortedCollection-basic535669 +Node: SortedCollection-copying536214 +Node: SortedCollection-disabled536521 +Node: SortedCollection-enumerating537375 +Node: SortedCollection-saving and loading537705 +Node: SortedCollection-searching538051 +Node: Stream538638 +Node: Stream-accessing-reading539580 +Node: Stream-accessing-writing541373 +Node: Stream-basic541928 +Node: Stream-character writing542111 +Node: Stream-enumerating542632 +Node: Stream-filing out542867 +Node: Stream-positioning543213 +Node: Stream-printing543921 +Node: Stream-providing consistent protocols544681 +Node: Stream-storing545040 +Node: Stream-testing545412 +Node: String545696 +Node: String class-basic546278 +Node: String class-instance creation546595 +Node: String-built ins546926 +Node: String-converting548918 +Node: String-storing549263 +Node: String-testing functionality549500 +Node: String-useful functionality549724 +Node: Symbol550010 +Node: Symbol class-built ins550836 +Node: Symbol class-instance creation551051 +Node: Symbol class-symbol table552190 +Node: Symbol-basic553599 +Node: Symbol-built ins554352 +Node: Symbol-converting554661 +Node: Symbol-misc555001 +Node: Symbol-storing555165 +Node: Symbol-testing555828 +Node: Symbol-testing functionality556096 +Node: SymLink556315 +Node: SymLink class-instance creation556864 +Node: SymLink-accessing557184 +Node: SymLink-iteration557519 +Node: SymLink-printing557734 +Node: SystemDictionary557934 +Node: SystemDictionary-basic558782 +Node: SystemDictionary-builtins559063 +Node: SystemDictionary-C functions560393 +Node: SystemDictionary-miscellaneous560899 +Node: SystemDictionary-printing561244 +Node: SystemDictionary-special accessing561663 +Node: SystemDictionary-testing562260 +Node: SystemExceptions.AlreadyDefined562469 +Node: SystemExceptions.AlreadyDefined-accessing562983 +Node: SystemExceptions.ArgumentOutOfRange563235 +Node: SystemExceptions.ArgumentOutOfRange class-signaling563823 +Node: SystemExceptions.ArgumentOutOfRange-accessing564229 +Node: SystemExceptions.BadReturn564807 +Node: SystemExceptions.BadReturn-accessing565285 +Node: SystemExceptions.CInterfaceError565529 +Node: SystemExceptions.CInterfaceError-accessing566028 +Node: SystemExceptions.EmptyCollection566296 +Node: SystemExceptions.EmptyCollection-accessing566781 +Node: SystemExceptions.EndOfStream567049 +Node: SystemExceptions.EndOfStream class-signaling567538 +Node: SystemExceptions.EndOfStream-accessing567878 +Node: SystemExceptions.FileError568298 +Node: SystemExceptions.FileError-accessing568775 +Node: SystemExceptions.IndexOutOfRange569019 +Node: SystemExceptions.IndexOutOfRange class-signaling569603 +Node: SystemExceptions.IndexOutOfRange-accessing569969 +Node: SystemExceptions.InvalidArgument570483 +Node: SystemExceptions.InvalidArgument-accessing570978 +Node: SystemExceptions.InvalidProcessState571235 +Node: SystemExceptions.InvalidProcessState-accessing571764 +Node: SystemExceptions.InvalidSize572048 +Node: SystemExceptions.InvalidSize-accessing572513 +Node: SystemExceptions.InvalidValue572765 +Node: SystemExceptions.InvalidValue class-signaling573273 +Node: SystemExceptions.InvalidValue-accessing573722 +Node: SystemExceptions.MustBeBoolean574213 +Node: SystemExceptions.MutationError574633 +Node: SystemExceptions.MutationError-accessing575092 +Node: SystemExceptions.NoRunnableProcess575352 +Node: SystemExceptions.NoRunnableProcess-accessing575837 +Node: SystemExceptions.NotFound576113 +Node: SystemExceptions.NotFound class-accessing576627 +Node: SystemExceptions.NotFound-accessing577002 +Node: SystemExceptions.NotImplemented577292 +Node: SystemExceptions.NotImplemented-accessing577748 +Node: SystemExceptions.NotIndexable578012 +Node: SystemExceptions.NotIndexable-accessing578473 +Node: SystemExceptions.NotYetImplemented578729 +Node: SystemExceptions.NotYetImplemented-accessing579239 +Node: SystemExceptions.PrimitiveFailed579515 +Node: SystemExceptions.PrimitiveFailed-accessing579998 +Node: SystemExceptions.ProcessBeingTerminated580266 +Node: SystemExceptions.ProcessBeingTerminated-accessing580701 +Node: SystemExceptions.ProcessTerminated580997 +Node: SystemExceptions.ProcessTerminated-accessing581520 +Node: SystemExceptions.ReadOnlyObject581796 +Node: SystemExceptions.ReadOnlyObject-accessing582275 +Node: SystemExceptions.ShouldNotImplement582539 +Node: SystemExceptions.ShouldNotImplement-accessing583067 +Node: SystemExceptions.SubclassResponsibility583347 +Node: SystemExceptions.SubclassResponsibility-accessing583915 +Node: SystemExceptions.UserInterrupt584211 +Node: SystemExceptions.UserInterrupt-accessing584661 +Node: SystemExceptions.VMError584921 +Node: SystemExceptions.VMError-accessing585345 +Node: SystemExceptions.WrongArgumentCount585581 +Node: SystemExceptions.WrongArgumentCount-accessing586135 +Node: SystemExceptions.WrongClass586415 +Node: SystemExceptions.WrongClass class-signaling587031 +Node: SystemExceptions.WrongClass-accessing587687 +Node: SystemExceptions.WrongMessageSent588340 +Node: SystemExceptions.WrongMessageSent class-signaling588985 +Node: SystemExceptions.WrongMessageSent-accessing589402 +Node: TextCollector589991 +Node: TextCollector class-accessing590689 +Node: TextCollector-accessing591186 +Node: TextCollector-printing591985 +Node: TextCollector-set up592317 +Node: TextCollector-storing592880 +Node: Time593208 +Node: Time class-basic (UTC)593987 +Node: Time class-builtins594433 +Node: Time class-clocks595458 +Node: Time class-initialization596013 +Node: Time class-instance creation596357 +Node: Time-accessing (ANSI for DateAndTimes)597234 +Node: Time-accessing (non ANSI & for Durations)597750 +Node: Time-arithmetic598200 +Node: Time-comparing598626 +Node: TokenStream598911 +Node: TokenStream class-instance creation599719 +Node: TokenStream-basic600079 +Node: TokenStream-write methods600401 +Node: TrappableEvent600644 +Node: TrappableEvent-enumerating601220 +Node: TrappableEvent-instance creation601768 +Node: True602098 +Node: True-basic602476 +Node: True-C hacks603426 +Node: True-printing603586 +Node: UndefinedObject603768 +Node: UndefinedObject-basic604484 +Node: UndefinedObject-class creation604753 +Node: UndefinedObject-class creation - alternative606934 +Node: UndefinedObject-CObject interoperability609222 +Node: UndefinedObject-dependents access609644 +Node: UndefinedObject-printing610017 +Node: UndefinedObject-storing610297 +Node: UndefinedObject-testing610573 +Node: ValueAdaptor611409 +Node: ValueAdaptor class-creating instances611893 +Node: ValueAdaptor-accessing612181 +Node: ValueAdaptor-printing612588 +Node: ValueHolder612801 +Node: ValueHolder class-creating instances613416 +Node: ValueHolder-accessing613799 +Node: ValueHolder-initializing614092 +Node: VariableBinding614315 +Node: VariableBinding-printing614947 +Node: VariableBinding-saving and loading615262 +Node: VariableBinding-storing615719 +Node: VariableBinding-testing616007 +Node: VersionableObjectProxy616265 +Node: VersionableObjectProxy class-saving and restoring617161 +Node: VersionableObjectProxy-saving and restoring618185 +Node: VFS.ArchiveFileHandler618519 +Node: VFS.ArchiveFileHandler class-registering619436 +Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol619891 +Node: VFS.ArchiveFileHandler-directory operations621268 +Node: VFS.ArchiveFileHandler-file operations622110 +Node: VFS.ArchiveMemberHandler622397 +Node: VFS.ArchiveMemberHandler-accessing623125 +Node: VFS.ArchiveMemberHandler-directory operations624285 +Node: VFS.ArchiveMemberHandler-file operations624906 +Node: VFS.ArchiveMemberHandler-finalization625572 +Node: VFS.ArchiveMemberHandler-initializing626065 +Node: VFS.ArchiveMemberHandler-testing626599 +Node: VFS.DecodedFileHandler627485 +Node: VFS.DecodedFileHandler class-registering628026 +Node: VFS.DecodedFileHandler-files629173 +Node: VFS.ExternalArchiveFileHandler629868 +Node: VFS.ExternalArchiveFileHandler class-registering630699 +Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol631583 +Node: VFS.ExternalArchiveFileHandler-members632904 +Node: VFS.ExternalArchiveFileHandler-releasing633415 +Node: VFS.RealFileHandler633765 +Node: VFS.RealFileHandler class-C functions634508 +Node: VFS.RealFileHandler class-initialization634790 +Node: VFS.RealFileHandler-accessing635117 +Node: VFS.RealFileHandler-directory operations636307 +Node: VFS.RealFileHandler-file operations636803 +Node: VFS.RealFileHandler-testing637345 +Node: VFS.VFSHandler638089 +Node: VFS.VFSHandler class-initializing638862 +Node: VFS.VFSHandler class-instance creation639760 +Node: VFS.VFSHandler-accessing640103 +Node: VFS.VFSHandler-C functions641445 +Node: VFS.VFSHandler-directory operations642581 +Node: VFS.VFSHandler-file operations643170 +Node: VFS.VFSHandler-testing643944 +Node: Warning644785 +Node: Warning-exception description645104 +Node: WeakArray645308 +Node: WeakArray class-instance creation645801 +Node: WeakArray-accessing646125 +Node: WeakArray-conversion647773 +Node: WeakArray-loading648408 +Node: WeakIdentitySet648673 +Node: WeakKeyDictionary649135 +Node: WeakKeyDictionary-accessing649684 +Node: WeakKeyIdentityDictionary650185 +Node: WeakSet650713 +Node: WeakSet-accessing651169 +Node: WeakValueIdentityDictionary651667 +Node: WeakValueLookupTable652213 +Node: WeakValueLookupTable-hacks652821 +Node: WeakValueLookupTable-rehashing653378 +Node: WordArray653601 +Node: WriteStream653907 +Node: WriteStream class-instance creation654433 +Node: WriteStream-accessing655103 +Node: WriteStream-accessing-writing655357 +Node: WriteStream-positioning655948 +Node: ZeroDivide656158 +Node: ZeroDivide class-instance creation656651 +Node: ZeroDivide-accessing657031 +Node: ZeroDivide-description657284 +Node: Class index657499 +Node: Method index669336 +Node: Cross-reference888335  End Tag Table diff -rNu smalltalk-2.1.9/doc/gst-base.info-1 smalltalk-2.1.10/doc/gst-base.info-1 --- smalltalk-2.1.9/doc/gst-base.info-1 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info-1 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,20 +23,16 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  File: gst-base.info, Node: Top, Up: (DIR) -GNU Smalltalk Library Reference -******************************* -GNU Smalltalk Library Reference - This document describes the class libraries that are distributed +This document describes the class libraries that are distributed together with the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -52,7 +48,6 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - * Menu: * Base classes:: The class reference @@ -64,8 +59,8 @@  File: gst-base.info, Node: Base classes, Next: Class index, Prev: Top, Up: Top -1 Base classes -************** +Base classes +************ * Menu: @@ -488,8 +483,8 @@  File: gst-base.info, Node: AbstractNamespace, Next: AlternativeObjectProxy, Up: Base classes -1.1 AbstractNamespace -===================== +AbstractNamespace +================= Defined in namespace Smalltalk Superclass: BindingDictionary @@ -511,8 +506,8 @@  File: gst-base.info, Node: AbstractNamespace class-instance creation, Next: AbstractNamespace-accessing, Up: AbstractNamespace -1.1.1 AbstractNamespace class: instance creation ------------------------------------------------- +AbstractNamespace class: instance creation +------------------------------------------ new Disabled - use #new to create instances @@ -525,8 +520,8 @@  File: gst-base.info, Node: AbstractNamespace-accessing, Next: AbstractNamespace-basic & copying, Prev: AbstractNamespace class-instance creation, Up: AbstractNamespace -1.1.2 AbstractNamespace: accessing ----------------------------------- +AbstractNamespace: accessing +---------------------------- allAssociations Answer a Dictionary with all of the associations in the receiver @@ -559,8 +554,8 @@  File: gst-base.info, Node: AbstractNamespace-basic & copying, Next: AbstractNamespace-copying, Prev: AbstractNamespace-accessing, Up: AbstractNamespace -1.1.3 AbstractNamespace: basic & copying ----------------------------------------- +AbstractNamespace: basic & copying +---------------------------------- = arg Answer whether the receiver is equal to arg. The equality test is @@ -575,8 +570,8 @@  File: gst-base.info, Node: AbstractNamespace-copying, Next: AbstractNamespace-namespace hierarchy, Prev: AbstractNamespace-basic & copying, Up: AbstractNamespace -1.1.4 AbstractNamespace: copying --------------------------------- +AbstractNamespace: copying +-------------------------- copyEmpty: newSize Answer an empty copy of the receiver whose size is newSize @@ -589,8 +584,8 @@  File: gst-base.info, Node: AbstractNamespace-namespace hierarchy, Next: AbstractNamespace-overrides for superspaces, Prev: AbstractNamespace-copying, Up: AbstractNamespace -1.1.5 AbstractNamespace: namespace hierarchy --------------------------------------------- +AbstractNamespace: namespace hierarchy +-------------------------------------- addSubspace: aSymbol Add aNamespace to the set of the receiver's subspaces @@ -673,8 +668,8 @@  File: gst-base.info, Node: AbstractNamespace-overrides for superspaces, Next: AbstractNamespace-printing, Prev: AbstractNamespace-namespace hierarchy, Up: AbstractNamespace -1.1.6 AbstractNamespace: overrides for superspaces --------------------------------------------------- +AbstractNamespace: overrides for superspaces +-------------------------------------------- definedKeys Answer a kind of Set containing the keys of the receiver @@ -717,8 +712,8 @@  File: gst-base.info, Node: AbstractNamespace-printing, Next: AbstractNamespace-testing, Prev: AbstractNamespace-overrides for superspaces, Up: AbstractNamespace -1.1.7 AbstractNamespace: printing ---------------------------------- +AbstractNamespace: printing +--------------------------- name Answer the receiver's name @@ -740,8 +735,8 @@  File: gst-base.info, Node: AbstractNamespace-testing, Prev: AbstractNamespace-printing, Up: AbstractNamespace -1.1.8 AbstractNamespace: testing --------------------------------- +AbstractNamespace: testing +-------------------------- isNamespace Answer `true'. @@ -753,8 +748,8 @@  File: gst-base.info, Node: AlternativeObjectProxy, Next: ArithmeticError, Prev: AbstractNamespace, Up: Base classes -1.2 AlternativeObjectProxy -========================== +AlternativeObjectProxy +====================== Defined in namespace Smalltalk Superclass: DumperProxy @@ -774,8 +769,8 @@  File: gst-base.info, Node: AlternativeObjectProxy class-instance creation, Next: AlternativeObjectProxy-accessing, Up: AlternativeObjectProxy -1.2.1 AlternativeObjectProxy class: instance creation ------------------------------------------------------ +AlternativeObjectProxy class: instance creation +----------------------------------------------- acceptUsageForClass: aClass The receiver was asked to be used as a proxy for the class aClass. @@ -795,8 +790,8 @@  File: gst-base.info, Node: AlternativeObjectProxy-accessing, Prev: AlternativeObjectProxy class-instance creation, Up: AlternativeObjectProxy -1.2.2 AlternativeObjectProxy: accessing ---------------------------------------- +AlternativeObjectProxy: accessing +--------------------------------- object Reconstruct the object stored in the proxy and answer it. A @@ -814,8 +809,8 @@  File: gst-base.info, Node: ArithmeticError, Next: Array, Prev: AlternativeObjectProxy, Up: Base classes -1.3 ArithmeticError -=================== +ArithmeticError +=============== Defined in namespace Smalltalk Superclass: Halt @@ -831,8 +826,8 @@  File: gst-base.info, Node: ArithmeticError-description, Up: ArithmeticError -1.3.1 ArithmeticError: description ----------------------------------- +ArithmeticError: description +---------------------------- description Answer a textual description of the exception. @@ -841,8 +836,8 @@  File: gst-base.info, Node: Array, Next: ArrayedCollection, Prev: ArithmeticError, Up: Base classes -1.4 Array -========= +Array +===== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -862,8 +857,8 @@  File: gst-base.info, Node: Array-mutating objects, Next: Array-printing, Up: Array -1.4.1 Array: mutating objects ------------------------------ +Array: mutating objects +----------------------- multiBecome: anArray Transform every object in the receiver in each corresponding @@ -873,8 +868,8 @@  File: gst-base.info, Node: Array-printing, Next: Array-testing, Prev: Array-mutating objects, Up: Array -1.4.2 Array: printing ---------------------- +Array: printing +--------------- printOn: aStream Print a representation for the receiver on aStream @@ -883,8 +878,8 @@  File: gst-base.info, Node: Array-testing, Prev: Array-printing, Up: Array -1.4.3 Array: testing --------------------- +Array: testing +-------------- isArray Answer `true'. @@ -893,8 +888,8 @@  File: gst-base.info, Node: ArrayedCollection, Next: Association, Prev: Array, Up: Base classes -1.5 ArrayedCollection -===================== +ArrayedCollection +================= Defined in namespace Smalltalk Superclass: SequenceableCollection @@ -916,8 +911,8 @@  File: gst-base.info, Node: ArrayedCollection class-instance creation, Next: ArrayedCollection-basic, Up: ArrayedCollection -1.5.1 ArrayedCollection class: instance creation ------------------------------------------------- +ArrayedCollection class: instance creation +------------------------------------------ new: size withAll: anObject Answer a collection with the given size, whose elements are all @@ -950,8 +945,8 @@  File: gst-base.info, Node: ArrayedCollection-basic, Next: ArrayedCollection-built ins, Prev: ArrayedCollection class-instance creation, Up: ArrayedCollection -1.5.2 ArrayedCollection: basic ------------------------------- +ArrayedCollection: basic +------------------------ , aSequenceableCollection Answer a new instance of an ArrayedCollection containing all the @@ -977,8 +972,8 @@  File: gst-base.info, Node: ArrayedCollection-built ins, Next: ArrayedCollection-copying Collections, Prev: ArrayedCollection-basic, Up: ArrayedCollection -1.5.3 ArrayedCollection: built ins ----------------------------------- +ArrayedCollection: built ins +---------------------------- size Answer the size of the receiver @@ -987,8 +982,8 @@  File: gst-base.info, Node: ArrayedCollection-copying Collections, Next: ArrayedCollection-enumerating the elements of a collection, Prev: ArrayedCollection-built ins, Up: ArrayedCollection -1.5.4 ArrayedCollection: copying Collections --------------------------------------------- +ArrayedCollection: copying Collections +-------------------------------------- copyReplaceAll: oldSubCollection with: newSubCollection Answer a new collection in which all the sequences matching @@ -1022,8 +1017,8 @@  File: gst-base.info, Node: ArrayedCollection-enumerating the elements of a collection, Next: ArrayedCollection-storing, Prev: ArrayedCollection-copying Collections, Up: ArrayedCollection -1.5.5 ArrayedCollection: enumerating the elements of a collection ------------------------------------------------------------------ +ArrayedCollection: enumerating the elements of a collection +----------------------------------------------------------- collect: aBlock Answer a new instance of an ArrayedCollection containing all the @@ -1049,8 +1044,8 @@  File: gst-base.info, Node: ArrayedCollection-storing, Prev: ArrayedCollection-enumerating the elements of a collection, Up: ArrayedCollection -1.5.6 ArrayedCollection: storing --------------------------------- +ArrayedCollection: storing +-------------------------- storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -1059,8 +1054,8 @@  File: gst-base.info, Node: Association, Next: Autoload, Prev: ArrayedCollection, Up: Base classes -1.6 Association -=============== +Association +=========== Defined in namespace Smalltalk Superclass: LookupKey @@ -1082,8 +1077,8 @@  File: gst-base.info, Node: Association class-basic, Next: Association-accessing, Up: Association -1.6.1 Association class: basic ------------------------------- +Association class: basic +------------------------ key: aKey value: aValue Answer a new association with the given key and value @@ -1092,8 +1087,8 @@  File: gst-base.info, Node: Association-accessing, Next: Association-finalization, Prev: Association class-basic, Up: Association -1.6.2 Association: accessing ----------------------------- +Association: accessing +---------------------- environment Answer nil. This is present to achieve polymorphism with @@ -1116,8 +1111,8 @@  File: gst-base.info, Node: Association-finalization, Next: Association-printing, Prev: Association-accessing, Up: Association -1.6.3 Association: finalization -------------------------------- +Association: finalization +------------------------- mourn Finalize the receiver @@ -1126,8 +1121,8 @@  File: gst-base.info, Node: Association-printing, Next: Association-storing, Prev: Association-finalization, Up: Association -1.6.4 Association: printing ---------------------------- +Association: printing +--------------------- printOn: aStream Put on aStream a representation of the receiver @@ -1136,8 +1131,8 @@  File: gst-base.info, Node: Association-storing, Next: Association-testing, Prev: Association-printing, Up: Association -1.6.5 Association: storing --------------------------- +Association: storing +-------------------- storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -1146,8 +1141,8 @@  File: gst-base.info, Node: Association-testing, Prev: Association-storing, Up: Association -1.6.6 Association: testing --------------------------- +Association: testing +-------------------- = anAssociation Answer whether the association's key and value are the same as @@ -1160,8 +1155,8 @@  File: gst-base.info, Node: Autoload, Next: AutoloadClass, Prev: Association, Up: Base classes -1.7 Autoload -============ +Autoload +======== Defined in namespace Smalltalk Superclass: none @@ -1181,8 +1176,8 @@  File: gst-base.info, Node: Autoload class-instance creation, Next: Autoload-accessing, Up: Autoload -1.7.1 Autoload class: instance creation ---------------------------------------- +Autoload class: instance creation +--------------------------------- class: nameSymbol from: fileNameString Make Smalltalk automatically load the class named nameSymbol from @@ -1196,8 +1191,8 @@  File: gst-base.info, Node: Autoload-accessing, Prev: Autoload class-instance creation, Up: Autoload -1.7.2 Autoload: accessing -------------------------- +Autoload: accessing +------------------- doesNotUnderstand: aMessage Load the class and resend the message to it @@ -1206,8 +1201,8 @@  File: gst-base.info, Node: AutoloadClass, Next: Bag, Prev: Autoload, Up: Base classes -1.8 AutoloadClass -================= +AutoloadClass +============= Defined in namespace Smalltalk Superclass: none @@ -1224,8 +1219,8 @@  File: gst-base.info, Node: AutoloadClass-accessing, Up: AutoloadClass -1.8.1 AutoloadClass: accessing ------------------------------- +AutoloadClass: accessing +------------------------ doesNotUnderstand: aMessage Load the class and resend the message to its metaclass. @@ -1262,8 +1257,8 @@  File: gst-base.info, Node: Bag, Next: Behavior, Prev: AutoloadClass, Up: Base classes -1.9 Bag -======= +Bag +=== Defined in namespace Smalltalk Superclass: Collection @@ -1287,8 +1282,8 @@  File: gst-base.info, Node: Bag class-basic, Next: Bag-adding, Up: Bag -1.9.1 Bag class: basic ----------------------- +Bag class: basic +---------------- new Answer a new instance of the receiver @@ -1301,8 +1296,8 @@  File: gst-base.info, Node: Bag-adding, Next: Bag-enumerating the elements of a collection, Prev: Bag class-basic, Up: Bag -1.9.2 Bag: adding ------------------ +Bag: adding +----------- add: newObject Add an occurrence of newObject to the receiver. Answer newObject. @@ -1317,8 +1312,8 @@  File: gst-base.info, Node: Bag-enumerating the elements of a collection, Next: Bag-extracting items, Prev: Bag-adding, Up: Bag -1.9.3 Bag: enumerating the elements of a collection ---------------------------------------------------- +Bag: enumerating the elements of a collection +--------------------------------------------- asSet Answer a set with the elements of the receiver @@ -1330,8 +1325,8 @@  File: gst-base.info, Node: Bag-extracting items, Next: Bag-printing, Prev: Bag-enumerating the elements of a collection, Up: Bag -1.9.4 Bag: extracting items ---------------------------- +Bag: extracting items +--------------------- sortedByCount Answer a collection of counts with elements, sorted by decreasing @@ -1341,8 +1336,8 @@  File: gst-base.info, Node: Bag-printing, Next: Bag-removing, Prev: Bag-extracting items, Up: Bag -1.9.5 Bag: printing -------------------- +Bag: printing +------------- printOn: aStream Put on aStream a representation of the receiver @@ -1351,8 +1346,8 @@  File: gst-base.info, Node: Bag-removing, Next: Bag-storing, Prev: Bag-printing, Up: Bag -1.9.6 Bag: removing -------------------- +Bag: removing +------------- remove: oldObject ifAbsent: anExceptionBlock Remove oldObject from the collection and return it. If can't be @@ -1362,8 +1357,8 @@  File: gst-base.info, Node: Bag-storing, Next: Bag-testing collections, Prev: Bag-removing, Up: Bag -1.9.7 Bag: storing ------------------- +Bag: storing +------------ storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -1372,8 +1367,8 @@  File: gst-base.info, Node: Bag-testing collections, Prev: Bag-storing, Up: Bag -1.9.8 Bag: testing collections ------------------------------- +Bag: testing collections +------------------------ = aBag Answer whether the receiver and aBag contain the same objects @@ -1394,8 +1389,8 @@  File: gst-base.info, Node: Behavior, Next: BindingDictionary, Prev: Bag, Up: Base classes -1.10 Behavior -============= +Behavior +======== Defined in namespace Smalltalk Superclass: Object @@ -1433,8 +1428,8 @@  File: gst-base.info, Node: Behavior-accessing class hierarchy, Next: Behavior-accessing instances and variables, Up: Behavior -1.10.1 Behavior: accessing class hierarchy ------------------------------------------- +Behavior: accessing class hierarchy +----------------------------------- allSubclasses Answer the direct and indirect subclasses of the receiver in a Set @@ -1459,8 +1454,8 @@  File: gst-base.info, Node: Behavior-accessing instances and variables, Next: Behavior-accessing the methodDictionary, Prev: Behavior-accessing class hierarchy, Up: Behavior -1.10.2 Behavior: accessing instances and variables --------------------------------------------------- +Behavior: accessing instances and variables +------------------------------------------- allClassVarNames Return all the class variables understood by the receiver @@ -1502,8 +1497,8 @@  File: gst-base.info, Node: Behavior-accessing the methodDictionary, Next: Behavior-built ins, Prev: Behavior-accessing instances and variables, Up: Behavior -1.10.3 Behavior: accessing the methodDictionary ------------------------------------------------ +Behavior: accessing the methodDictionary +---------------------------------------- >> selector Return the compiled method associated with selector, from the local @@ -1536,8 +1531,8 @@  File: gst-base.info, Node: Behavior-built ins, Next: Behavior-compilation (alternative), Prev: Behavior-accessing the methodDictionary, Up: Behavior -1.10.4 Behavior: built ins --------------------------- +Behavior: built ins +------------------- basicNew Create a new instance of a class with no indexed instance @@ -1593,8 +1588,8 @@  File: gst-base.info, Node: Behavior-compilation (alternative), Next: Behavior-compiling methods, Prev: Behavior-built ins, Up: Behavior -1.10.5 Behavior: compilation (alternative) ------------------------------------------- +Behavior: compilation (alternative) +----------------------------------- methods Don't use this, it's only present to file in from Smalltalk/V @@ -1619,8 +1614,8 @@  File: gst-base.info, Node: Behavior-compiling methods, Next: Behavior-creating a class hierarchy, Prev: Behavior-compilation (alternative), Up: Behavior -1.10.6 Behavior: compiling methods ----------------------------------- +Behavior: compiling methods +--------------------------- methodsFor: aCategoryString Calling this method prepares the parser to receive methods @@ -1632,8 +1627,8 @@  File: gst-base.info, Node: Behavior-creating a class hierarchy, Next: Behavior-enumerating, Prev: Behavior-compiling methods, Up: Behavior -1.10.7 Behavior: creating a class hierarchy -------------------------------------------- +Behavior: creating a class hierarchy +------------------------------------ addSubclass: aClass Add aClass asone of the receiver's subclasses. @@ -1648,8 +1643,8 @@  File: gst-base.info, Node: Behavior-enumerating, Next: Behavior-evaluating, Prev: Behavior-creating a class hierarchy, Up: Behavior -1.10.8 Behavior: enumerating ----------------------------- +Behavior: enumerating +--------------------- allInstancesDo: aBlock Invokes aBlock for all instances of the receiver @@ -1685,8 +1680,8 @@  File: gst-base.info, Node: Behavior-evaluating, Next: Behavior-instance creation, Prev: Behavior-enumerating, Up: Behavior -1.10.9 Behavior: evaluating ---------------------------- +Behavior: evaluating +-------------------- evalString: aString to: anObject Answer the stack top at the end of the evaluation of the code in @@ -1721,8 +1716,8 @@  File: gst-base.info, Node: Behavior-instance creation, Next: Behavior-instance variables, Prev: Behavior-evaluating, Up: Behavior -1.10.10 Behavior: instance creation ------------------------------------ +Behavior: instance creation +--------------------------- newInFixedSpace Create a new instance of a class without indexed instance @@ -1741,8 +1736,8 @@  File: gst-base.info, Node: Behavior-instance variables, Next: Behavior-method dictionary, Prev: Behavior-instance creation, Up: Behavior -1.10.11 Behavior: instance variables ------------------------------------- +Behavior: instance variables +---------------------------- addInstVarName: aString Add the given instance variable to instance of the receiver @@ -1755,8 +1750,8 @@  File: gst-base.info, Node: Behavior-method dictionary, Next: Behavior-pluggable behavior (not yet implemented), Prev: Behavior-instance variables, Up: Behavior -1.10.12 Behavior: method dictionary ------------------------------------ +Behavior: method dictionary +--------------------------- addSelector: selector withMethod: compiledMethod Add the given compiledMethod to the method dictionary, giving it @@ -1854,8 +1849,8 @@  File: gst-base.info, Node: Behavior-pluggable behavior (not yet implemented), Next: Behavior-printing hierarchy, Prev: Behavior-method dictionary, Up: Behavior -1.10.13 Behavior: pluggable behavior (not yet implemented) ----------------------------------------------------------- +Behavior: pluggable behavior (not yet implemented) +-------------------------------------------------- compilerClass Answer the class that can be used to compile parse trees, or nil @@ -1885,8 +1880,8 @@  File: gst-base.info, Node: Behavior-printing hierarchy, Next: Behavior-support for lightweight classes, Prev: Behavior-pluggable behavior (not yet implemented), Up: Behavior -1.10.14 Behavior: printing hierarchy ------------------------------------- +Behavior: printing hierarchy +---------------------------- hierarchyIndent Answer the indent to be used by #printHierarchy - 4 by default @@ -1903,8 +1898,8 @@  File: gst-base.info, Node: Behavior-support for lightweight classes, Next: Behavior-testing functionality, Prev: Behavior-printing hierarchy, Up: Behavior -1.10.15 Behavior: support for lightweight classes -------------------------------------------------- +Behavior: support for lightweight classes +----------------------------------------- article Answer an article (`a' or `an') which is ok for the receiver's name @@ -1933,8 +1928,8 @@  File: gst-base.info, Node: Behavior-testing functionality, Next: Behavior-testing the class hierarchy, Prev: Behavior-support for lightweight classes, Up: Behavior -1.10.16 Behavior: testing functionality ---------------------------------------- +Behavior: testing functionality +------------------------------- isBehavior Answer `true'. @@ -1943,8 +1938,8 @@  File: gst-base.info, Node: Behavior-testing the class hierarchy, Next: Behavior-testing the form of the instances, Prev: Behavior-testing functionality, Up: Behavior -1.10.17 Behavior: testing the class hierarchy ---------------------------------------------- +Behavior: testing the class hierarchy +------------------------------------- includesBehavior: aClass Returns true if aClass is the receiver or a superclass of the @@ -1960,8 +1955,8 @@  File: gst-base.info, Node: Behavior-testing the form of the instances, Next: Behavior-testing the method dictionary, Prev: Behavior-testing the class hierarchy, Up: Behavior -1.10.18 Behavior: testing the form of the instances ---------------------------------------------------- +Behavior: testing the form of the instances +------------------------------------------- instSize Answer how many fixed instance variables are reserved to each of @@ -2001,8 +1996,8 @@  File: gst-base.info, Node: Behavior-testing the method dictionary, Prev: Behavior-testing the form of the instances, Up: Behavior -1.10.19 Behavior: testing the method dictionary ------------------------------------------------ +Behavior: testing the method dictionary +--------------------------------------- canUnderstand: selector Returns true if the instances of the receiver understand the given @@ -2044,8 +2039,8 @@  File: gst-base.info, Node: BindingDictionary, Next: BlockClosure, Prev: Behavior, Up: Base classes -1.11 BindingDictionary -====================== +BindingDictionary +================= Defined in namespace Smalltalk Superclass: Dictionary @@ -2069,8 +2064,8 @@  File: gst-base.info, Node: BindingDictionary-accessing, Next: BindingDictionary-copying, Up: BindingDictionary -1.11.1 BindingDictionary: accessing ------------------------------------ +BindingDictionary: accessing +---------------------------- define: aSymbol Define aSymbol as equal to nil inside the receiver. Fail if such @@ -2115,8 +2110,8 @@  File: gst-base.info, Node: BindingDictionary-copying, Next: BindingDictionary-forward declarations, Prev: BindingDictionary-accessing, Up: BindingDictionary -1.11.2 BindingDictionary: copying ---------------------------------- +BindingDictionary: copying +-------------------------- copy Answer the receiver. @@ -2138,8 +2133,8 @@  File: gst-base.info, Node: BindingDictionary-forward declarations, Next: BindingDictionary-printing, Prev: BindingDictionary-copying, Up: BindingDictionary -1.11.3 BindingDictionary: forward declarations ----------------------------------------------- +BindingDictionary: forward declarations +--------------------------------------- add: aVariableBinding Store value as associated to the given key. If any, recycle @@ -2155,8 +2150,8 @@  File: gst-base.info, Node: BindingDictionary-printing, Next: BindingDictionary-testing, Prev: BindingDictionary-forward declarations, Up: BindingDictionary -1.11.4 BindingDictionary: printing ----------------------------------- +BindingDictionary: printing +--------------------------- printOn: aStream in: aNamespace Print the receiver's name when referred to from aNamespace; by @@ -2166,8 +2161,8 @@  File: gst-base.info, Node: BindingDictionary-testing, Prev: BindingDictionary-printing, Up: BindingDictionary -1.11.5 BindingDictionary: testing ---------------------------------- +BindingDictionary: testing +-------------------------- species Answer `IdentityDictionary'. @@ -2176,8 +2171,8 @@  File: gst-base.info, Node: BlockClosure, Next: BlockContext, Prev: BindingDictionary, Up: Base classes -1.12 BlockClosure -================= +BlockClosure +============ Defined in namespace Smalltalk Superclass: Object @@ -2207,8 +2202,8 @@  File: gst-base.info, Node: BlockClosure class-instance creation, Next: BlockClosure class-testing, Up: BlockClosure -1.12.1 BlockClosure class: instance creation --------------------------------------------- +BlockClosure class: instance creation +------------------------------------- block: aCompiledBlock Answer a BlockClosure that activates the passed CompiledBlock. @@ -2222,8 +2217,8 @@  File: gst-base.info, Node: BlockClosure class-testing, Next: BlockClosure-accessing, Prev: BlockClosure class-instance creation, Up: BlockClosure -1.12.2 BlockClosure class: testing ----------------------------------- +BlockClosure class: testing +--------------------------- isImmediate Answer whether, if x is an instance of the receiver, x copy == x @@ -2232,8 +2227,8 @@  File: gst-base.info, Node: BlockClosure-accessing, Next: BlockClosure-built ins, Prev: BlockClosure class-testing, Up: BlockClosure -1.12.3 BlockClosure: accessing ------------------------------- +BlockClosure: accessing +----------------------- argumentCount Answer the number of arguments passed to the receiver @@ -2288,8 +2283,8 @@  File: gst-base.info, Node: BlockClosure-built ins, Next: BlockClosure-control structures, Prev: BlockClosure-accessing, Up: BlockClosure -1.12.4 BlockClosure: built ins ------------------------------- +BlockClosure: built ins +----------------------- blockCopy: outerContext Generate a BlockClosure identical to the receiver, with the given @@ -2314,8 +2309,8 @@  File: gst-base.info, Node: BlockClosure-control structures, Next: BlockClosure-exception handling, Prev: BlockClosure-built ins, Up: BlockClosure -1.12.5 BlockClosure: control structures ---------------------------------------- +BlockClosure: control structures +-------------------------------- repeat Evaluate the receiver 'forever' (actually until a return is @@ -2339,8 +2334,8 @@  File: gst-base.info, Node: BlockClosure-exception handling, Next: BlockClosure-multiple process, Prev: BlockClosure-control structures, Up: BlockClosure -1.12.6 BlockClosure: exception handling ---------------------------------------- +BlockClosure: exception handling +-------------------------------- ifError: aBlock Evaluate the receiver; when #error: is called, pass to aBlock the @@ -2383,8 +2378,8 @@  File: gst-base.info, Node: BlockClosure-multiple process, Next: BlockClosure-overriding, Prev: BlockClosure-exception handling, Up: BlockClosure -1.12.7 BlockClosure: multiple process -------------------------------------- +BlockClosure: multiple process +------------------------------ fork Create a new process executing the receiver and start it @@ -2423,8 +2418,8 @@  File: gst-base.info, Node: BlockClosure-overriding, Next: BlockClosure-testing, Prev: BlockClosure-multiple process, Up: BlockClosure -1.12.8 BlockClosure: overriding -------------------------------- +BlockClosure: overriding +------------------------ deepCopy Answer the receiver. @@ -2436,8 +2431,8 @@  File: gst-base.info, Node: BlockClosure-testing, Next: BlockClosure-unwind protection, Prev: BlockClosure-overriding, Up: BlockClosure -1.12.9 BlockClosure: testing ----------------------------- +BlockClosure: testing +--------------------- hasMethodReturn Answer whether the block contains a method return @@ -2446,8 +2441,8 @@  File: gst-base.info, Node: BlockClosure-unwind protection, Prev: BlockClosure-testing, Up: BlockClosure -1.12.10 BlockClosure: unwind protection ---------------------------------------- +BlockClosure: unwind protection +------------------------------- ensure: aBlock Evaluate the receiver; when any exception is signaled exit @@ -2479,8 +2474,8 @@  File: gst-base.info, Node: BlockContext, Next: Boolean, Prev: BlockClosure, Up: Base classes -1.13 BlockContext -================= +BlockContext +============ Defined in namespace Smalltalk Superclass: ContextPart @@ -2501,8 +2496,8 @@  File: gst-base.info, Node: BlockContext-accessing, Next: BlockContext-printing, Up: BlockContext -1.13.1 BlockContext: accessing ------------------------------- +BlockContext: accessing +----------------------- caller Answer the context that called the receiver @@ -2546,8 +2541,8 @@  File: gst-base.info, Node: BlockContext-printing, Prev: BlockContext-accessing, Up: BlockContext -1.13.2 BlockContext: printing ------------------------------ +BlockContext: printing +---------------------- printOn: aStream Print a representation for the receiver on aStream @@ -2556,8 +2551,8 @@  File: gst-base.info, Node: Boolean, Next: ByteArray, Prev: BlockContext, Up: Base classes -1.14 Boolean -============ +Boolean +======= Defined in namespace Smalltalk Superclass: Object @@ -2580,8 +2575,8 @@  File: gst-base.info, Node: Boolean class-testing, Next: Boolean-basic, Up: Boolean -1.14.1 Boolean class: testing ------------------------------ +Boolean class: testing +---------------------- isIdentity Answer whether x = y implies x == y for instances of the receiver @@ -2593,8 +2588,8 @@  File: gst-base.info, Node: Boolean-basic, Next: Boolean-C hacks, Prev: Boolean class-testing, Up: Boolean -1.14.2 Boolean: basic ---------------------- +Boolean: basic +-------------- & aBoolean This method's functionality should be implemented by subclasses of @@ -2644,8 +2639,8 @@  File: gst-base.info, Node: Boolean-C hacks, Next: Boolean-overriding, Prev: Boolean-basic, Up: Boolean -1.14.3 Boolean: C hacks ------------------------ +Boolean: C hacks +---------------- asCBooleanValue This method's functionality should be implemented by subclasses of @@ -2655,8 +2650,8 @@  File: gst-base.info, Node: Boolean-overriding, Next: Boolean-storing, Prev: Boolean-C hacks, Up: Boolean -1.14.4 Boolean: overriding --------------------------- +Boolean: overriding +------------------- deepCopy Answer the receiver. @@ -2668,8 +2663,8 @@  File: gst-base.info, Node: Boolean-storing, Prev: Boolean-overriding, Up: Boolean -1.14.5 Boolean: storing ------------------------ +Boolean: storing +---------------- storeOn: aStream Store on aStream some Smalltalk code which compiles to the receiver @@ -2678,8 +2673,8 @@  File: gst-base.info, Node: ByteArray, Next: ByteStream, Prev: Boolean, Up: Base classes -1.15 ByteArray -============== +ByteArray +========= Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -2697,8 +2692,8 @@  File: gst-base.info, Node: ByteArray-built ins, Next: ByteArray-converting, Up: ByteArray -1.15.1 ByteArray: built ins ---------------------------- +ByteArray: built ins +-------------------- asCData: aCType Convert the receiver to a CObject with the given type @@ -2732,8 +2727,8 @@  File: gst-base.info, Node: ByteArray-converting, Next: ByteArray-more advanced accessing, Prev: ByteArray-built ins, Up: ByteArray -1.15.2 ByteArray: converting ----------------------------- +ByteArray: converting +--------------------- asString Answer a String whose character's ASCII codes are the receiver's @@ -2743,8 +2738,8 @@  File: gst-base.info, Node: ByteArray-more advanced accessing, Prev: ByteArray-converting, Up: ByteArray -1.15.3 ByteArray: more advanced accessing ------------------------------------------ +ByteArray: more advanced accessing +---------------------------------- charAt: index Access the C char at the given index in the receiver. The value is @@ -2904,8 +2899,8 @@  File: gst-base.info, Node: ByteStream, Next: CAggregate, Prev: ByteArray, Up: Base classes -1.16 ByteStream -=============== +ByteStream +========== Defined in namespace Smalltalk Superclass: ReadWriteStream @@ -2920,8 +2915,8 @@  File: gst-base.info, Node: ByteStream-basic, Up: ByteStream -1.16.1 ByteStream: basic ------------------------- +ByteStream: basic +----------------- next Return the next *character* in the ByteArray @@ -2974,8 +2969,8 @@  File: gst-base.info, Node: CAggregate, Next: CallinProcess, Prev: ByteStream, Up: Base classes -1.17 CAggregate -=============== +CAggregate +========== Defined in namespace Smalltalk Superclass: CObject @@ -2989,8 +2984,8 @@  File: gst-base.info, Node: CAggregate class-accessing, Next: CAggregate-accessing, Up: CAggregate -1.17.1 CAggregate class: accessing ----------------------------------- +CAggregate class: accessing +--------------------------- alignof Answer the receiver's instances required aligment @@ -3002,8 +2997,8 @@  File: gst-base.info, Node: CAggregate-accessing, Prev: CAggregate class-accessing, Up: CAggregate -1.17.2 CAggregate: accessing ----------------------------- +CAggregate: accessing +--------------------- elementType Answer the type over which the receiver is constructed. @@ -3012,8 +3007,8 @@  File: gst-base.info, Node: CallinProcess, Next: CArray, Prev: CAggregate, Up: Base classes -1.18 CallinProcess -================== +CallinProcess +============= Defined in namespace Smalltalk Superclass: Process @@ -3029,8 +3024,8 @@  File: gst-base.info, Node: CArray, Next: CArrayCType, Prev: CallinProcess, Up: Base classes -1.19 CArray -=========== +CArray +====== Defined in namespace Smalltalk Superclass: CAggregate @@ -3043,8 +3038,8 @@  File: gst-base.info, Node: CArray-accessing, Up: CArray -1.19.1 CArray: accessing ------------------------- +CArray: accessing +----------------- alignof Answer the receiver's required aligment @@ -3056,8 +3051,8 @@  File: gst-base.info, Node: CArrayCType, Next: CBoolean, Prev: CArray, Up: Base classes -1.20 CArrayCType -================ +CArrayCType +=========== Defined in namespace Smalltalk Superclass: CPtrCType @@ -3071,8 +3066,8 @@  File: gst-base.info, Node: CArrayCType class-instance creation, Next: CArrayCType-accessing, Up: CArrayCType -1.20.1 CArrayCType class: instance creation -------------------------------------------- +CArrayCType class: instance creation +------------------------------------ elementType: aCType This method should not be called for instances of this class. @@ -3088,8 +3083,8 @@  File: gst-base.info, Node: CArrayCType-accessing, Prev: CArrayCType class-instance creation, Up: CArrayCType -1.20.2 CArrayCType: accessing ------------------------------ +CArrayCType: accessing +---------------------- alignof Answer the alignment of the receiver's instances @@ -3104,8 +3099,8 @@  File: gst-base.info, Node: CBoolean, Next: CByte, Prev: CArrayCType, Up: Base classes -1.21 CBoolean -============= +CBoolean +======== Defined in namespace Smalltalk Superclass: CByte @@ -3119,8 +3114,8 @@  File: gst-base.info, Node: CBoolean-accessing, Up: CBoolean -1.21.1 CBoolean: accessing --------------------------- +CBoolean: accessing +------------------- value Get the receiver's value - answer true if it is != 0, false if it @@ -3134,8 +3129,8 @@  File: gst-base.info, Node: CByte, Next: CChar, Prev: CBoolean, Up: Base classes -1.22 CByte -========== +CByte +===== Defined in namespace Smalltalk Superclass: CUChar @@ -3153,8 +3148,8 @@  File: gst-base.info, Node: CByte class-conversion, Next: CByte-accessing, Up: CByte -1.22.1 CByte class: conversion ------------------------------- +CByte class: conversion +----------------------- scalarIndex Nothing special in the default case - answer a CType for the @@ -3168,8 +3163,8 @@  File: gst-base.info, Node: CByte-accessing, Prev: CByte class-conversion, Up: CByte -1.22.2 CByte: accessing ------------------------ +CByte: accessing +---------------- scalarIndex Nothing special in the default case - answer the receiver's CType @@ -3188,8 +3183,8 @@  File: gst-base.info, Node: CChar, Next: CCompound, Prev: CByte, Up: Base classes -1.23 CChar -========== +CChar +===== Defined in namespace Smalltalk Superclass: CScalar @@ -3203,8 +3198,8 @@  File: gst-base.info, Node: CChar class-accessing, Next: CChar-accessing, Up: CChar -1.23.1 CChar class: accessing ------------------------------ +CChar class: accessing +---------------------- alignof Answer the receiver's instances required aligment @@ -3220,8 +3215,8 @@  File: gst-base.info, Node: CChar-accessing, Prev: CChar class-accessing, Up: CChar -1.23.2 CChar: accessing ------------------------ +CChar: accessing +---------------- alignof Answer the receiver's required aligment @@ -3236,8 +3231,8 @@  File: gst-base.info, Node: CCompound, Next: CDouble, Prev: CChar, Up: Base classes -1.24 CCompound -============== +CCompound +========= Defined in namespace Smalltalk Superclass: CObject @@ -3252,8 +3247,8 @@  File: gst-base.info, Node: CCompound class-instance creation, Next: CCompound class-subclass creation, Up: CCompound -1.24.1 CCompound class: instance creation ------------------------------------------ +CCompound class: instance creation +---------------------------------- new Allocate a new instance of the receiver. To free the memory after @@ -3266,8 +3261,8 @@  File: gst-base.info, Node: CCompound class-subclass creation, Next: CCompound-instance creation, Prev: CCompound class-instance creation, Up: CCompound -1.24.2 CCompound class: subclass creation ------------------------------------------ +CCompound class: subclass creation +---------------------------------- alignof Answer 1, the alignment of an empty struct @@ -3325,8 +3320,8 @@  File: gst-base.info, Node: CCompound-instance creation, Prev: CCompound class-subclass creation, Up: CCompound -1.24.3 CCompound: instance creation ------------------------------------ +CCompound: instance creation +---------------------------- inspect Inspect the contents of the receiver @@ -3339,8 +3334,8 @@  File: gst-base.info, Node: CDouble, Next: CFloat, Prev: CCompound, Up: Base classes -1.25 CDouble -============ +CDouble +======= Defined in namespace Smalltalk Superclass: CScalar @@ -3354,8 +3349,8 @@  File: gst-base.info, Node: CDouble class-accessing, Next: CDouble-accessing, Up: CDouble -1.25.1 CDouble class: accessing -------------------------------- +CDouble class: accessing +------------------------ alignof Answer the receiver's instances required aligment @@ -3371,8 +3366,8 @@  File: gst-base.info, Node: CDouble-accessing, Prev: CDouble class-accessing, Up: CDouble -1.25.2 CDouble: accessing -------------------------- +CDouble: accessing +------------------ alignof Answer the receiver's required aligment @@ -3387,8 +3382,8 @@  File: gst-base.info, Node: CFloat, Next: CFunctionDescriptor, Prev: CDouble, Up: Base classes -1.26 CFloat -=========== +CFloat +====== Defined in namespace Smalltalk Superclass: CScalar @@ -3402,8 +3397,8 @@  File: gst-base.info, Node: CFloat class-accessing, Next: CFloat-accessing, Up: CFloat -1.26.1 CFloat class: accessing ------------------------------- +CFloat class: accessing +----------------------- alignof Answer the receiver's instances required aligment @@ -3419,8 +3414,8 @@  File: gst-base.info, Node: CFloat-accessing, Prev: CFloat class-accessing, Up: CFloat -1.26.2 CFloat: accessing ------------------------- +CFloat: accessing +----------------- alignof Answer the receiver's required aligment @@ -3435,8 +3430,8 @@  File: gst-base.info, Node: CFunctionDescriptor, Next: Character, Prev: CFloat, Up: Base classes -1.27 CFunctionDescriptor -======================== +CFunctionDescriptor +=================== Defined in namespace Smalltalk Superclass: Object @@ -3458,8 +3453,8 @@  File: gst-base.info, Node: CFunctionDescriptor class-instance creation, Next: CFunctionDescriptor class-testing, Up: CFunctionDescriptor -1.27.1 CFunctionDescriptor class: instance creation ---------------------------------------------------- +CFunctionDescriptor class: instance creation +-------------------------------------------- for: funcNameString returning: returnTypeSymbol withArgs: argsArray Private - Answer a CFunctionDescriptor @@ -3468,8 +3463,8 @@  File: gst-base.info, Node: CFunctionDescriptor class-testing, Next: CFunctionDescriptor-accessing, Prev: CFunctionDescriptor class-instance creation, Up: CFunctionDescriptor -1.27.2 CFunctionDescriptor class: testing ------------------------------------------ +CFunctionDescriptor class: testing +---------------------------------- addressOf: function Answer whether a function is registered (on the C side) with the @@ -3483,8 +3478,8 @@  File: gst-base.info, Node: CFunctionDescriptor-accessing, Next: CFunctionDescriptor-calling, Prev: CFunctionDescriptor class-testing, Up: CFunctionDescriptor -1.27.3 CFunctionDescriptor: accessing -------------------------------------- +CFunctionDescriptor: accessing +------------------------------ address Answer the address (CObject) of the function represented by the @@ -3506,8 +3501,8 @@  File: gst-base.info, Node: CFunctionDescriptor-calling, Next: CFunctionDescriptor-printing, Prev: CFunctionDescriptor-accessing, Up: CFunctionDescriptor -1.27.4 CFunctionDescriptor: calling ------------------------------------ +CFunctionDescriptor: calling +---------------------------- asyncCallFrom: aContext Perform the call-out for the function represented by the receiver. @@ -3545,8 +3540,8 @@  File: gst-base.info, Node: CFunctionDescriptor-printing, Prev: CFunctionDescriptor-calling, Up: CFunctionDescriptor -1.27.5 CFunctionDescriptor: printing ------------------------------------- +CFunctionDescriptor: printing +----------------------------- printOn: aStream Print a representation of the receiver onto aStream @@ -3555,8 +3550,8 @@  File: gst-base.info, Node: Character, Next: CharacterArray, Prev: CFunctionDescriptor, Up: Base classes -1.28 Character -============== +Character +========= Defined in namespace Smalltalk Superclass: Magnitude @@ -3585,8 +3580,8 @@  File: gst-base.info, Node: Character class-built ins, Next: Character class-constants, Up: Character -1.28.1 Character class: built ins ---------------------------------- +Character class: built ins +-------------------------- asciiValue: anInteger Returns the character object corresponding to anInteger. Error if @@ -3607,8 +3602,8 @@  File: gst-base.info, Node: Character class-constants, Next: Character class-initializing lookup tables, Prev: Character class-built ins, Up: Character -1.28.2 Character class: constants ---------------------------------- +Character class: constants +-------------------------- backspace Returns the character 'backspace' @@ -3650,8 +3645,8 @@  File: gst-base.info, Node: Character class-initializing lookup tables, Next: Character class-instance creation, Prev: Character class-constants, Up: Character -1.28.3 Character class: initializing lookup tables --------------------------------------------------- +Character class: initializing lookup tables +------------------------------------------- initialize Initialize the lookup table which is used to make case and @@ -3665,8 +3660,8 @@  File: gst-base.info, Node: Character class-instance creation, Next: Character class-testing, Prev: Character class-initializing lookup tables, Up: Character -1.28.4 Character class: instance creation ------------------------------------------ +Character class: instance creation +---------------------------------- digitValue: anInteger Returns a character that corresponds to anInteger. 0-9 map to @@ -3676,8 +3671,8 @@  File: gst-base.info, Node: Character class-testing, Next: Character-built ins, Prev: Character class-instance creation, Up: Character -1.28.5 Character class: testing -------------------------------- +Character class: testing +------------------------ isIdentity Answer whether x = y implies x == y for instances of the receiver @@ -3689,8 +3684,8 @@  File: gst-base.info, Node: Character-built ins, Next: Character-coercion methods, Prev: Character class-testing, Up: Character -1.28.6 Character: built ins ---------------------------- +Character: built ins +-------------------- = char Boolean return value; true if the characters are equal @@ -3715,8 +3710,8 @@  File: gst-base.info, Node: Character-coercion methods, Next: Character-comparing, Prev: Character-built ins, Up: Character -1.28.7 Character: coercion methods ----------------------------------- +Character: coercion methods +--------------------------- asLowercase Returns self as a lowercase character if it's an uppercase letter, @@ -3736,8 +3731,8 @@  File: gst-base.info, Node: Character-comparing, Next: Character-converting, Prev: Character-coercion methods, Up: Character -1.28.8 Character: comparing ---------------------------- +Character: comparing +-------------------- < aCharacter Compare the character's ASCII value. Answer whether the receiver's @@ -3759,8 +3754,8 @@  File: gst-base.info, Node: Character-converting, Next: Character-printing, Prev: Character-comparing, Up: Character -1.28.9 Character: converting ----------------------------- +Character: converting +--------------------- digitValue Returns the value of self interpreted as a digit. Here, 'digit' @@ -3770,8 +3765,8 @@  File: gst-base.info, Node: Character-printing, Next: Character-storing, Prev: Character-converting, Up: Character -1.28.10 Character: printing ---------------------------- +Character: printing +------------------- displayOn: aStream Print a representation of the receiver on aStream. Unlike @@ -3784,8 +3779,8 @@  File: gst-base.info, Node: Character-storing, Next: Character-testing, Prev: Character-printing, Up: Character -1.28.11 Character: storing --------------------------- +Character: storing +------------------ storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -3794,8 +3789,8 @@  File: gst-base.info, Node: Character-testing, Next: Character-testing functionality, Prev: Character-storing, Up: Character -1.28.12 Character: testing --------------------------- +Character: testing +------------------ isAlphaNumeric True if self is a letter or a digit @@ -3825,8 +3820,8 @@  File: gst-base.info, Node: Character-testing functionality, Prev: Character-testing, Up: Character -1.28.13 Character: testing functionality ----------------------------------------- +Character: testing functionality +-------------------------------- isCharacter Answer True. We're definitely characters @@ -3835,8 +3830,8 @@  File: gst-base.info, Node: CharacterArray, Next: CInt, Prev: Character, Up: Base classes -1.29 CharacterArray -=================== +CharacterArray +============== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -3859,8 +3854,8 @@  File: gst-base.info, Node: CharacterArray class-basic, Next: CharacterArray-basic, Up: CharacterArray -1.29.1 CharacterArray class: basic ----------------------------------- +CharacterArray class: basic +--------------------------- fromString: aCharacterArray Make up an instance of the receiver containing the same characters @@ -3873,8 +3868,8 @@  File: gst-base.info, Node: CharacterArray-basic, Next: CharacterArray-built ins, Prev: CharacterArray class-basic, Up: CharacterArray -1.29.2 CharacterArray: basic ----------------------------- +CharacterArray: basic +--------------------- basicAt: index Answer the index-th character of the receiver. This is an exception @@ -3891,8 +3886,8 @@  File: gst-base.info, Node: CharacterArray-built ins, Next: CharacterArray-comparing, Prev: CharacterArray-basic, Up: CharacterArray -1.29.3 CharacterArray: built ins --------------------------------- +CharacterArray: built ins +------------------------- valueAt: index Answer the ascii value of index-th character variable of the @@ -3906,8 +3901,8 @@  File: gst-base.info, Node: CharacterArray-comparing, Next: CharacterArray-converting, Prev: CharacterArray-built ins, Up: CharacterArray -1.29.4 CharacterArray: comparing --------------------------------- +CharacterArray: comparing +------------------------- < aCharacterArray Return true if the receiver is less than aCharacterArray, ignoring @@ -3961,8 +3956,8 @@  File: gst-base.info, Node: CharacterArray-converting, Next: CharacterArray-printing, Prev: CharacterArray-comparing, Up: CharacterArray -1.29.5 CharacterArray: converting ---------------------------------- +CharacterArray: converting +-------------------------- asByteArray Return the receiver, converted to a ByteArray of ASCII values @@ -4013,8 +4008,8 @@  File: gst-base.info, Node: CharacterArray-printing, Next: CharacterArray-storing, Prev: CharacterArray-converting, Up: CharacterArray -1.29.6 CharacterArray: printing -------------------------------- +CharacterArray: printing +------------------------ displayOn: aStream Print a representation of the receiver on aStream. Unlike @@ -4032,8 +4027,8 @@  File: gst-base.info, Node: CharacterArray-storing, Next: CharacterArray-string processing, Prev: CharacterArray-printing, Up: CharacterArray -1.29.7 CharacterArray: storing ------------------------------- +CharacterArray: storing +----------------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -4042,8 +4037,8 @@  File: gst-base.info, Node: CharacterArray-string processing, Next: CharacterArray-testing functionality, Prev: CharacterArray-storing, Up: CharacterArray -1.29.8 CharacterArray: string processing ----------------------------------------- +CharacterArray: string processing +--------------------------------- bindWith: s1 Answer the receiver with every %1 replaced by the displayString of @@ -4103,8 +4098,8 @@  File: gst-base.info, Node: CharacterArray-testing functionality, Prev: CharacterArray-string processing, Up: CharacterArray -1.29.9 CharacterArray: testing functionality --------------------------------------------- +CharacterArray: testing functionality +------------------------------------- isCharacterArray Answer `true'. @@ -4113,8 +4108,8 @@  File: gst-base.info, Node: CInt, Next: Class, Prev: CharacterArray, Up: Base classes -1.30 CInt -========= +CInt +==== Defined in namespace Smalltalk Superclass: CScalar @@ -4128,8 +4123,8 @@  File: gst-base.info, Node: CInt class-accessing, Next: CInt-accessing, Up: CInt -1.30.1 CInt class: accessing ----------------------------- +CInt class: accessing +--------------------- alignof Answer the receiver's required aligment @@ -4145,8 +4140,8 @@  File: gst-base.info, Node: CInt-accessing, Prev: CInt class-accessing, Up: CInt -1.30.2 CInt: accessing ----------------------- +CInt: accessing +--------------- alignof Answer the receiver's instances required aligment @@ -4161,8 +4156,8 @@  File: gst-base.info, Node: Class, Next: ClassDescription, Prev: CInt, Up: Base classes -1.31 Class -========== +Class +===== Defined in namespace Smalltalk Superclass: ClassDescription @@ -4187,8 +4182,8 @@  File: gst-base.info, Node: Class-accessing instances and variables, Next: Class-filing, Up: Class -1.31.1 Class: accessing instances and variables ------------------------------------------------ +Class: accessing instances and variables +---------------------------------------- addClassVarName: aString Add a class variable with the given name to the class pool @@ -4252,8 +4247,8 @@  File: gst-base.info, Node: Class-filing, Next: Class-instance creation, Prev: Class-accessing instances and variables, Up: Class -1.31.2 Class: filing --------------------- +Class: filing +------------- fileOutDeclarationOn: aFileStream File out class definition to aFileStream @@ -4269,8 +4264,8 @@  File: gst-base.info, Node: Class-instance creation, Next: Class-instance creation - alternative, Prev: Class-filing, Up: Class -1.31.3 Class: instance creation -------------------------------- +Class: instance creation +------------------------ extend Redefine a version of the receiver in the current namespace. Note: @@ -4314,8 +4309,8 @@  File: gst-base.info, Node: Class-instance creation - alternative, Next: Class-printing, Prev: Class-instance creation, Up: Class -1.31.4 Class: instance creation - alternative ---------------------------------------------- +Class: instance creation - alternative +-------------------------------------- categoriesFor: method are: categories Don't use this, it is only present to file in from IBM Smalltalk @@ -4348,8 +4343,8 @@  File: gst-base.info, Node: Class-printing, Next: Class-saving and loading, Prev: Class-instance creation - alternative, Up: Class -1.31.5 Class: printing ----------------------- +Class: printing +--------------- article Answer an article (`a' or `an') which is ok for the receiver's name @@ -4364,8 +4359,8 @@  File: gst-base.info, Node: Class-saving and loading, Next: Class-testing, Prev: Class-printing, Up: Class -1.31.6 Class: saving and loading --------------------------------- +Class: saving and loading +------------------------- binaryRepresentationVersion Answer a number >= 0 which represents the current version of the @@ -4394,8 +4389,8 @@  File: gst-base.info, Node: Class-testing, Next: Class-testing functionality, Prev: Class-saving and loading, Up: Class -1.31.7 Class: testing ---------------------- +Class: testing +-------------- = aClass Returns true if the two class objects are to be considered equal. @@ -4404,8 +4399,8 @@  File: gst-base.info, Node: Class-testing functionality, Prev: Class-testing, Up: Class -1.31.8 Class: testing functionality ------------------------------------ +Class: testing functionality +---------------------------- asClass Answer the receiver. @@ -4417,8 +4412,8 @@  File: gst-base.info, Node: ClassDescription, Next: CLong, Prev: Class, Up: Base classes -1.32 ClassDescription -===================== +ClassDescription +================ Defined in namespace Smalltalk Superclass: Behavior @@ -4439,8 +4434,8 @@  File: gst-base.info, Node: ClassDescription-compiling, Next: ClassDescription-conversion, Up: ClassDescription -1.32.1 ClassDescription: compiling ----------------------------------- +ClassDescription: compiling +--------------------------- compile: code classified: categoryName Compile code in the receiver, assigning the method to the given @@ -4461,8 +4456,8 @@  File: gst-base.info, Node: ClassDescription-conversion, Next: ClassDescription-copying, Prev: ClassDescription-compiling, Up: ClassDescription -1.32.2 ClassDescription: conversion ------------------------------------ +ClassDescription: conversion +---------------------------- asClass This method's functionality should be implemented by subclasses of @@ -4478,8 +4473,8 @@  File: gst-base.info, Node: ClassDescription-copying, Next: ClassDescription-filing, Prev: ClassDescription-conversion, Up: ClassDescription -1.32.3 ClassDescription: copying --------------------------------- +ClassDescription: copying +------------------------- copy: selector from: aClass Copy the given selector from aClass, assigning it the same category @@ -4512,8 +4507,8 @@  File: gst-base.info, Node: ClassDescription-filing, Next: ClassDescription-organization of messages and classes, Prev: ClassDescription-copying, Up: ClassDescription -1.32.4 ClassDescription: filing -------------------------------- +ClassDescription: filing +------------------------ fileOut: fileName Open the given file and to file out a complete class description @@ -4538,8 +4533,8 @@  File: gst-base.info, Node: ClassDescription-organization of messages and classes, Next: ClassDescription-printing, Prev: ClassDescription-filing, Up: ClassDescription -1.32.5 ClassDescription: organization of messages and classes -------------------------------------------------------------- +ClassDescription: organization of messages and classes +------------------------------------------------------ classify: aSelector under: aString Put the method identified by the selector aSelector under the @@ -4576,8 +4571,8 @@  File: gst-base.info, Node: ClassDescription-printing, Prev: ClassDescription-organization of messages and classes, Up: ClassDescription -1.32.6 ClassDescription: printing ---------------------------------- +ClassDescription: printing +-------------------------- classVariableString This method's functionality should be implemented by subclasses of @@ -4602,8 +4597,8 @@  File: gst-base.info, Node: CLong, Next: CObject, Prev: ClassDescription, Up: Base classes -1.33 CLong -========== +CLong +===== Defined in namespace Smalltalk Superclass: CScalar @@ -4617,8 +4612,8 @@  File: gst-base.info, Node: CLong class-accessing, Next: CLong-accessing, Up: CLong -1.33.1 CLong class: accessing ------------------------------ +CLong class: accessing +---------------------- alignof Answer the receiver's instances required aligment @@ -4634,8 +4629,8 @@  File: gst-base.info, Node: CLong-accessing, Prev: CLong class-accessing, Up: CLong -1.33.2 CLong: accessing ------------------------ +CLong: accessing +---------------- alignof Answer the receiver's required aligment @@ -4650,8 +4645,8 @@  File: gst-base.info, Node: CObject, Next: Collection, Prev: CLong, Up: Base classes -1.34 CObject -============ +CObject +======= Defined in namespace Smalltalk Superclass: Object @@ -4676,8 +4671,8 @@  File: gst-base.info, Node: CObject class-conversion, Next: CObject class-instance creation, Up: CObject -1.34.1 CObject class: conversion --------------------------------- +CObject class: conversion +------------------------- scalarIndex Nothing special in the default case - answer a CType for the @@ -4691,8 +4686,8 @@  File: gst-base.info, Node: CObject class-instance creation, Next: CObject-accessing, Prev: CObject class-conversion, Up: CObject -1.34.2 CObject class: instance creation ---------------------------------------- +CObject class: instance creation +-------------------------------- address: anInteger Answer a new object pointing to the passed address, anInteger @@ -4713,8 +4708,8 @@  File: gst-base.info, Node: CObject-accessing, Next: CObject-C data access, Prev: CObject class-instance creation, Up: CObject -1.34.3 CObject: accessing -------------------------- +CObject: accessing +------------------ address Answer the address the receiver is pointing to. @@ -4732,8 +4727,8 @@  File: gst-base.info, Node: CObject-C data access, Next: CObject-conversion, Prev: CObject-accessing, Up: CObject -1.34.4 CObject: C data access ------------------------------ +CObject: C data access +---------------------- at: byteOffset put: aValue type: aType Store aValue as data of the given type from byteOffset bytes after @@ -4751,8 +4746,8 @@  File: gst-base.info, Node: CObject-conversion, Next: CObject-finalization, Prev: CObject-C data access, Up: CObject -1.34.5 CObject: conversion --------------------------- +CObject: conversion +------------------- castTo: aType Answer another CObject, pointing to the same address as the @@ -4775,8 +4770,8 @@  File: gst-base.info, Node: CObject-finalization, Next: CObject-pointer-like behavior, Prev: CObject-conversion, Up: CObject -1.34.6 CObject: finalization ----------------------------- +CObject: finalization +--------------------- finalize To make the VM call this, use #addToBeFinalized. It frees @@ -4789,8 +4784,8 @@  File: gst-base.info, Node: CObject-pointer-like behavior, Prev: CObject-finalization, Up: CObject -1.34.7 CObject: pointer-like behavior -------------------------------------- +CObject: pointer-like behavior +------------------------------ + anInteger Return another instance of the receiver's class which points at @@ -4848,8 +4843,8 @@  File: gst-base.info, Node: Collection, Next: CompiledBlock, Prev: CObject, Up: Base classes -1.35 Collection -=============== +Collection +========== Defined in namespace Smalltalk Superclass: Object @@ -4876,8 +4871,8 @@  File: gst-base.info, Node: Collection class-instance creation, Next: Collection-adding, Up: Collection -1.35.1 Collection class: instance creation ------------------------------------------- +Collection class: instance creation +----------------------------------- with: anObject Answer a collection whose only element is anObject @@ -4905,8 +4900,8 @@  File: gst-base.info, Node: Collection-adding, Next: Collection-converting, Prev: Collection class-instance creation, Up: Collection -1.35.2 Collection: adding -------------------------- +Collection: adding +------------------ add: newObject Add newObject to the receiver, answer it @@ -4919,8 +4914,8 @@  File: gst-base.info, Node: Collection-converting, Next: Collection-copying Collections, Prev: Collection-adding, Up: Collection -1.35.3 Collection: converting ------------------------------ +Collection: converting +---------------------- asArray Answer an Array containing all the elements in the receiver @@ -4958,8 +4953,8 @@  File: gst-base.info, Node: Collection-copying Collections, Next: Collection-enumeration, Prev: Collection-converting, Up: Collection -1.35.4 Collection: copying Collections --------------------------------------- +Collection: copying Collections +------------------------------- copyReplacing: targetObject withObject: newObject Copy replacing each object which is = to targetObject with @@ -4976,8 +4971,8 @@  File: gst-base.info, Node: Collection-enumeration, Next: Collection-finalization, Prev: Collection-copying Collections, Up: Collection -1.35.5 Collection: enumeration ------------------------------- +Collection: enumeration +----------------------- allSatisfy: aBlock Search the receiver for an element for which aBlock returns false. @@ -5054,8 +5049,8 @@  File: gst-base.info, Node: Collection-finalization, Next: Collection-printing, Prev: Collection-enumeration, Up: Collection -1.35.6 Collection: finalization -------------------------------- +Collection: finalization +------------------------ mourn: anObject Private - anObject has been found to have a weak key, remove it @@ -5065,8 +5060,8 @@  File: gst-base.info, Node: Collection-printing, Next: Collection-removing, Prev: Collection-finalization, Up: Collection -1.35.7 Collection: printing ---------------------------- +Collection: printing +-------------------- inspect Print all the instance variables and objects in the receiver on the @@ -5079,8 +5074,8 @@  File: gst-base.info, Node: Collection-removing, Next: Collection-storing, Prev: Collection-printing, Up: Collection -1.35.8 Collection: removing ---------------------------- +Collection: removing +-------------------- empty Remove everything from the receiver. @@ -5106,8 +5101,8 @@  File: gst-base.info, Node: Collection-storing, Next: Collection-testing collections, Prev: Collection-removing, Up: Collection -1.35.9 Collection: storing --------------------------- +Collection: storing +------------------- storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -5116,8 +5111,8 @@  File: gst-base.info, Node: Collection-testing collections, Prev: Collection-storing, Up: Collection -1.35.10 Collection: testing collections ---------------------------------------- +Collection: testing collections +------------------------------- capacity Answer how many elements the receiver can hold before having to @@ -5145,8 +5140,8 @@  File: gst-base.info, Node: CompiledBlock, Next: CompiledCode, Prev: Collection, Up: Base classes -1.36 CompiledBlock -================== +CompiledBlock +============= Defined in namespace Smalltalk Superclass: CompiledCode @@ -5164,8 +5159,8 @@  File: gst-base.info, Node: CompiledBlock class-instance creation, Next: CompiledBlock-accessing, Up: CompiledBlock -1.36.1 CompiledBlock class: instance creation ---------------------------------------------- +CompiledBlock class: instance creation +-------------------------------------- newMethod: numBytecodes header: anInteger method: outerMethod Answer a new CompiledMethod with room for the given bytes and the @@ -5182,8 +5177,8 @@  File: gst-base.info, Node: CompiledBlock-accessing, Next: CompiledBlock-basic, Prev: CompiledBlock class-instance creation, Up: CompiledBlock -1.36.2 CompiledBlock: accessing -------------------------------- +CompiledBlock: accessing +------------------------ flags Answer the `cleanness' of the block. 0 = clean; 1 = access to @@ -5221,8 +5216,8 @@  File: gst-base.info, Node: CompiledBlock-basic, Next: CompiledBlock-printing, Prev: CompiledBlock-accessing, Up: CompiledBlock -1.36.3 CompiledBlock: basic ---------------------------- +CompiledBlock: basic +-------------------- = aMethod Answer whether the receiver and aMethod are equal @@ -5250,8 +5245,8 @@  File: gst-base.info, Node: CompiledBlock-printing, Next: CompiledBlock-saving and loading, Prev: CompiledBlock-basic, Up: CompiledBlock -1.36.4 CompiledBlock: printing ------------------------------- +CompiledBlock: printing +----------------------- printOn: aStream Print the receiver's class and selector on aStream @@ -5260,8 +5255,8 @@  File: gst-base.info, Node: CompiledBlock-saving and loading, Prev: CompiledBlock-printing, Up: CompiledBlock -1.36.5 CompiledBlock: saving and loading ----------------------------------------- +CompiledBlock: saving and loading +--------------------------------- to @@ -5274,8 +5269,8 @@  File: gst-base.info, Node: CompiledCode, Next: CompiledMethod, Prev: CompiledBlock, Up: Base classes -1.37 CompiledCode -================= +CompiledCode +============ Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -5298,8 +5293,8 @@  File: gst-base.info, Node: CompiledCode class-cache flushing, Next: CompiledCode class-instance creation, Up: CompiledCode -1.37.1 CompiledCode class: cache flushing ------------------------------------------ +CompiledCode class: cache flushing +---------------------------------- flushTranslatorCache Answer any kind of cache mantained by a just-in-time code @@ -5309,8 +5304,8 @@  File: gst-base.info, Node: CompiledCode class-instance creation, Next: CompiledCode-accessing, Prev: CompiledCode class-cache flushing, Up: CompiledCode -1.37.2 CompiledCode class: instance creation --------------------------------------------- +CompiledCode class: instance creation +------------------------------------- newMethod: numBytecodes header: anInteger literals: literals Answer a new CompiledMethod with room for the given bytes and the @@ -5324,8 +5319,8 @@  File: gst-base.info, Node: CompiledCode-accessing, Next: CompiledCode-basic, Prev: CompiledCode class-instance creation, Up: CompiledCode -1.37.3 CompiledCode: accessing ------------------------------- +CompiledCode: accessing +----------------------- at: anIndex put: aBytecode Store aBytecode as the anIndex-th bytecode @@ -5383,8 +5378,8 @@  File: gst-base.info, Node: CompiledCode-basic, Next: CompiledCode-copying, Prev: CompiledCode-accessing, Up: CompiledCode -1.37.4 CompiledCode: basic --------------------------- +CompiledCode: basic +------------------- = aMethod Answer whether the receiver and aMethod are equal @@ -5415,8 +5410,8 @@  File: gst-base.info, Node: CompiledCode-copying, Next: CompiledCode-debugging, Prev: CompiledCode-basic, Up: CompiledCode -1.37.5 CompiledCode: copying ----------------------------- +CompiledCode: copying +--------------------- deepCopy Answer a deep copy of the receiver @@ -5425,8 +5420,8 @@  File: gst-base.info, Node: CompiledCode-debugging, Next: CompiledCode-decoding bytecodes, Prev: CompiledCode-copying, Up: CompiledCode -1.37.6 CompiledCode: debugging ------------------------------- +CompiledCode: debugging +----------------------- inspect Print the contents of the receiver in a verbose way. @@ -5435,8 +5430,8 @@  File: gst-base.info, Node: CompiledCode-decoding bytecodes, Next: CompiledCode-testing accesses, Prev: CompiledCode-debugging, Up: CompiledCode -1.37.7 CompiledCode: decoding bytecodes ---------------------------------------- +CompiledCode: decoding bytecodes +-------------------------------- dispatchTo: anObject with: param Disassemble the bytecodes and tell anObject about them in the form @@ -5447,8 +5442,8 @@  File: gst-base.info, Node: CompiledCode-testing accesses, Next: CompiledCode-translation, Prev: CompiledCode-decoding bytecodes, Up: CompiledCode -1.37.8 CompiledCode: testing accesses -------------------------------------- +CompiledCode: testing accesses +------------------------------ accesses: instVarIndex Answer whether the receiver accesses the instance variable with @@ -5484,8 +5479,8 @@  File: gst-base.info, Node: CompiledCode-translation, Prev: CompiledCode-testing accesses, Up: CompiledCode -1.37.9 CompiledCode: translation --------------------------------- +CompiledCode: translation +------------------------- discardTranslation Flush the just-in-time translated code for the receiver (if any). @@ -5494,8 +5489,8 @@  File: gst-base.info, Node: CompiledMethod, Next: ContextPart, Prev: CompiledCode, Up: Base classes -1.38 CompiledMethod -=================== +CompiledMethod +============== Defined in namespace Smalltalk Superclass: CompiledCode @@ -5518,8 +5513,8 @@  File: gst-base.info, Node: CompiledMethod class-instance creation, Next: CompiledMethod class-lean images, Up: CompiledMethod -1.38.1 CompiledMethod class: instance creation ----------------------------------------------- +CompiledMethod class: instance creation +--------------------------------------- literals: lits numArgs: numArg numTemps: numTemp primitive: primIndex bytecodes: bytecodes depth: depth Answer a @@ -5533,8 +5528,8 @@  File: gst-base.info, Node: CompiledMethod class-lean images, Next: CompiledMethod-accessing, Prev: CompiledMethod class-instance creation, Up: CompiledMethod -1.38.2 CompiledMethod class: lean images ----------------------------------------- +CompiledMethod class: lean images +--------------------------------- stripSourceCode Remove all the references to method source code from the system @@ -5543,8 +5538,8 @@  File: gst-base.info, Node: CompiledMethod-accessing, Next: CompiledMethod-basic, Prev: CompiledMethod class-lean images, Up: CompiledMethod -1.38.3 CompiledMethod: accessing --------------------------------- +CompiledMethod: accessing +------------------------- allBlocksDo: aBlock Evaluate aBlock, passing to it all the CompiledBlocks it holds @@ -5596,8 +5591,8 @@  File: gst-base.info, Node: CompiledMethod-basic, Next: CompiledMethod-printing, Prev: CompiledMethod-accessing, Up: CompiledMethod -1.38.4 CompiledMethod: basic ----------------------------- +CompiledMethod: basic +--------------------- = aMethod Answer whether the receiver and aMethod are equal @@ -5628,8 +5623,8 @@  File: gst-base.info, Node: CompiledMethod-printing, Next: CompiledMethod-saving and loading, Prev: CompiledMethod-basic, Up: CompiledMethod -1.38.5 CompiledMethod: printing -------------------------------- +CompiledMethod: printing +------------------------ printOn: aStream Print the receiver's class and selector on aStream @@ -5641,8 +5636,8 @@  File: gst-base.info, Node: CompiledMethod-saving and loading, Next: CompiledMethod-testing, Prev: CompiledMethod-printing, Up: CompiledMethod -1.38.6 CompiledMethod: saving and loading ------------------------------------------ +CompiledMethod: saving and loading +---------------------------------- to @@ -5655,8 +5650,8 @@  File: gst-base.info, Node: CompiledMethod-testing, Prev: CompiledMethod-saving and loading, Up: CompiledMethod -1.38.7 CompiledMethod: testing ------------------------------- +CompiledMethod: testing +----------------------- accesses: instVarIndex Answer whether the receiver or the blocks it contains accesses the @@ -5674,8 +5669,8 @@  File: gst-base.info, Node: ContextPart, Next: CoreException, Prev: CompiledMethod, Up: Base classes -1.39 ContextPart -================ +ContextPart +=========== Defined in namespace Smalltalk Superclass: Object @@ -5699,8 +5694,8 @@  File: gst-base.info, Node: ContextPart class-exception handling, Next: ContextPart-accessing, Up: ContextPart -1.39.1 ContextPart class: exception handling --------------------------------------------- +ContextPart class: exception handling +------------------------------------- backtrace Print a backtrace from the caller to the bottom of the stack on the @@ -5731,8 +5726,8 @@  File: gst-base.info, Node: ContextPart-accessing, Next: ContextPart-built ins, Prev: ContextPart class-exception handling, Up: ContextPart -1.39.2 ContextPart: accessing ------------------------------ +ContextPart: accessing +---------------------- client Answer the client of this context, that is, the object that sent @@ -5832,8 +5827,8 @@  File: gst-base.info, Node: ContextPart-built ins, Next: ContextPart-copying, Prev: ContextPart-accessing, Up: ContextPart -1.39.3 ContextPart: built ins ------------------------------ +ContextPart: built ins +---------------------- continue: anObject Resume execution from the receiver, faking that the context on top @@ -5849,8 +5844,8 @@  File: gst-base.info, Node: ContextPart-copying, Next: ContextPart-debugging, Prev: ContextPart-built ins, Up: ContextPart -1.39.4 ContextPart: copying ---------------------------- +ContextPart: copying +-------------------- deepCopy Answer a shallow copy of the receiver - duplicating e.g. the @@ -5861,8 +5856,8 @@  File: gst-base.info, Node: ContextPart-debugging, Next: ContextPart-enumerating, Prev: ContextPart-copying, Up: ContextPart -1.39.5 ContextPart: debugging ------------------------------ +ContextPart: debugging +---------------------- debuggerClass Answer which debugger should be used to debug the current context @@ -5877,8 +5872,8 @@  File: gst-base.info, Node: ContextPart-enumerating, Next: ContextPart-exception handling, Prev: ContextPart-debugging, Up: ContextPart -1.39.6 ContextPart: enumerating -------------------------------- +ContextPart: enumerating +------------------------ scanBacktraceFor: selectors do: aBlock Scan the backtrace for contexts whose selector is among those @@ -5889,8 +5884,8 @@  File: gst-base.info, Node: ContextPart-exception handling, Next: ContextPart-printing, Prev: ContextPart-enumerating, Up: ContextPart -1.39.7 ContextPart: exception handling --------------------------------------- +ContextPart: exception handling +------------------------------- mark Add the receiver as a possible unwind point @@ -5899,8 +5894,8 @@  File: gst-base.info, Node: ContextPart-printing, Prev: ContextPart-exception handling, Up: ContextPart -1.39.8 ContextPart: printing ----------------------------- +ContextPart: printing +--------------------- backtrace Print a backtrace from the receiver to the bottom of the stack on @@ -5914,8 +5909,8 @@  File: gst-base.info, Node: CoreException, Next: CPtr, Prev: ContextPart, Up: Base classes -1.40 CoreException -================== +CoreException +============= Defined in namespace Smalltalk Superclass: TrappableEvent @@ -5946,8 +5941,8 @@  File: gst-base.info, Node: CoreException class-instance creation, Next: CoreException-accessing, Up: CoreException -1.40.1 CoreException class: instance creation ---------------------------------------------- +CoreException class: instance creation +-------------------------------------- new Create a new exception whose parent is ExAll @@ -5956,8 +5951,8 @@  File: gst-base.info, Node: CoreException-accessing, Next: CoreException-basic, Prev: CoreException class-instance creation, Up: CoreException -1.40.2 CoreException: accessing -------------------------------- +CoreException: accessing +------------------------ defaultHandler Answer the default handler for the receiver @@ -5993,8 +5988,8 @@  File: gst-base.info, Node: CoreException-basic, Next: CoreException-enumerating, Prev: CoreException-accessing, Up: CoreException -1.40.3 CoreException: basic ---------------------------- +CoreException: basic +-------------------- postCopy Modify the receiver so that the description is deep copied @@ -6003,8 +5998,8 @@  File: gst-base.info, Node: CoreException-enumerating, Next: CoreException-exception handling, Prev: CoreException-basic, Up: CoreException -1.40.4 CoreException: enumerating ---------------------------------- +CoreException: enumerating +-------------------------- allExceptionsDo: aBlock Private - Evaluate aBlock for every exception in the receiver. As @@ -6023,8 +6018,8 @@  File: gst-base.info, Node: CoreException-exception handling, Next: CoreException-instance creation, Prev: CoreException-enumerating, Up: CoreException -1.40.5 CoreException: exception handling ----------------------------------------- +CoreException: exception handling +--------------------------------- signal Raise the exception described by the receiver, passing no @@ -6046,8 +6041,8 @@  File: gst-base.info, Node: CoreException-instance creation, Prev: CoreException-exception handling, Up: CoreException -1.40.6 CoreException: instance creation ---------------------------------------- +CoreException: instance creation +-------------------------------- newChild Answer a child exception of the receiver. Its properties are set @@ -6057,8 +6052,8 @@  File: gst-base.info, Node: CPtr, Next: CPtrCType, Prev: CoreException, Up: Base classes -1.41 CPtr -========= +CPtr +==== Defined in namespace Smalltalk Superclass: CAggregate @@ -6071,8 +6066,8 @@  File: gst-base.info, Node: CPtr-accessing, Up: CPtr -1.41.1 CPtr: accessing ----------------------- +CPtr: accessing +--------------- alignof Answer the receiver's required aligment @@ -6093,8 +6088,8 @@  File: gst-base.info, Node: CPtrCType, Next: CScalar, Prev: CPtr, Up: Base classes -1.42 CPtrCType -============== +CPtrCType +========= Defined in namespace Smalltalk Superclass: CType @@ -6108,8 +6103,8 @@  File: gst-base.info, Node: CPtrCType class-instance creation, Next: CPtrCType-accessing, Up: CPtrCType -1.42.1 CPtrCType class: instance creation ------------------------------------------ +CPtrCType class: instance creation +---------------------------------- elementType: aCType Answer a new instance of CPtrCType that maps pointers to the given @@ -6119,8 +6114,8 @@  File: gst-base.info, Node: CPtrCType-accessing, Prev: CPtrCType class-instance creation, Up: CPtrCType -1.42.2 CPtrCType: accessing ---------------------------- +CPtrCType: accessing +-------------------- elementType Answer the type of the elements in the receiver's instances @@ -6135,8 +6130,8 @@  File: gst-base.info, Node: CScalar, Next: CScalarCType, Prev: CPtrCType, Up: Base classes -1.43 CScalar -============ +CScalar +======= Defined in namespace Smalltalk Superclass: CObject @@ -6150,8 +6145,8 @@  File: gst-base.info, Node: CScalar class-instance creation, Next: CScalar-accessing, Up: CScalar -1.43.1 CScalar class: instance creation ---------------------------------------- +CScalar class: instance creation +-------------------------------- type Answer a CType for the receiver - for example, CByteType if the @@ -6166,8 +6161,8 @@  File: gst-base.info, Node: CScalar-accessing, Prev: CScalar class-instance creation, Up: CScalar -1.43.2 CScalar: accessing -------------------------- +CScalar: accessing +------------------ cObjStoredType Private - Provide a conversion from a CObject to a Smalltalk object @@ -6185,8 +6180,8 @@  File: gst-base.info, Node: CScalarCType, Next: CShort, Prev: CScalar, Up: Base classes -1.44 CScalarCType -================= +CScalarCType +============ Defined in namespace Smalltalk Superclass: CType @@ -6200,8 +6195,8 @@  File: gst-base.info, Node: CScalarCType-accessing, Next: CScalarCType-storing, Up: CScalarCType -1.44.1 CScalarCType: accessing ------------------------------- +CScalarCType: accessing +----------------------- valueType valueType is used as a means to communicate to the interpreter the @@ -6212,8 +6207,8 @@  File: gst-base.info, Node: CScalarCType-storing, Prev: CScalarCType-accessing, Up: CScalarCType -1.44.2 CScalarCType: storing ----------------------------- +CScalarCType: storing +--------------------- storeOn: aStream Store Smalltalk code that compiles to the receiver @@ -6222,8 +6217,8 @@  File: gst-base.info, Node: CShort, Next: CSmalltalk, Prev: CScalarCType, Up: Base classes -1.45 CShort -=========== +CShort +====== Defined in namespace Smalltalk Superclass: CScalar @@ -6237,8 +6232,8 @@  File: gst-base.info, Node: CShort class-accessing, Next: CShort-accessing, Up: CShort -1.45.1 CShort class: accessing ------------------------------- +CShort class: accessing +----------------------- alignof Answer the receiver's instances required aligment @@ -6254,8 +6249,8 @@  File: gst-base.info, Node: CShort-accessing, Prev: CShort class-accessing, Up: CShort -1.45.2 CShort: accessing ------------------------- +CShort: accessing +----------------- alignof Answer the receiver's required aligment @@ -6270,8 +6265,8 @@  File: gst-base.info, Node: CSmalltalk, Next: CString, Prev: CShort, Up: Base classes -1.46 CSmalltalk -=============== +CSmalltalk +========== Defined in namespace Smalltalk Superclass: CScalar @@ -6285,8 +6280,8 @@  File: gst-base.info, Node: CSmalltalk class-accessing, Next: CSmalltalk-accessing, Up: CSmalltalk -1.46.1 CSmalltalk class: accessing ----------------------------------- +CSmalltalk class: accessing +--------------------------- alignof Answer the receiver's instances required aligment @@ -6302,8 +6297,8 @@  File: gst-base.info, Node: CSmalltalk-accessing, Prev: CSmalltalk class-accessing, Up: CSmalltalk -1.46.2 CSmalltalk: accessing ----------------------------- +CSmalltalk: accessing +--------------------- alignof Answer the receiver's required aligment @@ -6318,8 +6313,8 @@  File: gst-base.info, Node: CString, Next: CStringCType, Prev: CSmalltalk, Up: Base classes -1.47 CString -============ +CString +======= Defined in namespace Smalltalk Superclass: CPtr @@ -6343,8 +6338,8 @@  File: gst-base.info, Node: CString class-instance creation, Next: CString-accessing, Up: CString -1.47.1 CString class: instance creation ---------------------------------------- +CString class: instance creation +-------------------------------- type Answer a CType for the receiver - for example, CByteType if the @@ -6359,8 +6354,8 @@  File: gst-base.info, Node: CString-accessing, Prev: CString class-instance creation, Up: CString -1.47.2 CString: accessing -------------------------- +CString: accessing +------------------ cObjStoredType Private - Provide a conversion from a CObject to a Smalltalk object @@ -6378,8 +6373,8 @@  File: gst-base.info, Node: CStringCType, Next: CStruct, Prev: CString, Up: Base classes -1.48 CStringCType -================= +CStringCType +============ Defined in namespace Smalltalk Superclass: CScalarCType @@ -6392,8 +6387,8 @@  File: gst-base.info, Node: CStringCType-accessing, Up: CStringCType -1.48.1 CStringCType: accessing ------------------------------- +CStringCType: accessing +----------------------- elementType Answer the type of the elements in the receiver's instances @@ -6402,8 +6397,8 @@  File: gst-base.info, Node: CStruct, Next: CType, Prev: CStringCType, Up: Base classes -1.49 CStruct -============ +CStruct +======= Defined in namespace Smalltalk Superclass: CCompound @@ -6416,8 +6411,8 @@  File: gst-base.info, Node: CStruct class-subclass creation, Up: CStruct -1.49.1 CStruct class: subclass creation ---------------------------------------- +CStruct class: subclass creation +-------------------------------- compileDeclaration: array Compile methods that implement the declaration in array. @@ -6426,8 +6421,8 @@  File: gst-base.info, Node: CType, Next: CUChar, Prev: CStruct, Up: Base classes -1.50 CType -========== +CType +===== Defined in namespace Smalltalk Superclass: Object @@ -6457,8 +6452,8 @@  File: gst-base.info, Node: CType class-C instance creation, Next: CType-accessing, Up: CType -1.50.1 CType class: C instance creation ---------------------------------------- +CType class: C instance creation +-------------------------------- cObjectType: aCObjectSubclass Create a new CType for the given subclass of CObject @@ -6467,8 +6462,8 @@  File: gst-base.info, Node: CType-accessing, Next: CType-C instance creation, Prev: CType class-C instance creation, Up: CType -1.50.2 CType: accessing ------------------------ +CType: accessing +---------------- alignof Answer the size of the receiver's instances @@ -6497,8 +6492,8 @@  File: gst-base.info, Node: CType-C instance creation, Next: CType-storing, Prev: CType-accessing, Up: CType -1.50.3 CType: C instance creation ---------------------------------- +CType: C instance creation +-------------------------- address: cObjOrInt Create a new CObject with the type (class) identified by the @@ -6514,8 +6509,8 @@  File: gst-base.info, Node: CType-storing, Prev: CType-C instance creation, Up: CType -1.50.4 CType: storing ---------------------- +CType: storing +-------------- storeOn: aStream Store Smalltalk code that compiles to the receiver @@ -6524,8 +6519,8 @@  File: gst-base.info, Node: CUChar, Next: CUInt, Prev: CType, Up: Base classes -1.51 CUChar -=========== +CUChar +====== Defined in namespace Smalltalk Superclass: CScalar @@ -6539,8 +6534,8 @@  File: gst-base.info, Node: CUChar class-getting info, Next: CUChar-accessing, Up: CUChar -1.51.1 CUChar class: getting info ---------------------------------- +CUChar class: getting info +-------------------------- alignof Answer the receiver's instances required aligment @@ -6556,8 +6551,8 @@  File: gst-base.info, Node: CUChar-accessing, Prev: CUChar class-getting info, Up: CUChar -1.51.2 CUChar: accessing ------------------------- +CUChar: accessing +----------------- alignof Answer the receiver's required aligment @@ -6572,8 +6567,8 @@  File: gst-base.info, Node: CUInt, Next: CULong, Prev: CUChar, Up: Base classes -1.52 CUInt -========== +CUInt +===== Defined in namespace Smalltalk Superclass: CScalar @@ -6587,8 +6582,8 @@  File: gst-base.info, Node: CUInt class-accessing, Next: CUInt-accessing, Up: CUInt -1.52.1 CUInt class: accessing ------------------------------ +CUInt class: accessing +---------------------- alignof Answer the receiver's instances required aligment @@ -6604,8 +6599,8 @@  File: gst-base.info, Node: CUInt-accessing, Prev: CUInt class-accessing, Up: CUInt -1.52.2 CUInt: accessing ------------------------ +CUInt: accessing +---------------- alignof Answer the receiver's required aligment @@ -6620,8 +6615,8 @@  File: gst-base.info, Node: CULong, Next: CUnion, Prev: CUInt, Up: Base classes -1.53 CULong -=========== +CULong +====== Defined in namespace Smalltalk Superclass: CScalar @@ -6635,8 +6630,8 @@  File: gst-base.info, Node: CULong class-accessing, Next: CULong-accessing, Up: CULong -1.53.1 CULong class: accessing ------------------------------- +CULong class: accessing +----------------------- alignof Answer the receiver's instances required aligment @@ -6652,8 +6647,8 @@  File: gst-base.info, Node: CULong-accessing, Prev: CULong class-accessing, Up: CULong -1.53.2 CULong: accessing ------------------------- +CULong: accessing +----------------- alignof Answer the receiver's required aligment @@ -6668,8 +6663,8 @@  File: gst-base.info, Node: CUnion, Next: CUShort, Prev: CULong, Up: Base classes -1.54 CUnion -=========== +CUnion +====== Defined in namespace Smalltalk Superclass: CCompound @@ -6682,8 +6677,8 @@  File: gst-base.info, Node: CUnion class-subclass creation, Up: CUnion -1.54.1 CUnion class: subclass creation --------------------------------------- +CUnion class: subclass creation +------------------------------- compileDeclaration: array Compile methods that implement the declaration in array. @@ -6692,8 +6687,8 @@  File: gst-base.info, Node: CUShort, Next: Date, Prev: CUnion, Up: Base classes -1.55 CUShort -============ +CUShort +======= Defined in namespace Smalltalk Superclass: CScalar @@ -6707,8 +6702,8 @@  File: gst-base.info, Node: CUShort class-accessing, Next: CUShort-accessing, Up: CUShort -1.55.1 CUShort class: accessing -------------------------------- +CUShort class: accessing +------------------------ alignof Answer the receiver's instances required aligment @@ -6724,8 +6719,8 @@  File: gst-base.info, Node: CUShort-accessing, Prev: CUShort class-accessing, Up: CUShort -1.55.2 CUShort: accessing -------------------------- +CUShort: accessing +------------------ alignof Answer the receiver's required aligment @@ -6740,8 +6735,8 @@  File: gst-base.info, Node: Date, Next: DateTime, Prev: CUShort, Up: Base classes -1.56 Date -========= +Date +==== Defined in namespace Smalltalk Superclass: Magnitude @@ -6778,8 +6773,8 @@  File: gst-base.info, Node: Date class-basic, Next: Date class-instance creation (ANSI), Up: Date -1.56.1 Date class: basic ------------------------- +Date class: basic +----------------- abbreviationOfDay: dayIndex Answer the abbreviated name of the day of week corresponding to @@ -6820,8 +6815,8 @@  File: gst-base.info, Node: Date class-instance creation (ANSI), Next: Date class-instance creation (Blue Book), Prev: Date class-basic, Up: Date -1.56.2 Date class: instance creation (ANSI) -------------------------------------------- +Date class: instance creation (ANSI) +------------------------------------ year: y day: d hour: h minute: min second: s Answer a Date denoting the d-th day of the given year @@ -6834,8 +6829,8 @@  File: gst-base.info, Node: Date class-instance creation (Blue Book), Next: Date-basic, Prev: Date class-instance creation (ANSI), Up: Date -1.56.3 Date class: instance creation (Blue Book) ------------------------------------------------- +Date class: instance creation (Blue Book) +----------------------------------------- dateAndTimeNow Answer an array containing the current date and time @@ -6879,8 +6874,8 @@  File: gst-base.info, Node: Date-basic, Next: Date-compatibility (non-ANSI), Prev: Date class-instance creation (Blue Book), Up: Date -1.56.4 Date: basic ------------------- +Date: basic +----------- addDays: dayCount Answer a new Date pointing dayCount past the receiver @@ -6896,8 +6891,8 @@  File: gst-base.info, Node: Date-compatibility (non-ANSI), Next: Date-date computations, Prev: Date-basic, Up: Date -1.56.5 Date: compatibility (non-ANSI) -------------------------------------- +Date: compatibility (non-ANSI) +------------------------------ day Answer the day represented by the receiver @@ -6913,8 +6908,8 @@  File: gst-base.info, Node: Date-date computations, Next: Date-printing, Prev: Date-compatibility (non-ANSI), Up: Date -1.56.6 Date: date computations ------------------------------- +Date: date computations +----------------------- asSeconds Answer the date as the number of seconds from 1/1/1901. @@ -6978,8 +6973,8 @@  File: gst-base.info, Node: Date-printing, Next: Date-storing, Prev: Date-date computations, Up: Date -1.56.7 Date: printing ---------------------- +Date: printing +-------------- printOn: aStream Print a representation for the receiver on aStream @@ -6988,8 +6983,8 @@  File: gst-base.info, Node: Date-storing, Next: Date-testing, Prev: Date-printing, Up: Date -1.56.8 Date: storing --------------------- +Date: storing +------------- storeOn: aStream Store on aStream Smalltalk code compiling to the receiver @@ -6998,8 +6993,8 @@  File: gst-base.info, Node: Date-testing, Prev: Date-storing, Up: Date -1.56.9 Date: testing --------------------- +Date: testing +------------- < aDate Answer whether the receiver indicates a date preceding aDate @@ -7014,8 +7009,8 @@  File: gst-base.info, Node: DateTime, Next: Delay, Prev: Date, Up: Base classes -1.57 DateTime -============= +DateTime +======== Defined in namespace Smalltalk Superclass: Date @@ -7038,8 +7033,8 @@  File: gst-base.info, Node: DateTime class-information, Next: DateTime class-instance creation, Up: DateTime -1.57.1 DateTime class: information ----------------------------------- +DateTime class: information +--------------------------- clockPrecision Answer `ClockPrecision'. @@ -7051,8 +7046,8 @@  File: gst-base.info, Node: DateTime class-instance creation, Next: DateTime class-instance creation (non-ANSI), Prev: DateTime class-information, Up: DateTime -1.57.2 DateTime class: instance creation ----------------------------------------- +DateTime class: instance creation +--------------------------------- now Answer an instance of the receiver referring to the current date @@ -7084,8 +7079,8 @@  File: gst-base.info, Node: DateTime class-instance creation (non-ANSI), Next: DateTime-basic, Prev: DateTime class-instance creation, Up: DateTime -1.57.3 DateTime class: instance creation (non-ANSI) ---------------------------------------------------- +DateTime class: instance creation (non-ANSI) +-------------------------------------------- fromDays: days seconds: secs offset: ofs Answer a DateTime denoting the d-th day of the given (as a number) @@ -7096,8 +7091,8 @@  File: gst-base.info, Node: DateTime-basic, Next: DateTime-computations, Prev: DateTime class-instance creation (non-ANSI), Up: DateTime -1.57.4 DateTime: basic ----------------------- +DateTime: basic +--------------- + aDuration Answer a new Date pointing dayCount past the receiver @@ -7109,8 +7104,8 @@  File: gst-base.info, Node: DateTime-computations, Next: DateTime-printing, Prev: DateTime-basic, Up: DateTime -1.57.5 DateTime: computations ------------------------------ +DateTime: computations +---------------------- asSeconds Answer the date as the number of seconds from 1/1/1901. @@ -7141,8 +7136,8 @@  File: gst-base.info, Node: DateTime-printing, Next: DateTime-splitting in dates & times, Prev: DateTime-computations, Up: DateTime -1.57.6 DateTime: printing -------------------------- +DateTime: printing +------------------ printOn: aStream Print a representation for the receiver on aStream @@ -7151,8 +7146,8 @@  File: gst-base.info, Node: DateTime-splitting in dates & times, Next: DateTime-storing, Prev: DateTime-printing, Up: DateTime -1.57.7 DateTime: splitting in dates & times -------------------------------------------- +DateTime: splitting in dates & times +------------------------------------ asDate Answer a Date referring to the same day as the receiver @@ -7170,8 +7165,8 @@  File: gst-base.info, Node: DateTime-storing, Next: DateTime-testing, Prev: DateTime-splitting in dates & times, Up: DateTime -1.57.8 DateTime: storing ------------------------- +DateTime: storing +----------------- storeOn: aStream Store on aStream Smalltalk code compiling to the receiver @@ -7180,8 +7175,8 @@  File: gst-base.info, Node: DateTime-testing, Next: DateTime-time zones, Prev: DateTime-storing, Up: DateTime -1.57.9 DateTime: testing ------------------------- +DateTime: testing +----------------- < aDateTime Answer whether the receiver indicates a date preceding aDate @@ -7196,8 +7191,8 @@  File: gst-base.info, Node: DateTime-time zones, Prev: DateTime-testing, Up: DateTime -1.57.10 DateTime: time zones ----------------------------- +DateTime: time zones +-------------------- asLocal Answer the receiver, since DateTime objects store themselves in @@ -7231,8 +7226,8 @@  File: gst-base.info, Node: Delay, Next: DelayedAdaptor, Prev: DateTime, Up: Base classes -1.58 Delay -========== +Delay +===== Defined in namespace Smalltalk Superclass: Object @@ -7255,8 +7250,8 @@  File: gst-base.info, Node: Delay class-general inquiries, Next: Delay class-initialization, Up: Delay -1.58.1 Delay class: general inquiries -------------------------------------- +Delay class: general inquiries +------------------------------ millisecondClockValue Private - Answer the number of milliseconds since midnight @@ -7265,8 +7260,8 @@  File: gst-base.info, Node: Delay class-initialization, Next: Delay class-instance creation, Prev: Delay class-general inquiries, Up: Delay -1.58.2 Delay class: initialization ----------------------------------- +Delay class: initialization +--------------------------- initialize Private - Initialize the receiver and the associated process @@ -7275,8 +7270,8 @@  File: gst-base.info, Node: Delay class-instance creation, Next: Delay-accessing, Prev: Delay class-initialization, Up: Delay -1.58.3 Delay class: instance creation -------------------------------------- +Delay class: instance creation +------------------------------ forMilliseconds: millisecondCount Answer a Delay waiting for millisecondCount milliseconds @@ -7292,8 +7287,8 @@  File: gst-base.info, Node: Delay-accessing, Next: Delay-comparing, Prev: Delay class-instance creation, Up: Delay -1.58.4 Delay: accessing ------------------------ +Delay: accessing +---------------- resumptionTime Answer the time when a process waiting on a Delay will resume @@ -7302,8 +7297,8 @@  File: gst-base.info, Node: Delay-comparing, Next: Delay-process delay, Prev: Delay-accessing, Up: Delay -1.58.5 Delay: comparing ------------------------ +Delay: comparing +---------------- = aDelay Answer whether the receiver and aDelay denote the same delay @@ -7315,8 +7310,8 @@  File: gst-base.info, Node: Delay-process delay, Prev: Delay-comparing, Up: Delay -1.58.6 Delay: process delay ---------------------------- +Delay: process delay +-------------------- wait Wait until the amount of time represented by the instance of Delay @@ -7326,8 +7321,8 @@  File: gst-base.info, Node: DelayedAdaptor, Next: Dictionary, Prev: Delay, Up: Base classes -1.59 DelayedAdaptor -=================== +DelayedAdaptor +============== Defined in namespace Smalltalk Superclass: PluggableAdaptor @@ -7344,8 +7339,8 @@  File: gst-base.info, Node: DelayedAdaptor-accessing, Up: DelayedAdaptor -1.59.1 DelayedAdaptor: accessing --------------------------------- +DelayedAdaptor: accessing +------------------------- trigger Really set the value of the receiver. @@ -7361,8 +7356,8 @@  File: gst-base.info, Node: Dictionary, Next: DirectedMessage, Prev: DelayedAdaptor, Up: Base classes -1.60 Dictionary -=============== +Dictionary +========== Defined in namespace Smalltalk Superclass: HashedCollection @@ -7389,8 +7384,8 @@  File: gst-base.info, Node: Dictionary class-instance creation, Next: Dictionary-accessing, Up: Dictionary -1.60.1 Dictionary class: instance creation ------------------------------------------- +Dictionary class: instance creation +----------------------------------- new Create a new dictionary with a default size @@ -7399,8 +7394,8 @@  File: gst-base.info, Node: Dictionary-accessing, Next: Dictionary-awful ST-80 compatibility hacks, Prev: Dictionary class-instance creation, Up: Dictionary -1.60.2 Dictionary: accessing ----------------------------- +Dictionary: accessing +--------------------- add: newObject Add the newObject association to the receiver @@ -7452,8 +7447,8 @@  File: gst-base.info, Node: Dictionary-awful ST-80 compatibility hacks, Next: Dictionary-dictionary enumerating, Prev: Dictionary-accessing, Up: Dictionary -1.60.3 Dictionary: awful ST-80 compatibility hacks --------------------------------------------------- +Dictionary: awful ST-80 compatibility hacks +------------------------------------------- findKeyIndex: key Tries to see if key exists as a the key of an indexed variable. As @@ -7464,8 +7459,8 @@  File: gst-base.info, Node: Dictionary-dictionary enumerating, Next: Dictionary-dictionary removing, Prev: Dictionary-awful ST-80 compatibility hacks, Up: Dictionary -1.60.4 Dictionary: dictionary enumerating ------------------------------------------ +Dictionary: dictionary enumerating +---------------------------------- associationsDo: aBlock Pass each association in the dictionary to aBlock @@ -7499,8 +7494,8 @@  File: gst-base.info, Node: Dictionary-dictionary removing, Next: Dictionary-dictionary testing, Prev: Dictionary-dictionary enumerating, Up: Dictionary -1.60.5 Dictionary: dictionary removing --------------------------------------- +Dictionary: dictionary removing +------------------------------- remove: anAssociation Remove anAssociation's key from the dictionary @@ -7526,8 +7521,8 @@  File: gst-base.info, Node: Dictionary-dictionary testing, Next: Dictionary-polymorphism hacks, Prev: Dictionary-dictionary removing, Up: Dictionary -1.60.6 Dictionary: dictionary testing -------------------------------------- +Dictionary: dictionary testing +------------------------------ includes: anObject Answer whether the receiver contains anObject as one of its values @@ -7547,8 +7542,8 @@  File: gst-base.info, Node: Dictionary-polymorphism hacks, Next: Dictionary-printing, Prev: Dictionary-dictionary testing, Up: Dictionary -1.60.7 Dictionary: polymorphism hacks -------------------------------------- +Dictionary: polymorphism hacks +------------------------------ withAllSuperspaces This method is needed by the compiler @@ -7557,8 +7552,8 @@  File: gst-base.info, Node: Dictionary-printing, Next: Dictionary-rehashing, Prev: Dictionary-polymorphism hacks, Up: Dictionary -1.60.8 Dictionary: printing ---------------------------- +Dictionary: printing +-------------------- inspect Print all the instance variables and objects in the receiver on the @@ -7571,8 +7566,8 @@  File: gst-base.info, Node: Dictionary-rehashing, Next: Dictionary-storing, Prev: Dictionary-printing, Up: Dictionary -1.60.9 Dictionary: rehashing ----------------------------- +Dictionary: rehashing +--------------------- rehash Rehash the receiver @@ -7581,8 +7576,8 @@  File: gst-base.info, Node: Dictionary-storing, Next: Dictionary-testing, Prev: Dictionary-rehashing, Up: Dictionary -1.60.10 Dictionary: storing ---------------------------- +Dictionary: storing +------------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -7591,8 +7586,8 @@  File: gst-base.info, Node: Dictionary-testing, Prev: Dictionary-storing, Up: Dictionary -1.60.11 Dictionary: testing ---------------------------- +Dictionary: testing +------------------- = aDictionary Answer whether the receiver and aDictionary are equal @@ -7604,8 +7599,8 @@  File: gst-base.info, Node: DirectedMessage, Next: Directory, Prev: Dictionary, Up: Base classes -1.61 DirectedMessage -==================== +DirectedMessage +=============== Defined in namespace Smalltalk Superclass: Message @@ -7624,8 +7619,8 @@  File: gst-base.info, Node: DirectedMessage class-creating instances, Next: DirectedMessage-accessing, Up: DirectedMessage -1.61.1 DirectedMessage class: creating instances ------------------------------------------------- +DirectedMessage class: creating instances +----------------------------------------- selector: aSymbol arguments: anArray This method should not be called for instances of this class. @@ -7637,8 +7632,8 @@  File: gst-base.info, Node: DirectedMessage-accessing, Next: DirectedMessage-basic, Prev: DirectedMessage class-creating instances, Up: DirectedMessage -1.61.2 DirectedMessage: accessing ---------------------------------- +DirectedMessage: accessing +-------------------------- receiver Answer the receiver @@ -7650,8 +7645,8 @@  File: gst-base.info, Node: DirectedMessage-basic, Next: DirectedMessage-multiple process, Prev: DirectedMessage-accessing, Up: DirectedMessage -1.61.3 DirectedMessage: basic ------------------------------ +DirectedMessage: basic +---------------------- printOn: aStream Print a representation of the receiver on aStream @@ -7667,8 +7662,8 @@  File: gst-base.info, Node: DirectedMessage-multiple process, Next: DirectedMessage-saving and loading, Prev: DirectedMessage-basic, Up: DirectedMessage -1.61.4 DirectedMessage: multiple process ----------------------------------------- +DirectedMessage: multiple process +--------------------------------- fork Create a new process executing the receiver and start it @@ -7686,8 +7681,8 @@  File: gst-base.info, Node: DirectedMessage-saving and loading, Prev: DirectedMessage-multiple process, Up: DirectedMessage -1.61.5 DirectedMessage: saving and loading ------------------------------------------- +DirectedMessage: saving and loading +----------------------------------- reconstructOriginalObject This method is used when DirectedMessages are used together with @@ -7698,8 +7693,8 @@  File: gst-base.info, Node: Directory, Next: DLD, Prev: DirectedMessage, Up: Base classes -1.62 Directory -============== +Directory +========= Defined in namespace Smalltalk Superclass: File @@ -7722,8 +7717,8 @@  File: gst-base.info, Node: Directory class-C functions, Next: Directory class-file name management, Up: Directory -1.62.1 Directory class: C functions ------------------------------------ +Directory class: C functions +---------------------------- primWorking: dirName C call-out to chdir. Do not modify! @@ -7735,8 +7730,8 @@  File: gst-base.info, Node: Directory class-file name management, Next: Directory class-file operations, Prev: Directory class-C functions, Up: Directory -1.62.2 Directory class: file name management --------------------------------------------- +Directory class: file name management +------------------------------------- append: fileName to: directory Answer the name of a file named `fileName' which resides in a @@ -7753,8 +7748,8 @@  File: gst-base.info, Node: Directory class-file operations, Next: Directory class-reading system defaults, Prev: Directory class-file name management, Up: Directory -1.62.3 Directory class: file operations ---------------------------------------- +Directory class: file operations +-------------------------------- create: dirName Create a directory named dirName. @@ -7766,8 +7761,8 @@  File: gst-base.info, Node: Directory class-reading system defaults, Next: Directory-accessing, Prev: Directory class-file operations, Up: Directory -1.62.4 Directory class: reading system defaults ------------------------------------------------ +Directory class: reading system defaults +---------------------------------------- home Answer the path to the user's home directory @@ -7799,8 +7794,8 @@  File: gst-base.info, Node: Directory-accessing, Next: Directory-enumerating, Prev: Directory class-reading system defaults, Up: Directory -1.62.5 Directory: accessing ---------------------------- +Directory: accessing +-------------------- at: aName Answer a File object for a file named `aName' residing in the @@ -7826,8 +7821,8 @@  File: gst-base.info, Node: Directory-enumerating, Prev: Directory-accessing, Up: Directory -1.62.6 Directory: enumerating ------------------------------ +Directory: enumerating +---------------------- contents Answer an Array with the names of the files in the directory @@ -7849,8 +7844,8 @@  File: gst-base.info, Node: DLD, Next: DumperProxy, Prev: Directory, Up: Base classes -1.63 DLD -======== +DLD +=== Defined in namespace Smalltalk Superclass: Object @@ -7872,8 +7867,8 @@  File: gst-base.info, Node: DLD class-C functions, Next: DLD class-dynamic linking, Up: DLD -1.63.1 DLD class: C functions ------------------------------ +DLD class: C functions +---------------------- defineCFunc: aName as: aFuncAddr C call-out to defineCFunc. Do not modify! @@ -7888,8 +7883,8 @@  File: gst-base.info, Node: DLD class-dynamic linking, Prev: DLD class-C functions, Up: DLD -1.63.2 DLD class: dynamic linking ---------------------------------- +DLD class: dynamic linking +-------------------------- addLibrary: library Add library to the search path of libraries to be used by DLD. @@ -7928,8 +7923,8 @@  File: gst-base.info, Node: DumperProxy, Next: Duration, Prev: DLD, Up: Base classes -1.64 DumperProxy -================ +DumperProxy +=========== Defined in namespace Smalltalk Superclass: Object @@ -7947,8 +7942,8 @@  File: gst-base.info, Node: DumperProxy class-accessing, Next: DumperProxy class-instance creation, Up: DumperProxy -1.64.1 DumperProxy class: accessing ------------------------------------ +DumperProxy class: accessing +---------------------------- acceptUsageForClass: aClass The receiver was asked to be used as a proxy for the class aClass. @@ -7961,8 +7956,8 @@  File: gst-base.info, Node: DumperProxy class-instance creation, Next: DumperProxy-saving and restoring, Prev: DumperProxy class-accessing, Up: DumperProxy -1.64.2 DumperProxy class: instance creation -------------------------------------------- +DumperProxy class: instance creation +------------------------------------ on: anObject Answer a proxy to be used to save anObject. This method MUST be @@ -7974,8 +7969,8 @@  File: gst-base.info, Node: DumperProxy-saving and restoring, Prev: DumperProxy class-instance creation, Up: DumperProxy -1.64.3 DumperProxy: saving and restoring ----------------------------------------- +DumperProxy: saving and restoring +--------------------------------- dumpTo: anObjectDumper Dump the proxy to anObjectDumper - the #loadFrom: class method @@ -7988,8 +7983,8 @@  File: gst-base.info, Node: Duration, Next: Error, Prev: DumperProxy, Up: Base classes -1.65 Duration -============= +Duration +======== Defined in namespace Smalltalk Superclass: Time @@ -8005,8 +8000,8 @@  File: gst-base.info, Node: Duration class-instance creation, Next: Duration class-instance creation (non ANSI), Up: Duration -1.65.1 Duration class: instance creation ----------------------------------------- +Duration class: instance creation +--------------------------------- days: d Answer a duration of `d' days @@ -8025,8 +8020,8 @@  File: gst-base.info, Node: Duration class-instance creation (non ANSI), Next: Duration-arithmetics, Prev: Duration class-instance creation, Up: Duration -1.65.2 Duration class: instance creation (non ANSI) ---------------------------------------------------- +Duration class: instance creation (non ANSI) +-------------------------------------------- fromDays: days seconds: secs offset: unused Answer a duration of `d' days and `secs' seconds. The last @@ -8037,8 +8032,8 @@  File: gst-base.info, Node: Duration-arithmetics, Prev: Duration class-instance creation (non ANSI), Up: Duration -1.65.3 Duration: arithmetics ----------------------------- +Duration: arithmetics +--------------------- * factor Answer a Duration that is `factor' times longer than the receiver @@ -8082,8 +8077,8 @@  File: gst-base.info, Node: Error, Next: Exception, Prev: Duration, Up: Base classes -1.66 Error -========== +Error +===== Defined in namespace Smalltalk Superclass: Exception @@ -8097,8 +8092,8 @@  File: gst-base.info, Node: Error-exception description, Up: Error -1.66.1 Error: exception description ------------------------------------ +Error: exception description +---------------------------- description Answer a textual description of the exception. @@ -8111,8 +8106,8 @@  File: gst-base.info, Node: Exception, Next: ExceptionSet, Prev: Error, Up: Base classes -1.67 Exception -============== +Exception +========= Defined in namespace Smalltalk Superclass: Signal @@ -8141,8 +8136,8 @@  File: gst-base.info, Node: Exception class-comparison, Next: Exception class-creating ExceptionCollections, Up: Exception -1.67.1 Exception class: comparison ----------------------------------- +Exception class: comparison +--------------------------- goodness: anException Answer how good the receiver is at handling the given exception. A @@ -8156,8 +8151,8 @@  File: gst-base.info, Node: Exception class-creating ExceptionCollections, Next: Exception class-initialization, Prev: Exception class-comparison, Up: Exception -1.67.2 Exception class: creating ExceptionCollections ------------------------------------------------------ +Exception class: creating ExceptionCollections +---------------------------------------------- , aTrappableEvent Answer an ExceptionCollection containing all the exceptions in the @@ -8167,8 +8162,8 @@  File: gst-base.info, Node: Exception class-initialization, Next: Exception class-instance creation, Prev: Exception class-creating ExceptionCollections, Up: Exception -1.67.3 Exception class: initialization --------------------------------------- +Exception class: initialization +------------------------------- initialize Initialize the `links' between the core exception handling system @@ -8178,8 +8173,8 @@  File: gst-base.info, Node: Exception class-instance creation, Next: Exception class-interoperability with TrappableEvents, Prev: Exception class-initialization, Up: Exception -1.67.4 Exception class: instance creation ------------------------------------------ +Exception class: instance creation +---------------------------------- new Create an instance of the receiver, which you will be able to @@ -8197,8 +8192,8 @@  File: gst-base.info, Node: Exception class-interoperability with TrappableEvents, Next: Exception-comparison, Prev: Exception class-instance creation, Up: Exception -1.67.5 Exception class: interoperability with TrappableEvents -------------------------------------------------------------- +Exception class: interoperability with TrappableEvents +------------------------------------------------------ allExceptionsDo: aBlock Private - Pass the coreException to aBlock @@ -8215,8 +8210,8 @@  File: gst-base.info, Node: Exception-comparison, Next: Exception-exception description, Prev: Exception class-interoperability with TrappableEvents, Up: Exception -1.67.6 Exception: comparison ----------------------------- +Exception: comparison +--------------------- = anObject Answer whether the receiver is equal to anObject. This is true if @@ -8230,8 +8225,8 @@  File: gst-base.info, Node: Exception-exception description, Next: Exception-exception signaling, Prev: Exception-comparison, Up: Exception -1.67.7 Exception: exception description ---------------------------------------- +Exception: exception description +-------------------------------- defaultAction Execute the default action that is attached to the receiver. @@ -8246,8 +8241,8 @@  File: gst-base.info, Node: Exception-exception signaling, Prev: Exception-exception description, Up: Exception -1.67.8 Exception: exception signaling -------------------------------------- +Exception: exception signaling +------------------------------ signal Raise the exceptional event represented by the receiver @@ -8260,8 +8255,8 @@  File: gst-base.info, Node: ExceptionSet, Next: False, Prev: Exception, Up: Base classes -1.68 ExceptionSet -================= +ExceptionSet +============ Defined in namespace Smalltalk Superclass: TrappableEvent @@ -8279,8 +8274,8 @@  File: gst-base.info, Node: ExceptionSet class-instance creation, Next: ExceptionSet-enumerating, Up: ExceptionSet -1.68.1 ExceptionSet class: instance creation --------------------------------------------- +ExceptionSet class: instance creation +------------------------------------- new Private - Answer a new, empty ExceptionSet @@ -8289,8 +8284,8 @@  File: gst-base.info, Node: ExceptionSet-enumerating, Prev: ExceptionSet class-instance creation, Up: ExceptionSet -1.68.2 ExceptionSet: enumerating --------------------------------- +ExceptionSet: enumerating +------------------------- allExceptionsDo: aBlock Private - Evaluate aBlock for every exception in the receiver. @@ -8308,8 +8303,8 @@  File: gst-base.info, Node: False, Next: File, Prev: ExceptionSet, Up: Base classes -1.69 False -========== +False +===== Defined in namespace Smalltalk Superclass: Boolean @@ -8326,8 +8321,8 @@  File: gst-base.info, Node: False-basic, Next: False-C hacks, Up: False -1.69.1 False: basic -------------------- +False: basic +------------ & aBoolean We are false - anded with anything, we always answer false @@ -8370,8 +8365,8 @@  File: gst-base.info, Node: False-C hacks, Next: False-printing, Prev: False-basic, Up: False -1.69.2 False: C hacks ---------------------- +False: C hacks +-------------- asCBooleanValue Answer `0'. @@ -8380,8 +8375,8 @@  File: gst-base.info, Node: False-printing, Prev: False-C hacks, Up: False -1.69.3 False: printing ----------------------- +False: printing +--------------- printOn: aStream Print a representation of the receiver on aStream @@ -8390,8 +8385,8 @@  File: gst-base.info, Node: File, Next: FileDescriptor, Prev: False, Up: Base classes -1.70 File -========= +File +==== Defined in namespace Smalltalk Superclass: Object @@ -8417,8 +8412,8 @@  File: gst-base.info, Node: File class-C functions, Next: File class-file name management, Up: File -1.70.1 File class: C functions ------------------------------- +File class: C functions +----------------------- errno C call-out to errno. Do not modify! @@ -8430,8 +8425,8 @@  File: gst-base.info, Node: File class-file name management, Next: File class-file operations, Prev: File class-C functions, Up: File -1.70.2 File class: file name management ---------------------------------------- +File class: file name management +-------------------------------- extensionFor: aString Answer the extension of a file named `aString'. Note: the @@ -8463,8 +8458,8 @@  File: gst-base.info, Node: File class-file operations, Next: File class-instance creation, Prev: File class-file name management, Up: File -1.70.3 File class: file operations ----------------------------------- +File class: file operations +--------------------------- checkError Return whether an error had been reported or not. If there had @@ -8484,8 +8479,8 @@  File: gst-base.info, Node: File class-instance creation, Next: File class-reading system defaults, Prev: File class-file operations, Up: File -1.70.4 File class: instance creation ------------------------------------- +File class: instance creation +----------------------------- name: aName Answer a new file with the given path. The path is not validated @@ -8499,8 +8494,8 @@  File: gst-base.info, Node: File class-reading system defaults, Next: File class-testing, Prev: File class-instance creation, Up: File -1.70.5 File class: reading system defaults ------------------------------------------- +File class: reading system defaults +----------------------------------- image Answer the full path to the image being used. @@ -8509,8 +8504,8 @@  File: gst-base.info, Node: File class-testing, Next: File-accessing, Prev: File class-reading system defaults, Up: File -1.70.6 File class: testing --------------------------- +File class: testing +------------------- exists: fileName Answer whether a file with the given name exists @@ -8533,8 +8528,8 @@  File: gst-base.info, Node: File-accessing, Next: File-file name management, Prev: File class-testing, Up: File -1.70.7 File: accessing ----------------------- +File: accessing +--------------- creationTime Answer the creation time of the file identified by the receiver. @@ -8568,8 +8563,8 @@  File: gst-base.info, Node: File-file name management, Next: File-file operations, Prev: File-accessing, Up: File -1.70.8 File: file name management ---------------------------------- +File: file name management +-------------------------- extension Answer the extension of the receiver @@ -8596,8 +8591,8 @@  File: gst-base.info, Node: File-file operations, Next: File-testing, Prev: File-file name management, Up: File -1.70.9 File: file operations ----------------------------- +File: file operations +--------------------- contents Open a read-only FileStream on the receiver, read its contents, @@ -8631,8 +8626,8 @@  File: gst-base.info, Node: File-testing, Prev: File-file operations, Up: File -1.70.10 File: testing ---------------------- +File: testing +------------- exists Answer whether a file with the name contained in the receiver does @@ -8666,8 +8661,8 @@  File: gst-base.info, Node: FileDescriptor, Next: FileSegment, Prev: File, Up: Base classes -1.71 FileDescriptor -=================== +FileDescriptor +============== Defined in namespace Smalltalk Superclass: ByteStream @@ -8697,8 +8692,8 @@  File: gst-base.info, Node: FileDescriptor class-initialization, Next: FileDescriptor class-instance creation, Up: FileDescriptor -1.71.1 FileDescriptor class: initialization -------------------------------------------- +FileDescriptor class: initialization +------------------------------------ initialize Initialize the receiver's class variables @@ -8710,8 +8705,8 @@  File: gst-base.info, Node: FileDescriptor class-instance creation, Next: FileDescriptor-accessing, Prev: FileDescriptor class-initialization, Up: FileDescriptor -1.71.2 FileDescriptor class: instance creation ----------------------------------------------- +FileDescriptor class: instance creation +--------------------------------------- append Open for writing. The file is created if it does not exist. The @@ -8830,8 +8825,8 @@  File: gst-base.info, Node: FileDescriptor-accessing, Next: FileDescriptor-basic, Prev: FileDescriptor class-instance creation, Up: FileDescriptor -1.71.3 FileDescriptor: accessing --------------------------------- +FileDescriptor: accessing +------------------------- canRead Answer whether the file is open and we can read from it @@ -8872,8 +8867,8 @@  File: gst-base.info, Node: FileDescriptor-basic, Next: FileDescriptor-built ins, Prev: FileDescriptor-accessing, Up: FileDescriptor -1.71.4 FileDescriptor: basic ----------------------------- +FileDescriptor: basic +--------------------- close Close the file @@ -8929,8 +8924,8 @@  File: gst-base.info, Node: FileDescriptor-built ins, Next: FileDescriptor-class type methods, Prev: FileDescriptor-basic, Up: FileDescriptor -1.71.5 FileDescriptor: built ins --------------------------------- +FileDescriptor: built ins +------------------------- fileOp: ioFuncIndex Private - Used to limit the number of primitives used by @@ -8968,8 +8963,8 @@  File: gst-base.info, Node: FileDescriptor-class type methods, Next: FileDescriptor-initialize-release, Prev: FileDescriptor-built ins, Up: FileDescriptor -1.71.6 FileDescriptor: class type methods ------------------------------------------ +FileDescriptor: class type methods +---------------------------------- isBinary We answer characters, so answer false @@ -8984,8 +8979,8 @@  File: gst-base.info, Node: FileDescriptor-initialize-release, Next: FileDescriptor-low-level access, Prev: FileDescriptor-class type methods, Up: FileDescriptor -1.71.7 FileDescriptor: initialize-release ------------------------------------------ +FileDescriptor: initialize-release +---------------------------------- initialize Initialize the receiver's instance variables @@ -9001,8 +8996,8 @@  File: gst-base.info, Node: FileDescriptor-low-level access, Next: FileDescriptor-overriding inherited methods, Prev: FileDescriptor-initialize-release, Up: FileDescriptor -1.71.8 FileDescriptor: low-level access ---------------------------------------- +FileDescriptor: low-level access +-------------------------------- read: byteArray Ignoring any buffering, try to fill byteArray with the contents of @@ -9033,8 +9028,8 @@  File: gst-base.info, Node: FileDescriptor-overriding inherited methods, Next: FileDescriptor-printing, Prev: FileDescriptor-low-level access, Up: FileDescriptor -1.71.9 FileDescriptor: overriding inherited methods ---------------------------------------------------- +FileDescriptor: overriding inherited methods +-------------------------------------------- isEmpty Answer whether the receiver is empty @@ -9062,8 +9057,8 @@  File: gst-base.info, Node: FileDescriptor-printing, Next: FileDescriptor-testing, Prev: FileDescriptor-overriding inherited methods, Up: FileDescriptor -1.71.10 FileDescriptor: printing --------------------------------- +FileDescriptor: printing +------------------------ printOn: aStream Print a representation of the receiver on aStream @@ -9072,8 +9067,8 @@  File: gst-base.info, Node: FileDescriptor-testing, Prev: FileDescriptor-printing, Up: FileDescriptor -1.71.11 FileDescriptor: testing -------------------------------- +FileDescriptor: testing +----------------------- atEnd Answer whether data has come to an end @@ -9082,8 +9077,8 @@  File: gst-base.info, Node: FileSegment, Next: FileStream, Prev: FileDescriptor, Up: Base classes -1.72 FileSegment -================ +FileSegment +=========== Defined in namespace Smalltalk Superclass: Object @@ -9103,8 +9098,8 @@  File: gst-base.info, Node: FileSegment class-basic, Next: FileSegment class-installing, Up: FileSegment -1.72.1 FileSegment class: basic -------------------------------- +FileSegment class: basic +------------------------ on: aFile startingAt: startPos for: sizeInteger Create a new FileSegment referring to the contents of the given @@ -9114,8 +9109,8 @@  File: gst-base.info, Node: FileSegment class-installing, Next: FileSegment-basic, Prev: FileSegment class-basic, Up: FileSegment -1.72.2 FileSegment class: installing ------------------------------------- +FileSegment class: installing +----------------------------- relocateFrom: startPath to: endPath Remove startPath from all paths that start with it, and replace it @@ -9125,8 +9120,8 @@  File: gst-base.info, Node: FileSegment-basic, Next: FileSegment-equality, Prev: FileSegment class-installing, Up: FileSegment -1.72.3 FileSegment: basic -------------------------- +FileSegment: basic +------------------ asString Answer a String containing the required segment of the file @@ -9154,8 +9149,8 @@  File: gst-base.info, Node: FileSegment-equality, Prev: FileSegment-basic, Up: FileSegment -1.72.4 FileSegment: equality ----------------------------- +FileSegment: equality +--------------------- = aFileSegment Answer whether the receiver and aFileSegment are equal. @@ -9167,8 +9162,8 @@  File: gst-base.info, Node: FileStream, Next: Float, Prev: FileSegment, Up: Base classes -1.73 FileStream -=============== +FileStream +========== Defined in namespace Smalltalk Superclass: FileDescriptor @@ -9190,8 +9185,8 @@  File: gst-base.info, Node: FileStream class-file-in, Next: FileStream class-standard streams, Up: FileStream -1.73.1 FileStream class: file-in --------------------------------- +FileStream class: file-in +------------------------- fileIn: aFileName File in the aFileName file. During a file in operation, global @@ -9264,8 +9259,8 @@  File: gst-base.info, Node: FileStream class-standard streams, Next: FileStream-basic, Prev: FileStream class-file-in, Up: FileStream -1.73.2 FileStream class: standard streams ------------------------------------------ +FileStream class: standard streams +---------------------------------- stderr Answer a FileStream that is attached the Smalltalk program's @@ -9286,8 +9281,8 @@  File: gst-base.info, Node: FileStream-basic, Next: FileStream-buffering, Prev: FileStream class-standard streams, Up: FileStream -1.73.3 FileStream: basic ------------------------- +FileStream: basic +----------------- copyFrom: from to: to Answer the contents of the file between the two given positions @@ -9327,8 +9322,8 @@  File: gst-base.info, Node: FileStream-buffering, Next: FileStream-filing in, Prev: FileStream-basic, Up: FileStream -1.73.4 FileStream: buffering ----------------------------- +FileStream: buffering +--------------------- basicFlush Private - Flush the output buffer, fail if it is empty @@ -9362,8 +9357,8 @@  File: gst-base.info, Node: FileStream-filing in, Next: FileStream-overriding inherited methods, Prev: FileStream-buffering, Up: FileStream -1.73.5 FileStream: filing in ----------------------------- +FileStream: filing in +--------------------- fileIn File in the contents of the receiver. During a file in operation, @@ -9383,8 +9378,8 @@  File: gst-base.info, Node: FileStream-overriding inherited methods, Next: FileStream-testing, Prev: FileStream-filing in, Up: FileStream -1.73.6 FileStream: overriding inherited methods ------------------------------------------------ +FileStream: overriding inherited methods +---------------------------------------- next: anInteger Return the next 'anInteger' characters from the stream, as a @@ -9410,8 +9405,8 @@  File: gst-base.info, Node: FileStream-testing, Prev: FileStream-overriding inherited methods, Up: FileStream -1.73.7 FileStream: testing --------------------------- +FileStream: testing +------------------- atEnd Answer whether data has come to an end @@ -9420,8 +9415,8 @@  File: gst-base.info, Node: Float, Next: FloatD, Prev: FileStream, Up: Base classes -1.74 Float -========== +Float +===== Defined in namespace Smalltalk Superclass: Number @@ -9447,8 +9442,8 @@  File: gst-base.info, Node: Float class-byte-order dependancies, Next: Float class-characterization, Up: Float -1.74.1 Float class: byte-order dependancies -------------------------------------------- +Float class: byte-order dependancies +------------------------------------ signByte Answer the byte of the receiver that contains the exponent @@ -9457,8 +9452,8 @@  File: gst-base.info, Node: Float class-characterization, Next: Float-arithmetic, Prev: Float class-byte-order dependancies, Up: Float -1.74.2 Float class: characterization ------------------------------------- +Float class: characterization +----------------------------- denormalized Answer whether instances of the receiver can be in denormalized @@ -9495,8 +9490,8 @@  File: gst-base.info, Node: Float-arithmetic, Next: Float-basic, Prev: Float class-characterization, Up: Float -1.74.3 Float: arithmetic ------------------------- +Float: arithmetic +----------------- integerPart Return the receiver's integer part @@ -9509,8 +9504,8 @@  File: gst-base.info, Node: Float-basic, Next: Float-built ins, Prev: Float-arithmetic, Up: Float -1.74.4 Float: basic -------------------- +Float: basic +------------ hash Answer an hash value for the receiver @@ -9519,8 +9514,8 @@  File: gst-base.info, Node: Float-built ins, Next: Float-coercing, Prev: Float-basic, Up: Float -1.74.5 Float: built ins ------------------------ +Float: built ins +---------------- arcCos Answer the arc-cosine of the receiver @@ -9568,8 +9563,8 @@  File: gst-base.info, Node: Float-coercing, Next: Float-printing, Prev: Float-built ins, Up: Float -1.74.6 Float: coercing ----------------------- +Float: coercing +--------------- asExactFraction Convert the receiver into a fraction with optimal approximation, @@ -9593,8 +9588,8 @@  File: gst-base.info, Node: Float-printing, Next: Float-storing, Prev: Float-coercing, Up: Float -1.74.7 Float: printing ----------------------- +Float: printing +--------------- printOn: aStream Print a representation of the receiver on aStream @@ -9603,8 +9598,8 @@  File: gst-base.info, Node: Float-storing, Next: Float-testing, Prev: Float-printing, Up: Float -1.74.8 Float: storing ---------------------- +Float: storing +-------------- storeOn: aStream Print a representation of the receiver on aStream @@ -9613,8 +9608,8 @@  File: gst-base.info, Node: Float-testing, Next: Float-testing functionality, Prev: Float-storing, Up: Float -1.74.9 Float: testing ---------------------- +Float: testing +-------------- isFinite Answer whether the receiver does not represent infinity, nor a NaN @@ -9644,8 +9639,8 @@  File: gst-base.info, Node: Float-testing functionality, Prev: Float-testing, Up: Float -1.74.10 Float: testing functionality ------------------------------------- +Float: testing functionality +---------------------------- isFloat Answer `true'. @@ -9654,8 +9649,8 @@  File: gst-base.info, Node: FloatD, Next: FloatE, Prev: Float, Up: Base classes -1.75 FloatD -=========== +FloatD +====== Defined in namespace Smalltalk Superclass: Float @@ -9676,8 +9671,8 @@  File: gst-base.info, Node: FloatD class-byte-order dependancies, Next: FloatD class-characterization, Up: FloatD -1.75.1 FloatD class: byte-order dependancies --------------------------------------------- +FloatD class: byte-order dependancies +------------------------------------- signByte Answer the byte of the receiver that contains the exponent @@ -9686,8 +9681,8 @@  File: gst-base.info, Node: FloatD class-characterization, Next: FloatD class-converting, Prev: FloatD class-byte-order dependancies, Up: FloatD -1.75.2 FloatD class: characterization -------------------------------------- +FloatD class: characterization +------------------------------ decimalDigits Return the number of decimal digits of precision for a FloatD. @@ -9726,8 +9721,8 @@  File: gst-base.info, Node: FloatD class-converting, Next: FloatD-built ins, Prev: FloatD class-characterization, Up: FloatD -1.75.3 FloatD class: converting -------------------------------- +FloatD class: converting +------------------------ coerce: aNumber Answer aNumber converted to a FloatD @@ -9736,8 +9731,8 @@  File: gst-base.info, Node: FloatD-built ins, Next: FloatD-coercing, Prev: FloatD class-converting, Up: FloatD -1.75.4 FloatD: built ins ------------------------- +FloatD: built ins +----------------- * arg Multiply the receiver and arg and answer another Number @@ -9792,8 +9787,8 @@  File: gst-base.info, Node: FloatD-coercing, Prev: FloatD-built ins, Up: FloatD -1.75.5 FloatD: coercing ------------------------ +FloatD: coercing +---------------- asFloatD Just defined for completeness. Return the receiver. @@ -9814,8 +9809,8 @@  File: gst-base.info, Node: FloatE, Next: FloatQ, Prev: FloatD, Up: Base classes -1.76 FloatE -=========== +FloatE +====== Defined in namespace Smalltalk Superclass: Float @@ -9836,8 +9831,8 @@  File: gst-base.info, Node: FloatE class-byte-order dependancies, Next: FloatE class-characterization, Up: FloatE -1.76.1 FloatE class: byte-order dependancies --------------------------------------------- +FloatE class: byte-order dependancies +------------------------------------- signByte Answer the byte of the receiver that contains the exponent @@ -9846,8 +9841,8 @@  File: gst-base.info, Node: FloatE class-characterization, Next: FloatE class-converting, Prev: FloatE class-byte-order dependancies, Up: FloatE -1.76.2 FloatE class: characterization -------------------------------------- +FloatE class: characterization +------------------------------ decimalDigits Return the number of decimal digits of precision for a FloatE. @@ -9898,8 +9893,8 @@  File: gst-base.info, Node: FloatE class-converting, Next: FloatE-built ins, Prev: FloatE class-characterization, Up: FloatE -1.76.3 FloatE class: converting -------------------------------- +FloatE class: converting +------------------------ coerce: aNumber Answer aNumber converted to a FloatE @@ -9908,8 +9903,8 @@  File: gst-base.info, Node: FloatE-built ins, Next: FloatE-coercing, Prev: FloatE class-converting, Up: FloatE -1.76.4 FloatE: built ins ------------------------- +FloatE: built ins +----------------- * arg Multiply the receiver and arg and answer another Number @@ -9964,8 +9959,8 @@  File: gst-base.info, Node: FloatE-coercing, Prev: FloatE-built ins, Up: FloatE -1.76.5 FloatE: coercing ------------------------ +FloatE: coercing +---------------- asFloatE Just defined for completeness. Return the receiver. @@ -9986,8 +9981,8 @@  File: gst-base.info, Node: FloatQ, Next: Fraction, Prev: FloatE, Up: Base classes -1.77 FloatQ -=========== +FloatQ +====== Defined in namespace Smalltalk Superclass: Float @@ -10008,10 +10003,272 @@  File: gst-base.info, Node: FloatQ class-byte-order dependancies, Next: FloatQ class-characterization, Up: FloatQ -1.77.1 FloatQ class: byte-order dependancies --------------------------------------------- +FloatQ class: byte-order dependancies +------------------------------------- signByte Answer the byte of the receiver that contains the exponent + +File: gst-base.info, Node: FloatQ class-characterization, Next: FloatQ class-converting, Prev: FloatQ class-byte-order dependancies, Up: FloatQ + +FloatQ class: characterization +------------------------------ + +decimalDigits + Return the number of decimal digits of precision for a FloatQ. + Technically, if P is the precision for the representation, then + the decimal precision Q is the maximum number of decimal digits + such that any floating point number with Q base 10 digits can be + rounded to a floating point number with P base 2 digits and back + again, without change to the Q decimal digits. + +e + Returns the value of e. Hope is that it is precise enough + +emax + Return the maximum allowable exponent for a FloatQ that is finite. + +emin + Return the maximum allowable exponent for a FloatQ that is finite. + +fmax + Return the largest normalized FloatQ that is not infinite. + +fminNormalized + Return the smallest normalized FloatQ that is > 0 + +infinity + Return a FloatQ that represents positive infinity. + +ln10 + Returns the value of ln 10. Hope is that it is precise enough + +log10Base2 + Returns the value of log2 10. Hope is that it is precise enough + +nan + Return a FloatQ that represents a mathematically indeterminate + value (e.g. Inf - Inf, Inf / Inf). + +negativeInfinity + Return a FloatQ that represents negative infinity. + +pi + Returns the value of pi. Hope is that it is precise enough + +precision + Answer the number of bits in the mantissa. 1 + (2^-precision) = 1 + + + +File: gst-base.info, Node: FloatQ class-converting, Next: FloatQ-built ins, Prev: FloatQ class-characterization, Up: FloatQ + +FloatQ class: converting +------------------------ + +coerce: aNumber + Answer aNumber converted to a FloatQ + + + +File: gst-base.info, Node: FloatQ-built ins, Next: FloatQ-coercing, Prev: FloatQ class-converting, Up: FloatQ + +FloatQ: built ins +----------------- + +* arg + Multiply the receiver and arg and answer another Number + ++ arg + Sum the receiver and arg and answer another Number + +- arg + Subtract arg from the receiver and answer another Number + +/ arg + Divide the receiver by arg and answer another FloatQ + +< arg + Answer whether the receiver is less than arg + +<= arg + Answer whether the receiver is less than or equal to arg + += arg + Answer whether the receiver is equal to arg + +> arg + Answer whether the receiver is greater than arg + +>= arg + Answer whether the receiver is greater than or equal to arg + +asFloatD + Answer the receiver converted to a FloatD + +asFloatE + Answer the receiver converted to a FloatE + +exponent + Answer the exponent of the receiver in mantissa*2^exponent + representation ( |mantissa|<=1 ) + +fractionPart + Answer the fractional part of the receiver + +timesTwoPower: arg + Answer the receiver multiplied by 2^arg + +truncated + Truncate the receiver towards zero and answer the result + +~= arg + Answer whether the receiver is not equal to arg + + + +File: gst-base.info, Node: FloatQ-coercing, Prev: FloatQ-built ins, Up: FloatQ + +FloatQ: coercing +---------------- + +asFloatQ + Just defined for completeness. Return the receiver. + +coerce: aNumber + Coerce aNumber to the receiver's class + +generality + Answer the receiver's generality + +unity + Coerce 1 to the receiver's class + +zero + Coerce 0 to the receiver's class + + + +File: gst-base.info, Node: Fraction, Next: Halt, Prev: FloatQ, Up: Base classes + +Fraction +======== + +Defined in namespace Smalltalk +Superclass: Number +Category: Language-Data types + I represent rational numbers in the form (p/q) where p and q are + integers. The arithmetic operations *, +, -, /, on fractions, + all return a reduced fraction. + +* Menu: + +* Fraction class-converting:: (class) +* Fraction class-instance creation:: (class) +* Fraction-accessing:: (instance) +* Fraction-arithmetic:: (instance) +* Fraction-coercing:: (instance) +* Fraction-comparing:: (instance) +* Fraction-converting:: (instance) +* Fraction-optimized cases:: (instance) +* Fraction-printing:: (instance) +* Fraction-testing:: (instance) + + +File: gst-base.info, Node: Fraction class-converting, Next: Fraction class-instance creation, Up: Fraction + +Fraction class: converting +-------------------------- + +coerce: aNumber + Answer aNumber converted to a Fraction + + + +File: gst-base.info, Node: Fraction class-instance creation, Next: Fraction-accessing, Prev: Fraction class-converting, Up: Fraction + +Fraction class: instance creation +--------------------------------- + +initialize + Initialize the receiver's class variables + +numerator: nInteger denominator: dInteger + Answer a new instance of fraction (nInteger/dInteger) + + + +File: gst-base.info, Node: Fraction-accessing, Next: Fraction-arithmetic, Prev: Fraction class-instance creation, Up: Fraction + +Fraction: accessing +------------------- + +denominator + Answer the receiver's denominator + +numerator + Answer the receiver's numerator + + + +File: gst-base.info, Node: Fraction-arithmetic, Next: Fraction-coercing, Prev: Fraction-accessing, Up: Fraction + +Fraction: arithmetic +-------------------- + +* aNumber + Multiply two numbers and answer the result. + ++ aNumber + Sum two numbers and answer the result. + +- aNumber + Subtract aNumber from the receiver and answer the result. + +/ aNumber + Divide the receiver by aNumber and answer the result. + +// aNumber + Return the integer quotient of dividing the receiver by aNumber + with truncation towards negative infinity. + +\\ aNumber + Return the remainder from dividing the receiver by aNumber, (using + //). + +estimatedLog + Answer an estimate of (self abs floorLog: 10) + + + +File: gst-base.info, Node: Fraction-coercing, Next: Fraction-comparing, Prev: Fraction-arithmetic, Up: Fraction + +Fraction: coercing +------------------ + +ceiling + Truncate the receiver towards positive infinity and return the + truncated result + +coerce: aNumber + Coerce aNumber to the receiver's class + +floor + Truncate the receiver towards negative infinity and return the + truncated result + +generality + Return the receiver's generality + +truncated + Truncate the receiver and return the truncated result + +unity + Coerce 1 to the receiver's class + +zero + Coerce 0 to the receiver's class + + diff -rNu smalltalk-2.1.9/doc/gst-base.info-2 smalltalk-2.1.10/doc/gst-base.info-2 --- smalltalk-2.1.9/doc/gst-base.info-2 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info-2 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,274 +23,11 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - - -File: gst-base.info, Node: FloatQ class-characterization, Next: FloatQ class-converting, Prev: FloatQ class-byte-order dependancies, Up: FloatQ - -1.77.2 FloatQ class: characterization -------------------------------------- - -decimalDigits - Return the number of decimal digits of precision for a FloatQ. - Technically, if P is the precision for the representation, then - the decimal precision Q is the maximum number of decimal digits - such that any floating point number with Q base 10 digits can be - rounded to a floating point number with P base 2 digits and back - again, without change to the Q decimal digits. - -e - Returns the value of e. Hope is that it is precise enough - -emax - Return the maximum allowable exponent for a FloatQ that is finite. - -emin - Return the maximum allowable exponent for a FloatQ that is finite. - -fmax - Return the largest normalized FloatQ that is not infinite. - -fminNormalized - Return the smallest normalized FloatQ that is > 0 - -infinity - Return a FloatQ that represents positive infinity. - -ln10 - Returns the value of ln 10. Hope is that it is precise enough - -log10Base2 - Returns the value of log2 10. Hope is that it is precise enough - -nan - Return a FloatQ that represents a mathematically indeterminate - value (e.g. Inf - Inf, Inf / Inf). - -negativeInfinity - Return a FloatQ that represents negative infinity. - -pi - Returns the value of pi. Hope is that it is precise enough - -precision - Answer the number of bits in the mantissa. 1 + (2^-precision) = 1 - - - -File: gst-base.info, Node: FloatQ class-converting, Next: FloatQ-built ins, Prev: FloatQ class-characterization, Up: FloatQ - -1.77.3 FloatQ class: converting -------------------------------- - -coerce: aNumber - Answer aNumber converted to a FloatQ - - - -File: gst-base.info, Node: FloatQ-built ins, Next: FloatQ-coercing, Prev: FloatQ class-converting, Up: FloatQ - -1.77.4 FloatQ: built ins ------------------------- - -* arg - Multiply the receiver and arg and answer another Number - -+ arg - Sum the receiver and arg and answer another Number - -- arg - Subtract arg from the receiver and answer another Number - -/ arg - Divide the receiver by arg and answer another FloatQ - -< arg - Answer whether the receiver is less than arg - -<= arg - Answer whether the receiver is less than or equal to arg - -= arg - Answer whether the receiver is equal to arg - -> arg - Answer whether the receiver is greater than arg - ->= arg - Answer whether the receiver is greater than or equal to arg - -asFloatD - Answer the receiver converted to a FloatD - -asFloatE - Answer the receiver converted to a FloatE - -exponent - Answer the exponent of the receiver in mantissa*2^exponent - representation ( |mantissa|<=1 ) - -fractionPart - Answer the fractional part of the receiver - -timesTwoPower: arg - Answer the receiver multiplied by 2^arg - -truncated - Truncate the receiver towards zero and answer the result - -~= arg - Answer whether the receiver is not equal to arg - - - -File: gst-base.info, Node: FloatQ-coercing, Prev: FloatQ-built ins, Up: FloatQ - -1.77.5 FloatQ: coercing ------------------------ - -asFloatQ - Just defined for completeness. Return the receiver. - -coerce: aNumber - Coerce aNumber to the receiver's class - -generality - Answer the receiver's generality - -unity - Coerce 1 to the receiver's class - -zero - Coerce 0 to the receiver's class - - - -File: gst-base.info, Node: Fraction, Next: Halt, Prev: FloatQ, Up: Base classes - -1.78 Fraction -============= - -Defined in namespace Smalltalk -Superclass: Number -Category: Language-Data types - I represent rational numbers in the form (p/q) where p and q are - integers. The arithmetic operations *, +, -, /, on fractions, - all return a reduced fraction. - -* Menu: - -* Fraction class-converting:: (class) -* Fraction class-instance creation:: (class) -* Fraction-accessing:: (instance) -* Fraction-arithmetic:: (instance) -* Fraction-coercing:: (instance) -* Fraction-comparing:: (instance) -* Fraction-converting:: (instance) -* Fraction-optimized cases:: (instance) -* Fraction-printing:: (instance) -* Fraction-testing:: (instance) - - -File: gst-base.info, Node: Fraction class-converting, Next: Fraction class-instance creation, Up: Fraction - -1.78.1 Fraction class: converting ---------------------------------- - -coerce: aNumber - Answer aNumber converted to a Fraction - - - -File: gst-base.info, Node: Fraction class-instance creation, Next: Fraction-accessing, Prev: Fraction class-converting, Up: Fraction - -1.78.2 Fraction class: instance creation ----------------------------------------- - -initialize - Initialize the receiver's class variables - -numerator: nInteger denominator: dInteger - Answer a new instance of fraction (nInteger/dInteger) - - - -File: gst-base.info, Node: Fraction-accessing, Next: Fraction-arithmetic, Prev: Fraction class-instance creation, Up: Fraction - -1.78.3 Fraction: accessing --------------------------- - -denominator - Answer the receiver's denominator - -numerator - Answer the receiver's numerator - - - -File: gst-base.info, Node: Fraction-arithmetic, Next: Fraction-coercing, Prev: Fraction-accessing, Up: Fraction - -1.78.4 Fraction: arithmetic ---------------------------- - -* aNumber - Multiply two numbers and answer the result. - -+ aNumber - Sum two numbers and answer the result. - -- aNumber - Subtract aNumber from the receiver and answer the result. - -/ aNumber - Divide the receiver by aNumber and answer the result. - -// aNumber - Return the integer quotient of dividing the receiver by aNumber - with truncation towards negative infinity. - -\\ aNumber - Return the remainder from dividing the receiver by aNumber, (using - //). - -estimatedLog - Answer an estimate of (self abs floorLog: 10) - - - -File: gst-base.info, Node: Fraction-coercing, Next: Fraction-comparing, Prev: Fraction-arithmetic, Up: Fraction - -1.78.5 Fraction: coercing -------------------------- - -ceiling - Truncate the receiver towards positive infinity and return the - truncated result - -coerce: aNumber - Coerce aNumber to the receiver's class - -floor - Truncate the receiver towards negative infinity and return the - truncated result - -generality - Return the receiver's generality - -truncated - Truncate the receiver and return the truncated result - -unity - Coerce 1 to the receiver's class - -zero - Coerce 0 to the receiver's class - -  File: gst-base.info, Node: Fraction-comparing, Next: Fraction-converting, Prev: Fraction-coercing, Up: Fraction -1.78.6 Fraction: comparing --------------------------- +Fraction: comparing +------------------- < arg Test if the receiver is less than arg. @@ -314,8 +51,8 @@  File: gst-base.info, Node: Fraction-converting, Next: Fraction-optimized cases, Prev: Fraction-comparing, Up: Fraction -1.78.7 Fraction: converting ---------------------------- +Fraction: converting +-------------------- asFloatD Answer the receiver converted to a FloatD @@ -336,8 +73,8 @@  File: gst-base.info, Node: Fraction-optimized cases, Next: Fraction-printing, Prev: Fraction-converting, Up: Fraction -1.78.8 Fraction: optimized cases --------------------------------- +Fraction: optimized cases +------------------------- negated Return the receiver, with its sign changed. @@ -355,8 +92,8 @@  File: gst-base.info, Node: Fraction-printing, Next: Fraction-testing, Prev: Fraction-optimized cases, Up: Fraction -1.78.9 Fraction: printing -------------------------- +Fraction: printing +------------------ printOn: aStream Print a representation of the receiver on aStream @@ -368,8 +105,8 @@  File: gst-base.info, Node: Fraction-testing, Prev: Fraction-printing, Up: Fraction -1.78.10 Fraction: testing -------------------------- +Fraction: testing +----------------- isRational Answer whether the receiver is rational - true @@ -378,8 +115,8 @@  File: gst-base.info, Node: Halt, Next: HashedCollection, Prev: Fraction, Up: Base classes -1.79 Halt -========= +Halt +==== Defined in namespace Smalltalk Superclass: Error @@ -393,8 +130,8 @@  File: gst-base.info, Node: Halt-description, Up: Halt -1.79.1 Halt: description ------------------------- +Halt: description +----------------- description Answer a textual description of the exception. @@ -406,8 +143,8 @@  File: gst-base.info, Node: HashedCollection, Next: HomedAssociation, Prev: Halt, Up: Base classes -1.80 HashedCollection -===================== +HashedCollection +================ Defined in namespace Smalltalk Superclass: Collection @@ -431,8 +168,8 @@  File: gst-base.info, Node: HashedCollection class-instance creation, Next: HashedCollection-accessing, Up: HashedCollection -1.80.1 HashedCollection class: instance creation ------------------------------------------------- +HashedCollection class: instance creation +----------------------------------------- new Answer a new instance of the receiver with a default size @@ -444,8 +181,8 @@  File: gst-base.info, Node: HashedCollection-accessing, Next: HashedCollection-builtins, Prev: HashedCollection class-instance creation, Up: HashedCollection -1.80.2 HashedCollection: accessing ----------------------------------- +HashedCollection: accessing +--------------------------- add: newObject Add newObject to the set, if and only if the set doesn't already @@ -462,8 +199,8 @@  File: gst-base.info, Node: HashedCollection-builtins, Next: HashedCollection-copying, Prev: HashedCollection-accessing, Up: HashedCollection -1.80.3 HashedCollection: builtins ---------------------------------- +HashedCollection: builtins +-------------------------- primAt: anIndex Private - Answer the anIndex-th item of the hash table for the @@ -484,8 +221,8 @@  File: gst-base.info, Node: HashedCollection-copying, Next: HashedCollection-enumerating the elements of a collection, Prev: HashedCollection-builtins, Up: HashedCollection -1.80.4 HashedCollection: copying --------------------------------- +HashedCollection: copying +------------------------- deepCopy Returns a deep copy of the receiver (the instance variables are @@ -499,8 +236,8 @@  File: gst-base.info, Node: HashedCollection-enumerating the elements of a collection, Next: HashedCollection-rehashing, Prev: HashedCollection-copying, Up: HashedCollection -1.80.5 HashedCollection: enumerating the elements of a collection ------------------------------------------------------------------ +HashedCollection: enumerating the elements of a collection +---------------------------------------------------------- do: aBlock Enumerate all the non-nil members of the set @@ -509,8 +246,8 @@  File: gst-base.info, Node: HashedCollection-rehashing, Next: HashedCollection-removing, Prev: HashedCollection-enumerating the elements of a collection, Up: HashedCollection -1.80.6 HashedCollection: rehashing ----------------------------------- +HashedCollection: rehashing +--------------------------- rehash Rehash the receiver @@ -519,8 +256,8 @@  File: gst-base.info, Node: HashedCollection-removing, Next: HashedCollection-saving and loading, Prev: HashedCollection-rehashing, Up: HashedCollection -1.80.7 HashedCollection: removing ---------------------------------- +HashedCollection: removing +-------------------------- remove: oldObject ifAbsent: anExceptionBlock Remove oldObject to the set. If it is found, answer oldObject. @@ -530,8 +267,8 @@  File: gst-base.info, Node: HashedCollection-saving and loading, Next: HashedCollection-storing, Prev: HashedCollection-removing, Up: HashedCollection -1.80.8 HashedCollection: saving and loading -------------------------------------------- +HashedCollection: saving and loading +------------------------------------ postLoad Called after loading an object; rehash the collection because @@ -545,8 +282,8 @@  File: gst-base.info, Node: HashedCollection-storing, Next: HashedCollection-testing collections, Prev: HashedCollection-saving and loading, Up: HashedCollection -1.80.9 HashedCollection: storing --------------------------------- +HashedCollection: storing +------------------------- storeOn: aStream Store on aStream some Smalltalk code which compiles to the receiver @@ -555,8 +292,8 @@  File: gst-base.info, Node: HashedCollection-testing collections, Prev: HashedCollection-storing, Up: HashedCollection -1.80.10 HashedCollection: testing collections ---------------------------------------------- +HashedCollection: testing collections +------------------------------------- = aHashedCollection Returns true if the two sets have the same membership, false if not @@ -588,8 +325,8 @@  File: gst-base.info, Node: HomedAssociation, Next: IdentityDictionary, Prev: HashedCollection, Up: Base classes -1.81 HomedAssociation -===================== +HomedAssociation +================ Defined in namespace Smalltalk Superclass: Association @@ -607,8 +344,8 @@  File: gst-base.info, Node: HomedAssociation class-basic, Next: HomedAssociation-accessing, Up: HomedAssociation -1.81.1 HomedAssociation class: basic ------------------------------------- +HomedAssociation class: basic +----------------------------- key: aKey value: aValue environment: aNamespace Answer a new association with the given key and value @@ -617,8 +354,8 @@  File: gst-base.info, Node: HomedAssociation-accessing, Next: HomedAssociation-finalization, Prev: HomedAssociation class-basic, Up: HomedAssociation -1.81.2 HomedAssociation: accessing ----------------------------------- +HomedAssociation: accessing +--------------------------- environment Answer the namespace in which I live. @@ -630,8 +367,8 @@  File: gst-base.info, Node: HomedAssociation-finalization, Next: HomedAssociation-storing, Prev: HomedAssociation-accessing, Up: HomedAssociation -1.81.3 HomedAssociation: finalization -------------------------------------- +HomedAssociation: finalization +------------------------------ mourn This message is sent to the receiver when the object is made @@ -645,8 +382,8 @@  File: gst-base.info, Node: HomedAssociation-storing, Prev: HomedAssociation-finalization, Up: HomedAssociation -1.81.4 HomedAssociation: storing --------------------------------- +HomedAssociation: storing +------------------------- storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -655,8 +392,8 @@  File: gst-base.info, Node: IdentityDictionary, Next: IdentitySet, Prev: HomedAssociation, Up: Base classes -1.82 IdentityDictionary -======================= +IdentityDictionary +================== Defined in namespace Smalltalk Superclass: LookupTable @@ -669,8 +406,8 @@  File: gst-base.info, Node: IdentitySet, Next: Integer, Prev: IdentityDictionary, Up: Base classes -1.83 IdentitySet -================ +IdentitySet +=========== Defined in namespace Smalltalk Superclass: Set @@ -685,8 +422,8 @@  File: gst-base.info, Node: IdentitySet-testing, Up: IdentitySet -1.83.1 IdentitySet: testing ---------------------------- +IdentitySet: testing +-------------------- identityIncludes: anObject Answer whether we include the anObject object; for IdentitySets @@ -696,8 +433,8 @@  File: gst-base.info, Node: Integer, Next: Interval, Prev: IdentitySet, Up: Base classes -1.84 Integer -============ +Integer +======= Defined in namespace Smalltalk Superclass: Number @@ -724,8 +461,8 @@  File: gst-base.info, Node: Integer class-converting, Next: Integer-accessing, Up: Integer -1.84.1 Integer class: converting --------------------------------- +Integer class: converting +------------------------- coerce: aNumber Answer aNumber converted to a kind of Integer @@ -734,8 +471,8 @@  File: gst-base.info, Node: Integer-accessing, Next: Integer-basic, Prev: Integer class-converting, Up: Integer -1.84.2 Integer: accessing -------------------------- +Integer: accessing +------------------ denominator Answer `1'. @@ -747,8 +484,8 @@  File: gst-base.info, Node: Integer-basic, Next: Integer-bit operators, Prev: Integer-accessing, Up: Integer -1.84.3 Integer: basic ---------------------- +Integer: basic +-------------- hash Answer an hash value for the receiver @@ -757,8 +494,8 @@  File: gst-base.info, Node: Integer-bit operators, Next: Integer-converting, Prev: Integer-basic, Up: Integer -1.84.4 Integer: bit operators ------------------------------ +Integer: bit operators +---------------------- allMask: anInteger True if all 1 bits in anInteger are 1 in the receiver @@ -801,8 +538,8 @@  File: gst-base.info, Node: Integer-converting, Next: Integer-extension, Prev: Integer-bit operators, Up: Integer -1.84.5 Integer: converting --------------------------- +Integer: converting +------------------- asCharacter Return self as an ascii character @@ -833,8 +570,8 @@  File: gst-base.info, Node: Integer-extension, Next: Integer-iterators, Prev: Integer-converting, Up: Integer -1.84.6 Integer: extension -------------------------- +Integer: extension +------------------ alignTo: anInteger Answer the receiver, truncated to the first higher or equal @@ -844,8 +581,8 @@  File: gst-base.info, Node: Integer-iterators, Next: Integer-math methods, Prev: Integer-extension, Up: Integer -1.84.7 Integer: iterators -------------------------- +Integer: iterators +------------------ timesRepeat: aBlock Evaluate aBlock a number of times equal to the receiver's value. @@ -856,8 +593,8 @@  File: gst-base.info, Node: Integer-math methods, Next: Integer-printing, Prev: Integer-iterators, Up: Integer -1.84.8 Integer: math methods ----------------------------- +Integer: math methods +--------------------- binomial: anInteger Compute the number of combinations of anInteger objects among a @@ -889,8 +626,8 @@  File: gst-base.info, Node: Integer-printing, Next: Integer-storing, Prev: Integer-math methods, Up: Integer -1.84.9 Integer: printing ------------------------- +Integer: printing +----------------- displayOn: aStream Print on aStream the base 10 representation of the receiver @@ -929,8 +666,8 @@  File: gst-base.info, Node: Integer-storing, Next: Integer-testing functionality, Prev: Integer-printing, Up: Integer -1.84.10 Integer: storing ------------------------- +Integer: storing +---------------- storeOn: aStream Print on aStream the base 10 representation of the receiver @@ -942,8 +679,8 @@  File: gst-base.info, Node: Integer-testing functionality, Prev: Integer-storing, Up: Integer -1.84.11 Integer: testing functionality --------------------------------------- +Integer: testing functionality +------------------------------ isInteger Answer `true'. @@ -955,8 +692,8 @@  File: gst-base.info, Node: Interval, Next: LargeArray, Prev: Integer, Up: Base classes -1.85 Interval -============= +Interval +======== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -976,8 +713,8 @@  File: gst-base.info, Node: Interval class-instance creation, Next: Interval-basic, Up: Interval -1.85.1 Interval class: instance creation ----------------------------------------- +Interval class: instance creation +--------------------------------- from: startInteger to: stopInteger Answer an Interval going from startInteger to the stopInteger, @@ -995,8 +732,8 @@  File: gst-base.info, Node: Interval-basic, Next: Interval-printing, Prev: Interval class-instance creation, Up: Interval -1.85.2 Interval: basic ----------------------- +Interval: basic +--------------- at: index Answer the index-th element of the receiver. @@ -1024,8 +761,8 @@  File: gst-base.info, Node: Interval-printing, Next: Interval-storing, Prev: Interval-basic, Up: Interval -1.85.3 Interval: printing -------------------------- +Interval: printing +------------------ printOn: aStream Print a representation for the receiver on aStream @@ -1034,8 +771,8 @@  File: gst-base.info, Node: Interval-storing, Next: Interval-testing, Prev: Interval-printing, Up: Interval -1.85.4 Interval: storing ------------------------- +Interval: storing +----------------- storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -1044,8 +781,8 @@  File: gst-base.info, Node: Interval-testing, Prev: Interval-storing, Up: Interval -1.85.5 Interval: testing ------------------------- +Interval: testing +----------------- = anInterval Answer whether anInterval is the same interval as the receiver @@ -1057,8 +794,8 @@  File: gst-base.info, Node: LargeArray, Next: LargeArrayedCollection, Prev: Interval, Up: Base classes -1.86 LargeArray -=============== +LargeArray +========== Defined in namespace Smalltalk Superclass: LargeArrayedCollection @@ -1073,8 +810,8 @@  File: gst-base.info, Node: LargeArray-overridden, Up: LargeArray -1.86.1 LargeArray: overridden ------------------------------ +LargeArray: overridden +---------------------- newCollection: size Create an Array of the given size @@ -1083,8 +820,8 @@  File: gst-base.info, Node: LargeArrayedCollection, Next: LargeArraySubpart, Prev: LargeArray, Up: Base classes -1.87 LargeArrayedCollection -=========================== +LargeArrayedCollection +====================== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -1101,8 +838,8 @@  File: gst-base.info, Node: LargeArrayedCollection class-instance creation, Next: LargeArrayedCollection-accessing, Up: LargeArrayedCollection -1.87.1 LargeArrayedCollection class: instance creation ------------------------------------------------------- +LargeArrayedCollection class: instance creation +----------------------------------------------- new: anInteger Answer a new instance of the receiver, with room for anInteger @@ -1112,8 +849,8 @@  File: gst-base.info, Node: LargeArrayedCollection-accessing, Next: LargeArrayedCollection-basic, Prev: LargeArrayedCollection class-instance creation, Up: LargeArrayedCollection -1.87.2 LargeArrayedCollection: accessing ----------------------------------------- +LargeArrayedCollection: accessing +--------------------------------- at: anIndex Answer the anIndex-th item of the receiver. @@ -1128,8 +865,8 @@  File: gst-base.info, Node: LargeArrayedCollection-basic, Prev: LargeArrayedCollection-accessing, Up: LargeArrayedCollection -1.87.3 LargeArrayedCollection: basic ------------------------------------- +LargeArrayedCollection: basic +----------------------------- = aLargeArray Answer whether the receiver and aLargeArray have the same contents @@ -1144,8 +881,8 @@  File: gst-base.info, Node: LargeArraySubpart, Next: LargeByteArray, Prev: LargeArrayedCollection, Up: Base classes -1.88 LargeArraySubpart -====================== +LargeArraySubpart +================= Defined in namespace Smalltalk Superclass: Magnitude @@ -1167,8 +904,8 @@  File: gst-base.info, Node: LargeArraySubpart class-instance creation, Next: LargeArraySubpart-accessing, Up: LargeArraySubpart -1.88.1 LargeArraySubpart class: instance creation -------------------------------------------------- +LargeArraySubpart class: instance creation +------------------------------------------ first: first last: last index: index Answer a LargeArraySubpart which answers first, last, and index @@ -1178,8 +915,8 @@  File: gst-base.info, Node: LargeArraySubpart-accessing, Next: LargeArraySubpart-comparing, Prev: LargeArraySubpart class-instance creation, Up: LargeArraySubpart -1.88.2 LargeArraySubpart: accessing ------------------------------------ +LargeArraySubpart: accessing +---------------------------- first Answer the index of the first item of the LargeArrayedCollection @@ -1205,8 +942,8 @@  File: gst-base.info, Node: LargeArraySubpart-comparing, Next: LargeArraySubpart-modifying, Prev: LargeArraySubpart-accessing, Up: LargeArraySubpart -1.88.3 LargeArraySubpart: comparing ------------------------------------ +LargeArraySubpart: comparing +---------------------------- < anObject Answer whether the receiver points to a part of the array that is @@ -1233,8 +970,8 @@  File: gst-base.info, Node: LargeArraySubpart-modifying, Prev: LargeArraySubpart-comparing, Up: LargeArraySubpart -1.88.4 LargeArraySubpart: modifying ------------------------------------ +LargeArraySubpart: modifying +---------------------------- cutAt: position Answer a new LargeArraySubpart whose lastIndex is position - 1, @@ -1261,8 +998,8 @@  File: gst-base.info, Node: LargeByteArray, Next: LargeInteger, Prev: LargeArraySubpart, Up: Base classes -1.89 LargeByteArray -=================== +LargeByteArray +============== Defined in namespace Smalltalk Superclass: LargeArrayedCollection @@ -1277,8 +1014,8 @@  File: gst-base.info, Node: LargeByteArray-overridden, Up: LargeByteArray -1.89.1 LargeByteArray: overridden ---------------------------------- +LargeByteArray: overridden +-------------------------- costOfNewIndex Answer the maximum number of consecutive items set to the @@ -1294,8 +1031,8 @@  File: gst-base.info, Node: LargeInteger, Next: LargeNegativeInteger, Prev: LargeByteArray, Up: Base classes -1.90 LargeInteger -================= +LargeInteger +============ Defined in namespace Smalltalk Superclass: Integer @@ -1319,8 +1056,8 @@  File: gst-base.info, Node: LargeInteger-arithmetic, Next: LargeInteger-bit operations, Up: LargeInteger -1.90.1 LargeInteger: arithmetic -------------------------------- +LargeInteger: arithmetic +------------------------ * aNumber Multiply aNumber and the receiver, answer the result @@ -1361,8 +1098,8 @@  File: gst-base.info, Node: LargeInteger-bit operations, Next: LargeInteger-built-ins, Prev: LargeInteger-arithmetic, Up: LargeInteger -1.90.2 LargeInteger: bit operations ------------------------------------ +LargeInteger: bit operations +---------------------------- bitAnd: aNumber Answer the receiver ANDed with aNumber @@ -1386,8 +1123,8 @@  File: gst-base.info, Node: LargeInteger-built-ins, Next: LargeInteger-coercion, Prev: LargeInteger-bit operations, Up: LargeInteger -1.90.3 LargeInteger: built-ins ------------------------------- +LargeInteger: built-ins +----------------------- at: anIndex Answer the anIndex-th byte in the receiver's representation @@ -1421,8 +1158,8 @@  File: gst-base.info, Node: LargeInteger-coercion, Next: LargeInteger-disabled, Prev: LargeInteger-built-ins, Up: LargeInteger -1.90.4 LargeInteger: coercion ------------------------------ +LargeInteger: coercion +---------------------- coerce: aNumber Truncate the number; if needed, convert it to LargeInteger @@ -1441,8 +1178,8 @@  File: gst-base.info, Node: LargeInteger-disabled, Next: LargeInteger-primitive operations, Prev: LargeInteger-coercion, Up: LargeInteger -1.90.5 LargeInteger: disabled ------------------------------ +LargeInteger: disabled +---------------------- asObject This method always fails. The number of OOPs is far less than the @@ -1455,8 +1192,8 @@  File: gst-base.info, Node: LargeInteger-primitive operations, Next: LargeInteger-testing, Prev: LargeInteger-disabled, Up: LargeInteger -1.90.6 LargeInteger: primitive operations ------------------------------------------ +LargeInteger: primitive operations +---------------------------------- basicLeftShift: totalShift Private - Left shift the receiver by aNumber places @@ -1471,8 +1208,8 @@  File: gst-base.info, Node: LargeInteger-testing, Prev: LargeInteger-primitive operations, Up: LargeInteger -1.90.7 LargeInteger: testing ----------------------------- +LargeInteger: testing +--------------------- < aNumber Answer whether the receiver is smaller than aNumber @@ -1496,8 +1233,8 @@  File: gst-base.info, Node: LargeNegativeInteger, Next: LargePositiveInteger, Prev: LargeInteger, Up: Base classes -1.91 LargeNegativeInteger -========================= +LargeNegativeInteger +==================== Defined in namespace Smalltalk Superclass: LargeInteger @@ -1516,8 +1253,8 @@  File: gst-base.info, Node: LargeNegativeInteger-converting, Next: LargeNegativeInteger-numeric testing, Up: LargeNegativeInteger -1.91.1 LargeNegativeInteger: converting ---------------------------------------- +LargeNegativeInteger: converting +-------------------------------- asFloatD Answer the receiver converted to a FloatD @@ -1532,8 +1269,8 @@  File: gst-base.info, Node: LargeNegativeInteger-numeric testing, Next: LargeNegativeInteger-reverting to LargePositiveInteger, Prev: LargeNegativeInteger-converting, Up: LargeNegativeInteger -1.91.2 LargeNegativeInteger: numeric testing --------------------------------------------- +LargeNegativeInteger: numeric testing +------------------------------------- abs Answer the receiver's absolute value. @@ -1554,8 +1291,8 @@  File: gst-base.info, Node: LargeNegativeInteger-reverting to LargePositiveInteger, Prev: LargeNegativeInteger-numeric testing, Up: LargeNegativeInteger -1.91.3 LargeNegativeInteger: reverting to LargePositiveInteger --------------------------------------------------------------- +LargeNegativeInteger: reverting to LargePositiveInteger +------------------------------------------------------- + aNumber Sum the receiver and aNumber, answer the result @@ -1574,8 +1311,8 @@  File: gst-base.info, Node: LargePositiveInteger, Next: LargeWordArray, Prev: LargeNegativeInteger, Up: Base classes -1.92 LargePositiveInteger -========================= +LargePositiveInteger +==================== Defined in namespace Smalltalk Superclass: LargeInteger @@ -1597,8 +1334,8 @@  File: gst-base.info, Node: LargePositiveInteger-arithmetic, Next: LargePositiveInteger-converting, Up: LargePositiveInteger -1.92.1 LargePositiveInteger: arithmetic ---------------------------------------- +LargePositiveInteger: arithmetic +-------------------------------- + aNumber Sum the receiver and aNumber, answer the result @@ -1616,8 +1353,8 @@  File: gst-base.info, Node: LargePositiveInteger-converting, Next: LargePositiveInteger-helper byte-level methods, Prev: LargePositiveInteger-arithmetic, Up: LargePositiveInteger -1.92.2 LargePositiveInteger: converting ---------------------------------------- +LargePositiveInteger: converting +-------------------------------- asFloatD Answer the receiver converted to a FloatD @@ -1636,8 +1373,8 @@  File: gst-base.info, Node: LargePositiveInteger-helper byte-level methods, Next: LargePositiveInteger-numeric testing, Prev: LargePositiveInteger-converting, Up: LargePositiveInteger -1.92.3 LargePositiveInteger: helper byte-level methods ------------------------------------------------------- +LargePositiveInteger: helper byte-level methods +----------------------------------------------- bytes: byteArray1 from: j compare: byteArray2 Private - Answer the sign of byteArray2 - byteArray1; the j-th @@ -1681,8 +1418,8 @@  File: gst-base.info, Node: LargePositiveInteger-numeric testing, Next: LargePositiveInteger-primitive operations, Prev: LargePositiveInteger-helper byte-level methods, Up: LargePositiveInteger -1.92.4 LargePositiveInteger: numeric testing --------------------------------------------- +LargePositiveInteger: numeric testing +------------------------------------- abs Answer the receiver's absolute value @@ -1703,8 +1440,8 @@  File: gst-base.info, Node: LargePositiveInteger-primitive operations, Prev: LargePositiveInteger-numeric testing, Up: LargePositiveInteger -1.92.5 LargePositiveInteger: primitive operations -------------------------------------------------- +LargePositiveInteger: primitive operations +------------------------------------------ divide: aNumber using: aBlock Private - Divide the receiver by aNumber (unsigned division). @@ -1722,8 +1459,8 @@  File: gst-base.info, Node: LargeWordArray, Next: LargeZeroInteger, Prev: LargePositiveInteger, Up: Base classes -1.93 LargeWordArray -=================== +LargeWordArray +============== Defined in namespace Smalltalk Superclass: LargeArrayedCollection @@ -1738,8 +1475,8 @@  File: gst-base.info, Node: LargeWordArray-overridden, Up: LargeWordArray -1.93.1 LargeWordArray: overridden ---------------------------------- +LargeWordArray: overridden +-------------------------- defaultElement Answer the value which is hoped to be the most common in the array @@ -1751,8 +1488,8 @@  File: gst-base.info, Node: LargeZeroInteger, Next: Link, Prev: LargeWordArray, Up: Base classes -1.94 LargeZeroInteger -===================== +LargeZeroInteger +================ Defined in namespace Smalltalk Superclass: LargePositiveInteger @@ -1774,8 +1511,8 @@  File: gst-base.info, Node: LargeZeroInteger-accessing, Next: LargeZeroInteger-arithmetic, Up: LargeZeroInteger -1.94.1 LargeZeroInteger: accessing ----------------------------------- +LargeZeroInteger: accessing +--------------------------- at: anIndex Answer `0'. @@ -1790,8 +1527,8 @@  File: gst-base.info, Node: LargeZeroInteger-arithmetic, Next: LargeZeroInteger-numeric testing, Prev: LargeZeroInteger-accessing, Up: LargeZeroInteger -1.94.2 LargeZeroInteger: arithmetic ------------------------------------ +LargeZeroInteger: arithmetic +---------------------------- * aNumber Multiply aNumber and the receiver, answer the result @@ -1826,8 +1563,8 @@  File: gst-base.info, Node: LargeZeroInteger-numeric testing, Next: LargeZeroInteger-printing, Prev: LargeZeroInteger-arithmetic, Up: LargeZeroInteger -1.94.3 LargeZeroInteger: numeric testing ----------------------------------------- +LargeZeroInteger: numeric testing +--------------------------------- sign Answer the receiver's sign @@ -1839,8 +1576,8 @@  File: gst-base.info, Node: LargeZeroInteger-printing, Prev: LargeZeroInteger-numeric testing, Up: LargeZeroInteger -1.94.4 LargeZeroInteger: printing ---------------------------------- +LargeZeroInteger: printing +-------------------------- replace: str withStringBase: radix Return in a string the base radix representation of the receiver. @@ -1849,8 +1586,8 @@  File: gst-base.info, Node: Link, Next: LinkedList, Prev: LargeZeroInteger, Up: Base classes -1.95 Link -========= +Link +==== Defined in namespace Smalltalk Superclass: Object @@ -1869,8 +1606,8 @@  File: gst-base.info, Node: Link class-instance creation, Next: Link-basic, Up: Link -1.95.1 Link class: instance creation ------------------------------------- +Link class: instance creation +----------------------------- nextLink: aLink Create an instance with the given next link @@ -1879,8 +1616,8 @@  File: gst-base.info, Node: Link-basic, Next: Link-iteration, Prev: Link class-instance creation, Up: Link -1.95.2 Link: basic ------------------- +Link: basic +----------- nextLink Answer the next item in the list @@ -1892,8 +1629,8 @@  File: gst-base.info, Node: Link-iteration, Prev: Link-basic, Up: Link -1.95.3 Link: iteration ----------------------- +Link: iteration +--------------- at: index Retrieve a node (instance of Link) that is at a distance of `index' @@ -1912,8 +1649,8 @@  File: gst-base.info, Node: LinkedList, Next: LookupKey, Prev: Link, Up: Base classes -1.96 LinkedList -=============== +LinkedList +========== Defined in namespace Smalltalk Superclass: SequenceableCollection @@ -1933,8 +1670,8 @@  File: gst-base.info, Node: LinkedList-accessing, Next: LinkedList-adding, Up: LinkedList -1.96.1 LinkedList: accessing ----------------------------- +LinkedList: accessing +--------------------- at: index Return the element that is index into the linked list. @@ -1946,8 +1683,8 @@  File: gst-base.info, Node: LinkedList-adding, Next: LinkedList-enumerating, Prev: LinkedList-accessing, Up: LinkedList -1.96.2 LinkedList: adding -------------------------- +LinkedList: adding +------------------ add: aLink Add aLink at the end of the list; return aLink. @@ -1974,8 +1711,8 @@  File: gst-base.info, Node: LinkedList-enumerating, Next: LinkedList-testing, Prev: LinkedList-adding, Up: LinkedList -1.96.3 LinkedList: enumerating ------------------------------- +LinkedList: enumerating +----------------------- do: aBlock Enumerate each object in the list, passing it to aBlock (actual @@ -1985,8 +1722,8 @@  File: gst-base.info, Node: LinkedList-testing, Prev: LinkedList-enumerating, Up: LinkedList -1.96.4 LinkedList: testing --------------------------- +LinkedList: testing +------------------- isEmpty Returns true if the list contains no members @@ -2001,8 +1738,8 @@  File: gst-base.info, Node: LookupKey, Next: LookupTable, Prev: LinkedList, Up: Base classes -1.97 LookupKey -============== +LookupKey +========= Defined in namespace Smalltalk Superclass: Magnitude @@ -2022,8 +1759,8 @@  File: gst-base.info, Node: LookupKey class-basic, Next: LookupKey-accessing, Up: LookupKey -1.97.1 LookupKey class: basic ------------------------------ +LookupKey class: basic +---------------------- key: aKey Answer a new instance of the receiver with the given key and value @@ -2032,8 +1769,8 @@  File: gst-base.info, Node: LookupKey-accessing, Next: LookupKey-printing, Prev: LookupKey class-basic, Up: LookupKey -1.97.2 LookupKey: accessing ---------------------------- +LookupKey: accessing +-------------------- key Answer the receiver's key @@ -2045,8 +1782,8 @@  File: gst-base.info, Node: LookupKey-printing, Next: LookupKey-storing, Prev: LookupKey-accessing, Up: LookupKey -1.97.3 LookupKey: printing --------------------------- +LookupKey: printing +------------------- printOn: aStream Put on aStream a representation of the receiver @@ -2055,8 +1792,8 @@  File: gst-base.info, Node: LookupKey-storing, Next: LookupKey-testing, Prev: LookupKey-printing, Up: LookupKey -1.97.4 LookupKey: storing -------------------------- +LookupKey: storing +------------------ storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -2065,8 +1802,8 @@  File: gst-base.info, Node: LookupKey-testing, Prev: LookupKey-storing, Up: LookupKey -1.97.5 LookupKey: testing -------------------------- +LookupKey: testing +------------------ < aLookupKey Answer whether the receiver's key is less than aLookupKey's @@ -2083,8 +1820,8 @@  File: gst-base.info, Node: LookupTable, Next: Magnitude, Prev: LookupKey, Up: Base classes -1.98 LookupTable -================ +LookupTable +=========== Defined in namespace Smalltalk Superclass: Dictionary @@ -2108,8 +1845,8 @@  File: gst-base.info, Node: LookupTable class-instance creation, Next: LookupTable-accessing, Up: LookupTable -1.98.1 LookupTable class: instance creation -------------------------------------------- +LookupTable class: instance creation +------------------------------------ new Create a new LookupTable with a default size @@ -2118,8 +1855,8 @@  File: gst-base.info, Node: LookupTable-accessing, Next: LookupTable-copying, Prev: LookupTable class-instance creation, Up: LookupTable -1.98.2 LookupTable: accessing ------------------------------ +LookupTable: accessing +---------------------- add: anAssociation Add the anAssociation key to the receiver @@ -2143,8 +1880,8 @@  File: gst-base.info, Node: LookupTable-copying, Next: LookupTable-enumerating, Prev: LookupTable-accessing, Up: LookupTable -1.98.3 LookupTable: copying ---------------------------- +LookupTable: copying +-------------------- deepCopy Returns a deep copy of the receiver (the instance variables are @@ -2154,8 +1891,8 @@  File: gst-base.info, Node: LookupTable-enumerating, Next: LookupTable-hashing, Prev: LookupTable-copying, Up: LookupTable -1.98.4 LookupTable: enumerating -------------------------------- +LookupTable: enumerating +------------------------ associationsDo: aBlock Pass each association in the LookupTable to aBlock @@ -2168,8 +1905,8 @@  File: gst-base.info, Node: LookupTable-hashing, Next: LookupTable-rehashing, Prev: LookupTable-enumerating, Up: LookupTable -1.98.5 LookupTable: hashing ---------------------------- +LookupTable: hashing +-------------------- hash Answer the hash value for the receiver @@ -2178,8 +1915,8 @@  File: gst-base.info, Node: LookupTable-rehashing, Next: LookupTable-removing, Prev: LookupTable-hashing, Up: LookupTable -1.98.6 LookupTable: rehashing ------------------------------ +LookupTable: rehashing +---------------------- rehash Rehash the receiver @@ -2188,8 +1925,8 @@  File: gst-base.info, Node: LookupTable-removing, Next: LookupTable-storing, Prev: LookupTable-rehashing, Up: LookupTable -1.98.7 LookupTable: removing ----------------------------- +LookupTable: removing +--------------------- remove: anAssociation Remove anAssociation's key from the dictionary @@ -2205,8 +1942,8 @@  File: gst-base.info, Node: LookupTable-storing, Prev: LookupTable-removing, Up: LookupTable -1.98.8 LookupTable: storing ---------------------------- +LookupTable: storing +-------------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -2215,8 +1952,8 @@  File: gst-base.info, Node: Magnitude, Next: MappedCollection, Prev: LookupTable, Up: Base classes -1.99 Magnitude -============== +Magnitude +========= Defined in namespace Smalltalk Superclass: Object @@ -2233,8 +1970,8 @@  File: gst-base.info, Node: Magnitude-basic, Next: Magnitude-misc methods, Up: Magnitude -1.99.1 Magnitude: basic ------------------------ +Magnitude: basic +---------------- < aMagnitude Answer whether the receiver is less than aMagnitude @@ -2255,8 +1992,8 @@  File: gst-base.info, Node: Magnitude-misc methods, Prev: Magnitude-basic, Up: Magnitude -1.99.2 Magnitude: misc methods ------------------------------- +Magnitude: misc methods +----------------------- between: min and: max Returns true if object is inclusively between min and max. @@ -2271,8 +2008,8 @@  File: gst-base.info, Node: MappedCollection, Next: Memory, Prev: Magnitude, Up: Base classes -1.100 MappedCollection -====================== +MappedCollection +================ Defined in namespace Smalltalk Superclass: Collection @@ -2305,8 +2042,8 @@  File: gst-base.info, Node: MappedCollection class-instance creation, Next: MappedCollection-basic, Up: MappedCollection -1.100.1 MappedCollection class: instance creation -------------------------------------------------- +MappedCollection class: instance creation +----------------------------------------- collection: aCollection map: aMap Answer a new MappedCollection using the given domain (aCollection) @@ -2320,8 +2057,8 @@  File: gst-base.info, Node: MappedCollection-basic, Prev: MappedCollection class-instance creation, Up: MappedCollection -1.100.2 MappedCollection: basic -------------------------------- +MappedCollection: basic +----------------------- add: anObject This method should not be called for instances of this class. @@ -2361,8 +2098,8 @@  File: gst-base.info, Node: Memory, Next: Message, Prev: MappedCollection, Up: Base classes -1.101 Memory -============ +Memory +====== Defined in namespace Smalltalk Superclass: Object @@ -2380,8 +2117,8 @@  File: gst-base.info, Node: Memory class-accessing, Up: Memory -1.101.1 Memory class: accessing -------------------------------- +Memory class: accessing +----------------------- at: anAddress Access the Smalltalk object (OOP) at the given address. @@ -2500,8 +2237,8 @@  File: gst-base.info, Node: Message, Next: MessageNotUnderstood, Prev: Memory, Up: Base classes -1.102 Message -============= +Message +======= Defined in namespace Smalltalk Superclass: Object @@ -2521,8 +2258,8 @@  File: gst-base.info, Node: Message class-creating instances, Next: Message-accessing, Up: Message -1.102.1 Message class: creating instances ------------------------------------------ +Message class: creating instances +--------------------------------- selector: aSymbol arguments: anArray Create a new Message with the given selector and arguments @@ -2531,8 +2268,8 @@  File: gst-base.info, Node: Message-accessing, Next: Message-basic, Prev: Message class-creating instances, Up: Message -1.102.2 Message: accessing --------------------------- +Message: accessing +------------------ argument Answer the first of the receiver's arguments @@ -2553,8 +2290,8 @@  File: gst-base.info, Node: Message-basic, Prev: Message-accessing, Up: Message -1.102.3 Message: basic ----------------------- +Message: basic +-------------- printOn: aStream Print a representation of the receiver on aStream @@ -2569,8 +2306,8 @@  File: gst-base.info, Node: MessageNotUnderstood, Next: Metaclass, Prev: Message, Up: Base classes -1.103 MessageNotUnderstood -========================== +MessageNotUnderstood +==================== Defined in namespace Smalltalk Superclass: Halt @@ -2587,8 +2324,8 @@  File: gst-base.info, Node: MessageNotUnderstood-accessing, Next: MessageNotUnderstood-description, Up: MessageNotUnderstood -1.103.1 MessageNotUnderstood: accessing ---------------------------------------- +MessageNotUnderstood: accessing +------------------------------- message Answer the message that wasn't understood @@ -2600,8 +2337,8 @@  File: gst-base.info, Node: MessageNotUnderstood-description, Prev: MessageNotUnderstood-accessing, Up: MessageNotUnderstood -1.103.2 MessageNotUnderstood: description ------------------------------------------ +MessageNotUnderstood: description +--------------------------------- description Answer a textual description of the exception. @@ -2610,8 +2347,8 @@  File: gst-base.info, Node: Metaclass, Next: MethodContext, Prev: MessageNotUnderstood, Up: Base classes -1.104 Metaclass -=============== +Metaclass +========= Defined in namespace Smalltalk Superclass: ClassDescription @@ -2637,8 +2374,8 @@  File: gst-base.info, Node: Metaclass class-instance creation, Next: Metaclass-accessing, Up: Metaclass -1.104.1 Metaclass class: instance creation ------------------------------------------- +Metaclass class: instance creation +---------------------------------- subclassOf: superMeta Answer a new metaclass representing a subclass of superMeta @@ -2647,8 +2384,8 @@  File: gst-base.info, Node: Metaclass-accessing, Next: Metaclass-basic, Prev: Metaclass class-instance creation, Up: Metaclass -1.104.2 Metaclass: accessing ----------------------------- +Metaclass: accessing +-------------------- instanceClass Answer the only instance of the metaclass @@ -2665,8 +2402,8 @@  File: gst-base.info, Node: Metaclass-basic, Next: Metaclass-delegation, Prev: Metaclass-accessing, Up: Metaclass -1.104.3 Metaclass: basic ------------------------- +Metaclass: basic +---------------- instanceVariableNames: classInstVarNames Set the class-instance variables for the receiver to be those in @@ -2693,8 +2430,8 @@  File: gst-base.info, Node: Metaclass-delegation, Next: Metaclass-filing, Prev: Metaclass-basic, Up: Metaclass -1.104.4 Metaclass: delegation ------------------------------ +Metaclass: delegation +--------------------- addClassVarName: aString Add a class variable with the given name to the class pool @@ -2748,8 +2485,8 @@  File: gst-base.info, Node: Metaclass-filing, Next: Metaclass-printing, Prev: Metaclass-delegation, Up: Metaclass -1.104.5 Metaclass: filing -------------------------- +Metaclass: filing +----------------- fileOutOn: aFileStream File out complete class description: class definition, class and @@ -2759,8 +2496,8 @@  File: gst-base.info, Node: Metaclass-printing, Next: Metaclass-testing functionality, Prev: Metaclass-filing, Up: Metaclass -1.104.6 Metaclass: printing ---------------------------- +Metaclass: printing +------------------- nameIn: aNamespace Answer the class name when the class is referenced from aNamespace. @@ -2779,8 +2516,8 @@  File: gst-base.info, Node: Metaclass-testing functionality, Prev: Metaclass-printing, Up: Metaclass -1.104.7 Metaclass: testing functionality ----------------------------------------- +Metaclass: testing functionality +-------------------------------- asClass Answer `instanceClass'. @@ -2792,8 +2529,8 @@  File: gst-base.info, Node: MethodContext, Next: MethodDictionary, Prev: Metaclass, Up: Base classes -1.105 MethodContext -=================== +MethodContext +============= Defined in namespace Smalltalk Superclass: ContextPart @@ -2810,8 +2547,8 @@  File: gst-base.info, Node: MethodContext-accessing, Next: MethodContext-printing, Up: MethodContext -1.105.1 MethodContext: accessing --------------------------------- +MethodContext: accessing +------------------------ home Answer the MethodContext to which the receiver refers (i.e. the @@ -2848,8 +2585,8 @@  File: gst-base.info, Node: MethodContext-printing, Prev: MethodContext-accessing, Up: MethodContext -1.105.2 MethodContext: printing -------------------------------- +MethodContext: printing +----------------------- printOn: aStream Print a representation for the receiver on aStream @@ -2858,8 +2595,8 @@  File: gst-base.info, Node: MethodDictionary, Next: MethodInfo, Prev: MethodContext, Up: Base classes -1.106 MethodDictionary -====================== +MethodDictionary +================ Defined in namespace Smalltalk Superclass: LookupTable @@ -2877,8 +2614,8 @@  File: gst-base.info, Node: MethodDictionary-adding, Next: MethodDictionary-rehashing, Up: MethodDictionary -1.106.1 MethodDictionary: adding --------------------------------- +MethodDictionary: adding +------------------------ at: key put: value Store value as associated to the given key @@ -2887,8 +2624,8 @@  File: gst-base.info, Node: MethodDictionary-rehashing, Next: MethodDictionary-removing, Prev: MethodDictionary-adding, Up: MethodDictionary -1.106.2 MethodDictionary: rehashing ------------------------------------ +MethodDictionary: rehashing +--------------------------- rehash Rehash the receiver @@ -2897,8 +2634,8 @@  File: gst-base.info, Node: MethodDictionary-removing, Prev: MethodDictionary-rehashing, Up: MethodDictionary -1.106.3 MethodDictionary: removing ----------------------------------- +MethodDictionary: removing +-------------------------- remove: anAssociation Remove anAssociation's key from the dictionary @@ -2911,8 +2648,8 @@  File: gst-base.info, Node: MethodInfo, Next: Namespace, Prev: MethodDictionary, Up: Base classes -1.107 MethodInfo -================ +MethodInfo +========== Defined in namespace Smalltalk Superclass: Object @@ -2929,8 +2666,8 @@  File: gst-base.info, Node: MethodInfo-accessing, Next: MethodInfo-equality, Up: MethodInfo -1.107.1 MethodInfo: accessing ------------------------------ +MethodInfo: accessing +--------------------- category Answer the method category @@ -2971,8 +2708,8 @@  File: gst-base.info, Node: MethodInfo-equality, Prev: MethodInfo-accessing, Up: MethodInfo -1.107.2 MethodInfo: equality ----------------------------- +MethodInfo: equality +-------------------- = aMethodInfo Compare the receiver and aMethodInfo, answer whether they're equal @@ -2984,8 +2721,8 @@  File: gst-base.info, Node: Namespace, Next: NetClients.URIResolver, Prev: MethodInfo, Up: Base classes -1.108 Namespace -=============== +Namespace +========= Defined in namespace Smalltalk Superclass: AbstractNamespace @@ -3005,8 +2742,8 @@  File: gst-base.info, Node: Namespace class-accessing, Next: Namespace class-disabling instance creation, Up: Namespace -1.108.1 Namespace class: accessing ----------------------------------- +Namespace class: accessing +-------------------------- current Answer the current namespace @@ -3019,8 +2756,8 @@  File: gst-base.info, Node: Namespace class-disabling instance creation, Next: Namespace class-initialization, Prev: Namespace class-accessing, Up: Namespace -1.108.2 Namespace class: disabling instance creation ----------------------------------------------------- +Namespace class: disabling instance creation +-------------------------------------------- new Disabled - use #addSubspace: to create instances @@ -3032,8 +2769,8 @@  File: gst-base.info, Node: Namespace class-initialization, Next: Namespace-accessing, Prev: Namespace class-disabling instance creation, Up: Namespace -1.108.3 Namespace class: initialization ---------------------------------------- +Namespace class: initialization +------------------------------- initialize This actually is not needed, the job could be done in dict.c @@ -3044,8 +2781,8 @@  File: gst-base.info, Node: Namespace-accessing, Next: Namespace-namespace hierarchy, Prev: Namespace class-initialization, Up: Namespace -1.108.4 Namespace: accessing ----------------------------- +Namespace: accessing +-------------------- inheritedKeys Answer a Set of all the keys in the receiver and its superspaces @@ -3054,8 +2791,8 @@  File: gst-base.info, Node: Namespace-namespace hierarchy, Next: Namespace-overrides for superspaces, Prev: Namespace-accessing, Up: Namespace -1.108.5 Namespace: namespace hierarchy --------------------------------------- +Namespace: namespace hierarchy +------------------------------ siblings Answer all the other namespaces that inherit from the receiver's @@ -3070,8 +2807,8 @@  File: gst-base.info, Node: Namespace-overrides for superspaces, Next: Namespace-printing, Prev: Namespace-namespace hierarchy, Up: Namespace -1.108.6 Namespace: overrides for superspaces --------------------------------------------- +Namespace: overrides for superspaces +------------------------------------ associationAt: key ifAbsent: aBlock Return the key/value pair associated to the variable named as @@ -3121,8 +2858,8 @@  File: gst-base.info, Node: Namespace-printing, Prev: Namespace-overrides for superspaces, Up: Namespace -1.108.7 Namespace: printing ---------------------------- +Namespace: printing +------------------- nameIn: aNamespace Answer Smalltalk code compiling to the receiver when the current @@ -3139,8 +2876,8 @@  File: gst-base.info, Node: NetClients.URIResolver, Next: NetClients.URL, Prev: Namespace, Up: Base classes -1.109 NetClients.URIResolver -============================ +NetClients.URIResolver +====================== Defined in namespace Smalltalk.NetClients Superclass: Object @@ -3155,8 +2892,8 @@  File: gst-base.info, Node: NetClients.URIResolver class-api, Next: NetClients.URIResolver class-instance creation, Up: NetClients.URIResolver -1.109.1 NetClients.URIResolver class: api ------------------------------------------ +NetClients.URIResolver class: api +--------------------------------- openOn: aURI Always raise an error, as this method is not supported without @@ -3183,8 +2920,8 @@  File: gst-base.info, Node: NetClients.URIResolver class-instance creation, Prev: NetClients.URIResolver class-api, Up: NetClients.URIResolver -1.109.2 NetClients.URIResolver class: instance creation -------------------------------------------------------- +NetClients.URIResolver class: instance creation +----------------------------------------------- on: anURL Answer a new URIResolver that will do its best to fetch the data @@ -3194,8 +2931,8 @@  File: gst-base.info, Node: NetClients.URL, Next: Notification, Prev: NetClients.URIResolver, Up: Base classes -1.110 NetClients.URL -==================== +NetClients.URL +============== Defined in namespace Smalltalk.NetClients Superclass: Object @@ -3218,8 +2955,8 @@  File: gst-base.info, Node: NetClients.URL class-encoding URLs, Next: NetClients.URL class-instance creation, Up: NetClients.URL -1.110.1 NetClients.URL class: encoding URLs -------------------------------------------- +NetClients.URL class: encoding URLs +----------------------------------- decode: aString Decode a text/x-www-form-urlencoded String into a text/plain @@ -3236,8 +2973,8 @@  File: gst-base.info, Node: NetClients.URL class-instance creation, Next: NetClients.URL-accessing, Prev: NetClients.URL class-encoding URLs, Up: NetClients.URL -1.110.2 NetClients.URL class: instance creation ------------------------------------------------ +NetClients.URL class: instance creation +--------------------------------------- fromString: aString Parse the given URL and answer an URL object based on it. @@ -3258,8 +2995,8 @@  File: gst-base.info, Node: NetClients.URL-accessing, Next: NetClients.URL-comparing, Prev: NetClients.URL class-instance creation, Up: NetClients.URL -1.110.3 NetClients.URL: accessing ---------------------------------- +NetClients.URL: accessing +------------------------- decodedFields Convert the form fields to a Dictionary, answer nil if no question @@ -3359,8 +3096,8 @@  File: gst-base.info, Node: NetClients.URL-comparing, Next: NetClients.URL-copying, Prev: NetClients.URL-accessing, Up: NetClients.URL -1.110.4 NetClients.URL: comparing ---------------------------------- +NetClients.URL: comparing +------------------------- = anURL Answer whether the two URLs are equal. The file and anchor are @@ -3375,8 +3112,8 @@  File: gst-base.info, Node: NetClients.URL-copying, Next: NetClients.URL-initialize-release, Prev: NetClients.URL-comparing, Up: NetClients.URL -1.110.5 NetClients.URL: copying -------------------------------- +NetClients.URL: copying +----------------------- copyWithoutAuxiliaryParts Answer a copy of the receiver where the fragment and query parts @@ -3393,8 +3130,8 @@  File: gst-base.info, Node: NetClients.URL-initialize-release, Next: NetClients.URL-printing, Prev: NetClients.URL-copying, Up: NetClients.URL -1.110.6 NetClients.URL: initialize-release ------------------------------------------- +NetClients.URL: initialize-release +---------------------------------- initialize Initialize the object to a consistent state. @@ -3403,8 +3140,8 @@  File: gst-base.info, Node: NetClients.URL-printing, Next: NetClients.URL-testing, Prev: NetClients.URL-initialize-release, Up: NetClients.URL -1.110.7 NetClients.URL: printing --------------------------------- +NetClients.URL: printing +------------------------ printOn: stream Print a representation of the URL on the given stream. @@ -3413,8 +3150,8 @@  File: gst-base.info, Node: NetClients.URL-testing, Next: NetClients.URL-utilities, Prev: NetClients.URL-printing, Up: NetClients.URL -1.110.8 NetClients.URL: testing -------------------------------- +NetClients.URL: testing +----------------------- canCache Answer whether the URL is cacheable. The current implementation @@ -3439,8 +3176,8 @@  File: gst-base.info, Node: NetClients.URL-utilities, Prev: NetClients.URL-testing, Up: NetClients.URL -1.110.9 NetClients.URL: utilities ---------------------------------- +NetClients.URL: utilities +------------------------- construct: anURL Construct an absolute URL based on the relative URL anURL and the @@ -3450,8 +3187,8 @@  File: gst-base.info, Node: Notification, Next: NullProxy, Prev: NetClients.URL, Up: Base classes -1.111 Notification -================== +Notification +============ Defined in namespace Smalltalk Superclass: Exception @@ -3467,8 +3204,8 @@  File: gst-base.info, Node: Notification-exception description, Up: Notification -1.111.1 Notification: exception description -------------------------------------------- +Notification: exception description +----------------------------------- defaultAction Do the default action for notifications, which is to resume @@ -3484,8 +3221,8 @@  File: gst-base.info, Node: NullProxy, Next: NullValueHolder, Prev: Notification, Up: Base classes -1.112 NullProxy -=============== +NullProxy +========= Defined in namespace Smalltalk Superclass: AlternativeObjectProxy @@ -3504,8 +3241,8 @@  File: gst-base.info, Node: NullProxy class-instance creation, Next: NullProxy-accessing, Up: NullProxy -1.112.1 NullProxy class: instance creation ------------------------------------------- +NullProxy class: instance creation +---------------------------------- loadFrom: anObjectDumper Reload the object stored in anObjectDumper @@ -3514,8 +3251,8 @@  File: gst-base.info, Node: NullProxy-accessing, Prev: NullProxy class-instance creation, Up: NullProxy -1.112.2 NullProxy: accessing ----------------------------- +NullProxy: accessing +-------------------- dumpTo: anObjectDumper Dump the object stored in the proxy to anObjectDumper @@ -3524,8 +3261,8 @@  File: gst-base.info, Node: NullValueHolder, Next: Number, Prev: NullProxy, Up: Base classes -1.113 NullValueHolder -===================== +NullValueHolder +=============== Defined in namespace Smalltalk Superclass: ValueAdaptor @@ -3543,8 +3280,8 @@  File: gst-base.info, Node: NullValueHolder class-creating instances, Next: NullValueHolder-accessing, Up: NullValueHolder -1.113.1 NullValueHolder class: creating instances -------------------------------------------------- +NullValueHolder class: creating instances +----------------------------------------- new Not used - use `ValueHolder null' instead @@ -3553,8 +3290,8 @@  File: gst-base.info, Node: NullValueHolder-accessing, Prev: NullValueHolder class-creating instances, Up: NullValueHolder -1.113.2 NullValueHolder: accessing ----------------------------------- +NullValueHolder: accessing +-------------------------- value Retrive the value of the receiver. Always answer nil @@ -3566,8 +3303,8 @@  File: gst-base.info, Node: Number, Next: Object, Prev: NullValueHolder, Up: Base classes -1.114 Number -============ +Number +====== Defined in namespace Smalltalk Superclass: Magnitude @@ -3595,8 +3332,8 @@  File: gst-base.info, Node: Number class-converting, Next: Number class-testing, Up: Number -1.114.1 Number class: converting --------------------------------- +Number class: converting +------------------------ coerce: aNumber Answer aNumber - whatever class it belongs to, it is good @@ -3610,8 +3347,8 @@  File: gst-base.info, Node: Number class-testing, Next: Number-arithmetic, Prev: Number class-converting, Up: Number -1.114.2 Number class: testing ------------------------------ +Number class: testing +--------------------- isImmediate Answer whether, if x is an instance of the receiver, x copy == x @@ -3620,8 +3357,8 @@  File: gst-base.info, Node: Number-arithmetic, Next: Number-comparing, Prev: Number class-testing, Up: Number -1.114.3 Number: arithmetic --------------------------- +Number: arithmetic +------------------ * aNumber Subtract the receiver and aNumber, answer the result @@ -3664,8 +3401,8 @@  File: gst-base.info, Node: Number-comparing, Next: Number-converting, Prev: Number-arithmetic, Up: Number -1.114.4 Number: comparing -------------------------- +Number: comparing +----------------- max: aNumber Redefined to ensure that a NaN is never answered. Answer the @@ -3679,8 +3416,8 @@  File: gst-base.info, Node: Number-converting, Next: Number-copying, Prev: Number-comparing, Up: Number -1.114.5 Number: converting --------------------------- +Number: converting +------------------ asFloat Convert the receiver to an arbitrary subclass of Float @@ -3731,8 +3468,8 @@  File: gst-base.info, Node: Number-copying, Next: Number-error raising, Prev: Number-converting, Up: Number -1.114.6 Number: copying ------------------------ +Number: copying +--------------- deepCopy Return the receiver - it's an immediate (immutable) object @@ -3744,8 +3481,8 @@  File: gst-base.info, Node: Number-error raising, Next: Number-misc math, Prev: Number-copying, Up: Number -1.114.7 Number: error raising ------------------------------ +Number: error raising +--------------------- arithmeticError: msg Raise an ArithmeticError exception having msg as its message text. @@ -3758,8 +3495,8 @@  File: gst-base.info, Node: Number-misc math, Next: Number-point creation, Prev: Number-error raising, Up: Number -1.114.8 Number: misc math -------------------------- +Number: misc math +----------------- abs Answer the absolute value of the receiver @@ -3829,8 +3566,8 @@  File: gst-base.info, Node: Number-point creation, Next: Number-retrying, Prev: Number-misc math, Up: Number -1.114.9 Number: point creation ------------------------------- +Number: point creation +---------------------- @ y Answer a new point whose x is the receiver and whose y is y @@ -3842,8 +3579,8 @@  File: gst-base.info, Node: Number-retrying, Next: Number-shortcuts and iterators, Prev: Number-point creation, Up: Number -1.114.10 Number: retrying -------------------------- +Number: retrying +---------------- retry: aSymbol coercing: aNumber Coerce to the other number's class the one number between the @@ -3888,8 +3625,8 @@  File: gst-base.info, Node: Number-shortcuts and iterators, Next: Number-testing, Prev: Number-retrying, Up: Number -1.114.11 Number: shortcuts and iterators ----------------------------------------- +Number: shortcuts and iterators +------------------------------- to: stop Return an interval going from the receiver to stop by 1 @@ -3913,8 +3650,8 @@  File: gst-base.info, Node: Number-testing, Next: Number-truncation and round off, Prev: Number-shortcuts and iterators, Up: Number -1.114.12 Number: testing ------------------------- +Number: testing +--------------- closeTo: num Answer whether the receiver can be considered sufficiently close @@ -3964,8 +3701,8 @@  File: gst-base.info, Node: Number-truncation and round off, Prev: Number-testing, Up: Number -1.114.13 Number: truncation and round off ------------------------------------------ +Number: truncation and round off +-------------------------------- asInteger Answer the receiver, rounded to the nearest integer @@ -3997,8 +3734,8 @@  File: gst-base.info, Node: Object, Next: ObjectDumper, Prev: Number, Up: Base classes -1.115 Object -============ +Object +====== Defined in namespace Smalltalk Superclass: none @@ -4029,8 +3766,8 @@  File: gst-base.info, Node: Object class-initialization, Next: Object-built ins, Up: Object -1.115.1 Object class: initialization ------------------------------------- +Object class: initialization +---------------------------- dependencies Answer a dictionary that associates an object with its dependents. @@ -4054,8 +3791,8 @@  File: gst-base.info, Node: Object-built ins, Next: Object-change and update, Prev: Object class-initialization, Up: Object -1.115.2 Object: built ins -------------------------- +Object: built ins +----------------- = arg Answer whether the receiver is equal to arg. The equality test is @@ -4257,8 +3994,8 @@  File: gst-base.info, Node: Object-change and update, Next: Object-class type methods, Prev: Object-built ins, Up: Object -1.115.3 Object: change and update ---------------------------------- +Object: change and update +------------------------- broadcast: aSymbol Send the unary message aSymbol to each of the receiver's dependents @@ -4295,8 +4032,8 @@  File: gst-base.info, Node: Object-class type methods, Next: Object-conversion, Prev: Object-change and update, Up: Object -1.115.4 Object: class type methods ----------------------------------- +Object: class type methods +-------------------------- species This method has no unique definition. Generally speaking, methods @@ -4316,8 +4053,8 @@  File: gst-base.info, Node: Object-conversion, Next: Object-copying, Prev: Object-class type methods, Up: Object -1.115.5 Object: conversion --------------------------- +Object: conversion +------------------ asValue Answer a ValueHolder whose initial value is the receiver. @@ -4326,8 +4063,8 @@  File: gst-base.info, Node: Object-copying, Next: Object-debugging, Prev: Object-conversion, Up: Object -1.115.6 Object: copying ------------------------ +Object: copying +--------------- copy Returns a shallow copy of the receiver (the instance variables are @@ -4347,8 +4084,8 @@  File: gst-base.info, Node: Object-debugging, Next: Object-dependents access, Prev: Object-copying, Up: Object -1.115.7 Object: debugging -------------------------- +Object: debugging +----------------- breakpoint: context return: return Called back by the system. Must return the value passed through the @@ -4364,8 +4101,8 @@  File: gst-base.info, Node: Object-dependents access, Next: Object-error raising, Prev: Object-debugging, Up: Object -1.115.8 Object: dependents access ---------------------------------- +Object: dependents access +------------------------- addDependent: anObject Add anObject to the set of the receiver's dependents. Important: @@ -4386,8 +4123,8 @@  File: gst-base.info, Node: Object-error raising, Next: Object-exception handling, Prev: Object-dependents access, Up: Object -1.115.9 Object: error raising ------------------------------ +Object: error raising +--------------------- doesNotUnderstand: aMessage Called by the system when a selector was not found. message is a @@ -4407,8 +4144,8 @@  File: gst-base.info, Node: Object-exception handling, Next: Object-finalization, Prev: Object-error raising, Up: Object -1.115.10 Object: exception handling ------------------------------------ +Object: exception handling +-------------------------- badReturnError Called back when a block performs a bad return. @@ -4427,8 +4164,8 @@  File: gst-base.info, Node: Object-finalization, Next: Object-printing, Prev: Object-exception handling, Up: Object -1.115.11 Object: finalization ------------------------------ +Object: finalization +-------------------- addToBeFinalized Arrange things so that #finalize is sent to the object when the @@ -4455,8 +4192,8 @@  File: gst-base.info, Node: Object-printing, Next: Object-relational operators, Prev: Object-finalization, Up: Object -1.115.12 Object: printing -------------------------- +Object: printing +---------------- basicPrintNl Print a basic representation of the receiver, followed by a new @@ -4509,8 +4246,8 @@  File: gst-base.info, Node: Object-relational operators, Next: Object-saving and loading, Prev: Object-printing, Up: Object -1.115.13 Object: relational operators -------------------------------------- +Object: relational operators +---------------------------- ~= anObject Answer whether the receiver and anObject are not equal @@ -4522,8 +4259,8 @@  File: gst-base.info, Node: Object-saving and loading, Next: Object-storing, Prev: Object-relational operators, Up: Object -1.115.14 Object: saving and loading ------------------------------------ +Object: saving and loading +-------------------------- binaryRepresentationObject This method must be implemented if PluggableProxies are used with @@ -4551,8 +4288,8 @@  File: gst-base.info, Node: Object-storing, Next: Object-syntax shortcuts, Prev: Object-saving and loading, Up: Object -1.115.15 Object: storing ------------------------- +Object: storing +--------------- store Put a String of Smalltalk code compiling to the receiver on the @@ -4572,8 +4309,8 @@  File: gst-base.info, Node: Object-syntax shortcuts, Next: Object-testing functionality, Prev: Object-storing, Up: Object -1.115.16 Object: syntax shortcuts ---------------------------------- +Object: syntax shortcuts +------------------------ -> anObject Creates a new instance of Association with the receiver being the @@ -4583,8 +4320,8 @@  File: gst-base.info, Node: Object-testing functionality, Prev: Object-syntax shortcuts, Up: Object -1.115.17 Object: testing functionality --------------------------------------- +Object: testing functionality +----------------------------- ifNil: nilBlock Evaluate nilBlock if the receiver is nil, else answer self @@ -4666,8 +4403,8 @@  File: gst-base.info, Node: ObjectDumper, Next: ObjectMemory, Prev: Object, Up: Base classes -1.116 ObjectDumper -================== +ObjectDumper +============ Defined in namespace Smalltalk Superclass: Stream @@ -4697,8 +4434,8 @@  File: gst-base.info, Node: ObjectDumper class-establishing proxy classes, Next: ObjectDumper class-instance creation, Up: ObjectDumper -1.116.1 ObjectDumper class: establishing proxy classes ------------------------------------------------------- +ObjectDumper class: establishing proxy classes +---------------------------------------------- disableProxyFor: aClass Disable proxies for instances of aClass and its descendants @@ -4723,8 +4460,8 @@  File: gst-base.info, Node: ObjectDumper class-instance creation, Next: ObjectDumper class-shortcuts, Prev: ObjectDumper class-establishing proxy classes, Up: ObjectDumper -1.116.2 ObjectDumper class: instance creation ---------------------------------------------- +ObjectDumper class: instance creation +------------------------------------- new This method should not be called for instances of this class. @@ -4736,8 +4473,8 @@  File: gst-base.info, Node: ObjectDumper class-shortcuts, Next: ObjectDumper class-testing, Prev: ObjectDumper class-instance creation, Up: ObjectDumper -1.116.3 ObjectDumper class: shortcuts -------------------------------------- +ObjectDumper class: shortcuts +----------------------------- dump: anObject to: aFileStream Dump anObject to aFileStream. Answer anObject @@ -4749,8 +4486,8 @@  File: gst-base.info, Node: ObjectDumper class-testing, Next: ObjectDumper-accessing, Prev: ObjectDumper class-shortcuts, Up: ObjectDumper -1.116.4 ObjectDumper class: testing ------------------------------------ +ObjectDumper class: testing +--------------------------- example This is a real torture test: it outputs recursive objects, @@ -4762,8 +4499,8 @@  File: gst-base.info, Node: ObjectDumper-accessing, Next: ObjectDumper-loading/dumping objects, Prev: ObjectDumper class-testing, Up: ObjectDumper -1.116.5 ObjectDumper: accessing -------------------------------- +ObjectDumper: accessing +----------------------- flush `Forget' any information on previously stored objects. @@ -4780,8 +4517,8 @@  File: gst-base.info, Node: ObjectDumper-loading/dumping objects, Next: ObjectDumper-stream interface, Prev: ObjectDumper-accessing, Up: ObjectDumper -1.116.6 ObjectDumper: loading/dumping objects ---------------------------------------------- +ObjectDumper: loading/dumping objects +------------------------------------- dump: anObject Dump anObject on the stream associated with the receiver. Answer @@ -4795,8 +4532,8 @@  File: gst-base.info, Node: ObjectDumper-stream interface, Prev: ObjectDumper-loading/dumping objects, Up: ObjectDumper -1.116.7 ObjectDumper: stream interface --------------------------------------- +ObjectDumper: stream interface +------------------------------ atEnd Answer whether the underlying stream is at EOF @@ -4811,8 +4548,8 @@  File: gst-base.info, Node: ObjectMemory, Next: OrderedCollection, Prev: ObjectDumper, Up: Base classes -1.117 ObjectMemory -================== +ObjectMemory +============ Defined in namespace Smalltalk Superclass: Object @@ -4841,8 +4578,8 @@  File: gst-base.info, Node: ObjectMemory class-accessing, Next: ObjectMemory class-builtins, Up: ObjectMemory -1.117.1 ObjectMemory class: accessing -------------------------------------- +ObjectMemory class: accessing +----------------------------- current Return a snapshot of the VM's memory management statistics. @@ -4851,8 +4588,8 @@  File: gst-base.info, Node: ObjectMemory class-builtins, Next: ObjectMemory class-initialization, Prev: ObjectMemory class-accessing, Up: ObjectMemory -1.117.2 ObjectMemory class: builtins ------------------------------------- +ObjectMemory class: builtins +---------------------------- abort Quit the Smalltalk environment, dumping core. @@ -4949,8 +4686,8 @@  File: gst-base.info, Node: ObjectMemory class-initialization, Next: ObjectMemory class-saving the image, Prev: ObjectMemory class-builtins, Up: ObjectMemory -1.117.3 ObjectMemory class: initialization ------------------------------------------- +ObjectMemory class: initialization +---------------------------------- initialize Initialize the globals @@ -4959,8 +4696,8 @@  File: gst-base.info, Node: ObjectMemory class-saving the image, Next: ObjectMemory-accessing, Prev: ObjectMemory class-initialization, Up: ObjectMemory -1.117.4 ObjectMemory class: saving the image --------------------------------------------- +ObjectMemory class: saving the image +------------------------------------ snapshot Save a snapshot on the image file that was loaded on startup. @@ -4969,8 +4706,8 @@  File: gst-base.info, Node: ObjectMemory-accessing, Next: ObjectMemory-builtins, Prev: ObjectMemory class-saving the image, Up: ObjectMemory -1.117.5 ObjectMemory: accessing -------------------------------- +ObjectMemory: accessing +----------------------- allocFailures Answer the number of times that the old-space allocator found no @@ -5117,8 +4854,8 @@  File: gst-base.info, Node: ObjectMemory-builtins, Next: ObjectMemory-derived information, Prev: ObjectMemory-accessing, Up: ObjectMemory -1.117.6 ObjectMemory: builtins ------------------------------- +ObjectMemory: builtins +---------------------- update Update the values in the object to the current state of the VM. @@ -5127,8 +4864,8 @@  File: gst-base.info, Node: ObjectMemory-derived information, Prev: ObjectMemory-builtins, Up: ObjectMemory -1.117.7 ObjectMemory: derived information ------------------------------------------ +ObjectMemory: derived information +--------------------------------- scavengesBeforeTenuring Answer the number of scavenges that an object must on average @@ -5147,8 +4884,8 @@  File: gst-base.info, Node: OrderedCollection, Next: Package, Prev: ObjectMemory, Up: Base classes -1.118 OrderedCollection -======================= +OrderedCollection +================= Defined in namespace Smalltalk Superclass: SequenceableCollection @@ -5168,8 +4905,8 @@  File: gst-base.info, Node: OrderedCollection class-instance creation, Next: OrderedCollection-accessing, Up: OrderedCollection -1.118.1 OrderedCollection class: instance creation --------------------------------------------------- +OrderedCollection class: instance creation +------------------------------------------ new Answer an OrderedCollection of default size @@ -5181,8 +4918,8 @@  File: gst-base.info, Node: OrderedCollection-accessing, Next: OrderedCollection-adding, Prev: OrderedCollection class-instance creation, Up: OrderedCollection -1.118.2 OrderedCollection: accessing ------------------------------------- +OrderedCollection: accessing +---------------------------- at: anIndex Answer the anIndex-th item of the receiver @@ -5198,8 +4935,8 @@  File: gst-base.info, Node: OrderedCollection-adding, Next: OrderedCollection-removing, Prev: OrderedCollection-accessing, Up: OrderedCollection -1.118.3 OrderedCollection: adding ---------------------------------- +OrderedCollection: adding +------------------------- add: anObject Add anObject in the receiver, answer it @@ -5259,8 +4996,8 @@  File: gst-base.info, Node: OrderedCollection-removing, Prev: OrderedCollection-adding, Up: OrderedCollection -1.118.4 OrderedCollection: removing ------------------------------------ +OrderedCollection: removing +--------------------------- remove: anObject ifAbsent: aBlock Remove anObject from the receiver. If it can't be found, answer the @@ -5282,8 +5019,8 @@  File: gst-base.info, Node: Package, Next: PackageLoader, Prev: OrderedCollection, Up: Base classes -1.119 Package -============= +Package +======= Defined in namespace Smalltalk Superclass: Object @@ -5299,13 +5036,25 @@  File: gst-base.info, Node: Package-accessing, Up: Package -1.119.1 Package: accessing --------------------------- +Package: accessing +------------------ allFiles Answer an OrderedCollection of all the files, both built and distributed, that are part of the package. +baseDirs: baseDirs + Resolve the names in the package according to the base directories + 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 + 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. + builtFiles Answer a (modifiable) OrderedCollection of files that are part of the package but are not distributed. @@ -5318,10 +5067,8 @@ directory Answer the base directory from which to load the package. -directory: dir forBaseDir: baseDir - Set the base directory from which to load the package to dir. If - dir is a relative directory, store an absolute path composed from - the (already absolute) baseDir and from dir. +directory: dir + Set the base directory from which to load the package to dir. fileIns Answer a (modifiable) OrderedCollections of files that are to be @@ -5332,6 +5079,17 @@ Answer a (modifiable) OrderedCollection of files that are part of the package. +findBaseDirs: baseDirs for: aCollection + Resolve the names in aCollection according to the base directories + in baseDirs, and return the collection with the full filenames, or + nil if no directory was found for one or more file in aCollection. + +findBaseDirs: baseDirs forFile: fileName + Try appending 'self directory' and fileName to each of the + directory in baseDirs, and return the path to the first tried + filename that exists. Return nil if no directory is found that + contains the file. + libraries Answer a (modifiable) Set of shared library names that are required to load the package. @@ -5361,8 +5119,8 @@  File: gst-base.info, Node: PackageLoader, Next: PluggableAdaptor, Prev: Package, Up: Base classes -1.120 PackageLoader -=================== +PackageLoader +============= Defined in namespace Smalltalk Superclass: Object @@ -5380,8 +5138,8 @@  File: gst-base.info, Node: PackageLoader class-accessing, Next: PackageLoader class-loading, Up: PackageLoader -1.120.1 PackageLoader class: accessing --------------------------------------- +PackageLoader class: accessing +------------------------------ builtFilesFor: package Answer a Set of Strings containing the filenames of the given @@ -5430,14 +5188,23 @@ package refreshDependencies - Reload the `packages.xml' file in the image and kernel directories + Reload the `packages.xml' file in the image and kernel directories. + 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.  File: gst-base.info, Node: PackageLoader class-loading, Next: PackageLoader class-testing, Prev: PackageLoader class-accessing, Up: PackageLoader -1.120.2 PackageLoader class: loading ------------------------------------- +PackageLoader class: loading +---------------------------- extractDependenciesFor: packagesList onError: aBlock Answer an OrderedCollection containing all the packages which you @@ -5460,8 +5227,8 @@  File: gst-base.info, Node: PackageLoader class-testing, Prev: PackageLoader class-loading, Up: PackageLoader -1.120.3 PackageLoader class: testing ------------------------------------- +PackageLoader class: testing +---------------------------- canLoad: package Answer whether all the needed pre-requisites for package are @@ -5471,8 +5238,8 @@  File: gst-base.info, Node: PluggableAdaptor, Next: PluggableProxy, Prev: PackageLoader, Up: Base classes -1.121 PluggableAdaptor -====================== +PluggableAdaptor +================ Defined in namespace Smalltalk Superclass: ValueAdaptor @@ -5491,8 +5258,8 @@  File: gst-base.info, Node: PluggableAdaptor class-creating instances, Next: PluggableAdaptor-accessing, Up: PluggableAdaptor -1.121.1 PluggableAdaptor class: creating instances --------------------------------------------------- +PluggableAdaptor class: creating instances +------------------------------------------ getBlock: getBlock putBlock: putBlock Answer a PluggableAdaptor using the given blocks to implement @@ -5508,7 +5275,7 @@ implement #value, and anObject's putSelector message to implement #value: - message + message on: anObject index: anIndex Answer a PluggableAdaptor using anObject's #at: and #at:put: @@ -5522,8 +5289,8 @@  File: gst-base.info, Node: PluggableAdaptor-accessing, Prev: PluggableAdaptor class-creating instances, Up: PluggableAdaptor -1.121.2 PluggableAdaptor: accessing ------------------------------------ +PluggableAdaptor: accessing +--------------------------- value Get the value of the receiver. @@ -5535,8 +5302,8 @@  File: gst-base.info, Node: PluggableProxy, Next: Point, Prev: PluggableAdaptor, Up: Base classes -1.122 PluggableProxy -==================== +PluggableProxy +============== Defined in namespace Smalltalk Superclass: AlternativeObjectProxy @@ -5555,8 +5322,8 @@  File: gst-base.info, Node: PluggableProxy class-accessing, Next: PluggableProxy-saving and restoring, Up: PluggableProxy -1.122.1 PluggableProxy class: accessing ---------------------------------------- +PluggableProxy class: accessing +------------------------------- on: anObject Answer a proxy to be used to save anObject. The proxy stores a @@ -5568,8 +5335,8 @@  File: gst-base.info, Node: PluggableProxy-saving and restoring, Prev: PluggableProxy class-accessing, Up: PluggableProxy -1.122.2 PluggableProxy: saving and restoring --------------------------------------------- +PluggableProxy: saving and restoring +------------------------------------ object Reconstruct the object stored in the proxy and answer it; the @@ -5580,8 +5347,8 @@  File: gst-base.info, Node: Point, Next: PositionableStream, Prev: PluggableProxy, Up: Base classes -1.123 Point -=========== +Point +===== Defined in namespace Smalltalk Superclass: Object @@ -5605,8 +5372,8 @@  File: gst-base.info, Node: Point class-instance creation, Next: Point-accessing, Up: Point -1.123.1 Point class: instance creation --------------------------------------- +Point class: instance creation +------------------------------ new Create a new point with both coordinates set to 0 @@ -5618,8 +5385,8 @@  File: gst-base.info, Node: Point-accessing, Next: Point-arithmetic, Prev: Point class-instance creation, Up: Point -1.123.2 Point: accessing ------------------------- +Point: accessing +---------------- x Answer the x coordinate @@ -5640,8 +5407,8 @@  File: gst-base.info, Node: Point-arithmetic, Next: Point-comparing, Prev: Point-accessing, Up: Point -1.123.3 Point: arithmetic -------------------------- +Point: arithmetic +----------------- * scale Multiply the receiver by scale, which can be a Number or a Point @@ -5668,8 +5435,8 @@  File: gst-base.info, Node: Point-comparing, Next: Point-converting, Prev: Point-arithmetic, Up: Point -1.123.4 Point: comparing ------------------------- +Point: comparing +---------------- < aPoint Answer whether the receiver is higher and to the left of aPoint @@ -5700,8 +5467,8 @@  File: gst-base.info, Node: Point-converting, Next: Point-point functions, Prev: Point-comparing, Up: Point -1.123.5 Point: converting -------------------------- +Point: converting +----------------- asPoint Answer the receiver. @@ -5724,8 +5491,8 @@  File: gst-base.info, Node: Point-point functions, Next: Point-printing, Prev: Point-converting, Up: Point -1.123.6 Point: point functions ------------------------------- +Point: point functions +---------------------- arcTan Answer the angle (measured counterclockwise) between the receiver @@ -5757,8 +5524,8 @@  File: gst-base.info, Node: Point-printing, Next: Point-storing, Prev: Point-point functions, Up: Point -1.123.7 Point: printing ------------------------ +Point: printing +--------------- printOn: aStream Print a representation for the receiver on aStream @@ -5767,8 +5534,8 @@  File: gst-base.info, Node: Point-storing, Next: Point-truncation and round off, Prev: Point-printing, Up: Point -1.123.8 Point: storing ----------------------- +Point: storing +-------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -5777,8 +5544,8 @@  File: gst-base.info, Node: Point-truncation and round off, Prev: Point-storing, Up: Point -1.123.9 Point: truncation and round off ---------------------------------------- +Point: truncation and round off +------------------------------- rounded Answer a new point whose coordinates are rounded to the nearest @@ -5792,8 +5559,8 @@  File: gst-base.info, Node: PositionableStream, Next: Process, Prev: Point, Up: Base classes -1.124 PositionableStream -======================== +PositionableStream +================== Defined in namespace Smalltalk Superclass: Stream @@ -5817,8 +5584,8 @@  File: gst-base.info, Node: PositionableStream class-instance creation, Next: PositionableStream-accessing-reading, Up: PositionableStream -1.124.1 PositionableStream class: instance creation ---------------------------------------------------- +PositionableStream class: instance creation +------------------------------------------- on: aCollection Answer an instance of the receiver streaming on the whole contents @@ -5832,8 +5599,8 @@  File: gst-base.info, Node: PositionableStream-accessing-reading, Next: PositionableStream-class type methods, Prev: PositionableStream class-instance creation, Up: PositionableStream -1.124.2 PositionableStream: accessing-reading ---------------------------------------------- +PositionableStream: accessing-reading +------------------------------------- close Disassociate a stream from its backing store. @@ -5867,8 +5634,8 @@  File: gst-base.info, Node: PositionableStream-class type methods, Next: PositionableStream-positioning, Prev: PositionableStream-accessing-reading, Up: PositionableStream -1.124.3 PositionableStream: class type methods ----------------------------------------------- +PositionableStream: class type methods +-------------------------------------- isExternalStream We stream on a collection residing in the image, so answer false @@ -5881,8 +5648,8 @@  File: gst-base.info, Node: PositionableStream-positioning, Next: PositionableStream-testing, Prev: PositionableStream-class type methods, Up: PositionableStream -1.124.4 PositionableStream: positioning ---------------------------------------- +PositionableStream: positioning +------------------------------- basicPosition: anInteger Move the stream pointer to the anInteger-th object @@ -5918,8 +5685,8 @@  File: gst-base.info, Node: PositionableStream-testing, Next: PositionableStream-truncating, Prev: PositionableStream-positioning, Up: PositionableStream -1.124.5 PositionableStream: testing ------------------------------------ +PositionableStream: testing +--------------------------- atEnd Answer whether the objects in the stream have reached an end @@ -5935,8 +5702,8 @@  File: gst-base.info, Node: PositionableStream-truncating, Prev: PositionableStream-testing, Up: PositionableStream -1.124.6 PositionableStream: truncating --------------------------------------- +PositionableStream: truncating +------------------------------ truncate Truncate the receiver to the current position - only valid for @@ -5946,8 +5713,8 @@  File: gst-base.info, Node: Process, Next: ProcessorScheduler, Prev: PositionableStream, Up: Base classes -1.125 Process -============= +Process +======= Defined in namespace Smalltalk Superclass: Link @@ -5967,8 +5734,8 @@  File: gst-base.info, Node: Process-accessing, Next: Process-basic, Up: Process -1.125.1 Process: accessing --------------------------- +Process: accessing +------------------ externalInterruptsEnabled Answer whether the receiver is executed with interrupts enabled @@ -6012,8 +5779,8 @@  File: gst-base.info, Node: Process-basic, Next: Process-builtins, Prev: Process-accessing, Up: Process -1.125.2 Process: basic ----------------------- +Process: basic +-------------- lowerPriority Lower a bit the priority of the receiver. A #lowerPriority will @@ -6052,8 +5819,8 @@  File: gst-base.info, Node: Process-builtins, Next: Process-printing, Prev: Process-basic, Up: Process -1.125.3 Process: builtins -------------------------- +Process: builtins +----------------- resume Resume the receiver's execution @@ -6075,8 +5842,8 @@  File: gst-base.info, Node: Process-printing, Prev: Process-builtins, Up: Process -1.125.4 Process: printing -------------------------- +Process: printing +----------------- printOn: aStream Print a representation of the receiver on aStream @@ -6085,8 +5852,8 @@  File: gst-base.info, Node: ProcessorScheduler, Next: Promise, Prev: Process, Up: Base classes -1.126 ProcessorScheduler -======================== +ProcessorScheduler +================== Defined in namespace Smalltalk Superclass: Object @@ -6107,8 +5874,8 @@  File: gst-base.info, Node: ProcessorScheduler class-instance creation, Next: ProcessorScheduler-basic, Up: ProcessorScheduler -1.126.1 ProcessorScheduler class: instance creation ---------------------------------------------------- +ProcessorScheduler class: instance creation +------------------------------------------- new Error--new instances of ProcessorScheduler should not be created. @@ -6117,8 +5884,8 @@  File: gst-base.info, Node: ProcessorScheduler-basic, Next: ProcessorScheduler-built ins, Prev: ProcessorScheduler class-instance creation, Up: ProcessorScheduler -1.126.2 ProcessorScheduler: basic ---------------------------------- +ProcessorScheduler: basic +------------------------- activePriority Answer the active process' priority @@ -6160,8 +5927,8 @@  File: gst-base.info, Node: ProcessorScheduler-built ins, Next: ProcessorScheduler-idle tasks, Prev: ProcessorScheduler-basic, Up: ProcessorScheduler -1.126.3 ProcessorScheduler: built ins -------------------------------------- +ProcessorScheduler: built ins +----------------------------- twice @@ -6180,8 +5947,8 @@  File: gst-base.info, Node: ProcessorScheduler-idle tasks, Next: ProcessorScheduler-printing, Prev: ProcessorScheduler-built ins, Up: ProcessorScheduler -1.126.4 ProcessorScheduler: idle tasks --------------------------------------- +ProcessorScheduler: idle tasks +------------------------------ idle Private - Call the next idle task @@ -6200,8 +5967,8 @@  File: gst-base.info, Node: ProcessorScheduler-printing, Next: ProcessorScheduler-priorities, Prev: ProcessorScheduler-idle tasks, Up: ProcessorScheduler -1.126.5 ProcessorScheduler: printing ------------------------------------- +ProcessorScheduler: printing +---------------------------- printOn: aStream Store onto aStream a printed representation of the receiver @@ -6210,8 +5977,8 @@  File: gst-base.info, Node: ProcessorScheduler-priorities, Next: ProcessorScheduler-storing, Prev: ProcessorScheduler-printing, Up: ProcessorScheduler -1.126.6 ProcessorScheduler: priorities --------------------------------------- +ProcessorScheduler: priorities +------------------------------ highestPriority Answer the highest valid priority @@ -6262,8 +6029,8 @@  File: gst-base.info, Node: ProcessorScheduler-storing, Next: ProcessorScheduler-timed invocation, Prev: ProcessorScheduler-priorities, Up: ProcessorScheduler -1.126.7 ProcessorScheduler: storing ------------------------------------ +ProcessorScheduler: storing +--------------------------- storeOn: aStream Store onto aStream a Smalltalk expression which evaluates to the @@ -6273,8 +6040,8 @@  File: gst-base.info, Node: ProcessorScheduler-timed invocation, Prev: ProcessorScheduler-storing, Up: ProcessorScheduler -1.126.8 ProcessorScheduler: timed invocation --------------------------------------------- +ProcessorScheduler: timed invocation +------------------------------------ isTimeoutProgrammed Private - Answer whether there is a pending call to @@ -6291,8 +6058,8 @@  File: gst-base.info, Node: Promise, Next: Random, Prev: ProcessorScheduler, Up: Base classes -1.127 Promise -============= +Promise +======= Defined in namespace Smalltalk Superclass: ValueHolder @@ -6311,8 +6078,8 @@  File: gst-base.info, Node: Promise class-creating instances, Next: Promise-accessing, Up: Promise -1.127.1 Promise class: creating instances ------------------------------------------ +Promise class: creating instances +--------------------------------- null This method should not be called for instances of this class. @@ -6321,8 +6088,8 @@  File: gst-base.info, Node: Promise-accessing, Next: Promise-initializing, Prev: Promise class-creating instances, Up: Promise -1.127.2 Promise: accessing --------------------------- +Promise: accessing +------------------ hasValue Answer whether we already have a value. @@ -6337,8 +6104,8 @@  File: gst-base.info, Node: Promise-initializing, Next: Promise-printing, Prev: Promise-accessing, Up: Promise -1.127.3 Promise: initializing ------------------------------ +Promise: initializing +--------------------- initialize Private - set the initial state of the receiver @@ -6347,8 +6114,8 @@  File: gst-base.info, Node: Promise-printing, Prev: Promise-initializing, Up: Promise -1.127.4 Promise: printing -------------------------- +Promise: printing +----------------- printOn: aStream Print a representation of the receiver @@ -6357,8 +6124,8 @@  File: gst-base.info, Node: Random, Next: ReadStream, Prev: Promise, Up: Base classes -1.128 Random -============ +Random +====== Defined in namespace Smalltalk Superclass: Stream @@ -6376,8 +6143,8 @@  File: gst-base.info, Node: Random class-instance creation, Next: Random class-shortcuts, Up: Random -1.128.1 Random class: instance creation ---------------------------------------- +Random class: instance creation +------------------------------- new Create a new random number generator whose seed is given by the @@ -6390,8 +6157,8 @@  File: gst-base.info, Node: Random class-shortcuts, Next: Random-basic, Prev: Random class-instance creation, Up: Random -1.128.2 Random class: shortcuts -------------------------------- +Random class: shortcuts +----------------------- between: low and: high Return a random integer between the given extrema @@ -6403,8 +6170,8 @@  File: gst-base.info, Node: Random-basic, Next: Random-testing, Prev: Random class-shortcuts, Up: Random -1.128.3 Random: basic ---------------------- +Random: basic +------------- atEnd This stream never ends. Always answer false. @@ -6422,8 +6189,8 @@  File: gst-base.info, Node: Random-testing, Prev: Random-basic, Up: Random -1.128.4 Random: testing ------------------------ +Random: testing +--------------- chiSquare Compute the chi-square of the random that this class generates. @@ -6436,8 +6203,8 @@  File: gst-base.info, Node: ReadStream, Next: ReadWriteStream, Prev: Random, Up: Base classes -1.129 ReadStream -================ +ReadStream +========== Defined in namespace Smalltalk Superclass: PositionableStream @@ -6453,8 +6220,8 @@  File: gst-base.info, Node: ReadStream class-instance creation, Next: ReadStream-accessing-reading, Up: ReadStream -1.129.1 ReadStream class: instance creation -------------------------------------------- +ReadStream class: instance creation +----------------------------------- on: aCollection Answer a new stream working on aCollection from its start. @@ -6463,8 +6230,8 @@  File: gst-base.info, Node: ReadStream-accessing-reading, Prev: ReadStream class-instance creation, Up: ReadStream -1.129.2 ReadStream: accessing-reading -------------------------------------- +ReadStream: accessing-reading +----------------------------- reverseContents May be faster than generic stream reverseContents. @@ -6476,8 +6243,8 @@  File: gst-base.info, Node: ReadWriteStream, Next: Rectangle, Prev: ReadStream, Up: Base classes -1.130 ReadWriteStream -===================== +ReadWriteStream +=============== Defined in namespace Smalltalk Superclass: WriteStream @@ -6494,8 +6261,8 @@  File: gst-base.info, Node: ReadWriteStream class-instance creation, Next: ReadWriteStream-positioning, Up: ReadWriteStream -1.130.1 ReadWriteStream class: instance creation ------------------------------------------------- +ReadWriteStream class: instance creation +---------------------------------------- on: aCollection Answer a new stream working on aCollection from its start. The @@ -6509,8 +6276,8 @@  File: gst-base.info, Node: ReadWriteStream-positioning, Prev: ReadWriteStream class-instance creation, Up: ReadWriteStream -1.130.2 ReadWriteStream: positioning ------------------------------------- +ReadWriteStream: positioning +---------------------------- position: anInteger Unlike WriteStreams, ReadWriteStreams don't truncate the stream @@ -6522,8 +6289,8 @@  File: gst-base.info, Node: Rectangle, Next: RecursionLock, Prev: ReadWriteStream, Up: Base classes -1.131 Rectangle -=============== +Rectangle +========= Defined in namespace Smalltalk Superclass: Object @@ -6547,8 +6314,8 @@  File: gst-base.info, Node: Rectangle class-instance creation, Next: Rectangle-accessing, Up: Rectangle -1.131.1 Rectangle class: instance creation ------------------------------------------- +Rectangle class: instance creation +---------------------------------- left: leftNumber right: rightNumber top: topNumber bottom: bottomNumber Answer a rectangle with the given coordinates @@ -6566,8 +6333,8 @@  File: gst-base.info, Node: Rectangle-accessing, Next: Rectangle-copying, Prev: Rectangle class-instance creation, Up: Rectangle -1.131.2 Rectangle: accessing ----------------------------- +Rectangle: accessing +-------------------- bottom Answer the corner's y of the receiver @@ -6676,8 +6443,8 @@  File: gst-base.info, Node: Rectangle-copying, Next: Rectangle-printing, Prev: Rectangle-accessing, Up: Rectangle -1.131.3 Rectangle: copying --------------------------- +Rectangle: copying +------------------ copy Return a deep copy of the receiver for safety. @@ -6686,8 +6453,8 @@  File: gst-base.info, Node: Rectangle-printing, Next: Rectangle-rectangle functions, Prev: Rectangle-copying, Up: Rectangle -1.131.4 Rectangle: printing ---------------------------- +Rectangle: printing +------------------- printOn: aStream Print a representation of the receiver on aStream @@ -6699,8 +6466,8 @@  File: gst-base.info, Node: Rectangle-rectangle functions, Next: Rectangle-testing, Prev: Rectangle-printing, Up: Rectangle -1.131.5 Rectangle: rectangle functions --------------------------------------- +Rectangle: rectangle functions +------------------------------ amountToTranslateWithin: aRectangle Answer a Point so that if aRectangle is translated by that point, @@ -6750,8 +6517,8 @@  File: gst-base.info, Node: Rectangle-testing, Next: Rectangle-transforming, Prev: Rectangle-rectangle functions, Up: Rectangle -1.131.6 Rectangle: testing --------------------------- +Rectangle: testing +------------------ = aRectangle Answer whether the receiver is equal to aRectangle @@ -6777,8 +6544,8 @@  File: gst-base.info, Node: Rectangle-transforming, Next: Rectangle-truncation and round off, Prev: Rectangle-testing, Up: Rectangle -1.131.7 Rectangle: transforming -------------------------------- +Rectangle: transforming +----------------------- moveBy: aPoint Change the receiver so that the origin and corner are shifted by @@ -6800,8 +6567,8 @@  File: gst-base.info, Node: Rectangle-truncation and round off, Prev: Rectangle-transforming, Up: Rectangle -1.131.8 Rectangle: truncation and round off -------------------------------------------- +Rectangle: truncation and round off +----------------------------------- rounded Answer a copy of the receiver with the coordinates rounded to the @@ -6811,8 +6578,8 @@  File: gst-base.info, Node: RecursionLock, Next: RootNamespace, Prev: Rectangle, Up: Base classes -1.132 RecursionLock -=================== +RecursionLock +============= Defined in namespace Smalltalk Superclass: Object @@ -6828,8 +6595,8 @@  File: gst-base.info, Node: RecursionLock class-instance creation, Next: RecursionLock-accessing, Up: RecursionLock -1.132.1 RecursionLock class: instance creation ----------------------------------------------- +RecursionLock class: instance creation +-------------------------------------- new Answer a new semaphore @@ -6838,8 +6605,8 @@  File: gst-base.info, Node: RecursionLock-accessing, Next: RecursionLock-mutual exclusion, Prev: RecursionLock class-instance creation, Up: RecursionLock -1.132.2 RecursionLock: accessing --------------------------------- +RecursionLock: accessing +------------------------ isOwnerProcess Answer whether the receiver is the owner of the lock. @@ -6861,8 +6628,8 @@  File: gst-base.info, Node: RecursionLock-mutual exclusion, Next: RecursionLock-printing, Prev: RecursionLock-accessing, Up: RecursionLock -1.132.3 RecursionLock: mutual exclusion ---------------------------------------- +RecursionLock: mutual exclusion +------------------------------- critical: aBlock Wait for the receiver to be free, execute aBlock and signal the @@ -6872,8 +6639,8 @@  File: gst-base.info, Node: RecursionLock-printing, Prev: RecursionLock-mutual exclusion, Up: RecursionLock -1.132.4 RecursionLock: printing -------------------------------- +RecursionLock: printing +----------------------- printOn: aStream Print a human-readable represention of the receiver on aStream. @@ -6882,8 +6649,8 @@  File: gst-base.info, Node: RootNamespace, Next: RunArray, Prev: RecursionLock, Up: Base classes -1.133 RootNamespace -=================== +RootNamespace +============= Defined in namespace Smalltalk Superclass: AbstractNamespace @@ -6901,8 +6668,8 @@  File: gst-base.info, Node: RootNamespace class-instance creation, Next: RootNamespace-namespace hierarchy, Up: RootNamespace -1.133.1 RootNamespace class: instance creation ----------------------------------------------- +RootNamespace class: instance creation +-------------------------------------- new: spaceName Create a new root namespace with the given name, and add to @@ -6912,8 +6679,8 @@  File: gst-base.info, Node: RootNamespace-namespace hierarchy, Next: RootNamespace-overrides for superspaces, Prev: RootNamespace class-instance creation, Up: RootNamespace -1.133.2 RootNamespace: namespace hierarchy ------------------------------------------- +RootNamespace: namespace hierarchy +---------------------------------- siblings Answer all the other root namespaces @@ -6926,8 +6693,8 @@  File: gst-base.info, Node: RootNamespace-overrides for superspaces, Next: RootNamespace-printing, Prev: RootNamespace-namespace hierarchy, Up: RootNamespace -1.133.3 RootNamespace: overrides for superspaces ------------------------------------------------- +RootNamespace: overrides for superspaces +---------------------------------------- inheritedKeys Answer a Set of all the keys in the receiver and its superspaces @@ -6942,8 +6709,8 @@  File: gst-base.info, Node: RootNamespace-printing, Prev: RootNamespace-overrides for superspaces, Up: RootNamespace -1.133.4 RootNamespace: printing -------------------------------- +RootNamespace: printing +----------------------- nameIn: aNamespace Answer Smalltalk code compiling to the receiver when the current @@ -6960,8 +6727,8 @@  File: gst-base.info, Node: RunArray, Next: ScaledDecimal, Prev: RootNamespace, Up: Base classes -1.134 RunArray -============== +RunArray +======== Defined in namespace Smalltalk Superclass: OrderedCollection @@ -6988,8 +6755,8 @@  File: gst-base.info, Node: RunArray class-instance creation, Next: RunArray-accessing, Up: RunArray -1.134.1 RunArray class: instance creation ------------------------------------------ +RunArray class: instance creation +--------------------------------- new Answer an empty RunArray @@ -7001,8 +6768,8 @@  File: gst-base.info, Node: RunArray-accessing, Next: RunArray-adding, Prev: RunArray class-instance creation, Up: RunArray -1.134.2 RunArray: accessing ---------------------------- +RunArray: accessing +------------------- at: anIndex Answer the element at index anIndex @@ -7015,8 +6782,8 @@  File: gst-base.info, Node: RunArray-adding, Next: RunArray-basic, Prev: RunArray-accessing, Up: RunArray -1.134.3 RunArray: adding ------------------------- +RunArray: adding +---------------- add: anObject afterIndex: anIndex Add anObject after the element at index anIndex @@ -7047,8 +6814,8 @@  File: gst-base.info, Node: RunArray-basic, Next: RunArray-copying, Prev: RunArray-adding, Up: RunArray -1.134.4 RunArray: basic ------------------------ +RunArray: basic +--------------- first Answer the first element in the receiver @@ -7063,8 +6830,8 @@  File: gst-base.info, Node: RunArray-copying, Next: RunArray-enumerating, Prev: RunArray-basic, Up: RunArray -1.134.5 RunArray: copying -------------------------- +RunArray: copying +----------------- deepCopy Answer a copy of the receiver containing copies of the receiver's @@ -7077,8 +6844,8 @@  File: gst-base.info, Node: RunArray-enumerating, Next: RunArray-removing, Prev: RunArray-copying, Up: RunArray -1.134.6 RunArray: enumerating ------------------------------ +RunArray: enumerating +--------------------- do: aBlock Enumerate all the objects in the receiver, passing each one to @@ -7093,8 +6860,8 @@  File: gst-base.info, Node: RunArray-removing, Next: RunArray-searching, Prev: RunArray-enumerating, Up: RunArray -1.134.7 RunArray: removing --------------------------- +RunArray: removing +------------------ removeAtIndex: anIndex Remove the object at index anIndex from the receiver and answer the @@ -7112,8 +6879,8 @@  File: gst-base.info, Node: RunArray-searching, Next: RunArray-testing, Prev: RunArray-removing, Up: RunArray -1.134.8 RunArray: searching ---------------------------- +RunArray: searching +------------------- indexOf: anObject startingAt: anIndex ifAbsent: aBlock Answer the index of the first copy of anObject in the receiver, @@ -7124,8 +6891,8 @@  File: gst-base.info, Node: RunArray-testing, Prev: RunArray-searching, Up: RunArray -1.134.9 RunArray: testing -------------------------- +RunArray: testing +----------------- = anObject Answer true if the receiver is equal to anObject @@ -7137,8 +6904,8 @@  File: gst-base.info, Node: ScaledDecimal, Next: Semaphore, Prev: RunArray, Up: Base classes -1.135 ScaledDecimal -=================== +ScaledDecimal +============= Defined in namespace Smalltalk Superclass: Number @@ -7162,8 +6929,8 @@  File: gst-base.info, Node: ScaledDecimal class-constants, Next: ScaledDecimal class-instance creation, Up: ScaledDecimal -1.135.1 ScaledDecimal class: constants --------------------------------------- +ScaledDecimal class: constants +------------------------------ initialize Initialize the receiver's class variables @@ -7172,8 +6939,8 @@  File: gst-base.info, Node: ScaledDecimal class-instance creation, Next: ScaledDecimal-arithmetic, Prev: ScaledDecimal class-constants, Up: ScaledDecimal -1.135.2 ScaledDecimal class: instance creation ----------------------------------------------- +ScaledDecimal class: instance creation +-------------------------------------- newFromNumber: aNumber scale: scale Answer a new instance of ScaledDecimal, representing a decimal @@ -7184,8 +6951,8 @@  File: gst-base.info, Node: ScaledDecimal-arithmetic, Next: ScaledDecimal-coercion, Prev: ScaledDecimal class-instance creation, Up: ScaledDecimal -1.135.3 ScaledDecimal: arithmetic ---------------------------------- +ScaledDecimal: arithmetic +------------------------- * aNumber Multiply two numbers and answer the result. @@ -7211,8 +6978,8 @@  File: gst-base.info, Node: ScaledDecimal-coercion, Next: ScaledDecimal-comparing, Prev: ScaledDecimal-arithmetic, Up: ScaledDecimal -1.135.4 ScaledDecimal: coercion -------------------------------- +ScaledDecimal: coercion +----------------------- asFloatD Answer the receiver, converted to a FloatD @@ -7251,8 +7018,8 @@  File: gst-base.info, Node: ScaledDecimal-comparing, Next: ScaledDecimal-constants, Prev: ScaledDecimal-coercion, Up: ScaledDecimal -1.135.5 ScaledDecimal: comparing --------------------------------- +ScaledDecimal: comparing +------------------------ < aNumber Answer whether the receiver is less than arg. @@ -7279,8 +7046,8 @@  File: gst-base.info, Node: ScaledDecimal-constants, Next: ScaledDecimal-printing, Prev: ScaledDecimal-comparing, Up: ScaledDecimal -1.135.6 ScaledDecimal: constants --------------------------------- +ScaledDecimal: constants +------------------------ one Answer the receiver's representation of one. @@ -7292,8 +7059,8 @@  File: gst-base.info, Node: ScaledDecimal-printing, Next: ScaledDecimal-storing, Prev: ScaledDecimal-constants, Up: ScaledDecimal -1.135.7 ScaledDecimal: printing -------------------------------- +ScaledDecimal: printing +----------------------- displayOn: aStream Print a representation of the receiver on aStream, intended to be @@ -7307,8 +7074,8 @@  File: gst-base.info, Node: ScaledDecimal-storing, Prev: ScaledDecimal-printing, Up: ScaledDecimal -1.135.8 ScaledDecimal: storing ------------------------------- +ScaledDecimal: storing +---------------------- storeOn: aStream Print Smalltalk code that compiles to the receiver on aStream. @@ -7317,8 +7084,8 @@  File: gst-base.info, Node: Semaphore, Next: SequenceableCollection, Prev: ScaledDecimal, Up: Base classes -1.136 Semaphore -=============== +Semaphore +========= Defined in namespace Smalltalk Superclass: LinkedList @@ -7339,8 +7106,8 @@  File: gst-base.info, Node: Semaphore class-instance creation, Next: Semaphore-accessing, Up: Semaphore -1.136.1 Semaphore class: instance creation ------------------------------------------- +Semaphore class: instance creation +---------------------------------- forMutualExclusion Answer a new semaphore with a signal on it. These semaphores are a @@ -7353,8 +7120,8 @@  File: gst-base.info, Node: Semaphore-accessing, Next: Semaphore-builtins, Prev: Semaphore class-instance creation, Up: Semaphore -1.136.2 Semaphore: accessing ----------------------------- +Semaphore: accessing +-------------------- name Answer a user-friendly name for the receiver @@ -7373,8 +7140,8 @@  File: gst-base.info, Node: Semaphore-builtins, Next: Semaphore-mutual exclusion, Prev: Semaphore-accessing, Up: Semaphore -1.136.3 Semaphore: builtins ---------------------------- +Semaphore: builtins +------------------- lock Without putting the receiver to sleep, force processes that try to @@ -7413,8 +7180,8 @@  File: gst-base.info, Node: Semaphore-mutual exclusion, Next: Semaphore-printing, Prev: Semaphore-builtins, Up: Semaphore -1.136.4 Semaphore: mutual exclusion ------------------------------------ +Semaphore: mutual exclusion +--------------------------- critical: aBlock Wait for the receiver to be free, execute aBlock and signal the @@ -7424,8 +7191,8 @@  File: gst-base.info, Node: Semaphore-printing, Prev: Semaphore-mutual exclusion, Up: Semaphore -1.136.5 Semaphore: printing ---------------------------- +Semaphore: printing +------------------- printOn: aStream Print a human-readable represention of the receiver on aStream. @@ -7434,8 +7201,8 @@  File: gst-base.info, Node: SequenceableCollection, Next: Set, Prev: Semaphore, Up: Base classes -1.137 SequenceableCollection -============================ +SequenceableCollection +====================== Defined in namespace Smalltalk Superclass: Collection @@ -7455,8 +7222,8 @@  File: gst-base.info, Node: SequenceableCollection class-instance creation, Next: SequenceableCollection-basic, Up: SequenceableCollection -1.137.1 SequenceableCollection class: instance creation -------------------------------------------------------- +SequenceableCollection class: instance creation +----------------------------------------------- streamContents: aBlock Create a ReadWriteStream on an empty instance of the receiver; @@ -7467,8 +7234,8 @@  File: gst-base.info, Node: SequenceableCollection-basic, Next: SequenceableCollection-copying SequenceableCollections, Prev: SequenceableCollection class-instance creation, Up: SequenceableCollection -1.137.2 SequenceableCollection: basic -------------------------------------- +SequenceableCollection: basic +----------------------------- after: oldObject Return the element after oldObject. Error if oldObject not found @@ -7559,8 +7326,8 @@  File: gst-base.info, Node: SequenceableCollection-copying SequenceableCollections, Next: SequenceableCollection-enumerating, Prev: SequenceableCollection-basic, Up: SequenceableCollection -1.137.3 SequenceableCollection: copying SequenceableCollections ---------------------------------------------------------------- +SequenceableCollection: copying SequenceableCollections +------------------------------------------------------- , aSequenceableCollection Append aSequenceableCollection at the end of the receiver (using @@ -7607,8 +7374,8 @@  File: gst-base.info, Node: SequenceableCollection-enumerating, Next: SequenceableCollection-replacing items, Prev: SequenceableCollection-copying SequenceableCollections, Up: SequenceableCollection -1.137.4 SequenceableCollection: enumerating -------------------------------------------- +SequenceableCollection: enumerating +----------------------------------- anyOne Answer an unspecified element of the collection. @@ -7689,8 +7456,8 @@  File: gst-base.info, Node: SequenceableCollection-replacing items, Next: SequenceableCollection-testing, Prev: SequenceableCollection-enumerating, Up: SequenceableCollection -1.137.5 SequenceableCollection: replacing items ------------------------------------------------ +SequenceableCollection: replacing items +--------------------------------------- replaceAll: anObject with: anotherObject In the receiver, replace every occurrence of anObject with @@ -7712,8 +7479,8 @@  File: gst-base.info, Node: SequenceableCollection-testing, Prev: SequenceableCollection-replacing items, Up: SequenceableCollection -1.137.6 SequenceableCollection: testing ---------------------------------------- +SequenceableCollection: testing +------------------------------- = aCollection Answer whether the receiver's items match those in aCollection @@ -7729,8 +7496,8 @@  File: gst-base.info, Node: Set, Next: SharedQueue, Prev: SequenceableCollection, Up: Base classes -1.138 Set -========= +Set +=== Defined in namespace Smalltalk Superclass: HashedCollection @@ -7747,8 +7514,8 @@  File: gst-base.info, Node: Set-arithmetic, Next: Set-awful ST-80 compatibility hacks, Up: Set -1.138.1 Set: arithmetic ------------------------ +Set: arithmetic +--------------- & aSet Compute the set intersection of the receiver and aSet. @@ -7763,8 +7530,8 @@  File: gst-base.info, Node: Set-awful ST-80 compatibility hacks, Next: Set-comparing, Prev: Set-arithmetic, Up: Set -1.138.2 Set: awful ST-80 compatibility hacks --------------------------------------------- +Set: awful ST-80 compatibility hacks +------------------------------------ findObjectIndex: object Tries to see if anObject exists as an indexed variable. As soon as @@ -7774,8 +7541,8 @@  File: gst-base.info, Node: Set-comparing, Prev: Set-awful ST-80 compatibility hacks, Up: Set -1.138.3 Set: comparing ----------------------- +Set: comparing +-------------- < aSet Answer whether the receiver is a strict subset of aSet @@ -7793,8 +7560,8 @@  File: gst-base.info, Node: SharedQueue, Next: Signal, Prev: Set, Up: Base classes -1.139 SharedQueue -================= +SharedQueue +=========== Defined in namespace Smalltalk Superclass: Object @@ -7812,8 +7579,8 @@  File: gst-base.info, Node: SharedQueue class-instance creation, Next: SharedQueue-accessing, Up: SharedQueue -1.139.1 SharedQueue class: instance creation --------------------------------------------- +SharedQueue class: instance creation +------------------------------------ new Create a new instance of the receiver @@ -7826,8 +7593,8 @@  File: gst-base.info, Node: SharedQueue-accessing, Prev: SharedQueue class-instance creation, Up: SharedQueue -1.139.2 SharedQueue: accessing ------------------------------- +SharedQueue: accessing +---------------------- isEmpty Answer whether there is an object on the queue @@ -7846,8 +7613,8 @@  File: gst-base.info, Node: Signal, Next: SingletonProxy, Prev: SharedQueue, Up: Base classes -1.140 Signal -============ +Signal +====== Defined in namespace Smalltalk Superclass: Object @@ -7866,8 +7633,8 @@  File: gst-base.info, Node: Signal-accessing, Next: Signal-exception handling, Up: Signal -1.140.1 Signal: accessing -------------------------- +Signal: accessing +----------------- argument Answer the first argument of the receiver @@ -7905,8 +7672,8 @@  File: gst-base.info, Node: Signal-exception handling, Prev: Signal-accessing, Up: Signal -1.140.2 Signal: exception handling ----------------------------------- +Signal: exception handling +-------------------------- defaultAction Execute the default handler for the raised exception @@ -7973,8 +7740,8 @@  File: gst-base.info, Node: SingletonProxy, Next: SmallInteger, Prev: Signal, Up: Base classes -1.141 SingletonProxy -==================== +SingletonProxy +============== Defined in namespace Smalltalk Superclass: AlternativeObjectProxy @@ -7993,8 +7760,8 @@  File: gst-base.info, Node: SingletonProxy class-accessing, Next: SingletonProxy class-instance creation, Up: SingletonProxy -1.141.1 SingletonProxy class: accessing ---------------------------------------- +SingletonProxy class: accessing +------------------------------- acceptUsageForClass: aClass The receiver was asked to be used as a proxy for the class aClass. @@ -8004,8 +7771,8 @@  File: gst-base.info, Node: SingletonProxy class-instance creation, Next: SingletonProxy-saving and restoring, Prev: SingletonProxy class-accessing, Up: SingletonProxy -1.141.2 SingletonProxy class: instance creation ------------------------------------------------ +SingletonProxy class: instance creation +--------------------------------------- on: anObject Answer a proxy to be used to save anObject. The proxy stores the @@ -8016,8 +7783,8 @@  File: gst-base.info, Node: SingletonProxy-saving and restoring, Prev: SingletonProxy class-instance creation, Up: SingletonProxy -1.141.3 SingletonProxy: saving and restoring --------------------------------------------- +SingletonProxy: saving and restoring +------------------------------------ object Reconstruct the object stored in the proxy and answer it; the @@ -8028,8 +7795,8 @@  File: gst-base.info, Node: SmallInteger, Next: SortedCollection, Prev: SingletonProxy, Up: Base classes -1.142 SmallInteger -================== +SmallInteger +============ Defined in namespace Smalltalk Superclass: Integer @@ -8051,8 +7818,8 @@  File: gst-base.info, Node: SmallInteger class-getting limits, Next: SmallInteger class-testing, Up: SmallInteger -1.142.1 SmallInteger class: getting limits ------------------------------------------- +SmallInteger class: getting limits +---------------------------------- bits Answer the number of bits (excluding the sign) that can be @@ -8070,8 +7837,8 @@  File: gst-base.info, Node: SmallInteger class-testing, Next: SmallInteger-bit arithmetic, Prev: SmallInteger class-getting limits, Up: SmallInteger -1.142.2 SmallInteger class: testing ------------------------------------ +SmallInteger class: testing +--------------------------- isIdentity Answer whether x = y implies x == y for instances of the receiver @@ -8080,8 +7847,8 @@  File: gst-base.info, Node: SmallInteger-bit arithmetic, Next: SmallInteger-built ins, Prev: SmallInteger class-testing, Up: SmallInteger -1.142.3 SmallInteger: bit arithmetic ------------------------------------- +SmallInteger: bit arithmetic +---------------------------- highBit Return the index of the highest order 1 bit of the receiver @@ -8090,8 +7857,8 @@  File: gst-base.info, Node: SmallInteger-built ins, Next: SmallInteger-builtins, Prev: SmallInteger-bit arithmetic, Up: SmallInteger -1.142.4 SmallInteger: built ins -------------------------------- +SmallInteger: built ins +----------------------- * arg Multiply the receiver and arg and answer another Number @@ -8180,8 +7947,8 @@  File: gst-base.info, Node: SmallInteger-builtins, Next: SmallInteger-coercion methods, Prev: SmallInteger-built ins, Up: SmallInteger -1.142.5 SmallInteger: builtins ------------------------------- +SmallInteger: builtins +---------------------- at: anIndex Answer the index-th indexed instance variable of the receiver. @@ -8206,8 +7973,8 @@  File: gst-base.info, Node: SmallInteger-coercion methods, Next: SmallInteger-testing functionality, Prev: SmallInteger-builtins, Up: SmallInteger -1.142.6 SmallInteger: coercion methods --------------------------------------- +SmallInteger: coercion methods +------------------------------ generality Return the receiver's generality @@ -8222,8 +7989,8 @@  File: gst-base.info, Node: SmallInteger-testing functionality, Prev: SmallInteger-coercion methods, Up: SmallInteger -1.142.7 SmallInteger: testing functionality -------------------------------------------- +SmallInteger: testing functionality +----------------------------------- isSmallInteger Answer `true'. @@ -8232,8 +7999,8 @@  File: gst-base.info, Node: SortedCollection, Next: Stream, Prev: SmallInteger, Up: Base classes -1.143 SortedCollection -====================== +SortedCollection +================ Defined in namespace Smalltalk Superclass: OrderedCollection @@ -8261,8 +8028,8 @@  File: gst-base.info, Node: SortedCollection class-hacking, Next: SortedCollection class-instance creation, Up: SortedCollection -1.143.1 SortedCollection class: hacking ---------------------------------------- +SortedCollection class: hacking +------------------------------- defaultSortBlock Answer a default sort block for the receiver. @@ -8271,8 +8038,8 @@  File: gst-base.info, Node: SortedCollection class-instance creation, Next: SortedCollection-basic, Prev: SortedCollection class-hacking, Up: SortedCollection -1.143.2 SortedCollection class: instance creation -------------------------------------------------- +SortedCollection class: instance creation +----------------------------------------- new Answer a new collection with a default size and sort block @@ -8289,8 +8056,8 @@  File: gst-base.info, Node: SortedCollection-basic, Next: SortedCollection-copying, Prev: SortedCollection class-instance creation, Up: SortedCollection -1.143.3 SortedCollection: basic -------------------------------- +SortedCollection: basic +----------------------- last Answer the last item of the receiver @@ -8310,8 +8077,8 @@  File: gst-base.info, Node: SortedCollection-copying, Next: SortedCollection-disabled, Prev: SortedCollection-basic, Up: SortedCollection -1.143.4 SortedCollection: copying ---------------------------------- +SortedCollection: copying +------------------------- copyEmpty: newSize Answer an empty copy of the receiver, with the same sort block as @@ -8321,8 +8088,8 @@  File: gst-base.info, Node: SortedCollection-disabled, Next: SortedCollection-enumerating, Prev: SortedCollection-copying, Up: SortedCollection -1.143.5 SortedCollection: disabled ----------------------------------- +SortedCollection: disabled +-------------------------- add: anObject afterIndex: i This method should not be called for instances of this class. @@ -8349,8 +8116,8 @@  File: gst-base.info, Node: SortedCollection-enumerating, Next: SortedCollection-saving and loading, Prev: SortedCollection-disabled, Up: SortedCollection -1.143.6 SortedCollection: enumerating -------------------------------------- +SortedCollection: enumerating +----------------------------- beConsistent Prepare the receiver to be walked through with #do: or another @@ -8360,8 +8127,8 @@  File: gst-base.info, Node: SortedCollection-saving and loading, Next: SortedCollection-searching, Prev: SortedCollection-enumerating, Up: SortedCollection -1.143.7 SortedCollection: saving and loading --------------------------------------------- +SortedCollection: saving and loading +------------------------------------ postLoad Restore the default sortBlock if it is nil @@ -8373,8 +8140,8 @@  File: gst-base.info, Node: SortedCollection-searching, Prev: SortedCollection-saving and loading, Up: SortedCollection -1.143.8 SortedCollection: searching ------------------------------------ +SortedCollection: searching +--------------------------- includes: anObject Private - Answer whether the receiver includes an item which is @@ -8392,8 +8159,8 @@  File: gst-base.info, Node: Stream, Next: String, Prev: SortedCollection, Up: Base classes -1.144 Stream -============ +Stream +====== Defined in namespace Smalltalk Superclass: Object @@ -8421,8 +8188,8 @@  File: gst-base.info, Node: Stream-accessing-reading, Next: Stream-accessing-writing, Up: Stream -1.144.1 Stream: accessing-reading ---------------------------------- +Stream: accessing-reading +------------------------- contents Answer the whole contents of the receiver, from the next object to @@ -8474,8 +8241,8 @@  File: gst-base.info, Node: Stream-accessing-writing, Next: Stream-basic, Prev: Stream-accessing-reading, Up: Stream -1.144.2 Stream: accessing-writing ---------------------------------- +Stream: accessing-writing +------------------------- next: anInteger put: anObject Write anInteger copies of anObject to the receiver @@ -8494,8 +8261,8 @@  File: gst-base.info, Node: Stream-basic, Next: Stream-character writing, Prev: Stream-accessing-writing, Up: Stream -1.144.3 Stream: basic ---------------------- +Stream: basic +------------- species Answer `Array'. @@ -8504,8 +8271,8 @@  File: gst-base.info, Node: Stream-character writing, Next: Stream-enumerating, Prev: Stream-basic, Up: Stream -1.144.4 Stream: character writing ---------------------------------- +Stream: character writing +------------------------- cr Store a cr on the receiver @@ -8535,8 +8302,8 @@  File: gst-base.info, Node: Stream-enumerating, Next: Stream-filing out, Prev: Stream-character writing, Up: Stream -1.144.5 Stream: enumerating ---------------------------- +Stream: enumerating +------------------- do: aBlock Evaluate aBlock once for every object in the receiver @@ -8545,8 +8312,8 @@  File: gst-base.info, Node: Stream-filing out, Next: Stream-positioning, Prev: Stream-enumerating, Up: Stream -1.144.6 Stream: filing out --------------------------- +Stream: filing out +------------------ fileOut: aClass File out aClass on the receiver. If aClass is not a metaclass, @@ -8557,8 +8324,8 @@  File: gst-base.info, Node: Stream-positioning, Next: Stream-printing, Prev: Stream-filing out, Up: Stream -1.144.7 Stream: positioning ---------------------------- +Stream: positioning +------------------- skip: anInteger Move the position forwards by anInteger places @@ -8578,8 +8345,8 @@  File: gst-base.info, Node: Stream-printing, Next: Stream-providing consistent protocols, Prev: Stream-positioning, Up: Stream -1.144.8 Stream: printing ------------------------- +Stream: printing +---------------- << anObject This method is a short-cut for #display:; it prints anObject on the @@ -8600,8 +8367,8 @@  File: gst-base.info, Node: Stream-providing consistent protocols, Next: Stream-storing, Prev: Stream-printing, Up: Stream -1.144.9 Stream: providing consistent protocols ----------------------------------------------- +Stream: providing consistent protocols +-------------------------------------- close Do nothing. This is provided for consistency with file streams @@ -8613,8 +8380,8 @@  File: gst-base.info, Node: Stream-storing, Next: Stream-testing, Prev: Stream-providing consistent protocols, Up: Stream -1.144.10 Stream: storing ------------------------- +Stream: storing +--------------- store: anObject Print Smalltalk code compiling to anObject on the receiver, by @@ -8625,8 +8392,8 @@  File: gst-base.info, Node: Stream-testing, Prev: Stream-storing, Up: Stream -1.144.11 Stream: testing ------------------------- +Stream: testing +--------------- atEnd Answer whether the stream has got to an end @@ -8639,8 +8406,8 @@  File: gst-base.info, Node: String, Next: Symbol, Prev: Stream, Up: Base classes -1.145 String -============ +String +====== Defined in namespace Smalltalk Superclass: CharacterArray @@ -8661,8 +8428,8 @@  File: gst-base.info, Node: String class-basic, Next: String class-instance creation, Up: String -1.145.1 String class: basic ---------------------------- +String class: basic +------------------- , aString Answer a new instance of an ArrayedCollection containing all the @@ -8673,8 +8440,8 @@  File: gst-base.info, Node: String class-instance creation, Next: String-built ins, Prev: String class-basic, Up: String -1.145.2 String class: instance creation ---------------------------------------- +String class: instance creation +------------------------------- fromCData: aCObject size: anInteger Answer a String containing anInteger bytes starting at the @@ -8684,8 +8451,8 @@  File: gst-base.info, Node: String-built ins, Next: String-converting, Prev: String class-instance creation, Up: String -1.145.3 String: built ins -------------------------- +String: built ins +----------------- asCData: aCType Convert the receiver to a CObject with the given type @@ -8739,8 +8506,8 @@  File: gst-base.info, Node: String-converting, Next: String-storing, Prev: String-built ins, Up: String -1.145.4 String: converting --------------------------- +String: converting +------------------ asByteArray Return the receiver, converted to a ByteArray of ASCII values @@ -8755,8 +8522,8 @@  File: gst-base.info, Node: String-storing, Next: String-testing functionality, Prev: String-converting, Up: String -1.145.5 String: storing ------------------------ +String: storing +--------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -8765,8 +8532,8 @@  File: gst-base.info, Node: String-testing functionality, Next: String-useful functionality, Prev: String-storing, Up: String -1.145.6 String: testing functionality -------------------------------------- +String: testing functionality +----------------------------- isString Answer `true'. @@ -8775,8 +8542,8 @@  File: gst-base.info, Node: String-useful functionality, Prev: String-testing functionality, Up: String -1.145.7 String: useful functionality ------------------------------------- +String: useful functionality +---------------------------- linesDo: aBlock Send 'aBlock' a substring of the receiver for each newline @@ -8786,8 +8553,8 @@  File: gst-base.info, Node: Symbol, Next: SymLink, Prev: String, Up: Base classes -1.146 Symbol -============ +Symbol +====== Defined in namespace Smalltalk Superclass: String @@ -8813,8 +8580,8 @@  File: gst-base.info, Node: Symbol class-built ins, Next: Symbol class-instance creation, Up: Symbol -1.146.1 Symbol class: built ins -------------------------------- +Symbol class: built ins +----------------------- intern: aString Private - Same as 'aString asSymbol' @@ -8823,8 +8590,8 @@  File: gst-base.info, Node: Symbol class-instance creation, Next: Symbol class-symbol table, Prev: Symbol class-built ins, Up: Symbol -1.146.2 Symbol class: instance creation ---------------------------------------- +Symbol class: instance creation +------------------------------- internCharacter: aCharacter Answer the one-character symbol associated to the given character. @@ -8858,8 +8625,8 @@  File: gst-base.info, Node: Symbol class-symbol table, Next: Symbol-basic, Prev: Symbol class-instance creation, Up: Symbol -1.146.3 Symbol class: symbol table ----------------------------------- +Symbol class: symbol table +-------------------------- hasInterned: aString ifTrue: aBlock If aString has not been interned yet, answer false. Else, pass the @@ -8891,8 +8658,8 @@  File: gst-base.info, Node: Symbol-basic, Next: Symbol-built ins, Prev: Symbol class-symbol table, Up: Symbol -1.146.4 Symbol: basic ---------------------- +Symbol: basic +------------- deepCopy Returns a deep copy of the receiver. As Symbols are identity @@ -8916,8 +8683,8 @@  File: gst-base.info, Node: Symbol-built ins, Next: Symbol-converting, Prev: Symbol-basic, Up: Symbol -1.146.5 Symbol: built ins -------------------------- +Symbol: built ins +----------------- = aSymbol Answer whether the receiver and aSymbol are the same object @@ -8930,8 +8697,8 @@  File: gst-base.info, Node: Symbol-converting, Next: Symbol-misc, Prev: Symbol-built ins, Up: Symbol -1.146.6 Symbol: converting --------------------------- +Symbol: converting +------------------ asString Answer a String with the same characters as the receiver @@ -8944,8 +8711,8 @@  File: gst-base.info, Node: Symbol-misc, Next: Symbol-storing, Prev: Symbol-converting, Up: Symbol -1.146.7 Symbol: misc --------------------- +Symbol: misc +------------ species Answer `String'. @@ -8954,8 +8721,8 @@  File: gst-base.info, Node: Symbol-storing, Next: Symbol-testing, Prev: Symbol-misc, Up: Symbol -1.146.8 Symbol: storing ------------------------ +Symbol: storing +--------------- displayOn: aStream Print a represention of the receiver on aStream. For most objects @@ -8975,8 +8742,8 @@  File: gst-base.info, Node: Symbol-testing, Next: Symbol-testing functionality, Prev: Symbol-storing, Up: Symbol -1.146.9 Symbol: testing ------------------------ +Symbol: testing +--------------- isSimpleSymbol Answer whether the receiver must be represented in quoted-string @@ -8986,8 +8753,8 @@  File: gst-base.info, Node: Symbol-testing functionality, Prev: Symbol-testing, Up: Symbol -1.146.10 Symbol: testing functionality --------------------------------------- +Symbol: testing functionality +----------------------------- isString Answer `false'. @@ -8999,8 +8766,8 @@  File: gst-base.info, Node: SymLink, Next: SystemDictionary, Prev: Symbol, Up: Base classes -1.147 SymLink -============= +SymLink +======= Defined in namespace Smalltalk Superclass: Link @@ -9019,8 +8786,8 @@  File: gst-base.info, Node: SymLink class-instance creation, Next: SymLink-accessing, Up: SymLink -1.147.1 SymLink class: instance creation ----------------------------------------- +SymLink class: instance creation +-------------------------------- symbol: aSymbol nextLink: aSymLink Answer a new SymLink, which refers to aSymbol and points to @@ -9030,8 +8797,8 @@  File: gst-base.info, Node: SymLink-accessing, Next: SymLink-iteration, Prev: SymLink class-instance creation, Up: SymLink -1.147.2 SymLink: accessing --------------------------- +SymLink: accessing +------------------ symbol Answer the Symbol that the receiver refers to in the symbol table. @@ -9043,8 +8810,8 @@  File: gst-base.info, Node: SymLink-iteration, Next: SymLink-printing, Prev: SymLink-accessing, Up: SymLink -1.147.3 SymLink: iteration --------------------------- +SymLink: iteration +------------------ do: aBlock Evaluate aBlock for each symbol in the list @@ -9053,8 +8820,8 @@  File: gst-base.info, Node: SymLink-printing, Prev: SymLink-iteration, Up: SymLink -1.147.4 SymLink: printing -------------------------- +SymLink: printing +----------------- printOn: aStream Print a representation of the receiver on aStream. @@ -9063,8 +8830,8 @@  File: gst-base.info, Node: SystemDictionary, Next: SystemExceptions.AlreadyDefined, Prev: SymLink, Up: Base classes -1.148 SystemDictionary -====================== +SystemDictionary +================ Defined in namespace Smalltalk Superclass: RootNamespace @@ -9087,8 +8854,8 @@  File: gst-base.info, Node: SystemDictionary-basic, Next: SystemDictionary-builtins, Up: SystemDictionary -1.148.1 SystemDictionary: basic -------------------------------- +SystemDictionary: basic +----------------------- halt Interrupt interpreter @@ -9101,8 +8868,8 @@  File: gst-base.info, Node: SystemDictionary-builtins, Next: SystemDictionary-C functions, Prev: SystemDictionary-basic, Up: SystemDictionary -1.148.2 SystemDictionary: builtins ----------------------------------- +SystemDictionary: builtins +-------------------------- basicBacktrace Prints the method invocation stack backtrace, as an aid to @@ -9146,8 +8913,8 @@  File: gst-base.info, Node: SystemDictionary-C functions, Next: SystemDictionary-miscellaneous, Prev: SystemDictionary-builtins, Up: SystemDictionary -1.148.3 SystemDictionary: C functions -------------------------------------- +SystemDictionary: C functions +----------------------------- getArgc C call-out to getArgc. Do not modify! @@ -9168,8 +8935,8 @@  File: gst-base.info, Node: SystemDictionary-miscellaneous, Next: SystemDictionary-printing, Prev: SystemDictionary-C functions, Up: SystemDictionary -1.148.4 SystemDictionary: miscellaneous ---------------------------------------- +SystemDictionary: miscellaneous +------------------------------- arguments Return the command line arguments after the -a switch @@ -9181,8 +8948,8 @@  File: gst-base.info, Node: SystemDictionary-printing, Next: SystemDictionary-special accessing, Prev: SystemDictionary-miscellaneous, Up: SystemDictionary -1.148.5 SystemDictionary: printing ----------------------------------- +SystemDictionary: printing +-------------------------- nameIn: aNamespace Answer `'Smalltalk". @@ -9197,8 +8964,8 @@  File: gst-base.info, Node: SystemDictionary-special accessing, Next: SystemDictionary-testing, Prev: SystemDictionary-printing, Up: SystemDictionary -1.148.6 SystemDictionary: special accessing -------------------------------------------- +SystemDictionary: special accessing +----------------------------------- addFeature: aFeature Add the aFeature feature to the Features set @@ -9217,8 +8984,8 @@  File: gst-base.info, Node: SystemDictionary-testing, Prev: SystemDictionary-special accessing, Up: SystemDictionary -1.148.7 SystemDictionary: testing ---------------------------------- +SystemDictionary: testing +------------------------- isSmalltalk Answer `true'. @@ -9227,8 +8994,8 @@  File: gst-base.info, Node: SystemExceptions.AlreadyDefined, Next: SystemExceptions.ArgumentOutOfRange, Prev: SystemDictionary, Up: Base classes -1.149 SystemExceptions.AlreadyDefined -===================================== +SystemExceptions.AlreadyDefined +=============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9243,8 +9010,8 @@  File: gst-base.info, Node: SystemExceptions.AlreadyDefined-accessing, Up: SystemExceptions.AlreadyDefined -1.149.1 SystemExceptions.AlreadyDefined: accessing --------------------------------------------------- +SystemExceptions.AlreadyDefined: accessing +------------------------------------------ description Answer a description for the error @@ -9253,8 +9020,8 @@  File: gst-base.info, Node: SystemExceptions.ArgumentOutOfRange, Next: SystemExceptions.BadReturn, Prev: SystemExceptions.AlreadyDefined, Up: Base classes -1.150 SystemExceptions.ArgumentOutOfRange -========================================= +SystemExceptions.ArgumentOutOfRange +=================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9270,8 +9037,8 @@  File: gst-base.info, Node: SystemExceptions.ArgumentOutOfRange class-signaling, Next: SystemExceptions.ArgumentOutOfRange-accessing, Up: SystemExceptions.ArgumentOutOfRange -1.150.1 SystemExceptions.ArgumentOutOfRange class: signaling ------------------------------------------------------------- +SystemExceptions.ArgumentOutOfRange class: signaling +---------------------------------------------------- signalOn: value mustBeBetween: low and: high Raise the exception. The given value was not between low and high. @@ -9280,8 +9047,8 @@  File: gst-base.info, Node: SystemExceptions.ArgumentOutOfRange-accessing, Prev: SystemExceptions.ArgumentOutOfRange class-signaling, Up: SystemExceptions.ArgumentOutOfRange -1.150.2 SystemExceptions.ArgumentOutOfRange: accessing ------------------------------------------------------- +SystemExceptions.ArgumentOutOfRange: accessing +---------------------------------------------- description Answer a textual description of the exception. @@ -9302,8 +9069,8 @@  File: gst-base.info, Node: SystemExceptions.BadReturn, Next: SystemExceptions.CInterfaceError, Prev: SystemExceptions.ArgumentOutOfRange, Up: Base classes -1.151 SystemExceptions.BadReturn -================================ +SystemExceptions.BadReturn +========================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9318,8 +9085,8 @@  File: gst-base.info, Node: SystemExceptions.BadReturn-accessing, Up: SystemExceptions.BadReturn -1.151.1 SystemExceptions.BadReturn: accessing ---------------------------------------------- +SystemExceptions.BadReturn: accessing +------------------------------------- description Answer a textual description of the exception. @@ -9328,8 +9095,8 @@  File: gst-base.info, Node: SystemExceptions.CInterfaceError, Next: SystemExceptions.EmptyCollection, Prev: SystemExceptions.BadReturn, Up: Base classes -1.152 SystemExceptions.CInterfaceError -====================================== +SystemExceptions.CInterfaceError +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.PrimitiveFailed @@ -9344,8 +9111,8 @@  File: gst-base.info, Node: SystemExceptions.CInterfaceError-accessing, Up: SystemExceptions.CInterfaceError -1.152.1 SystemExceptions.CInterfaceError: accessing ---------------------------------------------------- +SystemExceptions.CInterfaceError: accessing +------------------------------------------- description Answer a textual description of the exception. @@ -9354,8 +9121,8 @@  File: gst-base.info, Node: SystemExceptions.EmptyCollection, Next: SystemExceptions.EndOfStream, Prev: SystemExceptions.CInterfaceError, Up: Base classes -1.153 SystemExceptions.EmptyCollection -====================================== +SystemExceptions.EmptyCollection +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9369,8 +9136,8 @@  File: gst-base.info, Node: SystemExceptions.EmptyCollection-accessing, Up: SystemExceptions.EmptyCollection -1.153.1 SystemExceptions.EmptyCollection: accessing ---------------------------------------------------- +SystemExceptions.EmptyCollection: accessing +------------------------------------------- description Answer a textual description of the exception. @@ -9379,8 +9146,8 @@  File: gst-base.info, Node: SystemExceptions.EndOfStream, Next: SystemExceptions.FileError, Prev: SystemExceptions.EmptyCollection, Up: Base classes -1.154 SystemExceptions.EndOfStream -================================== +SystemExceptions.EndOfStream +============================ Defined in namespace Smalltalk.SystemExceptions Superclass: Notification @@ -9395,8 +9162,8 @@  File: gst-base.info, Node: SystemExceptions.EndOfStream class-signaling, Next: SystemExceptions.EndOfStream-accessing, Up: SystemExceptions.EndOfStream -1.154.1 SystemExceptions.EndOfStream class: signaling ------------------------------------------------------ +SystemExceptions.EndOfStream class: signaling +--------------------------------------------- signalOn: stream Answer an exception reporting the parameter has reached its end. @@ -9405,8 +9172,8 @@  File: gst-base.info, Node: SystemExceptions.EndOfStream-accessing, Prev: SystemExceptions.EndOfStream class-signaling, Up: SystemExceptions.EndOfStream -1.154.2 SystemExceptions.EndOfStream: accessing ------------------------------------------------ +SystemExceptions.EndOfStream: accessing +--------------------------------------- description Answer a textual description of the exception. @@ -9421,8 +9188,8 @@  File: gst-base.info, Node: SystemExceptions.FileError, Next: SystemExceptions.IndexOutOfRange, Prev: SystemExceptions.EndOfStream, Up: Base classes -1.155 SystemExceptions.FileError -================================ +SystemExceptions.FileError +========================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.PrimitiveFailed @@ -9437,8 +9204,8 @@  File: gst-base.info, Node: SystemExceptions.FileError-accessing, Up: SystemExceptions.FileError -1.155.1 SystemExceptions.FileError: accessing ---------------------------------------------- +SystemExceptions.FileError: accessing +------------------------------------- description Answer a textual description of the exception. @@ -9447,8 +9214,8 @@  File: gst-base.info, Node: SystemExceptions.IndexOutOfRange, Next: SystemExceptions.InvalidArgument, Prev: SystemExceptions.FileError, Up: Base classes -1.156 SystemExceptions.IndexOutOfRange -====================================== +SystemExceptions.IndexOutOfRange +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.ArgumentOutOfRange @@ -9464,8 +9231,8 @@  File: gst-base.info, Node: SystemExceptions.IndexOutOfRange class-signaling, Next: SystemExceptions.IndexOutOfRange-accessing, Up: SystemExceptions.IndexOutOfRange -1.156.1 SystemExceptions.IndexOutOfRange class: signaling ---------------------------------------------------------- +SystemExceptions.IndexOutOfRange class: signaling +------------------------------------------------- signalOn: aCollection withIndex: value The given index was out of range in aCollection. @@ -9474,8 +9241,8 @@  File: gst-base.info, Node: SystemExceptions.IndexOutOfRange-accessing, Prev: SystemExceptions.IndexOutOfRange class-signaling, Up: SystemExceptions.IndexOutOfRange -1.156.2 SystemExceptions.IndexOutOfRange: accessing ---------------------------------------------------- +SystemExceptions.IndexOutOfRange: accessing +------------------------------------------- collection Answer the collection that triggered the error @@ -9493,8 +9260,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidArgument, Next: SystemExceptions.InvalidProcessState, Prev: SystemExceptions.IndexOutOfRange, Up: Base classes -1.157 SystemExceptions.InvalidArgument -====================================== +SystemExceptions.InvalidArgument +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9508,8 +9275,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidArgument-accessing, Up: SystemExceptions.InvalidArgument -1.157.1 SystemExceptions.InvalidArgument: accessing ---------------------------------------------------- +SystemExceptions.InvalidArgument: accessing +------------------------------------------- messageText Answer an exception's message text. @@ -9518,8 +9285,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidProcessState, Next: SystemExceptions.InvalidSize, Prev: SystemExceptions.InvalidArgument, Up: Base classes -1.158 SystemExceptions.InvalidProcessState -========================================== +SystemExceptions.InvalidProcessState +==================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9534,8 +9301,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidProcessState-accessing, Up: SystemExceptions.InvalidProcessState -1.158.1 SystemExceptions.InvalidProcessState: accessing -------------------------------------------------------- +SystemExceptions.InvalidProcessState: accessing +----------------------------------------------- description Answer a textual description of the exception. @@ -9544,8 +9311,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidSize, Next: SystemExceptions.InvalidValue, Prev: SystemExceptions.InvalidProcessState, Up: Base classes -1.159 SystemExceptions.InvalidSize -================================== +SystemExceptions.InvalidSize +============================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9559,8 +9326,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidSize-accessing, Up: SystemExceptions.InvalidSize -1.159.1 SystemExceptions.InvalidSize: accessing ------------------------------------------------ +SystemExceptions.InvalidSize: accessing +--------------------------------------- description Answer a textual description of the exception. @@ -9569,8 +9336,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidValue, Next: SystemExceptions.MustBeBoolean, Prev: SystemExceptions.InvalidSize, Up: Base classes -1.160 SystemExceptions.InvalidValue -=================================== +SystemExceptions.InvalidValue +============================= Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9585,8 +9352,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidValue class-signaling, Next: SystemExceptions.InvalidValue-accessing, Up: SystemExceptions.InvalidValue -1.160.1 SystemExceptions.InvalidValue class: signaling ------------------------------------------------------- +SystemExceptions.InvalidValue class: signaling +---------------------------------------------- signalOn: value Answer an exception reporting the parameter as invalid. @@ -9599,8 +9366,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidValue-accessing, Prev: SystemExceptions.InvalidValue class-signaling, Up: SystemExceptions.InvalidValue -1.160.2 SystemExceptions.InvalidValue: accessing ------------------------------------------------- +SystemExceptions.InvalidValue: accessing +---------------------------------------- description Answer a textual description of the exception. @@ -9618,8 +9385,8 @@  File: gst-base.info, Node: SystemExceptions.MustBeBoolean, Next: SystemExceptions.MutationError, Prev: SystemExceptions.InvalidValue, Up: Base classes -1.161 SystemExceptions.MustBeBoolean -==================================== +SystemExceptions.MustBeBoolean +============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9631,8 +9398,8 @@  File: gst-base.info, Node: SystemExceptions.MutationError, Next: SystemExceptions.NoRunnableProcess, Prev: SystemExceptions.MustBeBoolean, Up: Base classes -1.162 SystemExceptions.MutationError -==================================== +SystemExceptions.MutationError +============================== Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9646,8 +9413,8 @@  File: gst-base.info, Node: SystemExceptions.MutationError-accessing, Up: SystemExceptions.MutationError -1.162.1 SystemExceptions.MutationError: accessing -------------------------------------------------- +SystemExceptions.MutationError: accessing +----------------------------------------- description Answer a textual description of the exception. @@ -9656,8 +9423,8 @@  File: gst-base.info, Node: SystemExceptions.NoRunnableProcess, Next: SystemExceptions.NotFound, Prev: SystemExceptions.MutationError, Up: Base classes -1.163 SystemExceptions.NoRunnableProcess -======================================== +SystemExceptions.NoRunnableProcess +================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9671,8 +9438,8 @@  File: gst-base.info, Node: SystemExceptions.NoRunnableProcess-accessing, Up: SystemExceptions.NoRunnableProcess -1.163.1 SystemExceptions.NoRunnableProcess: accessing ------------------------------------------------------ +SystemExceptions.NoRunnableProcess: accessing +--------------------------------------------- description Answer a textual description of the exception. @@ -9681,8 +9448,8 @@  File: gst-base.info, Node: SystemExceptions.NotFound, Next: SystemExceptions.NotImplemented, Prev: SystemExceptions.NoRunnableProcess, Up: Base classes -1.164 SystemExceptions.NotFound -=============================== +SystemExceptions.NotFound +========================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9697,8 +9464,8 @@  File: gst-base.info, Node: SystemExceptions.NotFound class-accessing, Next: SystemExceptions.NotFound-accessing, Up: SystemExceptions.NotFound -1.164.1 SystemExceptions.NotFound class: accessing --------------------------------------------------- +SystemExceptions.NotFound class: accessing +------------------------------------------ signalOn: value what: aString Raise an exception; aString specifies what was not found (a key, @@ -9708,8 +9475,8 @@  File: gst-base.info, Node: SystemExceptions.NotFound-accessing, Prev: SystemExceptions.NotFound class-accessing, Up: SystemExceptions.NotFound -1.164.2 SystemExceptions.NotFound: accessing --------------------------------------------- +SystemExceptions.NotFound: accessing +------------------------------------ description Answer a textual description of the exception. @@ -9718,8 +9485,8 @@  File: gst-base.info, Node: SystemExceptions.NotImplemented, Next: SystemExceptions.NotIndexable, Prev: SystemExceptions.NotFound, Up: Base classes -1.165 SystemExceptions.NotImplemented -===================================== +SystemExceptions.NotImplemented +=============================== Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9733,8 +9500,8 @@  File: gst-base.info, Node: SystemExceptions.NotImplemented-accessing, Up: SystemExceptions.NotImplemented -1.165.1 SystemExceptions.NotImplemented: accessing --------------------------------------------------- +SystemExceptions.NotImplemented: accessing +------------------------------------------ description Answer a textual description of the exception. @@ -9743,8 +9510,8 @@  File: gst-base.info, Node: SystemExceptions.NotIndexable, Next: SystemExceptions.NotYetImplemented, Prev: SystemExceptions.NotImplemented, Up: Base classes -1.166 SystemExceptions.NotIndexable -=================================== +SystemExceptions.NotIndexable +============================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9758,8 +9525,8 @@  File: gst-base.info, Node: SystemExceptions.NotIndexable-accessing, Up: SystemExceptions.NotIndexable -1.166.1 SystemExceptions.NotIndexable: accessing ------------------------------------------------- +SystemExceptions.NotIndexable: accessing +---------------------------------------- description Answer a textual description of the exception. @@ -9768,8 +9535,8 @@  File: gst-base.info, Node: SystemExceptions.NotYetImplemented, Next: SystemExceptions.PrimitiveFailed, Prev: SystemExceptions.NotIndexable, Up: Base classes -1.167 SystemExceptions.NotYetImplemented -======================================== +SystemExceptions.NotYetImplemented +================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.NotImplemented @@ -9784,8 +9551,8 @@  File: gst-base.info, Node: SystemExceptions.NotYetImplemented-accessing, Up: SystemExceptions.NotYetImplemented -1.167.1 SystemExceptions.NotYetImplemented: accessing ------------------------------------------------------ +SystemExceptions.NotYetImplemented: accessing +--------------------------------------------- description Answer a textual description of the exception. @@ -9794,8 +9561,8 @@  File: gst-base.info, Node: SystemExceptions.PrimitiveFailed, Next: SystemExceptions.ProcessBeingTerminated, Prev: SystemExceptions.NotYetImplemented, Up: Base classes -1.168 SystemExceptions.PrimitiveFailed -====================================== +SystemExceptions.PrimitiveFailed +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9809,8 +9576,8 @@  File: gst-base.info, Node: SystemExceptions.PrimitiveFailed-accessing, Up: SystemExceptions.PrimitiveFailed -1.168.1 SystemExceptions.PrimitiveFailed: accessing ---------------------------------------------------- +SystemExceptions.PrimitiveFailed: accessing +------------------------------------------- description Answer a textual description of the exception. @@ -9819,8 +9586,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessBeingTerminated, Next: SystemExceptions.ProcessTerminated, Prev: SystemExceptions.PrimitiveFailed, Up: Base classes -1.169 SystemExceptions.ProcessBeingTerminated -============================================= +SystemExceptions.ProcessBeingTerminated +======================================= Defined in namespace Smalltalk.SystemExceptions Superclass: Notification @@ -9833,8 +9600,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessBeingTerminated-accessing, Up: SystemExceptions.ProcessBeingTerminated -1.169.1 SystemExceptions.ProcessBeingTerminated: accessing ----------------------------------------------------------- +SystemExceptions.ProcessBeingTerminated: accessing +-------------------------------------------------- description Answer a textual description of the exception. @@ -9843,8 +9610,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessTerminated, Next: SystemExceptions.ReadOnlyObject, Prev: SystemExceptions.ProcessBeingTerminated, Up: Base classes -1.170 SystemExceptions.ProcessTerminated -======================================== +SystemExceptions.ProcessTerminated +================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9859,8 +9626,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessTerminated-accessing, Up: SystemExceptions.ProcessTerminated -1.170.1 SystemExceptions.ProcessTerminated: accessing ------------------------------------------------------ +SystemExceptions.ProcessTerminated: accessing +--------------------------------------------- description Answer a textual description of the exception. @@ -9869,8 +9636,8 @@  File: gst-base.info, Node: SystemExceptions.ReadOnlyObject, Next: SystemExceptions.ShouldNotImplement, Prev: SystemExceptions.ProcessTerminated, Up: Base classes -1.171 SystemExceptions.ReadOnlyObject -===================================== +SystemExceptions.ReadOnlyObject +=============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9884,8 +9651,8 @@  File: gst-base.info, Node: SystemExceptions.ReadOnlyObject-accessing, Up: SystemExceptions.ReadOnlyObject -1.171.1 SystemExceptions.ReadOnlyObject: accessing --------------------------------------------------- +SystemExceptions.ReadOnlyObject: accessing +------------------------------------------ description Answer a textual description of the exception. @@ -9894,8 +9661,8 @@  File: gst-base.info, Node: SystemExceptions.ShouldNotImplement, Next: SystemExceptions.SubclassResponsibility, Prev: SystemExceptions.ReadOnlyObject, Up: Base classes -1.172 SystemExceptions.ShouldNotImplement -========================================= +SystemExceptions.ShouldNotImplement +=================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.NotImplemented @@ -9910,8 +9677,8 @@  File: gst-base.info, Node: SystemExceptions.ShouldNotImplement-accessing, Up: SystemExceptions.ShouldNotImplement -1.172.1 SystemExceptions.ShouldNotImplement: accessing ------------------------------------------------------- +SystemExceptions.ShouldNotImplement: accessing +---------------------------------------------- description Answer a textual description of the exception. @@ -9920,8 +9687,8 @@  File: gst-base.info, Node: SystemExceptions.SubclassResponsibility, Next: SystemExceptions.UserInterrupt, Prev: SystemExceptions.ShouldNotImplement, Up: Base classes -1.173 SystemExceptions.SubclassResponsibility -============================================= +SystemExceptions.SubclassResponsibility +======================================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.ShouldNotImplement @@ -9936,8 +9703,8 @@  File: gst-base.info, Node: SystemExceptions.SubclassResponsibility-accessing, Up: SystemExceptions.SubclassResponsibility -1.173.1 SystemExceptions.SubclassResponsibility: accessing ----------------------------------------------------------- +SystemExceptions.SubclassResponsibility: accessing +-------------------------------------------------- description Answer a textual description of the exception. @@ -9946,8 +9713,8 @@  File: gst-base.info, Node: SystemExceptions.UserInterrupt, Next: SystemExceptions.VMError, Prev: SystemExceptions.SubclassResponsibility, Up: Base classes -1.174 SystemExceptions.UserInterrupt -==================================== +SystemExceptions.UserInterrupt +============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9961,8 +9728,8 @@  File: gst-base.info, Node: SystemExceptions.UserInterrupt-accessing, Up: SystemExceptions.UserInterrupt -1.174.1 SystemExceptions.UserInterrupt: accessing -------------------------------------------------- +SystemExceptions.UserInterrupt: accessing +----------------------------------------- description Answer a textual description of the exception. @@ -9971,8 +9738,8 @@  File: gst-base.info, Node: SystemExceptions.VMError, Next: SystemExceptions.WrongArgumentCount, Prev: SystemExceptions.UserInterrupt, Up: Base classes -1.175 SystemExceptions.VMError -============================== +SystemExceptions.VMError +======================== Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9986,8 +9753,8 @@  File: gst-base.info, Node: SystemExceptions.VMError-accessing, Up: SystemExceptions.VMError -1.175.1 SystemExceptions.VMError: accessing -------------------------------------------- +SystemExceptions.VMError: accessing +----------------------------------- description Answer a textual description of the exception. @@ -9996,8 +9763,8 @@  File: gst-base.info, Node: SystemExceptions.WrongArgumentCount, Next: SystemExceptions.WrongClass, Prev: SystemExceptions.VMError, Up: Base classes -1.176 SystemExceptions.WrongArgumentCount -========================================= +SystemExceptions.WrongArgumentCount +=================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.PrimitiveFailed @@ -10012,8 +9779,8 @@  File: gst-base.info, Node: SystemExceptions.WrongArgumentCount-accessing, Up: SystemExceptions.WrongArgumentCount -1.176.1 SystemExceptions.WrongArgumentCount: accessing ------------------------------------------------------- +SystemExceptions.WrongArgumentCount: accessing +---------------------------------------------- description Answer a textual description of the exception. @@ -10022,8 +9789,8 @@  File: gst-base.info, Node: SystemExceptions.WrongClass, Next: SystemExceptions.WrongMessageSent, Prev: SystemExceptions.WrongArgumentCount, Up: Base classes -1.177 SystemExceptions.WrongClass -================================= +SystemExceptions.WrongClass +=========================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -10040,8 +9807,8 @@  File: gst-base.info, Node: SystemExceptions.WrongClass class-signaling, Next: SystemExceptions.WrongClass-accessing, Up: SystemExceptions.WrongClass -1.177.1 SystemExceptions.WrongClass class: signaling ----------------------------------------------------- +SystemExceptions.WrongClass class: signaling +-------------------------------------------- signalOn: anObject mustBe: aClassOrArray Raise an exception. The given object should have been an instance @@ -10055,8 +9822,8 @@  File: gst-base.info, Node: SystemExceptions.WrongClass-accessing, Prev: SystemExceptions.WrongClass class-signaling, Up: SystemExceptions.WrongClass -1.177.2 SystemExceptions.WrongClass: accessing ----------------------------------------------- +SystemExceptions.WrongClass: accessing +-------------------------------------- description Answer a textual description of the exception. @@ -10078,8 +9845,8 @@  File: gst-base.info, Node: SystemExceptions.WrongMessageSent, Next: TextCollector, Prev: SystemExceptions.WrongClass, Up: Base classes -1.178 SystemExceptions.WrongMessageSent -======================================= +SystemExceptions.WrongMessageSent +================================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.ShouldNotImplement @@ -10093,3 +9860,422 @@ * SystemExceptions.WrongMessageSent class-signaling:: (class) * SystemExceptions.WrongMessageSent-accessing:: (instance) + +File: gst-base.info, Node: SystemExceptions.WrongMessageSent class-signaling, Next: SystemExceptions.WrongMessageSent-accessing, Up: SystemExceptions.WrongMessageSent + +SystemExceptions.WrongMessageSent class: signaling +-------------------------------------------------- + +signalOn: selector useInstead: aSymbol + Raise an exception, signaling which selector was sent and + suggesting a valid alternative. + + + +File: gst-base.info, Node: SystemExceptions.WrongMessageSent-accessing, Prev: SystemExceptions.WrongMessageSent class-signaling, Up: SystemExceptions.WrongMessageSent + +SystemExceptions.WrongMessageSent: accessing +-------------------------------------------- + +messageText + Answer an exception's message text. + +selector + Answer which selector was sent. + +selector: aSymbol + Set which selector was sent. + +suggestedSelector + Answer a valid alternative to the selector that was used. + +suggestedSelector: aSymbol + Set a valid alternative to the selector that was used. + + + +File: gst-base.info, Node: TextCollector, Next: Time, Prev: SystemExceptions.WrongMessageSent, Up: Base classes + +TextCollector +============= + +Defined in namespace Smalltalk +Superclass: Stream +Category: Streams + I am a thread-safe class that maps between standard Stream + protocol and a single message to another object (its selector is + pluggable and should roughly correspond to #nextPutAll:). I am, + in fact, the class that implements the global Transcript object. + +* Menu: + +* TextCollector class-accessing:: (class) +* TextCollector-accessing:: (instance) +* TextCollector-printing:: (instance) +* TextCollector-set up:: (instance) +* TextCollector-storing:: (instance) + + +File: gst-base.info, Node: TextCollector class-accessing, Next: TextCollector-accessing, Up: TextCollector + +TextCollector class: accessing +------------------------------ + +message: receiverToSelectorAssociation + Answer a new instance of the receiver, that uses the message + identified by anAssociation to perform write operations. + anAssociation's key is the receiver, while its value is the + selector. + +new + This method should not be called for instances of this class. + + + +File: gst-base.info, Node: TextCollector-accessing, Next: TextCollector-printing, Prev: TextCollector class-accessing, Up: TextCollector + +TextCollector: accessing +------------------------ + +cr + Emit a new-line (carriage return) to the Transcript + +endEntry + Emit two new-lines. This method is present for compatibility with + VisualWorks. + +next: anInteger put: anObject + Write anInteger copies of anObject to the Transcript + +nextPut: aCharacter + Emit aCharacter to the Transcript + +nextPutAll: aString + Write aString to the Transcript + +show: aString + Write aString to the Transcript + +showCr: aString + Write aString to the Transcript, followed by a new-line character + +showOnNewLine: aString + Write aString to the Transcript, preceded by a new-line character + + + +File: gst-base.info, Node: TextCollector-printing, Next: TextCollector-set up, Prev: TextCollector-accessing, Up: TextCollector + +TextCollector: printing +----------------------- + +print: anObject + Print anObject's representation to the Transcript + +printOn: aStream + Print a representation of the receiver onto aStream + + + +File: gst-base.info, Node: TextCollector-set up, Next: TextCollector-storing, Prev: TextCollector-printing, Up: TextCollector + +TextCollector: set up +--------------------- + +message + Answer an association representing the message to be sent to + perform write operations. The key is the receiver, the value is + the selector + +message: receiverToSelectorAssociation + Set the message to be sent to perform write operations to the one + represented by anAssociation. anAssociation's key is the + receiver, while its value is the selector + + + +File: gst-base.info, Node: TextCollector-storing, Prev: TextCollector-set up, Up: TextCollector + +TextCollector: storing +---------------------- + +store: anObject + Print Smalltalk code which evaluates to anObject on the Transcript + +storeOn: aStream + Print Smalltalk code which evaluates to the receiver onto aStream + + + +File: gst-base.info, Node: Time, Next: TokenStream, Prev: TextCollector, Up: Base classes + +Time +==== + +Defined in namespace Smalltalk +Superclass: Magnitude +Category: Language-Data types + My instances represent times of the day. I provide methods for + instance creation, methods that access components (hours, minutes, + and seconds) of a time value, and a block execution timing + facility. + +* Menu: + +* Time class-basic (UTC):: (class) +* Time class-builtins:: (class) +* Time class-clocks:: (class) +* Time class-initialization:: (class) +* Time class-instance creation:: (class) +* Time-accessing (ANSI for DateAndTimes):: (instance) +* Time-accessing (non ANSI & for Durations):: (instance) +* Time-arithmetic:: (instance) +* Time-comparing:: (instance) + + +File: gst-base.info, Node: Time class-basic (UTC), Next: Time class-builtins, Up: Time + +Time class: basic (UTC) +----------------------- + +utcNow + Answer a time representing the current time of day in Coordinated + Universal Time (UTC) + +utcSecondClock + Answer the number of seconds since the midnight of 1/1/1901 (unlike + #secondClock, the reference time is here expressed as UTC, that is + as Coordinated Universal Time). + + + +File: gst-base.info, Node: Time class-builtins, Next: Time class-clocks, Prev: Time class-basic (UTC), Up: Time + +Time class: builtins +-------------------- + +primMillisecondClock + Returns the number of milliseconds since midnight. + +primSecondClock + Returns the number of seconds to/from 1/1/2000. + +timezone + Answer a String associated with the current timezone (either + standard or daylight-saving) on this operating system. For + example, the answer could be `EST' to indicate Eastern Standard + Time; the answer can be empty and can't be assumed to be a + three-character code such as `EST'. + +timezoneBias + Specifies the current bias, in minutes, for local time translation + for the current time. The bias is the difference, in seconds, + between Coordinated Universal Time (UTC) and local time; a + positive bias indicates that the local timezone is to the east of + Greenwich (e.g. Europe, Asia), while a negative bias indicates + that it is to the west (e.g. America) + + + +File: gst-base.info, Node: Time class-clocks, Next: Time class-initialization, Prev: Time class-builtins, Up: Time + +Time class: clocks +------------------ + +millisecondClock + Answer the number of milliseconds since startup. + +millisecondClockValue + Answer the number of milliseconds since startup + +millisecondsPerDay + Answer the number of milliseconds in a day + +millisecondsToRun: timedBlock + Answer the number of milliseconds which timedBlock took to run + +secondClock + Answer the number of seconds since the midnight of 1/1/1901 + + + +File: gst-base.info, Node: Time class-initialization, Next: Time class-instance creation, Prev: Time class-clocks, Up: Time + +Time class: initialization +-------------------------- + +initialize + Initialize the Time class after the image has been bootstrapped + +update: aspect + Private - Initialize the receiver's instance variables + + + +File: gst-base.info, Node: Time class-instance creation, Next: Time-accessing (ANSI for DateAndTimes), Prev: Time class-initialization, Up: Time + +Time class: instance creation +----------------------------- + +fromSeconds: secondCount + Answer a Time representing secondCount seconds past midnight + +hours: h + Answer a Time that is the given number of hours past midnight + +hours: h minutes: m seconds: s + Answer a Time that is the given number of hours, minutes and + seconds past midnight + +minutes: m + Answer a Time that is the given number of minutes past midnight + +new + Answer a Time representing midnight + +now + Answer a time representing the current time of day + +readFrom: aStream + Parse an instance of the receiver (hours/minutes/seconds) from + aStream + +seconds: s + Answer a Time that is the given number of seconds past midnight + + + +File: gst-base.info, Node: Time-accessing (ANSI for DateAndTimes), Next: Time-accessing (non ANSI & for Durations), Prev: Time class-instance creation, Up: Time + +Time: accessing (ANSI for DateAndTimes) +--------------------------------------- + +hour + Answer the number of hours in the receiver + +hour12 + Answer the hour in a 12-hour clock + +hour24 + Answer the hour in a 24-hour clock + +minute + Answer the number of minutes in the receiver + +second + Answer the number of seconds in the receiver + + + +File: gst-base.info, Node: Time-accessing (non ANSI & for Durations), Next: Time-arithmetic, Prev: Time-accessing (ANSI for DateAndTimes), Up: Time + +Time: accessing (non ANSI & for Durations) +------------------------------------------ + +asSeconds + Answer `seconds'. + +hours + Answer the number of hours in the receiver + +minutes + Answer the number of minutes in the receiver + +seconds + Answer the number of seconds in the receiver + + + +File: gst-base.info, Node: Time-arithmetic, Next: Time-comparing, Prev: Time-accessing (non ANSI & for Durations), Up: Time + +Time: arithmetic +---------------- + +addTime: timeAmount + Answer a new Time that is timeAmount seconds after the receiver + +printOn: aStream + Print a representation of the receiver on aStream + +subtractTime: timeAmount + Answer a new Time that is timeAmount seconds before the receiver + + + +File: gst-base.info, Node: Time-comparing, Prev: Time-arithmetic, Up: Time + +Time: comparing +--------------- + +< aTime + Answer whether the receiver is less than aTime + += aTime + Answer whether the receiver is equal to aTime + +hash + Answer an hash value for the receiver + + + +File: gst-base.info, Node: TokenStream, Next: TrappableEvent, Prev: Time, Up: Base classes + +TokenStream +=========== + +Defined in namespace Smalltalk +Superclass: Stream +Category: Streams-Collections + I am not a typical part of the Smalltalk kernel class hierarchy. + I operate on a stream of characters and return distinct + whitespace-delimited groups of characters; I am used to parse the + parameters of class-creation methods. + + Basically, I parse off whitespace separated tokens as substrings + and return them (next). If the entire contents of the string are + requested, I return them as an Array containing the individual + strings. + +* Menu: + +* TokenStream class-instance creation:: (class) +* TokenStream-basic:: (instance) +* TokenStream-write methods:: (instance) + + +File: gst-base.info, Node: TokenStream class-instance creation, Next: TokenStream-basic, Up: TokenStream + +TokenStream class: instance creation +------------------------------------ + +on: aString + Answer a TokenStream working on aString + +onStream: aStream + Answer a TokenStream working on the collection on which aStream is + in turn streaming. + + + +File: gst-base.info, Node: TokenStream-basic, Next: TokenStream-write methods, Prev: TokenStream class-instance creation, Up: TokenStream + +TokenStream: basic +------------------ + +atEnd + Answer whether the input stream has no more tokens. + +next + Answer a new whitespace-separated token from the input stream + + + +File: gst-base.info, Node: TokenStream-write methods, Prev: TokenStream-basic, Up: TokenStream + +TokenStream: write methods +-------------------------- + +nextPut: anObject + This method should not be called for instances of this class. + + diff -rNu smalltalk-2.1.9/doc/gst-base.info-3 smalltalk-2.1.10/doc/gst-base.info-3 --- smalltalk-2.1.9/doc/gst-base.info-3 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info-3 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,431 +23,11 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - - -File: gst-base.info, Node: SystemExceptions.WrongMessageSent class-signaling, Next: SystemExceptions.WrongMessageSent-accessing, Up: SystemExceptions.WrongMessageSent - -1.178.1 SystemExceptions.WrongMessageSent class: signaling ----------------------------------------------------------- - -signalOn: selector useInstead: aSymbol - Raise an exception, signaling which selector was sent and - suggesting a valid alternative. - - - -File: gst-base.info, Node: SystemExceptions.WrongMessageSent-accessing, Prev: SystemExceptions.WrongMessageSent class-signaling, Up: SystemExceptions.WrongMessageSent - -1.178.2 SystemExceptions.WrongMessageSent: accessing ----------------------------------------------------- - -messageText - Answer an exception's message text. - -selector - Answer which selector was sent. - -selector: aSymbol - Set which selector was sent. - -suggestedSelector - Answer a valid alternative to the selector that was used. - -suggestedSelector: aSymbol - Set a valid alternative to the selector that was used. - - - -File: gst-base.info, Node: TextCollector, Next: Time, Prev: SystemExceptions.WrongMessageSent, Up: Base classes - -1.179 TextCollector -=================== - -Defined in namespace Smalltalk -Superclass: Stream -Category: Streams - I am a thread-safe class that maps between standard Stream - protocol and a single message to another object (its selector is - pluggable and should roughly correspond to #nextPutAll:). I am, - in fact, the class that implements the global Transcript object. - -* Menu: - -* TextCollector class-accessing:: (class) -* TextCollector-accessing:: (instance) -* TextCollector-printing:: (instance) -* TextCollector-set up:: (instance) -* TextCollector-storing:: (instance) - - -File: gst-base.info, Node: TextCollector class-accessing, Next: TextCollector-accessing, Up: TextCollector - -1.179.1 TextCollector class: accessing --------------------------------------- - -message: receiverToSelectorAssociation - Answer a new instance of the receiver, that uses the message - identified by anAssociation to perform write operations. - anAssociation's key is the receiver, while its value is the - selector. - -new - This method should not be called for instances of this class. - - - -File: gst-base.info, Node: TextCollector-accessing, Next: TextCollector-printing, Prev: TextCollector class-accessing, Up: TextCollector - -1.179.2 TextCollector: accessing --------------------------------- - -cr - Emit a new-line (carriage return) to the Transcript - -endEntry - Emit two new-lines. This method is present for compatibility with - VisualWorks. - -next: anInteger put: anObject - Write anInteger copies of anObject to the Transcript - -nextPut: aCharacter - Emit aCharacter to the Transcript - -nextPutAll: aString - Write aString to the Transcript - -show: aString - Write aString to the Transcript - -showCr: aString - Write aString to the Transcript, followed by a new-line character - -showOnNewLine: aString - Write aString to the Transcript, preceded by a new-line character - - - -File: gst-base.info, Node: TextCollector-printing, Next: TextCollector-set up, Prev: TextCollector-accessing, Up: TextCollector - -1.179.3 TextCollector: printing -------------------------------- - -print: anObject - Print anObject's representation to the Transcript - -printOn: aStream - Print a representation of the receiver onto aStream - - - -File: gst-base.info, Node: TextCollector-set up, Next: TextCollector-storing, Prev: TextCollector-printing, Up: TextCollector - -1.179.4 TextCollector: set up ------------------------------ - -message - Answer an association representing the message to be sent to - perform write operations. The key is the receiver, the value is - the selector - -message: receiverToSelectorAssociation - Set the message to be sent to perform write operations to the one - represented by anAssociation. anAssociation's key is the - receiver, while its value is the selector - - - -File: gst-base.info, Node: TextCollector-storing, Prev: TextCollector-set up, Up: TextCollector - -1.179.5 TextCollector: storing ------------------------------- - -store: anObject - Print Smalltalk code which evaluates to anObject on the Transcript - -storeOn: aStream - Print Smalltalk code which evaluates to the receiver onto aStream - - - -File: gst-base.info, Node: Time, Next: TokenStream, Prev: TextCollector, Up: Base classes - -1.180 Time -========== - -Defined in namespace Smalltalk -Superclass: Magnitude -Category: Language-Data types - My instances represent times of the day. I provide methods for - instance creation, methods that access components (hours, minutes, - and seconds) of a time value, and a block execution timing - facility. - -* Menu: - -* Time class-basic (UTC):: (class) -* Time class-builtins:: (class) -* Time class-clocks:: (class) -* Time class-initialization:: (class) -* Time class-instance creation:: (class) -* Time-accessing (ANSI for DateAndTimes):: (instance) -* Time-accessing (non ANSI & for Durations):: (instance) -* Time-arithmetic:: (instance) -* Time-comparing:: (instance) - - -File: gst-base.info, Node: Time class-basic (UTC), Next: Time class-builtins, Up: Time - -1.180.1 Time class: basic (UTC) -------------------------------- - -utcNow - Answer a time representing the current time of day in Coordinated - Universal Time (UTC) - -utcSecondClock - Answer the number of seconds since the midnight of 1/1/1901 (unlike - #secondClock, the reference time is here expressed as UTC, that is - as Coordinated Universal Time). - - - -File: gst-base.info, Node: Time class-builtins, Next: Time class-clocks, Prev: Time class-basic (UTC), Up: Time - -1.180.2 Time class: builtins ----------------------------- - -primMillisecondClock - Returns the number of milliseconds since midnight. - -primSecondClock - Returns the number of seconds to/from 1/1/2000. - -timezone - Answer a String associated with the current timezone (either - standard or daylight-saving) on this operating system. For - example, the answer could be `EST' to indicate Eastern Standard - Time; the answer can be empty and can't be assumed to be a - three-character code such as `EST'. - -timezoneBias - Specifies the current bias, in minutes, for local time translation - for the current time. The bias is the difference, in seconds, - between Coordinated Universal Time (UTC) and local time; a - positive bias indicates that the local timezone is to the east of - Greenwich (e.g. Europe, Asia), while a negative bias indicates - that it is to the west (e.g. America) - - - -File: gst-base.info, Node: Time class-clocks, Next: Time class-initialization, Prev: Time class-builtins, Up: Time - -1.180.3 Time class: clocks --------------------------- - -millisecondClock - Answer the number of milliseconds since startup. - -millisecondClockValue - Answer the number of milliseconds since startup - -millisecondsPerDay - Answer the number of milliseconds in a day - -millisecondsToRun: timedBlock - Answer the number of milliseconds which timedBlock took to run - -secondClock - Answer the number of seconds since the midnight of 1/1/1901 - - - -File: gst-base.info, Node: Time class-initialization, Next: Time class-instance creation, Prev: Time class-clocks, Up: Time - -1.180.4 Time class: initialization ----------------------------------- - -initialize - Initialize the Time class after the image has been bootstrapped - -update: aspect - Private - Initialize the receiver's instance variables - - - -File: gst-base.info, Node: Time class-instance creation, Next: Time-accessing (ANSI for DateAndTimes), Prev: Time class-initialization, Up: Time - -1.180.5 Time class: instance creation -------------------------------------- - -fromSeconds: secondCount - Answer a Time representing secondCount seconds past midnight - -hours: h - Answer a Time that is the given number of hours past midnight - -hours: h minutes: m seconds: s - Answer a Time that is the given number of hours, minutes and - seconds past midnight - -minutes: m - Answer a Time that is the given number of minutes past midnight - -new - Answer a Time representing midnight - -now - Answer a time representing the current time of day - -readFrom: aStream - Parse an instance of the receiver (hours/minutes/seconds) from - aStream - -seconds: s - Answer a Time that is the given number of seconds past midnight - - - -File: gst-base.info, Node: Time-accessing (ANSI for DateAndTimes), Next: Time-accessing (non ANSI & for Durations), Prev: Time class-instance creation, Up: Time - -1.180.6 Time: accessing (ANSI for DateAndTimes) ------------------------------------------------ - -hour - Answer the number of hours in the receiver - -hour12 - Answer the hour in a 12-hour clock - -hour24 - Answer the hour in a 24-hour clock - -minute - Answer the number of minutes in the receiver - -second - Answer the number of seconds in the receiver - - - -File: gst-base.info, Node: Time-accessing (non ANSI & for Durations), Next: Time-arithmetic, Prev: Time-accessing (ANSI for DateAndTimes), Up: Time - -1.180.7 Time: accessing (non ANSI & for Durations) --------------------------------------------------- - -asSeconds - Answer `seconds'. - -hours - Answer the number of hours in the receiver - -minutes - Answer the number of minutes in the receiver - -seconds - Answer the number of seconds in the receiver - - - -File: gst-base.info, Node: Time-arithmetic, Next: Time-comparing, Prev: Time-accessing (non ANSI & for Durations), Up: Time - -1.180.8 Time: arithmetic ------------------------- - -addTime: timeAmount - Answer a new Time that is timeAmount seconds after the receiver - -printOn: aStream - Print a representation of the receiver on aStream - -subtractTime: timeAmount - Answer a new Time that is timeAmount seconds before the receiver - - - -File: gst-base.info, Node: Time-comparing, Prev: Time-arithmetic, Up: Time - -1.180.9 Time: comparing ------------------------ - -< aTime - Answer whether the receiver is less than aTime - -= aTime - Answer whether the receiver is equal to aTime - -hash - Answer an hash value for the receiver - - - -File: gst-base.info, Node: TokenStream, Next: TrappableEvent, Prev: Time, Up: Base classes - -1.181 TokenStream -================= - -Defined in namespace Smalltalk -Superclass: Stream -Category: Streams-Collections - I am not a typical part of the Smalltalk kernel class hierarchy. - I operate on a stream of characters and return distinct - whitespace-delimited groups of characters; I am used to parse the - parameters of class-creation methods. - - Basically, I parse off whitespace separated tokens as substrings - and return them (next). If the entire contents of the string are - requested, I return them as an Array containing the individual - strings. - -* Menu: - -* TokenStream class-instance creation:: (class) -* TokenStream-basic:: (instance) -* TokenStream-write methods:: (instance) - - -File: gst-base.info, Node: TokenStream class-instance creation, Next: TokenStream-basic, Up: TokenStream - -1.181.1 TokenStream class: instance creation --------------------------------------------- - -on: aString - Answer a TokenStream working on aString - -onStream: aStream - Answer a TokenStream working on the collection on which aStream is - in turn streaming. - - - -File: gst-base.info, Node: TokenStream-basic, Next: TokenStream-write methods, Prev: TokenStream class-instance creation, Up: TokenStream - -1.181.2 TokenStream: basic --------------------------- - -atEnd - Answer whether the input stream has no more tokens. - -next - Answer a new whitespace-separated token from the input stream - - - -File: gst-base.info, Node: TokenStream-write methods, Prev: TokenStream-basic, Up: TokenStream - -1.181.3 TokenStream: write methods ----------------------------------- - -nextPut: anObject - This method should not be called for instances of this class. - -  File: gst-base.info, Node: TrappableEvent, Next: True, Prev: TokenStream, Up: Base classes -1.182 TrappableEvent -==================== +TrappableEvent +============== Defined in namespace Smalltalk Superclass: Object @@ -465,8 +45,8 @@  File: gst-base.info, Node: TrappableEvent-enumerating, Next: TrappableEvent-instance creation, Up: TrappableEvent -1.182.1 TrappableEvent: enumerating ------------------------------------ +TrappableEvent: enumerating +--------------------------- allExceptionsDo: aBlock Execute aBlock, passing it an Exception for every exception in the @@ -484,8 +64,8 @@  File: gst-base.info, Node: TrappableEvent-instance creation, Prev: TrappableEvent-enumerating, Up: TrappableEvent -1.182.2 TrappableEvent: instance creation ------------------------------------------ +TrappableEvent: instance creation +--------------------------------- , aTrappableEvent Answer an ExceptionSet containing all the exceptions in the @@ -495,8 +75,8 @@  File: gst-base.info, Node: True, Next: UndefinedObject, Prev: TrappableEvent, Up: Base classes -1.183 True -========== +True +==== Defined in namespace Smalltalk Superclass: Boolean @@ -513,8 +93,8 @@  File: gst-base.info, Node: True-basic, Next: True-C hacks, Up: True -1.183.1 True: basic -------------------- +True: basic +----------- & aBoolean We are true - anded with anything, we always answer the other @@ -557,8 +137,8 @@  File: gst-base.info, Node: True-C hacks, Next: True-printing, Prev: True-basic, Up: True -1.183.2 True: C hacks ---------------------- +True: C hacks +------------- asCBooleanValue Answer `1'. @@ -567,8 +147,8 @@  File: gst-base.info, Node: True-printing, Prev: True-C hacks, Up: True -1.183.3 True: printing ----------------------- +True: printing +-------------- printOn: aStream Print a representation of the receiver on aStream @@ -577,8 +157,8 @@  File: gst-base.info, Node: UndefinedObject, Next: ValueAdaptor, Prev: True, Up: Base classes -1.184 UndefinedObject -===================== +UndefinedObject +=============== Defined in namespace Smalltalk Superclass: Object @@ -600,8 +180,8 @@  File: gst-base.info, Node: UndefinedObject-basic, Next: UndefinedObject-class creation, Up: UndefinedObject -1.184.1 UndefinedObject: basic ------------------------------- +UndefinedObject: basic +---------------------- copy Answer the receiver. @@ -616,8 +196,8 @@  File: gst-base.info, Node: UndefinedObject-class creation, Next: UndefinedObject-class creation - alternative, Prev: UndefinedObject-basic, Up: UndefinedObject -1.184.2 UndefinedObject: class creation ---------------------------------------- +UndefinedObject: class creation +------------------------------- metaclassFor: classNameString Create a Metaclass object for the given class name. The metaclass @@ -662,8 +242,8 @@  File: gst-base.info, Node: UndefinedObject-class creation - alternative, Next: UndefinedObject-CObject interoperability, Prev: UndefinedObject-class creation, Up: UndefinedObject -1.184.3 UndefinedObject: class creation - alternative ------------------------------------------------------ +UndefinedObject: class creation - alternative +--------------------------------------------- subclass: classNameString classInstanceVariableNames: stringClassInstVarNames instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames Don't use this, it is only present to file in from IBM Smalltalk @@ -693,8 +273,8 @@  File: gst-base.info, Node: UndefinedObject-CObject interoperability, Next: UndefinedObject-dependents access, Prev: UndefinedObject-class creation - alternative, Up: UndefinedObject -1.184.4 UndefinedObject: CObject interoperability -------------------------------------------------- +UndefinedObject: CObject interoperability +----------------------------------------- free Do nothing, a NULL pointer can be safely freed. @@ -707,8 +287,8 @@  File: gst-base.info, Node: UndefinedObject-dependents access, Next: UndefinedObject-printing, Prev: UndefinedObject-CObject interoperability, Up: UndefinedObject -1.184.5 UndefinedObject: dependents access ------------------------------------------- +UndefinedObject: dependents access +---------------------------------- addDependent: ignored Fail, nil does not support dependents. @@ -720,8 +300,8 @@  File: gst-base.info, Node: UndefinedObject-printing, Next: UndefinedObject-storing, Prev: UndefinedObject-dependents access, Up: UndefinedObject -1.184.6 UndefinedObject: printing ---------------------------------- +UndefinedObject: printing +------------------------- printOn: aStream Print a representation of the receiver on aStream. @@ -730,8 +310,8 @@  File: gst-base.info, Node: UndefinedObject-storing, Next: UndefinedObject-testing, Prev: UndefinedObject-printing, Up: UndefinedObject -1.184.7 UndefinedObject: storing --------------------------------- +UndefinedObject: storing +------------------------ storeOn: aStream Store Smalltalk code compiling to the receiver on aStream. @@ -740,8 +320,8 @@  File: gst-base.info, Node: UndefinedObject-testing, Prev: UndefinedObject-storing, Up: UndefinedObject -1.184.8 UndefinedObject: testing --------------------------------- +UndefinedObject: testing +------------------------ ifNil: nilBlock Evaluate nilBlock if the receiver is nil, else answer nil @@ -770,8 +350,8 @@  File: gst-base.info, Node: ValueAdaptor, Next: ValueHolder, Prev: UndefinedObject, Up: Base classes -1.185 ValueAdaptor -================== +ValueAdaptor +============ Defined in namespace Smalltalk Superclass: Object @@ -788,8 +368,8 @@  File: gst-base.info, Node: ValueAdaptor class-creating instances, Next: ValueAdaptor-accessing, Up: ValueAdaptor -1.185.1 ValueAdaptor class: creating instances ----------------------------------------------- +ValueAdaptor class: creating instances +-------------------------------------- new We don't know enough of subclasses to have a shared implementation @@ -799,8 +379,8 @@  File: gst-base.info, Node: ValueAdaptor-accessing, Next: ValueAdaptor-printing, Prev: ValueAdaptor class-creating instances, Up: ValueAdaptor -1.185.2 ValueAdaptor: accessing -------------------------------- +ValueAdaptor: accessing +----------------------- value Retrive the value of the receiver. Must be implemented by @@ -814,8 +394,8 @@  File: gst-base.info, Node: ValueAdaptor-printing, Prev: ValueAdaptor-accessing, Up: ValueAdaptor -1.185.3 ValueAdaptor: printing ------------------------------- +ValueAdaptor: printing +---------------------- printOn: aStream Print a representation of the receiver @@ -824,8 +404,8 @@  File: gst-base.info, Node: ValueHolder, Next: VariableBinding, Prev: ValueAdaptor, Up: Base classes -1.186 ValueHolder -================= +ValueHolder +=========== Defined in namespace Smalltalk Superclass: ValueAdaptor @@ -844,8 +424,8 @@  File: gst-base.info, Node: ValueHolder class-creating instances, Next: ValueHolder-accessing, Up: ValueHolder -1.186.1 ValueHolder class: creating instances ---------------------------------------------- +ValueHolder class: creating instances +------------------------------------- new Create a ValueHolder whose starting value is nil @@ -860,8 +440,8 @@  File: gst-base.info, Node: ValueHolder-accessing, Next: ValueHolder-initializing, Prev: ValueHolder class-creating instances, Up: ValueHolder -1.186.2 ValueHolder: accessing ------------------------------- +ValueHolder: accessing +---------------------- value Get the value of the receiver. @@ -873,8 +453,8 @@  File: gst-base.info, Node: ValueHolder-initializing, Prev: ValueHolder-accessing, Up: ValueHolder -1.186.3 ValueHolder: initializing ---------------------------------- +ValueHolder: initializing +------------------------- initialize Private - set the initial value of the receiver @@ -883,8 +463,8 @@  File: gst-base.info, Node: VariableBinding, Next: VersionableObjectProxy, Prev: ValueHolder, Up: Base classes -1.187 VariableBinding -===================== +VariableBinding +=============== Defined in namespace Smalltalk Superclass: HomedAssociation @@ -903,8 +483,8 @@  File: gst-base.info, Node: VariableBinding-printing, Next: VariableBinding-saving and loading, Up: VariableBinding -1.187.1 VariableBinding: printing ---------------------------------- +VariableBinding: printing +------------------------- path Print a dotted path that compiles to the receiver's value @@ -916,8 +496,8 @@  File: gst-base.info, Node: VariableBinding-saving and loading, Next: VariableBinding-storing, Prev: VariableBinding-printing, Up: VariableBinding -1.187.2 VariableBinding: saving and loading -------------------------------------------- +VariableBinding: saving and loading +----------------------------------- to @@ -930,8 +510,8 @@  File: gst-base.info, Node: VariableBinding-storing, Next: VariableBinding-testing, Prev: VariableBinding-saving and loading, Up: VariableBinding -1.187.3 VariableBinding: storing --------------------------------- +VariableBinding: storing +------------------------ storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -940,8 +520,8 @@  File: gst-base.info, Node: VariableBinding-testing, Prev: VariableBinding-storing, Up: VariableBinding -1.187.4 VariableBinding: testing --------------------------------- +VariableBinding: testing +------------------------ isDefined Answer true if this VariableBinding lives outside the Undeclared @@ -951,8 +531,8 @@  File: gst-base.info, Node: VersionableObjectProxy, Next: VFS.ArchiveFileHandler, Prev: VariableBinding, Up: Base classes -1.188 VersionableObjectProxy -============================ +VersionableObjectProxy +====================== Defined in namespace Smalltalk Superclass: NullProxy @@ -974,8 +554,8 @@  File: gst-base.info, Node: VersionableObjectProxy class-saving and restoring, Next: VersionableObjectProxy-saving and restoring, Up: VersionableObjectProxy -1.188.1 VersionableObjectProxy class: saving and restoring ----------------------------------------------------------- +VersionableObjectProxy class: saving and restoring +-------------------------------------------------- to @@ -996,8 +576,8 @@  File: gst-base.info, Node: VersionableObjectProxy-saving and restoring, Prev: VersionableObjectProxy class-saving and restoring, Up: VersionableObjectProxy -1.188.2 VersionableObjectProxy: saving and restoring ----------------------------------------------------- +VersionableObjectProxy: saving and restoring +-------------------------------------------- dumpTo: anObjectDumper Save the object with extra versioning information. @@ -1006,8 +586,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler, Next: VFS.ArchiveMemberHandler, Prev: VersionableObjectProxy, Up: Base classes -1.189 VFS.ArchiveFileHandler -============================ +VFS.ArchiveFileHandler +====================== Defined in namespace Smalltalk.VFS Superclass: VFS.RealFileHandler @@ -1029,8 +609,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler class-registering, Next: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ArchiveFileHandler -1.189.1 VFS.ArchiveFileHandler class: registering -------------------------------------------------- +VFS.ArchiveFileHandler class: registering +----------------------------------------- isAccessible Answer whether a directory with the name contained in the receiver @@ -1043,8 +623,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol, Next: VFS.ArchiveFileHandler-directory operations, Prev: VFS.ArchiveFileHandler class-registering, Up: VFS.ArchiveFileHandler -1.189.2 VFS.ArchiveFileHandler: ArchiveMemberHandler protocol -------------------------------------------------------------- +VFS.ArchiveFileHandler: ArchiveMemberHandler protocol +----------------------------------------------------- extractMember: anArchiveMemberHandler Extract the contents of anArchiveMemberHandler into a file that @@ -1075,8 +655,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler-directory operations, Next: VFS.ArchiveFileHandler-file operations, Prev: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ArchiveFileHandler -1.189.3 VFS.ArchiveFileHandler: directory operations ----------------------------------------------------- +VFS.ArchiveFileHandler: directory operations +-------------------------------------------- at: aName Answer a VFSHandler for a file named `aName' residing in the @@ -1101,8 +681,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler-file operations, Prev: VFS.ArchiveFileHandler-directory operations, Up: VFS.ArchiveFileHandler -1.189.4 VFS.ArchiveFileHandler: file operations ------------------------------------------------ +VFS.ArchiveFileHandler: file operations +--------------------------------------- remove Remove the file with the given path name @@ -1111,8 +691,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler, Next: VFS.DecodedFileHandler, Prev: VFS.ArchiveFileHandler, Up: Base classes -1.190 VFS.ArchiveMemberHandler -============================== +VFS.ArchiveMemberHandler +======================== Defined in namespace Smalltalk.VFS Superclass: VFS.VFSHandler @@ -1132,8 +712,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-accessing, Next: VFS.ArchiveMemberHandler-directory operations, Up: VFS.ArchiveMemberHandler -1.190.1 VFS.ArchiveMemberHandler: accessing -------------------------------------------- +VFS.ArchiveMemberHandler: accessing +----------------------------------- creationTime Answer the creation time of the file identified by the receiver. @@ -1167,8 +747,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-directory operations, Next: VFS.ArchiveMemberHandler-file operations, Prev: VFS.ArchiveMemberHandler-accessing, Up: VFS.ArchiveMemberHandler -1.190.2 VFS.ArchiveMemberHandler: directory operations ------------------------------------------------------- +VFS.ArchiveMemberHandler: directory operations +---------------------------------------------- at: aName Answer a VFSHandler for a file named `aName' residing in the @@ -1185,8 +765,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-file operations, Next: VFS.ArchiveMemberHandler-finalization, Prev: VFS.ArchiveMemberHandler-directory operations, Up: VFS.ArchiveMemberHandler -1.190.3 VFS.ArchiveMemberHandler: file operations -------------------------------------------------- +VFS.ArchiveMemberHandler: file operations +----------------------------------------- open: class mode: mode ifFail: aBlock Open the receiver in the given mode (as answered by FileStream's @@ -1205,8 +785,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-finalization, Next: VFS.ArchiveMemberHandler-initializing, Prev: VFS.ArchiveMemberHandler-file operations, Up: VFS.ArchiveMemberHandler -1.190.4 VFS.ArchiveMemberHandler: finalization ----------------------------------------------- +VFS.ArchiveMemberHandler: finalization +-------------------------------------- realFileName Answer the real file name which holds the file contents, or nil if @@ -1220,8 +800,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-initializing, Next: VFS.ArchiveMemberHandler-testing, Prev: VFS.ArchiveMemberHandler-finalization, Up: VFS.ArchiveMemberHandler -1.190.5 VFS.ArchiveMemberHandler: initializing ----------------------------------------------- +VFS.ArchiveMemberHandler: initializing +-------------------------------------- parent: anArchiveFileHandler Set the archive of which the receiver is a member. @@ -1234,8 +814,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-testing, Prev: VFS.ArchiveMemberHandler-initializing, Up: VFS.ArchiveMemberHandler -1.190.6 VFS.ArchiveMemberHandler: testing ------------------------------------------ +VFS.ArchiveMemberHandler: testing +--------------------------------- exists Answer whether a file with the name contained in the receiver does @@ -1265,8 +845,8 @@  File: gst-base.info, Node: VFS.DecodedFileHandler, Next: VFS.ExternalArchiveFileHandler, Prev: VFS.ArchiveMemberHandler, Up: Base classes -1.191 VFS.DecodedFileHandler -============================ +VFS.DecodedFileHandler +====================== Defined in namespace Smalltalk.VFS Superclass: VFS.RealFileHandler @@ -1283,8 +863,8 @@  File: gst-base.info, Node: VFS.DecodedFileHandler class-registering, Next: VFS.DecodedFileHandler-files, Up: VFS.DecodedFileHandler -1.191.1 VFS.DecodedFileHandler class: registering -------------------------------------------------- +VFS.DecodedFileHandler class: registering +----------------------------------------- fileSystems Answer the virtual file systems that can be processed by this @@ -1310,8 +890,8 @@  File: gst-base.info, Node: VFS.DecodedFileHandler-files, Prev: VFS.DecodedFileHandler class-registering, Up: VFS.DecodedFileHandler -1.191.2 VFS.DecodedFileHandler: files -------------------------------------- +VFS.DecodedFileHandler: files +----------------------------- finalize Upon finalization, we remove the file that was temporarily holding @@ -1333,8 +913,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler, Next: VFS.RealFileHandler, Prev: VFS.DecodedFileHandler, Up: Base classes -1.192 VFS.ExternalArchiveFileHandler -==================================== +VFS.ExternalArchiveFileHandler +============================== Defined in namespace Smalltalk.VFS Superclass: VFS.ArchiveFileHandler @@ -1354,8 +934,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler class-registering, Next: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ExternalArchiveFileHandler -1.192.1 VFS.ExternalArchiveFileHandler class: registering ---------------------------------------------------------- +VFS.ExternalArchiveFileHandler class: registering +------------------------------------------------- fileSystems Answer the virtual file systems that can be processed by this @@ -1375,8 +955,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol, Next: VFS.ExternalArchiveFileHandler-members, Prev: VFS.ExternalArchiveFileHandler class-registering, Up: VFS.ExternalArchiveFileHandler -1.192.2 VFS.ExternalArchiveFileHandler: ArchiveMemberHandler protocol ---------------------------------------------------------------------- +VFS.ExternalArchiveFileHandler: ArchiveMemberHandler protocol +------------------------------------------------------------- extractMember: anArchiveMemberHandler Extract the contents of anArchiveMemberHandler into a file that @@ -1406,8 +986,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler-members, Next: VFS.ExternalArchiveFileHandler-releasing, Prev: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ExternalArchiveFileHandler -1.192.3 VFS.ExternalArchiveFileHandler: members ------------------------------------------------ +VFS.ExternalArchiveFileHandler: members +--------------------------------------- createDir: dirName Create a subdirectory of the receiver, naming it dirName. @@ -1420,8 +1000,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler-releasing, Prev: VFS.ExternalArchiveFileHandler-members, Up: VFS.ExternalArchiveFileHandler -1.192.4 VFS.ExternalArchiveFileHandler: releasing -------------------------------------------------- +VFS.ExternalArchiveFileHandler: releasing +----------------------------------------- release Release the resources used by the receiver that don't survive when @@ -1431,8 +1011,8 @@  File: gst-base.info, Node: VFS.RealFileHandler, Next: VFS.VFSHandler, Prev: VFS.ExternalArchiveFileHandler, Up: Base classes -1.193 VFS.RealFileHandler -========================= +VFS.RealFileHandler +=================== Defined in namespace Smalltalk.VFS Superclass: VFS.VFSHandler @@ -1453,8 +1033,8 @@  File: gst-base.info, Node: VFS.RealFileHandler class-C functions, Next: VFS.RealFileHandler class-initialization, Up: VFS.RealFileHandler -1.193.1 VFS.RealFileHandler class: C functions ----------------------------------------------- +VFS.RealFileHandler class: C functions +-------------------------------------- working C call-out to getCurDirName. Do not modify! @@ -1463,8 +1043,8 @@  File: gst-base.info, Node: VFS.RealFileHandler class-initialization, Next: VFS.RealFileHandler-accessing, Prev: VFS.RealFileHandler class-C functions, Up: VFS.RealFileHandler -1.193.2 VFS.RealFileHandler class: initialization -------------------------------------------------- +VFS.RealFileHandler class: initialization +----------------------------------------- initialize Initialize the receiver's class variables @@ -1473,8 +1053,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-accessing, Next: VFS.RealFileHandler-directory operations, Prev: VFS.RealFileHandler class-initialization, Up: VFS.RealFileHandler -1.193.3 VFS.RealFileHandler: accessing --------------------------------------- +VFS.RealFileHandler: accessing +------------------------------ creationTime Answer the creation time of the file identified by the receiver. @@ -1508,8 +1088,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-directory operations, Next: VFS.RealFileHandler-file operations, Prev: VFS.RealFileHandler-accessing, Up: VFS.RealFileHandler -1.193.4 VFS.RealFileHandler: directory operations -------------------------------------------------- +VFS.RealFileHandler: directory operations +----------------------------------------- createDir: dirName Create a subdirectory of the receiver, naming it dirName. @@ -1522,8 +1102,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-file operations, Next: VFS.RealFileHandler-testing, Prev: VFS.RealFileHandler-directory operations, Up: VFS.RealFileHandler -1.193.5 VFS.RealFileHandler: file operations --------------------------------------------- +VFS.RealFileHandler: file operations +------------------------------------ open: class mode: mode ifFail: aBlock Open the receiver in the given mode (as answered by FileStream's @@ -1539,8 +1119,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-testing, Prev: VFS.RealFileHandler-file operations, Up: VFS.RealFileHandler -1.193.6 VFS.RealFileHandler: testing ------------------------------------- +VFS.RealFileHandler: testing +---------------------------- exists Answer whether a file with the name contained in the receiver does @@ -1566,8 +1146,8 @@  File: gst-base.info, Node: VFS.VFSHandler, Next: Warning, Prev: VFS.RealFileHandler, Up: Base classes -1.194 VFS.VFSHandler -==================== +VFS.VFSHandler +============== Defined in namespace Smalltalk.VFS Superclass: Object @@ -1590,8 +1170,8 @@  File: gst-base.info, Node: VFS.VFSHandler class-initializing, Next: VFS.VFSHandler class-instance creation, Up: VFS.VFSHandler -1.194.1 VFS.VFSHandler class: initializing ------------------------------------------- +VFS.VFSHandler class: initializing +---------------------------------- fileSystems Answer the virtual file systems that can be processed by this @@ -1615,8 +1195,8 @@  File: gst-base.info, Node: VFS.VFSHandler class-instance creation, Next: VFS.VFSHandler-accessing, Prev: VFS.VFSHandler class-initializing, Up: VFS.VFSHandler -1.194.2 VFS.VFSHandler class: instance creation ------------------------------------------------ +VFS.VFSHandler class: instance creation +--------------------------------------- for: fileName Answer the (real or virtual) file handler for the file named @@ -1626,8 +1206,8 @@  File: gst-base.info, Node: VFS.VFSHandler-accessing, Next: VFS.VFSHandler-C functions, Prev: VFS.VFSHandler class-instance creation, Up: VFS.VFSHandler -1.194.3 VFS.VFSHandler: accessing ---------------------------------- +VFS.VFSHandler: accessing +------------------------- creationTime Answer the creation time of the file identified by the receiver. @@ -1668,8 +1248,8 @@  File: gst-base.info, Node: VFS.VFSHandler-C functions, Next: VFS.VFSHandler-directory operations, Prev: VFS.VFSHandler-accessing, Up: VFS.VFSHandler -1.194.4 VFS.VFSHandler: C functions ------------------------------------ +VFS.VFSHandler: C functions +--------------------------- closeDir: dirObject C call-out to closedir. Do not modify! @@ -1714,8 +1294,8 @@  File: gst-base.info, Node: VFS.VFSHandler-directory operations, Next: VFS.VFSHandler-file operations, Prev: VFS.VFSHandler-C functions, Up: VFS.VFSHandler -1.194.5 VFS.VFSHandler: directory operations --------------------------------------------- +VFS.VFSHandler: directory operations +------------------------------------ at: aName Answer a VFSHandler for a file named `aName' residing in the @@ -1732,8 +1312,8 @@  File: gst-base.info, Node: VFS.VFSHandler-file operations, Next: VFS.VFSHandler-testing, Prev: VFS.VFSHandler-directory operations, Up: VFS.VFSHandler -1.194.6 VFS.VFSHandler: file operations ---------------------------------------- +VFS.VFSHandler: file operations +------------------------------- open: mode ifFail: aBlock Open the receiver in the given mode (as answered by FileStream's @@ -1757,8 +1337,8 @@  File: gst-base.info, Node: VFS.VFSHandler-testing, Prev: VFS.VFSHandler-file operations, Up: VFS.VFSHandler -1.194.7 VFS.VFSHandler: testing -------------------------------- +VFS.VFSHandler: testing +----------------------- exists Answer whether a file with the name contained in the receiver does @@ -1788,8 +1368,8 @@  File: gst-base.info, Node: Warning, Next: WeakArray, Prev: VFS.VFSHandler, Up: Base classes -1.195 Warning -============= +Warning +======= Defined in namespace Smalltalk Superclass: Notification @@ -1803,8 +1383,8 @@  File: gst-base.info, Node: Warning-exception description, Up: Warning -1.195.1 Warning: exception description --------------------------------------- +Warning: exception description +------------------------------ description Answer a textual description of the exception. @@ -1813,8 +1393,8 @@  File: gst-base.info, Node: WeakArray, Next: WeakIdentitySet, Prev: Warning, Up: Base classes -1.196 WeakArray -=============== +WeakArray +========= Defined in namespace Smalltalk Superclass: Array @@ -1832,8 +1412,8 @@  File: gst-base.info, Node: WeakArray class-instance creation, Next: WeakArray-accessing, Up: WeakArray -1.196.1 WeakArray class: instance creation ------------------------------------------- +WeakArray class: instance creation +---------------------------------- new: size Private - Initialize the values array; plus, make it weak and @@ -1843,8 +1423,8 @@  File: gst-base.info, Node: WeakArray-accessing, Next: WeakArray-conversion, Prev: WeakArray class-instance creation, Up: WeakArray -1.196.2 WeakArray: accessing ----------------------------- +WeakArray: accessing +-------------------- aliveObjectsDo: aBlock Evaluate aBlock for all the elements in the array, excluding the @@ -1890,8 +1470,8 @@  File: gst-base.info, Node: WeakArray-conversion, Next: WeakArray-loading, Prev: WeakArray-accessing, Up: WeakArray -1.196.3 WeakArray: conversion ------------------------------ +WeakArray: conversion +--------------------- asArray Answer a non-weak version of the receiver @@ -1913,8 +1493,8 @@  File: gst-base.info, Node: WeakArray-loading, Prev: WeakArray-conversion, Up: WeakArray -1.196.4 WeakArray: loading --------------------------- +WeakArray: loading +------------------ postLoad Called after loading an object; must restore it to the state before @@ -1924,8 +1504,8 @@  File: gst-base.info, Node: WeakIdentitySet, Next: WeakKeyDictionary, Prev: WeakArray, Up: Base classes -1.197 WeakIdentitySet -===================== +WeakIdentitySet +=============== Defined in namespace Smalltalk Superclass: WeakSet @@ -1940,8 +1520,8 @@  File: gst-base.info, Node: WeakKeyDictionary, Next: WeakKeyIdentityDictionary, Prev: WeakIdentitySet, Up: Base classes -1.198 WeakKeyDictionary -======================= +WeakKeyDictionary +================= Defined in namespace Smalltalk Superclass: Dictionary @@ -1958,8 +1538,8 @@  File: gst-base.info, Node: WeakKeyDictionary-accessing, Up: WeakKeyDictionary -1.198.1 WeakKeyDictionary: accessing ------------------------------------- +WeakKeyDictionary: accessing +---------------------------- add: anAssociation Store value as associated to the given key. If any, recycle @@ -1975,8 +1555,8 @@  File: gst-base.info, Node: WeakKeyIdentityDictionary, Next: WeakSet, Prev: WeakKeyDictionary, Up: Base classes -1.199 WeakKeyIdentityDictionary -=============================== +WeakKeyIdentityDictionary +========================= Defined in namespace Smalltalk Superclass: WeakKeyDictionary @@ -1991,8 +1571,8 @@  File: gst-base.info, Node: WeakSet, Next: WeakValueIdentityDictionary, Prev: WeakKeyIdentityDictionary, Up: Base classes -1.200 WeakSet -============= +WeakSet +======= Defined in namespace Smalltalk Superclass: Set @@ -2008,8 +1588,8 @@  File: gst-base.info, Node: WeakSet-accessing, Up: WeakSet -1.200.1 WeakSet: accessing --------------------------- +WeakSet: accessing +------------------ add: anObject Add newObject to the set, if and only if the set doesn't already @@ -2027,8 +1607,8 @@  File: gst-base.info, Node: WeakValueIdentityDictionary, Next: WeakValueLookupTable, Prev: WeakSet, Up: Base classes -1.201 WeakValueIdentityDictionary -================================= +WeakValueIdentityDictionary +=========================== Defined in namespace Smalltalk Superclass: WeakValueLookupTable @@ -2043,8 +1623,8 @@  File: gst-base.info, Node: WeakValueLookupTable, Next: WordArray, Prev: WeakValueIdentityDictionary, Up: Base classes -1.202 WeakValueLookupTable -========================== +WeakValueLookupTable +==================== Defined in namespace Smalltalk Superclass: LookupTable @@ -2062,8 +1642,8 @@  File: gst-base.info, Node: WeakValueLookupTable-hacks, Next: WeakValueLookupTable-rehashing, Up: WeakValueLookupTable -1.202.1 WeakValueLookupTable: hacks ------------------------------------ +WeakValueLookupTable: hacks +--------------------------- at: key ifAbsent: aBlock Answer the value associated to the given key, or the result of @@ -2080,8 +1660,8 @@  File: gst-base.info, Node: WeakValueLookupTable-rehashing, Prev: WeakValueLookupTable-hacks, Up: WeakValueLookupTable -1.202.2 WeakValueLookupTable: rehashing ---------------------------------------- +WeakValueLookupTable: rehashing +------------------------------- rehash Rehash the receiver @@ -2090,8 +1670,8 @@  File: gst-base.info, Node: WordArray, Next: WriteStream, Prev: WeakValueLookupTable, Up: Base classes -1.203 WordArray -=============== +WordArray +========= Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -2103,8 +1683,8 @@  File: gst-base.info, Node: WriteStream, Next: ZeroDivide, Prev: WordArray, Up: Base classes -1.204 WriteStream -================= +WriteStream +=========== Defined in namespace Smalltalk Superclass: PositionableStream @@ -2122,8 +1702,8 @@  File: gst-base.info, Node: WriteStream class-instance creation, Next: WriteStream-accessing, Up: WriteStream -1.204.1 WriteStream class: instance creation --------------------------------------------- +WriteStream class: instance creation +------------------------------------ on: aCollection Answer a new instance of the receiver which streams on aCollection. @@ -2142,8 +1722,8 @@  File: gst-base.info, Node: WriteStream-accessing, Next: WriteStream-accessing-writing, Prev: WriteStream class-instance creation, Up: WriteStream -1.204.2 WriteStream: accessing ------------------------------- +WriteStream: accessing +---------------------- size Answer how many objects have been written @@ -2152,8 +1732,8 @@  File: gst-base.info, Node: WriteStream-accessing-writing, Next: WriteStream-positioning, Prev: WriteStream-accessing, Up: WriteStream -1.204.3 WriteStream: accessing-writing --------------------------------------- +WriteStream: accessing-writing +------------------------------ contents Returns a collection of the same type that the stream accesses, up @@ -2171,8 +1751,8 @@  File: gst-base.info, Node: WriteStream-positioning, Prev: WriteStream-accessing-writing, Up: WriteStream -1.204.4 WriteStream: positioning --------------------------------- +WriteStream: positioning +------------------------ emptyStream Extension - Reset the stream @@ -2181,8 +1761,8 @@  File: gst-base.info, Node: ZeroDivide, Prev: WriteStream, Up: Base classes -1.205 ZeroDivide -================ +ZeroDivide +========== Defined in namespace Smalltalk Superclass: ArithmeticError @@ -2200,8 +1780,8 @@  File: gst-base.info, Node: ZeroDivide class-instance creation, Next: ZeroDivide-accessing, Up: ZeroDivide -1.205.1 ZeroDivide class: instance creation -------------------------------------------- +ZeroDivide class: instance creation +----------------------------------- dividend: aNumber Create a new ZeroDivide object remembering that the dividend was @@ -2215,8 +1795,8 @@  File: gst-base.info, Node: ZeroDivide-accessing, Next: ZeroDivide-description, Prev: ZeroDivide class-instance creation, Up: ZeroDivide -1.205.2 ZeroDivide: accessing ------------------------------ +ZeroDivide: accessing +--------------------- dividend Answer the number that was being divided by zero @@ -2225,8 +1805,8 @@  File: gst-base.info, Node: ZeroDivide-description, Prev: ZeroDivide-accessing, Up: ZeroDivide -1.205.3 ZeroDivide: description -------------------------------- +ZeroDivide: description +----------------------- description Answer a textual description of the exception. @@ -2238,253 +1818,3402 @@ Class index *********** -[index] * Menu: -* AbstractNamespace: AbstractNamespace. (line 6) +* AbstractNamespace: AbstractNamespace. * AlternativeObjectProxy: AlternativeObjectProxy. - (line 6) -* ArithmeticError: ArithmeticError. (line 6) -* Array: Array. (line 6) -* ArrayedCollection: ArrayedCollection. (line 6) -* Association: Association. (line 6) -* Autoload: Autoload. (line 6) -* AutoloadClass: AutoloadClass. (line 6) -* Bag: Bag. (line 6) -* Behavior: Behavior. (line 6) -* BindingDictionary: BindingDictionary. (line 6) -* BlockClosure: BlockClosure. (line 6) -* BlockContext: BlockContext. (line 6) -* Boolean: Boolean. (line 6) -* ByteArray: ByteArray. (line 6) -* ByteStream: ByteStream. (line 6) -* CAggregate: CAggregate. (line 6) -* CallinProcess: CallinProcess. (line 6) -* CArray: CArray. (line 6) -* CArrayCType: CArrayCType. (line 6) -* CBoolean: CBoolean. (line 6) -* CByte: CByte. (line 6) -* CChar: CChar. (line 6) -* CCompound: CCompound. (line 6) -* CDouble: CDouble. (line 6) -* CFloat: CFloat. (line 6) -* CFunctionDescriptor: CFunctionDescriptor. (line 6) -* Character: Character. (line 6) -* CharacterArray: CharacterArray. (line 6) -* CInt: CInt. (line 6) -* Class: Class. (line 6) -* ClassDescription: ClassDescription. (line 6) -* CLong: CLong. (line 6) -* CObject: CObject. (line 6) -* Collection: Collection. (line 6) -* CompiledBlock: CompiledBlock. (line 6) -* CompiledCode: CompiledCode. (line 6) -* CompiledMethod: CompiledMethod. (line 6) -* ContextPart: ContextPart. (line 6) -* CoreException: CoreException. (line 6) -* CPtr: CPtr. (line 6) -* CPtrCType: CPtrCType. (line 6) -* CScalar: CScalar. (line 6) -* CScalarCType: CScalarCType. (line 6) -* CShort: CShort. (line 6) -* CSmalltalk: CSmalltalk. (line 6) -* CString: CString. (line 6) -* CStringCType: CStringCType. (line 6) -* CStruct: CStruct. (line 6) -* CType: CType. (line 6) -* CUChar: CUChar. (line 6) -* CUInt: CUInt. (line 6) -* CULong: CULong. (line 6) -* CUnion: CUnion. (line 6) -* CUShort: CUShort. (line 6) -* Date: Date. (line 6) -* DateTime: DateTime. (line 6) -* Delay: Delay. (line 6) -* DelayedAdaptor: DelayedAdaptor. (line 6) -* Dictionary: Dictionary. (line 6) -* DirectedMessage: DirectedMessage. (line 6) -* Directory: Directory. (line 6) -* DLD: DLD. (line 6) -* DumperProxy: DumperProxy. (line 6) -* Duration: Duration. (line 6) -* Error: Error. (line 6) -* Exception: Exception. (line 6) -* ExceptionSet: ExceptionSet. (line 6) -* False: False. (line 6) -* File: File. (line 6) -* FileDescriptor: FileDescriptor. (line 6) -* FileSegment: FileSegment. (line 6) -* FileStream: FileStream. (line 6) -* Float: Float. (line 6) -* FloatD: FloatD. (line 6) -* FloatE: FloatE. (line 6) -* FloatQ: FloatQ. (line 6) -* Fraction: Fraction. (line 6) -* Halt: Halt. (line 6) -* HashedCollection: HashedCollection. (line 6) -* HomedAssociation: HomedAssociation. (line 6) -* IdentityDictionary: IdentityDictionary. (line 6) -* IdentitySet: IdentitySet. (line 6) -* Integer: Integer. (line 6) -* Interval: Interval. (line 6) -* LargeArray: LargeArray. (line 6) +* ArithmeticError: ArithmeticError. +* Array: Array. +* ArrayedCollection: ArrayedCollection. +* Association: Association. +* Autoload: Autoload. +* AutoloadClass: AutoloadClass. +* Bag: Bag. +* Behavior: Behavior. +* BindingDictionary: BindingDictionary. +* BlockClosure: BlockClosure. +* BlockContext: BlockContext. +* Boolean: Boolean. +* ByteArray: ByteArray. +* ByteStream: ByteStream. +* CAggregate: CAggregate. +* CallinProcess: CallinProcess. +* CArray: CArray. +* CArrayCType: CArrayCType. +* CBoolean: CBoolean. +* CByte: CByte. +* CChar: CChar. +* CCompound: CCompound. +* CDouble: CDouble. +* CFloat: CFloat. +* CFunctionDescriptor: CFunctionDescriptor. +* Character: Character. +* CharacterArray: CharacterArray. +* CInt: CInt. +* Class: Class. +* ClassDescription: ClassDescription. +* CLong: CLong. +* CObject: CObject. +* Collection: Collection. +* CompiledBlock: CompiledBlock. +* CompiledCode: CompiledCode. +* CompiledMethod: CompiledMethod. +* ContextPart: ContextPart. +* CoreException: CoreException. +* CPtr: CPtr. +* CPtrCType: CPtrCType. +* CScalar: CScalar. +* CScalarCType: CScalarCType. +* CShort: CShort. +* CSmalltalk: CSmalltalk. +* CString: CString. +* CStringCType: CStringCType. +* CStruct: CStruct. +* CType: CType. +* CUChar: CUChar. +* CUInt: CUInt. +* CULong: CULong. +* CUnion: CUnion. +* CUShort: CUShort. +* Date: Date. +* DateTime: DateTime. +* Delay: Delay. +* DelayedAdaptor: DelayedAdaptor. +* Dictionary: Dictionary. +* DirectedMessage: DirectedMessage. +* Directory: Directory. +* DLD: DLD. +* DumperProxy: DumperProxy. +* Duration: Duration. +* Error: Error. +* Exception: Exception. +* ExceptionSet: ExceptionSet. +* False: False. +* File: File. +* FileDescriptor: FileDescriptor. +* FileSegment: FileSegment. +* FileStream: FileStream. +* Float: Float. +* FloatD: FloatD. +* FloatE: FloatE. +* FloatQ: FloatQ. +* Fraction: Fraction. +* Halt: Halt. +* HashedCollection: HashedCollection. +* HomedAssociation: HomedAssociation. +* IdentityDictionary: IdentityDictionary. +* IdentitySet: IdentitySet. +* Integer: Integer. +* Interval: Interval. +* LargeArray: LargeArray. * LargeArrayedCollection: LargeArrayedCollection. - (line 6) -* LargeArraySubpart: LargeArraySubpart. (line 6) -* LargeByteArray: LargeByteArray. (line 6) -* LargeInteger: LargeInteger. (line 6) -* LargeNegativeInteger: LargeNegativeInteger. (line 6) -* LargePositiveInteger: LargePositiveInteger. (line 6) -* LargeWordArray: LargeWordArray. (line 6) -* LargeZeroInteger: LargeZeroInteger. (line 6) -* Link: Link. (line 6) -* LinkedList: LinkedList. (line 6) -* LookupKey: LookupKey. (line 6) -* LookupTable: LookupTable. (line 6) -* Magnitude: Magnitude. (line 6) -* MappedCollection: MappedCollection. (line 6) -* Memory: Memory. (line 6) -* Message: Message. (line 6) -* MessageNotUnderstood: MessageNotUnderstood. (line 6) -* Metaclass: Metaclass. (line 6) -* MethodContext: MethodContext. (line 6) -* MethodDictionary: MethodDictionary. (line 6) -* MethodInfo: MethodInfo. (line 6) -* Namespace: Namespace. (line 6) +* LargeArraySubpart: LargeArraySubpart. +* LargeByteArray: LargeByteArray. +* LargeInteger: LargeInteger. +* LargeNegativeInteger: LargeNegativeInteger. +* LargePositiveInteger: LargePositiveInteger. +* LargeWordArray: LargeWordArray. +* LargeZeroInteger: LargeZeroInteger. +* Link: Link. +* LinkedList: LinkedList. +* LookupKey: LookupKey. +* LookupTable: LookupTable. +* Magnitude: Magnitude. +* MappedCollection: MappedCollection. +* Memory: Memory. +* Message: Message. +* MessageNotUnderstood: MessageNotUnderstood. +* Metaclass: Metaclass. +* MethodContext: MethodContext. +* MethodDictionary: MethodDictionary. +* MethodInfo: MethodInfo. +* Namespace: Namespace. * NetClients.URIResolver: NetClients.URIResolver. - (line 6) -* NetClients.URL: NetClients.URL. (line 6) -* Notification: Notification. (line 6) -* NullProxy: NullProxy. (line 6) -* NullValueHolder: NullValueHolder. (line 6) -* Number: Number. (line 6) -* Object: Object. (line 6) -* ObjectDumper: ObjectDumper. (line 6) -* ObjectMemory: ObjectMemory. (line 6) -* OrderedCollection: OrderedCollection. (line 6) -* Package: Package. (line 6) -* PackageLoader: PackageLoader. (line 6) -* PluggableAdaptor: PluggableAdaptor. (line 6) -* PluggableProxy: PluggableProxy. (line 6) -* Point: Point. (line 6) -* PositionableStream: PositionableStream. (line 6) -* Process: Process. (line 6) -* ProcessorScheduler: ProcessorScheduler. (line 6) -* Promise: Promise. (line 6) -* Random: Random. (line 6) -* ReadStream: ReadStream. (line 6) -* ReadWriteStream: ReadWriteStream. (line 6) -* Rectangle: Rectangle. (line 6) -* RecursionLock: RecursionLock. (line 6) -* RootNamespace: RootNamespace. (line 6) -* RunArray: RunArray. (line 6) -* ScaledDecimal: ScaledDecimal. (line 6) -* Semaphore: Semaphore. (line 6) +* NetClients.URL: NetClients.URL. +* Notification: Notification. +* NullProxy: NullProxy. +* NullValueHolder: NullValueHolder. +* Number: Number. +* Object: Object. +* ObjectDumper: ObjectDumper. +* ObjectMemory: ObjectMemory. +* OrderedCollection: OrderedCollection. +* Package: Package. +* PackageLoader: PackageLoader. +* PluggableAdaptor: PluggableAdaptor. +* PluggableProxy: PluggableProxy. +* Point: Point. +* PositionableStream: PositionableStream. +* Process: Process. +* ProcessorScheduler: ProcessorScheduler. +* Promise: Promise. +* Random: Random. +* ReadStream: ReadStream. +* ReadWriteStream: ReadWriteStream. +* Rectangle: Rectangle. +* RecursionLock: RecursionLock. +* RootNamespace: RootNamespace. +* RunArray: RunArray. +* ScaledDecimal: ScaledDecimal. +* Semaphore: Semaphore. * SequenceableCollection: SequenceableCollection. - (line 6) -* Set: Set. (line 6) -* SharedQueue: SharedQueue. (line 6) -* Signal: Signal. (line 6) -* SingletonProxy: SingletonProxy. (line 6) -* SmallInteger: SmallInteger. (line 6) -* SortedCollection: SortedCollection. (line 6) -* Stream: Stream. (line 6) -* String: String. (line 6) -* Symbol: Symbol. (line 6) -* SymLink: SymLink. (line 6) -* SystemDictionary: SystemDictionary. (line 6) +* Set: Set. +* SharedQueue: SharedQueue. +* Signal: Signal. +* SingletonProxy: SingletonProxy. +* SmallInteger: SmallInteger. +* SortedCollection: SortedCollection. +* Stream: Stream. +* String: String. +* Symbol: Symbol. +* SymLink: SymLink. +* SystemDictionary: SystemDictionary. * SystemExceptions.AlreadyDefined: SystemExceptions.AlreadyDefined. - (line 6) * SystemExceptions.ArgumentOutOfRange: SystemExceptions.ArgumentOutOfRange. - (line 6) * SystemExceptions.BadReturn: SystemExceptions.BadReturn. - (line 6) * SystemExceptions.CInterfaceError: SystemExceptions.CInterfaceError. - (line 6) * SystemExceptions.EmptyCollection: SystemExceptions.EmptyCollection. - (line 6) * SystemExceptions.EndOfStream: SystemExceptions.EndOfStream. - (line 6) * SystemExceptions.FileError: SystemExceptions.FileError. - (line 6) * SystemExceptions.IndexOutOfRange: SystemExceptions.IndexOutOfRange. - (line 6) * SystemExceptions.InvalidArgument: SystemExceptions.InvalidArgument. - (line 6) * SystemExceptions.InvalidProcessState: SystemExceptions.InvalidProcessState. - (line 6) * SystemExceptions.InvalidSize: SystemExceptions.InvalidSize. - (line 6) * SystemExceptions.InvalidValue: SystemExceptions.InvalidValue. - (line 6) * SystemExceptions.MustBeBoolean: SystemExceptions.MustBeBoolean. - (line 6) * SystemExceptions.MutationError: SystemExceptions.MutationError. - (line 6) * SystemExceptions.NoRunnableProcess: SystemExceptions.NoRunnableProcess. - (line 6) * SystemExceptions.NotFound: SystemExceptions.NotFound. - (line 6) * SystemExceptions.NotImplemented: SystemExceptions.NotImplemented. - (line 6) * SystemExceptions.NotIndexable: SystemExceptions.NotIndexable. - (line 6) * SystemExceptions.NotYetImplemented: SystemExceptions.NotYetImplemented. - (line 6) * SystemExceptions.PrimitiveFailed: SystemExceptions.PrimitiveFailed. - (line 6) * SystemExceptions.ProcessBeingTerminated: SystemExceptions.ProcessBeingTerminated. - (line 6) * SystemExceptions.ProcessTerminated: SystemExceptions.ProcessTerminated. - (line 6) * SystemExceptions.ReadOnlyObject: SystemExceptions.ReadOnlyObject. - (line 6) * SystemExceptions.ShouldNotImplement: SystemExceptions.ShouldNotImplement. - (line 6) * SystemExceptions.SubclassResponsibility: SystemExceptions.SubclassResponsibility. - (line 6) * SystemExceptions.UserInterrupt: SystemExceptions.UserInterrupt. - (line 6) * SystemExceptions.VMError: SystemExceptions.VMError. - (line 6) * SystemExceptions.WrongArgumentCount: SystemExceptions.WrongArgumentCount. - (line 6) * SystemExceptions.WrongClass: SystemExceptions.WrongClass. - (line 6) * SystemExceptions.WrongMessageSent: SystemExceptions.WrongMessageSent. - (line 6) -* TextCollector: TextCollector. (line 6) -* Time: Time. (line 6) -* TokenStream: TokenStream. (line 6) -* TrappableEvent: TrappableEvent. (line 6) -* True: True. (line 6) -* UndefinedObject: UndefinedObject. (line 6) -* ValueAdaptor: ValueAdaptor. (line 6) -* ValueHolder: ValueHolder. (line 6) -* VariableBinding: VariableBinding. (line 6) +* TextCollector: TextCollector. +* Time: Time. +* TokenStream: TokenStream. +* TrappableEvent: TrappableEvent. +* True: True. +* UndefinedObject: UndefinedObject. +* ValueAdaptor: ValueAdaptor. +* ValueHolder: ValueHolder. +* VariableBinding: VariableBinding. * VersionableObjectProxy: VersionableObjectProxy. - (line 6) * VFS.ArchiveFileHandler: VFS.ArchiveFileHandler. - (line 6) * VFS.ArchiveMemberHandler: VFS.ArchiveMemberHandler. - (line 6) * VFS.DecodedFileHandler: VFS.DecodedFileHandler. - (line 6) * VFS.ExternalArchiveFileHandler: VFS.ExternalArchiveFileHandler. - (line 6) -* VFS.RealFileHandler: VFS.RealFileHandler. (line 6) -* VFS.VFSHandler: VFS.VFSHandler. (line 6) -* Warning: Warning. (line 6) -* WeakArray: WeakArray. (line 6) -* WeakIdentitySet: WeakIdentitySet. (line 6) -* WeakKeyDictionary: WeakKeyDictionary. (line 6) +* VFS.RealFileHandler: VFS.RealFileHandler. +* VFS.VFSHandler: VFS.VFSHandler. +* Warning: Warning. +* WeakArray: WeakArray. +* WeakIdentitySet: WeakIdentitySet. +* WeakKeyDictionary: WeakKeyDictionary. * WeakKeyIdentityDictionary: WeakKeyIdentityDictionary. - (line 6) -* WeakSet: WeakSet. (line 6) +* WeakSet: WeakSet. * WeakValueIdentityDictionary: WeakValueIdentityDictionary. - (line 6) -* WeakValueLookupTable: WeakValueLookupTable. (line 6) -* WordArray: WordArray. (line 6) -* WriteStream: WriteStream. (line 6) -* ZeroDivide: ZeroDivide. (line 6) +* WeakValueLookupTable: WeakValueLookupTable. +* WordArray: WordArray. +* WriteStream: WriteStream. +* ZeroDivide: ZeroDivide. + + +File: gst-base.info, Node: Method index, Next: Cross-reference, Prev: Class index, Up: Top + +Method index +************ + +* Menu: + +* & <1>: True-basic. +* & <2>: Set-arithmetic. +* & <3>: Boolean-basic. +* &: False-basic. +* * <1>: Number-arithmetic. +* * <2>: SmallInteger-built ins. +* * <3>: LargeInteger-arithmetic. +* * <4>: LargeZeroInteger-arithmetic. +* * <5>: ScaledDecimal-arithmetic. +* * <6>: Duration-arithmetics. +* * <7>: FloatQ-built ins. +* * <8>: Fraction-arithmetic. +* * <9>: FloatE-built ins. +* * <10>: FloatD-built ins. +* *: Point-arithmetic. +* + <1>: ScaledDecimal-arithmetic. +* + <2>: LargeInteger-arithmetic. +* + <3>: FloatQ-built ins. +* + <4>: FloatE-built ins. +* + <5>: FloatD-built ins. +* + <6>: Duration-arithmetics. +* + <7>: Number-arithmetic. +* + <8>: SmallInteger-built ins. +* + <9>: LargeNegativeInteger-reverting to LargePositiveInteger. +* + <10>: DateTime-basic. +* + <11>: Point-arithmetic. +* + <12>: Fraction-arithmetic. +* + <13>: LargeZeroInteger-arithmetic. +* + <14>: CObject-pointer-like behavior. +* + <15>: LargePositiveInteger-arithmetic. +* +: Set-arithmetic. +* , <1>: Exception class-creating ExceptionCollections. +* , <2>: ArrayedCollection-basic. +* , <3>: SequenceableCollection-copying SequenceableCollections. +* , <4>: String class-basic. +* ,: TrappableEvent-instance creation. +* - <1>: CObject-pointer-like behavior. +* - <2>: Fraction-arithmetic. +* - <3>: Point-arithmetic. +* - <4>: FloatE-built ins. +* - <5>: Number-arithmetic. +* - <6>: SmallInteger-built ins. +* - <7>: ScaledDecimal-arithmetic. +* - <8>: LargePositiveInteger-arithmetic. +* - <9>: LargeNegativeInteger-reverting to LargePositiveInteger. +* - <10>: LargeZeroInteger-arithmetic. +* - <11>: Duration-arithmetics. +* - <12>: DateTime-basic. +* - <13>: LargeInteger-arithmetic. +* - <14>: FloatD-built ins. +* - <15>: FloatQ-built ins. +* -: Set-arithmetic. +* ->: Object-syntax shortcuts. +* / <1>: FloatQ-built ins. +* / <2>: FloatD-built ins. +* / <3>: LargeZeroInteger-arithmetic. +* / <4>: Duration-arithmetics. +* / <5>: FloatE-built ins. +* / <6>: Number-arithmetic. +* / <7>: ScaledDecimal-arithmetic. +* / <8>: Point-arithmetic. +* / <9>: SmallInteger-built ins. +* / <10>: Fraction-arithmetic. +* /: LargeInteger-arithmetic. +* // <1>: Number-arithmetic. +* // <2>: LargeInteger-arithmetic. +* // <3>: Point-arithmetic. +* // <4>: LargeZeroInteger-arithmetic. +* // <5>: SmallInteger-built ins. +* // <6>: ScaledDecimal-arithmetic. +* //: Fraction-arithmetic. +* < <1>: FloatQ-built ins. +* < <2>: Magnitude-basic. +* < <3>: Fraction-comparing. +* < <4>: LookupKey-testing. +* < <5>: CharacterArray-comparing. +* < <6>: Time-comparing. +* < <7>: SmallInteger-built ins. +* < <8>: Set-comparing. +* < <9>: LargeArraySubpart-comparing. +* < <10>: Point-comparing. +* < <11>: Character-comparing. +* < <12>: DateTime-testing. +* < <13>: Date-testing. +* < <14>: LargeInteger-testing. +* < <15>: FloatD-built ins. +* < <16>: ScaledDecimal-comparing. +* <: FloatE-built ins. +* <<: Stream-printing. +* <= <1>: FloatQ-built ins. +* <= <2>: LargeArraySubpart-comparing. +* <= <3>: LargeInteger-testing. +* <= <4>: ScaledDecimal-comparing. +* <= <5>: Magnitude-basic. +* <= <6>: FloatE-built ins. +* <= <7>: CharacterArray-comparing. +* <= <8>: Set-comparing. +* <= <9>: Character-comparing. +* <= <10>: Fraction-comparing. +* <= <11>: Point-comparing. +* <= <12>: SmallInteger-built ins. +* <=: FloatD-built ins. +* = <1>: CompiledMethod-basic. +* = <2>: RunArray-testing. +* = <3>: FloatQ-built ins. +* = <4>: Exception-comparison. +* = <5>: FloatD-built ins. +* = <6>: NetClients.URL-comparing. +* = <7>: Time-comparing. +* = <8>: FloatE-built ins. +* = <9>: Object-built ins. +* = <10>: Rectangle-testing. +* = <11>: Association-testing. +* = <12>: AbstractNamespace-basic & copying. +* = <13>: Bag-testing collections. +* = <14>: Class-testing. +* = <15>: Symbol-built ins. +* = <16>: LookupKey-testing. +* = <17>: ScaledDecimal-comparing. +* = <18>: FileSegment-equality. +* = <19>: MethodInfo-equality. +* = <20>: SequenceableCollection-testing. +* = <21>: CompiledCode-basic. +* = <22>: Point-comparing. +* = <23>: CompiledBlock-basic. +* = <24>: HashedCollection-testing collections. +* = <25>: DateTime-testing. +* = <26>: Delay-comparing. +* = <27>: Fraction-comparing. +* = <28>: Date-testing. +* = <29>: LargeArraySubpart-comparing. +* = <30>: Dictionary-testing. +* = <31>: Interval-testing. +* = <32>: SmallInteger-built ins. +* = <33>: LargeArrayedCollection-basic. +* = <34>: Magnitude-basic. +* = <35>: LargeInteger-testing. +* =: Character-built ins. +* == <1>: Object-built ins. +* ==: SmallInteger-built ins. +* > <1>: FloatD-built ins. +* > <2>: Set-comparing. +* > <3>: Point-comparing. +* > <4>: Character-comparing. +* > <5>: SmallInteger-built ins. +* > <6>: FloatQ-built ins. +* > <7>: Magnitude-basic. +* > <8>: Fraction-comparing. +* > <9>: CharacterArray-comparing. +* > <10>: ScaledDecimal-comparing. +* > <11>: LargeInteger-testing. +* >: FloatE-built ins. +* >= <1>: CharacterArray-comparing. +* >= <2>: FloatQ-built ins. +* >= <3>: Fraction-comparing. +* >= <4>: ScaledDecimal-comparing. +* >= <5>: FloatE-built ins. +* >= <6>: Set-comparing. +* >= <7>: LargeInteger-testing. +* >= <8>: Character-comparing. +* >= <9>: SmallInteger-built ins. +* >= <10>: Point-comparing. +* >= <11>: FloatD-built ins. +* >=: Magnitude-basic. +* >>: Behavior-accessing the methodDictionary. +* @: Number-point creation. +* \\ <1>: SmallInteger-built ins. +* \\ <2>: LargeInteger-arithmetic. +* \\ <3>: Fraction-arithmetic. +* \\ <4>: LargeZeroInteger-arithmetic. +* \\ <5>: ScaledDecimal-arithmetic. +* \\: Number-arithmetic. +* abbreviationOfDay_: Date class-basic. +* abort: ObjectMemory class-builtins. +* abs <1>: LargeNegativeInteger-numeric testing. +* abs <2>: Point-arithmetic. +* abs <3>: LargePositiveInteger-numeric testing. +* abs <4>: Number-misc math. +* abs: Duration-arithmetics. +* acceptUsageForClass_ <1>: SingletonProxy class-accessing. +* acceptUsageForClass_ <2>: DumperProxy class-accessing. +* acceptUsageForClass_: AlternativeObjectProxy class-instance creation. +* accesses_ <1>: CompiledMethod-testing. +* accesses_: CompiledCode-testing accesses. +* activePriority: ProcessorScheduler-basic. +* activeProcess: ProcessorScheduler-basic. +* add_ <1>: MappedCollection-basic. +* add_ <2>: BindingDictionary-forward declarations. +* add_ <3>: Collection-adding. +* add_ <4>: OrderedCollection-adding. +* add_ <5>: LinkedList-adding. +* add_ <6>: WeakSet-accessing. +* add_ <7>: Bag-adding. +* add_ <8>: Dictionary-accessing. +* add_ <9>: ArrayedCollection-basic. +* add_ <10>: WeakKeyDictionary-accessing. +* add_ <11>: LookupTable-accessing. +* add_: HashedCollection-accessing. +* add_after_: OrderedCollection-adding. +* add_afterIndex_ <1>: SortedCollection-disabled. +* add_afterIndex_ <2>: OrderedCollection-adding. +* add_afterIndex_: RunArray-adding. +* add_before_: OrderedCollection-adding. +* add_beforeIndex_: OrderedCollection-adding. +* add_withOccurrences_: Bag-adding. +* addAll_ <1>: OrderedCollection-adding. +* addAll_: Collection-adding. +* addAll_after_: OrderedCollection-adding. +* addAll_afterIndex_ <1>: RunArray-adding. +* addAll_afterIndex_ <2>: OrderedCollection-adding. +* addAll_afterIndex_: SortedCollection-disabled. +* addAll_before_: OrderedCollection-adding. +* addAll_beforeIndex_: OrderedCollection-adding. +* addAllFirst_ <