golist-0.3/0000777000175000017500000000000007344217152006427 5golist-0.3/Makefile.in0000644000175000017500000003120707344217146010416 # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ GNOME_CONFIG = @GNOME_CONFIG@ GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ GNOME_LIBDIR = @GNOME_LIBDIR@ GNOME_LIBS = @GNOME_LIBS@ GNORBA_CFLAGS = @GNORBA_CFLAGS@ GNORBA_LIBS = @GNORBA_LIBS@ GTKDOC = @GTKDOC@ GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ HTML_DIR = @HTML_DIR@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ JVLIBS = @JVLIBS@ JVRAND_CFLAGS = @JVRAND_CFLAGS@ JVRAND_LIBS = @JVRAND_LIBS@ LIBICONV = @LIBICONV@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ ORBIT_CFLAGS = @ORBIT_CFLAGS@ ORBIT_CONFIG = @ORBIT_CONFIG@ ORBIT_IDL = @ORBIT_IDL@ ORBIT_LIBS = @ORBIT_LIBS@ PACKAGE = @PACKAGE@ PIXMAP_DIR = @PIXMAP_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ ZVT_LIBS = @ZVT_LIBS@ SUBDIRS = intl pixmaps lib src po doc EXTRA_DIST = golist.dtd golist.desktop autogen.sh Utilitiesdir = $(datadir)/gnome/apps/Utilities Utilities_DATA = golist.desktop ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = DATA = $(Utilities_DATA) DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ INSTALL Makefile.am Makefile.in NEWS TODO aclocal.m4 config.guess \ config.h.in config.sub configure configure.ac install-sh missing \ mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status $(ACLOCAL_M4): configure.ac cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure.ac $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) config.h: stamp-h @if test ! -f $@; then \ rm -f stamp-h; \ $(MAKE) stamp-h; \ else :; fi stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES= CONFIG_HEADERS=config.h \ $(SHELL) ./config.status @echo timestamp > stamp-h 2> /dev/null $(srcdir)/config.h.in: $(srcdir)/stamp-h.in @if test ! -f $@; then \ rm -f $(srcdir)/stamp-h.in; \ $(MAKE) $(srcdir)/stamp-h.in; \ else :; fi $(srcdir)/stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null mostlyclean-hdr: clean-hdr: distclean-hdr: -rm -f config.h maintainer-clean-hdr: install-UtilitiesDATA: $(Utilities_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(Utilitiesdir) @list='$(Utilities_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(Utilitiesdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(Utilitiesdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(Utilitiesdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(Utilitiesdir)/$$p; \ fi; fi; \ done uninstall-UtilitiesDATA: @$(NORMAL_UNINSTALL) list='$(Utilities_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(Utilitiesdir)/$$p; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ test "$$subdir" = "." && dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -rm -rf $(distdir) GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz mkdir $(distdir)/=build mkdir $(distdir)/=inst dc_install_base=`cd $(distdir)/=inst && pwd`; \ cd $(distdir)/=build \ && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) dist -rm -rf $(distdir) @banner="$(distdir).tar.gz is ready for distribution"; \ dashes=`echo "$$banner" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ echo "$$dashes" dist: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) dist-all: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) distdir: $(DISTFILES) -rm -rf $(distdir) mkdir $(distdir) -chmod 777 $(distdir) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done info-am: info: info-recursive dvi-am: dvi: dvi-recursive check-am: all-am check: check-recursive installcheck-am: installcheck: installcheck-recursive all-recursive-am: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive install-exec-am: install-exec: install-exec-recursive install-data-am: install-UtilitiesDATA install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive uninstall-am: uninstall-UtilitiesDATA uninstall: uninstall-recursive all-am: Makefile $(DATA) config.h all-redirect: all-recursive-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(Utilitiesdir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive clean-am: clean-hdr clean-tags clean-generic mostlyclean-am clean: clean-recursive distclean-am: distclean-hdr distclean-tags distclean-generic clean-am distclean: distclean-recursive -rm -f config.status maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive -rm -f config.status .PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ uninstall-UtilitiesDATA install-UtilitiesDATA install-data-recursive \ uninstall-data-recursive install-exec-recursive \ uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ all-recursive check-recursive installcheck-recursive info-recursive \ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs-am \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/README0000644000175000017500000000174007341535732007231 GoList - manage a list of players and games for the asian board game Go GoList is a program which keeps a simple database of Go players and game results. It contains some code to estimate the players' Go playing strenghts. GoList is not yet finished, so you may encounter bugs or missing features. New versions of the program may be found at my home page http://www.mathematik.uni-kl.de/~wwwstoch/voss/privat.html Please mail any suggestions and bug reports to . Your message should include the GoList version number, as obtained by the command `golist --version'. INSTALLATION: You need the jvrand library from my homepage (see above) and the GNOME libraries in order to install Sanduhr. Generic installation instructions are in the file INSTALL. KNOWN BUGS: At the momen the player strength estimation does not work relieably after adding new data. To circumvent this just save the data, restart the program, and start the estimation. golist-0.3/stamp-h.in0000644000175000017500000000000007344217010010223 golist-0.3/ABOUT-NLS0000644000000000000000000004324307333021364007542 Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of July 2001. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files bg cs da de el en eo es et fi fr gl he hr id it +-------------------------------------------------+ a2ps | [] [] | bash | [] [] [] [] | bfd | | binutils | | bison | [] [] [] [] | clisp | [] [] [] [] | cpio | [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] | enscript | [] [] | error | [] [] | fetchmail | | fileutils | [] [] [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] | flex | [] [] [] | freetype | | gas | | gawk | [] | gcal | | gcc | | gettext | [] [] [] [] [] [] [] [] [] | gnupg | [] [] [] [] [] [] | gprof | | grep | [] [] [] [] [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] [] [] | jpilot | [] | kbd | | ld | | libc | [] [] [] [] [] [] [] [] | lilypond | | lynx | [] [] [] | m4 | [] [] [] [] [] [] [] | make | [] [] [] [] [] | nano | [] [] | opcodes | | parted | [] [] | ptx | [] [] [] [] [] [] [] | python | | recode | [] [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] | soundtracker | [] | sp | | tar | [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] [] | textutils | [] [] [] [] [] [] [] | util-linux | [] [] | wdiff | [] [] | wget | [] [] [] [] [] [] [] [] [] | +-------------------------------------------------+ bg cs da de el en eo es et fi fr gl he hr id it 0 13 23 30 11 1 8 21 13 1 29 22 3 0 8 10 ja ko lv nl no pl pt pt_BR ru sk sl sv tr uk zh +-------------------------------------------------+ a2ps | [] [] [] | 5 bash | | 4 bfd | | 0 binutils | | 0 bison | [] [] [] | 7 clisp | [] | 5 cpio | [] [] [] [] [] | 10 diffutils | [] [] [] | 10 enscript | [] [] [] | 5 error | [] | 3 fetchmail | | 0 fileutils | [] [] [] [] [] [] [] [] [] [] | 17 findutils | [] [] [] [] [] [] [] [] | 16 flex | [] [] [] | 6 freetype | | 0 gas | | 0 gawk | [] | 2 gcal | | 0 gcc | | 0 gettext | [] [] [] [] [] [] [] [] [] | 18 gnupg | [] [] [] [] | 10 gprof | | 0 grep | [] [] [] | 10 hello | [] [] [] [] [] [] [] [] [] [] [] | 21 id-utils | [] [] [] | 6 indent | [] [] [] [] [] [] [] | 12 jpilot | | 1 kbd | [] | 1 ld | | 0 libc | [] [] [] [] [] [] [] [] [] | 17 lilypond | [] [] | 2 lynx | [] [] [] [] [] | 8 m4 | [] [] [] [] [] | 12 make | [] [] [] [] [] [] [] | 12 nano | [] | 3 opcodes | | 0 parted | [] [] [] | 5 ptx | [] [] [] [] [] [] [] | 14 python | | 0 recode | [] [] [] [] | 13 sed | [] [] [] [] [] [] [] [] | 18 sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 20 sharutils | [] [] [] [] | 11 soundtracker | | 1 sp | | 0 tar | [] [] [] [] [] [] [] [] [] | 17 texinfo | [] [] | 7 textutils | [] [] [] [] [] [] [] [] | 15 util-linux | [] [] | 4 wdiff | [] [] [] | 5 wget | [] [] [] [] [] [] [] | 16 +-------------------------------------------------+ 31 teams ja ko lv nl no pl pt pt_BR ru sk sl sv tr uk zh 51 domains 17 9 1 23 6 17 1 13 26 9 11 20 19 2 2 369 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If July 2001 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course the GNU General Public License applies to your sources from then on if you include `gettext' directly in your distribution but since you are writing free software anyway this is no restriction. Once the sources are changed appropriately and the setup can handle to use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. golist-0.3/AUTHORS0000644000175000017500000000000007341535732007405 golist-0.3/COPYING0000644000175000017500000004311007341535732007401 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 of the License, 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 Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. golist-0.3/ChangeLog0000644000175000017500000000763707343300007010121 2001-08-29 Jochen Voss * ChangeLog: add 2001-08-29 * NEWS: Add version 0.2 * TODO: New items * configure.ac: Increased the version string to "0.2". Add src/anim/Makefile. * src/control.c: include * src/Makefile.am: Added then "anim/" subdirectory. * src/anim/.cvsignore, src/anim/frame01.xpm, src/anim/frame02.xpm, src/anim/frame03.xpm, src/anim/frame04.xpm, src/anim/frame05.xpm, src/anim/frame06.xpm, src/anim/frame07.xpm, src/anim/frame08.xpm, src/anim/frame09.xpm, src/anim/frame10.xpm, src/anim/frame11.xpm, src/anim/frame12.xpm, src/anim/frame13.xpm, src/anim/frame14.xpm, src/anim/frame15.xpm, src/anim/frame16.xpm, src/anim/frame17.xpm, src/anim/frame18.xpm, src/anim/frame19.xpm, src/anim/frame20.xpm, src/anim/frames.h, src/anim/Makefile.am: initial revision * lib/go-data.gob (class): add a const qualifier to the player argument. * lib/go-game-list.gob (select_game): use the new calling syntax. * lib/go-data.gob (add_game): call `go_client_make_game_visible' foreach client. * lib/go-client.gob (go_client_make_game_visible): new method (select_game): changed the calling syntax * src/golist.h: Changed the calling syntax for `player_manager_open' and `game_manager_open'. * src/players.xpm, src/machine.xpm, src/games.xpm: Use less colors. * src/players.c (compare_players): moved players with class!=0 down. (create_window): add a scrollbar to the playerlist. (player_manager_open): return the dialog window. * src/games.c (eg_clicked_cb): reset probability for changed games (game_manager_open): return the dialog window * src/control.c: Pressing the players or games button a second time closes the windows, now. The "calculate strengths" button got some animated graphics. 2001-08-24 Jochen Voss * ChangeLog: add 2001-08-24 * configure.ac: Increased the version string to "0.1.50". * Makefile.am: include "autogen.sh" in the distribution * autogen.sh: reorder the commands * pixmaps/.cvsignore: initial revision * .cvsignore: remove the autogen.sh script * autogen.sh, doc/.cvsignore, .cvsignore, src/.cvsignore: initial revision * configure.ac: Document PACKAGE_LOCALE_DIR * AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, NEWS, README, TODO, configure.ac, data/even-game.nb, data/scale.dat, doc/Makefile.am, doc/go-decl-list.txt, doc/go-decl.txt, doc/go-docs.sgml, doc/go-ranking.bbl, doc/go-ranking.tex, doc/go-sections.txt, doc/go-undocumented.txt, doc/go.types, doc/golit.bib, doc/html/go-golist.html, doc/html/goclient.html, doc/html/godata.html, doc/html/gogame.html, doc/html/gogamelist.html, doc/html/gohistory.html, doc/html/golist.html, doc/html/goplayer.html, doc/html/goplayerlist.html, doc/html/gostrengths.html, doc/html/index.sgml, doc/html/r13.html, doc/sgml/go-client.sgml, doc/sgml/go-data.sgml, doc/sgml/go-doc.bottom, doc/sgml/go-doc.top, doc/sgml/go-game-list.sgml, doc/sgml/go-game.sgml, doc/sgml/go-history.sgml, doc/sgml/go-player-list.sgml, doc/sgml/go-player.sgml, doc/sgml/go-strengths.sgml, doc/sgml/object_index.sgml, doc/sgml/tree_index.sgml, doc/tmpl/go-all.sgml, doc/tmpl/go-client.sgml, doc/tmpl/go-data.sgml, doc/tmpl/go-game-list.sgml, doc/tmpl/go-game.sgml, doc/tmpl/go-history.sgml, doc/tmpl/go-player-list.sgml, doc/tmpl/go-player.sgml, doc/tmpl/go-strengths.sgml, doc/tmpl/go-unused.sgml, doc/tmpl/go.sgml, doc/tmpl/golist.sgml, games.xml, golist.desktop, golist.dtd, lib/Makefile.am, lib/go-all.h, lib/go-client.gob, lib/go-data.gob, lib/go-game-list.gob, lib/go-game.gob, lib/go-history.gob, lib/go-player-list.gob, lib/go-player.gob, lib/go-strengths.gob, lib/go.h, lib/util.c, misc/board13.ps, misc/board9.ps, pixmaps/Makefile.am, pixmaps/logo.png, po/POTFILES.in, po/de.gmo, po/de.po, po/golist.pot, src/Makefile.am, src/about.c, src/control.c, src/games.c, src/games.xpm, src/golist.h, src/machine.xpm, src/main.c, src/players.c, src/players.xpm, src/print.c: imported sources golist-0.3/INSTALL0000644000175000017500000001722707341535732007411 Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. golist-0.3/Makefile.am0000644000175000017500000000034407341540722010377 ## Process this file with automake to produce Makefile.in SUBDIRS = intl pixmaps lib src po doc EXTRA_DIST = golist.dtd golist.desktop autogen.sh Utilitiesdir = $(datadir)/gnome/apps/Utilities Utilities_DATA = golist.desktop golist-0.3/NEWS0000644000175000017500000000020707344211376007043 version 0.3: bug fixes minor improvements version 0.2: improved user interface bug fixes version 0.1: first public release golist-0.3/TODO0000644000175000017500000000171607344211414007033 BUG FIXES: · player_game_index geht nicht mehr, wenn man die Liste der Spiele ändert. · edit-games und add-games gleichzeitig gibt ein Unglück · Neue Spiele: check black!=white, hc!=1 · Behandle den Fall, dass von keinem Spieler die Spielstärke bekannt ist. · Beim Ändern von Spielen gerät die Reihenfolge durcheinander. · Die Dateiliste im Öffnen-Dialog ist viel zu kurz · misc/*.ps: die Ecken der Bretter haben kleine Dellen. DEVELOPMENT: · Titel der clists übersetzen. · In das player-sheet die Spielstärken der Gegner aufnehmen. · Beim add-new-games-Dialog sinnvollere Voreinstellungen für die beiden Spieler verwenden. · "print recent games" · lib/go.h überflüssig machen · lib/go-strengths.gob: unify mu19, mu13, and mu9 · Konfidenzintervalle · Die Erwähnung des "geheimen Go-Spielabends" konfigurierbar machen. · session management ; Local Variables: ; mode: auto-fill ; paragraph-start: "[ ]*$\\|^\f\\|·\\|[A-Z]+:$" ; paragraph-separate: "[ ]*$\\|^\f" ; End: golist-0.3/aclocal.m40000644000175000017500000007764607344217001010220 dnl aclocal.m4 generated automatically by aclocal 1.4-p4 dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. # Do all the work for Automake. 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. # serial 1 dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN(AM_INIT_AUTOMAKE, [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] AC_SUBST(VERSION) dnl test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi ifelse([$3],, AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_REQUIRE([AM_SANITY_CHECK]) AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) # # Check to make sure that the build environment is sane. # AC_DEFUN(AM_SANITY_CHECK, [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "[$]*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "[$]*" != "X $srcdir/configure conftestfile" \ && test "[$]*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "[$]2" = conftestfile ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi rm -f conftest* AC_MSG_RESULT(yes)]) dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. AC_DEFUN(AM_MISSING_PROG, [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if ($2 --version) < /dev/null > /dev/null 2>&1; then $1=$2 AC_MSG_RESULT(found) else $1="$3/missing $2" AC_MSG_RESULT(missing) fi AC_SUBST($1)]) # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN(AM_CONFIG_HEADER, [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. dnl This file resides in the same directory as the config header dnl that is generated. We must strip everything past the first ":", dnl and everything past the last "/". AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, <>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, <>; do case " <<$>>CONFIG_HEADERS " in *" <<$>>am_file "*<<)>> echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ;; esac am_indx=`expr "<<$>>am_indx" + 1` done<<>>dnl>>) changequote([,]))]) dnl jvrand.m4 - check for the presence of the jvrand library dnl Copyright 2001 Jochen Voss dnl $Id: jvrand.m4,v 1.3 2001/08/18 12:20:34 voss Exp $ dnl JV_LIB_JVRAND([MINIMUM-INTERFACE-VERSION, dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Checks for an installed jvrand library with an interface version dnl of MINIMUM-INTERFACE-VERSION or above. dnl If the header file is found define HAVE_JVRAND_H. dnl Execute ACTION-IF-FOUND if a suffiently new version of jvrand dnl is found, and execute ACTION-IF-NOT-FOUND else. The default dnl action for the latter case is to print a warning message. dnl This macro sets the output variables JVRAND_CFLAGS and JVRAND_LIBS. AC_DEFUN(JV_LIB_JVRAND, [ AC_ARG_WITH(jvrand-includedir, [ --with-jvrand-includedir[=DIR] special header file location for the jvrand library],[ case "$withval" in yes|no) ;; *) JVRAND_CFLAGS="-I$withval" ;; esac ]) JVRAND_LIBS="-ljvrand" AC_ARG_WITH(jvrand-libdir, [ --with-jvrand-libdir[=DIR] special library location for the jvrand library],[ case "$withval" in yes|no) ;; *) JVRAND_LIBS="-L$withval $JVRAND_LIBS" ;; esac ]) jv_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $JVRAND_CFLAGS" AC_CHECK_HEADERS(jvrand.h,jvrand_ok=yes,jvrand_ok=no) ifelse($1,,true, if test "$jvrand_ok" = yes; then AC_MSG_CHECKING(for jvrand interface version >= $1) AC_EGREP_CPP(jvrand_version_match, [#include #if JVRAND_INTERFACE_VERSION >= $1 jvrand_version_match #endif ], AC_MSG_RESULT(yes), AC_MSG_RESULT(no) jvrand_ok=no) fi) if test "$jvrand_ok" = yes; then ifelse($2,,true,$2) else ifelse($3,, ifelse($1,,true, AC_MSG_WARN(the installed version of the jvrand library is too old!)), $3) fi CPPFLAGS="$jv_save_CPPFLAGS" AC_SUBST(JVRAND_CFLAGS) AC_SUBST(JVRAND_LIBS) ]) dnl dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits]) dnl dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh dnl is not found. dnl AC_DEFUN([GNOME_INIT_HOOK],[ AC_SUBST(GNOME_LIBS) AC_SUBST(GNOMEUI_LIBS) AC_SUBST(GNOMEGNORBA_LIBS) AC_SUBST(GTKXMHTML_LIBS) AC_SUBST(ZVT_LIBS) AC_SUBST(GNOME_LIBDIR) AC_SUBST(GNOME_INCLUDEDIR) AC_ARG_WITH(gnome-includes, [ --with-gnome-includes Specify location of GNOME headers],[ CFLAGS="$CFLAGS -I$withval" ]) AC_ARG_WITH(gnome-libs, [ --with-gnome-libs Specify location of GNOME libs],[ LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval ]) AC_ARG_WITH(gnome, [ --with-gnome Specify prefix for GNOME files], if test x$withval = xyes; then want_gnome=yes dnl Note that an empty true branch is not dnl valid sh syntax. ifelse([$1], [], :, [$1]) else if test "x$withval" = xno; then want_gnome=no else want_gnome=yes LDFLAGS="$LDFLAGS -L$withval/lib" CFLAGS="$CFLAGS -I$withval/include" gnome_prefix=$withval/lib fi fi, want_gnome=yes) if test "x$want_gnome" = xyes; then AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) if test "$GNOME_CONFIG" = "no"; then no_gnome_config="yes" else AC_MSG_CHECKING(if $GNOME_CONFIG works) if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then AC_MSG_RESULT(yes) GNOME_GNORBA_HOOK([],$2) GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" $1 else AC_MSG_RESULT(no) no_gnome_config="yes" fi fi if test x$exec_prefix = xNONE; then if test x$prefix = xNONE; then gnome_prefix=$ac_default_prefix/lib else gnome_prefix=$prefix/lib fi else gnome_prefix=`eval echo \`echo $libdir\`` fi if test "$no_gnome_config" = "yes"; then AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix) if test -f $gnome_prefix/gnomeConf.sh; then AC_MSG_RESULT(found) echo "loading gnome configuration from" \ "$gnome_prefix/gnomeConf.sh" . $gnome_prefix/gnomeConf.sh $1 else AC_MSG_RESULT(not found) if test x$2 = xfail; then AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install) fi fi fi fi if test -n "$3"; then n="$3" for i in $n; do AC_MSG_CHECKING(extra library \"$i\") case $i in applets) AC_SUBST(GNOME_APPLETS_LIBS) GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` AC_MSG_RESULT($GNOME_APPLETS_LIBS);; capplet) AC_SUBST(GNOME_CAPPLET_LIBS) GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` AC_MSG_RESULT($GNOME_CAPPLET_LIBS);; *) AC_MSG_RESULT(unknown library) esac done fi ]) dnl dnl GNOME_INIT ([additional-inits]) dnl AC_DEFUN([GNOME_INIT],[ GNOME_INIT_HOOK([],fail,$1) ]) dnl dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag) dnl dnl if failflag is "failure" it aborts if gnorba is not found. dnl AC_DEFUN([GNOME_GNORBA_HOOK],[ GNOME_ORBIT_HOOK([],$2) AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[ gnome_cv_gnorba_found=no if test x$gnome_cv_orbit_found = xyes; then GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" if test -n "$GNORBA_LIBS"; then gnome_cv_gnorba_found=yes fi fi ]) AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes) if test x$gnome_cv_orbit_found = xyes; then $1 GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" AC_SUBST(GNORBA_CFLAGS) AC_SUBST(GNORBA_LIBS) else if test x$2 = xfailure; then AC_MSG_ERROR(gnorba library not installed or installation problem) fi fi ]) AC_DEFUN([GNOME_GNORBA_CHECK], [ GNOME_GNORBA_HOOK([],failure) ]) dnl dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag) dnl dnl if failflag is "failure" it aborts if orbit is not found. dnl AC_DEFUN([GNOME_ORBIT_HOOK],[ AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no) AC_PATH_PROG(ORBIT_IDL,orbit-idl,no) AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[ if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then gnome_cv_orbit_found=no else gnome_cv_orbit_found=yes fi ]) AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes) if test x$gnome_cv_orbit_found = xyes; then $1 ORBIT_CFLAGS=`orbit-config --cflags client server` ORBIT_LIBS=`orbit-config --use-service=name --libs client server` AC_SUBST(ORBIT_CFLAGS) AC_SUBST(ORBIT_LIBS) else if test x$2 = xfailure; then AC_MSG_ERROR(ORBit not installed or installation problem) fi fi ]) AC_DEFUN([GNOME_ORBIT_CHECK], [ GNOME_ORBIT_HOOK([],failure) ]) # Define a conditional. AC_DEFUN(AM_CONDITIONAL, [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi]) # Macro to add for using GNU gettext. # Ulrich Drepper , 1995. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # serial 10 dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]). dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). Otherwise, a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. dnl LIBDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_WITH_NLS], [AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no INTLLIBS= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. CATOBJEXT=NONE dnl Add a version number to the cache macros. define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc]) define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl]) AC_CHECK_HEADER(libintl.h, [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include extern int _nl_msg_cat_cntr;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" AC_TRY_LINK([#include extern int _nl_msg_cat_cntr;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; then AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) if test "$gt_cv_func_gnugettext_libintl" = "yes"; then dnl If iconv() is in a separate libiconv library, then anyone dnl linking with libintl{.a,.so} also needs to link with dnl libiconv. INTLLIBS="-lintl $LIBICONV" fi gt_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) LIBS="$gt_save_LIBS" dnl Search for GNU msgfmt in the PATH. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext in the PATH. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :) CATOBJEXT=.gmo fi ]) if test "$CATOBJEXT" = "NONE"; then dnl GNU gettext is not found in the C library. dnl Fall back on GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. INTLOBJS="\$(GETTOBJS)" AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :) AC_SUBST(MSGFMT) BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes CATOBJEXT=.gmo INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then : ; else AC_MSG_RESULT( [found msgfmt program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi dnl We need to process the po/ directory. POSUB=po fi AC_OUTPUT_COMMANDS( [for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" fi ;; esac done]) dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext; then BUILD_INCLUDED_LIBINTL=yes fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(GMOFILES) AC_SUBST(INTLLIBS) AC_SUBST(INTLOBJS) AC_SUBST(POFILES) AC_SUBST(POSUB) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) ]) dnl Usage: Just like AM_WITH_NLS, which see. AC_DEFUN([AM_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \ getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) AM_ICONV AM_LANGINFO_CODESET AM_LC_MESSAGES AM_WITH_NLS([$1],[$2],[$3]) if test "x$CATOBJEXT" != "x"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) # Search path for a program which passes the given test. # Ulrich Drepper , 1996. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # serial 2 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) #serial 1 # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) #serial 2 # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([jm_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) #serial AM2 dnl From Bruno Haible. AC_DEFUN([AM_ICONV], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_ARG_WITH([libiconv-prefix], [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ for dir in `echo "$withval" | tr : ' '`; do if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi done ]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS -liconv" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi LIBICONV= if test "$am_cv_lib_iconv" = yes; then LIBICONV="-liconv" fi AC_SUBST(LIBICONV) ]) #serial AM1 dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) # Check whether LC_MESSAGES is available in . # Ulrich Drepper , 1995. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # serial 2 AC_DEFUN([AM_LC_MESSAGES], [if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) golist-0.3/config.guess0000755000000000000000000011270007335245040010627 #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. timestamp='2001-08-09' # 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 # the Free Software Foundation; either version 2 of the License, 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. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Written by Per Bothner . # Please send patches to . # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi dummy=dummy-$$ trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int dummy(){}" > $dummy.c ; for c in cc gcc c89 ; do ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; if test $? = 0 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; rm -f $dummy.c $dummy.o $dummy.rel ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # Netbsd (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # Determine the machine/vendor (is the vendor relevant). case "${UNAME_MACHINE}" in amiga) machine=m68k-unknown ;; arm32) machine=arm-unknown ;; atari*) machine=m68k-atari ;; sun3*) machine=m68k-sun ;; mac68k) machine=m68k-apple ;; macppc) machine=powerpc-apple ;; hp3[0-9][05]) machine=m68k-hp ;; ibmrt|romp-ibm) machine=romp-ibm ;; *) machine=${UNAME_MACHINE}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE}" in i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # 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. cat <$dummy.s .data \$Lformat: .byte 37,100,45,37,120,10,0 # "%d-%x\n" .text .globl main .align 4 .ent main main: .frame \$30,16,\$26,0 ldgp \$29,0(\$27) .prologue 1 .long 0x47e03d80 # implver \$0 lda \$2,-1 .long 0x47e20c21 # amask \$2,\$1 lda \$16,\$Lformat mov \$0,\$17 not \$1,\$18 jsr \$26,printf ldgp \$29,0(\$26) mov 0,\$16 jsr \$26,exit .end main EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null if test "$?" = 0 ; then case `./$dummy` in 0-0) UNAME_MACHINE="alpha" ;; 1-0) UNAME_MACHINE="alphaev5" ;; 1-1) UNAME_MACHINE="alphaev56" ;; 1-101) UNAME_MACHINE="alphapca56" ;; 2-303) UNAME_MACHINE="alphaev6" ;; 2-307) UNAME_MACHINE="alphaev67" ;; 2-1307) UNAME_MACHINE="alphaev68" ;; esac fi rm -f $dummy.s $dummy echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; arc64:OpenBSD:*:*) echo mips64el-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hkmips:OpenBSD:*:*) echo mips-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mips-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; atari*:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; sun3*:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.c -o $dummy \ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) case "${HPUX_REV}" in 11.[0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; esac ;; esac fi ;; esac if [ "${HP_ARCH}" = "" ]; then sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF eval $set_cc_for_build (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi rm -f $dummy.c $dummy fi ;; esac echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; hppa*:OpenBSD:*:*) echo hppa-unknown-openbsd exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*X-MP:*:*:*) echo xmp-cray-unicos exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3D:*:*:*) echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY-2:*:*:*) echo cray2-cray-unicos exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i386-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in big) echo mips-unknown-linux-gnu && exit 0 ;; little) echo mipsel-unknown-linux-gnu && exit 0 ;; esac ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. ld_supported_targets=`cd /; ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf cat >$dummy.c < #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 printf ("%s-pc-linux-gnu\n", argv[1]); # else printf ("%s-pc-linux-gnulibc1\n", argv[1]); # endif # else printf ("%s-pc-linux-gnulibc1\n", argv[1]); # endif #else printf ("%s-pc-linux-gnuaout\n", argv[1]); #endif return 0; } EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) echo `uname -p`-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) if test "${UNAME_MACHINE}" = "x86pc"; then UNAME_MACHINE=pc fi echo `uname -p`-${UNAME_MACHINE}-nto-qnx exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[KW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: golist-0.3/config.h.in0000644000175000017500000001126707344217010010366 /* config.h.in. Generated automatically from configure.ac by autoheader. */ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define if you have the header file. */ #undef HAVE_ARGZ_H /* Define if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define if you have the `feof_unlocked' function. */ #undef HAVE_FEOF_UNLOCKED /* Define if you have the `fgets_unlocked' function. */ #undef HAVE_FGETS_UNLOCKED /* Define if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define if you have the `getegid' function. */ #undef HAVE_GETEGID /* Define if you have the `geteuid' function. */ #undef HAVE_GETEUID /* Define if you have the `getgid' function. */ #undef HAVE_GETGID /* Define if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the `getuid' function. */ #undef HAVE_GETUID /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if you have the header file. */ #undef HAVE_JVRAND_H /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define if you have the header file. */ #undef HAVE_LIMITS_H /* Define if you have the header file. */ #undef HAVE_LOCALE_H /* Define if you have the header file. */ #undef HAVE_MALLOC_H /* Define if you have the header file. */ #undef HAVE_MEMORY_H /* Define if you have the `mempcpy' function. */ #undef HAVE_MEMPCPY /* Define if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define if you have the header file. */ #undef HAVE_NL_TYPES_H /* Define if you have the `putenv' function. */ #undef HAVE_PUTENV /* Define if you have the `setenv' function. */ #undef HAVE_SETENV /* Define if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define if you have the header file. */ #undef HAVE_STDDEF_H /* Define if you have the header file. */ #undef HAVE_STDLIB_H /* Define if you have the `stpcpy' function. */ #undef HAVE_STPCPY /* Define if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define if you have the header file. */ #undef HAVE_STRINGS_H /* Define if you have the header file. */ #undef HAVE_STRING_H /* Define if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define if you have the header file. */ #undef HAVE_UNISTD_H /* Define if you have the `__argz_count' function. */ #undef HAVE___ARGZ_COUNT /* Define if you have the `__argz_next' function. */ #undef HAVE___ARGZ_NEXT /* Define if you have the `__argz_stringify' function. */ #undef HAVE___ARGZ_STRINGIFY /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Name of package */ #undef PACKAGE /* path to package locale files */ #undef PACKAGE_LOCALE_DIR /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define as `__inline' if that's what the C compiler calls it, or to nothing if it is not supported. */ #undef inline /* Define to `long' if does not define. */ #undef off_t /* Define to `unsigned' if does not define. */ #undef size_t golist-0.3/config.sub0000755000000000000000000006677007335245040010311 #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. timestamp='2001-08-02' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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 # the Free Software Foundation; either version 2 of the License, 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. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -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) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dsp16xx \ | fr30 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | m32r | m68000 | m68k | m88k | mcore \ | mips16 | mips64 | mips64el | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el | mips64vr4300 \ | mips64vr4300el | mips64vr5000 | mips64vr5000el \ | mipsbe | mipsel | mipsle | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ns16k | ns32k \ | openrisc \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | s390 | s390x \ | sh | sh[34] | sh[34]eb | shbe | shle \ | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic80 | tron \ | v850 \ | we32k \ | x86 | xscale \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alphapca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armv*-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c54x-* \ | clipper-* | cray2-* | cydra-* \ | d10v-* | d30v-* \ | f30[01]-* | f700-* | fr30-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | m32r-* \ | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \ | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipsel-* \ | mipsle-* | mipstx39-* | mipstx39el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | s390-* | s390x-* \ | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \ | sparc-* | sparc64-* | sparc86x-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \ | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ | v850-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | ymp) basic_machine=ymp-cray os=-unicos ;; cray2) basic_machine=cray2-cray os=-unicos ;; [cjt]90) basic_machine=${basic_machine}-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mipsel*-linux*) basic_machine=mipsel-unknown os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; 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 ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon) basic_machine=i686-pc ;; pentiumii | pentium2) basic_machine=i686-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sparclite-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=t3e-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; windows32) basic_machine=i386-pc os=-windows32-msvcrt ;; xmp) basic_machine=xmp-cray os=-unicos ;; xps | xps100) basic_machine=xps100-honeywell ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; mips) if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips fi ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh3eb | sh4eb) basic_machine=sh-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; c4x*) basic_machine=c4x-none os=-coff ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto*) os=-nto-qnx ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: golist-0.3/configure0000755000175000017500000052423707344217004010263 #! /bin/sh # From configure.ac Revision: 1.5 . # Guess values for system-dependent variables and create Makefiles. # Generated by Autoconf 2.50 for golist 0.3. # # Report bugs to . # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Name of the executable. as_me=`echo "$0" |sed 's,.*[\\/],,'` if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file as_executable_p="test -f" # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # NLS nuisances. $as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } $as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } $as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } $as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Avoid depending upon Character Ranges. ac_cr_az='abcdefghijklmnopqrstuvwxyz' ac_cr_AZ='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ac_cr_09='0123456789' ac_cr_alnum=$ac_cr_az$ac_cr_AZ$ac_cr_09 # Sed expression to map a string onto a valid sh and CPP variable names. ac_tr_sh="sed y%*+%pp%;s%[^_$ac_cr_alnum]%_%g" ac_tr_cpp="sed y%*$ac_cr_az%P$ac_cr_AZ%;s%[^_$ac_cr_alnum]%_%g" ac_unique_file="golist.dtd" # Factoring default headers for most tests. ac_includes_default="\ #include #include #include #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # if HAVE_STRINGS_H # include # endif #endif #if HAVE_INTTYPES_H # include #endif #if HAVE_UNISTD_H # include #endif" # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' # Identity of this package. PACKAGE_NAME='golist' PACKAGE_TARNAME='golist' PACKAGE_VERSION='0.3' PACKAGE_STRING='golist 0.3' PACKAGE_BUGREPORT='voss@mathematik.uni-kl.de' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$ac_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$ac_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$ac_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$ac_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$ac_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$ac_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir \ exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; NONE ) ;; *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. build=$build_alias host=$host_alias target=$target_alias # FIXME: should be removed in autoconf 3.0. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_prog=$0 ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # 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 < if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . EOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue cd $ac_subdir # A "../" for each directory in /$ac_subdir. ac_dots=`echo $ac_subdir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` case $srcdir in .) # No --srcdir option. We are building in place. ac_sub_srcdir=$srcdir ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_sub_srcdir=$srcdir/$ac_subdir ;; *) # Relative path. ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;; esac # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_sub_srcdir/configure.gnu; then echo $SHELL $ac_sub_srcdir/configure.gnu --help=recursive elif test -f $ac_sub_srcdir/configure; then echo $SHELL $ac_sub_srcdir/configure --help=recursive elif test -f $ac_sub_srcdir/configure.ac || test -f $ac_sub_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\EOF golist configure 0.3 generated by GNU Autoconf 2.50 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. EOF exit 0 fi exec 5>config.log cat >&5 </dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` PATH = $PATH _ASUNAME } >&5 cat >&5 <\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ac_sep=" " ;; *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" ac_sep=" " ;; esac # Get rid of the leading space. done # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. trap 'exit_status=$? # Save into config.log some information that might help in debugging. echo >&5 echo "## ----------------- ##" >&5 echo "## Cache variables. ##" >&5 echo "## ----------------- ##" >&5 echo >&5 # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } >&5 sed "/^$/d" confdefs.h >conftest.log if test -s conftest.log; then echo >&5 echo "## ------------ ##" >&5 echo "## confdefs.h. ##" >&5 echo "## ------------ ##" >&5 echo >&5 cat conftest.log >&5 fi (echo; echo) >&5 test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" >&5 echo "$as_me: exit $exit_status" >&5 rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_status=$?; ac_signal='$ac_signal'; { (exit $ac_status); exit $ac_status; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:873: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} cat "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:884: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:892: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_suggest_removing_cache=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:908: WARNING: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: WARNING: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_suggest_removing_cache=: ;; ,set) { echo "$as_me:912: WARNING: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: WARNING: \`$ac_var' was not set in the previous run" >&2;} ac_suggest_removing_cache=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:918: WARNING: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: WARNING: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:920: WARNING: former value: $ac_old_val" >&5 echo "$as_me: WARNING: former value: $ac_old_val" >&2;} { echo "$as_me:922: WARNING: current value: $ac_new_val" >&5 echo "$as_me: WARNING: current value: $ac_new_val" >&2;} ac_suggest_removing_cache=: fi;; esac done if $ac_suggest_removing_cache; then { echo "$as_me:929: WARNING: changes in the environment can compromise the build" >&5 echo "$as_me: WARNING: changes in the environment can compromise the build" >&2;} { echo "$as_me:931: WARNING: consider removing $cache_file and starting over" >&5 echo "$as_me: WARNING: consider removing $cache_file and starting over" >&2;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac echo "#! $SHELL" >conftest.sh echo "exit 0" >>conftest.sh chmod +x conftest.sh if { (echo "$as_me:950: PATH=\".;.\"; conftest.sh") >&5 (PATH=".;."; conftest.sh) 2>&5 ac_status=$? echo "$as_me:953: \$? = $ac_status" >&5 (exit $ac_status); }; then ac_path_separator=';' else ac_path_separator=: fi PATH_SEPARATOR="$ac_path_separator" rm -f conftest.sh ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:979: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # 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: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:999: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_IFS=$IFS; IFS=$ac_path_separator for ac_dir in $PATH; do IFS=$ac_save_IFS # Account for people who put trailing slashes in PATH elements. case $ac_dir/ in / | ./ | .// | /cC/* \ | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ | /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if $as_executable_p "$ac_dir/$ac_prog"; then if test $ac_prog = install && grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:1048: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:1059: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:1082: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftestfile ) then # Ok. : else { { echo "$as_me:1095: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest* echo "$as_me:1102: result: yes" >&5 echo "${ECHO_T}yes" >&6 if test "$program_transform_name" = s,x,x,; then program_transform_name= else # Double any \ or $. echo might interpret backslashes. cat <<\EOF >conftest.sed s,\\,\\\\,g; s,\$,$$,g EOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed fi test "$program_prefix" != NONE && program_transform_name="s,^,${program_prefix},;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$\$,${program_suffix},;$program_transform_name" # sed with no file args requires a program. test -z "$program_transform_name" && program_transform_name="s,x,x," echo "$as_me:1123: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\EOF all: @echo 'ac_maketemp="${MAKE}"' EOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:1143: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:1147: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi PACKAGE=golist VERSION=0.3 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:1157: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi cat >>confdefs.h <>confdefs.h <&5 echo $ECHO_N "checking for working aclocal... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (aclocal --version) < /dev/null > /dev/null 2>&1; then ACLOCAL=aclocal echo "$as_me:1178: result: found" >&5 echo "${ECHO_T}found" >&6 else ACLOCAL="$missing_dir/missing aclocal" echo "$as_me:1182: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:1186: checking for working autoconf" >&5 echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoconf --version) < /dev/null > /dev/null 2>&1; then AUTOCONF=autoconf echo "$as_me:1193: result: found" >&5 echo "${ECHO_T}found" >&6 else AUTOCONF="$missing_dir/missing autoconf" echo "$as_me:1197: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:1201: checking for working automake" >&5 echo $ECHO_N "checking for working automake... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (automake --version) < /dev/null > /dev/null 2>&1; then AUTOMAKE=automake echo "$as_me:1208: result: found" >&5 echo "${ECHO_T}found" >&6 else AUTOMAKE="$missing_dir/missing automake" echo "$as_me:1212: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:1216: checking for working autoheader" >&5 echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoheader --version) < /dev/null > /dev/null 2>&1; then AUTOHEADER=autoheader echo "$as_me:1223: result: found" >&5 echo "${ECHO_T}found" >&6 else AUTOHEADER="$missing_dir/missing autoheader" echo "$as_me:1227: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi echo "$as_me:1231: checking for working makeinfo" >&5 echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (makeinfo --version) < /dev/null > /dev/null 2>&1; then MAKEINFO=makeinfo echo "$as_me:1238: result: found" >&5 echo "${ECHO_T}found" >&6 else MAKEINFO="$missing_dir/missing makeinfo" echo "$as_me:1242: result: missing" >&5 echo "${ECHO_T}missing" >&6 fi ac_config_headers="$ac_config_headers config.h" ac_config_commands="$ac_config_commands default-1" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:1258: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:1273: found $ac_dir/$ac_word" >&5 break done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:1281: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:1284: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:1293: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:1308: found $ac_dir/$ac_word" >&5 break done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:1316: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:1319: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:1332: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:1347: found $ac_dir/$ac_word" >&5 break done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:1355: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:1358: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:1367: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="cc" echo "$as_me:1382: found $ac_dir/$ac_word" >&5 break done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:1390: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:1393: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:1406: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:1426: found $ac_dir/$ac_word" >&5 break done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift set dummy "$ac_dir/$ac_word" ${1+"$@"} shift ac_cv_prog_CC="$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:1448: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:1451: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:1462: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:1477: found $ac_dir/$ac_word" >&5 break done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:1485: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:1488: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:1501: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:1516: found $ac_dir/$ac_word" >&5 break done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:1524: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:1527: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:1539: error: no acceptable cc found in \$PATH" >&5 echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} { (exit 1); exit 1; }; } cat >conftest.$ac_ext <<_ACEOF #line 1544 "configure" #include "confdefs.h" int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compiler, and finding out an intuition # of exeext. echo "$as_me:1560: checking for C compiler default output" >&5 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:1563: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:1566: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `ls a.exe conftest.exe a.* conftest conftest.* 2>/dev/null`; do case $ac_file in *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; a.out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 { { echo "$as_me:1583: error: C compiler cannot create executables" >&5 echo "$as_me: error: C compiler cannot create executables" >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:1589: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:1594: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:1600: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:1603: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:1610: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:1618: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:1625: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:1627: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:1630: checking for executable suffix" >&5 echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 if { (eval echo "$as_me:1632: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:1635: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:1651: error: cannot compute EXEEXT: cannot compile and link" >&5 echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:1657: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:1663: checking for object suffix" >&5 echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 1669 "configure" #include "confdefs.h" int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:1681: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:1684: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 { { echo "$as_me:1696: error: cannot compute OBJEXT: cannot compile" >&5 echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:1703: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:1707: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 1713 "configure" #include "confdefs.h" int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:1728: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:1731: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:1734: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:1737: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:1749: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:1755: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 1761 "configure" #include "confdefs.h" int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:1773: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:1776: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:1779: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:1782: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:1792: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:1819: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:1822: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:1825: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:1828: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ''\ '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF #line 1840 "configure" #include "confdefs.h" #include $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:1853: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:1856: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:1859: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:1862: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF #line 1872 "configure" #include "confdefs.h" $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:1884: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:1887: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:1890: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:1893: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:1922: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do # break 2 since there is a loop in there. ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line 1944 "configure" #include "confdefs.h" #include Syntax error _ACEOF if { (eval echo "$as_me:1949: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:1955: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line 1978 "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:1982: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:1988: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break 2 fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:2025: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line 2035 "configure" #include "confdefs.h" #include Syntax error _ACEOF if { (eval echo "$as_me:2040: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:2046: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line 2069 "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:2073: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:2079: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:2107: error: C preprocessor \"$CPP\" fails sanity check" >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Check whether --with-jvrand-includedir or --without-jvrand-includedir was given. if test "${with_jvrand_includedir+set}" = set; then withval="$with_jvrand_includedir" case "$withval" in yes|no) ;; *) JVRAND_CFLAGS="-I$withval" ;; esac fi; JVRAND_LIBS="-ljvrand" # Check whether --with-jvrand-libdir or --without-jvrand-libdir was given. if test "${with_jvrand_libdir+set}" = set; then withval="$with_jvrand_libdir" case "$withval" in yes|no) ;; *) JVRAND_LIBS="-L$withval $JVRAND_LIBS" ;; esac fi; jv_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $JVRAND_CFLAGS" for ac_header in jvrand.h do ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh` echo "$as_me:2148: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$ac_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 2154 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:2158: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:2164: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then eval "$ac_ac_Header=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi echo "$as_me:2183: result: `eval echo '${'$ac_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6 if test `eval echo '${'$ac_ac_Header'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_GNOME_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GNOME_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GNOME_CONFIG="$GNOME_CONFIG" # Let the user override the test with a path. ;; *) ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_GNOME_CONFIG="$ac_dir/$ac_word" echo "$as_me:2263: found $ac_dir/$ac_word" >&5 break fi done test -z "$ac_cv_path_GNOME_CONFIG" && ac_cv_path_GNOME_CONFIG="no" ;; esac fi GNOME_CONFIG=$ac_cv_path_GNOME_CONFIG if test -n "$GNOME_CONFIG"; then echo "$as_me:2275: result: $GNOME_CONFIG" >&5 echo "${ECHO_T}$GNOME_CONFIG" >&6 else echo "$as_me:2278: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$GNOME_CONFIG" = "no"; then no_gnome_config="yes" else echo "$as_me:2285: checking if $GNOME_CONFIG works" >&5 echo $ECHO_N "checking if $GNOME_CONFIG works... $ECHO_C" >&6 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then echo "$as_me:2288: result: yes" >&5 echo "${ECHO_T}yes" >&6 # Extract the first word of "orbit-config", so it can be a program name with args. set dummy orbit-config; ac_word=$2 echo "$as_me:2293: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_ORBIT_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ORBIT_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ORBIT_CONFIG="$ORBIT_CONFIG" # Let the user override the test with a path. ;; *) ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_ORBIT_CONFIG="$ac_dir/$ac_word" echo "$as_me:2310: found $ac_dir/$ac_word" >&5 break fi done test -z "$ac_cv_path_ORBIT_CONFIG" && ac_cv_path_ORBIT_CONFIG="no" ;; esac fi ORBIT_CONFIG=$ac_cv_path_ORBIT_CONFIG if test -n "$ORBIT_CONFIG"; then echo "$as_me:2322: result: $ORBIT_CONFIG" >&5 echo "${ECHO_T}$ORBIT_CONFIG" >&6 else echo "$as_me:2325: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "orbit-idl", so it can be a program name with args. set dummy orbit-idl; ac_word=$2 echo "$as_me:2331: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_ORBIT_IDL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ORBIT_IDL in [\\/]* | ?:[\\/]*) ac_cv_path_ORBIT_IDL="$ORBIT_IDL" # Let the user override the test with a path. ;; *) ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_ORBIT_IDL="$ac_dir/$ac_word" echo "$as_me:2348: found $ac_dir/$ac_word" >&5 break fi done test -z "$ac_cv_path_ORBIT_IDL" && ac_cv_path_ORBIT_IDL="no" ;; esac fi ORBIT_IDL=$ac_cv_path_ORBIT_IDL if test -n "$ORBIT_IDL"; then echo "$as_me:2360: result: $ORBIT_IDL" >&5 echo "${ECHO_T}$ORBIT_IDL" >&6 else echo "$as_me:2363: result: no" >&5 echo "${ECHO_T}no" >&6 fi echo "$as_me:2367: checking for working ORBit environment" >&5 echo $ECHO_N "checking for working ORBit environment... $ECHO_C" >&6 if test "${gnome_cv_orbit_found+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then gnome_cv_orbit_found=no else gnome_cv_orbit_found=yes fi fi echo "$as_me:2380: result: $gnome_cv_orbit_found" >&5 echo "${ECHO_T}$gnome_cv_orbit_found" >&6 if test x$gnome_cv_orbit_found = xyes; then HAVE_ORBIT_TRUE= HAVE_ORBIT_FALSE='#' else HAVE_ORBIT_TRUE='#' HAVE_ORBIT_FALSE= fi if test x$gnome_cv_orbit_found = xyes; then ORBIT_CFLAGS=`orbit-config --cflags client server` ORBIT_LIBS=`orbit-config --use-service=name --libs client server` else if test xfail = xfailure; then { { echo "$as_me:2397: error: ORBit not installed or installation problem" >&5 echo "$as_me: error: ORBit not installed or installation problem" >&2;} { (exit 1); exit 1; }; } fi fi echo "$as_me:2403: checking for gnorba libraries" >&5 echo $ECHO_N "checking for gnorba libraries... $ECHO_C" >&6 if test "${gnome_cv_gnorba_found+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gnome_cv_gnorba_found=no if test x$gnome_cv_orbit_found = xyes; then GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" if test -n "$GNORBA_LIBS"; then gnome_cv_gnorba_found=yes fi fi fi echo "$as_me:2419: result: $gnome_cv_gnorba_found" >&5 echo "${ECHO_T}$gnome_cv_gnorba_found" >&6 if test x$gnome_cv_gnorba_found = xyes; then HAVE_GNORBA_TRUE= HAVE_GNORBA_FALSE='#' else HAVE_GNORBA_TRUE='#' HAVE_GNORBA_FALSE= fi if test x$gnome_cv_orbit_found = xyes; then GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" else if test xfail = xfailure; then { { echo "$as_me:2436: error: gnorba library not installed or installation problem" >&5 echo "$as_me: error: gnorba library not installed or installation problem" >&2;} { (exit 1); exit 1; }; } fi fi GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" else echo "$as_me:2451: result: no" >&5 echo "${ECHO_T}no" >&6 no_gnome_config="yes" fi fi if test x$exec_prefix = xNONE; then if test x$prefix = xNONE; then gnome_prefix=$ac_default_prefix/lib else gnome_prefix=$prefix/lib fi else gnome_prefix=`eval echo \`echo $libdir\`` fi if test "$no_gnome_config" = "yes"; then echo "$as_me:2468: checking for gnomeConf.sh file in $gnome_prefix" >&5 echo $ECHO_N "checking for gnomeConf.sh file in $gnome_prefix... $ECHO_C" >&6 if test -f $gnome_prefix/gnomeConf.sh; then echo "$as_me:2471: result: found" >&5 echo "${ECHO_T}found" >&6 echo "loading gnome configuration from" \ "$gnome_prefix/gnomeConf.sh" . $gnome_prefix/gnomeConf.sh else echo "$as_me:2478: result: not found" >&5 echo "${ECHO_T}not found" >&6 if test xfail = xfail; then { { echo "$as_me:2481: error: Could not find the gnomeConf.sh file that is generated by gnome-libs install" >&5 echo "$as_me: error: Could not find the gnomeConf.sh file that is generated by gnome-libs install" >&2;} { (exit 1); exit 1; }; } fi fi fi fi if test -n ""; then n="" for i in $n; do echo "$as_me:2492: checking extra library \"$i\"" >&5 echo $ECHO_N "checking extra library \"$i\"... $ECHO_C" >&6 case $i in applets) GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` echo "$as_me:2498: result: $GNOME_APPLETS_LIBS" >&5 echo "${ECHO_T}$GNOME_APPLETS_LIBS" >&6;; capplet) GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` echo "$as_me:2503: result: $GNOME_CAPPLET_LIBS" >&5 echo "${ECHO_T}$GNOME_CAPPLET_LIBS" >&6;; *) echo "$as_me:2506: result: unknown library" >&5 echo "${ECHO_T}unknown library" >&6 esac done fi ALL_LINGUAS="de" # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:2515: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:2519: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:2528: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:2532: error: $ac_config_sub $ac_cv_build_alias failed." >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:2537: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:2544: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:2553: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:2558: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:2568: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:2583: found $ac_dir/$ac_word" >&5 break done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:2591: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:2594: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:2603: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:2618: found $ac_dir/$ac_word" >&5 break done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:2627: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:2630: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi echo "$as_me:2639: checking for strerror in -lcposix" >&5 echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 if test "${ac_cv_lib_cposix_strerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat >conftest.$ac_ext <<_ACEOF #line 2647 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char strerror (); int main () { strerror (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:2666: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:2669: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:2672: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:2675: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_cposix_strerror=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_lib_cposix_strerror=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:2686: result: $ac_cv_lib_cposix_strerror" >&5 echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 if test $ac_cv_lib_cposix_strerror = yes; then LIBS="$LIBS -lcposix" fi echo "$as_me:2692: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 2698 "configure" #include "confdefs.h" #include #include #include #include _ACEOF if { (eval echo "$as_me:2706: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:2712: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line 2734 "configure" #include "confdefs.h" #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line 2752 "configure" #include "confdefs.h" #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF #line 2773 "configure" #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:2799: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:2802: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:2804: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:2807: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext fi fi fi echo "$as_me:2820: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\EOF #define STDC_HEADERS 1 EOF fi echo "$as_me:2830: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF #line 2838 "configure" #include "confdefs.h" #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:2887: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:2890: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:2893: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:2896: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:2913: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:2916: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac echo "$as_me:2921: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 2927 "configure" #include "confdefs.h" int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; ccp = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++ccp; p = (char**) ccp; ccp = (char const *const *) p; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; } #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:2985: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:2988: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:2991: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:2994: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:3004: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 if test $ac_cv_c_const = no; then cat >>confdefs.h <<\EOF #define const EOF fi echo "$as_me:3014: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6 if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF #line 3022 "configure" #include "confdefs.h" #ifndef __cplusplus static $ac_kw int static_foo () {return 0; } $ac_kw int foo () {return 0; } #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:3031: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:3034: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:3037: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3040: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_inline=$ac_kw; break else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done fi echo "$as_me:3051: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6 case $ac_cv_c_inline in inline | yes) ;; no) cat >>confdefs.h <<\EOF #define inline EOF ;; *) cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$ac_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3075 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:3079: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:3085: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then eval "$ac_ac_Header=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi echo "$as_me:3104: result: `eval echo '${'$ac_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6 if test `eval echo '${'$ac_ac_Header'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for off_t... $ECHO_C" >&6 if test "${ac_cv_type_off_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3120 "configure" #include "confdefs.h" $ac_includes_default int main () { if ((off_t *) 0) return 0; if (sizeof (off_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:3135: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:3138: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:3141: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3144: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_off_t=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_type_off_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:3154: result: $ac_cv_type_off_t" >&5 echo "${ECHO_T}$ac_cv_type_off_t" >&6 if test $ac_cv_type_off_t = yes; then : else cat >>confdefs.h <&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6 if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3172 "configure" #include "confdefs.h" $ac_includes_default int main () { if ((size_t *) 0) return 0; if (sizeof (size_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:3187: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:3190: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:3193: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3196: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:3206: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <&5 echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 if test "${ac_cv_working_alloca_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3226 "configure" #include "confdefs.h" #include int main () { char *p = (char *) alloca (2 * sizeof (int)); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:3238: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3241: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:3244: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3247: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_working_alloca_h=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_working_alloca_h=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:3257: result: $ac_cv_working_alloca_h" >&5 echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 if test $ac_cv_working_alloca_h = yes; then cat >>confdefs.h <<\EOF #define HAVE_ALLOCA_H 1 EOF fi echo "$as_me:3267: checking for alloca" >&5 echo $ECHO_N "checking for alloca... $ECHO_C" >&6 if test "${ac_cv_func_alloca_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3273 "configure" #include "confdefs.h" #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # if HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:3305: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3308: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:3311: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3314: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_alloca_works=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_func_alloca_works=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:3324: result: $ac_cv_func_alloca_works" >&5 echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 if test $ac_cv_func_alloca_works = yes; then cat >>confdefs.h <<\EOF #define HAVE_ALLOCA 1 EOF else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=alloca.$ac_objext cat >>confdefs.h <<\EOF #define C_ALLOCA 1 EOF echo "$as_me:3345: checking whether \`alloca.c' needs Cray hooks" >&5 echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 if test "${ac_cv_os_cray+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3351 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "webecray" >/dev/null 2>&1; then ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi echo "$as_me:3369: result: $ac_cv_os_cray" >&5 echo "${ECHO_T}$ac_cv_os_cray" >&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh` echo "$as_me:3374: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$ac_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3380 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); char (*f) (); int main () { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else f = $ac_func; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:3411: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3414: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:3417: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3420: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$ac_ac_var=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:3430: result: `eval echo '${'$ac_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_var'}'`" >&6 if test `eval echo '${'$ac_ac_var'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 if test "${ac_cv_c_stack_direction+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF #line 3453 "configure" #include "confdefs.h" int find_stack_direction () { static char *addr = 0; auto char dummy; if (addr == 0) { addr = &dummy; return find_stack_direction (); } else return (&dummy > addr) ? 1 : -1; } int main () { exit (find_stack_direction () < 0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:3476: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3479: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:3481: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3484: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_stack_direction=1 else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_c_stack_direction=-1 fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext fi fi echo "$as_me:3496: result: $ac_cv_c_stack_direction" >&5 echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$ac_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3514 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:3518: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:3524: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then eval "$ac_ac_Header=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi echo "$as_me:3543: result: `eval echo '${'$ac_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6 if test `eval echo '${'$ac_ac_Header'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$ac_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3562 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); char (*f) (); int main () { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else f = $ac_func; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:3593: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3596: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:3599: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3602: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$ac_ac_var=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:3612: result: `eval echo '${'$ac_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_var'}'`" >&6 if test `eval echo '${'$ac_ac_var'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_mmap_fixed_mapped=no else cat >conftest.$ac_ext <<_ACEOF #line 3631 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propogated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include #include #include #if STDC_HEADERS || HAVE_STDLIB_H # include #else char *malloc (); #endif #if HAVE_UNISTD_H # include #endif #include /* This mess was copied from the GNU getpagesize.h. */ #if !HAVE_GETPAGESIZE /* Assume that all systems that can run configure have sys/param.h. */ # if !HAVE_SYS_PARAM_H # define HAVE_SYS_PARAM_H 1 # endif # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # if HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; int i, pagesize; int fd; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) exit (1); for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) exit (1); if (write (fd, data, pagesize) != pagesize) exit (1); close (fd); /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) exit (1); data2 = (char *) malloc (2 * pagesize); if (!data2) exit (1); data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) exit (1); /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) exit (1); if (read (fd, data3, pagesize) != pagesize) exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) exit (1); close (fd); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:3763: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3766: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:3768: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3771: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mmap_fixed_mapped=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_func_mmap_fixed_mapped=no fi rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext fi fi echo "$as_me:3783: result: $ac_cv_func_mmap_fixed_mapped" >&5 echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 if test $ac_cv_func_mmap_fixed_mapped = yes; then cat >>confdefs.h <<\EOF #define HAVE_MMAP 1 EOF fi rm -f conftest.mmap echo "$as_me:3794: checking whether we are using the GNU C Library 2.1 or newer" >&5 echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6 if test "${ac_cv_gnu_library_2_1+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3800 "configure" #include "confdefs.h" #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "Lucky GNU user" >/dev/null 2>&1; then ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi echo "$as_me:3820: result: $ac_cv_gnu_library_2_1" >&5 echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6 GLIBC21="$ac_cv_gnu_library_2_1" for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h do ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh` echo "$as_me:3829: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$ac_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3835 "configure" #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:3839: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:3845: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then eval "$ac_ac_Header=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi echo "$as_me:3864: result: `eval echo '${'$ac_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6 if test `eval echo '${'$ac_ac_Header'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$ac_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 3885 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); char (*f) (); int main () { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else f = $ac_func; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:3916: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3919: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:3922: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3925: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$ac_ac_var=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:3935: result: `eval echo '${'$ac_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_var'}'`" >&6 if test `eval echo '${'$ac_ac_var'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for iconv... $ECHO_C" >&6 if test "${am_cv_func_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat >conftest.$ac_ext <<_ACEOF #line 3965 "configure" #include "confdefs.h" #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:3980: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:3983: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:3986: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:3989: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS -liconv" cat >conftest.$ac_ext <<_ACEOF #line 4001 "configure" #include "confdefs.h" #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:4016: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:4019: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:4022: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4025: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi echo "$as_me:4038: result: $am_cv_func_iconv" >&5 echo "${ECHO_T}$am_cv_func_iconv" >&6 if test "$am_cv_func_iconv" = yes; then cat >>confdefs.h <<\EOF #define HAVE_ICONV 1 EOF echo "$as_me:4046: checking for iconv declaration" >&5 echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6 if test "${am_cv_proto_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 4053 "configure" #include "confdefs.h" #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:4077: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:4080: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:4083: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4086: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_proto_iconv_arg1="" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 am_cv_proto_iconv_arg1="const" fi rm -f conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` echo "$as_me:4099: result: ${ac_t:- }$am_cv_proto_iconv" >&5 echo "${ECHO_T}${ac_t:- }$am_cv_proto_iconv" >&6 cat >>confdefs.h <&5 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 if test "${am_cv_langinfo_codeset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 4120 "configure" #include "confdefs.h" #include int main () { char* cs = nl_langinfo(CODESET); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:4132: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:4135: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:4138: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4141: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_langinfo_codeset=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 am_cv_langinfo_codeset=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:4152: result: $am_cv_langinfo_codeset" >&5 echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 if test $am_cv_langinfo_codeset = yes; then cat >>confdefs.h <<\EOF #define HAVE_LANGINFO_CODESET 1 EOF fi if test $ac_cv_header_locale_h = yes; then echo "$as_me:4163: checking for LC_MESSAGES" >&5 echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 if test "${am_cv_val_LC_MESSAGES+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 4169 "configure" #include "confdefs.h" #include int main () { return LC_MESSAGES ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:4181: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:4184: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:4187: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4190: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_val_LC_MESSAGES=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 am_cv_val_LC_MESSAGES=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:4200: result: $am_cv_val_LC_MESSAGES" >&5 echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 if test $am_cv_val_LC_MESSAGES = yes; then cat >>confdefs.h <<\EOF #define HAVE_LC_MESSAGES 1 EOF fi fi echo "$as_me:4210: checking whether NLS is requested" >&5 echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" USE_NLS=$enableval else USE_NLS=yes fi; echo "$as_me:4219: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6 BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no INTLLIBS= if test "$USE_NLS" = "yes"; then cat >>confdefs.h <<\EOF #define ENABLE_NLS 1 EOF echo "$as_me:4232: checking whether included gettext is requested" >&5 echo $ECHO_N "checking whether included gettext is requested... $ECHO_C" >&6 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" nls_cv_force_use_gnu_gettext=$withval else nls_cv_force_use_gnu_gettext=no fi; echo "$as_me:4242: result: $nls_cv_force_use_gnu_gettext" >&5 echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then CATOBJEXT=NONE echo "$as_me:4249: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6 if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 4255 "configure" #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:4259: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:4265: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_cv_header_libintl_h=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_header_libintl_h=no fi rm -f conftest.err conftest.$ac_ext fi echo "$as_me:4284: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6 if test $ac_cv_header_libintl_h = yes; then echo "$as_me:4287: checking for GNU gettext in libc" >&5 echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 if test "${gt_cv_func_gnugettext1_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 4293 "configure" #include "confdefs.h" #include extern int _nl_msg_cat_cntr; int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:4307: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:4310: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:4313: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4316: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_gnugettext1_libc=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 gt_cv_func_gnugettext1_libc=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:4326: result: $gt_cv_func_gnugettext1_libc" >&5 echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6 if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo "$as_me:4330: checking for GNU gettext in libintl" >&5 echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat >conftest.$ac_ext <<_ACEOF #line 4338 "configure" #include "confdefs.h" #include extern int _nl_msg_cat_cntr; int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:4352: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:4355: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:4358: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4361: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_gnugettext1_libintl=yes else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 gt_cv_func_gnugettext1_libintl=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi echo "$as_me:4372: result: $gt_cv_func_gnugettext1_libintl" >&5 echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6 fi if test "$gt_cv_func_gnugettext1_libc" = "yes" \ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; then cat >>confdefs.h <<\EOF #define HAVE_GETTEXT 1 EOF if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then INTLLIBS="-lintl $LIBICONV" fi gt_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh` echo "$as_me:4394: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$ac_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line 4400 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); char (*f) (); int main () { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else f = $ac_func; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:4431: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:4434: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:4437: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:4440: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$ac_ac_var=yes" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 eval "$ac_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:4450: result: `eval echo '${'$ac_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$ac_ac_var'}'`" >&6 if test `eval echo '${'$ac_ac_var'}'` = yes; then cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then echo "$as_me:4491: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6 else echo "$as_me:4494: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo "$as_me:4500: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_GMSGFMT="$ac_dir/$ac_word" echo "$as_me:4517: found $ac_dir/$ac_word" >&5 break fi done test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then echo "$as_me:4529: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6 else echo "$as_me:4532: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo "$as_me:4538: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then echo "$as_me:4565: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6 else echo "$as_me:4568: result: no" >&5 echo "${ECHO_T}no" >&6 fi CATOBJEXT=.gmo fi fi if test "$CATOBJEXT" = "NONE"; then nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then INTLOBJS="\$(GETTOBJS)" # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo "$as_me:4586: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then echo "$as_me:4613: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6 else echo "$as_me:4616: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo "$as_me:4622: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_GMSGFMT="$ac_dir/$ac_word" echo "$as_me:4639: found $ac_dir/$ac_word" >&5 break fi done test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then echo "$as_me:4651: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6 else echo "$as_me:4654: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo "$as_me:4660: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then echo "$as_me:4687: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6 else echo "$as_me:4690: result: no" >&5 echo "${ECHO_T}no" >&6 fi BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes CATOBJEXT=.gmo INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$GMSGFMT" != ":"; then if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then : ; else echo "$as_me:4705: result: found msgfmt program is not GNU msgfmt; ignore it" >&5 echo "${ECHO_T}found msgfmt program is not GNU msgfmt; ignore it" >&6 GMSGFMT=":" fi fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then : ; else echo "$as_me:4715: result: found xgettext program is not GNU xgettext; ignore it" >&5 echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 XGETTEXT=":" fi fi POSUB=po fi ac_config_commands="$ac_config_commands default-2" if test "$PACKAGE" = gettext; then BUILD_INCLUDED_LIBINTL=yes fi for ac_prog in bison do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:4733: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_INTLBISON+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$INTLBISON"; then ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_INTLBISON="$ac_prog" echo "$as_me:4748: found $ac_dir/$ac_word" >&5 break done fi fi INTLBISON=$ac_cv_prog_INTLBISON if test -n "$INTLBISON"; then echo "$as_me:4756: result: $INTLBISON" >&5 echo "${ECHO_T}$INTLBISON" >&6 else echo "$as_me:4759: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$INTLBISON" && break done if test -z "$INTLBISON"; then ac_verc_fail=yes else echo "$as_me:4769: checking version of bison" >&5 echo $ECHO_N "checking version of bison... $ECHO_C" >&6 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac echo "$as_me:4778: result: $ac_prog_version" >&5 echo "${ECHO_T}$ac_prog_version" >&6 fi if test $ac_verc_fail = yes; then INTLBISON=: fi for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done nls_cv_header_intl= nls_cv_header_libgt= DATADIRNAME=share INSTOBJEXT=.mo GENCAT=gencat if test "x$CATOBJEXT" != "x"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else echo "$as_me:4803: checking for catalogs to be installed" >&5 echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6 NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS echo "$as_me:4823: result: $LINGUAS" >&5 echo "${ECHO_T}$LINGUAS" >&6 fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi INTL_LIBTOOL_SUFFIX_PREFIX= if test "x${prefix}" = "xNONE"; then cat >>confdefs.h <>confdefs.h <&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_GTKDOC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$GTKDOC"; then ac_cv_prog_GTKDOC="$GTKDOC" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_GTKDOC="true" echo "$as_me:4890: found $ac_dir/$ac_word" >&5 break done test -z "$ac_cv_prog_GTKDOC" && ac_cv_prog_GTKDOC="false" fi fi GTKDOC=$ac_cv_prog_GTKDOC if test -n "$GTKDOC"; then echo "$as_me:4899: result: $GTKDOC" >&5 echo "${ECHO_T}$GTKDOC" >&6 else echo "$as_me:4902: result: no" >&5 echo "${ECHO_T}no" >&6 fi gtk_doc_min_version=0.6 if $GTKDOC ; then gtk_doc_version=`gtkdoc-mkdb --version` echo "$as_me:4909: checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version" >&5 echo $ECHO_N "checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version... $ECHO_C" >&6 if perl <= "$gtk_doc_min_version") ? 0 : 1); EOF echo "$as_me:4915: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:4918: result: no" >&5 echo "${ECHO_T}no" >&6 GTKDOC=false fi fi # Check whether --enable-gtk-doc or --disable-gtk-doc was given. if test "${enable_gtk_doc+set}" = set; then enableval="$enable_gtk_doc" enable_gtk_doc="$enableval" else enable_gtk_doc=auto fi; if test x$enable_gtk_doc = xauto ; then if test x$GTKDOC = xtrue ; then enable_gtk_doc=yes else enable_gtk_doc=no fi fi if test x$enable_gtk_doc = xyes; then ENABLE_GTK_DOC_TRUE= ENABLE_GTK_DOC_FALSE='#' else ENABLE_GTK_DOC_TRUE='#' ENABLE_GTK_DOC_FALSE= fi ################################################## ac_config_files="$ac_config_files Makefile intl/Makefile pixmaps/Makefile lib/Makefile src/Makefile src/anim/Makefile po/Makefile.in doc/Makefile" cat >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 # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overriden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if cmp -s $cache_file confcache; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:5031: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated automatically by configure. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false SHELL=\${CONFIG_SHELL-$SHELL} ac_cs_invocation="\$0 \$@" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Name of the executable. as_me=`echo "$0" |sed 's,.*[\\/],,'` if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file as_executable_p="test -f" # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # NLS nuisances. $as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } $as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } $as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } $as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } exec 6>&1 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\EOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." EOF cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` shift set dummy "$ac_option" "$ac_optarg" ${1+"$@"} shift ;; -*);; *) # This is not an option, so the user has probably given explicit # arguments. ac_need_defaults=false;; esac case $1 in # Handling of the options. EOF cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:5207: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) shift CONFIG_FILES="$CONFIG_FILES $1" ac_need_defaults=false;; --header | --heade | --head | --hea ) shift CONFIG_HEADERS="$CONFIG_HEADERS $1" ac_need_defaults=false;; # Handling of arguments. 'Makefile' ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; 'intl/Makefile' ) CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; 'pixmaps/Makefile' ) CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; 'lib/Makefile' ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; 'src/Makefile' ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; 'src/anim/Makefile' ) CONFIG_FILES="$CONFIG_FILES src/anim/Makefile" ;; 'po/Makefile.in' ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; 'doc/Makefile' ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; 'default-1' ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; 'default-2' ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; 'config.h' ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; # This is an error. -*) { { echo "$as_me:5239: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) { { echo "$as_me:5244: error: invalid argument: $1" >&5 echo "$as_me: error: invalid argument: $1" >&2;} { (exit 1); exit 1; }; };; esac shift done exec 5>>config.log cat >&5 << _ACEOF ## ----------------------- ## ## Running config.status. ## ## ----------------------- ## This file was extended by $as_me (golist 0.3) 2.50, executed with > $ac_cs_invocation on `(hostname || uname -n) 2>/dev/null | sed 1q` _ACEOF EOF cat >>$CONFIG_STATUS <<\EOF # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit $?); exit $?; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/cs$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } EOF cat >>$CONFIG_STATUS <>$CONFIG_STATUS <\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@DEFS@,$DEFS,;t t s,@LIBS@,$LIBS,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@CPP@,$CPP,;t t s,@JVRAND_CFLAGS@,$JVRAND_CFLAGS,;t t s,@JVRAND_LIBS@,$JVRAND_LIBS,;t t s,@JVLIBS@,$JVLIBS,;t t s,@GNOME_LIBS@,$GNOME_LIBS,;t t s,@GNOMEUI_LIBS@,$GNOMEUI_LIBS,;t t s,@GNOMEGNORBA_LIBS@,$GNOMEGNORBA_LIBS,;t t s,@GTKXMHTML_LIBS@,$GTKXMHTML_LIBS,;t t s,@ZVT_LIBS@,$ZVT_LIBS,;t t s,@GNOME_LIBDIR@,$GNOME_LIBDIR,;t t s,@GNOME_INCLUDEDIR@,$GNOME_INCLUDEDIR,;t t s,@GNOME_CONFIG@,$GNOME_CONFIG,;t t s,@ORBIT_CONFIG@,$ORBIT_CONFIG,;t t s,@ORBIT_IDL@,$ORBIT_IDL,;t t s,@HAVE_ORBIT_TRUE@,$HAVE_ORBIT_TRUE,;t t s,@HAVE_ORBIT_FALSE@,$HAVE_ORBIT_FALSE,;t t s,@ORBIT_CFLAGS@,$ORBIT_CFLAGS,;t t s,@ORBIT_LIBS@,$ORBIT_LIBS,;t t s,@HAVE_GNORBA_TRUE@,$HAVE_GNORBA_TRUE,;t t s,@HAVE_GNORBA_FALSE@,$HAVE_GNORBA_FALSE,;t t s,@GNORBA_CFLAGS@,$GNORBA_CFLAGS,;t t s,@GNORBA_LIBS@,$GNORBA_LIBS,;t t s,@GNOME_APPLETS_LIBS@,$GNOME_APPLETS_LIBS,;t t s,@GNOME_CAPPLET_LIBS@,$GNOME_CAPPLET_LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@ALLOCA@,$ALLOCA,;t t s,@GLIBC21@,$GLIBC21,;t t s,@LIBICONV@,$LIBICONV,;t t s,@USE_NLS@,$USE_NLS,;t t s,@MSGFMT@,$MSGFMT,;t t s,@GMSGFMT@,$GMSGFMT,;t t s,@XGETTEXT@,$XGETTEXT,;t t s,@INTLBISON@,$INTLBISON,;t t s,@BUILD_INCLUDED_LIBINTL@,$BUILD_INCLUDED_LIBINTL,;t t s,@USE_INCLUDED_LIBINTL@,$USE_INCLUDED_LIBINTL,;t t s,@CATALOGS@,$CATALOGS,;t t s,@CATOBJEXT@,$CATOBJEXT,;t t s,@GMOFILES@,$GMOFILES,;t t s,@INTLLIBS@,$INTLLIBS,;t t s,@INTLOBJS@,$INTLOBJS,;t t s,@POFILES@,$POFILES,;t t s,@POSUB@,$POSUB,;t t s,@DATADIRNAME@,$DATADIRNAME,;t t s,@INSTOBJEXT@,$INSTOBJEXT,;t t s,@GENCAT@,$GENCAT,;t t s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t s,@INTL_LIBTOOL_SUFFIX_PREFIX@,$INTL_LIBTOOL_SUFFIX_PREFIX,;t t s,@PIXMAP_DIR@,$PIXMAP_DIR,;t t s,@HTML_DIR@,$HTML_DIR,;t t s,@GTKDOC@,$GTKDOC,;t t s,@ENABLE_GTK_DOC_TRUE@,$ENABLE_GTK_DOC_TRUE,;t t s,@ENABLE_GTK_DOC_FALSE@,$ENABLE_GTK_DOC_FALSE,;t t CEOF EOF cat >>$CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" EOF cat >>$CONFIG_STATUS <<\EOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then { case "$ac_dir" in [\\/]* | ?:[\\/]* ) as_incr_dir=;; *) as_incr_dir=.;; esac as_dummy="$ac_dir" for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do case $as_mkdir_dir in # Skip DOS drivespec ?:) as_incr_dir=$as_mkdir_dir ;; *) as_incr_dir=$as_incr_dir/$as_mkdir_dir test -d "$as_incr_dir" || mkdir "$as_incr_dir" ;; esac done; } ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`" # A "../" for each directory in $ac_dir_suffix. ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` else ac_dir_suffix= ac_dots= fi case $srcdir in .) ac_srcdir=. if test -z "$ac_dots"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_dots$srcdir$ac_dir_suffix ac_top_srcdir=$ac_dots$srcdir ;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_dots$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:5539: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated automatically by config.status. */ configure_input="Generated automatically from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:5557: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:5570: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } EOF cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done EOF cat >>$CONFIG_STATUS <<\EOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:5631: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:5642: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:5655: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in EOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\EOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end EOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\EOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, EOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # egrep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\EOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated automatically by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated automatically by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if cmp -s $ac_file $tmp/config.h 2>/dev/null; then { echo "$as_me:5772: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then { case "$ac_dir" in [\\/]* | ?:[\\/]* ) as_incr_dir=;; *) as_incr_dir=.;; esac as_dummy="$ac_dir" for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do case $as_mkdir_dir in # Skip DOS drivespec ?:) as_incr_dir=$as_mkdir_dir ;; *) as_incr_dir=$as_incr_dir/$as_mkdir_dir test -d "$as_incr_dir" || mkdir "$as_incr_dir" ;; esac done; } fi rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi done EOF cat >>$CONFIG_STATUS <<\EOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` case $ac_dest in default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; default-2 ) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" fi ;; esac done ;; esac done EOF cat >>$CONFIG_STATUS <<\EOF { (exit 0); exit 0; } EOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: exec 5>/dev/null $SHELL $CONFIG_STATUS || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi golist-0.3/configure.ac0000644000175000017500000000435007344207307010634 dnl Process this file with autoconf to produce a configure script. AC_INIT(golist, 0.3, voss@mathematik.uni-kl.de) AC_CONFIG_SRCDIR([golist.dtd]) AM_INIT_AUTOMAKE(golist, 0.3) AM_CONFIG_HEADER(config.h) AC_REVISION($Revision: 1.5 $) dnl checks for programs AC_PROG_CC dnl checks for libraries JV_LIB_JVRAND JVLIBS=`gnome-config --libs gnome gnomeui print xml` AC_SUBST(JVLIBS) dnl checks for header files GNOME_INIT dnl Add the languages which your application supports here. ALL_LINGUAS="de" AM_GNU_GETTEXT dnl Set PACKAGE_LOCALE_DIR in config.h. if test "x${prefix}" = "xNONE"; then AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale", [path to package locale files]) else AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale") fi PIXMAP_DIR='$(datadir)/pixmaps/golist' AC_SUBST(PIXMAP_DIR) ################################################## # Check for gtk-doc. ################################################## AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) if test "x$with_html_dir" = "x" ; then HTML_DIR='${datadir}/gtk-doc/html' else HTML_DIR=$with_html_dir fi AC_SUBST(HTML_DIR) AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false) gtk_doc_min_version=0.6 if $GTKDOC ; then gtk_doc_version=`gtkdoc-mkdb --version` AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version]) if perl <= "$gtk_doc_min_version") ? 0 : 1); EOF AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) GTKDOC=false fi fi dnl Let people disable the gtk-doc stuff. AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) if test x$enable_gtk_doc = xauto ; then if test x$GTKDOC = xtrue ; then enable_gtk_doc=yes else enable_gtk_doc=no fi fi AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) ################################################## AC_CONFIG_FILES([ Makefile intl/Makefile pixmaps/Makefile lib/Makefile src/Makefile src/anim/Makefile po/Makefile.in doc/Makefile ]) AC_OUTPUT golist-0.3/install-sh0000755000000000000000000001273607311053504010317 #!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # 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. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # 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}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" 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 true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir 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 -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true 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 true 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 # 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='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; 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 true 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 true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 golist-0.3/missing0000755000000000000000000001421307311053504007702 #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. 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." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. 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." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. 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, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) 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 proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements 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 ;; esac exit 0 golist-0.3/mkinstalldirs0000755000000000000000000000132207311053504011106 #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here golist-0.3/golist.dtd0000644000175000017500000000070407341535732010346 golist-0.3/golist.desktop0000644000175000017500000000033207341535732011241 [Desktop Entry] Name=GoList Comment=Keep track of go game results and estimate player strengths Comment[de]=Spielerverwaltung für den geheimen Go-Spielabend Exec=golist Icon=golist/logo.png Terminal=0 Type=Application golist-0.3/autogen.sh0000755000175000017500000000015207341540703010340 #! /bin/sh gettextize -f aclocal -I /usr/share/aclocal/gnome/ autoconf autoheader automake -a ./configure golist-0.3/intl/0000777000175000017500000000000007344217147007401 5golist-0.3/intl/ChangeLog0000644000000000000000000000011007333021352011012 2001-07-24 GNU * Version 0.10.39 released. golist-0.3/intl/Makefile.in0000644000000000000000000002314507333021352011322 # Makefile for directory with message catalog handling in GNU NLS Utilities. # Copyright (C) 1995-1998, 2000, 2001 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. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ transform = @program_transform_name@ libdir = @libdir@ includedir = @includedir@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/intl aliaspath = $(localedir) subdir = intl INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` l = @INTL_LIBTOOL_SUFFIX_PREFIX@ AR = ar CC = @CC@ LIBTOOL = @LIBTOOL@ RANLIB = @RANLIB@ YACC = @INTLBISON@ -y -d YFLAGS = --name-prefix=__gettext DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ -DLIBDIR=\"$(libdir)\" @DEFS@ CPPFLAGS = @CPPFLAGS@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h COMHDRS = gettext.h gettextP.h hash-string.h SOURCES = $(COMSRCS) intl-compat.c COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \ localcharset.c OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \ plural.$lo localcharset.$lo GETTOBJS = intl-compat.$lo DISTFILES.common = Makefile.in \ config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES) DISTFILES.generated = plural.c DISTFILES.normal = VERSION DISTFILES.gettext = libintl.glibc DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c # Libtool's library version information for libintl. # Before making a gettext release, the gettext maintainer must change this # according to the libtool documentation, section "Library interface versions". # Maintainers of other packages that include the intl directory must *not* # change these values. LTV_CURRENT=1 LTV_REVISION=1 LTV_AGE=0 .SUFFIXES: .SUFFIXES: .c .y .o .lo .sin .sed .c.o: $(COMPILE) $< .c.lo: $(LIBTOOL) --mode=compile $(COMPILE) $< .y.c: $(YACC) $(YFLAGS) --output $@ $< rm -f $*.h .sin.sed: sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@ mv t-$@ $@ INCLUDES = -I.. -I. -I$(top_srcdir)/intl all: all-@USE_INCLUDED_LIBINTL@ all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed all-no: all-no-@BUILD_INCLUDED_LIBINTL@ all-no-yes: libgnuintl.$la all-no-no: libintl.a libgnuintl.a: $(OBJECTS) rm -f $@ $(AR) cru $@ $(OBJECTS) $(RANLIB) $@ libintl.la libgnuintl.la: $(OBJECTS) $(LIBTOOL) --mode=link \ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ $(OBJECTS) @LIBICONV@ \ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ -rpath $(libdir) \ -no-undefined libintl.h: libgnuintl.h cp $(srcdir)/libgnuintl.h libintl.h charset.alias: config.charset $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ mv t-$@ $@ check: all # This installation goal is only used in GNU gettext. Packages which # only use the library should use install instead. # We must not install the libintl.h/libintl.a files if we are on a # system which has the GNU gettext() function in its C library or in a # separate library. # If you want to use the one which comes with this version of the # package, you have to use `configure --with-included-gettext'. install: install-exec install-data install-exec: all if test "$(PACKAGE)" = "gettext" \ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ $(LIBTOOL) --mode=install \ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ $(mkinstalldirs) $(DESTDIR)$(libdir); \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ orig=$(DESTDIR)$(libdir)/charset.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ else \ if test @GLIBC21@ = no; then \ orig=charset.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ fi; \ fi; \ $(mkinstalldirs) $(DESTDIR)$(localedir); \ test -f $(DESTDIR)$(localedir)/locale.alias \ && orig=$(DESTDIR)$(localedir)/locale.alias \ || orig=$(srcdir)/locale.alias; \ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ dest=$(DESTDIR)$(localedir)/locale.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ else \ : ; \ fi install-data: all if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ dists="$(DISTFILES.common)"; \ for file in $$dists; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \ dists="$(DISTFILES.generated)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ $(INSTALL_DATA) $$dir/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ dists="$(DISTFILES.obsolete)"; \ for file in $$dists; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: if test "$(PACKAGE)" = "gettext" \ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ rm -f $(DESTDIR)$(includedir)/libintl.h; \ $(LIBTOOL) --mode=uninstall \ rm -f $(DESTDIR)$(libdir)/libintl.$la; \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \ sed -f ref-del.sed $$dest > $$temp; \ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ rm -f $$dest; \ else \ $(INSTALL_DATA) $$temp $$dest; \ fi; \ rm -f $$temp; \ fi; \ if test -f $(DESTDIR)$(localedir)/locale.alias; then \ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ dest=$(DESTDIR)$(localedir)/locale.alias; \ sed -f ref-del.sed $$dest > $$temp; \ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ rm -f $$dest; \ else \ $(INSTALL_DATA) $$temp $$dest; \ fi; \ rm -f $$temp; \ fi; \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext"; then \ for file in VERSION ChangeLog $(DISTFILES.common) $(DISTFILES.generated); do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi info dvi: $(OBJECTS): ../config.h libgnuintl.h bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h tags: TAGS TAGS: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) id: ID ID: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) mostlyclean: rm -f *.a *.la *.o *.lo core core.* rm -f libintl.h charset.alias ref-add.sed ref-del.sed rm -f -r .libs _libs clean: mostlyclean distclean: clean rm -f Makefile ID TAGS if test "$(PACKAGE)" = gettext; then \ rm -f ChangeLog.inst $(DISTFILES.normal); \ else \ : ; \ fi maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." # GNU gettext needs not contain the file `VERSION' but contains some # other files which should not be distributed in other packages. distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: Makefile if test "$(PACKAGE)" = gettext; then \ additional="$(DISTFILES.gettext)"; \ else \ additional="$(DISTFILES.normal)"; \ fi; \ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ ln $$dir/$$file $(distdir) 2> /dev/null \ || cp -p $$dir/$$file $(distdir); \ done Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/intl/config.charset0000755000000000000000000003201507333021353012075 #! /bin/sh # Output a system dependent table of character encoding aliases. # # Copyright (C) 2000-2001 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # # The table consists of lines of the form # ALIAS CANONICAL # # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". # ALIAS is compared in a case sensitive way. # # CANONICAL is the GNU canonical name for this character encoding. # It must be an encoding supported by libiconv. Support by GNU libc is # also desirable. CANONICAL is case insensitive. Usually an upper case # MIME charset name is preferred. # The current list of GNU canonical charset names is as follows. # # name used by which systems a MIME name? # ASCII, ANSI_X3.4-1968 glibc solaris freebsd # ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-3 glibc yes # ISO-8859-4 osf solaris freebsd yes # ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-6 glibc aix hpux solaris yes # ISO-8859-7 glibc aix hpux irix osf solaris yes # ISO-8859-8 glibc aix hpux osf solaris yes # ISO-8859-9 glibc aix hpux irix osf solaris yes # ISO-8859-13 glibc # ISO-8859-15 glibc aix osf solaris freebsd # KOI8-R glibc solaris freebsd yes # KOI8-U glibc freebsd yes # CP437 dos # CP775 dos # CP850 aix osf dos # CP852 dos # CP855 dos # CP856 aix # CP857 dos # CP861 dos # CP862 dos # CP864 dos # CP865 dos # CP866 freebsd dos # CP869 dos # CP874 win32 dos # CP922 aix # CP932 aix win32 dos # CP943 aix # CP949 osf win32 dos # CP950 win32 dos # CP1046 aix # CP1124 aix # CP1129 aix # CP1250 win32 # CP1251 glibc win32 # CP1252 aix win32 # CP1253 win32 # CP1254 win32 # CP1255 win32 # CP1256 win32 # CP1257 win32 # GB2312 glibc aix hpux irix solaris freebsd yes # EUC-JP glibc aix hpux irix osf solaris freebsd yes # EUC-KR glibc aix hpux irix osf solaris freebsd yes # EUC-TW glibc aix hpux irix osf solaris # BIG5 glibc aix hpux osf solaris freebsd yes # BIG5-HKSCS glibc # GBK aix osf win32 dos # GB18030 glibc # SHIFT_JIS hpux osf solaris freebsd yes # JOHAB glibc win32 # TIS-620 glibc aix hpux osf solaris # VISCII glibc yes # HP-ROMAN8 hpux # HP-ARABIC8 hpux # HP-GREEK8 hpux # HP-HEBREW8 hpux # HP-TURKISH8 hpux # HP-KANA8 hpux # DEC-KANJI osf # DEC-HANYU osf # UTF-8 glibc aix hpux osf solaris yes # # Note: Names which are not marked as being a MIME name should not be used in # Internet protocols for information interchange (mail, news, etc.). # # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications # must understand both names and treat them as equivalent. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM host="$1" os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` echo "# This file contains a table of character encoding aliases," echo "# suitable for operating system '${os}'." echo "# It was automatically generated from config.charset." # List of references, updated during installation: echo "# Packages using this file: " case "$os" in linux* | *-gnu*) # With glibc-2.1 or newer, we don't need any canonicalization, # because glibc has iconv and both glibc and libiconv support all # GNU canonical names directly. Therefore, the Makefile does not # need to install the alias file at all. # The following applies only to glibc-2.0.x and older libcs. echo "ISO_646.IRV:1983 ASCII" ;; aix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "IBM-850 CP850" echo "IBM-856 CP856" echo "IBM-921 ISO-8859-13" echo "IBM-922 CP922" echo "IBM-932 CP932" echo "IBM-943 CP943" echo "IBM-1046 CP1046" echo "IBM-1124 CP1124" echo "IBM-1129 CP1129" echo "IBM-1252 CP1252" echo "IBM-eucCN GB2312" echo "IBM-eucJP EUC-JP" echo "IBM-eucKR EUC-KR" echo "IBM-eucTW EUC-TW" echo "big5 BIG5" echo "GBK GBK" echo "TIS-620 TIS-620" echo "UTF-8 UTF-8" ;; hpux*) echo "iso88591 ISO-8859-1" echo "iso88592 ISO-8859-2" echo "iso88595 ISO-8859-5" echo "iso88596 ISO-8859-6" echo "iso88597 ISO-8859-7" echo "iso88598 ISO-8859-8" echo "iso88599 ISO-8859-9" echo "iso885915 ISO-8859-15" echo "roman8 HP-ROMAN8" echo "arabic8 HP-ARABIC8" echo "greek8 HP-GREEK8" echo "hebrew8 HP-HEBREW8" echo "turkish8 HP-TURKISH8" echo "kana8 HP-KANA8" echo "tis620 TIS-620" echo "big5 BIG5" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "hp15CN GB2312" #echo "ccdc ?" # what is this? echo "SJIS SHIFT_JIS" echo "utf8 UTF-8" ;; irix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" ;; osf*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "cp850 CP850" echo "big5 BIG5" echo "dechanyu DEC-HANYU" echo "dechanzi GB2312" echo "deckanji DEC-KANJI" echo "deckorean EUC-KR" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "GBK GBK" echo "KSC5601 CP949" echo "sdeckanji EUC-JP" echo "SJIS SHIFT_JIS" echo "TACTIS TIS-620" echo "UTF-8 UTF-8" ;; solaris*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "koi8-r KOI8-R" echo "BIG5 BIG5" echo "gb2312 GB2312" echo "cns11643 EUC-TW" echo "5601 EUC-KR" echo "eucJP EUC-JP" echo "PCK SHIFT_JIS" echo "TIS620.2533 TIS-620" #echo "sun_eu_greek ?" # what is this? echo "UTF-8 UTF-8" ;; freebsd*) # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" echo "US-ASCII ASCII" for l in la_LN lt_LN; do echo "$l.ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do echo "$l.ISO_8859-1 ISO-8859-1" echo "$l.DIS_8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do echo "$l.ISO_8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO_8859-4 ISO-8859-4" done for l in ru_RU ru_SU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO_8859-5 ISO-8859-5" echo "$l.CP866 CP866" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ja_JP.Shift_JIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; beos*) # BeOS has a single locale, and it has UTF-8 encoding. echo "* UTF-8" ;; msdosdjgpp*) # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "#" echo "# The encodings given here may not all be correct." echo "# If you find that the encoding given for your language and" echo "# country is not the one your DOS machine actually uses, just" echo "# correct it in this file, and send a mail to" echo "# Juan Manuel Guerrero " echo "# and Bruno Haible ." echo "#" echo "C ASCII" # ISO-8859-1 languages echo "ca CP850" echo "ca_ES CP850" echo "da CP865" # not CP850 ?? echo "da_DK CP865" # not CP850 ?? echo "de CP850" echo "de_AT CP850" echo "de_CH CP850" echo "de_DE CP850" echo "en CP850" echo "en_AU CP850" # not CP437 ?? echo "en_CA CP850" echo "en_GB CP850" echo "en_NZ CP437" echo "en_US CP437" echo "en_ZA CP850" # not CP437 ?? echo "es CP850" echo "es_AR CP850" echo "es_BO CP850" echo "es_CL CP850" echo "es_CO CP850" echo "es_CR CP850" echo "es_CU CP850" echo "es_DO CP850" echo "es_EC CP850" echo "es_ES CP850" echo "es_GT CP850" echo "es_HN CP850" echo "es_MX CP850" echo "es_NI CP850" echo "es_PA CP850" echo "es_PY CP850" echo "es_PE CP850" echo "es_SV CP850" echo "es_UY CP850" echo "es_VE CP850" echo "et CP850" echo "et_EE CP850" echo "eu CP850" echo "eu_ES CP850" echo "fi CP850" echo "fi_FI CP850" echo "fr CP850" echo "fr_BE CP850" echo "fr_CA CP850" echo "fr_CH CP850" echo "fr_FR CP850" echo "ga CP850" echo "ga_IE CP850" echo "gd CP850" echo "gd_GB CP850" echo "gl CP850" echo "gl_ES CP850" echo "id CP850" # not CP437 ?? echo "id_ID CP850" # not CP437 ?? echo "is CP861" # not CP850 ?? echo "is_IS CP861" # not CP850 ?? echo "it CP850" echo "it_CH CP850" echo "it_IT CP850" echo "lt CP775" echo "lt_LT CP775" echo "lv CP775" echo "lv_LV CP775" echo "nb CP865" # not CP850 ?? echo "nb_NO CP865" # not CP850 ?? echo "nl CP850" echo "nl_BE CP850" echo "nl_NL CP850" echo "nn CP865" # not CP850 ?? echo "nn_NO CP865" # not CP850 ?? echo "no CP865" # not CP850 ?? echo "no_NO CP865" # not CP850 ?? echo "pt CP850" echo "pt_BR CP850" echo "pt_PT CP850" echo "sv CP850" echo "sv_SE CP850" # ISO-8859-2 languages echo "cs CP852" echo "cs_CZ CP852" echo "hr CP852" echo "hr_HR CP852" echo "hu CP852" echo "hu_HU CP852" echo "pl CP852" echo "pl_PL CP852" echo "ro CP852" echo "ro_RO CP852" echo "sk CP852" echo "sk_SK CP852" echo "sl CP852" echo "sl_SI CP852" echo "sq CP852" echo "sq_AL CP852" echo "sr CP852" # CP852 or CP866 or CP855 ?? echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? # ISO-8859-3 languages echo "mt CP850" echo "mt_MT CP850" # ISO-8859-5 languages echo "be CP866" echo "be_BE CP866" echo "bg CP866" # not CP855 ?? echo "bg_BG CP866" # not CP855 ?? echo "mk CP866" # not CP855 ?? echo "mk_MK CP866" # not CP855 ?? echo "ru KOI8-R" # not CP866 ?? echo "ru_RU KOI8-R" # not CP866 ?? # ISO-8859-6 languages echo "ar CP864" echo "ar_AE CP864" echo "ar_DZ CP864" echo "ar_EG CP864" echo "ar_IQ CP864" echo "ar_IR CP864" echo "ar_JO CP864" echo "ar_KW CP864" echo "ar_MA CP864" echo "ar_OM CP864" echo "ar_QA CP864" echo "ar_SA CP864" echo "ar_SY CP864" # ISO-8859-7 languages echo "el CP869" echo "el_GR CP869" # ISO-8859-8 languages echo "he CP862" echo "he_IL CP862" # ISO-8859-9 languages echo "tr CP857" echo "tr_TR CP857" # Japanese echo "ja CP932" echo "ja_JP CP932" # Chinese echo "zh_CN GBK" echo "zh_TW CP950" # not CP938 ?? # Korean echo "kr CP949" # not CP934 ?? echo "kr_KR CP949" # not CP934 ?? # Thai echo "th CP874" echo "th_TH CP874" # Other echo "eo CP850" echo "eo_EO CP850" ;; esac golist-0.3/intl/locale.alias0000644000000000000000000000510707333021353011526 # Locale name alias data base. # Copyright (C) 1996,1997,1998,1999,2000,2001 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. # The format of this file is the same as for the corresponding file of # the X Window System, which normally can be found in # /usr/lib/X11/locale/locale.alias # A single line contains two fields: an alias and a substitution value. # All entries are case independent. # Note: This file is far from being complete. If you have a value for # your own site which you think might be useful for others too, share # it with the rest of us. Send it using the `glibcbug' script to # bugs@gnu.org. # Packages using this file: bokmal no_NO.ISO-8859-1 bokmål no_NO.ISO-8859-1 catalan ca_ES.ISO-8859-1 croatian hr_HR.ISO-8859-2 czech cs_CZ.ISO-8859-2 danish da_DK.ISO-8859-1 dansk da_DK.ISO-8859-1 deutsch de_DE.ISO-8859-1 dutch nl_NL.ISO-8859-1 eesti et_EE.ISO-8859-1 estonian et_EE.ISO-8859-1 finnish fi_FI.ISO-8859-1 français fr_FR.ISO-8859-1 french fr_FR.ISO-8859-1 galego gl_ES.ISO-8859-1 galician gl_ES.ISO-8859-1 german de_DE.ISO-8859-1 greek el_GR.ISO-8859-7 hebrew iw_IL.ISO-8859-8 hrvatski hr_HR.ISO-8859-2 hungarian hu_HU.ISO-8859-2 icelandic is_IS.ISO-8859-1 italian it_IT.ISO-8859-1 japanese ja_JP.eucJP japanese.euc ja_JP.eucJP ja_JP ja_JP.eucJP ja_JP.ujis ja_JP.eucJP japanese.sjis ja_JP.SJIS korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 nb_NO no_NO.ISO-8859-1 nb_NO.ISO-8859-1 no_NO.ISO-8859-1 norwegian no_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 portuguese pt_PT.ISO-8859-1 romanian ro_RO.ISO-8859-2 russian ru_RU.ISO-8859-5 slovak sk_SK.ISO-8859-2 slovene sl_SI.ISO-8859-2 slovenian sl_SI.ISO-8859-2 spanish es_ES.ISO-8859-1 swedish sv_SE.ISO-8859-1 thai th_TH.TIS-620 turkish tr_TR.ISO-8859-9 golist-0.3/intl/ref-add.sin0000644000000000000000000000210107333021353011260 # Add this package to a list of references stored in a text file. # # Copyright (C) 2000 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// ta :a s/ @PACKAGE@ / @PACKAGE@ / tb s/ $/ @PACKAGE@ / :b s/^/# Packages using this file:/ } golist-0.3/intl/ref-del.sin0000644000000000000000000000202407333021353011300 # Remove this package from a list of references stored in a text file. # # Copyright (C) 2000 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library 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 # Library General Public License for more details. # # You should have received a copy of the GNU Library 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. # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// s/ @PACKAGE@ / / s/^/# Packages using this file:/ } golist-0.3/intl/gettext.h0000644000000000000000000000600507333021353011107 /* Description of GNU message catalog format: general file layout. Copyright (C) 1995, 1997, 2000, 2001 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. */ #ifndef _GETTEXT_H #define _GETTEXT_H 1 #if HAVE_LIMITS_H || _LIBC # include #endif /* @@ end of prolog @@ */ /* The magic number of the GNU message catalog format. */ #define _MAGIC 0x950412de #define _MAGIC_SWAPPED 0xde120495 /* Revision number of the currently used .mo (binary) file format. */ #define MO_REVISION_NUMBER 0 /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work when cross-compiling. */ #if __STDC__ # define UINT_MAX_32_BITS 4294967295U #else # define UINT_MAX_32_BITS 0xFFFFFFFF #endif /* If UINT_MAX isn't defined, assume it's a 32-bit type. This should be valid for all systems GNU cares about because that doesn't include 16-bit systems, and only modern systems (that certainly have ) have 64+-bit integral types. */ #ifndef UINT_MAX # define UINT_MAX UINT_MAX_32_BITS #endif #if UINT_MAX == UINT_MAX_32_BITS typedef unsigned nls_uint32; #else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short nls_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long nls_uint32; # else /* The following line is intended to throw an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif #endif /* Header for binary .mo file format. */ struct mo_file_header { /* The magic number. */ nls_uint32 magic; /* The revision number of the file format. */ nls_uint32 revision; /* The number of strings pairs. */ nls_uint32 nstrings; /* Offset of table with start offsets of original strings. */ nls_uint32 orig_tab_offset; /* Offset of table with start offsets of translation strings. */ nls_uint32 trans_tab_offset; /* Size of hashing table. */ nls_uint32 hash_tab_size; /* Offset of first hashing entry. */ nls_uint32 hash_tab_offset; }; struct string_desc { /* Length of addressed string. */ nls_uint32 length; /* Offset of string in file. */ nls_uint32 offset; }; /* @@ begin of epilog @@ */ #endif /* gettext.h */ golist-0.3/intl/gettextP.h0000644000000000000000000001675307333021353011242 /* Header describing internals of libintl library. Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. 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. */ #ifndef _GETTEXTP_H #define _GETTEXTP_H #include /* Get size_t. */ #ifdef _LIBC # include "../iconv/gconv_int.h" #else # if HAVE_ICONV # include # endif #endif #include "loadinfo.h" #include "gettext.h" /* Get nls_uint32. */ /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifndef internal_function # define internal_function #endif /* Tell the compiler when a conditional or integer expression is almost always true or almost always false. */ #ifndef HAVE_BUILTIN_EXPECT # define __builtin_expect(expr, val) (expr) #endif #ifndef W # define W(flag, data) ((flag) ? SWAP (data) : (data)) #endif #ifdef _LIBC # include # define SWAP(i) bswap_32 (i) #else static inline nls_uint32 SWAP (i) nls_uint32 i; { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif /* This is the representation of the expressions to determine the plural form. */ struct expression { int nargs; /* Number of arguments. */ enum operator { /* Without arguments: */ var, /* The variable "n". */ num, /* Decimal number. */ /* Unary operators: */ lnot, /* Logical NOT. */ /* Binary operators: */ mult, /* Multiplication. */ divide, /* Division. */ module, /* Module operation. */ plus, /* Addition. */ minus, /* Subtraction. */ less_than, /* Comparison. */ greater_than, /* Comparison. */ less_or_equal, /* Comparison. */ greater_or_equal, /* Comparison. */ equal, /* Comparision for equality. */ not_equal, /* Comparision for inequality. */ land, /* Logical AND. */ lor, /* Logical OR. */ /* Ternary operators: */ qmop /* Question mark operator. */ } operation; union { unsigned long int num; /* Number value for `num'. */ struct expression *args[3]; /* Up to three arguments. */ } val; }; /* This is the data structure to pass information to the parser and get the result in a thread-safe way. */ struct parse_args { const char *cp; struct expression *res; }; /* The representation of an opened message catalog. */ struct loaded_domain { const char *data; int use_mmap; size_t mmap_size; int must_swap; nls_uint32 nstrings; struct string_desc *orig_tab; struct string_desc *trans_tab; nls_uint32 hash_size; nls_uint32 *hash_tab; int codeset_cntr; #ifdef _LIBC __gconv_t conv; #else # if HAVE_ICONV iconv_t conv; # endif #endif char **conv_tab; struct expression *plural; unsigned long int nplurals; }; /* We want to allocate a string at the end of the struct. But ISO C doesn't allow zero sized arrays. */ #ifdef __GNUC__ # define ZERO 0 #else # define ZERO 1 #endif /* A set of settings bound to a message domain. Used to store settings from bindtextdomain() and bind_textdomain_codeset(). */ struct binding { struct binding *next; char *dirname; int codeset_cntr; /* Incremented each time codeset changes. */ char *codeset; char domainname[ZERO]; }; /* A counter which is incremented each time some previous translations become invalid. This variable is part of the external ABI of the GNU libintl. */ extern int _nl_msg_cat_cntr; struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, char *__locale, const char *__domainname, struct binding *__domainbinding)) internal_function; void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain, struct binding *__domainbinding)) internal_function; void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) internal_function; const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file, struct loaded_domain *__domain, struct binding *__domainbinding)) internal_function; void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain)) internal_function; char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, size_t *lengthp)) internal_function; #ifdef _LIBC extern char *__gettext PARAMS ((const char *__msgid)); extern char *__dgettext PARAMS ((const char *__domainname, const char *__msgid)); extern char *__dcgettext PARAMS ((const char *__domainname, const char *__msgid, int __category)); extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n)); extern char *__dngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int n)); extern char *__dcngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category)); extern char *__dcigettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category)); extern char *__textdomain PARAMS ((const char *__domainname)); extern char *__bindtextdomain PARAMS ((const char *__domainname, const char *__dirname)); extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname, const char *__codeset)); #else extern char *gettext__ PARAMS ((const char *__msgid)); extern char *dgettext__ PARAMS ((const char *__domainname, const char *__msgid)); extern char *dcgettext__ PARAMS ((const char *__domainname, const char *__msgid, int __category)); extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n)); extern char *dngettext__ PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n)); extern char *dcngettext__ PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category)); extern char *dcigettext__ PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category)); extern char *textdomain__ PARAMS ((const char *__domainname)); extern char *bindtextdomain__ PARAMS ((const char *__domainname, const char *__dirname)); extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname, const char *__codeset)); #endif #ifdef _LIBC extern void __gettext_free_exp PARAMS ((struct expression *exp)) internal_function; extern int __gettextparse PARAMS ((void *arg)); #else extern void gettext_free_exp__ PARAMS ((struct expression *exp)) internal_function; extern int gettextparse__ PARAMS ((void *arg)); #endif /* @@ begin of epilog @@ */ #endif /* gettextP.h */ golist-0.3/intl/hash-string.h0000644000000000000000000000342007333021353011650 /* Description of GNU message catalog format: string hashing function. Copyright (C) 1995, 1997, 1998, 2000, 2001 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. */ /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif /* We assume to have `unsigned long int' value with at least 32 bits. */ #define HASHWORDBITS 32 /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone Laboratories, Inc.] */ static unsigned long int hash_string PARAMS ((const char *__str_param)); static inline unsigned long int hash_string (str_param) const char *str_param; { unsigned long int hval, g; const char *str = str_param; /* Compute the hash value for the given string. */ hval = 0; while (*str != '\0') { hval <<= 4; hval += (unsigned long int) *str++; g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); if (g != 0) { hval ^= g >> (HASHWORDBITS - 8); hval ^= g; } } return hval; } golist-0.3/intl/libgnuintl.h0000644000000000000000000001042207333021353011570 /* Message catalogs for internationalization. Copyright (C) 1995-1997, 2000, 2001 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. */ #ifndef _LIBINTL_H #define _LIBINTL_H 1 #include /* The LC_MESSAGES locale category is the category used by the functions gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. On systems that don't define it, use an arbitrary value instead. On Solaris, defines __LOCALE_H then includes (i.e. this file!) and then only defines LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES in this case. */ #if !defined LC_MESSAGES && !defined __LOCALE_H # define LC_MESSAGES 1729 #endif /* We define an additional symbol to signal that we use the GNU implementation of gettext. */ #define __USE_GNU_GETTEXT 1 /* Resolve a platform specific conflict on DJGPP. GNU gettext takes precedence over _conio_gettext. */ #ifdef __DJGPP__ # undef gettext # define gettext gettext #endif #ifndef PARAMS # if __STDC__ || defined __cplusplus # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifdef __cplusplus extern "C" { #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ extern char *gettext PARAMS ((const char *__msgid)); /* Look up MSGID in the DOMAINNAME message catalog for the current LC_MESSAGES locale. */ extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, int __category)); /* Similar to `gettext' but select the plural form corresponding to the number N. */ extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n)); /* Similar to `dgettext' but select the plural form corresponding to the number N. */ extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n)); /* Similar to `dcgettext' but select the plural form corresponding to the number N. */ extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category)); /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ extern char *textdomain PARAMS ((const char *__domainname)); /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ extern char *bindtextdomain PARAMS ((const char *__domainname, const char *__dirname)); /* Specify the character encoding in which the messages from the DOMAINNAME message catalog will be returned. */ extern char *bind_textdomain_codeset PARAMS ((const char *__domainname, const char *__codeset)); /* Optimized version of the functions above. */ #if defined __OPTIMIZED /* These are macros, but could also be inline functions. */ # define gettext(msgid) \ dgettext (NULL, msgid) # define dgettext(domainname, msgid) \ dcgettext (domainname, msgid, LC_MESSAGES) # define ngettext(msgid1, msgid2, n) \ dngettext (NULL, msgid1, msgid2, n) # define dngettext(domainname, msgid1, msgid2, n) \ dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES) #endif /* Optimizing. */ #ifdef __cplusplus } #endif #endif /* libintl.h */ golist-0.3/intl/libgettext.h0000644000000000000000000000356107333021353011602 /* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000, 2001 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. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include #else # define gettext(Msgid) (Msgid) # define dgettext(Domainname, Msgid) (Msgid) # define dcgettext(Domainname, Msgid, Category) (Msgid) # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) # define textdomain(Domainname) ((char *) (Domainname)) # define bindtextdomain(Domainname, Dirname) ((char *) (Dirname)) # define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset)) #endif /* For automatical extraction of messages sometimes no real translation is needed. Instead the string itself is the result. */ #define gettext_noop(Str) (Str) #endif /* _LIBGETTEXT_H */ golist-0.3/intl/loadinfo.h0000644000000000000000000000643107333021353011221 /* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. 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. */ #ifndef _LOADINFO_H #define _LOADINFO_H 1 #ifndef PARAMS # if __STDC__ # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifndef internal_function # define internal_function #endif /* Tell the compiler when a conditional or integer expression is almost always true or almost always false. */ #ifndef HAVE_BUILTIN_EXPECT # define __builtin_expect(expr, val) (expr) #endif /* Separator in PATH like lists of pathnames. */ #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ /* Win32, OS/2, DOS */ # define PATH_SEPARATOR ';' #else /* Unix */ # define PATH_SEPARATOR ':' #endif /* Encoding of locale name parts. */ #define CEN_REVISION 1 #define CEN_SPONSOR 2 #define CEN_SPECIAL 4 #define XPG_NORM_CODESET 8 #define XPG_CODESET 16 #define TERRITORY 32 #define CEN_AUDIENCE 64 #define XPG_MODIFIER 128 #define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE) #define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER) struct loaded_l10nfile { const char *filename; int decided; const void *data; struct loaded_l10nfile *next; struct loaded_l10nfile *successor[1]; }; /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. The return value is dynamically allocated and has to be freed by the caller. */ extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, size_t name_len)); extern struct loaded_l10nfile * _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list, const char *dirlist, size_t dirlist_len, int mask, const char *language, const char *territory, const char *codeset, const char *normalized_codeset, const char *modifier, const char *special, const char *sponsor, const char *revision, const char *filename, int do_allocate)); extern const char *_nl_expand_alias PARAMS ((const char *name)); /* normalized_codeset is dynamically allocated and has to be freed by the caller. */ extern int _nl_explode_name PARAMS ((char *name, const char **language, const char **modifier, const char **territory, const char **codeset, const char **normalized_codeset, const char **special, const char **sponsor, const char **revision)); extern char *_nl_find_language PARAMS ((const char *name)); #endif /* loadinfo.h */ golist-0.3/intl/bindtextdom.c0000644000000000000000000002313507333021353011742 /* Implementation of the bindtextdomain(3) function Copyright (C) 1995-1998, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include "gettextP.h" #ifdef _LIBC /* We have to handle multi-threaded applications. */ # include #else /* Provide dummy implementation if this is outside glibc. */ # define __libc_rwlock_define(CLASS, NAME) # define __libc_rwlock_wrlock(NAME) # define __libc_rwlock_unlock(NAME) #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_dirname _nl_default_dirname__ # define _nl_domain_bindings _nl_domain_bindings__ #endif /* Some compilers, like SunOS4 cc, don't have offsetof in . */ #ifndef offsetof # define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* @@ end of prolog @@ */ /* Contains the default location of the message catalogs. */ extern const char _nl_default_dirname[]; /* List with bindings of specific domains. */ extern struct binding *_nl_domain_bindings; /* Lock variable to protect the global data in the gettext implementation. */ __libc_rwlock_define (extern, _nl_state_lock) /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define BINDTEXTDOMAIN __bindtextdomain # define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define BINDTEXTDOMAIN bindtextdomain__ # define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__ #endif /* Prototypes for local functions. */ static void set_binding_values PARAMS ((const char *domainname, const char **dirnamep, const char **codesetp)); /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP to be used for the DOMAINNAME message catalog. If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not modified, only the current value is returned. If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither modified nor returned. */ static void set_binding_values (domainname, dirnamep, codesetp) const char *domainname; const char **dirnamep; const char **codesetp; { struct binding *binding; int modified; /* Some sanity checks. */ if (domainname == NULL || domainname[0] == '\0') { if (dirnamep) *dirnamep = NULL; if (codesetp) *codesetp = NULL; return; } __libc_rwlock_wrlock (_nl_state_lock); modified = 0; for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding != NULL) { if (dirnamep) { const char *dirname = *dirnamep; if (dirname == NULL) /* The current binding has be to returned. */ *dirnamep = binding->dirname; else { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ char *result = binding->dirname; if (strcmp (dirname, result) != 0) { if (strcmp (dirname, _nl_default_dirname) == 0) result = (char *) _nl_default_dirname; else { #if defined _LIBC || defined HAVE_STRDUP result = strdup (dirname); #else size_t len = strlen (dirname) + 1; result = (char *) malloc (len); if (__builtin_expect (result != NULL, 1)) memcpy (result, dirname, len); #endif } if (__builtin_expect (result != NULL, 1)) { if (binding->dirname != _nl_default_dirname) free (binding->dirname); binding->dirname = result; modified = 1; } } *dirnamep = result; } } if (codesetp) { const char *codeset = *codesetp; if (codeset == NULL) /* The current binding has be to returned. */ *codesetp = binding->codeset; else { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ char *result = binding->codeset; if (result == NULL || strcmp (codeset, result) != 0) { #if defined _LIBC || defined HAVE_STRDUP result = strdup (codeset); #else size_t len = strlen (codeset) + 1; result = (char *) malloc (len); if (__builtin_expect (result != NULL, 1)) memcpy (result, codeset, len); #endif if (__builtin_expect (result != NULL, 1)) { if (binding->codeset != NULL) free (binding->codeset); binding->codeset = result; binding->codeset_cntr++; modified = 1; } } *codesetp = result; } } } else if ((dirnamep == NULL || *dirnamep == NULL) && (codesetp == NULL || *codesetp == NULL)) { /* Simply return the default values. */ if (dirnamep) *dirnamep = _nl_default_dirname; if (codesetp) *codesetp = NULL; } else { /* We have to create a new binding. */ size_t len = strlen (domainname) + 1; struct binding *new_binding = (struct binding *) malloc (offsetof (struct binding, domainname) + len); if (__builtin_expect (new_binding == NULL, 0)) goto failed; memcpy (new_binding->domainname, domainname, len); if (dirnamep) { const char *dirname = *dirnamep; if (dirname == NULL) /* The default value. */ dirname = _nl_default_dirname; else { if (strcmp (dirname, _nl_default_dirname) == 0) dirname = _nl_default_dirname; else { char *result; #if defined _LIBC || defined HAVE_STRDUP result = strdup (dirname); if (__builtin_expect (result == NULL, 0)) goto failed_dirname; #else size_t len = strlen (dirname) + 1; result = (char *) malloc (len); if (__builtin_expect (result == NULL, 0)) goto failed_dirname; memcpy (result, dirname, len); #endif dirname = result; } } *dirnamep = dirname; new_binding->dirname = (char *) dirname; } else /* The default value. */ new_binding->dirname = (char *) _nl_default_dirname; new_binding->codeset_cntr = 0; if (codesetp) { const char *codeset = *codesetp; if (codeset != NULL) { char *result; #if defined _LIBC || defined HAVE_STRDUP result = strdup (codeset); if (__builtin_expect (result == NULL, 0)) goto failed_codeset; #else size_t len = strlen (codeset) + 1; result = (char *) malloc (len); if (__builtin_expect (result == NULL, 0)) goto failed_codeset; memcpy (result, codeset, len); #endif codeset = result; new_binding->codeset_cntr++; } *codesetp = codeset; new_binding->codeset = (char *) codeset; } else new_binding->codeset = NULL; /* Now enqueue it. */ if (_nl_domain_bindings == NULL || strcmp (domainname, _nl_domain_bindings->domainname) < 0) { new_binding->next = _nl_domain_bindings; _nl_domain_bindings = new_binding; } else { binding = _nl_domain_bindings; while (binding->next != NULL && strcmp (domainname, binding->next->domainname) > 0) binding = binding->next; new_binding->next = binding->next; binding->next = new_binding; } modified = 1; /* Here we deal with memory allocation failures. */ if (0) { failed_codeset: if (new_binding->dirname != _nl_default_dirname) free (new_binding->dirname); failed_dirname: free (new_binding); failed: if (dirnamep) *dirnamep = NULL; if (codesetp) *codesetp = NULL; } } /* If we modified any binding, we flush the caches. */ if (modified) ++_nl_msg_cat_cntr; __libc_rwlock_unlock (_nl_state_lock); } /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ char * BINDTEXTDOMAIN (domainname, dirname) const char *domainname; const char *dirname; { set_binding_values (domainname, &dirname, NULL); return (char *) dirname; } /* Specify the character encoding in which the messages from the DOMAINNAME message catalog will be returned. */ char * BIND_TEXTDOMAIN_CODESET (domainname, codeset) const char *domainname; const char *codeset; { set_binding_values (domainname, NULL, &codeset); return (char *) codeset; } #ifdef _LIBC /* Aliases for function names in GNU C Library. */ weak_alias (__bindtextdomain, bindtextdomain); weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset); #endif golist-0.3/intl/dcgettext.c0000644000000000000000000000337707333021353011422 /* Implementation of the dcgettext(3) function. Copyright (C) 1995-1999, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCGETTEXT __dcgettext # define DCIGETTEXT __dcigettext #else # define DCGETTEXT dcgettext__ # define DCIGETTEXT dcigettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCGETTEXT (domainname, msgid, category) const char *domainname; const char *msgid; int category; { return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dcgettext, dcgettext); #endif golist-0.3/intl/dgettext.c0000644000000000000000000000334307333021353011250 /* Implementation of the dgettext(3) function. Copyright (C) 1995-1997, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DGETTEXT __dgettext # define DCGETTEXT __dcgettext #else # define DGETTEXT dgettext__ # define DCGETTEXT dcgettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale. */ char * DGETTEXT (domainname, msgid) const char *domainname; const char *msgid; { return DCGETTEXT (domainname, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dgettext, dgettext); #endif golist-0.3/intl/gettext.c0000644000000000000000000000350607333021353011105 /* Implementation of gettext(3) function. Copyright (C) 1995, 1997, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # include /* Just for NULL. */ #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define GETTEXT __gettext # define DCGETTEXT __dcgettext #else # define GETTEXT gettext__ # define DCGETTEXT dcgettext__ #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * GETTEXT (msgid) const char *msgid; { return DCGETTEXT (NULL, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__gettext, gettext); #endif golist-0.3/intl/finddomain.c0000644000000000000000000001311307333021353011524 /* Handle list of needed message catalogs Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* List of already loaded domains. */ static struct loaded_l10nfile *_nl_loaded_domains; /* Return a data structure describing the message catalog described by the DOMAINNAME and CATEGORY parameters with respect to the currently established bindings. */ struct loaded_l10nfile * internal_function _nl_find_domain (dirname, locale, domainname, domainbinding) const char *dirname; char *locale; const char *domainname; struct binding *domainbinding; { struct loaded_l10nfile *retval; const char *language; const char *modifier; const char *territory; const char *codeset; const char *normalized_codeset; const char *special; const char *sponsor; const char *revision; const char *alias_value; int mask; /* LOCALE can consist of up to four recognized parts for the XPG syntax: language[_territory[.codeset]][@modifier] and six parts for the CEN syntax: language[_territory][+audience][+special][,[sponsor][_revision]] Beside the first part all of them are allowed to be missing. If the full specified locale is not found, the less specific one are looked for. The various parts will be stripped off according to the following order: (1) revision (2) sponsor (3) special (4) codeset (5) normalized codeset (6) territory (7) audience/modifier */ /* If we have already tested for this locale entry there has to be one data set in the list of loaded domains. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, 0, locale, NULL, NULL, NULL, NULL, NULL, NULL, NULL, domainname, 0); if (retval != NULL) { /* We know something about this locale. */ int cnt; if (retval->decided == 0) _nl_load_domain (retval, domainbinding); if (retval->data != NULL) return retval; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided == 0) _nl_load_domain (retval->successor[cnt], domainbinding); if (retval->successor[cnt]->data != NULL) break; } return cnt >= 0 ? retval : NULL; /* NOTREACHED */ } /* See whether the locale value is an alias. If yes its value *overwrites* the alias name. No test for the original value is done. */ alias_value = _nl_expand_alias (locale); if (alias_value != NULL) { #if defined _LIBC || defined HAVE_STRDUP locale = strdup (alias_value); if (locale == NULL) return NULL; #else size_t len = strlen (alias_value) + 1; locale = (char *) malloc (len); if (locale == NULL) return NULL; memcpy (locale, alias_value, len); #endif } /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_' and `@' if we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ mask = _nl_explode_name (locale, &language, &modifier, &territory, &codeset, &normalized_codeset, &special, &sponsor, &revision); /* Create all possible locale entries which might be interested in generalization. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, mask, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, domainname, 1); if (retval == NULL) /* This means we are out of core. */ return NULL; if (retval->decided == 0) _nl_load_domain (retval, domainbinding); if (retval->data == NULL) { int cnt; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided == 0) _nl_load_domain (retval->successor[cnt], domainbinding); if (retval->successor[cnt]->data != NULL) break; } } /* The room for an alias was dynamically allocated. Free it now. */ if (alias_value != NULL) free (locale); /* The space for normalized_codeset is dynamically allocated. Free it. */ if (mask & XPG_NORM_CODESET) free ((void *) normalized_codeset); return retval; } #ifdef _LIBC static void __attribute__ ((unused)) free_mem (void) { struct loaded_l10nfile *runp = _nl_loaded_domains; while (runp != NULL) { struct loaded_l10nfile *here = runp; if (runp->data != NULL) _nl_unload_domain ((struct loaded_domain *) runp->data); runp = runp->next; free ((char *) here->filename); free (here); } } text_set_element (__libc_subfreeres, free_mem); #endif golist-0.3/intl/loadmsgcat.c0000644000000000000000000003512607333021353011542 /* Load needed message catalogs. Copyright (C) 1995-1999, 2000, 2001 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. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #ifdef _LIBC # include # include #endif #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || (defined _LIBC && defined _POSIX_MAPPED_FILES) # include # undef HAVE_MMAP # define HAVE_MMAP 1 #else # undef HAVE_MMAP #endif #include "gettext.h" #include "gettextP.h" #ifdef _LIBC # include "../locale/localeinfo.h" #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ISO C functions. This is required by the standard because some ISO C functions will require linking with this object file and the name space must not be polluted. */ # define open __open # define close __close # define read __read # define mmap __mmap # define munmap __munmap #endif /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define PLURAL_PARSE __gettextparse #else # define PLURAL_PARSE gettextparse__ #endif /* For those losing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA # define freea(p) /* nothing */ #else # define alloca(n) malloc (n) # define freea(p) free (p) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in . */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #ifdef __BEOS__ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif /* On reasonable systems, binary I/O is the default. */ #ifndef O_BINARY # define O_BINARY 0 #endif /* We need a sign, whether a new catalog was loaded, which can be associated with all translations. This is important if the translations are cached by one of GCC's features. */ int _nl_msg_cat_cntr; #if (defined __GNUC__ && !defined __APPLE_CC__) \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) /* These structs are the constant expression for the germanic plural form determination. It represents the expression "n != 1". */ static const struct expression plvar = { .nargs = 0, .operation = var, }; static const struct expression plone = { .nargs = 0, .operation = num, .val = { .num = 1 } }; static struct expression germanic_plural = { .nargs = 2, .operation = not_equal, .val = { .args = { [0] = (struct expression *) &plvar, [1] = (struct expression *) &plone } } }; # define INIT_GERMANIC_PLURAL() #else /* For compilers without support for ISO C 99 struct/union initializers: Initialization at run-time. */ static struct expression plvar; static struct expression plone; static struct expression germanic_plural; static void init_germanic_plural () { if (plone.val.num == 0) { plvar.nargs = 0; plvar.operation = var; plone.nargs = 0; plone.operation = num; plone.val.num = 1; germanic_plural.nargs = 2; germanic_plural.operation = not_equal; germanic_plural.val.args[0] = &plvar; germanic_plural.val.args[1] = &plone; } } # define INIT_GERMANIC_PLURAL() init_germanic_plural () #endif /* Initialize the codeset dependent parts of an opened message catalog. Return the header entry. */ const char * internal_function _nl_init_domain_conv (domain_file, domain, domainbinding) struct loaded_l10nfile *domain_file; struct loaded_domain *domain; struct binding *domainbinding; { /* Find out about the character set the file is encoded with. This can be found (in textual form) in the entry "". If this entry does not exist or if this does not contain the `charset=' information, we will assume the charset matches the one the current locale and we don't have to perform any conversion. */ char *nullentry; size_t nullentrylen; /* Preinitialize fields, to avoid recursion during _nl_find_msg. */ domain->codeset_cntr = (domainbinding != NULL ? domainbinding->codeset_cntr : 0); #ifdef _LIBC domain->conv = (__gconv_t) -1; #else # if HAVE_ICONV domain->conv = (iconv_t) -1; # endif #endif domain->conv_tab = NULL; /* Get the header entry. */ nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen); if (nullentry != NULL) { #if defined _LIBC || HAVE_ICONV const char *charsetstr; charsetstr = strstr (nullentry, "charset="); if (charsetstr != NULL) { size_t len; char *charset; const char *outcharset; charsetstr += strlen ("charset="); len = strcspn (charsetstr, " \t\n"); charset = (char *) alloca (len + 1); # if defined _LIBC || HAVE_MEMPCPY *((char *) mempcpy (charset, charsetstr, len)) = '\0'; # else memcpy (charset, charsetstr, len); charset[len] = '\0'; # endif /* The output charset should normally be determined by the locale. But sometimes the locale is not used or not correctly set up, so we provide a possibility for the user to override this. Moreover, the value specified through bind_textdomain_codeset overrides both. */ if (domainbinding != NULL && domainbinding->codeset != NULL) outcharset = domainbinding->codeset; else { outcharset = getenv ("OUTPUT_CHARSET"); if (outcharset == NULL || outcharset[0] == '\0') { # ifdef _LIBC outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string; # else # if HAVE_ICONV extern const char *locale_charset (void); outcharset = locale_charset (); # endif # endif } } # ifdef _LIBC /* We always want to use transliteration. */ outcharset = norm_add_slashes (outcharset, "TRANSLIT"); charset = norm_add_slashes (charset, NULL); if (__gconv_open (outcharset, charset, &domain->conv, GCONV_AVOID_NOCONV) != __GCONV_OK) domain->conv = (__gconv_t) -1; # else # if HAVE_ICONV /* When using GNU libiconv, we want to use transliteration. */ # if _LIBICONV_VERSION >= 0x0105 len = strlen (outcharset); { char *tmp = (char *) alloca (len + 10 + 1); memcpy (tmp, outcharset, len); memcpy (tmp + len, "//TRANSLIT", 10 + 1); outcharset = tmp; } # endif domain->conv = iconv_open (outcharset, charset); # if _LIBICONV_VERSION >= 0x0105 freea (outcharset); # endif # endif # endif freea (charset); } #endif /* _LIBC || HAVE_ICONV */ } return nullentry; } /* Frees the codeset dependent parts of an opened message catalog. */ void internal_function _nl_free_domain_conv (domain) struct loaded_domain *domain; { if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1) free (domain->conv_tab); #ifdef _LIBC if (domain->conv != (__gconv_t) -1) __gconv_close (domain->conv); #else # if HAVE_ICONV if (domain->conv != (iconv_t) -1) iconv_close (domain->conv); # endif #endif } /* Load the message catalogs specified by FILENAME. If it is no valid message catalog do nothing. */ void internal_function _nl_load_domain (domain_file, domainbinding) struct loaded_l10nfile *domain_file; struct binding *domainbinding; { int fd; size_t size; #ifdef _LIBC struct stat64 st; #else struct stat st; #endif struct mo_file_header *data = (struct mo_file_header *) -1; int use_mmap = 0; struct loaded_domain *domain; const char *nullentry; domain_file->decided = 1; domain_file->data = NULL; /* Note that it would be useless to store domainbinding in domain_file because domainbinding might be == NULL now but != NULL later (after a call to bind_textdomain_codeset). */ /* If the record does not represent a valid locale the FILENAME might be NULL. This can happen when according to the given specification the locale file name is different for XPG and CEN syntax. */ if (domain_file->filename == NULL) return; /* Try to open the addressed file. */ fd = open (domain_file->filename, O_RDONLY | O_BINARY); if (fd == -1) return; /* We must know about the size of the file. */ if ( #ifdef _LIBC __builtin_expect (fstat64 (fd, &st) != 0, 0) #else __builtin_expect (fstat (fd, &st) != 0, 0) #endif || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0) || __builtin_expect (size < sizeof (struct mo_file_header), 0)) { /* Something went wrong. */ close (fd); return; } #ifdef HAVE_MMAP /* Now we are ready to load the file. If mmap() is available we try this first. If not available or it failed we try to load it. */ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); if (__builtin_expect (data != (struct mo_file_header *) -1, 1)) { /* mmap() call was successful. */ close (fd); use_mmap = 1; } #endif /* If the data is not yet available (i.e. mmap'ed) we try to load it manually. */ if (data == (struct mo_file_header *) -1) { size_t to_read; char *read_ptr; data = (struct mo_file_header *) malloc (size); if (data == NULL) return; to_read = size; read_ptr = (char *) data; do { long int nb = (long int) read (fd, read_ptr, to_read); if (nb <= 0) { #ifdef EINTR if (nb == -1 && errno == EINTR) continue; #endif close (fd); return; } read_ptr += nb; to_read -= nb; } while (to_read > 0); close (fd); } /* Using the magic number we can test whether it really is a message catalog file. */ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED, 0)) { /* The magic number is wrong: not a message catalog file. */ #ifdef HAVE_MMAP if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); return; } domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); if (domain == NULL) return; domain_file->data = domain; domain->data = (char *) data; domain->use_mmap = use_mmap; domain->mmap_size = size; domain->must_swap = data->magic != _MAGIC; /* Fill in the information about the available tables. */ switch (W (domain->must_swap, data->revision)) { case 0: domain->nstrings = W (domain->must_swap, data->nstrings); domain->orig_tab = (struct string_desc *) ((char *) data + W (domain->must_swap, data->orig_tab_offset)); domain->trans_tab = (struct string_desc *) ((char *) data + W (domain->must_swap, data->trans_tab_offset)); domain->hash_size = W (domain->must_swap, data->hash_tab_size); domain->hash_tab = (nls_uint32 *) ((char *) data + W (domain->must_swap, data->hash_tab_offset)); break; default: /* This is an invalid revision. */ #ifdef HAVE_MMAP if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); free (domain); domain_file->data = NULL; return; } /* Now initialize the character set converter from the character set the file is encoded with (found in the header entry) to the domain's specified character set or the locale's character set. */ nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding); /* Also look for a plural specification. */ if (nullentry != NULL) { const char *plural; const char *nplurals; plural = strstr (nullentry, "plural="); nplurals = strstr (nullentry, "nplurals="); if (plural == NULL || nplurals == NULL) goto no_plural; else { /* First get the number. */ char *endp; unsigned long int n; struct parse_args args; nplurals += 9; while (*nplurals != '\0' && isspace (*nplurals)) ++nplurals; #if defined HAVE_STRTOUL || defined _LIBC n = strtoul (nplurals, &endp, 10); #else for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++) n = n * 10 + (*endp - '0'); #endif domain->nplurals = n; if (nplurals == endp) goto no_plural; /* Due to the restrictions bison imposes onto the interface of the scanner function we have to put the input string and the result passed up from the parser into the same structure which address is passed down to the parser. */ plural += 7; args.cp = plural; if (PLURAL_PARSE (&args) != 0) goto no_plural; domain->plural = args.res; } } else { /* By default we are using the Germanic form: singular form only for `one', the plural form otherwise. Yes, this is also what English is using since English is a Germanic language. */ no_plural: INIT_GERMANIC_PLURAL (); domain->plural = &germanic_plural; domain->nplurals = 2; } } #ifdef _LIBC void internal_function _nl_unload_domain (domain) struct loaded_domain *domain; { if (domain->plural != &germanic_plural) __gettext_free_exp (domain->plural); _nl_free_domain_conv (domain); # ifdef _POSIX_MAPPED_FILES if (domain->use_mmap) munmap ((caddr_t) domain->data, domain->mmap_size); else # endif /* _POSIX_MAPPED_FILES */ free ((void *) domain->data); free (domain); } #endif golist-0.3/intl/localealias.c0000644000000000000000000002231107333021353011665 /* Handle aliases for locale names. Copyright (C) 1995-1999, 2000, 2001 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. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #include #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #include "gettextP.h" /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define strcasecmp __strcasecmp # ifndef mempcpy # define mempcpy __mempcpy # endif # define HAVE_MEMPCPY 1 /* We need locking here since we can be called from different places. */ # include __libc_lock_define_initialized (static, lock); #endif #ifndef internal_function # define internal_function #endif /* For those losing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA # define freea(p) /* nothing */ #else # define alloca(n) malloc (n) # define freea(p) free (p) #endif #if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED # undef fgets # define fgets(buf, len, s) fgets_unlocked (buf, len, s) #endif #if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED # undef feof # define feof(s) feof_unlocked (s) #endif struct alias_map { const char *alias; const char *value; }; static char *string_space; static size_t string_space_act; static size_t string_space_max; static struct alias_map *map; static size_t nmap; static size_t maxmap; /* Prototypes for local functions. */ static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) internal_function; static int extend_alias_table PARAMS ((void)); static int alias_compare PARAMS ((const struct alias_map *map1, const struct alias_map *map2)); const char * _nl_expand_alias (name) const char *name; { static const char *locale_alias_path = LOCALE_ALIAS_PATH; struct alias_map *retval; const char *result = NULL; size_t added; #ifdef _LIBC __libc_lock_lock (lock); #endif do { struct alias_map item; item.alias = name; if (nmap > 0) retval = (struct alias_map *) bsearch (&item, map, nmap, sizeof (struct alias_map), (int (*) PARAMS ((const void *, const void *)) ) alias_compare); else retval = NULL; /* We really found an alias. Return the value. */ if (retval != NULL) { result = retval->value; break; } /* Perhaps we can find another alias file. */ added = 0; while (added == 0 && locale_alias_path[0] != '\0') { const char *start; while (locale_alias_path[0] == PATH_SEPARATOR) ++locale_alias_path; start = locale_alias_path; while (locale_alias_path[0] != '\0' && locale_alias_path[0] != PATH_SEPARATOR) ++locale_alias_path; if (start < locale_alias_path) added = read_alias_file (start, locale_alias_path - start); } } while (added != 0); #ifdef _LIBC __libc_lock_unlock (lock); #endif return result; } static size_t internal_function read_alias_file (fname, fname_len) const char *fname; int fname_len; { FILE *fp; char *full_fname; size_t added; static const char aliasfile[] = "/locale.alias"; full_fname = (char *) alloca (fname_len + sizeof aliasfile); #ifdef HAVE_MEMPCPY mempcpy (mempcpy (full_fname, fname, fname_len), aliasfile, sizeof aliasfile); #else memcpy (full_fname, fname, fname_len); memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); #endif fp = fopen (full_fname, "r"); freea (full_fname); if (fp == NULL) return 0; added = 0; while (!feof (fp)) { /* It is a reasonable approach to use a fix buffer here because a) we are only interested in the first two fields b) these fields must be usable as file names and so must not be that long */ char buf[BUFSIZ]; char *alias; char *value; char *cp; if (fgets (buf, sizeof buf, fp) == NULL) /* EOF reached. */ break; /* Possibly not the whole line fits into the buffer. Ignore the rest of the line. */ if (strchr (buf, '\n') == NULL) { char altbuf[BUFSIZ]; do if (fgets (altbuf, sizeof altbuf, fp) == NULL) /* Make sure the inner loop will be left. The outer loop will exit at the `feof' test. */ break; while (strchr (altbuf, '\n') == NULL); } cp = buf; /* Ignore leading white space. */ while (isspace (cp[0])) ++cp; /* A leading '#' signals a comment line. */ if (cp[0] != '\0' && cp[0] != '#') { alias = cp++; while (cp[0] != '\0' && !isspace (cp[0])) ++cp; /* Terminate alias name. */ if (cp[0] != '\0') *cp++ = '\0'; /* Now look for the beginning of the value. */ while (isspace (cp[0])) ++cp; if (cp[0] != '\0') { size_t alias_len; size_t value_len; value = cp++; while (cp[0] != '\0' && !isspace (cp[0])) ++cp; /* Terminate value. */ if (cp[0] == '\n') { /* This has to be done to make the following test for the end of line possible. We are looking for the terminating '\n' which do not overwrite here. */ *cp++ = '\0'; *cp = '\n'; } else if (cp[0] != '\0') *cp++ = '\0'; if (nmap >= maxmap) if (__builtin_expect (extend_alias_table (), 0)) return added; alias_len = strlen (alias) + 1; value_len = strlen (value) + 1; if (string_space_act + alias_len + value_len > string_space_max) { /* Increase size of memory pool. */ size_t new_size = (string_space_max + (alias_len + value_len > 1024 ? alias_len + value_len : 1024)); char *new_pool = (char *) realloc (string_space, new_size); if (new_pool == NULL) return added; if (__builtin_expect (string_space != new_pool, 0)) { size_t i; for (i = 0; i < nmap; i++) { map[i].alias += new_pool - string_space; map[i].value += new_pool - string_space; } } string_space = new_pool; string_space_max = new_size; } map[nmap].alias = memcpy (&string_space[string_space_act], alias, alias_len); string_space_act += alias_len; map[nmap].value = memcpy (&string_space[string_space_act], value, value_len); string_space_act += value_len; ++nmap; ++added; } } } /* Should we test for ferror()? I think we have to silently ignore errors. --drepper */ fclose (fp); if (added > 0) qsort (map, nmap, sizeof (struct alias_map), (int (*) PARAMS ((const void *, const void *))) alias_compare); return added; } static int extend_alias_table () { size_t new_size; struct alias_map *new_map; new_size = maxmap == 0 ? 100 : 2 * maxmap; new_map = (struct alias_map *) realloc (map, (new_size * sizeof (struct alias_map))); if (new_map == NULL) /* Simply don't extend: we don't have any more core. */ return -1; map = new_map; maxmap = new_size; return 0; } #ifdef _LIBC static void __attribute__ ((unused)) free_mem (void) { if (string_space != NULL) free (string_space); if (map != NULL) free (map); } text_set_element (__libc_subfreeres, free_mem); #endif static int alias_compare (map1, map2) const struct alias_map *map1; const struct alias_map *map2; { #if defined _LIBC || defined HAVE_STRCASECMP return strcasecmp (map1->alias, map2->alias); #else const unsigned char *p1 = (const unsigned char *) map1->alias; const unsigned char *p2 = (const unsigned char *) map2->alias; unsigned char c1, c2; if (p1 == p2) return 0; do { /* I know this seems to be odd but the tolower() function in some systems libc cannot handle nonalpha characters. */ c1 = isupper (*p1) ? tolower (*p1) : *p1; c2 = isupper (*p2) ? tolower (*p2) : *p2; if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); return c1 - c2; #endif } golist-0.3/intl/textdomain.c0000644000000000000000000001054407333021353011575 /* Implementation of the textdomain(3) function. Copyright (C) 1995-1998, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include "gettextP.h" #ifdef _LIBC /* We have to handle multi-threaded applications. */ # include #else /* Provide dummy implementation if this is outside glibc. */ # define __libc_rwlock_define(CLASS, NAME) # define __libc_rwlock_wrlock(NAME) # define __libc_rwlock_unlock(NAME) #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain _nl_default_default_domain__ # define _nl_current_default_domain _nl_current_default_domain__ #endif /* @@ end of prolog @@ */ /* Name of the default text domain. */ extern const char _nl_default_default_domain[]; /* Default text domain in which entries for gettext(3) are to be found. */ extern const char *_nl_current_default_domain; /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define TEXTDOMAIN __textdomain # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define TEXTDOMAIN textdomain__ #endif /* Lock variable to protect the global data in the gettext implementation. */ __libc_rwlock_define (extern, _nl_state_lock) /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ char * TEXTDOMAIN (domainname) const char *domainname; { char *new_domain; char *old_domain; /* A NULL pointer requests the current setting. */ if (domainname == NULL) return (char *) _nl_current_default_domain; __libc_rwlock_wrlock (_nl_state_lock); old_domain = (char *) _nl_current_default_domain; /* If domain name is the null string set to default domain "messages". */ if (domainname[0] == '\0' || strcmp (domainname, _nl_default_default_domain) == 0) { _nl_current_default_domain = _nl_default_default_domain; new_domain = (char *) _nl_current_default_domain; } else if (strcmp (domainname, old_domain) == 0) /* This can happen and people will use it to signal that some environment variable changed. */ new_domain = old_domain; else { /* If the following malloc fails `_nl_current_default_domain' will be NULL. This value will be returned and so signals we are out of core. */ #if defined _LIBC || defined HAVE_STRDUP new_domain = strdup (domainname); #else size_t len = strlen (domainname) + 1; new_domain = (char *) malloc (len); if (new_domain != NULL) memcpy (new_domain, domainname, len); #endif if (new_domain != NULL) _nl_current_default_domain = new_domain; } /* We use this possibility to signal a change of the loaded catalogs since this is most likely the case and there is no other easy we to do it. Do it only when the call was successful. */ if (new_domain != NULL) { ++_nl_msg_cat_cntr; if (old_domain != new_domain && old_domain != _nl_default_default_domain) free (old_domain); } __libc_rwlock_unlock (_nl_state_lock); return new_domain; } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__textdomain, textdomain); #endif golist-0.3/intl/l10nflist.c0000644000000000000000000002431707333021353011240 /* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. 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. */ /* Tell glibc's to provide a prototype for stpcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #if defined _LIBC || defined HAVE_ARGZ_H # include #endif #include #include #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # ifndef stpcpy # define stpcpy(dest, src) __stpcpy(dest, src) # endif #else # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); # endif #endif /* Define function which are usually not available. */ #if !defined _LIBC && !defined HAVE___ARGZ_COUNT /* Returns the number of strings in ARGZ. */ static size_t argz_count__ PARAMS ((const char *argz, size_t len)); static size_t argz_count__ (argz, len) const char *argz; size_t len; { size_t count = 0; while (len > 0) { size_t part_len = strlen (argz); argz += part_len + 1; len -= part_len + 1; count++; } return count; } # undef __argz_count # define __argz_count(argz, len) argz_count__ (argz, len) #endif /* !_LIBC && !HAVE___ARGZ_COUNT */ #if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's except the last into the character SEP. */ static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep)); static void argz_stringify__ (argz, len, sep) char *argz; size_t len; int sep; { while (len > 0) { size_t part_len = strlen (argz); argz += part_len; len -= part_len + 1; if (len > 0) *argz++ = sep; } } # undef __argz_stringify # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep) #endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */ #if !defined _LIBC && !defined HAVE___ARGZ_NEXT static char *argz_next__ PARAMS ((char *argz, size_t argz_len, const char *entry)); static char * argz_next__ (argz, argz_len, entry) char *argz; size_t argz_len; const char *entry; { if (entry) { if (entry < argz + argz_len) entry = strchr (entry, '\0') + 1; return entry >= argz + argz_len ? NULL : (char *) entry; } else if (argz_len > 0) return argz; else return 0; } # undef __argz_next # define __argz_next(argz, len, entry) argz_next__ (argz, len, entry) #endif /* !_LIBC && !HAVE___ARGZ_NEXT */ /* Return number of bits set in X. */ static int pop PARAMS ((int x)); static inline int pop (x) int x; { /* We assume that no more than 16 bits are used. */ x = ((x & ~0x5555) >> 1) + (x & 0x5555); x = ((x & ~0x3333) >> 2) + (x & 0x3333); x = ((x >> 4) + x) & 0x0f0f; x = ((x >> 8) + x) & 0xff; return x; } struct loaded_l10nfile * _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, filename, do_allocate) struct loaded_l10nfile **l10nfile_list; const char *dirlist; size_t dirlist_len; int mask; const char *language; const char *territory; const char *codeset; const char *normalized_codeset; const char *modifier; const char *special; const char *sponsor; const char *revision; const char *filename; int do_allocate; { char *abs_filename; struct loaded_l10nfile *last = NULL; struct loaded_l10nfile *retval; char *cp; size_t entries; int cnt; /* Allocate room for the full file name. */ abs_filename = (char *) malloc (dirlist_len + strlen (language) + ((mask & TERRITORY) != 0 ? strlen (territory) + 1 : 0) + ((mask & XPG_CODESET) != 0 ? strlen (codeset) + 1 : 0) + ((mask & XPG_NORM_CODESET) != 0 ? strlen (normalized_codeset) + 1 : 0) + (((mask & XPG_MODIFIER) != 0 || (mask & CEN_AUDIENCE) != 0) ? strlen (modifier) + 1 : 0) + ((mask & CEN_SPECIAL) != 0 ? strlen (special) + 1 : 0) + (((mask & CEN_SPONSOR) != 0 || (mask & CEN_REVISION) != 0) ? (1 + ((mask & CEN_SPONSOR) != 0 ? strlen (sponsor) + 1 : 0) + ((mask & CEN_REVISION) != 0 ? strlen (revision) + 1 : 0)) : 0) + 1 + strlen (filename) + 1); if (abs_filename == NULL) return NULL; retval = NULL; last = NULL; /* Construct file name. */ memcpy (abs_filename, dirlist, dirlist_len); __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR); cp = abs_filename + (dirlist_len - 1); *cp++ = '/'; cp = stpcpy (cp, language); if ((mask & TERRITORY) != 0) { *cp++ = '_'; cp = stpcpy (cp, territory); } if ((mask & XPG_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, codeset); } if ((mask & XPG_NORM_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, normalized_codeset); } if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0) { /* This component can be part of both syntaces but has different leading characters. For CEN we use `+', else `@'. */ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@'; cp = stpcpy (cp, modifier); } if ((mask & CEN_SPECIAL) != 0) { *cp++ = '+'; cp = stpcpy (cp, special); } if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0) { *cp++ = ','; if ((mask & CEN_SPONSOR) != 0) cp = stpcpy (cp, sponsor); if ((mask & CEN_REVISION) != 0) { *cp++ = '_'; cp = stpcpy (cp, revision); } } *cp++ = '/'; stpcpy (cp, filename); /* Look in list of already loaded domains whether it is already available. */ last = NULL; for (retval = *l10nfile_list; retval != NULL; retval = retval->next) if (retval->filename != NULL) { int compare = strcmp (retval->filename, abs_filename); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It's not in the list. */ retval = NULL; break; } last = retval; } if (retval != NULL || do_allocate == 0) { free (abs_filename); return retval; } retval = (struct loaded_l10nfile *) malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) * (1 << pop (mask)) * sizeof (struct loaded_l10nfile *))); if (retval == NULL) return NULL; retval->filename = abs_filename; retval->decided = (__argz_count (dirlist, dirlist_len) != 1 || ((mask & XPG_CODESET) != 0 && (mask & XPG_NORM_CODESET) != 0)); retval->data = NULL; if (last == NULL) { retval->next = *l10nfile_list; *l10nfile_list = retval; } else { retval->next = last->next; last->next = retval; } entries = 0; /* If the DIRLIST is a real list the RETVAL entry corresponds not to a real file. So we have to use the DIRLIST separation mechanism of the inner loop. */ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask; for (; cnt >= 0; --cnt) if ((cnt & ~mask) == 0 && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0) && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0)) { /* Iterate over all elements of the DIRLIST. */ char *dir = NULL; while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir)) != NULL) retval->successor[entries++] = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, filename, 1); } retval->successor[entries] = NULL; return retval; } /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. The return value is dynamically allocated and has to be freed by the caller. */ const char * _nl_normalize_codeset (codeset, name_len) const char *codeset; size_t name_len; { int len = 0; int only_digit = 1; char *retval; char *wp; size_t cnt; for (cnt = 0; cnt < name_len; ++cnt) if (isalnum (codeset[cnt])) { ++len; if (isalpha (codeset[cnt])) only_digit = 0; } retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1); if (retval != NULL) { if (only_digit) wp = stpcpy (retval, "iso"); else wp = retval; for (cnt = 0; cnt < name_len; ++cnt) if (isalpha (codeset[cnt])) *wp++ = tolower (codeset[cnt]); else if (isdigit (codeset[cnt])) *wp++ = codeset[cnt]; *wp = '\0'; } return (const char *) retval; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif golist-0.3/intl/explodename.c0000644000000000000000000001101507333021353011714 /* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ char * _nl_find_language (name) const char *name; { while (name[0] != '\0' && name[0] != '_' && name[0] != '@' && name[0] != '+' && name[0] != ',') ++name; return (char *) name; } int _nl_explode_name (name, language, modifier, territory, codeset, normalized_codeset, special, sponsor, revision) char *name; const char **language; const char **modifier; const char **territory; const char **codeset; const char **normalized_codeset; const char **special; const char **sponsor; const char **revision; { enum { undecided, xpg, cen } syntax; char *cp; int mask; *modifier = NULL; *territory = NULL; *codeset = NULL; *normalized_codeset = NULL; *special = NULL; *sponsor = NULL; *revision = NULL; /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_' and `@' if we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ mask = 0; syntax = undecided; *language = cp = name; cp = _nl_find_language (*language); if (*language == cp) /* This does not make sense: language has to be specified. Use this entry as it is without exploding. Perhaps it is an alias. */ cp = strchr (*language, '\0'); else if (cp[0] == '_') { /* Next is the territory. */ cp[0] = '\0'; *territory = ++cp; while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@' && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= TERRITORY; if (cp[0] == '.') { /* Next is the codeset. */ syntax = xpg; cp[0] = '\0'; *codeset = ++cp; while (cp[0] != '\0' && cp[0] != '@') ++cp; mask |= XPG_CODESET; if (*codeset != cp && (*codeset)[0] != '\0') { *normalized_codeset = _nl_normalize_codeset (*codeset, cp - *codeset); if (strcmp (*codeset, *normalized_codeset) == 0) free ((char *) *normalized_codeset); else mask |= XPG_NORM_CODESET; } } } if (cp[0] == '@' || (syntax != xpg && cp[0] == '+')) { /* Next is the modifier. */ syntax = cp[0] == '@' ? xpg : cen; cp[0] = '\0'; *modifier = ++cp; while (syntax == cen && cp[0] != '\0' && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= XPG_MODIFIER | CEN_AUDIENCE; } if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_')) { syntax = cen; if (cp[0] == '+') { /* Next is special application (CEN syntax). */ cp[0] = '\0'; *special = ++cp; while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= CEN_SPECIAL; } if (cp[0] == ',') { /* Next is sponsor (CEN syntax). */ cp[0] = '\0'; *sponsor = ++cp; while (cp[0] != '\0' && cp[0] != '_') ++cp; mask |= CEN_SPONSOR; } if (cp[0] == '_') { /* Next is revision (CEN syntax). */ cp[0] = '\0'; *revision = ++cp; mask |= CEN_REVISION; } } /* For CEN syntax values it might be important to have the separator character in the file name, not for XPG syntax. */ if (syntax == xpg) { if (*territory != NULL && (*territory)[0] == '\0') mask &= ~TERRITORY; if (*codeset != NULL && (*codeset)[0] == '\0') mask &= ~XPG_CODESET; if (*modifier != NULL && (*modifier)[0] == '\0') mask &= ~XPG_MODIFIER; } return mask; } golist-0.3/intl/dcigettext.c0000644000000000000000000010232507333021353011564 /* Implementation of the internal dcigettext function. Copyright (C) 1995-1999, 2000, 2001 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. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #ifndef errno extern int errno; #endif #ifndef __set_errno # define __set_errno(val) errno = (val) #endif #include #include #include #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include #if defined HAVE_SYS_PARAM_H || defined _LIBC # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include "hash-string.h" /* Thread safetyness. */ #ifdef _LIBC # include #else /* Provide dummy implementation if this is outside glibc. */ # define __libc_lock_define_initialized(CLASS, NAME) # define __libc_lock_lock(NAME) # define __libc_lock_unlock(NAME) # define __libc_rwlock_define_initialized(CLASS, NAME) # define __libc_rwlock_rdlock(NAME) # define __libc_rwlock_unlock(NAME) #endif /* Alignment of types. */ #if defined __GNUC__ && __GNUC__ >= 2 # define alignof(TYPE) __alignof__ (TYPE) #else # define alignof(TYPE) \ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2) #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain _nl_default_default_domain__ # define _nl_current_default_domain _nl_current_default_domain__ # define _nl_default_dirname _nl_default_dirname__ # define _nl_domain_bindings _nl_domain_bindings__ #endif /* Some compilers, like SunOS4 cc, don't have offsetof in . */ #ifndef offsetof # define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define getcwd __getcwd # ifndef stpcpy # define stpcpy __stpcpy # endif # define tfind __tfind #else # if !defined HAVE_GETCWD char *getwd (); # define getcwd(buf, max) getwd (buf) # else char *getcwd (); # endif # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); # endif # ifndef HAVE_MEMPCPY static void *mempcpy PARAMS ((void *dest, const void *src, size_t n)); # endif #endif /* Amount to increase buffer size by in each try. */ #define PATH_INCR 32 /* The following is from pathmax.h. */ /* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define PATH_MAX but might cause redefinition warnings when sys/param.h is later included (as on MORE/BSD 4.3). */ #if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__) # include #endif #ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 255 #endif #if !defined PATH_MAX && defined _PC_PATH_MAX # define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) #endif /* Don't include sys/param.h if it already has been. */ #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifndef PATH_MAX # define PATH_MAX _POSIX_PATH_MAX #endif /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, it may be concatenated to a directory pathname. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ /* Win32, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) #endif /* XPG3 defines the result of `setlocale (category, NULL)' as: ``Directs `setlocale()' to query `category' and return the current setting of `local'.'' However it does not specify the exact format. Neither do SUSV2 and ISO C 99. So we can use this feature only on selected systems (e.g. those using GNU C Library). */ #if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2) # define HAVE_LOCALE_NULL #endif /* This is the type used for the search tree where known translations are stored. */ struct known_translation_t { /* Domain in which to search. */ char *domainname; /* The category. */ int category; /* State of the catalog counter at the point the string was found. */ int counter; /* Catalog where the string was found. */ struct loaded_l10nfile *domain; /* And finally the translation. */ const char *translation; size_t translation_length; /* Pointer to the string in question. */ char msgid[ZERO]; }; /* Root of the search tree with known translations. We can use this only if the system provides the `tsearch' function family. */ #if defined HAVE_TSEARCH || defined _LIBC # include static void *root; # ifdef _LIBC # define tsearch __tsearch # endif /* Function to compare two entries in the table of known translations. */ static int transcmp PARAMS ((const void *p1, const void *p2)); static int transcmp (p1, p2) const void *p1; const void *p2; { const struct known_translation_t *s1; const struct known_translation_t *s2; int result; s1 = (const struct known_translation_t *) p1; s2 = (const struct known_translation_t *) p2; result = strcmp (s1->msgid, s2->msgid); if (result == 0) { result = strcmp (s1->domainname, s2->domainname); if (result == 0) /* We compare the category last (though this is the cheapest operation) since it is hopefully always the same (namely LC_MESSAGES). */ result = s1->category - s2->category; } return result; } #endif /* Name of the default domain used for gettext(3) prior any call to textdomain(3). The default value for this is "messages". */ const char _nl_default_default_domain[] = "messages"; /* Value used as the default domain for gettext(3). */ const char *_nl_current_default_domain = _nl_default_default_domain; /* Contains the default location of the message catalogs. */ const char _nl_default_dirname[] = LOCALEDIR; /* List with bindings of specific domains created by bindtextdomain() calls. */ struct binding *_nl_domain_bindings; /* Prototypes for local functions. */ static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain, unsigned long int n, const char *translation, size_t translation_len)) internal_function; static unsigned long int plural_eval PARAMS ((struct expression *pexp, unsigned long int n)) internal_function; static const char *category_to_name PARAMS ((int category)) internal_function; static const char *guess_category_value PARAMS ((int category, const char *categoryname)) internal_function; /* For those loosing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA /* Nothing has to be done. */ # define ADD_BLOCK(list, address) /* nothing */ # define FREE_BLOCKS(list) /* nothing */ #else struct block_list { void *address; struct block_list *next; }; # define ADD_BLOCK(list, addr) \ do { \ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ /* If we cannot get a free block we cannot add the new element to \ the list. */ \ if (newp != NULL) { \ newp->address = (addr); \ newp->next = (list); \ (list) = newp; \ } \ } while (0) # define FREE_BLOCKS(list) \ do { \ while (list != NULL) { \ struct block_list *old = list; \ list = list->next; \ free (old); \ } \ } while (0) # undef alloca # define alloca(size) (malloc (size)) #endif /* have alloca */ #ifdef _LIBC /* List of blocks allocated for translations. */ typedef struct transmem_list { struct transmem_list *next; char data[ZERO]; } transmem_block_t; static struct transmem_list *transmem_list; #else typedef unsigned char transmem_block_t; #endif /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCIGETTEXT __dcigettext #else # define DCIGETTEXT dcigettext__ #endif /* Lock variable to protect the global data in the gettext implementation. */ #ifdef _LIBC __libc_rwlock_define_initialized (, _nl_state_lock) #endif /* Checking whether the binaries runs SUID must be done and glibc provides easier methods therefore we make a difference here. */ #ifdef _LIBC # define ENABLE_SECURE __libc_enable_secure # define DETERMINE_SECURE #else # ifndef HAVE_GETUID # define getuid() 0 # endif # ifndef HAVE_GETGID # define getgid() 0 # endif # ifndef HAVE_GETEUID # define geteuid() getuid() # endif # ifndef HAVE_GETEGID # define getegid() getgid() # endif static int enable_secure; # define ENABLE_SECURE (enable_secure == 1) # define DETERMINE_SECURE \ if (enable_secure == 0) \ { \ if (getuid () != geteuid () || getgid () != getegid ()) \ enable_secure = 1; \ else \ enable_secure = -1; \ } #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale and, if PLURAL is nonzero, search over string depending on the plural form determined by N. */ char * DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) const char *domainname; const char *msgid1; const char *msgid2; int plural; unsigned long int n; int category; { #ifndef HAVE_ALLOCA struct block_list *block_list = NULL; #endif struct loaded_l10nfile *domain; struct binding *binding; const char *categoryname; const char *categoryvalue; char *dirname, *xdomainname; char *single_locale; char *retval; size_t retlen; int saved_errno; #if defined HAVE_TSEARCH || defined _LIBC struct known_translation_t *search; struct known_translation_t **foundp = NULL; size_t msgid_len; #endif size_t domainname_len; /* If no real MSGID is given return NULL. */ if (msgid1 == NULL) return NULL; __libc_rwlock_rdlock (_nl_state_lock); /* If DOMAINNAME is NULL, we are interested in the default domain. If CATEGORY is not LC_MESSAGES this might not make much sense but the definition left this undefined. */ if (domainname == NULL) domainname = _nl_current_default_domain; #if defined HAVE_TSEARCH || defined _LIBC msgid_len = strlen (msgid1) + 1; /* Try to find the translation among those which we found at some time. */ search = (struct known_translation_t *) alloca (offsetof (struct known_translation_t, msgid) + msgid_len); memcpy (search->msgid, msgid1, msgid_len); search->domainname = (char *) domainname; search->category = category; foundp = (struct known_translation_t **) tfind (search, &root, transcmp); if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr) { /* Now deal with plural. */ if (plural) retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation, (*foundp)->translation_length); else retval = (char *) (*foundp)->translation; __libc_rwlock_unlock (_nl_state_lock); return retval; } #endif /* Preserve the `errno' value. */ saved_errno = errno; /* See whether this is a SUID binary or not. */ DETERMINE_SECURE; /* First find matching binding. */ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding == NULL) dirname = (char *) _nl_default_dirname; else if (IS_ABSOLUTE_PATH (binding->dirname)) dirname = binding->dirname; else { /* We have a relative path. Make it absolute now. */ size_t dirname_len = strlen (binding->dirname) + 1; size_t path_max; char *ret; path_max = (unsigned int) PATH_MAX; path_max += 2; /* The getcwd docs say to do this. */ for (;;) { dirname = (char *) alloca (path_max + dirname_len); ADD_BLOCK (block_list, dirname); __set_errno (0); ret = getcwd (dirname, path_max); if (ret != NULL || errno != ERANGE) break; path_max += path_max / 2; path_max += PATH_INCR; } if (ret == NULL) { /* We cannot get the current working directory. Don't signal an error but simply return the default string. */ FREE_BLOCKS (block_list); __libc_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return (plural == 0 ? (char *) msgid1 /* Use the Germanic plural rule. */ : n == 1 ? (char *) msgid1 : (char *) msgid2); } stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); } /* Now determine the symbolic name of CATEGORY and its value. */ categoryname = category_to_name (category); categoryvalue = guess_category_value (category, categoryname); domainname_len = strlen (domainname); xdomainname = (char *) alloca (strlen (categoryname) + domainname_len + 5); ADD_BLOCK (block_list, xdomainname); stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), domainname, domainname_len), ".mo"); /* Creating working area. */ single_locale = (char *) alloca (strlen (categoryvalue) + 1); ADD_BLOCK (block_list, single_locale); /* Search for the given string. This is a loop because we perhaps got an ordered list of languages to consider for the translation. */ while (1) { /* Make CATEGORYVALUE point to the next element of the list. */ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') ++categoryvalue; if (categoryvalue[0] == '\0') { /* The whole contents of CATEGORYVALUE has been searched but no valid entry has been found. We solve this situation by implicitly appending a "C" entry, i.e. no translation will take place. */ single_locale[0] = 'C'; single_locale[1] = '\0'; } else { char *cp = single_locale; while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') *cp++ = *categoryvalue++; *cp = '\0'; /* When this is a SUID binary we must not allow accessing files outside the dedicated directories. */ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale)) /* Ingore this entry. */ continue; } /* If the current locale value is C (or POSIX) we don't load a domain. Return the MSGID. */ if (strcmp (single_locale, "C") == 0 || strcmp (single_locale, "POSIX") == 0) { FREE_BLOCKS (block_list); __libc_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return (plural == 0 ? (char *) msgid1 /* Use the Germanic plural rule. */ : n == 1 ? (char *) msgid1 : (char *) msgid2); } /* Find structure describing the message catalog matching the DOMAINNAME and CATEGORY. */ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding); if (domain != NULL) { retval = _nl_find_msg (domain, binding, msgid1, &retlen); if (retval == NULL) { int cnt; for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) { retval = _nl_find_msg (domain->successor[cnt], binding, msgid1, &retlen); if (retval != NULL) { domain = domain->successor[cnt]; break; } } } if (retval != NULL) { /* Found the translation of MSGID1 in domain DOMAIN: starting at RETVAL, RETLEN bytes. */ FREE_BLOCKS (block_list); __set_errno (saved_errno); #if defined HAVE_TSEARCH || defined _LIBC if (foundp == NULL) { /* Create a new entry and add it to the search tree. */ struct known_translation_t *newp; newp = (struct known_translation_t *) malloc (offsetof (struct known_translation_t, msgid) + msgid_len + domainname_len + 1); if (newp != NULL) { newp->domainname = mempcpy (newp->msgid, msgid1, msgid_len); memcpy (newp->domainname, domainname, domainname_len + 1); newp->category = category; newp->counter = _nl_msg_cat_cntr; newp->domain = domain; newp->translation = retval; newp->translation_length = retlen; /* Insert the entry in the search tree. */ foundp = (struct known_translation_t **) tsearch (newp, &root, transcmp); if (foundp == NULL || __builtin_expect (*foundp != newp, 0)) /* The insert failed. */ free (newp); } } else { /* We can update the existing entry. */ (*foundp)->counter = _nl_msg_cat_cntr; (*foundp)->domain = domain; (*foundp)->translation = retval; (*foundp)->translation_length = retlen; } #endif /* Now deal with plural. */ if (plural) retval = plural_lookup (domain, n, retval, retlen); __libc_rwlock_unlock (_nl_state_lock); return retval; } } } /* NOTREACHED */ } char * internal_function _nl_find_msg (domain_file, domainbinding, msgid, lengthp) struct loaded_l10nfile *domain_file; struct binding *domainbinding; const char *msgid; size_t *lengthp; { struct loaded_domain *domain; size_t act; char *result; size_t resultlen; if (domain_file->decided == 0) _nl_load_domain (domain_file, domainbinding); if (domain_file->data == NULL) return NULL; domain = (struct loaded_domain *) domain_file->data; /* Locate the MSGID and its translation. */ if (domain->hash_size > 2 && domain->hash_tab != NULL) { /* Use the hashing table. */ nls_uint32 len = strlen (msgid); nls_uint32 hash_val = hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); while (1) { nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); if (nstr == 0) /* Hash table entry is empty. */ return NULL; /* Compare msgid with the original string at index nstr-1. We compare the lengths with >=, not ==, because plural entries are represented by strings with an embedded NUL. */ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) >= len && (strcmp (msgid, domain->data + W (domain->must_swap, domain->orig_tab[nstr - 1].offset)) == 0)) { act = nstr - 1; goto found; } if (idx >= domain->hash_size - incr) idx -= domain->hash_size - incr; else idx += incr; } /* NOTREACHED */ } else { /* Try the default method: binary search in the sorted array of messages. */ size_t top, bottom; bottom = 0; top = domain->nstrings; while (bottom < top) { int cmp_val; act = (bottom + top) / 2; cmp_val = strcmp (msgid, (domain->data + W (domain->must_swap, domain->orig_tab[act].offset))); if (cmp_val < 0) top = act; else if (cmp_val > 0) bottom = act + 1; else goto found; } /* No translation was found. */ return NULL; } found: /* The translation was found at index ACT. If we have to convert the string to use a different character set, this is the time. */ result = ((char *) domain->data + W (domain->must_swap, domain->trans_tab[act].offset)); resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1; #if defined _LIBC || HAVE_ICONV if (domain->codeset_cntr != (domainbinding != NULL ? domainbinding->codeset_cntr : 0)) { /* The domain's codeset has changed through bind_textdomain_codeset() since the message catalog was initialized or last accessed. We have to reinitialize the converter. */ _nl_free_domain_conv (domain); _nl_init_domain_conv (domain_file, domain, domainbinding); } if ( # ifdef _LIBC domain->conv != (__gconv_t) -1 # else # if HAVE_ICONV domain->conv != (iconv_t) -1 # endif # endif ) { /* We are supposed to do a conversion. First allocate an appropriate table with the same structure as the table of translations in the file, where we can put the pointers to the converted strings in. There is a slight complication with plural entries. They are represented by consecutive NUL terminated strings. We handle this case by converting RESULTLEN bytes, including NULs. */ if (domain->conv_tab == NULL && ((domain->conv_tab = (char **) calloc (domain->nstrings, sizeof (char *))) == NULL)) /* Mark that we didn't succeed allocating a table. */ domain->conv_tab = (char **) -1; if (__builtin_expect (domain->conv_tab == (char **) -1, 0)) /* Nothing we can do, no more memory. */ goto converted; if (domain->conv_tab[act] == NULL) { /* We haven't used this string so far, so it is not translated yet. Do this now. */ /* We use a bit more efficient memory handling. We allocate always larger blocks which get used over time. This is faster than many small allocations. */ __libc_lock_define_initialized (static, lock) # define INITIAL_BLOCK_SIZE 4080 static unsigned char *freemem; static size_t freemem_size; const unsigned char *inbuf; unsigned char *outbuf; int malloc_count; # ifndef _LIBC transmem_block_t *transmem_list = NULL; # endif __libc_lock_lock (lock); inbuf = (const unsigned char *) result; outbuf = freemem + sizeof (size_t); malloc_count = 0; while (1) { transmem_block_t *newmem; # ifdef _LIBC size_t non_reversible; int res; if (freemem_size < sizeof (size_t)) goto resize_freemem; res = __gconv (domain->conv, &inbuf, inbuf + resultlen, &outbuf, outbuf + freemem_size - sizeof (size_t), &non_reversible); if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT) break; if (res != __GCONV_FULL_OUTPUT) { __libc_lock_unlock (lock); goto converted; } inbuf = result; # else # if HAVE_ICONV const char *inptr = (const char *) inbuf; size_t inleft = resultlen; char *outptr = (char *) outbuf; size_t outleft; if (freemem_size < sizeof (size_t)) goto resize_freemem; outleft = freemem_size - sizeof (size_t); if (iconv (domain->conv, (ICONV_CONST char **) &inptr, &inleft, &outptr, &outleft) != (size_t) (-1)) { outbuf = (unsigned char *) outptr; break; } if (errno != E2BIG) { __libc_lock_unlock (lock); goto converted; } # endif # endif resize_freemem: /* We must allocate a new buffer or resize the old one. */ if (malloc_count > 0) { ++malloc_count; freemem_size = malloc_count * INITIAL_BLOCK_SIZE; newmem = (transmem_block_t *) realloc (transmem_list, freemem_size); # ifdef _LIBC if (newmem != NULL) transmem_list = transmem_list->next; else { struct transmem_list *old = transmem_list; transmem_list = transmem_list->next; free (old); } # endif } else { malloc_count = 1; freemem_size = INITIAL_BLOCK_SIZE; newmem = (transmem_block_t *) malloc (freemem_size); } if (__builtin_expect (newmem == NULL, 0)) { freemem = NULL; freemem_size = 0; __libc_lock_unlock (lock); goto converted; } # ifdef _LIBC /* Add the block to the list of blocks we have to free at some point. */ newmem->next = transmem_list; transmem_list = newmem; freemem = newmem->data; freemem_size -= offsetof (struct transmem_list, data); # else transmem_list = newmem; freemem = newmem; # endif outbuf = freemem + sizeof (size_t); } /* We have now in our buffer a converted string. Put this into the table of conversions. */ *(size_t *) freemem = outbuf - freemem - sizeof (size_t); domain->conv_tab[act] = (char *) freemem; /* Shrink freemem, but keep it aligned. */ freemem_size -= outbuf - freemem; freemem = outbuf; freemem += freemem_size & (alignof (size_t) - 1); freemem_size = freemem_size & ~ (alignof (size_t) - 1); __libc_lock_unlock (lock); } /* Now domain->conv_tab[act] contains the translation of all the plural variants. */ result = domain->conv_tab[act] + sizeof (size_t); resultlen = *(size_t *) domain->conv_tab[act]; } converted: /* The result string is converted. */ #endif /* _LIBC || HAVE_ICONV */ *lengthp = resultlen; return result; } /* Look up a plural variant. */ static char * internal_function plural_lookup (domain, n, translation, translation_len) struct loaded_l10nfile *domain; unsigned long int n; const char *translation; size_t translation_len; { struct loaded_domain *domaindata = (struct loaded_domain *) domain->data; unsigned long int index; const char *p; index = plural_eval (domaindata->plural, n); if (index >= domaindata->nplurals) /* This should never happen. It means the plural expression and the given maximum value do not match. */ index = 0; /* Skip INDEX strings at TRANSLATION. */ p = translation; while (index-- > 0) { #ifdef _LIBC p = __rawmemchr (p, '\0'); #else p = strchr (p, '\0'); #endif /* And skip over the NUL byte. */ p++; if (p >= translation + translation_len) /* This should never happen. It means the plural expression evaluated to a value larger than the number of variants available for MSGID1. */ return (char *) translation; } return (char *) p; } /* Function to evaluate the plural expression and return an index value. */ static unsigned long int internal_function plural_eval (pexp, n) struct expression *pexp; unsigned long int n; { switch (pexp->nargs) { case 0: switch (pexp->operation) { case var: return n; case num: return pexp->val.num; default: break; } /* NOTREACHED */ break; case 1: { /* pexp->operation must be lnot. */ unsigned long int arg = plural_eval (pexp->val.args[0], n); return ! arg; } case 2: { unsigned long int leftarg = plural_eval (pexp->val.args[0], n); if (pexp->operation == lor) return leftarg || plural_eval (pexp->val.args[1], n); else if (pexp->operation == land) return leftarg && plural_eval (pexp->val.args[1], n); else { unsigned long int rightarg = plural_eval (pexp->val.args[1], n); switch (pexp->operation) { case mult: return leftarg * rightarg; case divide: return leftarg / rightarg; case module: return leftarg % rightarg; case plus: return leftarg + rightarg; case minus: return leftarg - rightarg; case less_than: return leftarg < rightarg; case greater_than: return leftarg > rightarg; case less_or_equal: return leftarg <= rightarg; case greater_or_equal: return leftarg >= rightarg; case equal: return leftarg == rightarg; case not_equal: return leftarg != rightarg; default: break; } } /* NOTREACHED */ break; } case 3: { /* pexp->operation must be qmop. */ unsigned long int boolarg = plural_eval (pexp->val.args[0], n); return plural_eval (pexp->val.args[boolarg ? 1 : 2], n); } } /* NOTREACHED */ return 0; } /* Return string representation of locale CATEGORY. */ static const char * internal_function category_to_name (category) int category; { const char *retval; switch (category) { #ifdef LC_COLLATE case LC_COLLATE: retval = "LC_COLLATE"; break; #endif #ifdef LC_CTYPE case LC_CTYPE: retval = "LC_CTYPE"; break; #endif #ifdef LC_MONETARY case LC_MONETARY: retval = "LC_MONETARY"; break; #endif #ifdef LC_NUMERIC case LC_NUMERIC: retval = "LC_NUMERIC"; break; #endif #ifdef LC_TIME case LC_TIME: retval = "LC_TIME"; break; #endif #ifdef LC_MESSAGES case LC_MESSAGES: retval = "LC_MESSAGES"; break; #endif #ifdef LC_RESPONSE case LC_RESPONSE: retval = "LC_RESPONSE"; break; #endif #ifdef LC_ALL case LC_ALL: /* This might not make sense but is perhaps better than any other value. */ retval = "LC_ALL"; break; #endif default: /* If you have a better idea for a default value let me know. */ retval = "LC_XXX"; } return retval; } /* Guess value of current locale from value of the environment variables. */ static const char * internal_function guess_category_value (category, categoryname) int category; const char *categoryname; { const char *language; const char *retval; /* The highest priority value is the `LANGUAGE' environment variable. But we don't use the value if the currently selected locale is the C locale. This is a GNU extension. */ language = getenv ("LANGUAGE"); if (language != NULL && language[0] == '\0') language = NULL; /* We have to proceed with the POSIX methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some systems this can be done by the `setlocale' function itself. */ #if defined _LIBC || (defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL) retval = setlocale (category, NULL); #else /* Setting of LC_ALL overwrites all other. */ retval = getenv ("LC_ALL"); if (retval == NULL || retval[0] == '\0') { /* Next comes the name of the desired category. */ retval = getenv (categoryname); if (retval == NULL || retval[0] == '\0') { /* Last possibility is the LANG environment variable. */ retval = getenv ("LANG"); if (retval == NULL || retval[0] == '\0') /* We use C as the default domain. POSIX says this is implementation defined. */ return "C"; } } #endif return language != NULL && strcmp (retval, "C") != 0 ? language : retval; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif #if !_LIBC && !HAVE_MEMPCPY static void * mempcpy (dest, src, n) void *dest; const void *src; size_t n; { return (void *) ((char *) memcpy (dest, src, n) + n); } #endif #ifdef _LIBC /* If we want to free all resources we have to do some work at program's end. */ static void __attribute__ ((unused)) free_mem (void) { void *old; while (_nl_domain_bindings != NULL) { struct binding *oldp = _nl_domain_bindings; _nl_domain_bindings = _nl_domain_bindings->next; if (oldp->dirname != _nl_default_dirname) /* Yes, this is a pointer comparison. */ free (oldp->dirname); free (oldp->codeset); free (oldp); } if (_nl_current_default_domain != _nl_default_default_domain) /* Yes, again a pointer comparison. */ free ((char *) _nl_current_default_domain); /* Remove the search tree with the known translations. */ __tdestroy (root, free); root = NULL; while (transmem_list != NULL) { old = transmem_list; transmem_list = transmem_list->next; free (old); } } text_set_element (__libc_subfreeres, free_mem); #endif golist-0.3/intl/dcngettext.c0000644000000000000000000000351207333021353011567 /* Implementation of the dcngettext(3) function. Copyright (C) 1995-1999, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCNGETTEXT __dcngettext # define DCIGETTEXT __dcigettext #else # define DCNGETTEXT dcngettext__ # define DCIGETTEXT dcigettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCNGETTEXT (domainname, msgid1, msgid2, n, category) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; int category; { return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dcngettext, dcngettext); #endif golist-0.3/intl/dngettext.c0000644000000000000000000000355207333021353011430 /* Implementation of the dngettext(3) function. Copyright (C) 1995-1997, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DNGETTEXT __dngettext # define DCNGETTEXT __dcngettext #else # define DNGETTEXT dngettext__ # define DCNGETTEXT dcngettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale and skip message according to the plural form. */ char * DNGETTEXT (domainname, msgid1, msgid2, n) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; { return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dngettext, dngettext); #endif golist-0.3/intl/ngettext.c0000644000000000000000000000366407333021353011270 /* Implementation of ngettext(3) function. Copyright (C) 1995, 1997, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # include /* Just for NULL. */ #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define NGETTEXT __ngettext # define DCNGETTEXT __dcngettext #else # define NGETTEXT ngettext__ # define DCNGETTEXT dcngettext__ #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * NGETTEXT (msgid1, msgid2, n) const char *msgid1; const char *msgid2; unsigned long int n; { return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__ngettext, ngettext); #endif golist-0.3/intl/plural.y0000644000000000000000000002022707333021353010745 %{ /* Expression parsing for plural form selection. Copyright (C) 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. 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. */ /* The bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's skeleton file comes too late. This must come before because may include arbitrary system headers. */ #if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define FREE_EXPRESSION __gettext_free_exp #else # define FREE_EXPRESSION gettext_free_exp__ # define __gettextparse gettextparse__ #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg %} %pure_parser %expect 10 %union { unsigned long int num; enum operator op; struct expression *exp; } %{ /* Prototypes for local functions. */ static struct expression *new_exp PARAMS ((int nargs, enum operator op, struct expression * const *args)); static inline struct expression *new_exp_0 PARAMS ((enum operator op)); static inline struct expression *new_exp_1 PARAMS ((enum operator op, struct expression *right)); static struct expression *new_exp_2 PARAMS ((enum operator op, struct expression *left, struct expression *right)); static inline struct expression *new_exp_3 PARAMS ((enum operator op, struct expression *bexp, struct expression *tbranch, struct expression *fbranch)); static int yylex PARAMS ((YYSTYPE *lval, const char **pexp)); static void yyerror PARAMS ((const char *str)); /* Allocation of expressions. */ static struct expression * new_exp (nargs, op, args) int nargs; enum operator op; struct expression * const *args; { int i; struct expression *newp; /* If any of the argument could not be malloc'ed, just return NULL. */ for (i = nargs - 1; i >= 0; i--) if (args[i] == NULL) goto fail; /* Allocate a new expression. */ newp = (struct expression *) malloc (sizeof (*newp)); if (newp != NULL) { newp->nargs = nargs; newp->operation = op; for (i = nargs - 1; i >= 0; i--) newp->val.args[i] = args[i]; return newp; } fail: for (i = nargs - 1; i >= 0; i--) FREE_EXPRESSION (args[i]); return NULL; } static inline struct expression * new_exp_0 (op) enum operator op; { return new_exp (0, op, NULL); } static inline struct expression * new_exp_1 (op, right) enum operator op; struct expression *right; { struct expression *args[1]; args[0] = right; return new_exp (1, op, args); } static struct expression * new_exp_2 (op, left, right) enum operator op; struct expression *left; struct expression *right; { struct expression *args[2]; args[0] = left; args[1] = right; return new_exp (2, op, args); } static inline struct expression * new_exp_3 (op, bexp, tbranch, fbranch) enum operator op; struct expression *bexp; struct expression *tbranch; struct expression *fbranch; { struct expression *args[3]; args[0] = bexp; args[1] = tbranch; args[2] = fbranch; return new_exp (3, op, args); } %} /* This declares that all operators have the same associativity and the precedence order as in C. See [Harbison, Steele: C, A Reference Manual]. There is no unary minus and no bitwise operators. Operators with the same syntactic behaviour have been merged into a single token, to save space in the array generated by bison. */ %right '?' /* ? */ %left '|' /* || */ %left '&' /* && */ %left EQUOP2 /* == != */ %left CMPOP2 /* < > <= >= */ %left ADDOP2 /* + - */ %left MULOP2 /* * / % */ %right '!' /* ! */ %token EQUOP2 CMPOP2 ADDOP2 MULOP2 %token NUMBER %type exp %% start: exp { if ($1 == NULL) YYABORT; ((struct parse_args *) arg)->res = $1; } ; exp: exp '?' exp ':' exp { $$ = new_exp_3 (qmop, $1, $3, $5); } | exp '|' exp { $$ = new_exp_2 (lor, $1, $3); } | exp '&' exp { $$ = new_exp_2 (land, $1, $3); } | exp EQUOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp CMPOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp ADDOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp MULOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | '!' exp { $$ = new_exp_1 (lnot, $2); } | 'n' { $$ = new_exp_0 (var); } | NUMBER { if (($$ = new_exp_0 (num)) != NULL) $$->val.num = $1; } | '(' exp ')' { $$ = $2; } ; %% void internal_function FREE_EXPRESSION (exp) struct expression *exp; { if (exp == NULL) return; /* Handle the recursive case. */ switch (exp->nargs) { case 3: FREE_EXPRESSION (exp->val.args[2]); /* FALLTHROUGH */ case 2: FREE_EXPRESSION (exp->val.args[1]); /* FALLTHROUGH */ case 1: FREE_EXPRESSION (exp->val.args[0]); /* FALLTHROUGH */ default: break; } free (exp); } static int yylex (lval, pexp) YYSTYPE *lval; const char **pexp; { const char *exp = *pexp; int result; while (1) { if (exp[0] == '\0') { *pexp = exp; return YYEOF; } if (exp[0] != ' ' && exp[0] != '\t') break; ++exp; } result = *exp++; switch (result) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { unsigned long int n = result - '0'; while (exp[0] >= '0' && exp[0] <= '9') { n *= 10; n += exp[0] - '0'; ++exp; } lval->num = n; result = NUMBER; } break; case '=': if (exp[0] == '=') { ++exp; lval->op = equal; result = EQUOP2; } else result = YYERRCODE; break; case '!': if (exp[0] == '=') { ++exp; lval->op = not_equal; result = EQUOP2; } break; case '&': case '|': if (exp[0] == result) ++exp; else result = YYERRCODE; break; case '<': if (exp[0] == '=') { ++exp; lval->op = less_or_equal; } else lval->op = less_than; result = CMPOP2; break; case '>': if (exp[0] == '=') { ++exp; lval->op = greater_or_equal; } else lval->op = greater_than; result = CMPOP2; break; case '*': lval->op = mult; result = MULOP2; break; case '/': lval->op = divide; result = MULOP2; break; case '%': lval->op = module; result = MULOP2; break; case '+': lval->op = plus; result = ADDOP2; break; case '-': lval->op = minus; result = ADDOP2; break; case 'n': case '?': case ':': case '(': case ')': /* Nothing, just return the character. */ break; case ';': case '\n': case '\0': /* Be safe and let the user call this function again. */ --exp; result = YYEOF; break; default: result = YYERRCODE; #if YYDEBUG != 0 --exp; #endif break; } *pexp = exp; return result; } static void yyerror (str) const char *str; { /* Do nothing. We don't print error messages here. */ } golist-0.3/intl/localcharset.c0000644000000000000000000001535707333021353012074 /* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. */ /* Written by Bruno Haible . */ #ifdef HAVE_CONFIG_H # include #endif #if HAVE_STDDEF_H # include #endif #include #if HAVE_STRING_H # include #else # include #endif #if HAVE_STDLIB_H # include #endif #if defined _WIN32 || defined __WIN32__ # undef WIN32 /* avoid warning on mingw32 */ # define WIN32 #endif #ifndef WIN32 # if HAVE_LANGINFO_CODESET # include # else # if HAVE_SETLOCALE # include # endif # endif #else /* WIN32 */ # define WIN32_LEAN_AND_MEAN # include #endif #ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif /* The following static variable is declared 'volatile' to avoid a possible multithread problem in the function get_charset_aliases. If we are running in a threaded environment, and if two threads initialize 'charset_aliases' simultaneously, both will produce the same value, and everything will be ok if the two assignments to 'charset_aliases' are atomic. But I don't know what will happen if the two assignments mix. */ #if __STDC__ != 1 # define volatile /* empty */ #endif /* Pointer to the contents of the charset.alias file, if it has already been read, else NULL. Its format is: ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ static const char * volatile charset_aliases; /* Return a pointer to the contents of the charset.alias file. */ static const char * get_charset_aliases () { const char *cp; cp = charset_aliases; if (cp == NULL) { #ifndef WIN32 FILE *fp; const char *dir = LIBDIR; const char *base = "charset.alias"; char *file_name; /* Concatenate dir and base into freshly allocated file_name. */ { size_t dir_len = strlen (dir); size_t base_len = strlen (base); int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); file_name = (char *) malloc (dir_len + add_slash + base_len + 1); if (file_name != NULL) { memcpy (file_name, dir, dir_len); if (add_slash) file_name[dir_len] = DIRECTORY_SEPARATOR; memcpy (file_name + dir_len + add_slash, base, base_len + 1); } } if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) /* Out of memory or file not found, treat it as empty. */ cp = ""; else { /* Parse the file's contents. */ int c; char buf1[50+1]; char buf2[50+1]; char *res_ptr = NULL; size_t res_size = 0; size_t l1, l2; for (;;) { c = getc (fp); if (c == EOF) break; if (c == '\n' || c == ' ' || c == '\t') continue; if (c == '#') { /* Skip comment, to end of line. */ do c = getc (fp); while (!(c == EOF || c == '\n')); if (c == EOF) break; continue; } ungetc (c, fp); if (fscanf(fp, "%50s %50s", buf1, buf2) < 2) break; l1 = strlen (buf1); l2 = strlen (buf2); if (res_size == 0) { res_size = l1 + 1 + l2 + 1; res_ptr = malloc (res_size + 1); } else { res_size += l1 + 1 + l2 + 1; res_ptr = realloc (res_ptr, res_size + 1); } if (res_ptr == NULL) { /* Out of memory. */ res_size = 0; break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); strcpy (res_ptr + res_size - (l2 + 1), buf2); } fclose (fp); if (res_size == 0) cp = ""; else { *(res_ptr + res_size) = '\0'; cp = res_ptr; } } if (file_name != NULL) free (file_name); #else /* WIN32 */ /* To avoid the troubles of installing a separate file in the same directory as the DLL and of retrieving the DLL's directory at runtime, simply inline the aliases here. */ cp = "CP936" "\0" "GBK" "\0" "CP1361" "\0" "JOHAB" "\0"; #endif charset_aliases = cp; } return cp; } /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset () { const char *codeset; const char *aliases; #ifndef WIN32 # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if HAVE_SETLOCALE && 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } } /* On some old systems, one used to set locale = "iso8859_1". On others, you set it to "language_COUNTRY.charset". In any case, we resolve it through the charset.alias file. */ codeset = locale; # endif #else /* WIN32 */ static char buf[2 + 10 + 1]; /* Win32 has a function returning the locale's codepage as a number. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; #endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; /* Resolve alias. */ for (aliases = get_charset_aliases (); *aliases != '\0'; aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) if (strcmp (codeset, aliases) == 0 || (aliases[0] == '*' && aliases[1] == '\0')) { codeset = aliases + strlen (aliases) + 1; break; } return codeset; } golist-0.3/intl/intl-compat.c0000644000000000000000000001113507333021353011645 /* intl-compat.c - Stub functions to call gettext functions from GNU gettext Library. Copyright (C) 1995, 2000, 2001 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. */ #ifdef HAVE_CONFIG_H # include #endif #include "libgnuintl.h" #include "gettextP.h" /* @@ end of prolog @@ */ /* This file redirects the gettext functions (without prefix or suffix) to those defined in the included GNU gettext library (with "__" suffix). It is compiled into libintl when the included GNU gettext library is configured --with-included-gettext. This redirection works also in the case that the system C library or the system libintl library contain gettext/textdomain/... functions. If it didn't, we would need to add preprocessor level redirections to libgnuintl.h of the following form: # define gettext gettext__ # define dgettext dgettext__ # define dcgettext dcgettext__ # define ngettext ngettext__ # define dngettext dngettext__ # define dcngettext dcngettext__ # define textdomain textdomain__ # define bindtextdomain bindtextdomain__ # define bind_textdomain_codeset bind_textdomain_codeset__ How does this redirection work? There are two cases. A. When libintl.a is linked into an executable, it works because functions defined in the executable always override functions in the shared libraries. B. When libintl.so is used, it works because 1. those systems defining gettext/textdomain/... in the C library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are ELF systems and define these symbols as weak, thus explicitly letting other shared libraries override it. 2. those systems defining gettext/textdomain/... in a standalone libintl.so library (namely, Solaris 2.3 and newer) have this shared library in /usr/lib, and the linker will search /usr/lib *after* the directory where the GNU gettext library is installed. A third case, namely when libintl.a is linked into a shared library whose name is not libintl.so, is not supported. In this case, on Solaris, when -lintl precedes the linker option for the shared library containing GNU gettext, the system's gettext would indeed override the GNU gettext. Anyone doing this kind of stuff must be clever enough to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker command line. */ #undef gettext #undef dgettext #undef dcgettext #undef ngettext #undef dngettext #undef dcngettext #undef textdomain #undef bindtextdomain #undef bind_textdomain_codeset char * gettext (msgid) const char *msgid; { return gettext__ (msgid); } char * dgettext (domainname, msgid) const char *domainname; const char *msgid; { return dgettext__ (domainname, msgid); } char * dcgettext (domainname, msgid, category) const char *domainname; const char *msgid; int category; { return dcgettext__ (domainname, msgid, category); } char * ngettext (msgid1, msgid2, n) const char *msgid1; const char *msgid2; unsigned long int n; { return ngettext__ (msgid1, msgid2, n); } char * dngettext (domainname, msgid1, msgid2, n) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; { return dngettext__ (domainname, msgid1, msgid2, n); } char * dcngettext (domainname, msgid1, msgid2, n, category) const char *domainname; const char *msgid1; const char *msgid2; unsigned long int n; int category; { return dcngettext__ (domainname, msgid1, msgid2, n, category); } char * textdomain (domainname) const char *domainname; { return textdomain__ (domainname); } char * bindtextdomain (domainname, dirname) const char *domainname; const char *dirname; { return bindtextdomain__ (domainname, dirname); } char * bind_textdomain_codeset (domainname, codeset) const char *domainname; const char *codeset; { return bind_textdomain_codeset__ (domainname, codeset); } golist-0.3/intl/plural.c0000644000175000017500000010006407344217000010745 /* A Bison parser, made from plural.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ #define yyparse __gettextparse #define yylex __gettextlex #define yyerror __gettexterror #define yylval __gettextlval #define yychar __gettextchar #define yydebug __gettextdebug #define yynerrs __gettextnerrs #define EQUOP2 257 #define CMPOP2 258 #define ADDOP2 259 #define MULOP2 260 #define NUMBER 261 #line 1 "plural.y" /* Expression parsing for plural form selection. Copyright (C) 2000, 2001 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. 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. */ /* The bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's skeleton file comes too late. This must come before because may include arbitrary system headers. */ #if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H # include #endif #include #include "gettextP.h" /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define FREE_EXPRESSION __gettext_free_exp #else # define FREE_EXPRESSION gettext_free_exp__ # define __gettextparse gettextparse__ #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg #line 52 "plural.y" typedef union { unsigned long int num; enum operator op; struct expression *exp; } YYSTYPE; #line 58 "plural.y" /* Prototypes for local functions. */ static struct expression *new_exp PARAMS ((int nargs, enum operator op, struct expression * const *args)); static inline struct expression *new_exp_0 PARAMS ((enum operator op)); static inline struct expression *new_exp_1 PARAMS ((enum operator op, struct expression *right)); static struct expression *new_exp_2 PARAMS ((enum operator op, struct expression *left, struct expression *right)); static inline struct expression *new_exp_3 PARAMS ((enum operator op, struct expression *bexp, struct expression *tbranch, struct expression *fbranch)); static int yylex PARAMS ((YYSTYPE *lval, const char **pexp)); static void yyerror PARAMS ((const char *str)); /* Allocation of expressions. */ static struct expression * new_exp (nargs, op, args) int nargs; enum operator op; struct expression * const *args; { int i; struct expression *newp; /* If any of the argument could not be malloc'ed, just return NULL. */ for (i = nargs - 1; i >= 0; i--) if (args[i] == NULL) goto fail; /* Allocate a new expression. */ newp = (struct expression *) malloc (sizeof (*newp)); if (newp != NULL) { newp->nargs = nargs; newp->operation = op; for (i = nargs - 1; i >= 0; i--) newp->val.args[i] = args[i]; return newp; } fail: for (i = nargs - 1; i >= 0; i--) FREE_EXPRESSION (args[i]); return NULL; } static inline struct expression * new_exp_0 (op) enum operator op; { return new_exp (0, op, NULL); } static inline struct expression * new_exp_1 (op, right) enum operator op; struct expression *right; { struct expression *args[1]; args[0] = right; return new_exp (1, op, args); } static struct expression * new_exp_2 (op, left, right) enum operator op; struct expression *left; struct expression *right; { struct expression *args[2]; args[0] = left; args[1] = right; return new_exp (2, op, args); } static inline struct expression * new_exp_3 (op, bexp, tbranch, fbranch) enum operator op; struct expression *bexp; struct expression *tbranch; struct expression *fbranch; { struct expression *args[3]; args[0] = bexp; args[1] = tbranch; args[2] = fbranch; return new_exp (3, op, args); } #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 27 #define YYFLAG -32768 #define YYNTBASE 16 #define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 2, 2, 2, 2, 5, 2, 14, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 6, 7, 8, 9, 11 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 2, 8, 12, 16, 20, 24, 28, 32, 35, 37, 39 }; static const short yyrhs[] = { 17, 0, 17, 3, 17, 12, 17, 0, 17, 4, 17, 0, 17, 5, 17, 0, 17, 6, 17, 0, 17, 7, 17, 0, 17, 8, 17, 0, 17, 9, 17, 0, 10, 17, 0, 13, 0, 11, 0, 14, 17, 15, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 177, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 226 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","'?'","'|'", "'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'", "start","exp", NULL }; #endif static const short yyr1[] = { 0, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 }; static const short yyr2[] = { 0, 1, 5, 3, 3, 3, 3, 3, 3, 2, 1, 1, 3 }; static const short yydefact[] = { 0, 0, 11, 10, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 3, 4, 5, 6, 7, 8, 0, 2, 0, 0, 0 }; static const short yydefgoto[] = { 25, 5 }; static const short yypact[] = { -9, -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, -9, -9, -9, -9, -9,-32768, 24, 39, 43, 16, 26, -3,-32768, -9, 34, 21, 53,-32768 }; static const short yypgoto[] = {-32768, -1 }; #define YYLAST 53 static const short yytable[] = { 6, 1, 2, 7, 3, 4, 14, 16, 17, 18, 19, 20, 21, 22, 8, 9, 10, 11, 12, 13, 14, 26, 24, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 13, 14, 23, 8, 9, 10, 11, 12, 13, 14, 10, 11, 12, 13, 14, 11, 12, 13, 14, 27 }; static const short yycheck[] = { 1, 10, 11, 4, 13, 14, 9, 8, 9, 10, 11, 12, 13, 14, 3, 4, 5, 6, 7, 8, 9, 0, 23, 7, 8, 9, 15, 3, 4, 5, 6, 7, 8, 9, 8, 9, 12, 3, 4, 5, 6, 7, 8, 9, 5, 6, 7, 8, 9, 6, 7, 8, 9, 0 }; #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 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. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ #ifndef YYSTACK_USE_ALLOCA #ifdef alloca #define YYSTACK_USE_ALLOCA #else /* alloca not defined */ #ifdef __GNUC__ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) #define YYSTACK_USE_ALLOCA #include #else /* not sparc */ /* We think this test detects Watcom and Microsoft C. */ /* This used to test MSDOS, but that is a bad idea since that symbol is in the user namespace. */ #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) #if 0 /* No need for malloc.h, which pollutes the namespace; instead, just don't use alloca. */ #include #endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) /* I don't know what this was needed for, but it pollutes the namespace. So I turned it off. rms, 2 May 1997. */ /* #include */ #pragma alloca #define YYSTACK_USE_ALLOCA #else /* not MSDOS, or __TURBOC__, or _AIX */ #if 0 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, and on HPUX 10. Eventually we can turn this on. */ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #endif /* __hpux */ #endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc */ #endif /* not GNU C */ #endif /* alloca not defined */ #endif /* YYSTACK_USE_ALLOCA not defined */ #ifdef YYSTACK_USE_ALLOCA #define YYSTACK_ALLOC alloca #else #define YYSTACK_ALLOC malloc #endif /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Define __yy_memcpy. Note that the size argument should be passed with type unsigned int, because that is what the non-GCC definitions require. With GCC, __builtin_memcpy takes an arg of type size_t, but it can handle unsigned int. */ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; unsigned int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, unsigned int count) { register char *t = to; register char *f = from; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ #ifdef YYPARSE_PARAM int yyparse (void *); #else int yyparse (void); #endif #endif int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; int yyfree_stacks = 0; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; #ifndef YYSTACK_USE_ALLOCA yyfree_stacks = 1; #endif yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * (unsigned int) sizeof (*yyssp)); yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * (unsigned int) sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * (unsigned int) sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: #line 178 "plural.y" { if (yyvsp[0].exp == NULL) YYABORT; ((struct parse_args *) arg)->res = yyvsp[0].exp; ; break;} case 2: #line 186 "plural.y" { yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 3: #line 190 "plural.y" { yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 4: #line 194 "plural.y" { yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 5: #line 198 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 6: #line 202 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 7: #line 206 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 8: #line 210 "plural.y" { yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); ; break;} case 9: #line 214 "plural.y" { yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); ; break;} case 10: #line 218 "plural.y" { yyval.exp = new_exp_0 (var); ; break;} case 11: #line 222 "plural.y" { if ((yyval.exp = new_exp_0 (num)) != NULL) yyval.exp->val.num = yyvsp[0].num; ; break;} case 12: #line 227 "plural.y" { yyval.exp = yyvsp[-1].exp; ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; yyacceptlab: /* YYACCEPT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 0; yyabortlab: /* YYABORT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 1; } #line 232 "plural.y" void internal_function FREE_EXPRESSION (exp) struct expression *exp; { if (exp == NULL) return; /* Handle the recursive case. */ switch (exp->nargs) { case 3: FREE_EXPRESSION (exp->val.args[2]); /* FALLTHROUGH */ case 2: FREE_EXPRESSION (exp->val.args[1]); /* FALLTHROUGH */ case 1: FREE_EXPRESSION (exp->val.args[0]); /* FALLTHROUGH */ default: break; } free (exp); } static int yylex (lval, pexp) YYSTYPE *lval; const char **pexp; { const char *exp = *pexp; int result; while (1) { if (exp[0] == '\0') { *pexp = exp; return YYEOF; } if (exp[0] != ' ' && exp[0] != '\t') break; ++exp; } result = *exp++; switch (result) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { unsigned long int n = result - '0'; while (exp[0] >= '0' && exp[0] <= '9') { n *= 10; n += exp[0] - '0'; ++exp; } lval->num = n; result = NUMBER; } break; case '=': if (exp[0] == '=') { ++exp; lval->op = equal; result = EQUOP2; } else result = YYERRCODE; break; case '!': if (exp[0] == '=') { ++exp; lval->op = not_equal; result = EQUOP2; } break; case '&': case '|': if (exp[0] == result) ++exp; else result = YYERRCODE; break; case '<': if (exp[0] == '=') { ++exp; lval->op = less_or_equal; } else lval->op = less_than; result = CMPOP2; break; case '>': if (exp[0] == '=') { ++exp; lval->op = greater_or_equal; } else lval->op = greater_than; result = CMPOP2; break; case '*': lval->op = mult; result = MULOP2; break; case '/': lval->op = divide; result = MULOP2; break; case '%': lval->op = module; result = MULOP2; break; case '+': lval->op = plus; result = ADDOP2; break; case '-': lval->op = minus; result = ADDOP2; break; case 'n': case '?': case ':': case '(': case ')': /* Nothing, just return the character. */ break; case ';': case '\n': case '\0': /* Be safe and let the user call this function again. */ --exp; result = YYEOF; break; default: result = YYERRCODE; #if YYDEBUG != 0 --exp; #endif break; } *pexp = exp; return result; } static void yyerror (str) const char *str; { /* Do nothing. We don't print error messages here. */ } golist-0.3/intl/VERSION0000644000000000000000000000005107333021352010314 GNU gettext library from gettext-0.10.39 golist-0.3/pixmaps/0000777000175000017500000000000007344217147010114 5golist-0.3/pixmaps/Makefile.in0000644000175000017500000001433607344217147012104 # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # Copyright 2001 Jochen Voss # $Id: Makefile.am,v 1.1.1.1 2001/08/24 20:40:58 voss Exp $ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ GNOME_CONFIG = @GNOME_CONFIG@ GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ GNOME_LIBDIR = @GNOME_LIBDIR@ GNOME_LIBS = @GNOME_LIBS@ GNORBA_CFLAGS = @GNORBA_CFLAGS@ GNORBA_LIBS = @GNORBA_LIBS@ GTKDOC = @GTKDOC@ GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ HTML_DIR = @HTML_DIR@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ JVLIBS = @JVLIBS@ JVRAND_CFLAGS = @JVRAND_CFLAGS@ JVRAND_LIBS = @JVRAND_LIBS@ LIBICONV = @LIBICONV@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ ORBIT_CFLAGS = @ORBIT_CFLAGS@ ORBIT_CONFIG = @ORBIT_CONFIG@ ORBIT_IDL = @ORBIT_IDL@ ORBIT_LIBS = @ORBIT_LIBS@ PACKAGE = @PACKAGE@ PIXMAP_DIR = @PIXMAP_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ ZVT_LIBS = @ZVT_LIBS@ pixmap_files = logo.png EXTRA_DIST = $(pixmap_files) pixmapdir = @PIXMAP_DIR@ pixmap_DATA = $(pixmap_files) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DATA = $(pixmap_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps pixmaps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-pixmapDATA: $(pixmap_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pixmapdir) @list='$(pixmap_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pixmapdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pixmapdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pixmapdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pixmapdir)/$$p; \ fi; fi; \ done uninstall-pixmapDATA: @$(NORMAL_UNINSTALL) list='$(pixmap_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pixmapdir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = pixmaps distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pixmapDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pixmapDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pixmapdir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pixmapDATA install-pixmapDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/pixmaps/Makefile.am0000644000175000017500000000040307341535732012061 ## Process this file with automake to produce Makefile.in # Copyright 2001 Jochen Voss # $Id: Makefile.am,v 1.1.1.1 2001/08/24 20:40:58 voss Exp $ pixmap_files = logo.png EXTRA_DIST = $(pixmap_files) pixmapdir = @PIXMAP_DIR@ pixmap_DATA = $(pixmap_files) golist-0.3/pixmaps/logo.png0000644000175000017500000000125307341535732011477 ‰PNG  IHDR00Wù‡gAMA± üabKGDÿÿÿ ½§“ pHYs``zxEtIMEÑ ;·¬fç(IDATxœíZKrÂ0 •3eMÎNLNCΖ^¹‹Ö©²-ËR`Ñ7à [zÒ“ü øÇ{ás‚M1ZœÕˆ÷؃㤕¸Ä‡™ñ^ò\?&†µÈs|©Õ&_ó§jЊ|ɧ_œAÛ4?ý=®ËþÙ¸.š|š³ñ”}Lœ‚05X `’¥À(µ,‘f‚Ì~Žþ¾¦aGE–RB)ùœZÛ4›¨1h£Z—P“œ¦>ª ¼Ù¨æ×eáqxlé3MdW!®ów¯BÅ"r䨭íÞ{†N§Å¡ÅX!ðL:ç(>õyØ_«¸Ä1ZÁMÜ]—Þ{1y€ŸÀCƒÕãtq îWލeT¤‚÷^2­ŽjWJíìGÔz¢´³•°"ϱ];J°‚x\®ð¸\¹œ$ö²Q쇹mšÉAãºÄ ÈïCªäs>rýÜrÍr¾ß´tðVT"É< J±R %•⼚’§CŽÓ–%Ös¥tqæÄ áyX‰E‰> &¦Ñ;ìÚ¦9àºgìô@g¾uéÍù:ìJy¾ßÈŒ÷öGo 9`9ÒÒIƒh$ï¨r“ÛÈ0âäÚø¢µæÎqø€§TYåš{\‡÷•‹uËD‚Ò½@Eîjda[«„,È+ÚVu¬]Jœ+¥zæ´‚à°“^Gëcë_ÓÙh=زDø»ã&rèÿV|¾N´ôÓ6šêIEND®B`‚golist-0.3/lib/0000777000175000017500000000000007344217150007173 5golist-0.3/lib/Makefile.in0000644000175000017500000002231107344217150011153 # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ GNOME_CONFIG = @GNOME_CONFIG@ GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ GNOME_LIBDIR = @GNOME_LIBDIR@ GNOME_LIBS = @GNOME_LIBS@ GNORBA_CFLAGS = @GNORBA_CFLAGS@ GNORBA_LIBS = @GNORBA_LIBS@ GTKDOC = @GTKDOC@ GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ HTML_DIR = @HTML_DIR@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ JVLIBS = @JVLIBS@ JVRAND_CFLAGS = @JVRAND_CFLAGS@ JVRAND_LIBS = @JVRAND_LIBS@ LIBICONV = @LIBICONV@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ ORBIT_CFLAGS = @ORBIT_CFLAGS@ ORBIT_CONFIG = @ORBIT_CONFIG@ ORBIT_IDL = @ORBIT_IDL@ ORBIT_LIBS = @ORBIT_LIBS@ PACKAGE = @PACKAGE@ PIXMAP_DIR = @PIXMAP_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ ZVT_LIBS = @ZVT_LIBS@ GO_GOB = go-data.gob go-player.gob go-game.gob go-components.gob go-client.gob go-player-list.gob go-game-list.gob go-history.gob go-strengths.gob GO_C = go-data.c go-player.c go-game.c go-components.c go-client.c go-player-list.c go-game-list.c go-history.c go-strengths.c GO_H = go-data.h go-player.h go-game.h go-components.h go-client.h go-player-list.h go-game-list.h go-history.h go-strengths.h EXTRA_DIST = $(GO_GOB) INCLUDES = -DG_LOG_DOMAIN=\"Go\" $(shell gnome-config --cflags gtk xml) $(JVRAND_CFLAGS) noinst_HEADERS = go-all.h noinst_LIBRARIES = libgo.a libgo_a_SOURCES = $(GO_C) $(GO_H) util.c go.h BUILT_SOURCES = $(GO_C) $(GO_H) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = LIBRARIES = $(noinst_LIBRARIES) DEFS = @DEFS@ -I. -I$(srcdir) -I.. CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libgo_a_LIBADD = libgo_a_OBJECTS = go-data.o go-player.o go-game.o go-components.o \ go-client.o go-player-list.o go-game-list.o go-history.o go-strengths.o \ util.o AR = ar CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ HEADERS = $(noinst_HEADERS) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best SOURCES = $(libgo_a_SOURCES) OBJECTS = $(libgo_a_OBJECTS) all: all-redirect .SUFFIXES: .SUFFIXES: .S .c .o .s $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status mostlyclean-noinstLIBRARIES: clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) distclean-noinstLIBRARIES: maintainer-clean-noinstLIBRARIES: .c.o: $(COMPILE) -c $< .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< mostlyclean-compile: -rm -f *.o core *.core clean-compile: distclean-compile: -rm -f *.tab.c maintainer-clean-compile: libgo.a: $(libgo_a_OBJECTS) $(libgo_a_DEPENDENCIES) -rm -f libgo.a $(AR) cru libgo.a $(libgo_a_OBJECTS) $(libgo_a_LIBADD) $(RANLIB) libgo.a tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = lib distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done go-client.o: go-client.c go-client.h go-data.h go-player.h go-game.h \ ../config.h go-components.o: go-components.c go-components.h go-client.h go-data.h \ go-player.h go-game.h ../config.h go-data.o: go-data.c go-data.h go-player.h go-game.h go-client.h \ ../config.h go-components.h go-game-list.o: go-game-list.c go-game-list.h go-client.h go-data.h \ go-player.h go-game.h ../config.h go.h go-game.o: go-game.c go-game.h go-data.h go-player.h go-client.h \ ../config.h go.h go-history.o: go-history.c go-history.h ../config.h go-player-list.o: go-player-list.c go-player-list.h go-client.h \ go-data.h go-player.h go-game.h ../config.h go.h go-player.o: go-player.c go-player.h go-data.h go-game.h go-client.h \ ../config.h go.h go-strengths.o: go-strengths.c go-strengths.h go-client.h go-data.h \ go-player.h go-game.h ../config.h go-history.h util.o: util.c ../config.h go.h info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall: uninstall-am all-am: Makefile $(LIBRARIES) $(HEADERS) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ mostlyclean-am clean: clean-am distclean-am: distclean-noinstLIBRARIES distclean-compile \ distclean-tags distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ maintainer-clean-compile maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile tags mostlyclean-tags distclean-tags \ clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ check-am installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean %.c %.h: %.gob cd $(srcdir) && gob $< # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/lib/Makefile.am0000644000175000017500000000147307344202156011150 ## Process this file with automake to produce Makefile.in ## $Id: Makefile.am,v 1.2 2001/09/01 15:53:18 voss Exp $ GO_GOB = go-data.gob go-player.gob go-game.gob go-components.gob \ go-client.gob go-player-list.gob go-game-list.gob \ go-history.gob go-strengths.gob GO_C = go-data.c go-player.c go-game.c go-components.c \ go-client.c go-player-list.c go-game-list.c \ go-history.c go-strengths.c GO_H = go-data.h go-player.h go-game.h go-components.h \ go-client.h go-player-list.h go-game-list.h \ go-history.h go-strengths.h EXTRA_DIST = $(GO_GOB) INCLUDES = -DG_LOG_DOMAIN=\"Go\" \ $(shell gnome-config --cflags gtk xml) \ $(JVRAND_CFLAGS) noinst_HEADERS = go-all.h noinst_LIBRARIES = libgo.a libgo_a_SOURCES = $(GO_C) $(GO_H) util.c go.h BUILT_SOURCES = $(GO_C) $(GO_H) %.c %.h: %.gob cd $(srcdir) && gob $< golist-0.3/lib/go-data.c0000644000175000017500000012052607344217045010600 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-data.h" #line 16 "go-data.gob" #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include typedef void (*player_cb) (GoPlayer *, void *); typedef void (*game_cb) (GoGame *, void *); struct pgc_data { GoPlayer *p; int n; }; struct pgi_data { gboolean done; GoPlayer *p; GoGame *g; int n; }; #line 47 "go-data.c" /* self casting macros */ #define SELF(x) GO_DATA(x) #define SELF_CONST(x) GO_DATA_CONST(x) #define IS_SELF(x) GO_IS_DATA(x) #define TYPE_SELF GO_TYPE_DATA #define SELF_CLASS(x) GO_DATA_CLASS(x) #define SELF_GET_CLASS(x) GO_DATA_GET_CLASS(x) /* self typedefs */ typedef GoData Self; typedef GoDataClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void go_data_init (GoData * o) G_GNUC_UNUSED; static void go_data_class_init (GoDataClass * c) G_GNUC_UNUSED; static void ___1_go_data_destroy (GtkObject * obj) G_GNUC_UNUSED; static void go_data_write_player (GoPlayer * player, void * client_data) G_GNUC_UNUSED; static void go_data_write_game (GoGame * game, void * client_data) G_GNUC_UNUSED; static void go_data_changed (GoData * self) G_GNUC_UNUSED; static void go_data_redisplay_client_cb (gpointer data, gpointer user_data) G_GNUC_UNUSED; static void go_data_deliver_changes (GoData * self) G_GNUC_UNUSED; static void go_data_notify_game_selected (GoData * self, GoGame * g) G_GNUC_UNUSED; static void go_data_freeze (GoData * self) G_GNUC_UNUSED; static void go_data_thaw (GoData * self) G_GNUC_UNUSED; static void go_data_add_c_pl_cb (GoPlayer * p, void * client_data) G_GNUC_UNUSED; static void go_data_add_c_gm_cb (GoGame * g, void * client_data) G_GNUC_UNUSED; static void go_data_pgc_cb (GoGame * g, void * data) G_GNUC_UNUSED; static void go_data_pwc_cb (GoGame * g, void * data) G_GNUC_UNUSED; static void go_data_pgi_cb (GoGame * g, void * data) G_GNUC_UNUSED; static void go_data_foreach_player (GoData * self, player_cb f, void * data) G_GNUC_UNUSED; static void go_data_foreach_game (GoData * self, game_cb f, void * data) G_GNUC_UNUSED; enum { CHANGED_SIGNAL, LAST_SIGNAL }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GtkObjectClass *parent_class = NULL; GtkType go_data_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoData", sizeof (GoData), sizeof (GoDataClass), (GtkClassInitFunc) go_data_class_init, (GtkObjectInitFunc) go_data_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (gtk_object_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define new() go_data_new() #define clear(args...) go_data_clear(args) #define load(args...) go_data_load(args) #define write_player(args...) go_data_write_player(args) #define write_game(args...) go_data_write_game(args) #define save(args...) go_data_save(args) #define changed(args...) go_data_changed(args) #define redisplay_client_cb(args...) go_data_redisplay_client_cb(args) #define deliver_changes(args...) go_data_deliver_changes(args) #define notify_players_changed(args...) go_data_notify_players_changed(args) #define notify_games_changed(args...) go_data_notify_games_changed(args) #define notify_game_selected(args...) go_data_notify_game_selected(args) #define freeze(args...) go_data_freeze(args) #define thaw(args...) go_data_thaw(args) #define add_c_pl_cb(args...) go_data_add_c_pl_cb(args) #define add_c_gm_cb(args...) go_data_add_c_gm_cb(args) #define add_client(args...) go_data_add_client(args) #define remove_client(args...) go_data_remove_client(args) #define add_player(args...) go_data_add_player(args) #define remove_player(args...) go_data_remove_player(args) #define player_lock(args...) go_data_player_lock(args) #define player_unlock(args...) go_data_player_unlock(args) #define player_count(args...) go_data_player_count(args) #define player_tokens(args...) go_data_player_tokens(args) #define find_token(args...) go_data_find_token(args) #define pgc_cb(args...) go_data_pgc_cb(args) #define player_game_count(args...) go_data_player_game_count(args) #define pwc_cb(args...) go_data_pwc_cb(args) #define player_win_count(args...) go_data_player_win_count(args) #define pgi_cb(args...) go_data_pgi_cb(args) #define player_game_index(args...) go_data_player_game_index(args) #define player_component(args...) go_data_player_component(args) #define players_equiv(args...) go_data_players_equiv(args) #define foreach_player(args...) go_data_foreach_player(args) #define add_game(args...) go_data_add_game(args) #define remove_game(args...) go_data_remove_game(args) #define game_lock(args...) go_data_game_lock(args) #define game_unlock(args...) go_data_game_unlock(args) #define game_count(args...) go_data_game_count(args) #define foreach_game(args...) go_data_foreach_game(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static GtkObject * (* const new) (void) = go_data_new; static void (* const clear) (GoData * self) = go_data_clear; static gboolean (* const load) (GoData * self, const gchar * filename) = go_data_load; static void (* const write_player) (GoPlayer * player, void * client_data) = go_data_write_player; static void (* const write_game) (GoGame * game, void * client_data) = go_data_write_game; static gboolean (* const save) (GoData * self, const gchar * filename) = go_data_save; static void (* const changed) (GoData * self) = go_data_changed; static void (* const redisplay_client_cb) (gpointer data, gpointer user_data) = go_data_redisplay_client_cb; static void (* const deliver_changes) (GoData * self) = go_data_deliver_changes; static void (* const notify_players_changed) (GoData * self) = go_data_notify_players_changed; static void (* const notify_games_changed) (GoData * self) = go_data_notify_games_changed; static void (* const notify_game_selected) (GoData * self, GoGame * g) = go_data_notify_game_selected; static void (* const freeze) (GoData * self) = go_data_freeze; static void (* const thaw) (GoData * self) = go_data_thaw; static void (* const add_c_pl_cb) (GoPlayer * p, void * client_data) = go_data_add_c_pl_cb; static void (* const add_c_gm_cb) (GoGame * g, void * client_data) = go_data_add_c_gm_cb; static void (* const add_client) (GoData * self, GoClient * client) = go_data_add_client; static void (* const remove_client) (GoData * self, GoClient * client) = go_data_remove_client; static void (* const add_player) (GoData * self, GoPlayer * player) = go_data_add_player; static void (* const remove_player) (GoData * self, GoPlayer * player) = go_data_remove_player; static void (* const player_lock) (GoData * self, GoPlayer * p) = go_data_player_lock; static void (* const player_unlock) (GoData * self, GoPlayer * p) = go_data_player_unlock; static int (* const player_count) (GoData * self) = go_data_player_count; static GList * (* const player_tokens) (GoData * self) = go_data_player_tokens; static GoPlayer * (* const find_token) (GoData * self, const char * token) = go_data_find_token; static void (* const pgc_cb) (GoGame * g, void * data) = go_data_pgc_cb; static int (* const player_game_count) (GoData * self, GoPlayer * player) = go_data_player_game_count; static void (* const pwc_cb) (GoGame * g, void * data) = go_data_pwc_cb; static int (* const player_win_count) (GoData * self, GoPlayer * player) = go_data_player_win_count; static void (* const pgi_cb) (GoGame * g, void * data) = go_data_pgi_cb; static int (* const player_game_index) (GoData * self, GoPlayer * player, GoGame * game) = go_data_player_game_index; static int (* const player_component) (GoData * self, const GoPlayer * player) = go_data_player_component; static gboolean (* const players_equiv) (GoData * self, const GoPlayer * a, const GoPlayer * b) = go_data_players_equiv; static void (* const foreach_player) (GoData * self, player_cb f, void * data) = go_data_foreach_player; static void (* const add_game) (GoData * self, GoGame * game) = go_data_add_game; static void (* const remove_game) (GoData * self, GoGame * game) = go_data_remove_game; static void (* const game_lock) (GoData * self, GoGame * g) = go_data_game_lock; static void (* const game_unlock) (GoData * self, GoGame * g) = go_data_game_unlock; static int (* const game_count) (GoData * self) = go_data_game_count; static void (* const foreach_game) (GoData * self, game_cb f, void * data) = go_data_foreach_game; /* a macro for creating a new object of our type */ #define GET_NEW ((GoData *)gtk_type_new(go_data_get_type())) static void go_data_init (GoData * o) { #define __GOB_FUNCTION__ "Go:Data::init" #line 16 "go-data.gob" o->clients = NULL; #line 214 "go-data.c" #line 16 "go-data.gob" o->players = NULL; #line 217 "go-data.c" #line 16 "go-data.gob" o->games = NULL; #line 220 "go-data.c" #line 16 "go-data.gob" o->tokens = NULL; #line 223 "go-data.c" #line 16 "go-data.gob" o->components = NULL; #line 226 "go-data.c" #line 16 "go-data.gob" o->frozen = 0; #line 229 "go-data.c" #line 16 "go-data.gob" o->players_changed = FALSE; #line 232 "go-data.c" #line 16 "go-data.gob" o->games_changed = FALSE; #line 235 "go-data.c" #line 16 "go-data.gob" o->game_selected = NULL; #line 238 "go-data.c" return; o = NULL; } #undef __GOB_FUNCTION__ static void go_data_class_init (GoDataClass * c) { #define __GOB_FUNCTION__ "Go:Data::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass*) c; #ifdef G_OBJECT_CLASS GObjectClass *g_object_class = (GObjectClass*) c; #endif /* G_OBJECT_CLASS */ parent_class = gtk_type_class (gtk_object_get_type ()); object_signals[CHANGED_SIGNAL] = gtk_signal_new ("changed", (GtkSignalRunType)(GTK_RUN_FIRST), GTK_CLASS_TYPE(gtk_object_class), GTK_SIGNAL_OFFSET (GoDataClass, changed), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); gtk_object_class_add_signals (gtk_object_class, object_signals, LAST_SIGNAL); #line 62 "go-data.gob" gtk_object_class->destroy = ___1_go_data_destroy; #line 267 "go-data.c" c->changed = NULL; return; c = NULL; gtk_object_class = NULL; #ifdef G_OBJECT_CLASS g_object_class = NULL; #endif /* G_OBJECT_CLASS */ } #undef __GOB_FUNCTION__ #line 62 "go-data.gob" static void ___1_go_data_destroy (GtkObject * obj) #line 283 "go-data.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:Data::destroy" { #line 64 "go-data.gob" GoData *self = GO_DATA (obj); freeze (self); while (self->clients) remove_client (self, GO_CLIENT (self->clients->data)); clear (self); PARENT_HANDLER (obj); }} #line 301 "go-data.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER /** * go_data_new: * * Allocate a new, empty #GoData object. * * Returns: a newly allocated #GoData object. **/ #line 82 "go-data.gob" GtkObject * go_data_new (void) #line 315 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::new" { #line 83 "go-data.gob" GoData *self = GET_NEW; self->components = go_components_new (self); return GTK_OBJECT (self); }} #line 325 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_clear: * @self: a #GoData object * * Remove all entries from the database. * The corresponding #GoGame and #GoPlayer objects are destroyed. **/ #line 96 "go-data.gob" void go_data_clear (GoData * self) #line 338 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::clear" #line 96 "go-data.gob" g_return_if_fail (self != NULL); #line 96 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 345 "go-data.c" { #line 98 "go-data.gob" freeze (self); while (self->games) remove_game (self, GO_GAME (self->games->data)); while (self->players) remove_player (self, GO_PLAYER (self->players->data)); thaw (self); }} #line 356 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_load: * @self: a #GoData object * @filename: the file to load * * Loads the golist XML file denoted by @filename into the * GoData object @self. * * Returns: TRUE, iff the file was loaded successfully, * and FALSE if the file cannot be read or is no golist XML file. **/ #line 118 "go-data.gob" gboolean go_data_load (GoData * self, const gchar * filename) #line 373 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::load" #line 118 "go-data.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 118 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (gboolean )0); #line 380 "go-data.c" { #line 120 "go-data.gob" xmlDocPtr doc; xmlNodePtr node; doc = xmlParseFile (filename); if (! doc /* file not found */ || !doc->root /* there is no root element */ || !doc->root->name /* it doesn't have a name */ || g_strcasecmp(doc->root->name,"golist") != 0 ) { xmlFreeDoc (doc); return FALSE; } /* go through the list and add new entries. */ freeze (self); for (node = doc->root->childs; node != NULL; node = node->next) { if (g_strcasecmp (node->name, "player") == 0) { go_player_read (self, node); } else if (g_strcasecmp (node->name, "game") == 0) { go_game_read (self, node); } } thaw (self); xmlFreeDoc (doc); return TRUE; }} #line 410 "go-data.c" #undef __GOB_FUNCTION__ #line 148 "go-data.gob" static void go_data_write_player (GoPlayer * player, void * client_data) #line 416 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::write_player" { #line 150 "go-data.gob" xmlNodePtr node = client_data; xmlNodePtr newxml; newxml = xmlNewChild (node, NULL, "player", NULL); go_player_write (player, newxml); }} #line 428 "go-data.c" #undef __GOB_FUNCTION__ #line 158 "go-data.gob" static void go_data_write_game (GoGame * game, void * client_data) #line 434 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::write_game" { #line 160 "go-data.gob" xmlNodePtr node = client_data; xmlNodePtr newxml; newxml = xmlNewChild (node, NULL, "game", NULL); go_game_write (game, newxml); }} #line 446 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_save: * @self: a #GoData object * @filename: the file to save * * Dumps the GoData object @self into the golist XML file * @filename. * * Returns: %TRUE, iff the file was saved successfully, * and %FALSE if the file cannot be written. **/ #line 179 "go-data.gob" gboolean go_data_save (GoData * self, const gchar * filename) #line 463 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::save" #line 179 "go-data.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 179 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (gboolean )0); #line 470 "go-data.c" { #line 181 "go-data.gob" xmlDocPtr doc; xmlDtdPtr dtd; int res; doc = xmlNewDoc ("1.0"); dtd = xmlNewDtd (doc, "golist", NULL, "golist.dtd"); xmlAddDtdEntity (doc, "golist", XML_EXTERNAL_GENERAL_PARSED_ENTITY, NULL, "golist.dtd", "golist"); doc->root = xmlNewDocNode (doc, NULL, "golist", NULL); foreach_player (self, write_player, doc->root); foreach_game (self, write_game, doc->root); res = xmlSaveFile (filename, doc); xmlFreeDoc (doc); return (res != -1); }} #line 491 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_changed: * @self: a #GoData object * * Emit the "changed" signal for @self. **/ #line 206 "go-data.gob" static void go_data_changed (GoData * self) #line 503 "go-data.c" { #line 206 "go-data.gob" g_return_if_fail (self != NULL); #line 206 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 509 "go-data.c" gtk_signal_emit (GTK_OBJECT (self), object_signals[CHANGED_SIGNAL]); } #line 208 "go-data.gob" static void go_data_redisplay_client_cb (gpointer data, gpointer user_data) #line 517 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::redisplay_client_cb" { #line 210 "go-data.gob" GoData *self = GO_DATA (user_data); go_client_redisplay (GO_CLIENT (data), self->games_changed, self->players_changed); }} #line 527 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_deliver_changes: * @self: a #GoData object * * Notify all interested parties about changes in the #GoData object. * While @self is frozen, this does nothing. * The function updates all clients and emits the changed signal. **/ #line 224 "go-data.gob" static void go_data_deliver_changes (GoData * self) #line 541 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::deliver_changes" #line 224 "go-data.gob" g_return_if_fail (self != NULL); #line 224 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 548 "go-data.c" { #line 226 "go-data.gob" gboolean changed_flag = FALSE; if (self->frozen) return; if (self->games_changed || self->players_changed) { g_slist_foreach (self->clients, redisplay_client_cb, self); self->games_changed = FALSE; self->players_changed = FALSE; changed_flag = TRUE; } if (self->game_selected) { g_slist_foreach (self->clients, (GFunc)go_client_make_game_visible, self->game_selected); self->game_selected = NULL; changed_flag = TRUE; } if (changed_flag) changed (self); }} #line 572 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_notify_players_changed: * @self: a #GoData object * * This must be called in order to propagate changes to the * player list. It updates all clients and emits the "changed" signal. **/ #line 255 "go-data.gob" void go_data_notify_players_changed (GoData * self) #line 585 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::notify_players_changed" #line 255 "go-data.gob" g_return_if_fail (self != NULL); #line 255 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 592 "go-data.c" { #line 257 "go-data.gob" self->players_changed = TRUE; deliver_changes (self); }} #line 599 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_notify_games_changed: * @self: a #GoData object * * This must be called in order to propagate changes to the * game list. It updates all clients and emits the "changed" signal. **/ #line 269 "go-data.gob" void go_data_notify_games_changed (GoData * self) #line 612 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::notify_games_changed" #line 269 "go-data.gob" g_return_if_fail (self != NULL); #line 269 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 619 "go-data.c" { #line 271 "go-data.gob" self->games_changed = TRUE; deliver_changes (self); }} #line 626 "go-data.c" #undef __GOB_FUNCTION__ #line 276 "go-data.gob" static void go_data_notify_game_selected (GoData * self, GoGame * g) #line 632 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::notify_game_selected" #line 276 "go-data.gob" g_return_if_fail (self != NULL); #line 276 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 639 "go-data.c" { #line 278 "go-data.gob" self->game_selected = g; deliver_changes (self); }} #line 646 "go-data.c" #undef __GOB_FUNCTION__ #line 283 "go-data.gob" static void go_data_freeze (GoData * self) #line 652 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::freeze" #line 283 "go-data.gob" g_return_if_fail (self != NULL); #line 283 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 659 "go-data.c" { #line 285 "go-data.gob" ++ self->frozen; }} #line 665 "go-data.c" #undef __GOB_FUNCTION__ #line 289 "go-data.gob" static void go_data_thaw (GoData * self) #line 671 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::thaw" #line 289 "go-data.gob" g_return_if_fail (self != NULL); #line 289 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 678 "go-data.c" { #line 291 "go-data.gob" -- self->frozen; if (self->frozen <= 0) deliver_changes (self); }} #line 685 "go-data.c" #undef __GOB_FUNCTION__ #line 297 "go-data.gob" static void go_data_add_c_pl_cb (GoPlayer * p, void * client_data) #line 691 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::add_c_pl_cb" { #line 299 "go-data.gob" go_client_register_player (GO_CLIENT (client_data), p); }} #line 699 "go-data.c" #undef __GOB_FUNCTION__ #line 303 "go-data.gob" static void go_data_add_c_gm_cb (GoGame * g, void * client_data) #line 705 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::add_c_gm_cb" { #line 305 "go-data.gob" go_client_register_game (GO_CLIENT (client_data), g); }} #line 713 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_add_client: * @self: a #GoData object * @client: a #GoClient object * * Register a new client of this GoData. **/ #line 316 "go-data.gob" void go_data_add_client (GoData * self, GoClient * client) #line 726 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::add_client" #line 316 "go-data.gob" g_return_if_fail (self != NULL); #line 316 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 733 "go-data.c" { #line 318 "go-data.gob" gtk_object_ref (GTK_OBJECT (client)); gtk_object_sink (GTK_OBJECT (client)); g_assert (client->data == NULL); client->data = self; self->clients = g_slist_prepend (self->clients, client); foreach_player (self, add_c_pl_cb, client); foreach_game (self, add_c_gm_cb, client); go_client_redisplay (client, TRUE, TRUE); }} #line 748 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_remove_client: * @self: a #GoData object * @client: a #GoClient object * * Disconnect the client from the #GoData object. **/ #line 338 "go-data.gob" void go_data_remove_client (GoData * self, GoClient * client) #line 761 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::remove_client" #line 338 "go-data.gob" g_return_if_fail (self != NULL); #line 338 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 768 "go-data.c" { #line 340 "go-data.gob" GSList *node; client->data = NULL; node = g_slist_find (self->clients, client); g_return_if_fail (node != NULL); self->clients = g_slist_remove_link (self->clients, node); g_slist_free_1 (node); gtk_object_unref (GTK_OBJECT (client)); }} #line 783 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_add_player: * @self: a #GoData object * @player: a #GoPlayer object * * Register a new player of this GoData and update all clients. **/ #line 361 "go-data.gob" void go_data_add_player (GoData * self, GoPlayer * player) #line 796 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::add_player" #line 361 "go-data.gob" g_return_if_fail (self != NULL); #line 361 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 803 "go-data.c" { #line 363 "go-data.gob" gtk_object_ref (GTK_OBJECT (player)); gtk_object_sink (GTK_OBJECT (player)); g_assert (player->data == NULL); player->data = self; self->players = g_slist_append (self->players, player); self->tokens = g_list_insert_sorted (self->tokens, player->token, (GCompareFunc)strcmp); g_slist_foreach (self->clients, (GFunc)go_client_register_player, player); notify_players_changed (self); }} #line 820 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_remove_player: * @self: a #GoData object * @player: a #GoPlayer object * * Disconnect the player from the #GoData object and update all clients. **/ #line 385 "go-data.gob" void go_data_remove_player (GoData * self, GoPlayer * player) #line 833 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::remove_player" #line 385 "go-data.gob" g_return_if_fail (self != NULL); #line 385 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 840 "go-data.c" { #line 387 "go-data.gob" GSList *node; g_slist_foreach (self->clients, (GFunc)go_client_unregister_player, player); player->data = NULL; node = g_slist_find (self->players, player); g_return_if_fail (node != NULL); self->players = g_slist_remove_link (self->players, node); g_slist_free_1 (node); self->tokens = g_list_remove (self->tokens, player->token); gtk_object_unref (GTK_OBJECT (player)); notify_players_changed (self); }} #line 860 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_lock: * @self: a #GoData object * @p: the player to modify * * This function must be called before @p is modified. After you are * done with @p you must call player_unlock() to propagate the changes. **/ #line 413 "go-data.gob" void go_data_player_lock (GoData * self, GoPlayer * p) #line 874 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_lock" #line 413 "go-data.gob" g_return_if_fail (self != NULL); #line 413 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 881 "go-data.c" { #line 415 "go-data.gob" g_assert (! p->locked); p->locked = TRUE; g_slist_foreach (self->clients, (GFunc)go_client_unregister_player, p); }} #line 889 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_unlock: * @self: a #GoData object * @p: the modified player * * Undo the effects of player_lock() and update the clients. **/ #line 428 "go-data.gob" void go_data_player_unlock (GoData * self, GoPlayer * p) #line 902 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_unlock" #line 428 "go-data.gob" g_return_if_fail (self != NULL); #line 428 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 909 "go-data.c" { #line 430 "go-data.gob" g_assert (p->locked); g_slist_foreach (self->clients, (GFunc)go_client_register_player, p); p->locked = FALSE; notify_players_changed (self); }} #line 918 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_count: * @self: the #GoData object * * Determine the number of players in the database. * * Returns: the number of known players. **/ #line 445 "go-data.gob" int go_data_player_count (GoData * self) #line 932 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_count" #line 445 "go-data.gob" g_return_val_if_fail (self != NULL, (int )0); #line 445 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (int )0); #line 939 "go-data.c" { #line 447 "go-data.gob" return g_slist_length (self->players); }} #line 945 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_tokens: * @self: a #GoData object * * Return the list of all player tokens. * The returned list must not be freed of modified. * It becomes invalid if the player list of @self is modified. * * Returns: the list of all player tokens **/ #line 461 "go-data.gob" GList * go_data_player_tokens (GoData * self) #line 961 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_tokens" #line 461 "go-data.gob" g_return_val_if_fail (self != NULL, (GList * )0); #line 461 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (GList * )0); #line 968 "go-data.c" { #line 463 "go-data.gob" return self->tokens; }} #line 974 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_find_token: * @self: a #GoData object * @token: a player token * * Get the player denoted by @token. * * Returns: a pointer to the player struct or %NULL if token is invalid. **/ #line 476 "go-data.gob" GoPlayer * go_data_find_token (GoData * self, const char * token) #line 989 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::find_token" #line 476 "go-data.gob" g_return_val_if_fail (self != NULL, (GoPlayer * )0); #line 476 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (GoPlayer * )0); #line 996 "go-data.c" { #line 478 "go-data.gob" GSList *players = self->players; if (token == NULL) return NULL; while (players) { GoPlayer *p = GO_PLAYER (players->data); if (strcmp (token, p->token) == 0) return p; players = players->next; } return NULL; }} #line 1011 "go-data.c" #undef __GOB_FUNCTION__ #line 491 "go-data.gob" static void go_data_pgc_cb (GoGame * g, void * data) #line 1017 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::pgc_cb" { #line 493 "go-data.gob" struct pgc_data *d_ptr = data; if (g->black == d_ptr->p || g->white == d_ptr->p) ++d_ptr->n; }} #line 1027 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_game_count: * @self: a #GoData object * @player: a #GoPlayer object * * Get the number of games recorded for @player. * * Returns: the number of games **/ #line 508 "go-data.gob" int go_data_player_game_count (GoData * self, GoPlayer * player) #line 1042 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_game_count" #line 508 "go-data.gob" g_return_val_if_fail (self != NULL, (int )0); #line 508 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (int )0); #line 1049 "go-data.c" { #line 510 "go-data.gob" struct pgc_data d; d.n = 0; d.p = player; foreach_game (self, pgc_cb, &d); return d.n; }} #line 1060 "go-data.c" #undef __GOB_FUNCTION__ #line 519 "go-data.gob" static void go_data_pwc_cb (GoGame * g, void * data) #line 1066 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::pwc_cb" { #line 521 "go-data.gob" struct pgc_data *d_ptr = data; if ((g->black == d_ptr->p && g->res == res_BLACK) || (g->white == d_ptr->p && g->res == res_WHITE)) ++d_ptr->n; }} #line 1077 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_win_count: * @self: a #GoData object * @player: a #GoPlayer object * * Get the number of won games recorded for @player. * * Returns: the number of won games **/ #line 537 "go-data.gob" int go_data_player_win_count (GoData * self, GoPlayer * player) #line 1092 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_win_count" #line 537 "go-data.gob" g_return_val_if_fail (self != NULL, (int )0); #line 537 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (int )0); #line 1099 "go-data.c" { #line 539 "go-data.gob" struct pgc_data d; d.n = 0; d.p = player; foreach_game (self, pwc_cb, &d); return d.n; }} #line 1110 "go-data.c" #undef __GOB_FUNCTION__ #line 548 "go-data.gob" static void go_data_pgi_cb (GoGame * g, void * data) #line 1116 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::pgi_cb" { #line 550 "go-data.gob" struct pgi_data *d_ptr = data; if (g == d_ptr->g) d_ptr->done = TRUE; if (d_ptr->done) return; if (g->black == d_ptr->p || g->white == d_ptr->p) ++d_ptr->n; }} #line 1128 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_game_index: * @self: a #GoData object * @player: a #GoPlayer object * @game: a #GoGame object * * Return the number of games in the data base @self, * which involve @player and are played before @game. * So, if the function returns n this indicates that * @game is the n-th game recorded for @player. * * Returns: the index of @game for @player **/ #line 571 "go-data.gob" int go_data_player_game_index (GoData * self, GoPlayer * player, GoGame * game) #line 1147 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_game_index" #line 571 "go-data.gob" g_return_val_if_fail (self != NULL, (int )0); #line 571 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (int )0); #line 1154 "go-data.c" { #line 573 "go-data.gob" struct pgi_data d; if (player == game->black && game->black_game_index >= 0) { return game->black_game_index; } else if (player == game->white && game->white_game_index >= 0) { return game->white_game_index; } d.done = FALSE; d.p = player; d.g = game; d.n = 0; foreach_game (self, pgi_cb, &d); if (player == game->black) { game->black_game_index = d.n; } else if (player == game->white) { game->white_game_index = d.n; } return d.n; }} #line 1177 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_player_component: * @self: a #GoData object * @player: the player to calculate the component for * * Calculate the index for the connected component of @player within * the game graph. The value %0 indicates the component of * players of defined rank. * * Returns: the component index **/ #line 605 "go-data.gob" int go_data_player_component (GoData * self, const GoPlayer * player) #line 1194 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::player_component" #line 605 "go-data.gob" g_return_val_if_fail (self != NULL, (int )0); #line 605 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (int )0); #line 1201 "go-data.c" { #line 607 "go-data.gob" return go_components_index (GO_COMPONENTS (self->components), player); }} #line 1207 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_players_equiv: * @self: a #GoData object * @a: the first player * @b: the second player * * Returns: %TRUE if @a and @b are in the same connected component * of the game graph **/ #line 620 "go-data.gob" gboolean go_data_players_equiv (GoData * self, const GoPlayer * a, const GoPlayer * b) #line 1222 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::players_equiv" #line 620 "go-data.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 620 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (gboolean )0); #line 1229 "go-data.c" { #line 622 "go-data.gob" return go_components_equivalent (GO_COMPONENTS (self->components), a, b); }} #line 1235 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_foreach_player: * @self: a #GoData object * @f: the function to iterate over the players * @data: an additional argument for @f * * Calls function @f for each player in turn, * using @data as the final argument. * The function @f may not modify the list of * players, or the result will be undefined. **/ #line 637 "go-data.gob" static void go_data_foreach_player (GoData * self, player_cb f, void * data) #line 1252 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::foreach_player" #line 637 "go-data.gob" g_return_if_fail (self != NULL); #line 637 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 1259 "go-data.c" { #line 639 "go-data.gob" GSList *players = self->players; while (players) { f (GO_PLAYER (players->data), data); players = players->next; } }} #line 1270 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_add_game: * @self: a #GoData object * @game: a #GoGame object * * Register a new game for this #GoData object and update all clients. **/ #line 656 "go-data.gob" void go_data_add_game (GoData * self, GoGame * game) #line 1283 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::add_game" #line 656 "go-data.gob" g_return_if_fail (self != NULL); #line 656 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 1290 "go-data.c" { #line 658 "go-data.gob" gtk_object_ref (GTK_OBJECT (game)); gtk_object_sink (GTK_OBJECT (game)); g_assert (game->data == NULL); game->data = self; self->games = g_slist_append (self->games, game); if (! (game)->fake) { g_slist_foreach (self->clients, (GFunc)go_client_register_game, game); notify_games_changed (self); notify_game_selected (self, game); } }} #line 1307 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_remove_game: * @self: a #GoData object * @game: a #GoGame object * * Disconnect the game from the #GoData object and update all clients. **/ #line 680 "go-data.gob" void go_data_remove_game (GoData * self, GoGame * game) #line 1320 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::remove_game" #line 680 "go-data.gob" g_return_if_fail (self != NULL); #line 680 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 1327 "go-data.c" { #line 682 "go-data.gob" GSList *node; if (! (game)->fake) { g_slist_foreach (self->clients, (GFunc)go_client_unregister_game, game); } game->data = NULL; node = g_slist_find (self->games, game); g_return_if_fail (node != NULL); self->games = g_slist_remove_link (self->games, node); g_slist_free_1 (node); gtk_object_unref (GTK_OBJECT (game)); if (! (game)->fake) notify_games_changed (self); }} #line 1347 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_game_lock: * @self: a #GoData object * @g: the game to modify * * This function must be called before @g is modified. After you are * done with @g you must call game_unlock() to propagate the changes. **/ #line 708 "go-data.gob" void go_data_game_lock (GoData * self, GoGame * g) #line 1361 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::game_lock" #line 708 "go-data.gob" g_return_if_fail (self != NULL); #line 708 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 1368 "go-data.c" { #line 710 "go-data.gob" g_assert (! g->locked); g->locked = TRUE; g_slist_foreach (self->clients, (GFunc)go_client_unregister_game, g); }} #line 1376 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_game_unlock: * @self: a #GoData object * @g: the modified game * * Undo the effects of game_lock() and update the clients. **/ #line 723 "go-data.gob" void go_data_game_unlock (GoData * self, GoGame * g) #line 1389 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::game_unlock" #line 723 "go-data.gob" g_return_if_fail (self != NULL); #line 723 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 1396 "go-data.c" { #line 725 "go-data.gob" g_assert (g->locked); g_slist_foreach (self->clients, (GFunc)go_client_register_game, g); g->locked = FALSE; notify_games_changed (self); }} #line 1405 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_game_count: * @self: the #GoData object * * Determine the number of games in the database. * * Returns: the number of known games. **/ #line 740 "go-data.gob" int go_data_game_count (GoData * self) #line 1419 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::game_count" #line 740 "go-data.gob" g_return_val_if_fail (self != NULL, (int )0); #line 740 "go-data.gob" g_return_val_if_fail (GO_IS_DATA (self), (int )0); #line 1426 "go-data.c" { #line 742 "go-data.gob" GSList *games = self->games; int m = 0; while (games) { GtkObject *g = games->data; if (! ((GoGame *)g)->fake) ++m; games = games->next; } return m; }} #line 1441 "go-data.c" #undef __GOB_FUNCTION__ /** * go_data_foreach_game: * @self: a #GoData object * @f: the function to iterate over the games * @data: an additional argument for @f * * Calls function @f for each game in turn, * using @data as the final argument. * The function @f may not modify the list of * games, or the result will be undefined. **/ #line 766 "go-data.gob" static void go_data_foreach_game (GoData * self, game_cb f, void * data) #line 1458 "go-data.c" { #define __GOB_FUNCTION__ "Go:Data::foreach_game" #line 766 "go-data.gob" g_return_if_fail (self != NULL); #line 766 "go-data.gob" g_return_if_fail (GO_IS_DATA (self)); #line 1465 "go-data.c" { #line 768 "go-data.gob" GSList *games = self->games; while (games) { GoGame *g = GO_GAME (games->data); if (! ((GoGame *)g)->fake) f (g, data); games = games->next; } }} #line 1477 "go-data.c" #undef __GOB_FUNCTION__ #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_data_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))new)(); ((void (*)(void))clear)(); ((void (*)(void))load)(); ((void (*)(void))write_player)(); ((void (*)(void))write_game)(); ((void (*)(void))save)(); ((void (*)(void))changed)(); ((void (*)(void))redisplay_client_cb)(); ((void (*)(void))deliver_changes)(); ((void (*)(void))notify_players_changed)(); ((void (*)(void))notify_games_changed)(); ((void (*)(void))notify_game_selected)(); ((void (*)(void))freeze)(); ((void (*)(void))thaw)(); ((void (*)(void))add_c_pl_cb)(); ((void (*)(void))add_c_gm_cb)(); ((void (*)(void))add_client)(); ((void (*)(void))remove_client)(); ((void (*)(void))add_player)(); ((void (*)(void))remove_player)(); ((void (*)(void))player_lock)(); ((void (*)(void))player_unlock)(); ((void (*)(void))player_count)(); ((void (*)(void))player_tokens)(); ((void (*)(void))find_token)(); ((void (*)(void))pgc_cb)(); ((void (*)(void))player_game_count)(); ((void (*)(void))pwc_cb)(); ((void (*)(void))player_win_count)(); ((void (*)(void))pgi_cb)(); ((void (*)(void))player_game_index)(); ((void (*)(void))player_component)(); ((void (*)(void))players_equiv)(); ((void (*)(void))foreach_player)(); ((void (*)(void))add_game)(); ((void (*)(void))remove_game)(); ((void (*)(void))game_lock)(); ((void (*)(void))game_unlock)(); ((void (*)(void))game_count)(); ((void (*)(void))foreach_game)(); ___go_data_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-player.c0000644000175000017500000003146307344217045011164 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include /* memset() */ #include "go-player.h" #line 18 "go-player.gob" #ifdef HAVE_CONFIG_H # include #endif #include #include "go.h" /** * rank_to_strength: * @rank: a player's rank * @strength_ptr: a pointer to the place where the strength value * should be filled in. * * Convert a rank string of the form "3d" or "5k" into a numerical * strength value. @rank must be an integer number x, followed * by either %d (for dan grades) or %k (for kyu grades). * The computed strength value is x-1 for "x dan" or -x for "x kyu". * * @rank may be %NULL or the empty string. In this case * the strength value -100 (meaning "unknown strength") is returned. * * Returns: %TRUE if the conversion was succesful and %FALSE on error. */ gboolean rank_to_strength (const char *rank, double *strength_ptr) { int res, val; char c; if (! (rank && *rank)) { *strength_ptr = -100; return TRUE; } res = sscanf (rank, "%d%c", &val, &c); if (! (res == 2 && (c == 'k' || c == 'd'))) { return FALSE; } *strength_ptr = (c == 'k') ? -val : val-1; return TRUE; } #line 61 "go-player.c" /* self casting macros */ #define SELF(x) GO_PLAYER(x) #define SELF_CONST(x) GO_PLAYER_CONST(x) #define IS_SELF(x) GO_IS_PLAYER(x) #define TYPE_SELF GO_TYPE_PLAYER #define SELF_CLASS(x) GO_PLAYER_CLASS(x) #define SELF_GET_CLASS(x) GO_PLAYER_GET_CLASS(x) /* self typedefs */ typedef GoPlayer Self; typedef GoPlayerClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void go_player_init (GoPlayer * o) G_GNUC_UNUSED; static void go_player_class_init (GoPlayerClass * c) G_GNUC_UNUSED; static void ___real_go_player_write (GoPlayer * self, xmlNodePtr node); static void ___2_go_player_destroy (GtkObject * obj) G_GNUC_UNUSED; enum { ARG_0, ARG_NAME, ARG_TOKEN, ARG_RANK, ARG_STRENGTH }; /* pointer to the class of our parent */ static GtkObjectClass *parent_class = NULL; GtkType go_player_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoPlayer", sizeof (GoPlayer), sizeof (GoPlayerClass), (GtkClassInitFunc) go_player_class_init, (GtkObjectInitFunc) go_player_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (gtk_object_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define write(args...) go_player_write(args) #define new(args...) go_player_new(args) #define read(args...) go_player_read(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static void (* const write) (GoPlayer * self, xmlNodePtr node) = go_player_write; static GtkObject * (* const new) (GoData * data, const char * name, const char * token, const char * rank, double strength) = go_player_new; static GtkObject * (* const read) (GoData * data, xmlNodePtr node) = go_player_read; /* a macro for creating a new object of our type */ #define GET_NEW ((GoPlayer *)gtk_type_new(go_player_get_type())) static void ___destroy(GtkObject *obj_self) { #define __GOB_FUNCTION__ "Go:Player::destroy" GoPlayer *self = GO_PLAYER (obj_self); #line 105 "go-player.gob" ___2_go_player_destroy(obj_self); #line 145 "go-player.c" #line 67 "go-player.gob" if(self->name) { ((*(void (*)(void *))g_free)) (self->name); self->name = NULL; } #line 148 "go-player.c" #line 71 "go-player.gob" if(self->token) { ((*(void (*)(void *))g_free)) (self->token); self->token = NULL; } #line 151 "go-player.c" #line 75 "go-player.gob" if(self->rank) { ((*(void (*)(void *))g_free)) (self->rank); self->rank = NULL; } #line 154 "go-player.c" return; self = NULL; } #undef __GOB_FUNCTION__ static void go_player_init (GoPlayer * o) { #define __GOB_FUNCTION__ "Go:Player::init" #line 18 "go-player.gob" o->data = NULL; #line 166 "go-player.c" #line 18 "go-player.gob" o->locked = FALSE; #line 169 "go-player.c" return; o = NULL; } #undef __GOB_FUNCTION__ static void go_player_class_init (GoPlayerClass * c) { #define __GOB_FUNCTION__ "Go:Player::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass*) c; #ifdef G_OBJECT_CLASS GObjectClass *g_object_class = (GObjectClass*) c; #endif /* G_OBJECT_CLASS */ parent_class = gtk_type_class (gtk_object_get_type ()); #line 92 "go-player.gob" c->write = ___real_go_player_write; #line 105 "go-player.gob" gtk_object_class->destroy = ___destroy; #line 189 "go-player.c" gtk_object_add_arg_type("GoPlayer::name", GTK_TYPE_POINTER, GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT, ARG_NAME); gtk_object_add_arg_type("GoPlayer::token", GTK_TYPE_POINTER, GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT_ONLY, ARG_TOKEN); gtk_object_add_arg_type("GoPlayer::rank", GTK_TYPE_POINTER, GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT, ARG_RANK); gtk_object_add_arg_type("GoPlayer::strength", GTK_TYPE_DOUBLE, GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT, ARG_STRENGTH); gtk_object_class->get_arg = ___object_get_arg; gtk_object_class->set_arg = ___object_set_arg; return; c = NULL; gtk_object_class = NULL; #ifdef G_OBJECT_CLASS g_object_class = NULL; #endif /* G_OBJECT_CLASS */ } #undef __GOB_FUNCTION__ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Player::set_arg" { GoPlayer *self; self = GO_PLAYER (object); switch (arg_id) { case ARG_NAME: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({gchar * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((gchar * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 68 "go-player.gob" g_free(self->name); self->name = g_strdup(ARG); #line 240 "go-player.c" } break; #undef ARG case ARG_TOKEN: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({gchar * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((gchar * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 72 "go-player.gob" g_free(self->token); self->token = g_strdup(ARG); #line 254 "go-player.c" } break; #undef ARG case ARG_RANK: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({gchar * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((gchar * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 76 "go-player.gob" g_free(self->rank); self->rank = g_strdup(ARG); #line 268 "go-player.c" } break; #undef ARG case ARG_STRENGTH: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({double foo = GTK_VALUE_DOUBLE(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((double )GTK_VALUE_DOUBLE(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 80 "go-player.gob" self->strength = ARG; #line 282 "go-player.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Player::get_arg" { GoPlayer *self; self = GO_PLAYER (object); switch (arg_id) { case ARG_NAME: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 68 "go-player.gob" ARG = g_strdup(self->name); #line 311 "go-player.c" } break; #undef ARG case ARG_TOKEN: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 72 "go-player.gob" ARG = g_strdup(self->token); #line 320 "go-player.c" } break; #undef ARG case ARG_RANK: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 76 "go-player.gob" ARG = g_strdup(self->rank); #line 329 "go-player.c" } break; #undef ARG case ARG_STRENGTH: #define ARG (GTK_VALUE_DOUBLE(*arg)) { #line 80 "go-player.gob" ARG = self->strength; #line 338 "go-player.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ /** * go_player_write: * @self: a #GoPlayer object * @node: a XML element of type "player" * * Dump all player data into @node. **/ #line 92 "go-player.gob" void go_player_write (GoPlayer * self, xmlNodePtr node) #line 363 "go-player.c" { GoPlayerClass *klass; #line 92 "go-player.gob" g_return_if_fail (self != NULL); #line 92 "go-player.gob" g_return_if_fail (GO_IS_PLAYER (self)); #line 370 "go-player.c" klass = GO_PLAYER_GET_CLASS(self); if(klass->write) (*klass->write)(self,node); } #line 92 "go-player.gob" static void ___real_go_player_write (GoPlayer * self, xmlNodePtr node) #line 379 "go-player.c" { #define __GOB_FUNCTION__ "Go:Player::write" { #line 94 "go-player.gob" xmlSetProp (node, "name", self->name); xmlSetProp (node, "token", self->token); if (self->rank) xmlSetProp (node, "rank", self->rank); if (! self->rank && self->strength > -50) { char buffer [32]; g_snprintf (buffer, 32, "%f", self->strength); xmlSetProp (node, "strength", buffer); } }} #line 394 "go-player.c" #undef __GOB_FUNCTION__ #line 105 "go-player.gob" static void ___2_go_player_destroy (GtkObject * obj) #line 400 "go-player.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:Player::destroy" { #line 107 "go-player.gob" GoPlayer *self = GO_PLAYER (obj); if (self->data) go_data_remove_player (self->data, self); PARENT_HANDLER (obj); }} #line 414 "go-player.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER /** * go_player_new: * @data: a #GoData object * @name: the player's full name * @token: the player's abbreviation * @rank: the player's nominal rank, or %NULL * @strength: the player's numerical strength value * * Allocate a new #GoPlayer object, fill in the values, * and connect it to @data. If the strength value is unknown * it should be set to %-100. * * Returns: a newly allocated #GoPlayer object. **/ #line 128 "go-player.gob" GtkObject * go_player_new (GoData * data, const char * name, const char * token, const char * rank, double strength) #line 435 "go-player.c" { #define __GOB_FUNCTION__ "Go:Player::new" #line 128 "go-player.gob" g_return_val_if_fail (data != NULL, (GtkObject * )0); #line 128 "go-player.gob" g_return_val_if_fail (GO_IS_DATA (data), (GtkObject * )0); #line 128 "go-player.gob" g_return_val_if_fail (name != NULL, (GtkObject * )0); #line 128 "go-player.gob" g_return_val_if_fail (token != NULL, (GtkObject * )0); #line 446 "go-player.c" { #line 131 "go-player.gob" GtkObject *w; w = gtk_object_new (GO_TYPE_PLAYER, "name", name, "token", token, "rank", rank, "strength", strength, NULL); go_data_add_player (data, GO_PLAYER (w)); return w; }} #line 461 "go-player.c" #undef __GOB_FUNCTION__ /** * go_player_read: * @data: a #GoData object * @node: a XML element of type "player" * * This is a constructor for #GoPlayer objects, * which reads all data from a XML tree. * * Returns: a newly allocated #GoPlayer object. **/ #line 154 "go-player.gob" GtkObject * go_player_read (GoData * data, xmlNodePtr node) #line 477 "go-player.c" { #define __GOB_FUNCTION__ "Go:Player::read" #line 154 "go-player.gob" g_return_val_if_fail (data != NULL, (GtkObject * )0); #line 154 "go-player.gob" g_return_val_if_fail (GO_IS_DATA (data), (GtkObject * )0); #line 484 "go-player.c" { #line 155 "go-player.gob" char *name, *token, *rank, *strength_str; double strength; name = xmlGetProp (node, "name"); token = xmlGetProp (node, "token"); rank = xmlGetProp (node, "rank"); strength_str = xmlGetProp (node, "strength"); if (strength_str) { strength = str_to_double (strength_str, -100); } else if (! rank_to_strength (rank, &strength)) { g_warning ("invalid rank \"%s\"", rank); strength = -100; } return go_player_new (data, name, token, rank, strength); }} #line 503 "go-player.c" #undef __GOB_FUNCTION__ #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_player_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))write)(); ((void (*)(void))new)(); ((void (*)(void))read)(); ___go_player_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-game.c0000644000175000017500000003735107344217045010603 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-game.h" #line 26 "go-game.gob" #ifdef HAVE_CONFIG_H # include #endif #include #include "go.h" static time_t str_to_time (const char *str) { if (str) { struct tm broken_time; broken_time.tm_sec = 0; broken_time.tm_min = 0; broken_time.tm_hour = 0; sscanf (str, "%d.%d.%d", &broken_time.tm_mday, &broken_time.tm_mon, &broken_time.tm_year); broken_time.tm_mon -= 1; broken_time.tm_year -= 1900; broken_time.tm_isdst = -1; return mktime (&broken_time); } else { return 0; } } static char * time_to_str (time_t t) { struct tm *broken_time; broken_time = localtime (&t); if (t == 0 || broken_time == NULL) return NULL; return g_strdup_printf ("%d.%d.%d", broken_time->tm_mday, broken_time->tm_mon + 1, broken_time->tm_year + 1900); } GoBoardSize str_to_board (const char *str) { GoBoardSize res; if (! str || strcmp (str, "19") == 0) { res = b19; } else if (strcmp (str, "13") == 0) { res = b13; } else if (strcmp (str, "9") == 0) { res = b9; } else { g_assert_not_reached (); res = -1; } return res; } /** * board_to_str: * @board: a board size * * Convert @board to a human-understandable textual representation. * * Returns: the board size as a string. */ const char * board_to_str (GoBoardSize board) { const char *str; switch (board) { case b19: str = "19"; break; case b13: str = "13"; break; case b9: str = "9"; break; default: g_assert_not_reached (); str = NULL; } return str; } GoGameResult str_to_result (const char *str) { GoGameResult res; if (! str) return -1; if (strcmp (str, "black") == 0) { res = res_BLACK; } else if (strcmp (str, "white") == 0) { res = res_WHITE; } else if (strcmp (str, "jigo") == 0) { res = res_JIGO; } else { g_assert_not_reached (); res = -1; } return res; } /** * result_to_str: * @res: a game result * * Convert @res to human understandable textual representation. * * Returns: the result as a string. */ const char * result_to_str (GoGameResult res) { const char *str; switch (res) { case res_BLACK: str = "black"; break; case res_WHITE: str = "white"; break; case res_JIGO: str = "jigo"; break; default: g_assert_not_reached (); str = NULL; } return str; } #line 156 "go-game.c" /* self casting macros */ #define SELF(x) GO_GAME(x) #define SELF_CONST(x) GO_GAME_CONST(x) #define IS_SELF(x) GO_IS_GAME(x) #define TYPE_SELF GO_TYPE_GAME #define SELF_CLASS(x) GO_GAME_CLASS(x) #define SELF_GET_CLASS(x) GO_GAME_GET_CLASS(x) /* self typedefs */ typedef GoGame Self; typedef GoGameClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void go_game_init (GoGame * o) G_GNUC_UNUSED; static void go_game_class_init (GoGameClass * c) G_GNUC_UNUSED; static void ___1_go_game_destroy (GtkObject * obj) G_GNUC_UNUSED; static void ___real_go_game_write (GoGame * self, xmlNodePtr node); enum { ARG_0, ARG_BLACK, ARG_WHITE, ARG_BOARD, ARG_HANDICAP, ARG_KOMI }; /* pointer to the class of our parent */ static GtkObjectClass *parent_class = NULL; GtkType go_game_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoGame", sizeof (GoGame), sizeof (GoGameClass), (GtkClassInitFunc) go_game_class_init, (GtkObjectInitFunc) go_game_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (gtk_object_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define new(args...) go_game_new(args) #define new_fake(args...) go_game_new_fake(args) #define write(args...) go_game_write(args) #define read(args...) go_game_read(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static GtkObject * (* const new) (GoData * data, time_t date, const char * black, const char * white, GoBoardSize board, int handicap, double komi, GoGameResult res) = go_game_new; static GtkObject * (* const new_fake) (GoData * data) = go_game_new_fake; static void (* const write) (GoGame * self, xmlNodePtr node) = go_game_write; static GtkObject * (* const read) (GoData * data, xmlNodePtr node) = go_game_read; /* a macro for creating a new object of our type */ #define GET_NEW ((GoGame *)gtk_type_new(go_game_get_type())) static void go_game_init (GoGame * o) { #define __GOB_FUNCTION__ "Go:Game::init" #line 26 "go-game.gob" o->data = NULL; #line 241 "go-game.c" #line 26 "go-game.gob" o->date = 0; #line 244 "go-game.c" #line 198 "go-game.gob" o->locked = FALSE; #line 247 "go-game.c" #line 198 "go-game.gob" o->fake = FALSE; #line 250 "go-game.c" #line 198 "go-game.gob" o->probability = -1; #line 253 "go-game.c" #line 198 "go-game.gob" o->black_game_index = -1; #line 256 "go-game.c" #line 198 "go-game.gob" o->white_game_index = -1; #line 259 "go-game.c" return; o = NULL; } #undef __GOB_FUNCTION__ static void go_game_class_init (GoGameClass * c) { #define __GOB_FUNCTION__ "Go:Game::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass*) c; #ifdef G_OBJECT_CLASS GObjectClass *g_object_class = (GObjectClass*) c; #endif /* G_OBJECT_CLASS */ parent_class = gtk_type_class (gtk_object_get_type ()); #line 215 "go-game.gob" gtk_object_class->destroy = ___1_go_game_destroy; #line 286 "go-game.gob" c->write = ___real_go_game_write; #line 279 "go-game.c" gtk_object_add_arg_type("GoGame::black", GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_BLACK); gtk_object_add_arg_type("GoGame::white", GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_WHITE); gtk_object_add_arg_type("GoGame::board", GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_BOARD); gtk_object_add_arg_type("GoGame::handicap", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_HANDICAP); gtk_object_add_arg_type("GoGame::komi", GTK_TYPE_DOUBLE, GTK_ARG_READWRITE, ARG_KOMI); gtk_object_class->get_arg = ___object_get_arg; gtk_object_class->set_arg = ___object_set_arg; return; c = NULL; gtk_object_class = NULL; #ifdef G_OBJECT_CLASS g_object_class = NULL; #endif /* G_OBJECT_CLASS */ } #undef __GOB_FUNCTION__ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Game::set_arg" { GoGame *self; self = GO_GAME (object); switch (arg_id) { case ARG_BLACK: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({char * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((char * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 175 "go-game.gob" self->black = go_data_find_token (self->data, ARG); #line 334 "go-game.c" } break; #undef ARG case ARG_WHITE: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({char * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((char * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 180 "go-game.gob" self->white = go_data_find_token (self->data, ARG); #line 348 "go-game.c" } break; #undef ARG case ARG_BOARD: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({char * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((char * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 185 "go-game.gob" self->board = str_to_board (ARG); #line 362 "go-game.c" } break; #undef ARG case ARG_HANDICAP: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({int foo = GTK_VALUE_INT(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((int )GTK_VALUE_INT(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 189 "go-game.gob" self->handicap = ARG; #line 376 "go-game.c" } break; #undef ARG case ARG_KOMI: #define ARG (GTK_VALUE_DOUBLE(*arg)) { #line 194 "go-game.gob" self->komi = (int)(ARG+10000)-10000; self->with_jigo = (ARG == self->komi); #line 388 "go-game.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Game::get_arg" { GoGame *self; self = GO_GAME (object); switch (arg_id) { case ARG_BLACK: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 176 "go-game.gob" ARG = g_strdup (self->black->token); #line 417 "go-game.c" } break; #undef ARG case ARG_WHITE: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 181 "go-game.gob" ARG = g_strdup (self->white->token); #line 426 "go-game.c" } break; #undef ARG case ARG_BOARD: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 186 "go-game.gob" ARG = g_strdup (board_to_str(self->board)); #line 435 "go-game.c" } break; #undef ARG case ARG_HANDICAP: #define ARG (GTK_VALUE_INT(*arg)) { #line 189 "go-game.gob" ARG = self->handicap; #line 444 "go-game.c" } break; #undef ARG case ARG_KOMI: #define ARG (GTK_VALUE_DOUBLE(*arg)) { #line 198 "go-game.gob" if (self->with_jigo) { ARG = self->komi; } else { ARG = self->komi + 0.5; } #line 459 "go-game.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ #line 215 "go-game.gob" static void ___1_go_game_destroy (GtkObject * obj) #line 477 "go-game.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:Game::destroy" { #line 217 "go-game.gob" GoGame *self = GO_GAME (obj); if (self->data) go_data_remove_game (self->data, self); PARENT_HANDLER (obj); }} #line 491 "go-game.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER /** * go_game_new: * @data: a #GoData object * @date: the date of the game in the form %dd.mm.yyyy * @black: the black player's token * @white: the white player's token * @board: the board size * @handicap: the number of handicap stones (in favour of black) * @komi: the amount of komi (in favour of white) * @res: the game's outcome * * Allocate a new #GoGame object, fill it with values, and * connect it to @data. * * Returns: a newly allocated #GoGame object. **/ #line 240 "go-game.gob" GtkObject * go_game_new (GoData * data, time_t date, const char * black, const char * white, GoBoardSize board, int handicap, double komi, GoGameResult res) #line 514 "go-game.c" { #define __GOB_FUNCTION__ "Go:Game::new" #line 240 "go-game.gob" g_return_val_if_fail (black != NULL, (GtkObject * )0); #line 240 "go-game.gob" g_return_val_if_fail (white != NULL, (GtkObject * )0); #line 521 "go-game.c" { #line 244 "go-game.gob" GoGame *g = GET_NEW; g->black = go_data_find_token (data, black); g->white = go_data_find_token (data, white); g->date = date; g->board = board; gtk_object_set (GTK_OBJECT (g), GO_GAME_ARG_HANDICAP (handicap), GO_GAME_ARG_KOMI (komi), NULL); g->res = res; go_data_add_game (data, g); return GTK_OBJECT (g); }} #line 539 "go-game.c" #undef __GOB_FUNCTION__ /** * go_game_new_fake: * @data: a #GoData object * * Allocate a new fake #GoGame object and connect it to @data. This * object may be used for internal purposes and does not correspond * to a real game. The data must be filled in manually. * * Returns: a newly allocated #GoGame object. **/ #line 270 "go-game.gob" GtkObject * go_game_new_fake (GoData * data) #line 555 "go-game.c" { #define __GOB_FUNCTION__ "Go:Game::new_fake" { #line 271 "go-game.gob" GoGame *g = GET_NEW; g->fake = TRUE; go_data_add_game (data, g); return GTK_OBJECT (g); }} #line 567 "go-game.c" #undef __GOB_FUNCTION__ /** * go_game_write: * @self: a #GoGame object * @node: a XML element of type "game" * * Dump all game data into @node. **/ #line 286 "go-game.gob" void go_game_write (GoGame * self, xmlNodePtr node) #line 580 "go-game.c" { GoGameClass *klass; #line 286 "go-game.gob" g_return_if_fail (self != NULL); #line 286 "go-game.gob" g_return_if_fail (GO_IS_GAME (self)); #line 587 "go-game.c" klass = GO_GAME_GET_CLASS(self); if(klass->write) (*klass->write)(self,node); } #line 286 "go-game.gob" static void ___real_go_game_write (GoGame * self, xmlNodePtr node) #line 596 "go-game.c" { #define __GOB_FUNCTION__ "Go:Game::write" { #line 288 "go-game.gob" char *date_str, *black_str, *white_str, *board_str; gtk_object_get (GTK_OBJECT (self), GO_GAME_GET_ARG_BLACK (&black_str), GO_GAME_GET_ARG_WHITE (&white_str), GO_GAME_GET_ARG_BOARD (&board_str), NULL); date_str = time_to_str (self->date); if (date_str) { xmlSetProp (node, "date", date_str); g_free (date_str); } xmlSetProp (node, "black", black_str); g_free (black_str); xmlSetProp (node, "white", white_str); g_free (white_str); xmlSetProp (node, "board", board_str); g_free (board_str); if (self->handicap) { char buffer [32]; g_snprintf (buffer, 32, "%d", self->handicap); xmlSetProp (node, "handicap", buffer); } if (self->komi || ! self->with_jigo) { char buffer [32]; if (self->with_jigo) { g_snprintf (buffer, 32, "%d", self->komi); } else { g_snprintf (buffer, 32, "%.1f", self->komi+0.5); } xmlSetProp (node, "komi", buffer); } xmlSetProp (node, "res", result_to_str (self->res)); }} #line 637 "go-game.c" #undef __GOB_FUNCTION__ /** * go_game_read: * @data: a #GoData object * @node: a XML element of type "game" * * This is a constructor for #GoGame objects, * which reads all data from a XML tree. * * Returns: a newly allocated #GoGame object. **/ #line 335 "go-game.gob" GtkObject * go_game_read (GoData * data, xmlNodePtr node) #line 653 "go-game.c" { #define __GOB_FUNCTION__ "Go:Game::read" #line 335 "go-game.gob" g_return_val_if_fail (data != NULL, (GtkObject * )0); #line 335 "go-game.gob" g_return_val_if_fail (GO_IS_DATA (data), (GtkObject * )0); #line 660 "go-game.c" { #line 336 "go-game.gob" time_t date; char *black, *white, *board, *handicap_str, *komi_str, *result; int handicap; double komi; date = str_to_time (xmlGetProp (node, "date")); black = xmlGetProp (node, "black"); white = xmlGetProp (node, "white"); board = xmlGetProp (node, "board"); handicap_str = xmlGetProp (node, "handicap"); handicap = str_to_int (handicap_str, 0); komi_str = xmlGetProp (node, "komi"); komi = str_to_double (komi_str, 0); result = xmlGetProp (node, "res"); return go_game_new (data, date, black, white, str_to_board (board), handicap, komi, str_to_result (result)); }} #line 682 "go-game.c" #undef __GOB_FUNCTION__ #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_game_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))new)(); ((void (*)(void))new_fake)(); ((void (*)(void))write)(); ((void (*)(void))read)(); ___go_game_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-components.c0000644000175000017500000005360107344217045012053 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-components.h" #line 11 "go-components.gob" #ifdef HAVE_CONFIG_H # include #endif #include /* TODO */ struct key { const GoPlayer *a, *b; }; static guint hash_key (gconstpointer key) { const struct key *k = key; return GPOINTER_TO_UINT(k->a)+GPOINTER_TO_UINT(k->b); } static gint compare_keys (gconstpointer a, gconstpointer b) { const struct key *ka = a, *kb = b; return (ka->a == kb->a && ka->b == kb->b); } static gboolean free_key_and_value (gpointer key, gpointer value, gpointer user_data) { g_free (key); g_free (value); return TRUE; } static gboolean free_key (gpointer key, gpointer value, gpointer user_data) /* Free the dynamically allocated memory for KEY. * If USER_DATA is non-nil, then only free the key, * if the player (GoPlayer*)USER_DATA is mentioned in KEY. */ { g_free (key); return TRUE; } #line 59 "go-components.c" /* self casting macros */ #define SELF(x) GO_COMPONENTS(x) #define SELF_CONST(x) GO_COMPONENTS_CONST(x) #define IS_SELF(x) GO_IS_COMPONENTS(x) #define TYPE_SELF GO_TYPE_COMPONENTS #define SELF_CLASS(x) GO_COMPONENTS_CLASS(x) #define SELF_GET_CLASS(x) GO_COMPONENTS_GET_CLASS(x) /* self typedefs */ typedef GoComponents Self; typedef GoComponentsClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void go_components_class_init (GoComponentsClass * c) G_GNUC_UNUSED; static void go_components_init (GoComponents * self) G_GNUC_UNUSED; static void ___2_go_components_destroy (GtkObject * obj) G_GNUC_UNUSED; static GoPlayer * go_components_ranked_player (GoComponents * self) G_GNUC_UNUSED; static void go_components_t_add_pair (GoComponents * self, const GoPlayer * a, const GoPlayer * b) G_GNUC_UNUSED; static void go_components_t_add (GoComponents * self, const GoPlayer * a, const GoPlayer * b) G_GNUC_UNUSED; static void go_components_rth_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED; static void go_components_rebuild_transitive_hull (GoComponents * self) G_GNUC_UNUSED; static void go_components_add_pair (GoComponents * self, const GoPlayer * a, const GoPlayer * b) G_GNUC_UNUSED; static void go_components_remove_pair (GoComponents * self, const GoPlayer * a, const GoPlayer * b) G_GNUC_UNUSED; static void ___f_go_components_register_player (GoClient * obj, GoPlayer * p) G_GNUC_UNUSED; static void ___10_go_components_unregister_player (GoClient * obj, GoPlayer * p) G_GNUC_UNUSED; static void ___11_go_components_register_game (GoClient * obj, GoGame * g) G_GNUC_UNUSED; static void ___12_go_components_unregister_game (GoClient * obj, GoGame * g) G_GNUC_UNUSED; static void go_components_dump_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED; /* pointer to the class of our parent */ static GoClientClass *parent_class = NULL; GtkType go_components_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoComponents", sizeof (GoComponents), sizeof (GoComponentsClass), (GtkClassInitFunc) go_components_class_init, (GtkObjectInitFunc) go_components_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (go_client_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define new(args...) go_components_new(args) #define ranked_player(args...) go_components_ranked_player(args) #define t_add_pair(args...) go_components_t_add_pair(args) #define t_add(args...) go_components_t_add(args) #define geq(args...) go_components_geq(args) #define equivalent(args...) go_components_equivalent(args) #define index(args...) go_components_index(args) #define rth_cb(args...) go_components_rth_cb(args) #define rebuild_transitive_hull(args...) go_components_rebuild_transitive_hull(args) #define add_pair(args...) go_components_add_pair(args) #define remove_pair(args...) go_components_remove_pair(args) #define direct_geq(args...) go_components_direct_geq(args) #define dump_cb(args...) go_components_dump_cb(args) #define dump(args...) go_components_dump(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static GtkObject * (* const new) (GoData * data) = go_components_new; static GoPlayer * (* const ranked_player) (GoComponents * self) = go_components_ranked_player; static void (* const t_add_pair) (GoComponents * self, const GoPlayer * a, const GoPlayer * b) = go_components_t_add_pair; static void (* const t_add) (GoComponents * self, const GoPlayer * a, const GoPlayer * b) = go_components_t_add; static gboolean (* const geq) (GoComponents * self, const GoPlayer * a, const GoPlayer * b) = go_components_geq; static gboolean (* const equivalent) (GoComponents * self, const GoPlayer * a, const GoPlayer * b) = go_components_equivalent; static int (* const index) (GoComponents * self, const GoPlayer * p) = go_components_index; static void (* const rth_cb) (gpointer key, gpointer value, gpointer user_data) = go_components_rth_cb; static void (* const rebuild_transitive_hull) (GoComponents * self) = go_components_rebuild_transitive_hull; static void (* const add_pair) (GoComponents * self, const GoPlayer * a, const GoPlayer * b) = go_components_add_pair; static void (* const remove_pair) (GoComponents * self, const GoPlayer * a, const GoPlayer * b) = go_components_remove_pair; static gboolean (* const direct_geq) (GoComponents * self, GoPlayer * a, GoPlayer * b) = go_components_direct_geq; static void (* const dump_cb) (gpointer key, gpointer value, gpointer user_data) = go_components_dump_cb; static void (* const dump) (GoComponents * self) = go_components_dump; /* a macro for creating a new object of our type */ #define GET_NEW ((GoComponents *)gtk_type_new(go_components_get_type())) static void go_components_class_init (GoComponentsClass * c) { #define __GOB_FUNCTION__ "Go:Components::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass *)c; GoClientClass *go_client_class = (GoClientClass *)c; parent_class = gtk_type_class (go_client_get_type ()); #line 66 "go-components.gob" gtk_object_class->destroy = ___2_go_components_destroy; #line 281 "go-components.gob" go_client_class->register_player = ___f_go_components_register_player; #line 302 "go-components.gob" go_client_class->unregister_player = ___10_go_components_unregister_player; #line 323 "go-components.gob" go_client_class->register_game = ___11_go_components_register_game; #line 338 "go-components.gob" go_client_class->unregister_game = ___12_go_components_unregister_game; #line 177 "go-components.c" return; c = NULL; } #undef __GOB_FUNCTION__ #line 61 "go-components.gob" static void go_components_init (GoComponents * self) #line 185 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::init" #line 11 "go-components.gob" self->t_geq_valid = TRUE; #line 190 "go-components.c" { #line 61 "go-components.gob" self->d_geq = g_hash_table_new (hash_key, compare_keys); self->t_geq = g_hash_table_new (hash_key, compare_keys); #line 197 "go-components.c" } return; self = NULL; } #undef __GOB_FUNCTION__ #line 66 "go-components.gob" static void ___2_go_components_destroy (GtkObject * obj) #line 209 "go-components.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:Components::destroy" { #line 68 "go-components.gob" GoComponents *self = GO_COMPONENTS (obj); g_hash_table_freeze (self->d_geq); g_hash_table_foreach_remove (self->d_geq, free_key_and_value, NULL); g_hash_table_destroy (self->d_geq); g_hash_table_freeze (self->t_geq); g_hash_table_foreach_remove (self->t_geq, free_key, NULL); g_hash_table_destroy (self->t_geq); PARENT_HANDLER (obj); }} #line 230 "go-components.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER /** * go_components_new: * @data: a #GoData object * * Allocate a new #GoComponents object and connect it to @data. * * Returns: the new object. **/ #line 90 "go-components.gob" GtkObject * go_components_new (GoData * data) #line 245 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::new" { #line 92 "go-components.gob" GoComponents *w; w = GET_NEW; go_data_add_client (data, GO_CLIENT(w)); return GTK_OBJECT (w); }} #line 257 "go-components.c" #undef __GOB_FUNCTION__ #line 101 "go-components.gob" static GoPlayer * go_components_ranked_player (GoComponents * self) #line 263 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::ranked_player" #line 101 "go-components.gob" g_return_val_if_fail (self != NULL, (GoPlayer * )0); #line 101 "go-components.gob" g_return_val_if_fail (GO_IS_COMPONENTS (self), (GoPlayer * )0); #line 270 "go-components.c" { #line 103 "go-components.gob" int i, n; n = go_client_player_count (GO_CLIENT(self)); for (i=0; irank) return p; } return NULL; }} #line 283 "go-components.c" #undef __GOB_FUNCTION__ #line 114 "go-components.gob" static void go_components_t_add_pair (GoComponents * self, const GoPlayer * a, const GoPlayer * b) #line 289 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::t_add_pair" #line 114 "go-components.gob" g_return_if_fail (self != NULL); #line 114 "go-components.gob" g_return_if_fail (GO_IS_COMPONENTS (self)); #line 296 "go-components.c" { #line 116 "go-components.gob" struct key key; gpointer value; g_assert (a != b); key.a = a; key.b = b; value = g_hash_table_lookup (self->t_geq, &key); if (! value) { struct key *key_ptr; key_ptr = g_new (struct key, 1); key_ptr->a = a; key_ptr->b = b; g_hash_table_insert (self->t_geq, key_ptr, (gpointer)TRUE); } }} #line 316 "go-components.c" #undef __GOB_FUNCTION__ #line 134 "go-components.gob" static void go_components_t_add (GoComponents * self, const GoPlayer * a, const GoPlayer * b) #line 322 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::t_add" #line 134 "go-components.gob" g_return_if_fail (self != NULL); #line 134 "go-components.gob" g_return_if_fail (GO_IS_COMPONENTS (self)); #line 329 "go-components.c" { #line 136 "go-components.gob" int i, j, k, n; gboolean done; if (geq (self, a, b)) return; t_add_pair (self, a, b); n = go_client_player_count (GO_CLIENT (self)); do { done = TRUE; for (i=0; it_geq_valid) rebuild_transitive_hull (self); key.a = a; key.b = b; value = g_hash_table_lookup (self->t_geq, &key); return (value != NULL); }} #line 388 "go-components.c" #undef __GOB_FUNCTION__ #line 180 "go-components.gob" gboolean go_components_equivalent (GoComponents * self, const GoPlayer * a, const GoPlayer * b) #line 394 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::equivalent" #line 180 "go-components.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 180 "go-components.gob" g_return_val_if_fail (GO_IS_COMPONENTS (self), (gboolean )0); #line 401 "go-components.c" { #line 182 "go-components.gob" return geq (self, a, b) && geq (self, b, a); }} #line 407 "go-components.c" #undef __GOB_FUNCTION__ #line 186 "go-components.gob" int go_components_index (GoComponents * self, const GoPlayer * p) #line 413 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::index" #line 186 "go-components.gob" g_return_val_if_fail (self != NULL, (int )0); #line 186 "go-components.gob" g_return_val_if_fail (GO_IS_COMPONENTS (self), (int )0); #line 420 "go-components.c" { #line 188 "go-components.gob" int i, k, n; if (p->rank) return 0; k = -1; n = go_client_player_count (GO_CLIENT(self)); for (i=n-1; i>=0; --i) { GoPlayer *q = go_client_player (GO_CLIENT(self), i); if (equivalent (self, p, q)) { if (q->rank) return 0; k = i; } } return k+1; }} #line 439 "go-components.c" #undef __GOB_FUNCTION__ #line 205 "go-components.gob" static void go_components_rth_cb (gpointer key, gpointer value, gpointer user_data) #line 445 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::rth_cb" { #line 207 "go-components.gob" const struct key *k = key; t_add (GO_COMPONENTS(user_data), k->a, k->b); }} #line 454 "go-components.c" #undef __GOB_FUNCTION__ #line 212 "go-components.gob" static void go_components_rebuild_transitive_hull (GoComponents * self) #line 460 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::rebuild_transitive_hull" #line 212 "go-components.gob" g_return_if_fail (self != NULL); #line 212 "go-components.gob" g_return_if_fail (GO_IS_COMPONENTS (self)); #line 467 "go-components.c" { #line 214 "go-components.gob" self->t_geq_valid = TRUE; g_hash_table_freeze (self->t_geq); g_hash_table_foreach_remove (self->t_geq, free_key, NULL); g_hash_table_foreach (self->d_geq, rth_cb, self); g_hash_table_thaw (self->t_geq); }} #line 477 "go-components.c" #undef __GOB_FUNCTION__ #line 222 "go-components.gob" static void go_components_add_pair (GoComponents * self, const GoPlayer * a, const GoPlayer * b) #line 483 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::add_pair" #line 222 "go-components.gob" g_return_if_fail (self != NULL); #line 222 "go-components.gob" g_return_if_fail (GO_IS_COMPONENTS (self)); #line 490 "go-components.c" { #line 224 "go-components.gob" struct key key; guint *value_ptr; key.a = a; key.b = b; value_ptr = g_hash_table_lookup (self->d_geq, &key); if (value_ptr) { *value_ptr += 1; } else { struct key *key_ptr; key_ptr = g_new (struct key, 1); key_ptr->a = a; key_ptr->b = b; value_ptr = g_new (guint, 1); *value_ptr = 1; g_hash_table_insert (self->d_geq, key_ptr, value_ptr); self->t_geq_valid = FALSE; } }} #line 514 "go-components.c" #undef __GOB_FUNCTION__ #line 246 "go-components.gob" static void go_components_remove_pair (GoComponents * self, const GoPlayer * a, const GoPlayer * b) #line 520 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::remove_pair" #line 246 "go-components.gob" g_return_if_fail (self != NULL); #line 246 "go-components.gob" g_return_if_fail (GO_IS_COMPONENTS (self)); #line 527 "go-components.c" { #line 248 "go-components.gob" struct key key; gpointer old_key_ptr; guint *value_ptr; key.a = a; key.b = b; g_hash_table_lookup_extended (self->d_geq, &key, &old_key_ptr, (gpointer *)&value_ptr); g_assert (value_ptr && *value_ptr > 0); *value_ptr -= 1; if (*value_ptr == 0) { g_hash_table_remove (self->d_geq, &key); g_free (old_key_ptr); g_free (value_ptr); self->t_geq_valid = FALSE; } }} #line 549 "go-components.c" #undef __GOB_FUNCTION__ #line 268 "go-components.gob" gboolean go_components_direct_geq (GoComponents * self, GoPlayer * a, GoPlayer * b) #line 555 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::direct_geq" #line 268 "go-components.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 268 "go-components.gob" g_return_val_if_fail (GO_IS_COMPONENTS (self), (gboolean )0); #line 562 "go-components.c" { #line 270 "go-components.gob" struct key key; guint *value_ptr; key.a = a; key.b = b; value_ptr = g_hash_table_lookup (self->d_geq, &key); return (value_ptr != NULL); }} #line 574 "go-components.c" #undef __GOB_FUNCTION__ #line 281 "go-components.gob" static void ___f_go_components_register_player (GoClient * obj, GoPlayer * p) #line 580 "go-components.c" #define PARENT_HANDLER(___obj,___p) \ { if(GO_CLIENT_CLASS(parent_class)->register_player) \ (* GO_CLIENT_CLASS(parent_class)->register_player)(___obj,___p); } { #define __GOB_FUNCTION__ "Go:Components::register_player" { #line 283 "go-components.gob" GoComponents *self = GO_COMPONENTS (obj); PARENT_HANDLER (obj, p); if (p->rank) { int i, n; n = go_client_player_count (GO_CLIENT (self)); for (i=0; irank) { add_pair (self, p, q); add_pair (self, q, p); } } } }} #line 606 "go-components.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 302 "go-components.gob" static void ___10_go_components_unregister_player (GoClient * obj, GoPlayer * p) #line 613 "go-components.c" #define PARENT_HANDLER(___obj,___p) \ { if(GO_CLIENT_CLASS(parent_class)->unregister_player) \ (* GO_CLIENT_CLASS(parent_class)->unregister_player)(___obj,___p); } { #define __GOB_FUNCTION__ "Go:Components::unregister_player" { #line 304 "go-components.gob" GoComponents *self = GO_COMPONENTS (obj); if (p->rank) { int i, n; n = go_client_player_count (GO_CLIENT (self)); for (i=0; irank) { remove_pair (self, p, q); remove_pair (self, q, p); } } } PARENT_HANDLER (obj, p); }} #line 639 "go-components.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 323 "go-components.gob" static void ___11_go_components_register_game (GoClient * obj, GoGame * g) #line 646 "go-components.c" #define PARENT_HANDLER(___obj,___g) \ { if(GO_CLIENT_CLASS(parent_class)->register_game) \ (* GO_CLIENT_CLASS(parent_class)->register_game)(___obj,___g); } { #define __GOB_FUNCTION__ "Go:Components::register_game" { #line 325 "go-components.gob" GoComponents *self = GO_COMPONENTS (obj); if (g->res == res_BLACK || g->res == res_JIGO) { add_pair (self, g->black, g->white); } if (g->res == res_WHITE || g->res == res_JIGO) { add_pair (self, g->white, g->black); } PARENT_HANDLER (obj, g); }} #line 666 "go-components.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 338 "go-components.gob" static void ___12_go_components_unregister_game (GoClient * obj, GoGame * g) #line 673 "go-components.c" #define PARENT_HANDLER(___obj,___g) \ { if(GO_CLIENT_CLASS(parent_class)->unregister_game) \ (* GO_CLIENT_CLASS(parent_class)->unregister_game)(___obj,___g); } { #define __GOB_FUNCTION__ "Go:Components::unregister_game" { #line 340 "go-components.gob" GoComponents *self = GO_COMPONENTS (obj); if (g->res == res_BLACK || g->res == res_JIGO) { remove_pair (self, g->black, g->white); } if (g->res == res_WHITE || g->res == res_JIGO) { remove_pair (self, g->white, g->black); } PARENT_HANDLER (obj, g); }} #line 693 "go-components.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 354 "go-components.gob" static void go_components_dump_cb (gpointer key, gpointer value, gpointer user_data) #line 700 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::dump_cb" { #line 356 "go-components.gob" struct key *k = key; guint *x = value; printf ("%s >= %s [%u]\n", k->a->token, k->b->token, *x); }} #line 710 "go-components.c" #undef __GOB_FUNCTION__ #line 362 "go-components.gob" void go_components_dump (GoComponents * self) #line 716 "go-components.c" { #define __GOB_FUNCTION__ "Go:Components::dump" #line 362 "go-components.gob" g_return_if_fail (self != NULL); #line 362 "go-components.gob" g_return_if_fail (GO_IS_COMPONENTS (self)); #line 723 "go-components.c" { #line 364 "go-components.gob" GoPlayer *base; int i, n; puts ("game relations:"); g_hash_table_foreach (self->d_geq, dump_cb, NULL); putchar ('\n'); base = ranked_player (self); n = go_client_player_count (GO_CLIENT(self)); printf ("global component:"); for (i=0; itoken); } puts ("\n"); }} #line 743 "go-components.c" #undef __GOB_FUNCTION__ #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_components_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))new)(); ((void (*)(void))ranked_player)(); ((void (*)(void))t_add_pair)(); ((void (*)(void))t_add)(); ((void (*)(void))geq)(); ((void (*)(void))equivalent)(); ((void (*)(void))index)(); ((void (*)(void))rth_cb)(); ((void (*)(void))rebuild_transitive_hull)(); ((void (*)(void))add_pair)(); ((void (*)(void))remove_pair)(); ((void (*)(void))direct_geq)(); ((void (*)(void))dump_cb)(); ((void (*)(void))dump)(); ___go_components_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-client.c0000644000175000017500000006063307344217045011147 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-client.h" #line 24 "go-client.gob" #ifdef HAVE_CONFIG_H # include #endif #include /* The following is an ugly hack, which is needed * in order to use `qsort'. It will not work * in multi-threaded programs. */ static struct { GoComparePlayersFunc compare_players_fn; void *client_data; } qsort_data; static int qsort_cmp (const void *a, const void *b) { GoPlayer *const *aa = (GoPlayer *const *)a; GoPlayer *const *bb = (GoPlayer *const *)b; return qsort_data.compare_players_fn (*aa, *bb, qsort_data.client_data); } #line 41 "go-client.c" /* self casting macros */ #define SELF(x) GO_CLIENT(x) #define SELF_CONST(x) GO_CLIENT_CONST(x) #define IS_SELF(x) GO_IS_CLIENT(x) #define TYPE_SELF GO_TYPE_CLIENT #define SELF_CLASS(x) GO_CLIENT_CLASS(x) #define SELF_GET_CLASS(x) GO_CLIENT_GET_CLASS(x) /* self typedefs */ typedef GoClient Self; typedef GoClientClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void go_client_class_init (GoClientClass * c) G_GNUC_UNUSED; static void go_client_init (GoClient * self) G_GNUC_UNUSED; static void ___2_go_client_destroy (GtkObject * obj) G_GNUC_UNUSED; static void ___real_go_client_register_player (GoClient * self, GoPlayer * player); static void ___real_go_client_unregister_player (GoClient * self, GoPlayer * player); static void ___real_go_client_register_game (GoClient * self, GoGame * game); static void ___real_go_client_unregister_game (GoClient * self, GoGame * game); static void go_client_redisplay_players (GoClient * self) G_GNUC_UNUSED; static void go_client_redisplay_games (GoClient * self) G_GNUC_UNUSED; /* pointer to the class of our parent */ static GtkObjectClass *parent_class = NULL; GtkType go_client_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoClient", sizeof (GoClient), sizeof (GoClientClass), (GtkClassInitFunc) go_client_class_init, (GtkObjectInitFunc) go_client_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (gtk_object_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define register_player(args...) go_client_register_player(args) #define unregister_player(args...) go_client_unregister_player(args) #define player_count(args...) go_client_player_count(args) #define player(args...) go_client_player(args) #define foreach_player(args...) go_client_foreach_player(args) #define sort_players(args...) go_client_sort_players(args) #define register_game(args...) go_client_register_game(args) #define unregister_game(args...) go_client_unregister_game(args) #define game_count(args...) go_client_game_count(args) #define game(args...) go_client_game(args) #define foreach_game(args...) go_client_foreach_game(args) #define redisplay_players(args...) go_client_redisplay_players(args) #define redisplay_games(args...) go_client_redisplay_games(args) #define redisplay(args...) go_client_redisplay(args) #define make_game_visible(args...) go_client_make_game_visible(args) #define print_player(args...) go_client_print_player(args) #define print_game(args...) go_client_print_game(args) #define select_game(args...) go_client_select_game(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static void (* const register_player) (GoClient * self, GoPlayer * player) = go_client_register_player; static void (* const unregister_player) (GoClient * self, GoPlayer * player) = go_client_unregister_player; static int (* const player_count) (GoClient * self) = go_client_player_count; static GoPlayer * (* const player) (GoClient * self, int i) = go_client_player; static void (* const foreach_player) (GoClient * self, GoClientPlayerFunc f, void * data) = go_client_foreach_player; static void (* const sort_players) (GoClient * self, GoComparePlayersFunc compare_players_fn, gpointer client_data) = go_client_sort_players; static void (* const register_game) (GoClient * self, GoGame * game) = go_client_register_game; static void (* const unregister_game) (GoClient * self, GoGame * game) = go_client_unregister_game; static int (* const game_count) (GoClient * self) = go_client_game_count; static GoGame * (* const game) (GoClient * self, int i) = go_client_game; static void (* const foreach_game) (GoClient * self, GoClientGameFunc f, void * data) = go_client_foreach_game; static void (* const redisplay_players) (GoClient * self) = go_client_redisplay_players; static void (* const redisplay_games) (GoClient * self) = go_client_redisplay_games; static void (* const redisplay) (GoClient * self, gboolean games, gboolean players) = go_client_redisplay; static void (* const make_game_visible) (GoClient * self, GoGame * g) = go_client_make_game_visible; static void (* const print_player) (GoClient * self, GoPlayer * player, int i, int n) = go_client_print_player; static void (* const print_game) (GoClient * self, GoGame * game, int i, int n) = go_client_print_game; static void (* const select_game) (GoClient * self, GoGame * g, int i) = go_client_select_game; /* a macro for creating a new object of our type */ #define GET_NEW ((GoClient *)gtk_type_new(go_client_get_type())) static void go_client_class_init (GoClientClass * c) { #define __GOB_FUNCTION__ "Go:Client::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass *)c; parent_class = gtk_type_class (gtk_object_get_type ()); #line 66 "go-client.gob" gtk_object_class->destroy = ___2_go_client_destroy; #line 92 "go-client.gob" c->register_player = ___real_go_client_register_player; #line 126 "go-client.gob" c->unregister_player = ___real_go_client_unregister_player; #line 221 "go-client.gob" c->register_game = ___real_go_client_register_game; #line 240 "go-client.gob" c->unregister_game = ___real_go_client_unregister_game; #line 160 "go-client.c" c->print_player = NULL; c->print_game = NULL; c->select_game = NULL; return; c = NULL; } #undef __GOB_FUNCTION__ #line 61 "go-client.gob" static void go_client_init (GoClient * self) #line 171 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::init" #line 24 "go-client.gob" self->compare_players_fn = NULL; #line 176 "go-client.c" { #line 61 "go-client.gob" self->players = g_ptr_array_new (); self->games = g_ptr_array_new (); #line 183 "go-client.c" } return; self = NULL; } #undef __GOB_FUNCTION__ #line 66 "go-client.gob" static void ___2_go_client_destroy (GtkObject * obj) #line 195 "go-client.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:Client::destroy" { #line 68 "go-client.gob" GoClient *self = GO_CLIENT (obj); if (self->data) go_data_remove_client (self->data, self); g_ptr_array_free (self->players, TRUE); g_ptr_array_free (self->games, TRUE); PARENT_HANDLER (obj); }} #line 212 "go-client.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER /** * go_client_register_player: * @self: a #GoClient object * @player: a #GoPlayer object * * A virtual method to register a player with the Client. This is * called exactly once for each player by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. **/ #line 92 "go-client.gob" void go_client_register_player (GoClient * self, GoPlayer * player) #line 232 "go-client.c" { GoClientClass *klass; #line 92 "go-client.gob" g_return_if_fail (self != NULL); #line 92 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 239 "go-client.c" klass = GO_CLIENT_GET_CLASS(self); if(klass->register_player) (*klass->register_player)(self,player); } #line 92 "go-client.gob" static void ___real_go_client_register_player (GoClient * self, GoPlayer * player) #line 248 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::register_player" { #line 94 "go-client.gob" g_ptr_array_add (self->players, player); if (self->compare_players_fn) { int i = self->players->len-2; while (i>=0 && self->compare_players_fn (player(self, i), player(self, i+1), self->compare_players_data) > 0) { gpointer tmp; tmp = self->players->pdata[i]; self->players->pdata[i] = self->players->pdata[i+1]; self->players->pdata[i+1] = tmp; --i; } } }} #line 271 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_unregister_player: * @self: a #GoClient object * @player: a #GoPlayer object * * A virtual method to unregister a player from the Client. * This is called once for each removed player by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. **/ #line 126 "go-client.gob" void go_client_unregister_player (GoClient * self, GoPlayer * player) #line 290 "go-client.c" { GoClientClass *klass; #line 126 "go-client.gob" g_return_if_fail (self != NULL); #line 126 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 297 "go-client.c" klass = GO_CLIENT_GET_CLASS(self); if(klass->unregister_player) (*klass->unregister_player)(self,player); } #line 126 "go-client.gob" static void ___real_go_client_unregister_player (GoClient * self, GoPlayer * player) #line 306 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::unregister_player" { #line 128 "go-client.gob" if (self->compare_players_fn) { g_ptr_array_remove (self->players, player); } else { g_ptr_array_remove_fast (self->players, player); } }} #line 318 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_player_count: * @self: a #GoClient object * * Determine the number of players in @self. * * Returns: the number of players. **/ #line 144 "go-client.gob" int go_client_player_count (GoClient * self) #line 332 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::player_count" #line 144 "go-client.gob" g_return_val_if_fail (self != NULL, (int )0); #line 144 "go-client.gob" g_return_val_if_fail (GO_IS_CLIENT (self), (int )0); #line 339 "go-client.c" { #line 146 "go-client.gob" return self->players->len; }} #line 345 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_player: * @self: a #GoClient object * @i: the player index * * Get player data from the database. * * Returns: player number @i. **/ #line 159 "go-client.gob" GoPlayer * go_client_player (GoClient * self, int i) #line 360 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::player" #line 159 "go-client.gob" g_return_val_if_fail (self != NULL, (GoPlayer * )0); #line 159 "go-client.gob" g_return_val_if_fail (GO_IS_CLIENT (self), (GoPlayer * )0); #line 367 "go-client.c" { #line 161 "go-client.gob" if (i<0 || i>=self->players->len) return NULL; return GO_PLAYER (g_ptr_array_index (self->players, i)); }} #line 374 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_foreach_player: * @self: a #GoClient object * @f: the function to iterate over the players * @data: an additional argument for @f * * Calls function @f for each of the client's players in turn, * using @data as the client_data argument. **/ #line 175 "go-client.gob" void go_client_foreach_player (GoClient * self, GoClientPlayerFunc f, void * data) #line 389 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::foreach_player" #line 175 "go-client.gob" g_return_if_fail (self != NULL); #line 175 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 396 "go-client.c" { #line 177 "go-client.gob" int i, n; n = self->players->len; for (i=0; icompare_players_fn = compare_players_fn; self->compare_players_data = client_data; redisplay_players (self); }} #line 440 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_register_game: * @self: a #GoClient object * @game: a #GoGame object * * A virtual method to register a game with the Client. This is * called exactly once for each game by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. **/ #line 221 "go-client.gob" void go_client_register_game (GoClient * self, GoGame * game) #line 459 "go-client.c" { GoClientClass *klass; #line 221 "go-client.gob" g_return_if_fail (self != NULL); #line 221 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 466 "go-client.c" klass = GO_CLIENT_GET_CLASS(self); if(klass->register_game) (*klass->register_game)(self,game); } #line 221 "go-client.gob" static void ___real_go_client_register_game (GoClient * self, GoGame * game) #line 475 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::register_game" { #line 223 "go-client.gob" g_ptr_array_add (self->games, game); }} #line 483 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_unregister_game: * @self: a #GoClient object * @game: a #GoGame object * * A virtual method to unregister a game from the Client. This is * called once for each removed game by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. **/ #line 240 "go-client.gob" void go_client_unregister_game (GoClient * self, GoGame * game) #line 502 "go-client.c" { GoClientClass *klass; #line 240 "go-client.gob" g_return_if_fail (self != NULL); #line 240 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 509 "go-client.c" klass = GO_CLIENT_GET_CLASS(self); if(klass->unregister_game) (*klass->unregister_game)(self,game); } #line 240 "go-client.gob" static void ___real_go_client_unregister_game (GoClient * self, GoGame * game) #line 518 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::unregister_game" { #line 242 "go-client.gob" g_ptr_array_remove_fast (self->games, game); }} #line 526 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_game_count: * @self: a #GoClient object * * Determine the number of games in @self. * * Returns: the number of games. **/ #line 254 "go-client.gob" int go_client_game_count (GoClient * self) #line 540 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::game_count" #line 254 "go-client.gob" g_return_val_if_fail (self != NULL, (int )0); #line 254 "go-client.gob" g_return_val_if_fail (GO_IS_CLIENT (self), (int )0); #line 547 "go-client.c" { #line 256 "go-client.gob" return self->games->len; }} #line 553 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_game: * @self: a #GoClient object * @i: the game index * * Get game data from the database. * * Returns: game number @i. **/ #line 269 "go-client.gob" GoGame * go_client_game (GoClient * self, int i) #line 568 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::game" #line 269 "go-client.gob" g_return_val_if_fail (self != NULL, (GoGame * )0); #line 269 "go-client.gob" g_return_val_if_fail (GO_IS_CLIENT (self), (GoGame * )0); #line 575 "go-client.c" { #line 271 "go-client.gob" if (i<0 || i>=self->games->len) return NULL; return GO_GAME (g_ptr_array_index (self->games, i)); }} #line 582 "go-client.c" #undef __GOB_FUNCTION__ /** * go_client_foreach_game: * @self: a #GoClient object * @f: the function to iterate over the games * @data: an additional argument for @f * * Calls function @f for each of the client's games in turn, * using @data as the client_data argument. **/ #line 285 "go-client.gob" void go_client_foreach_game (GoClient * self, GoClientGameFunc f, void * data) #line 597 "go-client.c" { #define __GOB_FUNCTION__ "Go:Client::foreach_game" #line 285 "go-client.gob" g_return_if_fail (self != NULL); #line 285 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 604 "go-client.c" { #line 287 "go-client.gob" int i, n; n = self->games->len; for (i=0; icompare_players_fn) { qsort_data.compare_players_fn = self->compare_players_fn; qsort_data.client_data = self->compare_players_data; qsort (self->players->pdata, self->players->len, sizeof (gpointer), qsort_cmp); } n = self->players->len; if (n == 0) { print_player (self, NULL, -1, 0); } else { for (i=0; igames->len; if (n == 0) { print_game (self, NULL, -1, 0); } else { for (i=0; igames->len; for (i=0; iprint_player) (*klass->print_player)(self,player,i,n); } /** * go_client_print_game: * @self: a #GoClient object * @game: a #GoGame object to print * @i: the position of the game to print * @n: the total number of games * * Print a game into a #GoClient object. This is called * foreach game everytime there is a change in the game list. * If the gamelist is empty, this function is called * as print_game(self, NULL, -1, 0). Subclasses should * clear the display in this case. * * This is a pure virtual class method of the #GoClient class. * Subclasses should override this in order to be notified * of changes in the game list. There should be no need to * call this function manually. **/ #line 411 "go-client.gob" void go_client_print_game (GoClient * self, GoGame * game, int i, int n) #line 801 "go-client.c" { GoClientClass *klass; #line 411 "go-client.gob" g_return_if_fail (self != NULL); #line 411 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 808 "go-client.c" klass = GO_CLIENT_GET_CLASS(self); if(klass->print_game) (*klass->print_game)(self,game,i,n); } /** * go_client_select_game: * @self: a #GoClient object * @g: a #GoGame object * @i: the index of @g * * Select game number @i from the #GoClient object and * try to make it visible on the screen. * This is a pure virtual class method of the #GoClient class. * Subclasses should override this in order to be notified * of changes in the game list. There should be no need to * call this function manually. **/ #line 427 "go-client.gob" void go_client_select_game (GoClient * self, GoGame * g, int i) #line 831 "go-client.c" { GoClientClass *klass; #line 427 "go-client.gob" g_return_if_fail (self != NULL); #line 427 "go-client.gob" g_return_if_fail (GO_IS_CLIENT (self)); #line 838 "go-client.c" klass = GO_CLIENT_GET_CLASS(self); if(klass->select_game) (*klass->select_game)(self,g,i); } #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_client_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))register_player)(); ((void (*)(void))unregister_player)(); ((void (*)(void))player_count)(); ((void (*)(void))player)(); ((void (*)(void))foreach_player)(); ((void (*)(void))sort_players)(); ((void (*)(void))register_game)(); ((void (*)(void))unregister_game)(); ((void (*)(void))game_count)(); ((void (*)(void))game)(); ((void (*)(void))foreach_game)(); ((void (*)(void))redisplay_players)(); ((void (*)(void))redisplay_games)(); ((void (*)(void))redisplay)(); ((void (*)(void))make_game_visible)(); ((void (*)(void))print_player)(); ((void (*)(void))print_game)(); ((void (*)(void))select_game)(); ___go_client_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-player-list.c0000644000175000017500000001770707344217045012142 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-player-list.h" #line 12 "go-player-list.gob" #ifdef HAVE_CONFIG_H # include #endif #include #include "go-player.h" #include "go.h" #line 24 "go-player-list.c" /* self casting macros */ #define SELF(x) GO_PLAYER_LIST(x) #define SELF_CONST(x) GO_PLAYER_LIST_CONST(x) #define IS_SELF(x) GO_IS_PLAYER_LIST(x) #define TYPE_SELF GO_TYPE_PLAYER_LIST #define SELF_CLASS(x) GO_PLAYER_LIST_CLASS(x) #define SELF_GET_CLASS(x) GO_PLAYER_LIST_GET_CLASS(x) /* self typedefs */ typedef GoPlayerList Self; typedef GoPlayerListClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void go_player_list_init (GoPlayerList * o) G_GNUC_UNUSED; static void go_player_list_class_init (GoPlayerListClass * c) G_GNUC_UNUSED; static void ___2_go_player_list_print_player (GoClient * obj, GoPlayer * p, int i, int n) G_GNUC_UNUSED; enum { ARG_0, ARG_CLIST }; /* pointer to the class of our parent */ static GoClientClass *parent_class = NULL; GtkType go_player_list_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoPlayerList", sizeof (GoPlayerList), sizeof (GoPlayerListClass), (GtkClassInitFunc) go_player_list_class_init, (GtkObjectInitFunc) go_player_list_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (go_client_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define new(args...) go_player_list_new(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static GtkObject * (* const new) (GoData * data, GtkCList * clist) = go_player_list_new; /* a macro for creating a new object of our type */ #define GET_NEW ((GoPlayerList *)gtk_type_new(go_player_list_get_type())) static void go_player_list_init (GoPlayerList * o) { #define __GOB_FUNCTION__ "Go:Player:List::init" return; o = NULL; } #undef __GOB_FUNCTION__ static void go_player_list_class_init (GoPlayerListClass * c) { #define __GOB_FUNCTION__ "Go:Player:List::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass*) c; #ifdef G_OBJECT_CLASS GObjectClass *g_object_class = (GObjectClass*) c; #endif /* G_OBJECT_CLASS */ GoClientClass *go_client_class = (GoClientClass *)c; parent_class = gtk_type_class (go_client_get_type ()); #line 57 "go-player-list.gob" go_client_class->print_player = ___2_go_player_list_print_player; #line 114 "go-player-list.c" gtk_object_add_arg_type("GoPlayerList::clist", GTK_TYPE_POINTER, GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT_ONLY, ARG_CLIST); gtk_object_class->get_arg = ___object_get_arg; gtk_object_class->set_arg = ___object_set_arg; return; c = NULL; gtk_object_class = NULL; #ifdef G_OBJECT_CLASS g_object_class = NULL; #endif /* G_OBJECT_CLASS */ } #undef __GOB_FUNCTION__ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Player:List::set_arg" { GoPlayerList *self; self = GO_PLAYER_LIST (object); switch (arg_id) { case ARG_CLIST: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({GtkCList * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((GtkCList * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 24 "go-player-list.gob" if (ARG != NULL) gtk_object_ref (GTK_OBJECT (ARG)); if (self->clist != NULL) gtk_object_unref (GTK_OBJECT (self->clist)); self->clist = ARG; #line 153 "go-player-list.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Player:List::get_arg" { GoPlayerList *self; self = GO_PLAYER_LIST (object); switch (arg_id) { case ARG_CLIST: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 24 "go-player-list.gob" ARG = self->clist; #line 182 "go-player-list.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ /** * go_player_list_new: * @data: a #GoData object * @clist: a #GtkCList widget to display the players in * * Allocate a new #GoPlayerList object and connect it to @data. * This function modifies the column attributes of @clist. * * Returns: a newly allocated #GoPlayerList object **/ #line 36 "go-player-list.gob" GtkObject * go_player_list_new (GoData * data, GtkCList * clist) #line 210 "go-player-list.c" { #define __GOB_FUNCTION__ "Go:Player:List::new" { #line 38 "go-player-list.gob" GtkObject *w; gtk_clist_set_column_auto_resize (clist, 0, TRUE); gtk_clist_set_column_auto_resize (clist, 2, TRUE); gtk_clist_set_column_auto_resize (clist, 3, TRUE); gtk_clist_set_column_auto_resize (clist, 4, TRUE); gtk_clist_set_column_auto_resize (clist, 5, TRUE); gtk_clist_set_column_justification (clist, 3, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 4, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 5, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 6, GTK_JUSTIFY_RIGHT); w = gtk_object_new (GO_TYPE_PLAYER_LIST, "clist", clist, NULL); go_data_add_client (data, GO_CLIENT(w)); return w; }} #line 233 "go-player-list.c" #undef __GOB_FUNCTION__ #line 57 "go-player-list.gob" static void ___2_go_player_list_print_player (GoClient * obj, GoPlayer * p, int i, int n) #line 239 "go-player-list.c" #define PARENT_HANDLER(___obj,___p,___i,___n) \ { if(GO_CLIENT_CLASS(parent_class)->print_player) \ (* GO_CLIENT_CLASS(parent_class)->print_player)(___obj,___p,___i,___n); } { #define __GOB_FUNCTION__ "Go:Player:List::print_player" { #line 59 "go-player-list.gob" GoPlayerList *self = GO_PLAYER_LIST (obj); GtkCList *cl = self->clist; char buffer [32]; if (i==0) gtk_clist_freeze (cl); while (cl->rows > n) gtk_clist_remove (cl, cl->rows-1); if (i<0) return; while (i >= cl->rows) { gchar *line [7] = { "", "", "", "", "", "", "" }; gtk_clist_append (cl, line); } gtk_clist_set_text (cl, i, 0, p->name); gtk_clist_set_text (cl, i, 1, p->token); gtk_clist_set_text (cl, i, 2, p->rank); g_snprintf (buffer, 32, "%d", go_data_player_game_count (GO_CLIENT(self)->data, p)); gtk_clist_set_text (cl, i, 3, buffer); g_snprintf (buffer, 32, "%d", go_data_player_win_count (GO_CLIENT(self)->data, p)); gtk_clist_set_text (cl, i, 4, buffer); if (go_data_player_component (GO_CLIENT(self)->data, p) == 0 && p->strength > -100) { snprint_strength (buffer, 32, p->strength); gtk_clist_set_text (cl, i, 5, buffer); g_snprintf (buffer, 32, "%6.2f", p->strength); gtk_clist_set_text (cl, i, 6, buffer); } else { gtk_clist_set_text (cl, i, 5, "--"); gtk_clist_set_text (cl, i, 6, "--"); } if (i == n-1) gtk_clist_thaw (cl); }} #line 281 "go-player-list.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_player_list_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))new)(); ___go_player_list_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-game-list.c0000644000175000017500000002057107344217045011550 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-game-list.h" #line 12 "go-game-list.gob" #ifdef HAVE_CONFIG_H # include #endif #include #include "go-game.h" #include "go.h" #line 24 "go-game-list.c" /* self casting macros */ #define SELF(x) GO_GAME_LIST(x) #define SELF_CONST(x) GO_GAME_LIST_CONST(x) #define IS_SELF(x) GO_IS_GAME_LIST(x) #define TYPE_SELF GO_TYPE_GAME_LIST #define SELF_CLASS(x) GO_GAME_LIST_CLASS(x) #define SELF_GET_CLASS(x) GO_GAME_LIST_GET_CLASS(x) /* self typedefs */ typedef GoGameList Self; typedef GoGameListClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void go_game_list_init (GoGameList * o) G_GNUC_UNUSED; static void go_game_list_class_init (GoGameListClass * c) G_GNUC_UNUSED; static void ___2_go_game_list_print_game (GoClient * obj, GoGame * g, int i, int n) G_GNUC_UNUSED; static void ___3_go_game_list_select_game (GoClient * obj, GoGame * g, int i) G_GNUC_UNUSED; enum { ARG_0, ARG_CLIST }; /* pointer to the class of our parent */ static GoClientClass *parent_class = NULL; GtkType go_game_list_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoGameList", sizeof (GoGameList), sizeof (GoGameListClass), (GtkClassInitFunc) go_game_list_class_init, (GtkObjectInitFunc) go_game_list_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (go_client_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define new(args...) go_game_list_new(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static GtkObject * (* const new) (GoData * data, GtkCList * clist) = go_game_list_new; /* a macro for creating a new object of our type */ #define GET_NEW ((GoGameList *)gtk_type_new(go_game_list_get_type())) static void go_game_list_init (GoGameList * o) { #define __GOB_FUNCTION__ "Go:Game:List::init" return; o = NULL; } #undef __GOB_FUNCTION__ static void go_game_list_class_init (GoGameListClass * c) { #define __GOB_FUNCTION__ "Go:Game:List::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass*) c; #ifdef G_OBJECT_CLASS GObjectClass *g_object_class = (GObjectClass*) c; #endif /* G_OBJECT_CLASS */ GoClientClass *go_client_class = (GoClientClass *)c; parent_class = gtk_type_class (go_client_get_type ()); #line 52 "go-game-list.gob" go_client_class->print_game = ___2_go_game_list_print_game; #line 95 "go-game-list.gob" go_client_class->select_game = ___3_go_game_list_select_game; #line 117 "go-game-list.c" gtk_object_add_arg_type("GoGameList::clist", GTK_TYPE_POINTER, GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT_ONLY, ARG_CLIST); gtk_object_class->get_arg = ___object_get_arg; gtk_object_class->set_arg = ___object_set_arg; return; c = NULL; gtk_object_class = NULL; #ifdef G_OBJECT_CLASS g_object_class = NULL; #endif /* G_OBJECT_CLASS */ } #undef __GOB_FUNCTION__ static void ___object_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Game:List::set_arg" { GoGameList *self; self = GO_GAME_LIST (object); switch (arg_id) { case ARG_CLIST: #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define ARG ({GtkCList * foo = GTK_VALUE_POINTER(*arg); foo; }) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define ARG ((GtkCList * )GTK_VALUE_POINTER(*arg)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ { #line 24 "go-game-list.gob" if (ARG != NULL) gtk_object_ref (GTK_OBJECT (ARG)); if (self->clist != NULL) gtk_object_unref (GTK_OBJECT (self->clist)); self->clist = ARG; #line 156 "go-game-list.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ static void ___object_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) #define __GOB_FUNCTION__ "Go:Game:List::get_arg" { GoGameList *self; self = GO_GAME_LIST (object); switch (arg_id) { case ARG_CLIST: #define ARG (GTK_VALUE_POINTER(*arg)) { #line 24 "go-game-list.gob" ARG = self->clist; #line 185 "go-game-list.c" } break; #undef ARG default: break; } return; self = NULL; arg = NULL; } #undef __GOB_FUNCTION__ /** * go_game_list_new: * @data: a #GoData object * @clist: a #GtkCList widget to display the games in * * Allocate a new #GoGameList object and connect it to @data. * This function modifies the column attributes of @clist. * * Returns: a newly allocated #GoGameList object **/ #line 36 "go-game-list.gob" GtkObject * go_game_list_new (GoData * data, GtkCList * clist) #line 213 "go-game-list.c" { #define __GOB_FUNCTION__ "Go:Game:List::new" { #line 38 "go-game-list.gob" GtkObject *w; gtk_clist_set_column_justification (clist, 3, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 4, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 5, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 6, GTK_JUSTIFY_CENTER); w = gtk_object_new (GO_TYPE_GAME_LIST, "clist", clist, NULL); go_data_add_client (data, GO_CLIENT(w)); return w; }} #line 231 "go-game-list.c" #undef __GOB_FUNCTION__ #line 52 "go-game-list.gob" static void ___2_go_game_list_print_game (GoClient * obj, GoGame * g, int i, int n) #line 237 "go-game-list.c" #define PARENT_HANDLER(___obj,___g,___i,___n) \ { if(GO_CLIENT_CLASS(parent_class)->print_game) \ (* GO_CLIENT_CLASS(parent_class)->print_game)(___obj,___g,___i,___n); } { #define __GOB_FUNCTION__ "Go:Game:List::print_game" { #line 54 "go-game-list.gob" GoGameList *self = GO_GAME_LIST (obj); GtkCList *cl = self->clist; char buffer [64]; if (i==0) gtk_clist_freeze (cl); while (cl->rows > n) gtk_clist_remove (cl, cl->rows-1); if (i<0) return; while (i >= cl->rows) { gchar *line [8] = { "", "", "", "", "", "", "", "" }; gtk_clist_append (cl, line); } if (g->date) { struct tm *loctime = localtime (&g->date); strftime (buffer, 64, "%x", loctime); gtk_clist_set_text (cl, i, 0, buffer); } else { gtk_clist_set_text (cl, i, 0, ""); } gtk_clist_set_text (cl, i, 1, g->black->token); gtk_clist_set_text (cl, i, 2, g->white->token); gtk_clist_set_text (cl, i, 3, board_to_str (g->board)); g_snprintf (buffer, 64, "%d", g->handicap); gtk_clist_set_text (cl, i, 4, buffer); if (g->with_jigo) { g_snprintf (buffer, 64, "%d", g->komi); } else { g_snprintf (buffer, 64, "%.1f", g->komi+0.5); } gtk_clist_set_text (cl, i, 5, buffer); gtk_clist_set_text (cl, i, 6, result_to_str (g->res)); if (g->probability >= 0) { g_snprintf (buffer, 64, "%4.2f", g->probability); gtk_clist_set_text (cl, i, 7, buffer); } else { gtk_clist_set_text (cl, i, 7, "--"); } if (i == n-1) gtk_clist_thaw (cl); }} #line 285 "go-game-list.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 95 "go-game-list.gob" static void ___3_go_game_list_select_game (GoClient * obj, GoGame * g, int i) #line 292 "go-game-list.c" #define PARENT_HANDLER(___obj,___g,___i) \ { if(GO_CLIENT_CLASS(parent_class)->select_game) \ (* GO_CLIENT_CLASS(parent_class)->select_game)(___obj,___g,___i); } { #define __GOB_FUNCTION__ "Go:Game:List::select_game" { #line 97 "go-game-list.gob" GoGameList *self = GO_GAME_LIST (obj); gtk_clist_moveto (self->clist, i, 0, 1, 0); }} #line 304 "go-game-list.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_game_list_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))new)(); ___go_game_list_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-history.c0000644000175000017500000003021607344217045011364 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-history.h" #line 11 "go-history.gob" #ifdef HAVE_CONFIG_H # include #endif #define SIZE_LIMIT 20 #line 22 "go-history.c" /* self casting macros */ #define SELF(x) GO_HISTORY(x) #define SELF_CONST(x) GO_HISTORY_CONST(x) #define IS_SELF(x) GO_IS_HISTORY(x) #define TYPE_SELF GO_TYPE_HISTORY #define SELF_CLASS(x) GO_HISTORY_CLASS(x) #define SELF_GET_CLASS(x) GO_HISTORY_GET_CLASS(x) /* self typedefs */ typedef GoHistory Self; typedef GoHistoryClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void go_history_init (GoHistory * o) G_GNUC_UNUSED; static void go_history_class_init (GoHistoryClass * c) G_GNUC_UNUSED; static void ___1_go_history_destroy (GtkObject * obj) G_GNUC_UNUSED; static void go_history_add_parameter (GoHistory * self, double * ptr) G_GNUC_UNUSED; static void go_history_remove_parameter (GoHistory * self, double * ptr) G_GNUC_UNUSED; typedef void (*___Sig1) (GoHistory *, gpointer , gpointer); static void ___marshal_Sig1 (GtkObject * object, GtkSignalFunc func, gpointer func_data, GtkArg * args) { ___Sig1 rfunc; rfunc = (___Sig1)func; (*rfunc)((GoHistory *)object, GTK_VALUE_POINTER(args[0]), func_data); } enum { ADD_PARAMETER_SIGNAL, REMOVE_PARAMETER_SIGNAL, LAST_SIGNAL }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GtkObjectClass *parent_class = NULL; GtkType go_history_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoHistory", sizeof (GoHistory), sizeof (GoHistoryClass), (GtkClassInitFunc) go_history_class_init, (GtkObjectInitFunc) go_history_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (gtk_object_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define new(args...) go_history_new(args) #define add_parameter(args...) go_history_add_parameter(args) #define remove_parameter(args...) go_history_remove_parameter(args) #define set_length(args...) go_history_set_length(args) #define increase_length(args...) go_history_increase_length(args) #define get_strength(args...) go_history_get_strength(args) #define probability(args...) go_history_probability(args) #define compensator(args...) go_history_compensator(args) #define write_back(args...) go_history_write_back(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static GtkObject * (* const new) (double * strength_ptr) = go_history_new; static void (* const add_parameter) (GoHistory * self, double * ptr) = go_history_add_parameter; static void (* const remove_parameter) (GoHistory * self, double * ptr) = go_history_remove_parameter; static void (* const set_length) (GoHistory * self, int n) = go_history_set_length; static void (* const increase_length) (GoHistory * self) = go_history_increase_length; static double (* const get_strength) (GoHistory * self, int i) = go_history_get_strength; static double (* const probability) (GoHistory * self) = go_history_probability; static double (* const compensator) (GoHistory * self) = go_history_compensator; static void (* const write_back) (GoHistory * self) = go_history_write_back; /* a macro for creating a new object of our type */ #define GET_NEW ((GoHistory *)gtk_type_new(go_history_get_type())) static void go_history_init (GoHistory * o) { #define __GOB_FUNCTION__ "Go:History::init" #line 11 "go-history.gob" o->n = 0; #line 133 "go-history.c" return; o = NULL; } #undef __GOB_FUNCTION__ static void go_history_class_init (GoHistoryClass * c) { #define __GOB_FUNCTION__ "Go:History::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass*) c; #ifdef G_OBJECT_CLASS GObjectClass *g_object_class = (GObjectClass*) c; #endif /* G_OBJECT_CLASS */ parent_class = gtk_type_class (gtk_object_get_type ()); object_signals[ADD_PARAMETER_SIGNAL] = gtk_signal_new ("add_parameter", (GtkSignalRunType)(GTK_RUN_LAST), GTK_CLASS_TYPE(gtk_object_class), GTK_SIGNAL_OFFSET (GoHistoryClass, add_parameter), ___marshal_Sig1, GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); if(sizeof(double * ) != sizeof(gpointer )) { g_error("go-history.gob line 55: Type mismatch of \"add_parameter\" signal signature"); } object_signals[REMOVE_PARAMETER_SIGNAL] = gtk_signal_new ("remove_parameter", (GtkSignalRunType)(GTK_RUN_LAST), GTK_CLASS_TYPE(gtk_object_class), GTK_SIGNAL_OFFSET (GoHistoryClass, remove_parameter), ___marshal_Sig1, GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); if(sizeof(double * ) != sizeof(gpointer )) { g_error("go-history.gob line 58: Type mismatch of \"remove_parameter\" signal signature"); } gtk_object_class_add_signals (gtk_object_class, object_signals, LAST_SIGNAL); #line 25 "go-history.gob" gtk_object_class->destroy = ___1_go_history_destroy; #line 177 "go-history.c" c->add_parameter = NULL; c->remove_parameter = NULL; return; c = NULL; gtk_object_class = NULL; #ifdef G_OBJECT_CLASS g_object_class = NULL; #endif /* G_OBJECT_CLASS */ } #undef __GOB_FUNCTION__ #line 25 "go-history.gob" static void ___1_go_history_destroy (GtkObject * obj) #line 194 "go-history.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:History::destroy" { #line 27 "go-history.gob" GoHistory *self = GO_HISTORY (obj); if (self->n > 0) remove_parameter (self, &self->s0); if (self->n >= SIZE_LIMIT) remove_parameter (self, &self->s1); }} #line 207 "go-history.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER /** * go_history_new: * @strength_ptr: a pointer to the player's strength value * * Allocate a new #GoHistory object to track the value at * @strength_ptr. The history length is set to %0. You * must call set_length() to increase it. * * Returns: a new #GoHistory object **/ #line 43 "go-history.gob" GtkObject * go_history_new (double * strength_ptr) #line 224 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::new" { #line 45 "go-history.gob" GoHistory *self = GET_NEW; self->current = strength_ptr; self->s0 = *strength_ptr; self->s1 = *strength_ptr; return (GtkObject *)self; }} #line 238 "go-history.c" #undef __GOB_FUNCTION__ #line 55 "go-history.gob" static void go_history_add_parameter (GoHistory * self, double * ptr) #line 244 "go-history.c" { #line 55 "go-history.gob" g_return_if_fail (self != NULL); #line 55 "go-history.gob" g_return_if_fail (GO_IS_HISTORY (self)); #line 250 "go-history.c" gtk_signal_emit (GTK_OBJECT (self), object_signals[ADD_PARAMETER_SIGNAL], (gpointer )ptr); } #line 58 "go-history.gob" static void go_history_remove_parameter (GoHistory * self, double * ptr) #line 259 "go-history.c" { #line 58 "go-history.gob" g_return_if_fail (self != NULL); #line 58 "go-history.gob" g_return_if_fail (GO_IS_HISTORY (self)); #line 265 "go-history.c" gtk_signal_emit (GTK_OBJECT (self), object_signals[REMOVE_PARAMETER_SIGNAL], (gpointer )ptr); } /** * go_history_set_length: * @self: a #GoHistory object * @n: the new history length * * Set the number of games in the record. **/ #line 68 "go-history.gob" void go_history_set_length (GoHistory * self, int n) #line 281 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::set_length" #line 68 "go-history.gob" g_return_if_fail (self != NULL); #line 68 "go-history.gob" g_return_if_fail (GO_IS_HISTORY (self)); #line 288 "go-history.c" { #line 70 "go-history.gob" g_assert (self->n==0 && n>0); add_parameter (self, &self->s0); if (n >= SIZE_LIMIT) add_parameter (self, &self->s1); self->n = n; }} #line 297 "go-history.c" #undef __GOB_FUNCTION__ /** * go_history_increase_length: * @self: a #GoHistory object * * Increase the number of games in the record by one. **/ #line 83 "go-history.gob" void go_history_increase_length (GoHistory * self) #line 309 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::increase_length" #line 83 "go-history.gob" g_return_if_fail (self != NULL); #line 83 "go-history.gob" g_return_if_fail (GO_IS_HISTORY (self)); #line 316 "go-history.c" { #line 85 "go-history.gob" if (self->n == 0) add_parameter (self, &self->s0); if (self->n == SIZE_LIMIT-1) add_parameter (self, &self->s1); self->n += 1; }} #line 324 "go-history.c" #undef __GOB_FUNCTION__ /** * go_history_get_strength: * @self: a #GoHistory object * @i: the game index * * Get the strength value recorded for game number @i. * * Returns: the player's strength **/ #line 100 "go-history.gob" double go_history_get_strength (GoHistory * self, int i) #line 339 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::get_strength" #line 100 "go-history.gob" g_return_val_if_fail (self != NULL, (double )0); #line 100 "go-history.gob" g_return_val_if_fail (GO_IS_HISTORY (self), (double )0); #line 346 "go-history.c" { #line 102 "go-history.gob" int x; g_assert (0 <= i && i < self->n); if (self->ns0; x = self->n/2; if (i>x) return self->s0; return self->s1 + i*(self->s0-self->s1)/x; }} #line 359 "go-history.c" #undef __GOB_FUNCTION__ /** * go_history_probability: * @self: a #GoHistory object * * Estimate the likelihood of the currently stored data. * * Returns: the probability **/ #line 121 "go-history.gob" double go_history_probability (GoHistory * self) #line 373 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::probability" #line 121 "go-history.gob" g_return_val_if_fail (self != NULL, (double )0); #line 121 "go-history.gob" g_return_val_if_fail (GO_IS_HISTORY (self), (double )0); #line 380 "go-history.c" { #line 123 "go-history.gob" return 1; }} #line 386 "go-history.c" #undef __GOB_FUNCTION__ /** * go_history_compensator: * @self: a #GoHistory object * * Return a typical mean value for the return value of probability(). * The result does not depend on the current parameter settings, * but it may depend on the number of games stored. * * Returns: the mean probability **/ #line 137 "go-history.gob" double go_history_compensator (GoHistory * self) #line 402 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::compensator" #line 137 "go-history.gob" g_return_val_if_fail (self != NULL, (double )0); #line 137 "go-history.gob" g_return_val_if_fail (GO_IS_HISTORY (self), (double )0); #line 409 "go-history.c" { #line 139 "go-history.gob" return 1; }} #line 415 "go-history.c" #undef __GOB_FUNCTION__ /** * go_history_write_back: * @self: a #GoHistory object * * Write back the current player strength from the #GoHistory object @self * to the original location. **/ #line 150 "go-history.gob" void go_history_write_back (GoHistory * self) #line 428 "go-history.c" { #define __GOB_FUNCTION__ "Go:History::write_back" #line 150 "go-history.gob" g_return_if_fail (self != NULL); #line 150 "go-history.gob" g_return_if_fail (GO_IS_HISTORY (self)); #line 435 "go-history.c" { #line 152 "go-history.gob" *self->current = self->s0; }} #line 441 "go-history.c" #undef __GOB_FUNCTION__ #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_history_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))new)(); ((void (*)(void))add_parameter)(); ((void (*)(void))remove_parameter)(); ((void (*)(void))set_length)(); ((void (*)(void))increase_length)(); ((void (*)(void))get_strength)(); ((void (*)(void))probability)(); ((void (*)(void))compensator)(); ((void (*)(void))write_back)(); ___go_history_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-strengths.c0000644000175000017500000013275207344217045011714 /* Generated by GOB (v1.0.10) on Sat Sep 1 19:43:01 2001 (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 1 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 10 #include "go-strengths.h" #line 11 "go-strengths.gob" #ifdef HAVE_CONFIG_H # include #endif #define _GNU_SOURCE 1 #include #include #include #include "go-player.h" #include "go-history.h" enum param_type { p_NORM, p_EXPNORM, p_CLAMP }; struct param { double *val; enum param_type type; const char *name; union { struct { double mu, ss; } norm; struct { double emu, ess; } expnorm; struct { double a, b; } clamp; } d; }; #define P_JIGO_19 0.02 #define P_JIGO_13 0.04 #define P_JIGO_9 0.09 static double jo9, jo13, jo19; static double Phi (double x) /* The distribution function of the standard normal distribution. */ { return (1+erf (x/M_SQRT2))/2; } static double jigo_offset (double p_jigo) /* Return the value x with Phi(+x)-Phi(-x) = P_JIGO. * P_JIGO is the jigo probability for even game. */ { double l, r, q; q = 0.5*(1+p_jigo); g_assert (0.5 <= q && q < Phi(1)); l = 0; r = 1; while (l+1e-6 < r) { double m; g_assert (Phi(l) <= q && q < Phi(r)); m = 0.5*(l+r); if (Phi(m) <= q) { l = m; } else { r = m; } } return l; } static double sqr (double x) { return x*x; } struct mod_fn_data { int n, k; double delta; }; struct llh_fn_data { GoStrengths *s; double value; }; #line 103 "go-strengths.c" /* self casting macros */ #define SELF(x) GO_STRENGTHS(x) #define SELF_CONST(x) GO_STRENGTHS_CONST(x) #define IS_SELF(x) GO_IS_STRENGTHS(x) #define TYPE_SELF GO_TYPE_STRENGTHS #define SELF_CLASS(x) GO_STRENGTHS_CLASS(x) #define SELF_GET_CLASS(x) GO_STRENGTHS_GET_CLASS(x) /* self typedefs */ typedef GoStrengths Self; typedef GoStrengthsClass SelfClass; /* GTK_CLASS_TYPE for 1.2<->1.3/2.0 GTK+ compatibility */ #ifndef GTK_CLASS_TYPE #define GTK_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) #endif /* GTK_CLASS_TYPE */ /* here are local prototypes */ static void go_strengths_class_init (GoStrengthsClass * class) G_GNUC_UNUSED; static void go_strengths_init (GoStrengths * self) G_GNUC_UNUSED; static void go_strengths_destroy_hist_cb (gpointer key, gpointer value, gpointer data) G_GNUC_UNUSED; static void ___4_go_strengths_destroy (GtkObject * obj) G_GNUC_UNUSED; static void go_strengths_add_const_params (GoStrengths * self) G_GNUC_UNUSED; static void go_strengths_remove_param (GoStrengths * self, double * val) G_GNUC_UNUSED; static void go_strengths_add_norm_param (GoStrengths * self, const char * name, double * val, double mu, double ss, gboolean rnd) G_GNUC_UNUSED; static void go_strengths_add_expnorm_param (GoStrengths * self, const char * name, double * val, double emu, double ess, gboolean rnd) G_GNUC_UNUSED; static void go_strengths_add_clamp_param (GoStrengths * self, const char * name, double * val, double a, double b, gboolean rnd) G_GNUC_UNUSED; static int go_strengths_parameters_count (GoStrengths * self) G_GNUC_UNUSED; static double * go_strengths_parameters_dump (GoStrengths * self) G_GNUC_UNUSED; static void go_strengths_parameters_restore (GoStrengths * self, double * mem) G_GNUC_UNUSED; static void go_strengths_randomize (struct param * p) G_GNUC_UNUSED; static void go_strengths_rand_cb (gpointer data, gpointer user_data) G_GNUC_UNUSED; static void go_strengths_randomize_all (GoStrengths * self) G_GNUC_UNUSED; static void go_strengths_modify (struct param * p, double d) G_GNUC_UNUSED; static void go_strengths_mod_cb (gpointer data, gpointer user_data) G_GNUC_UNUSED; static void go_strengths_randomize_some (GoStrengths * self) G_GNUC_UNUSED; static void go_strengths_modify_some (GoStrengths * self, double delta) G_GNUC_UNUSED; static void go_strengths_add_param_cb (GoHistory * h, double * param, gpointer data) G_GNUC_UNUSED; static void go_strengths_remove_param_cb (GoHistory * h, double * param, gpointer data) G_GNUC_UNUSED; static void ___18_go_strengths_register_player (GoClient * obj, GoPlayer * player) G_GNUC_UNUSED; static void ___19_go_strengths_unregister_player (GoClient * obj, GoPlayer * player) G_GNUC_UNUSED; static GoHistory * go_strengths_find_player_history (GoStrengths * self, GoPlayer * player) G_GNUC_UNUSED; static void ___1b_go_strengths_register_game (GoClient * obj, GoGame * game) G_GNUC_UNUSED; static double go_strengths_find_player_strength (GoStrengths * self, GoPlayer * player, GoGame * game) G_GNUC_UNUSED; static void go_strengths_write_hist_cb (gpointer key, gpointer value, gpointer data) G_GNUC_UNUSED; static void go_strengths_write_back_strengths (GoStrengths * self) G_GNUC_UNUSED; static double go_strengths_mu19 (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) G_GNUC_UNUSED; static double go_strengths_mu13 (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) G_GNUC_UNUSED; static double go_strengths_mu9 (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) G_GNUC_UNUSED; static double go_strengths_compensator (GoGame * g) G_GNUC_UNUSED; static double go_strengths_prob_diff (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board, int handicap, int kk) G_GNUC_UNUSED; static void go_strengths_llh_fn (GoClient * c, GoGame * g, int i, int n, void * client_data) G_GNUC_UNUSED; static double go_strengths_component_probability (GoStrengths * self) G_GNUC_UNUSED; /* pointer to the class of our parent */ static GoClientClass *parent_class = NULL; GtkType go_strengths_get_type (void) { static GtkType type = 0; if (type == 0) { static const GtkTypeInfo info = { "GoStrengths", sizeof (GoStrengths), sizeof (GoStrengthsClass), (GtkClassInitFunc) go_strengths_class_init, (GtkObjectInitFunc) go_strengths_init, /* reserved_1 */ NULL, /* reserved_2 */ NULL, (GtkClassInitFunc) NULL }; type = gtk_type_unique (go_client_get_type(), &info); } return type; } /* Short form macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define destroy_hist_cb(args...) go_strengths_destroy_hist_cb(args) #define add_const_params(args...) go_strengths_add_const_params(args) #define new(args...) go_strengths_new(args) #define remove_param(args...) go_strengths_remove_param(args) #define add_norm_param(args...) go_strengths_add_norm_param(args) #define add_expnorm_param(args...) go_strengths_add_expnorm_param(args) #define add_clamp_param(args...) go_strengths_add_clamp_param(args) #define parameters_print(args...) go_strengths_parameters_print(args) #define parameters_count(args...) go_strengths_parameters_count(args) #define parameters_dump(args...) go_strengths_parameters_dump(args) #define parameters_restore(args...) go_strengths_parameters_restore(args) #define randomize(args...) go_strengths_randomize(args) #define rand_cb(args...) go_strengths_rand_cb(args) #define randomize_all(args...) go_strengths_randomize_all(args) #define modify(args...) go_strengths_modify(args) #define mod_cb(args...) go_strengths_mod_cb(args) #define randomize_some(args...) go_strengths_randomize_some(args) #define modify_some(args...) go_strengths_modify_some(args) #define add_param_cb(args...) go_strengths_add_param_cb(args) #define remove_param_cb(args...) go_strengths_remove_param_cb(args) #define find_player_history(args...) go_strengths_find_player_history(args) #define find_player_strength(args...) go_strengths_find_player_strength(args) #define write_hist_cb(args...) go_strengths_write_hist_cb(args) #define write_back_strengths(args...) go_strengths_write_back_strengths(args) #define mu19(args...) go_strengths_mu19(args) #define mu13(args...) go_strengths_mu13(args) #define mu9(args...) go_strengths_mu9(args) #define probability(args...) go_strengths_probability(args) #define compensator(args...) go_strengths_compensator(args) #define prob_diff(args...) go_strengths_prob_diff(args) #define find_handicap(args...) go_strengths_find_handicap(args) #define find_komi(args...) go_strengths_find_komi(args) #define llh_fn(args...) go_strengths_llh_fn(args) #define component_probability(args...) go_strengths_component_probability(args) #define optimize(args...) go_strengths_optimize(args) #define check_preconditions(args...) go_strengths_check_preconditions(args) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* Short form pointers */ static void (* const destroy_hist_cb) (gpointer key, gpointer value, gpointer data) = go_strengths_destroy_hist_cb; static void (* const add_const_params) (GoStrengths * self) = go_strengths_add_const_params; static GtkObject * (* const new) (GoData * data, gboolean optimize_constants) = go_strengths_new; static void (* const remove_param) (GoStrengths * self, double * val) = go_strengths_remove_param; static void (* const add_norm_param) (GoStrengths * self, const char * name, double * val, double mu, double ss, gboolean rnd) = go_strengths_add_norm_param; static void (* const add_expnorm_param) (GoStrengths * self, const char * name, double * val, double emu, double ess, gboolean rnd) = go_strengths_add_expnorm_param; static void (* const add_clamp_param) (GoStrengths * self, const char * name, double * val, double a, double b, gboolean rnd) = go_strengths_add_clamp_param; static void (* const parameters_print) (GoStrengths * self) = go_strengths_parameters_print; static int (* const parameters_count) (GoStrengths * self) = go_strengths_parameters_count; static double * (* const parameters_dump) (GoStrengths * self) = go_strengths_parameters_dump; static void (* const parameters_restore) (GoStrengths * self, double * mem) = go_strengths_parameters_restore; static void (* const randomize) (struct param * p) = go_strengths_randomize; static void (* const rand_cb) (gpointer data, gpointer user_data) = go_strengths_rand_cb; static void (* const randomize_all) (GoStrengths * self) = go_strengths_randomize_all; static void (* const modify) (struct param * p, double d) = go_strengths_modify; static void (* const mod_cb) (gpointer data, gpointer user_data) = go_strengths_mod_cb; static void (* const randomize_some) (GoStrengths * self) = go_strengths_randomize_some; static void (* const modify_some) (GoStrengths * self, double delta) = go_strengths_modify_some; static void (* const add_param_cb) (GoHistory * h, double * param, gpointer data) = go_strengths_add_param_cb; static void (* const remove_param_cb) (GoHistory * h, double * param, gpointer data) = go_strengths_remove_param_cb; static GoHistory * (* const find_player_history) (GoStrengths * self, GoPlayer * player) = go_strengths_find_player_history; static double (* const find_player_strength) (GoStrengths * self, GoPlayer * player, GoGame * game) = go_strengths_find_player_strength; static void (* const write_hist_cb) (gpointer key, gpointer value, gpointer data) = go_strengths_write_hist_cb; static void (* const write_back_strengths) (GoStrengths * self) = go_strengths_write_back_strengths; static double (* const mu19) (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) = go_strengths_mu19; static double (* const mu13) (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) = go_strengths_mu13; static double (* const mu9) (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) = go_strengths_mu9; static double (* const probability) (GoStrengths * self, GoGame * g) = go_strengths_probability; static double (* const compensator) (GoGame * g) = go_strengths_compensator; static double (* const prob_diff) (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board, int handicap, int kk) = go_strengths_prob_diff; static int (* const find_handicap) (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board) = go_strengths_find_handicap; static double (* const find_komi) (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board, int hc) = go_strengths_find_komi; static void (* const llh_fn) (GoClient * c, GoGame * g, int i, int n, void * client_data) = go_strengths_llh_fn; static double (* const component_probability) (GoStrengths * self) = go_strengths_component_probability; static void (* const optimize) (GoStrengths * self) = go_strengths_optimize; static const char * (* const check_preconditions) (GoStrengths * self) = go_strengths_check_preconditions; /* a macro for creating a new object of our type */ #define GET_NEW ((GoStrengths *)gtk_type_new(go_strengths_get_type())) #line 120 "go-strengths.gob" static void go_strengths_class_init (GoStrengthsClass * class) #line 269 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::class_init" GtkObjectClass *gtk_object_class = (GtkObjectClass *)class; GoClientClass *go_client_class = (GoClientClass *)class; parent_class = gtk_type_class (go_client_get_type ()); #line 154 "go-strengths.gob" gtk_object_class->destroy = ___4_go_strengths_destroy; #line 439 "go-strengths.gob" go_client_class->register_player = ___18_go_strengths_register_player; #line 457 "go-strengths.gob" go_client_class->unregister_player = ___19_go_strengths_unregister_player; #line 477 "go-strengths.gob" go_client_class->register_game = ___1b_go_strengths_register_game; #line 285 "go-strengths.c" { #line 120 "go-strengths.gob" jo9 = jigo_offset (P_JIGO_9); jo13 = jigo_offset (P_JIGO_13); jo19 = jigo_offset (P_JIGO_19); #line 293 "go-strengths.c" } return; class = NULL; } #undef __GOB_FUNCTION__ #line 126 "go-strengths.gob" static void go_strengths_init (GoStrengths * self) #line 302 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::init" #line 11 "go-strengths.gob" self->optimize_constants = FALSE; #line 307 "go-strengths.c" #line 11 "go-strengths.gob" self->test_game = NULL; #line 310 "go-strengths.c" { #line 126 "go-strengths.gob" self->params = NULL; /* TODO: add better values here */ self->s19 = 0.5; self->h19 = 1; self->k19 = 10; self->e19 = 5; self->s13 = 2; self->h13 = 2.6; self->k13 = 11.6; self->e13 = 3.75; self->s9 = 7.4; self->h9 = 5; self->k9 = 7.9; self->e9 = 2; self->histories = g_hash_table_new (NULL, NULL); #line 334 "go-strengths.c" } return; self = NULL; } #undef __GOB_FUNCTION__ #line 148 "go-strengths.gob" static void go_strengths_destroy_hist_cb (gpointer key, gpointer value, gpointer data) #line 346 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::destroy_hist_cb" { #line 150 "go-strengths.gob" gtk_object_unref (GTK_OBJECT (value)); }} #line 354 "go-strengths.c" #undef __GOB_FUNCTION__ #line 154 "go-strengths.gob" static void ___4_go_strengths_destroy (GtkObject * obj) #line 360 "go-strengths.c" #define PARENT_HANDLER(___obj) \ { if(GTK_OBJECT_CLASS(parent_class)->destroy) \ (* GTK_OBJECT_CLASS(parent_class)->destroy)(___obj); } { #define __GOB_FUNCTION__ "Go:Strengths::destroy" { #line 156 "go-strengths.gob" GoStrengths *self = GO_STRENGTHS (obj); if (self->test_game) gtk_object_destroy (GTK_OBJECT (self->test_game)); g_hash_table_foreach (self->histories, destroy_hist_cb, NULL); g_hash_table_destroy (self->histories); while (self->params) { GSList *head; head = self->params; self->params = head->next; g_free (head->data); g_slist_free_1 (head); } PARENT_HANDLER (obj); }} #line 387 "go-strengths.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 176 "go-strengths.gob" static void go_strengths_add_const_params (GoStrengths * self) #line 394 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::add_const_params" #line 176 "go-strengths.gob" g_return_if_fail (self != NULL); #line 176 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 401 "go-strengths.c" { #line 178 "go-strengths.gob" // add_expnorm_param (self, "s19", &self->s19, 0, 1, FALSE); // add_expnorm_param (self, "s13", &self->s13, 0.69, 1, FALSE); add_norm_param (self, "h13", &self->h13, 2.6, 1, FALSE); add_norm_param (self, "k13", &self->k13, 11.6, 1, FALSE); add_norm_param (self, "e13", &self->e13, 3.75, 1, FALSE); add_expnorm_param (self, "s9", &self->s9, 2, 1, FALSE); add_norm_param (self, "k9", &self->k9, 7.9, 1, FALSE); add_norm_param (self, "e9", &self->e9, 2, 1, FALSE); self->optimize_constants = TRUE; }} #line 418 "go-strengths.c" #undef __GOB_FUNCTION__ /** * go_strengths_new: * @data: a #GoData object * @optimize_constants: try to estimate some internal constants, too. * This needs a lot of game data to give reasonable results. * * Allocate a new #GoStrength object and connect it to @data. * * Returns: the new object. **/ #line 203 "go-strengths.gob" GtkObject * go_strengths_new (GoData * data, gboolean optimize_constants) #line 434 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::new" { #line 205 "go-strengths.gob" GoStrengths *w; w = GET_NEW; go_data_add_client (data, GO_CLIENT(w)); if (optimize_constants) add_const_params (w); return GTK_OBJECT (w); }} #line 447 "go-strengths.c" #undef __GOB_FUNCTION__ #line 218 "go-strengths.gob" static void go_strengths_remove_param (GoStrengths * self, double * val) #line 453 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::remove_param" #line 218 "go-strengths.gob" g_return_if_fail (self != NULL); #line 218 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 460 "go-strengths.c" { #line 220 "go-strengths.gob" GSList *node = self->params; while (node) { struct param *p = node->data; if (p->val == val) break; node = node->next; } g_assert (node); self->params = g_slist_remove_link (self->params, node); g_free (node->data); g_slist_free_1 (node); }} #line 476 "go-strengths.c" #undef __GOB_FUNCTION__ #line 234 "go-strengths.gob" static void go_strengths_add_norm_param (GoStrengths * self, const char * name, double * val, double mu, double ss, gboolean rnd) #line 482 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::add_norm_param" #line 234 "go-strengths.gob" g_return_if_fail (self != NULL); #line 234 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 489 "go-strengths.c" { #line 237 "go-strengths.gob" struct param *p = g_new (struct param, 1); g_assert (ss > 0); p->val = val; p->type = p_NORM; p->name = name; p->d.norm.mu = mu; p->d.norm.ss = ss; self->params = g_slist_append (self->params, p); if (rnd) randomize (p); }} #line 504 "go-strengths.c" #undef __GOB_FUNCTION__ #line 250 "go-strengths.gob" static void go_strengths_add_expnorm_param (GoStrengths * self, const char * name, double * val, double emu, double ess, gboolean rnd) #line 510 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::add_expnorm_param" #line 250 "go-strengths.gob" g_return_if_fail (self != NULL); #line 250 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 517 "go-strengths.c" { #line 253 "go-strengths.gob" struct param *p = g_new (struct param, 1); g_assert (ess > 0); p->val = val; p->type = p_EXPNORM; p->name = name; p->d.expnorm.emu = emu; p->d.expnorm.ess = ess; self->params = g_slist_append (self->params, p); if (rnd) randomize (p); }} #line 532 "go-strengths.c" #undef __GOB_FUNCTION__ #line 266 "go-strengths.gob" static void go_strengths_add_clamp_param (GoStrengths * self, const char * name, double * val, double a, double b, gboolean rnd) #line 538 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::add_clamp_param" #line 266 "go-strengths.gob" g_return_if_fail (self != NULL); #line 266 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 545 "go-strengths.c" { #line 269 "go-strengths.gob" struct param *p = g_new (struct param, 1); g_assert (b > a); p->val = val; p->type = p_CLAMP; p->name = name; p->d.clamp.a = a; p->d.clamp.b = b; self->params = g_slist_append (self->params, p); if (rnd) randomize (p); }} #line 560 "go-strengths.c" #undef __GOB_FUNCTION__ #line 282 "go-strengths.gob" void go_strengths_parameters_print (GoStrengths * self) #line 566 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::parameters_print" #line 282 "go-strengths.gob" g_return_if_fail (self != NULL); #line 282 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 573 "go-strengths.c" { #line 284 "go-strengths.gob" GSList *l; printf ("%d parameters total\n", g_slist_length (self->params)); for (l=self->params; l; l=l->next) { if (((struct param *)l->data)->name) { printf ("param %s = %g\n", ((struct param *)l->data)->name, *((struct param *)l->data)->val); } } }} #line 588 "go-strengths.c" #undef __GOB_FUNCTION__ #line 297 "go-strengths.gob" static int go_strengths_parameters_count (GoStrengths * self) #line 594 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::parameters_count" #line 297 "go-strengths.gob" g_return_val_if_fail (self != NULL, (int )0); #line 297 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (int )0); #line 601 "go-strengths.c" { #line 299 "go-strengths.gob" return g_slist_length (self->params); }} #line 607 "go-strengths.c" #undef __GOB_FUNCTION__ #line 303 "go-strengths.gob" static double * go_strengths_parameters_dump (GoStrengths * self) #line 613 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::parameters_dump" #line 303 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double * )0); #line 303 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double * )0); #line 620 "go-strengths.c" { #line 305 "go-strengths.gob" GSList *l; double *mem; int i, n; n = g_slist_length (self->params); mem = g_new (double, n); for (l=self->params, i=0; l; l=l->next,++i) { mem[i] = *((struct param *)l->data)->val; } return mem; }} #line 636 "go-strengths.c" #undef __GOB_FUNCTION__ #line 319 "go-strengths.gob" static void go_strengths_parameters_restore (GoStrengths * self, double * mem) #line 642 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::parameters_restore" #line 319 "go-strengths.gob" g_return_if_fail (self != NULL); #line 319 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 649 "go-strengths.c" { #line 321 "go-strengths.gob" GSList *l; int i; for (l=self->params, i=0; l; l=l->next,++i) { *((struct param *)l->data)->val = mem[i]; } g_free (mem); }} #line 661 "go-strengths.c" #undef __GOB_FUNCTION__ #line 331 "go-strengths.gob" static void go_strengths_randomize (struct param * p) #line 667 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::randomize" { #line 333 "go-strengths.gob" switch (p->type) { case p_NORM: *p->val = jvrand_normal (p->d.norm.mu, p->d.norm.ss); break; case p_EXPNORM: *p->val = exp (jvrand_normal (p->d.expnorm.emu, p->d.expnorm.ess)); break; case p_CLAMP: *p->val = jvrand_uniform (p->d.clamp.a, p->d.clamp.b); break; default: g_assert_not_reached (); } }} #line 687 "go-strengths.c" #undef __GOB_FUNCTION__ #line 349 "go-strengths.gob" static void go_strengths_rand_cb (gpointer data, gpointer user_data) #line 693 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::rand_cb" { #line 351 "go-strengths.gob" randomize (data); }} #line 701 "go-strengths.c" #undef __GOB_FUNCTION__ #line 355 "go-strengths.gob" static void go_strengths_randomize_all (GoStrengths * self) #line 707 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::randomize_all" #line 355 "go-strengths.gob" g_return_if_fail (self != NULL); #line 355 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 714 "go-strengths.c" { #line 357 "go-strengths.gob" g_slist_foreach (self->params, rand_cb, NULL); }} #line 720 "go-strengths.c" #undef __GOB_FUNCTION__ #line 361 "go-strengths.gob" static void go_strengths_modify (struct param * p, double d) #line 726 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::modify" { #line 363 "go-strengths.gob" double x; switch (p->type) { case p_NORM: *p->val += jvrand_normal (0, d*p->d.norm.ss); break; case p_EXPNORM: *p->val *= exp (jvrand_normal (0, d*p->d.expnorm.ess)); break; case p_CLAMP: x = *p->val + jvrand_normal (0, d*(p->d.clamp.b-p->d.clamp.a)); *p->val = CLAMP (x, p->d.clamp.a, p->d.clamp.b); break; default: g_assert_not_reached (); } }} #line 749 "go-strengths.c" #undef __GOB_FUNCTION__ #line 382 "go-strengths.gob" static void go_strengths_mod_cb (gpointer data, gpointer user_data) #line 755 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::mod_cb" { #line 384 "go-strengths.gob" struct mod_fn_data *mdata = user_data; double x; x = mdata->k / (double)mdata->n; mdata->n -= 1; if (jvrand_uniform (0,1) < x) return; if (mdata->delta <= 0) { randomize (data); } else { modify (data, mdata->delta); } mdata->k -= 1; }} #line 774 "go-strengths.c" #undef __GOB_FUNCTION__ #line 399 "go-strengths.gob" static void go_strengths_randomize_some (GoStrengths * self) #line 780 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::randomize_some" #line 399 "go-strengths.gob" g_return_if_fail (self != NULL); #line 399 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 787 "go-strengths.c" { #line 401 "go-strengths.gob" struct mod_fn_data data; data.n = parameters_count (self); data.k = 1 + jvrand_poisson (1); data.delta = -1; g_slist_foreach (self->params, mod_cb, &data); }} #line 798 "go-strengths.c" #undef __GOB_FUNCTION__ #line 410 "go-strengths.gob" static void go_strengths_modify_some (GoStrengths * self, double delta) #line 804 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::modify_some" #line 410 "go-strengths.gob" g_return_if_fail (self != NULL); #line 410 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 811 "go-strengths.c" { #line 412 "go-strengths.gob" struct mod_fn_data data; data.n = parameters_count (self); data.k = 1 + jvrand_poisson (1); data.delta = delta; g_slist_foreach (self->params, mod_cb, &data); }} #line 822 "go-strengths.c" #undef __GOB_FUNCTION__ #line 425 "go-strengths.gob" static void go_strengths_add_param_cb (GoHistory * h, double * param, gpointer data) #line 828 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::add_param_cb" { #line 427 "go-strengths.gob" GoStrengths *self = GO_STRENGTHS (data); add_clamp_param (self, NULL, param, -45, 9, FALSE); }} #line 837 "go-strengths.c" #undef __GOB_FUNCTION__ #line 432 "go-strengths.gob" static void go_strengths_remove_param_cb (GoHistory * h, double * param, gpointer data) #line 843 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::remove_param_cb" { #line 434 "go-strengths.gob" GoStrengths *self = GO_STRENGTHS (data); remove_param (self, param); }} #line 852 "go-strengths.c" #undef __GOB_FUNCTION__ #line 439 "go-strengths.gob" static void ___18_go_strengths_register_player (GoClient * obj, GoPlayer * player) #line 858 "go-strengths.c" #define PARENT_HANDLER(___obj,___player) \ { if(GO_CLIENT_CLASS(parent_class)->register_player) \ (* GO_CLIENT_CLASS(parent_class)->register_player)(___obj,___player); } { #define __GOB_FUNCTION__ "Go:Strengths::register_player" { #line 441 "go-strengths.gob" GoStrengths *self = GO_STRENGTHS (obj); if (! player->rank) { GtkObject *h = go_history_new (&player->strength); gtk_signal_connect (h, GO_HISTORY_SIGNAL_ADD_PARAMETER (add_param_cb), self); gtk_signal_connect (h, GO_HISTORY_SIGNAL_REMOVE_PARAMETER (remove_param_cb), self); g_hash_table_insert (self->histories, player, h); } PARENT_HANDLER (obj, player); }} #line 881 "go-strengths.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 457 "go-strengths.gob" static void ___19_go_strengths_unregister_player (GoClient * obj, GoPlayer * player) #line 888 "go-strengths.c" #define PARENT_HANDLER(___obj,___player) \ { if(GO_CLIENT_CLASS(parent_class)->unregister_player) \ (* GO_CLIENT_CLASS(parent_class)->unregister_player)(___obj,___player); } { #define __GOB_FUNCTION__ "Go:Strengths::unregister_player" { #line 459 "go-strengths.gob" GoStrengths *self = GO_STRENGTHS (obj); GoHistory *h = find_player_history (self, player); if (h) { gtk_object_destroy (GTK_OBJECT (h)); g_hash_table_remove (self->histories, player); } PARENT_HANDLER (obj, player); }} #line 907 "go-strengths.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 471 "go-strengths.gob" static GoHistory * go_strengths_find_player_history (GoStrengths * self, GoPlayer * player) #line 914 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::find_player_history" #line 471 "go-strengths.gob" g_return_val_if_fail (self != NULL, (GoHistory * )0); #line 471 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (GoHistory * )0); #line 921 "go-strengths.c" { #line 473 "go-strengths.gob" return g_hash_table_lookup (self->histories, player); }} #line 927 "go-strengths.c" #undef __GOB_FUNCTION__ #line 477 "go-strengths.gob" static void ___1b_go_strengths_register_game (GoClient * obj, GoGame * game) #line 933 "go-strengths.c" #define PARENT_HANDLER(___obj,___game) \ { if(GO_CLIENT_CLASS(parent_class)->register_game) \ (* GO_CLIENT_CLASS(parent_class)->register_game)(___obj,___game); } { #define __GOB_FUNCTION__ "Go:Strengths::register_game" { #line 479 "go-strengths.gob" GoStrengths *self = GO_STRENGTHS (obj); GoGame *g = GO_GAME (game); GoHistory *h; h = find_player_history (self, g->black); if (h) go_history_increase_length (h); h = find_player_history (self, g->white); if (h) go_history_increase_length (h); PARENT_HANDLER (obj, game); }} #line 953 "go-strengths.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 492 "go-strengths.gob" static double go_strengths_find_player_strength (GoStrengths * self, GoPlayer * player, GoGame * game) #line 960 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::find_player_strength" #line 492 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 492 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 967 "go-strengths.c" { #line 494 "go-strengths.gob" GoHistory *h; int i; h = find_player_history (self, player); if (GO_GAME(game)->fake || ! h) return ((GoPlayer *)player)->strength; i = go_data_player_game_index (((GoClient *)self)->data, player, game); return go_history_get_strength (h, i); }} #line 979 "go-strengths.c" #undef __GOB_FUNCTION__ #line 504 "go-strengths.gob" static void go_strengths_write_hist_cb (gpointer key, gpointer value, gpointer data) #line 985 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::write_hist_cb" { #line 506 "go-strengths.gob" go_history_write_back (GO_HISTORY (value)); }} #line 993 "go-strengths.c" #undef __GOB_FUNCTION__ #line 510 "go-strengths.gob" static void go_strengths_write_back_strengths (GoStrengths * self) #line 999 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::write_back_strengths" #line 510 "go-strengths.gob" g_return_if_fail (self != NULL); #line 510 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 1006 "go-strengths.c" { #line 512 "go-strengths.gob" g_hash_table_foreach (self->histories, write_hist_cb, NULL); }} #line 1012 "go-strengths.c" #undef __GOB_FUNCTION__ /** * go_strengths_mu19: * @strength_b: strength value of black player * @strength_w: strength value of white player * @handicap: number of handicap stones * @komi: amount of komi * * Calculate the corrected strength difference for games on a 19x19 board. * * Returns: the corrected strength difference measured in player grades. * Positive values indicate, that the game is in favour of black. **/ #line 532 "go-strengths.gob" static double go_strengths_mu19 (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) #line 1030 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::mu19" #line 532 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 532 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1037 "go-strengths.c" { #line 534 "go-strengths.gob" double h = self->h19; double k = self->k19; double e = self->e19; double x; x = strength_b - strength_w; x += h*(handicap>0 ? handicap-1 : 0); x -= h * (komi-e)/k; return x; }} #line 1051 "go-strengths.c" #undef __GOB_FUNCTION__ /** * go_strengths_mu13: * @strength_b: strength value of black player * @strength_w: strength value of white player * @handicap: number of handicap stones * @komi: amount of komi * * Calculate the corrected strength difference for games on a 13x13 board. * * Returns: the corrected strength difference measured in player grades. * Positive values indicate, that the game is in favour of black. **/ #line 558 "go-strengths.gob" static double go_strengths_mu13 (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) #line 1069 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::mu13" #line 558 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 558 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1076 "go-strengths.c" { #line 560 "go-strengths.gob" double h = self->h13; double k = self->k13; double e = self->e13; double x; x = strength_b - strength_w; x += h*(handicap>0 ? handicap-1 : 0); x -= h * (komi-e)/k; return x; }} #line 1090 "go-strengths.c" #undef __GOB_FUNCTION__ /** * go_strengths_mu9: * @strength_b: strength value of black player * @strength_w: strength value of white player * @handicap: number of handicap stones * @komi: amount of komi * * Calculate the corrected strength difference for games on a 9x9 board. * * Returns: the corrected strength difference measured in player grades. * Positive values indicate, that the game is in favour of black. **/ #line 584 "go-strengths.gob" static double go_strengths_mu9 (GoStrengths * self, double strength_b, double strength_w, int handicap, int komi) #line 1108 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::mu9" #line 584 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 584 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1115 "go-strengths.c" { #line 586 "go-strengths.gob" double h = self->h9; double k = self->k9; double e = self->e9; double x; x = strength_b - strength_w; x += h*(handicap>0 ? handicap-1 : 0); x -= h * (komi-e)/k; return x; }} #line 1129 "go-strengths.c" #undef __GOB_FUNCTION__ /** * go_strengths_probability: * @self: a #GoStrengths object * @g: a #GoGame to evaluate * * Use the player data from the #GoStrengths object @self, * to assign a probability to the outcome of game @g. * This modifies the g->probability field. * * Returns: the probability that the given outcome of @g occurs **/ #line 609 "go-strengths.gob" double go_strengths_probability (GoStrengths * self, GoGame * g) #line 1146 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::probability" #line 609 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 609 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1153 "go-strengths.c" { #line 611 "go-strengths.gob" double strength_b, strength_w; int handicap, komi; double mu, sigma, jo, p; strength_b = find_player_strength (self, g->black, g); strength_w = find_player_strength (self, g->white, g); handicap = g->handicap; komi = g->komi; /* avoid compiler warnings */ mu = sigma = jo = p = 0; switch (g->board) { case b19: mu = mu19 (self, strength_b, strength_w, handicap, komi); sigma = self->s19; jo = jo19; break; case b13: mu = mu13 (self, strength_b, strength_w, handicap, komi); sigma = self->s13; jo = jo13; break; case b9: mu = mu9 (self, strength_b, strength_w, handicap, komi); sigma = self->s9; jo = jo9; break; default: g_assert_not_reached (); } switch (g->res) { case res_BLACK: p = 1 - Phi ((jo-mu)/sigma); break; case res_WHITE: if (g->with_jigo) { p = Phi ((-jo-mu)/sigma); } else { p = Phi ((jo-mu)/sigma); } break; case res_JIGO: if (g->with_jigo) { p = Phi ((jo-mu)/sigma) - Phi ((-jo-mu)/sigma); } else { g_assert_not_reached (); } break; default: g_assert_not_reached (); } g->probability = p; return p; }} #line 1214 "go-strengths.c" #undef __GOB_FUNCTION__ #line 670 "go-strengths.gob" static double go_strengths_compensator (GoGame * g) #line 1220 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::compensator" { #line 672 "go-strengths.gob" double q = 0; if (g->with_jigo) { switch (g->board) { case b19: q = 2*sqr(0.5*(1-P_JIGO_19)) + sqr(P_JIGO_19); break; case b13: q = 2*sqr(0.5*(1-P_JIGO_13)) + sqr(P_JIGO_13); break; case b9: q = 2*sqr(0.5*(1-P_JIGO_9)) + sqr(P_JIGO_9); break; } } else { switch (g->board) { case b19: q = sqr(0.5*(1-P_JIGO_19)) + sqr(0.5*(1+P_JIGO_19)); break; case b13: q = sqr(0.5*(1-P_JIGO_13)) + sqr(0.5*(1+P_JIGO_13)); break; case b9: q = sqr(0.5*(1-P_JIGO_9)) + sqr(0.5*(1+P_JIGO_9)); break; } } return q; }} #line 1255 "go-strengths.c" #undef __GOB_FUNCTION__ #line 703 "go-strengths.gob" static double go_strengths_prob_diff (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board, int handicap, int kk) #line 1261 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::prob_diff" #line 703 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 703 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1268 "go-strengths.c" { #line 707 "go-strengths.gob" double p_black, p_white; GoGame *g; if (! self->test_game) { GoData *data = (GoData *)GO_CLIENT(self)->data; g = (GoGame *)go_game_new_fake (data); self->test_game = g; } else { g = self->test_game; } g->black = black; g->white = white; g->board = board; g->handicap = handicap; if (kk%2 == 0) { g->komi = kk/2; g->with_jigo = TRUE; } else { g->komi = (kk-1)/2; g->with_jigo = FALSE; } g->res = res_BLACK; p_black = probability (self, g); g->res = res_WHITE; p_white = probability (self, g); return (p_black - p_white); }} #line 1301 "go-strengths.c" #undef __GOB_FUNCTION__ #line 738 "go-strengths.gob" int go_strengths_find_handicap (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board) #line 1307 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::find_handicap" #line 738 "go-strengths.gob" g_return_val_if_fail (self != NULL, (int )0); #line 738 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (int )0); #line 1314 "go-strengths.c" { #line 740 "go-strengths.gob" int hc; for (hc = 2; hc < 14; ++hc) { if (prob_diff (self, black, white, board, hc, 0) >= 0) break; } return (hc > 2) ? hc-1 : 0; }} #line 1325 "go-strengths.c" #undef __GOB_FUNCTION__ #line 749 "go-strengths.gob" double go_strengths_find_komi (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board, int hc) #line 1331 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::find_komi" #line 749 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 749 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1338 "go-strengths.c" { #line 752 "go-strengths.gob" double a, b, c; int kk; kk = 0; while (prob_diff (self, black, white, board, hc, kk) >= 0.999) ++kk; while (prob_diff (self, black, white, board, hc, kk) <= 0.001) --kk; a = fabs (prob_diff (self, black, white, board, hc, kk-1)); b = fabs (prob_diff (self, black, white, board, hc, kk)); c = fabs (prob_diff (self, black, white, board, hc, kk+1)); while (ab && b>c) { kk += 1; a = b; b = c; c = fabs (prob_diff (self, black, white, board, hc, kk+1)); } return 0.5*kk; }} #line 1365 "go-strengths.c" #undef __GOB_FUNCTION__ #line 777 "go-strengths.gob" static void go_strengths_llh_fn (GoClient * c, GoGame * g, int i, int n, void * client_data) #line 1371 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::llh_fn" { #line 779 "go-strengths.gob" struct llh_fn_data *data = client_data; if (go_data_players_equiv (GO_CLIENT(data->s)->data, g->black, g->white)) data->value += log (probability (data->s, g) / compensator (g)); }} #line 1382 "go-strengths.c" #undef __GOB_FUNCTION__ #line 786 "go-strengths.gob" static double go_strengths_component_probability (GoStrengths * self) #line 1388 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::component_probability" #line 786 "go-strengths.gob" g_return_val_if_fail (self != NULL, (double )0); #line 786 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (double )0); #line 1395 "go-strengths.c" { #line 790 "go-strengths.gob" struct llh_fn_data data; data.s = self; data.value = 0; go_client_foreach_game (GO_CLIENT(self), llh_fn, &data); return data.value; }} #line 1406 "go-strengths.c" #undef __GOB_FUNCTION__ #line 799 "go-strengths.gob" void go_strengths_optimize (GoStrengths * self) #line 1412 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::optimize" #line 799 "go-strengths.gob" g_return_if_fail (self != NULL); #line 799 "go-strengths.gob" g_return_if_fail (GO_IS_STRENGTHS (self)); #line 1419 "go-strengths.c" { #line 801 "go-strengths.gob" double x; int i; x = component_probability (self); for (i=0; i<100; ++i) { double *mem; double y; mem = parameters_dump (self); if (i<2 || isinf(x)) { randomize_all (self); } else if (i<10) { randomize_some (self); } else if (i<20) { modify_some (self, 1); } else if (i<40) { modify_some (self, 0.1); } else if (i<70) { modify_some (self, 0.01); } else { modify_some (self, 0.001); } y = component_probability (self); if (y > x) { g_free (mem); } else { parameters_restore (self, mem); } } component_probability (self); /* fix the probability values */ write_back_strengths (self); go_data_notify_players_changed (GO_CLIENT(self)->data); go_data_notify_games_changed (GO_CLIENT(self)->data); if (self->optimize_constants) { printf ("\ec"); parameters_print (self); printf ("res = %g\n", x); } }} #line 1462 "go-strengths.c" #undef __GOB_FUNCTION__ #line 842 "go-strengths.gob" const char * go_strengths_check_preconditions (GoStrengths * self) #line 1468 "go-strengths.c" { #define __GOB_FUNCTION__ "Go:Strengths::check_preconditions" #line 842 "go-strengths.gob" g_return_val_if_fail (self != NULL, (const char * )0); #line 842 "go-strengths.gob" g_return_val_if_fail (GO_IS_STRENGTHS (self), (const char * )0); #line 1475 "go-strengths.c" { #line 844 "go-strengths.gob" int i, k, n; k = 0; n = go_client_player_count (GO_CLIENT (self)); for (i=0; irank) ++k; } if (k == 0) { return ("Cannot estimate strenghts.\n" "At least one rank must be assigned."); } else if (k == n) { return ("Nothing to do.\n" "All ranks are explicitly assigned."); } return NULL; }} #line 1496 "go-strengths.c" #undef __GOB_FUNCTION__ #if (!defined __GNUC__) || (defined __GNUC__ && defined __STRICT_ANSI__) /*REALLY BAD HACK This is to avoid unused warnings if you don't call some method. I need to find a better way to do this, not needed in GCC since we use some gcc extentions to make saner, faster code */ static void ___go_strengths_really_bad_hack_to_avoid_warnings(void) { ((void (*)(void))destroy_hist_cb)(); ((void (*)(void))add_const_params)(); ((void (*)(void))new)(); ((void (*)(void))remove_param)(); ((void (*)(void))add_norm_param)(); ((void (*)(void))add_expnorm_param)(); ((void (*)(void))add_clamp_param)(); ((void (*)(void))parameters_print)(); ((void (*)(void))parameters_count)(); ((void (*)(void))parameters_dump)(); ((void (*)(void))parameters_restore)(); ((void (*)(void))randomize)(); ((void (*)(void))rand_cb)(); ((void (*)(void))randomize_all)(); ((void (*)(void))modify)(); ((void (*)(void))mod_cb)(); ((void (*)(void))randomize_some)(); ((void (*)(void))modify_some)(); ((void (*)(void))add_param_cb)(); ((void (*)(void))remove_param_cb)(); ((void (*)(void))find_player_history)(); ((void (*)(void))find_player_strength)(); ((void (*)(void))write_hist_cb)(); ((void (*)(void))write_back_strengths)(); ((void (*)(void))mu19)(); ((void (*)(void))mu13)(); ((void (*)(void))mu9)(); ((void (*)(void))probability)(); ((void (*)(void))compensator)(); ((void (*)(void))prob_diff)(); ((void (*)(void))find_handicap)(); ((void (*)(void))find_komi)(); ((void (*)(void))llh_fn)(); ((void (*)(void))component_probability)(); ((void (*)(void))optimize)(); ((void (*)(void))check_preconditions)(); ___go_strengths_really_bad_hack_to_avoid_warnings(); } #endif /* !__GNUC__ || (__GNUC__ && __STRICT_ANSI__) */ golist-0.3/lib/go-data.h0000644000175000017500000000723307344217045010604 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_DATA_H__ #define __GO_DATA_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define __TYPEDEF_GO_DATA__ typedef struct _GoData GoData; #include #include #include /* * Type checking and casting macros */ #define GO_TYPE_DATA (go_data_get_type()) #define GO_DATA(obj) GTK_CHECK_CAST((obj), go_data_get_type(), GoData) #define GO_DATA_CONST(obj) GTK_CHECK_CAST((obj), go_data_get_type(), GoData const) #define GO_DATA_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_data_get_type(), GoDataClass) #define GO_IS_DATA(obj) GTK_CHECK_TYPE((obj), go_data_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_DATA_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_data_get_type(), GoDataClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_DATA_GET_CLASS(obj) ((GoDataClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_DATA__ #define __TYPEDEF_GO_DATA__ typedef struct _GoData GoData; #endif struct _GoData { GtkObject __parent__; /*< private >*/ GSList * clients; /* protected */ GSList * players; /* protected */ GSList * games; /* protected */ GList * tokens; /* protected */ GtkObject * components; /* protected */ gint frozen; /* protected */ gboolean players_changed; /* protected */ gboolean games_changed; /* protected */ GoGame * game_selected; /* protected */ }; /* * Class definition */ typedef struct _GoDataClass GoDataClass; struct _GoDataClass { GtkObjectClass __parent__; /*signal*/void (* changed) (GoData * self); }; /* * Public methods */ GtkType go_data_get_type (void) G_GNUC_CONST; GtkObject * go_data_new (void); void go_data_clear (GoData * self); gboolean go_data_load (GoData * self, const gchar * filename); gboolean go_data_save (GoData * self, const gchar * filename); void go_data_notify_players_changed (GoData * self); void go_data_notify_games_changed (GoData * self); void go_data_add_client (GoData * self, GoClient * client); void go_data_remove_client (GoData * self, GoClient * client); void go_data_add_player (GoData * self, GoPlayer * player); void go_data_remove_player (GoData * self, GoPlayer * player); void go_data_player_lock (GoData * self, GoPlayer * p); void go_data_player_unlock (GoData * self, GoPlayer * p); int go_data_player_count (GoData * self); GList * go_data_player_tokens (GoData * self); GoPlayer * go_data_find_token (GoData * self, const char * token); int go_data_player_game_count (GoData * self, GoPlayer * player); int go_data_player_win_count (GoData * self, GoPlayer * player); int go_data_player_game_index (GoData * self, GoPlayer * player, GoGame * game); int go_data_player_component (GoData * self, const GoPlayer * player); gboolean go_data_players_equiv (GoData * self, const GoPlayer * a, const GoPlayer * b); void go_data_add_game (GoData * self, GoGame * game); void go_data_remove_game (GoData * self, GoGame * game); void go_data_game_lock (GoData * self, GoGame * g); void go_data_game_unlock (GoData * self, GoGame * g); int go_data_game_count (GoData * self); /* * Signal connection wrapper macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define GO_DATA_SIGNAL_CHANGED(func) "changed",GTK_SIGNAL_FUNC(({void (* ___changed) (GoData * self, gpointer data ) = func; ___changed; })) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define GO_DATA_SIGNAL_CHANGED(func) "changed",GTK_SIGNAL_FUNC(func) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-player.h0000644000175000017500000000624507344217045011171 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_PLAYER_H__ #define __GO_PLAYER_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #define __TYPEDEF_GO_PLAYER__ typedef struct _GoPlayer GoPlayer; #include extern gboolean rank_to_strength (const char *rank, double *strength_ptr); /* * Type checking and casting macros */ #define GO_TYPE_PLAYER (go_player_get_type()) #define GO_PLAYER(obj) GTK_CHECK_CAST((obj), go_player_get_type(), GoPlayer) #define GO_PLAYER_CONST(obj) GTK_CHECK_CAST((obj), go_player_get_type(), GoPlayer const) #define GO_PLAYER_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_player_get_type(), GoPlayerClass) #define GO_IS_PLAYER(obj) GTK_CHECK_TYPE((obj), go_player_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_PLAYER_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_player_get_type(), GoPlayerClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_PLAYER_GET_CLASS(obj) ((GoPlayerClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_PLAYER__ #define __TYPEDEF_GO_PLAYER__ typedef struct _GoPlayer GoPlayer; #endif struct _GoPlayer { GtkObject __parent__; /*< public >*/ gchar * name; gchar * token; gchar * rank; double strength; /*< private >*/ GoData * data; /* protected */ gboolean locked; /* protected */ }; /* * Class definition */ typedef struct _GoPlayerClass GoPlayerClass; struct _GoPlayerClass { GtkObjectClass __parent__; void (* write) (GoPlayer * self, xmlNodePtr node); }; /* * Public methods */ GtkType go_player_get_type (void) G_GNUC_CONST; void go_player_write (GoPlayer * self, xmlNodePtr node); GtkObject * go_player_new (GoData * data, const char * name, const char * token, const char * rank, double strength); GtkObject * go_player_read (GoData * data, xmlNodePtr node); /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define GO_PLAYER_ARG_NAME(arg) "name",({gchar * z = (arg); z;}) #define GO_PLAYER_GET_ARG_NAME(arg) "name",({gchar * *z = (arg); z;}) #define GO_PLAYER_ARG_TOKEN(arg) "token",({gchar * z = (arg); z;}) #define GO_PLAYER_GET_ARG_TOKEN(arg) "token",({gchar * *z = (arg); z;}) #define GO_PLAYER_ARG_RANK(arg) "rank",({gchar * z = (arg); z;}) #define GO_PLAYER_GET_ARG_RANK(arg) "rank",({gchar * *z = (arg); z;}) #define GO_PLAYER_ARG_STRENGTH(arg) "strength",({double z = (arg); z;}) #define GO_PLAYER_GET_ARG_STRENGTH(arg) "strength",({double *z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define GO_PLAYER_ARG_NAME(arg) "name",(gchar * )(arg) #define GO_PLAYER_GET_ARG_NAME(arg) "name",(gchar * *)(arg) #define GO_PLAYER_ARG_TOKEN(arg) "token",(gchar * )(arg) #define GO_PLAYER_GET_ARG_TOKEN(arg) "token",(gchar * *)(arg) #define GO_PLAYER_ARG_RANK(arg) "rank",(gchar * )(arg) #define GO_PLAYER_GET_ARG_RANK(arg) "rank",(gchar * *)(arg) #define GO_PLAYER_ARG_STRENGTH(arg) "strength",(double )(arg) #define GO_PLAYER_GET_ARG_STRENGTH(arg) "strength",(double *)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-game.h0000644000175000017500000000773007344217045010606 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_GAME_H__ #define __GO_GAME_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include #define __TYPEDEF_GO_GAME__ typedef struct _GoGame GoGame; #include "go-data.h" #include "go-player.h" typedef enum { b19=19, b13=13, b9=9 } GoBoardSize; extern const char *board_to_str (GoBoardSize board); extern GoBoardSize str_to_board (const char *str); typedef enum { res_BLACK, res_WHITE, res_JIGO } GoGameResult; extern const char *result_to_str (GoGameResult res); extern GoGameResult str_to_result (const char *str); /* * Type checking and casting macros */ #define GO_TYPE_GAME (go_game_get_type()) #define GO_GAME(obj) GTK_CHECK_CAST((obj), go_game_get_type(), GoGame) #define GO_GAME_CONST(obj) GTK_CHECK_CAST((obj), go_game_get_type(), GoGame const) #define GO_GAME_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_game_get_type(), GoGameClass) #define GO_IS_GAME(obj) GTK_CHECK_TYPE((obj), go_game_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_GAME_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_game_get_type(), GoGameClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_GAME_GET_CLASS(obj) ((GoGameClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_GAME__ #define __TYPEDEF_GO_GAME__ typedef struct _GoGame GoGame; #endif struct _GoGame { GtkObject __parent__; /*< public >*/ GoPlayer * black; GoPlayer * white; GoGameResult res; double probability; /*< private >*/ GoData * data; /* protected */ time_t date; /* protected */ GoBoardSize board; /* protected */ int handicap; /* protected */ int komi; /* protected */ gboolean with_jigo; /* protected */ gboolean locked; /* protected */ gboolean fake; /* protected */ int black_game_index; /* protected */ int white_game_index; /* protected */ }; /* * Class definition */ typedef struct _GoGameClass GoGameClass; struct _GoGameClass { GtkObjectClass __parent__; void (* write) (GoGame * self, xmlNodePtr node); }; /* * Public methods */ GtkType go_game_get_type (void) G_GNUC_CONST; GtkObject * go_game_new (GoData * data, time_t date, const char * black, const char * white, GoBoardSize board, int handicap, double komi, GoGameResult res); GtkObject * go_game_new_fake (GoData * data); void go_game_write (GoGame * self, xmlNodePtr node); GtkObject * go_game_read (GoData * data, xmlNodePtr node); /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define GO_GAME_ARG_BLACK(arg) "black",({char * z = (arg); z;}) #define GO_GAME_GET_ARG_BLACK(arg) "black",({char * *z = (arg); z;}) #define GO_GAME_ARG_WHITE(arg) "white",({char * z = (arg); z;}) #define GO_GAME_GET_ARG_WHITE(arg) "white",({char * *z = (arg); z;}) #define GO_GAME_ARG_BOARD(arg) "board",({char * z = (arg); z;}) #define GO_GAME_GET_ARG_BOARD(arg) "board",({char * *z = (arg); z;}) #define GO_GAME_ARG_HANDICAP(arg) "handicap",({int z = (arg); z;}) #define GO_GAME_GET_ARG_HANDICAP(arg) "handicap",({int *z = (arg); z;}) #define GO_GAME_ARG_KOMI(arg) "komi",({gdouble z = (arg); z;}) #define GO_GAME_GET_ARG_KOMI(arg) "komi",({gdouble *z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define GO_GAME_ARG_BLACK(arg) "black",(char * )(arg) #define GO_GAME_GET_ARG_BLACK(arg) "black",(char * *)(arg) #define GO_GAME_ARG_WHITE(arg) "white",(char * )(arg) #define GO_GAME_GET_ARG_WHITE(arg) "white",(char * *)(arg) #define GO_GAME_ARG_BOARD(arg) "board",(char * )(arg) #define GO_GAME_GET_ARG_BOARD(arg) "board",(char * *)(arg) #define GO_GAME_ARG_HANDICAP(arg) "handicap",(int )(arg) #define GO_GAME_GET_ARG_HANDICAP(arg) "handicap",(int *)(arg) #define GO_GAME_ARG_KOMI(arg) "komi",(gdouble )(arg) #define GO_GAME_GET_ARG_KOMI(arg) "komi",(gdouble *)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-components.h0000644000175000017500000000401507344217045012053 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_COMPONENTS_H__ #define __GO_COMPONENTS_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define GO_TYPE_COMPONENTS (go_components_get_type()) #define GO_COMPONENTS(obj) GTK_CHECK_CAST((obj), go_components_get_type(), GoComponents) #define GO_COMPONENTS_CONST(obj) GTK_CHECK_CAST((obj), go_components_get_type(), GoComponents const) #define GO_COMPONENTS_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_components_get_type(), GoComponentsClass) #define GO_IS_COMPONENTS(obj) GTK_CHECK_TYPE((obj), go_components_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_COMPONENTS_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_components_get_type(), GoComponentsClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_COMPONENTS_GET_CLASS(obj) ((GoComponentsClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_COMPONENTS__ #define __TYPEDEF_GO_COMPONENTS__ typedef struct _GoComponents GoComponents; #endif struct _GoComponents { GoClient __parent__; /*< private >*/ GHashTable * d_geq; /* protected */ GHashTable * t_geq; /* protected */ gboolean t_geq_valid; /* protected */ }; /* * Class definition */ typedef struct _GoComponentsClass GoComponentsClass; struct _GoComponentsClass { GoClientClass __parent__; }; /* * Public methods */ GtkType go_components_get_type (void) G_GNUC_CONST; GtkObject * go_components_new (GoData * data); gboolean go_components_geq (GoComponents * self, const GoPlayer * a, const GoPlayer * b); gboolean go_components_equivalent (GoComponents * self, const GoPlayer * a, const GoPlayer * b); int go_components_index (GoComponents * self, const GoPlayer * p); gboolean go_components_direct_geq (GoComponents * self, GoPlayer * a, GoPlayer * b); void go_components_dump (GoComponents * self); #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-client.h0000644000175000017500000000715607344217045011155 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_CLIENT_H__ #define __GO_CLIENT_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #define __TYPEDEF_GO_CLIENT__ typedef struct _GoClient GoClient; #include typedef void (*GoClientPlayerFunc) (GoClient *c, GoPlayer *p, int i, int n, gpointer client_data); typedef void (*GoClientGameFunc) (GoClient *c, GoGame *g, int i, int n, gpointer client_data); typedef void (*go_cb) (GtkObject *obj, void *client_data); typedef int (*GoComparePlayersFunc) (const GoPlayer *a, const GoPlayer *b, void *client_data); /* * Type checking and casting macros */ #define GO_TYPE_CLIENT (go_client_get_type()) #define GO_CLIENT(obj) GTK_CHECK_CAST((obj), go_client_get_type(), GoClient) #define GO_CLIENT_CONST(obj) GTK_CHECK_CAST((obj), go_client_get_type(), GoClient const) #define GO_CLIENT_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_client_get_type(), GoClientClass) #define GO_IS_CLIENT(obj) GTK_CHECK_TYPE((obj), go_client_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_CLIENT_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_client_get_type(), GoClientClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_CLIENT_GET_CLASS(obj) ((GoClientClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_CLIENT__ #define __TYPEDEF_GO_CLIENT__ typedef struct _GoClient GoClient; #endif struct _GoClient { GtkObject __parent__; /*< public >*/ GoData * data; /*< private >*/ GPtrArray * players; /* protected */ GPtrArray * games; /* protected */ GoComparePlayersFunc compare_players_fn; /* protected */ void * compare_players_data; /* protected */ }; /* * Class definition */ typedef struct _GoClientClass GoClientClass; struct _GoClientClass { GtkObjectClass __parent__; void (* register_player) (GoClient * self, GoPlayer * player); void (* unregister_player) (GoClient * self, GoPlayer * player); void (* register_game) (GoClient * self, GoGame * game); void (* unregister_game) (GoClient * self, GoGame * game); void (* print_player) (GoClient * self, GoPlayer * player, int i, int n); void (* print_game) (GoClient * self, GoGame * game, int i, int n); void (* select_game) (GoClient * self, GoGame * g, int i); }; /* * Public methods */ GtkType go_client_get_type (void) G_GNUC_CONST; void go_client_register_player (GoClient * self, GoPlayer * player); void go_client_unregister_player (GoClient * self, GoPlayer * player); int go_client_player_count (GoClient * self); GoPlayer * go_client_player (GoClient * self, int i); void go_client_foreach_player (GoClient * self, GoClientPlayerFunc f, void * data); void go_client_sort_players (GoClient * self, GoComparePlayersFunc compare_players_fn, gpointer client_data); void go_client_register_game (GoClient * self, GoGame * game); void go_client_unregister_game (GoClient * self, GoGame * game); int go_client_game_count (GoClient * self); GoGame * go_client_game (GoClient * self, int i); void go_client_foreach_game (GoClient * self, GoClientGameFunc f, void * data); void go_client_redisplay (GoClient * self, gboolean games, gboolean players); void go_client_make_game_visible (GoClient * self, GoGame * g); void go_client_print_player (GoClient * self, GoPlayer * player, int i, int n); void go_client_print_game (GoClient * self, GoGame * game, int i, int n); void go_client_select_game (GoClient * self, GoGame * g, int i); #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-player-list.h0000644000175000017500000000403507344217045012135 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_PLAYER_LIST_H__ #define __GO_PLAYER_LIST_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include /* * Type checking and casting macros */ #define GO_TYPE_PLAYER_LIST (go_player_list_get_type()) #define GO_PLAYER_LIST(obj) GTK_CHECK_CAST((obj), go_player_list_get_type(), GoPlayerList) #define GO_PLAYER_LIST_CONST(obj) GTK_CHECK_CAST((obj), go_player_list_get_type(), GoPlayerList const) #define GO_PLAYER_LIST_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_player_list_get_type(), GoPlayerListClass) #define GO_IS_PLAYER_LIST(obj) GTK_CHECK_TYPE((obj), go_player_list_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_PLAYER_LIST_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_player_list_get_type(), GoPlayerListClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_PLAYER_LIST_GET_CLASS(obj) ((GoPlayerListClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_PLAYER_LIST__ #define __TYPEDEF_GO_PLAYER_LIST__ typedef struct _GoPlayerList GoPlayerList; #endif struct _GoPlayerList { GoClient __parent__; /*< public >*/ GtkCList * clist; }; /* * Class definition */ typedef struct _GoPlayerListClass GoPlayerListClass; struct _GoPlayerListClass { GoClientClass __parent__; }; /* * Public methods */ GtkType go_player_list_get_type (void) G_GNUC_CONST; GtkObject * go_player_list_new (GoData * data, GtkCList * clist); /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define GO_PLAYER_LIST_ARG_CLIST(arg) "clist",({GtkCList * z = (arg); z;}) #define GO_PLAYER_LIST_GET_ARG_CLIST(arg) "clist",({GtkCList * *z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define GO_PLAYER_LIST_ARG_CLIST(arg) "clist",(GtkCList * )(arg) #define GO_PLAYER_LIST_GET_ARG_CLIST(arg) "clist",(GtkCList * *)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-game-list.h0000644000175000017500000000373107344217045011554 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_GAME_LIST_H__ #define __GO_GAME_LIST_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include /* * Type checking and casting macros */ #define GO_TYPE_GAME_LIST (go_game_list_get_type()) #define GO_GAME_LIST(obj) GTK_CHECK_CAST((obj), go_game_list_get_type(), GoGameList) #define GO_GAME_LIST_CONST(obj) GTK_CHECK_CAST((obj), go_game_list_get_type(), GoGameList const) #define GO_GAME_LIST_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_game_list_get_type(), GoGameListClass) #define GO_IS_GAME_LIST(obj) GTK_CHECK_TYPE((obj), go_game_list_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_GAME_LIST_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_game_list_get_type(), GoGameListClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_GAME_LIST_GET_CLASS(obj) ((GoGameListClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_GAME_LIST__ #define __TYPEDEF_GO_GAME_LIST__ typedef struct _GoGameList GoGameList; #endif struct _GoGameList { GoClient __parent__; /*< public >*/ GtkCList * clist; }; /* * Class definition */ typedef struct _GoGameListClass GoGameListClass; struct _GoGameListClass { GoClientClass __parent__; }; /* * Public methods */ GtkType go_game_list_get_type (void) G_GNUC_CONST; GtkObject * go_game_list_new (GoData * data, GtkCList * clist); /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define GO_GAME_LIST_ARG_CLIST(arg) "clist",({GtkCList * z = (arg); z;}) #define GO_GAME_LIST_GET_ARG_CLIST(arg) "clist",({GtkCList * *z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define GO_GAME_LIST_ARG_CLIST(arg) "clist",(GtkCList * )(arg) #define GO_GAME_LIST_GET_ARG_CLIST(arg) "clist",(GtkCList * *)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-history.h0000644000175000017500000000531207344217045011370 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_HISTORY_H__ #define __GO_HISTORY_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define GO_TYPE_HISTORY (go_history_get_type()) #define GO_HISTORY(obj) GTK_CHECK_CAST((obj), go_history_get_type(), GoHistory) #define GO_HISTORY_CONST(obj) GTK_CHECK_CAST((obj), go_history_get_type(), GoHistory const) #define GO_HISTORY_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_history_get_type(), GoHistoryClass) #define GO_IS_HISTORY(obj) GTK_CHECK_TYPE((obj), go_history_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_HISTORY_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_history_get_type(), GoHistoryClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_HISTORY_GET_CLASS(obj) ((GoHistoryClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_HISTORY__ #define __TYPEDEF_GO_HISTORY__ typedef struct _GoHistory GoHistory; #endif struct _GoHistory { GtkObject __parent__; /*< private >*/ double s0; /* protected */ double s1; /* protected */ double * current; /* protected */ int n; /* protected */ }; /* * Class definition */ typedef struct _GoHistoryClass GoHistoryClass; struct _GoHistoryClass { GtkObjectClass __parent__; /*signal*/void (* add_parameter) (GoHistory * self, double * ptr); /*signal*/void (* remove_parameter) (GoHistory * self, double * ptr); }; /* * Public methods */ GtkType go_history_get_type (void) G_GNUC_CONST; GtkObject * go_history_new (double * strength_ptr); void go_history_set_length (GoHistory * self, int n); void go_history_increase_length (GoHistory * self); double go_history_get_strength (GoHistory * self, int i); double go_history_probability (GoHistory * self); double go_history_compensator (GoHistory * self); void go_history_write_back (GoHistory * self); /* * Signal connection wrapper macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define GO_HISTORY_SIGNAL_ADD_PARAMETER(func) "add_parameter",GTK_SIGNAL_FUNC(({void (* ___add_parameter) (GoHistory * self, double * ptr, gpointer data ) = func; ___add_parameter; })) #define GO_HISTORY_SIGNAL_REMOVE_PARAMETER(func) "remove_parameter",GTK_SIGNAL_FUNC(({void (* ___remove_parameter) (GoHistory * self, double * ptr, gpointer data ) = func; ___remove_parameter; })) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define GO_HISTORY_SIGNAL_ADD_PARAMETER(func) "add_parameter",GTK_SIGNAL_FUNC(func) #define GO_HISTORY_SIGNAL_REMOVE_PARAMETER(func) "remove_parameter",GTK_SIGNAL_FUNC(func) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/go-strengths.h0000644000175000017500000000447107344217045011715 /* Generated by GOB (v1.0.10) (do not edit directly) */ #include #ifndef __GO_STRENGTHS_H__ #define __GO_STRENGTHS_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define GO_TYPE_STRENGTHS (go_strengths_get_type()) #define GO_STRENGTHS(obj) GTK_CHECK_CAST((obj), go_strengths_get_type(), GoStrengths) #define GO_STRENGTHS_CONST(obj) GTK_CHECK_CAST((obj), go_strengths_get_type(), GoStrengths const) #define GO_STRENGTHS_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), go_strengths_get_type(), GoStrengthsClass) #define GO_IS_STRENGTHS(obj) GTK_CHECK_TYPE((obj), go_strengths_get_type ()) #ifdef GTK_CHECK_GET_CLASS #define GO_STRENGTHS_GET_CLASS(obj) GTK_CHECK_GET_CLASS((obj), go_strengths_get_type(), GoStrengthsClass) #else /* !GTK_CHECK_GET_CLASS */ #define GO_STRENGTHS_GET_CLASS(obj) ((GoStrengthsClass *)GTK_OBJECT(obj)->klass) #endif /* GTK_CHECK_GET_CLASS */ /* * Main object structure */ #ifndef __TYPEDEF_GO_STRENGTHS__ #define __TYPEDEF_GO_STRENGTHS__ typedef struct _GoStrengths GoStrengths; #endif struct _GoStrengths { GoClient __parent__; /*< public >*/ double s19; double s13; double s9; double h19; double h13; double h9; double k19; double k13; double k9; double e19; double e13; double e9; /*< private >*/ gboolean optimize_constants; /* protected */ GSList * params; /* protected */ GHashTable * histories; /* protected */ GoGame * test_game; /* protected */ }; /* * Class definition */ typedef struct _GoStrengthsClass GoStrengthsClass; struct _GoStrengthsClass { GoClientClass __parent__; }; /* * Public methods */ GtkType go_strengths_get_type (void) G_GNUC_CONST; GtkObject * go_strengths_new (GoData * data, gboolean optimize_constants); void go_strengths_parameters_print (GoStrengths * self); double go_strengths_probability (GoStrengths * self, GoGame * g); int go_strengths_find_handicap (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board); double go_strengths_find_komi (GoStrengths * self, GoPlayer * black, GoPlayer * white, GoBoardSize board, int hc); void go_strengths_optimize (GoStrengths * self); const char * go_strengths_check_preconditions (GoStrengths * self); #ifdef __cplusplus } #endif /* __cplusplus */ #endif golist-0.3/lib/util.c0000644000175000017500000000310207341535732010232 /* util.c - auxiliary functions for the libgo library * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: util.c,v 1.1.1.1 2001/08/24 20:40:58 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include "go.h" int str_to_int (const char *str, int def) { char *tail; int val; if (! str) return def; errno = 0; val = strtol (str, &tail, 0); if (errno == ERANGE && *tail == '\0') { g_error ("parse error: invalid integer number \"%s\"", str); } else if (errno || tail == str || *tail != '\0') { g_error ("parse error: malformed integer number \"%s\"", str); } return val; } double str_to_double (const char *str, double def) { char *tail; double val; if (! str) return def; errno = 0; val = strtod (str, &tail); if (errno == ERANGE && *tail == '\0') { g_error ("parse error: invalid double number \"%s\"", str); } else if (errno || tail == str || *tail != '\0') { g_error ("parse error: malformed double number \"%s\"", str); } return val; } /** * snprint_strength: * @str: a buffer to print the rank into * @size: length of the buffer * @strength: the strength value to print * * Prints the rank, which is closest to strength into @str. * This is the inverse operation to rank_to_strength(). */ void snprint_strength (char *str, size_t size, double strength) { int x = (int)(strength+10000.5) - 10000; if (x < 0) { snprintf (str, size, "%dk", -x); } else { snprintf (str, size, "%dd", x+1); } } golist-0.3/lib/go.h0000644000175000017500000000070307341535732007673 /* go.h - common header file for the libgo library (part of golist) * * Copyright (C) 2001 Jochen Voss. * * $Id: go.h,v 1.1.1.1 2001/08/24 20:40:58 voss Exp $ */ #ifndef FILE_GO_H_SEEN #define FILE_GO_H_SEEN /* from "util.c" */ extern int str_to_int (const char *str, int def); extern double str_to_double (const char *str, double def); extern void snprint_strength (char *str, size_t size, double strength); #endif /* FILE_GO_H_SEEN */ golist-0.3/lib/go-all.h0000644000175000017500000000032007341535732010434 #include #include #include #include #include #include #include #include #include golist-0.3/lib/go-data.gob0000644000175000017500000004310407344207421011116 /* go-data.gob - the golist data model * * Copyright (C) 2001 Jochen Voss. * * $Id: go-data.gob,v 1.6 2001/09/01 16:38:41 voss Exp $ */ %h{ #define __TYPEDEF_GO_DATA__ typedef struct _GoData GoData; #include #include #include %} %{ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include typedef void (*player_cb) (GoPlayer *, void *); typedef void (*game_cb) (GoGame *, void *); struct pgc_data { GoPlayer *p; int n; }; struct pgi_data { gboolean done; GoPlayer *p; GoGame *g; int n; }; %} class Go:Data from Gtk:Object { protected GSList *clients = NULL; protected GSList *players = NULL; protected GSList *games = NULL; protected GList *tokens = NULL; protected GtkObject *components = NULL; protected gint frozen = 0; protected gboolean players_changed = FALSE; protected gboolean games_changed = FALSE; protected GoGame *game_selected = NULL; override (Gtk:Object) void destroy (Gtk:Object *obj) { GoData *self = GO_DATA (obj); freeze (self); while (self->clients) remove_client (self, GO_CLIENT (self->clients->data)); clear (self); PARENT_HANDLER (obj); } /** * new: * * Allocate a new, empty #GoData object. * * Returns: a newly allocated #GoData object. **/ public GtkObject * new (void) { GoData *self = GET_NEW; self->components = go_components_new (self); return GTK_OBJECT (self); } /** * clear: * @self: a #GoData object * * Remove all entries from the database. * The corresponding #GoGame and #GoPlayer objects are destroyed. */ public void clear (self) { freeze (self); while (self->games) remove_game (self, GO_GAME (self->games->data)); while (self->players) remove_player (self, GO_PLAYER (self->players->data)); thaw (self); } /** * load: * @self: a #GoData object * @filename: the file to load * * Loads the golist XML file denoted by @filename into the * GoData object @self. * * Returns: TRUE, iff the file was loaded successfully, * and FALSE if the file cannot be read or is no golist XML file. **/ public gboolean load (self, const gchar *filename) { xmlDocPtr doc; xmlNodePtr node; doc = xmlParseFile (filename); if (! doc /* file not found */ || !doc->root /* there is no root element */ || !doc->root->name /* it doesn't have a name */ || g_strcasecmp(doc->root->name,"golist") != 0 ) { xmlFreeDoc (doc); return FALSE; } /* go through the list and add new entries. */ freeze (self); for (node = doc->root->childs; node != NULL; node = node->next) { if (g_strcasecmp (node->name, "player") == 0) { go_player_read (self, node); } else if (g_strcasecmp (node->name, "game") == 0) { go_game_read (self, node); } } thaw (self); xmlFreeDoc (doc); return TRUE; } private void write_player (Go:Player *player, void *client_data) { xmlNodePtr node = client_data; xmlNodePtr newxml; newxml = xmlNewChild (node, NULL, "player", NULL); go_player_write (player, newxml); } private void write_game (Go:Game *game, void *client_data) { xmlNodePtr node = client_data; xmlNodePtr newxml; newxml = xmlNewChild (node, NULL, "game", NULL); go_game_write (game, newxml); } /** * save: * @self: a #GoData object * @filename: the file to save * * Dumps the GoData object @self into the golist XML file * @filename. * * Returns: %TRUE, iff the file was saved successfully, * and %FALSE if the file cannot be written. **/ public gboolean save (self, const gchar *filename) { xmlDocPtr doc; xmlDtdPtr dtd; int res; doc = xmlNewDoc ("1.0"); dtd = xmlNewDtd (doc, "golist", NULL, "golist.dtd"); xmlAddDtdEntity (doc, "golist", XML_EXTERNAL_GENERAL_PARSED_ENTITY, NULL, "golist.dtd", "golist"); doc->root = xmlNewDocNode (doc, NULL, "golist", NULL); foreach_player (self, write_player, doc->root); foreach_game (self, write_game, doc->root); res = xmlSaveFile (filename, doc); xmlFreeDoc (doc); return (res != -1); } /** * changed: * @self: a #GoData object * * Emit the "changed" signal for @self. */ signal private first NONE(NONE) void changed (self); private void redisplay_client_cb (gpointer data, gpointer user_data) { GoData *self = GO_DATA (user_data); go_client_redisplay (GO_CLIENT (data), self->games_changed, self->players_changed); } /** * deliver_changes: * @self: a #GoData object * * Notify all interested parties about changes in the #GoData object. * While @self is frozen, this does nothing. * The function updates all clients and emits the changed signal. */ private void deliver_changes (self) { gboolean changed_flag = FALSE; if (self->frozen) return; if (self->games_changed || self->players_changed) { g_slist_foreach (self->clients, redisplay_client_cb, self); self->games_changed = FALSE; self->players_changed = FALSE; changed_flag = TRUE; } if (self->game_selected) { g_slist_foreach (self->clients, (GFunc)go_client_make_game_visible, self->game_selected); self->game_selected = NULL; changed_flag = TRUE; } if (changed_flag) changed (self); } /** * notify_players_changed: * @self: a #GoData object * * This must be called in order to propagate changes to the * player list. It updates all clients and emits the "changed" signal. */ public void notify_players_changed (self) { self->players_changed = TRUE; deliver_changes (self); } /** * notify_games_changed: * @self: a #GoData object * * This must be called in order to propagate changes to the * game list. It updates all clients and emits the "changed" signal. */ public void notify_games_changed (self) { self->games_changed = TRUE; deliver_changes (self); } private void notify_game_selected (self, Go:Game *g) { self->game_selected = g; deliver_changes (self); } private void freeze (self) { ++ self->frozen; } private void thaw (self) { -- self->frozen; if (self->frozen <= 0) deliver_changes (self); } private void add_c_pl_cb (Go:Player *p, void *client_data) { go_client_register_player (GO_CLIENT (client_data), p); } private void add_c_gm_cb (Go:Game *g, void *client_data) { go_client_register_game (GO_CLIENT (client_data), g); } /** * add_client: * @self: a #GoData object * @client: a #GoClient object * * Register a new client of this GoData. **/ public void add_client (self, Go:Client *client) { gtk_object_ref (GTK_OBJECT (client)); gtk_object_sink (GTK_OBJECT (client)); g_assert (client->data == NULL); client->data = self; self->clients = g_slist_prepend (self->clients, client); foreach_player (self, add_c_pl_cb, client); foreach_game (self, add_c_gm_cb, client); go_client_redisplay (client, TRUE, TRUE); } /** * remove_client: * @self: a #GoData object * @client: a #GoClient object * * Disconnect the client from the #GoData object. **/ public void remove_client (self, Go:Client *client) { GSList *node; client->data = NULL; node = g_slist_find (self->clients, client); g_return_if_fail (node != NULL); self->clients = g_slist_remove_link (self->clients, node); g_slist_free_1 (node); gtk_object_unref (GTK_OBJECT (client)); } /** * add_player: * @self: a #GoData object * @player: a #GoPlayer object * * Register a new player of this GoData and update all clients. **/ public void add_player (self, Go:Player *player) { gtk_object_ref (GTK_OBJECT (player)); gtk_object_sink (GTK_OBJECT (player)); g_assert (player->data == NULL); player->data = self; self->players = g_slist_append (self->players, player); self->tokens = g_list_insert_sorted (self->tokens, player->token, (GCompareFunc)strcmp); g_slist_foreach (self->clients, (GFunc)go_client_register_player, player); notify_players_changed (self); } /** * remove_player: * @self: a #GoData object * @player: a #GoPlayer object * * Disconnect the player from the #GoData object and update all clients. **/ public void remove_player (self, Go:Player *player) { GSList *node; g_slist_foreach (self->clients, (GFunc)go_client_unregister_player, player); player->data = NULL; node = g_slist_find (self->players, player); g_return_if_fail (node != NULL); self->players = g_slist_remove_link (self->players, node); g_slist_free_1 (node); self->tokens = g_list_remove (self->tokens, player->token); gtk_object_unref (GTK_OBJECT (player)); notify_players_changed (self); } /** * player_lock: * @self: a #GoData object * @p: the player to modify * * This function must be called before @p is modified. After you are * done with @p you must call player_unlock() to propagate the changes. */ public void player_lock (self, Go:Player *p) { g_assert (! p->locked); p->locked = TRUE; g_slist_foreach (self->clients, (GFunc)go_client_unregister_player, p); } /** * player_unlock: * @self: a #GoData object * @p: the modified player * * Undo the effects of player_lock() and update the clients. */ public void player_unlock (self, Go:Player *p) { g_assert (p->locked); g_slist_foreach (self->clients, (GFunc)go_client_register_player, p); p->locked = FALSE; notify_players_changed (self); } /** * player_count: * @self: the #GoData object * * Determine the number of players in the database. * * Returns: the number of known players. **/ public int player_count (self) { return g_slist_length (self->players); } /** * player_tokens: * @self: a #GoData object * * Return the list of all player tokens. * The returned list must not be freed of modified. * It becomes invalid if the player list of @self is modified. * * Returns: the list of all player tokens */ public GList * player_tokens (self) { return self->tokens; } /** * find_token: * @self: a #GoData object * @token: a player token * * Get the player denoted by @token. * * Returns: a pointer to the player struct or %NULL if token is invalid. **/ public GoPlayer * find_token (self, const char *token) { GSList *players = self->players; if (token == NULL) return NULL; while (players) { GoPlayer *p = GO_PLAYER (players->data); if (strcmp (token, p->token) == 0) return p; players = players->next; } return NULL; } private void pgc_cb (Go:Game *g, void *data) { struct pgc_data *d_ptr = data; if (g->black == d_ptr->p || g->white == d_ptr->p) ++d_ptr->n; } /** * player_game_count: * @self: a #GoData object * @player: a #GoPlayer object * * Get the number of games recorded for @player. * * Returns: the number of games */ public int player_game_count (self, Go:Player *player) { struct pgc_data d; d.n = 0; d.p = player; foreach_game (self, pgc_cb, &d); return d.n; } private void pwc_cb (Go:Game *g, void *data) { struct pgc_data *d_ptr = data; if ((g->black == d_ptr->p && g->res == res_BLACK) || (g->white == d_ptr->p && g->res == res_WHITE)) ++d_ptr->n; } /** * player_win_count: * @self: a #GoData object * @player: a #GoPlayer object * * Get the number of won games recorded for @player. * * Returns: the number of won games */ public int player_win_count (self, Go:Player *player) { struct pgc_data d; d.n = 0; d.p = player; foreach_game (self, pwc_cb, &d); return d.n; } private void pgi_cb (Go:Game *g, void *data) { struct pgi_data *d_ptr = data; if (g == d_ptr->g) d_ptr->done = TRUE; if (d_ptr->done) return; if (g->black == d_ptr->p || g->white == d_ptr->p) ++d_ptr->n; } /** * player_game_index: * @self: a #GoData object * @player: a #GoPlayer object * @game: a #GoGame object * * Return the number of games in the data base @self, * which involve @player and are played before @game. * So, if the function returns n this indicates that * @game is the n-th game recorded for @player. * * Returns: the index of @game for @player */ public int player_game_index (self, Go:Player *player, Go:Game *game) { struct pgi_data d; if (player == game->black && game->black_game_index >= 0) { return game->black_game_index; } else if (player == game->white && game->white_game_index >= 0) { return game->white_game_index; } d.done = FALSE; d.p = player; d.g = game; d.n = 0; foreach_game (self, pgi_cb, &d); if (player == game->black) { game->black_game_index = d.n; } else if (player == game->white) { game->white_game_index = d.n; } return d.n; } /** * player_component: * @self: a #GoData object * @player: the player to calculate the component for * * Calculate the index for the connected component of @player within * the game graph. The value %0 indicates the component of * players of defined rank. * * Returns: the component index */ public int player_component (self, const Go:Player *player) { return go_components_index (GO_COMPONENTS (self->components), player); } /** * players_equiv: * @self: a #GoData object * @a: the first player * @b: the second player * * Returns: %TRUE if @a and @b are in the same connected component * of the game graph */ public gboolean players_equiv (self, const Go:Player *a, const Go:Player *b) { return go_components_equivalent (GO_COMPONENTS (self->components), a, b); } /** * foreach_player: * @self: a #GoData object * @f: the function to iterate over the players * @data: an additional argument for @f * * Calls function @f for each player in turn, * using @data as the final argument. * The function @f may not modify the list of * players, or the result will be undefined. **/ private void foreach_player (self, player_cb f, void *data) { GSList *players = self->players; while (players) { f (GO_PLAYER (players->data), data); players = players->next; } } /** * add_game: * @self: a #GoData object * @game: a #GoGame object * * Register a new game for this #GoData object and update all clients. **/ public void add_game (self, Go:Game *game) { gtk_object_ref (GTK_OBJECT (game)); gtk_object_sink (GTK_OBJECT (game)); g_assert (game->data == NULL); game->data = self; self->games = g_slist_append (self->games, game); if (! (game)->fake) { g_slist_foreach (self->clients, (GFunc)go_client_register_game, game); notify_games_changed (self); notify_game_selected (self, game); } } /** * remove_game: * @self: a #GoData object * @game: a #GoGame object * * Disconnect the game from the #GoData object and update all clients. **/ public void remove_game (self, Go:Game *game) { GSList *node; if (! (game)->fake) { g_slist_foreach (self->clients, (GFunc)go_client_unregister_game, game); } game->data = NULL; node = g_slist_find (self->games, game); g_return_if_fail (node != NULL); self->games = g_slist_remove_link (self->games, node); g_slist_free_1 (node); gtk_object_unref (GTK_OBJECT (game)); if (! (game)->fake) notify_games_changed (self); } /** * game_lock: * @self: a #GoData object * @g: the game to modify * * This function must be called before @g is modified. After you are * done with @g you must call game_unlock() to propagate the changes. */ public void game_lock (self, Go:Game *g) { g_assert (! g->locked); g->locked = TRUE; g_slist_foreach (self->clients, (GFunc)go_client_unregister_game, g); } /** * game_unlock: * @self: a #GoData object * @g: the modified game * * Undo the effects of game_lock() and update the clients. */ public void game_unlock (self, Go:Game *g) { g_assert (g->locked); g_slist_foreach (self->clients, (GFunc)go_client_register_game, g); g->locked = FALSE; notify_games_changed (self); } /** * game_count: * @self: the #GoData object * * Determine the number of games in the database. * * Returns: the number of known games. **/ public int game_count (self) { GSList *games = self->games; int m = 0; while (games) { GtkObject *g = games->data; if (! ((GoGame *)g)->fake) ++m; games = games->next; } return m; } /** * foreach_game: * @self: a #GoData object * @f: the function to iterate over the games * @data: an additional argument for @f * * Calls function @f for each game in turn, * using @data as the final argument. * The function @f may not modify the list of * games, or the result will be undefined. **/ private void foreach_game (self, game_cb f, void *data) { GSList *games = self->games; while (games) { GoGame *g = GO_GAME (games->data); if (! ((GoGame *)g)->fake) f (g, data); games = games->next; } } } golist-0.3/lib/go-player.gob0000644000175000017500000001051407344203461011500 /* go-player.gob - the Go type to hold player related information * * Copyright (C) 2001 Jochen Voss. * * $Id: go-player.gob,v 1.2 2001/09/01 16:05:05 voss Exp $ */ %h{ #include #define __TYPEDEF_GO_PLAYER__ typedef struct _GoPlayer GoPlayer; #include extern gboolean rank_to_strength (const char *rank, double *strength_ptr); %} %{ #ifdef HAVE_CONFIG_H # include #endif #include #include "go.h" /** * rank_to_strength: * @rank: a player's rank * @strength_ptr: a pointer to the place where the strength value * should be filled in. * * Convert a rank string of the form "3d" or "5k" into a numerical * strength value. @rank must be an integer number x, followed * by either %d (for dan grades) or %k (for kyu grades). * The computed strength value is x-1 for "x dan" or -x for "x kyu". * * @rank may be %NULL or the empty string. In this case * the strength value -100 (meaning "unknown strength") is returned. * * Returns: %TRUE if the conversion was succesful and %FALSE on error. */ gboolean rank_to_strength (const char *rank, double *strength_ptr) { int res, val; char c; if (! (rank && *rank)) { *strength_ptr = -100; return TRUE; } res = sscanf (rank, "%d%c", &val, &c); if (! (res == 2 && (c == 'k' || c == 'd'))) { return FALSE; } *strength_ptr = (c == 'k') ? -val : val-1; return TRUE; } %} class Go:Player from Gtk:Object { protected GoData *data = NULL; /* the player's full name */ public gchar *name destroywith g_free; argument (CONSTRUCT) POINTER name stringlink; /* the player's abbreviation */ public gchar *token destroywith g_free; argument (CONSTRUCT_ONLY) POINTER token stringlink; /* the player's nominal rank, or NULL */ public gchar *rank destroywith g_free; argument (CONSTRUCT) POINTER rank stringlink; /* the player's strength value */ public double strength; argument (CONSTRUCT) DOUBLE strength link; protected gboolean locked = FALSE; /** * write: * @self: a #GoPlayer object * @node: a XML element of type "player" * * Dump all player data into @node. **/ virtual void write (self, xmlNodePtr node) { xmlSetProp (node, "name", self->name); xmlSetProp (node, "token", self->token); if (self->rank) xmlSetProp (node, "rank", self->rank); if (! self->rank && self->strength > -50) { char buffer [32]; g_snprintf (buffer, 32, "%f", self->strength); xmlSetProp (node, "strength", buffer); } } override (Gtk:Object) void destroy (Gtk:Object *obj) { GoPlayer *self = GO_PLAYER (obj); if (self->data) go_data_remove_player (self->data, self); PARENT_HANDLER (obj); } /** * new: * @data: a #GoData object * @name: the player's full name * @token: the player's abbreviation * @rank: the player's nominal rank, or %NULL * @strength: the player's numerical strength value * * Allocate a new #GoPlayer object, fill in the values, * and connect it to @data. If the strength value is unknown * it should be set to %-100. * * Returns: a newly allocated #GoPlayer object. **/ public GtkObject * new (Go:Data *data (check null type), const char *name (check null), const char *token (check null), const char *rank, double strength) { GtkObject *w; w = gtk_object_new (GO_TYPE_PLAYER, "name", name, "token", token, "rank", rank, "strength", strength, NULL); go_data_add_player (data, GO_PLAYER (w)); return w; } /** * read: * @data: a #GoData object * @node: a XML element of type "player" * * This is a constructor for #GoPlayer objects, * which reads all data from a XML tree. * * Returns: a newly allocated #GoPlayer object. **/ public GtkObject * read (Go:Data *data (check null type), xmlNodePtr node) { char *name, *token, *rank, *strength_str; double strength; name = xmlGetProp (node, "name"); token = xmlGetProp (node, "token"); rank = xmlGetProp (node, "rank"); strength_str = xmlGetProp (node, "strength"); if (strength_str) { strength = str_to_double (strength_str, -100); } else if (! rank_to_strength (rank, &strength)) { g_warning ("invalid rank \"%s\"", rank); strength = -100; } return go_player_new (data, name, token, rank, strength); } } golist-0.3/lib/go-game.gob0000644000175000017500000002003507344203316011113 /* go-game.gob - the GoList type to hold game related information * * Copyright (C) 2001 Jochen Voss. * * $Id: go-game.gob,v 1.2 2001/09/01 16:03:26 voss Exp $ */ %h{ #include #include #define __TYPEDEF_GO_GAME__ typedef struct _GoGame GoGame; #include "go-data.h" #include "go-player.h" typedef enum { b19=19, b13=13, b9=9 } GoBoardSize; extern const char *board_to_str (GoBoardSize board); extern GoBoardSize str_to_board (const char *str); typedef enum { res_BLACK, res_WHITE, res_JIGO } GoGameResult; extern const char *result_to_str (GoGameResult res); extern GoGameResult str_to_result (const char *str); %} %{ #ifdef HAVE_CONFIG_H # include #endif #include #include "go.h" static time_t str_to_time (const char *str) { if (str) { struct tm broken_time; broken_time.tm_sec = 0; broken_time.tm_min = 0; broken_time.tm_hour = 0; sscanf (str, "%d.%d.%d", &broken_time.tm_mday, &broken_time.tm_mon, &broken_time.tm_year); broken_time.tm_mon -= 1; broken_time.tm_year -= 1900; broken_time.tm_isdst = -1; return mktime (&broken_time); } else { return 0; } } static char * time_to_str (time_t t) { struct tm *broken_time; broken_time = localtime (&t); if (t == 0 || broken_time == NULL) return NULL; return g_strdup_printf ("%d.%d.%d", broken_time->tm_mday, broken_time->tm_mon + 1, broken_time->tm_year + 1900); } GoBoardSize str_to_board (const char *str) { GoBoardSize res; if (! str || strcmp (str, "19") == 0) { res = b19; } else if (strcmp (str, "13") == 0) { res = b13; } else if (strcmp (str, "9") == 0) { res = b9; } else { g_assert_not_reached (); res = -1; } return res; } /** * board_to_str: * @board: a board size * * Convert @board to a human-understandable textual representation. * * Returns: the board size as a string. */ const char * board_to_str (GoBoardSize board) { const char *str; switch (board) { case b19: str = "19"; break; case b13: str = "13"; break; case b9: str = "9"; break; default: g_assert_not_reached (); str = NULL; } return str; } GoGameResult str_to_result (const char *str) { GoGameResult res; if (! str) return -1; if (strcmp (str, "black") == 0) { res = res_BLACK; } else if (strcmp (str, "white") == 0) { res = res_WHITE; } else if (strcmp (str, "jigo") == 0) { res = res_JIGO; } else { g_assert_not_reached (); res = -1; } return res; } /** * result_to_str: * @res: a game result * * Convert @res to human understandable textual representation. * * Returns: the result as a string. */ const char * result_to_str (GoGameResult res) { const char *str; switch (res) { case res_BLACK: str = "black"; break; case res_WHITE: str = "white"; break; case res_JIGO: str = "jigo"; break; default: g_assert_not_reached (); str = NULL; } return str; } %} class Go:Game from Gtk:Object { protected GoData *data = NULL; protected time_t date = 0; public GoPlayer *black; argument POINTER (type char *) black set { self->black = go_data_find_token (self->data, ARG); } get { ARG = g_strdup (self->black->token); }; public GoPlayer *white; argument POINTER (type char *) white set { self->white = go_data_find_token (self->data, ARG); } get { ARG = g_strdup (self->white->token); }; protected GoBoardSize board; argument POINTER (type char *) board set { self->board = str_to_board (ARG); } get { ARG = g_strdup (board_to_str(self->board)); }; protected int handicap; argument INT handicap link; protected int komi; protected gboolean with_jigo; argument DOUBLE komi set { self->komi = (int)(ARG+10000)-10000; self->with_jigo = (ARG == self->komi); } get { if (self->with_jigo) { ARG = self->komi; } else { ARG = self->komi + 0.5; } }; public GoGameResult res; protected gboolean locked = FALSE; protected gboolean fake = FALSE; public double probability = -1; protected int black_game_index = -1; protected int white_game_index = -1; override (Gtk:Object) void destroy (Gtk:Object *obj) { GoGame *self = GO_GAME (obj); if (self->data) go_data_remove_game (self->data, self); PARENT_HANDLER (obj); } /** * new: * @data: a #GoData object * @date: the date of the game in the form %dd.mm.yyyy * @black: the black player's token * @white: the white player's token * @board: the board size * @handicap: the number of handicap stones (in favour of black) * @komi: the amount of komi (in favour of white) * @res: the game's outcome * * Allocate a new #GoGame object, fill it with values, and * connect it to @data. * * Returns: a newly allocated #GoGame object. **/ public GtkObject * new (Go:Data *data, time_t date, const char *black (check null), const char *white (check null), GoBoardSize board, int handicap, double komi, GoGameResult res) { GoGame *g = GET_NEW; g->black = go_data_find_token (data, black); g->white = go_data_find_token (data, white); g->date = date; g->board = board; gtk_object_set (GTK_OBJECT (g), GO_GAME_ARG_HANDICAP (handicap), GO_GAME_ARG_KOMI (komi), NULL); g->res = res; go_data_add_game (data, g); return GTK_OBJECT (g); } /** * new_fake: * @data: a #GoData object * * Allocate a new fake #GoGame object and connect it to @data. This * object may be used for internal purposes and does not correspond * to a real game. The data must be filled in manually. * * Returns: a newly allocated #GoGame object. **/ public GtkObject * new_fake (Go:Data *data) { GoGame *g = GET_NEW; g->fake = TRUE; go_data_add_game (data, g); return GTK_OBJECT (g); } /** * write: * @self: a #GoGame object * @node: a XML element of type "game" * * Dump all game data into @node. **/ virtual void write (self, xmlNodePtr node) { char *date_str, *black_str, *white_str, *board_str; gtk_object_get (GTK_OBJECT (self), GO_GAME_GET_ARG_BLACK (&black_str), GO_GAME_GET_ARG_WHITE (&white_str), GO_GAME_GET_ARG_BOARD (&board_str), NULL); date_str = time_to_str (self->date); if (date_str) { xmlSetProp (node, "date", date_str); g_free (date_str); } xmlSetProp (node, "black", black_str); g_free (black_str); xmlSetProp (node, "white", white_str); g_free (white_str); xmlSetProp (node, "board", board_str); g_free (board_str); if (self->handicap) { char buffer [32]; g_snprintf (buffer, 32, "%d", self->handicap); xmlSetProp (node, "handicap", buffer); } if (self->komi || ! self->with_jigo) { char buffer [32]; if (self->with_jigo) { g_snprintf (buffer, 32, "%d", self->komi); } else { g_snprintf (buffer, 32, "%.1f", self->komi+0.5); } xmlSetProp (node, "komi", buffer); } xmlSetProp (node, "res", result_to_str (self->res)); } /** * read: * @data: a #GoData object * @node: a XML element of type "game" * * This is a constructor for #GoGame objects, * which reads all data from a XML tree. * * Returns: a newly allocated #GoGame object. **/ public GtkObject * read (Go:Data *data (check null type), xmlNodePtr node) { time_t date; char *black, *white, *board, *handicap_str, *komi_str, *result; int handicap; double komi; date = str_to_time (xmlGetProp (node, "date")); black = xmlGetProp (node, "black"); white = xmlGetProp (node, "white"); board = xmlGetProp (node, "board"); handicap_str = xmlGetProp (node, "handicap"); handicap = str_to_int (handicap_str, 0); komi_str = xmlGetProp (node, "komi"); komi = str_to_double (komi_str, 0); result = xmlGetProp (node, "res"); return go_game_new (data, date, black, white, str_to_board (board), handicap, komi, str_to_result (result)); } } golist-0.3/lib/go-components.gob0000644000175000017500000002041107344212611012363 /* go-components.gob - calculate the connected components of the game graph * * Copyright (C) 2001 Jochen Voss. * * $Id: go-components.gob,v 1.1 2001/09/01 17:06:17 voss Exp $ */ %h{ #include %} %{ #ifdef HAVE_CONFIG_H # include #endif #include /* TODO */ struct key { const GoPlayer *a, *b; }; static guint hash_key (gconstpointer key) { const struct key *k = key; return GPOINTER_TO_UINT(k->a)+GPOINTER_TO_UINT(k->b); } static gint compare_keys (gconstpointer a, gconstpointer b) { const struct key *ka = a, *kb = b; return (ka->a == kb->a && ka->b == kb->b); } static gboolean free_key_and_value (gpointer key, gpointer value, gpointer user_data) { g_free (key); g_free (value); return TRUE; } static gboolean free_key (gpointer key, gpointer value, gpointer user_data) /* Free the dynamically allocated memory for KEY. * If USER_DATA is non-nil, then only free the key, * if the player (GoPlayer*)USER_DATA is mentioned in KEY. */ { g_free (key); return TRUE; } %} class Go:Components from Go:Client { protected GHashTable *d_geq; /* direct comparison between users */ protected GHashTable *t_geq; /* transitive, reflexive hull of the above */ protected gboolean t_geq_valid = TRUE; init (self) { self->d_geq = g_hash_table_new (hash_key, compare_keys); self->t_geq = g_hash_table_new (hash_key, compare_keys); } override (Gtk:Object) void destroy (Gtk:Object *obj) { GoComponents *self = GO_COMPONENTS (obj); g_hash_table_freeze (self->d_geq); g_hash_table_foreach_remove (self->d_geq, free_key_and_value, NULL); g_hash_table_destroy (self->d_geq); g_hash_table_freeze (self->t_geq); g_hash_table_foreach_remove (self->t_geq, free_key, NULL); g_hash_table_destroy (self->t_geq); PARENT_HANDLER (obj); } /** * new: * @data: a #GoData object * * Allocate a new #GoComponents object and connect it to @data. * * Returns: the new object. */ public GtkObject * new (Go:Data *data) { GoComponents *w; w = GET_NEW; go_data_add_client (data, GO_CLIENT(w)); return GTK_OBJECT (w); } private GoPlayer * ranked_player (self) { int i, n; n = go_client_player_count (GO_CLIENT(self)); for (i=0; irank) return p; } return NULL; } private void t_add_pair (self, const Go:Player *a, const Go:Player *b) { struct key key; gpointer value; g_assert (a != b); key.a = a; key.b = b; value = g_hash_table_lookup (self->t_geq, &key); if (! value) { struct key *key_ptr; key_ptr = g_new (struct key, 1); key_ptr->a = a; key_ptr->b = b; g_hash_table_insert (self->t_geq, key_ptr, (gpointer)TRUE); } } private void t_add (self, const Go:Player *a, const Go:Player *b) { int i, j, k, n; gboolean done; if (geq (self, a, b)) return; t_add_pair (self, a, b); n = go_client_player_count (GO_CLIENT (self)); do { done = TRUE; for (i=0; it_geq_valid) rebuild_transitive_hull (self); key.a = a; key.b = b; value = g_hash_table_lookup (self->t_geq, &key); return (value != NULL); } public gboolean equivalent (self, const Go:Player *a, const Go:Player *b) { return geq (self, a, b) && geq (self, b, a); } public int index (self, const Go:Player *p) { int i, k, n; if (p->rank) return 0; k = -1; n = go_client_player_count (GO_CLIENT(self)); for (i=n-1; i>=0; --i) { GoPlayer *q = go_client_player (GO_CLIENT(self), i); if (equivalent (self, p, q)) { if (q->rank) return 0; k = i; } } return k+1; } private void rth_cb (gpointer key, gpointer value, gpointer user_data) { const struct key *k = key; t_add (GO_COMPONENTS(user_data), k->a, k->b); } private void rebuild_transitive_hull (self) { self->t_geq_valid = TRUE; g_hash_table_freeze (self->t_geq); g_hash_table_foreach_remove (self->t_geq, free_key, NULL); g_hash_table_foreach (self->d_geq, rth_cb, self); g_hash_table_thaw (self->t_geq); } private void add_pair (self, const Go:Player *a, const Go:Player *b) { struct key key; guint *value_ptr; key.a = a; key.b = b; value_ptr = g_hash_table_lookup (self->d_geq, &key); if (value_ptr) { *value_ptr += 1; } else { struct key *key_ptr; key_ptr = g_new (struct key, 1); key_ptr->a = a; key_ptr->b = b; value_ptr = g_new (guint, 1); *value_ptr = 1; g_hash_table_insert (self->d_geq, key_ptr, value_ptr); self->t_geq_valid = FALSE; } } private void remove_pair (self, const Go:Player *a, const Go:Player *b) { struct key key; gpointer old_key_ptr; guint *value_ptr; key.a = a; key.b = b; g_hash_table_lookup_extended (self->d_geq, &key, &old_key_ptr, (gpointer *)&value_ptr); g_assert (value_ptr && *value_ptr > 0); *value_ptr -= 1; if (*value_ptr == 0) { g_hash_table_remove (self->d_geq, &key); g_free (old_key_ptr); g_free (value_ptr); self->t_geq_valid = FALSE; } } public gboolean direct_geq (self, Go:Player *a, Go:Player *b) { struct key key; guint *value_ptr; key.a = a; key.b = b; value_ptr = g_hash_table_lookup (self->d_geq, &key); return (value_ptr != NULL); } override (Go:Client) void register_player (Go:Client *obj, Go:Player *p) { GoComponents *self = GO_COMPONENTS (obj); PARENT_HANDLER (obj, p); if (p->rank) { int i, n; n = go_client_player_count (GO_CLIENT (self)); for (i=0; irank) { add_pair (self, p, q); add_pair (self, q, p); } } } } override (Go:Client) void unregister_player (Go:Client *obj, Go:Player *p) { GoComponents *self = GO_COMPONENTS (obj); if (p->rank) { int i, n; n = go_client_player_count (GO_CLIENT (self)); for (i=0; irank) { remove_pair (self, p, q); remove_pair (self, q, p); } } } PARENT_HANDLER (obj, p); } override (Go:Client) void register_game (Go:Client *obj, Go:Game *g) { GoComponents *self = GO_COMPONENTS (obj); if (g->res == res_BLACK || g->res == res_JIGO) { add_pair (self, g->black, g->white); } if (g->res == res_WHITE || g->res == res_JIGO) { add_pair (self, g->white, g->black); } PARENT_HANDLER (obj, g); } override (Go:Client) void unregister_game (Go:Client *obj, Go:Game *g) { GoComponents *self = GO_COMPONENTS (obj); if (g->res == res_BLACK || g->res == res_JIGO) { remove_pair (self, g->black, g->white); } if (g->res == res_WHITE || g->res == res_JIGO) { remove_pair (self, g->white, g->black); } PARENT_HANDLER (obj, g); } private void dump_cb (gpointer key, gpointer value, gpointer user_data) { struct key *k = key; guint *x = value; printf ("%s >= %s [%u]\n", k->a->token, k->b->token, *x); } public void dump (self) { GoPlayer *base; int i, n; puts ("game relations:"); g_hash_table_foreach (self->d_geq, dump_cb, NULL); putchar ('\n'); base = ranked_player (self); n = go_client_player_count (GO_CLIENT(self)); printf ("global component:"); for (i=0; itoken); } puts ("\n"); } } golist-0.3/lib/go-client.gob0000644000175000017500000002553607344202473011476 /* go-client.gob - abstract base class for all GoData clients * * Copyright (C) 2001 Jochen Voss. * * $Id: go-client.gob,v 1.3 2001/09/01 15:56:43 voss Exp $ */ %h{ #define __TYPEDEF_GO_CLIENT__ typedef struct _GoClient GoClient; #include typedef void (*GoClientPlayerFunc) (GoClient *c, GoPlayer *p, int i, int n, gpointer client_data); typedef void (*GoClientGameFunc) (GoClient *c, GoGame *g, int i, int n, gpointer client_data); typedef void (*go_cb) (GtkObject *obj, void *client_data); typedef int (*GoComparePlayersFunc) (const GoPlayer *a, const GoPlayer *b, void *client_data); %} %{ #ifdef HAVE_CONFIG_H # include #endif #include /* The following is an ugly hack, which is needed * in order to use `qsort'. It will not work * in multi-threaded programs. */ static struct { GoComparePlayersFunc compare_players_fn; void *client_data; } qsort_data; static int qsort_cmp (const void *a, const void *b) { GoPlayer *const *aa = (GoPlayer *const *)a; GoPlayer *const *bb = (GoPlayer *const *)b; return qsort_data.compare_players_fn (*aa, *bb, qsort_data.client_data); } %} class Go:Client from Gtk:Object { public GoData *data; protected GPtrArray *players; protected GPtrArray *games; protected GoComparePlayersFunc compare_players_fn = NULL; protected void *compare_players_data; init (self) { self->players = g_ptr_array_new (); self->games = g_ptr_array_new (); } override (Gtk:Object) void destroy (Gtk:Object *obj) { GoClient *self = GO_CLIENT (obj); if (self->data) go_data_remove_client (self->data, self); g_ptr_array_free (self->players, TRUE); g_ptr_array_free (self->games, TRUE); PARENT_HANDLER (obj); } /** * register_player: * @self: a #GoClient object * @player: a #GoPlayer object * * A virtual method to register a player with the Client. This is * called exactly once for each player by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. */ virtual void register_player (self, Go:Player *player) { g_ptr_array_add (self->players, player); if (self->compare_players_fn) { int i = self->players->len-2; while (i>=0 && self->compare_players_fn (player(self, i), player(self, i+1), self->compare_players_data) > 0) { gpointer tmp; tmp = self->players->pdata[i]; self->players->pdata[i] = self->players->pdata[i+1]; self->players->pdata[i+1] = tmp; --i; } } } /** * unregister_player: * @self: a #GoClient object * @player: a #GoPlayer object * * A virtual method to unregister a player from the Client. * This is called once for each removed player by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. */ virtual void unregister_player (self, Go:Player *player) { if (self->compare_players_fn) { g_ptr_array_remove (self->players, player); } else { g_ptr_array_remove_fast (self->players, player); } } /** * player_count: * @self: a #GoClient object * * Determine the number of players in @self. * * Returns: the number of players. **/ public int player_count (self) { return self->players->len; } /** * player: * @self: a #GoClient object * @i: the player index * * Get player data from the database. * * Returns: player number @i. **/ public GoPlayer * player (self, int i) { if (i<0 || i>=self->players->len) return NULL; return GO_PLAYER (g_ptr_array_index (self->players, i)); } /** * foreach_player: * @self: a #GoClient object * @f: the function to iterate over the players * @data: an additional argument for @f * * Calls function @f for each of the client's players in turn, * using @data as the client_data argument. **/ public void foreach_player (self, GoClientPlayerFunc f, void *data) { int i, n; n = self->players->len; for (i=0; icompare_players_fn = compare_players_fn; self->compare_players_data = client_data; redisplay_players (self); } /** * register_game: * @self: a #GoClient object * @game: a #GoGame object * * A virtual method to register a game with the Client. This is * called exactly once for each game by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. */ virtual void register_game (self, Go:Game *game) { g_ptr_array_add (self->games, game); } /** * unregister_game: * @self: a #GoClient object * @game: a #GoGame object * * A virtual method to unregister a game from the Client. This is * called once for each removed game by the underlying #GoData * object. If your subclass overrides this method, it must "chain * up" the call. * * This function is called by the #GoData object the view * is connected to. There is no need to call it yourself. */ virtual void unregister_game (self, Go:Game *game) { g_ptr_array_remove_fast (self->games, game); } /** * game_count: * @self: a #GoClient object * * Determine the number of games in @self. * * Returns: the number of games. **/ public int game_count (self) { return self->games->len; } /** * game: * @self: a #GoClient object * @i: the game index * * Get game data from the database. * * Returns: game number @i. **/ public GoGame * game (self, int i) { if (i<0 || i>=self->games->len) return NULL; return GO_GAME (g_ptr_array_index (self->games, i)); } /** * foreach_game: * @self: a #GoClient object * @f: the function to iterate over the games * @data: an additional argument for @f * * Calls function @f for each of the client's games in turn, * using @data as the client_data argument. **/ public void foreach_game (self, GoClientGameFunc f, void *data) { int i, n; n = self->games->len; for (i=0; icompare_players_fn) { qsort_data.compare_players_fn = self->compare_players_fn; qsort_data.client_data = self->compare_players_data; qsort (self->players->pdata, self->players->len, sizeof (gpointer), qsort_cmp); } n = self->players->len; if (n == 0) { print_player (self, NULL, -1, 0); } else { for (i=0; igames->len; if (n == 0) { print_game (self, NULL, -1, 0); } else { for (i=0; igames->len; for (i=0; i #include %} %{ #ifdef HAVE_CONFIG_H # include #endif #include #include "go-player.h" #include "go.h" %} class Go:Player:List from Go:Client { public GtkCList *clist; argument (CONSTRUCT_ONLY) POINTER (type GtkCList *) clist objectlink; /** * new: * @data: a #GoData object * @clist: a #GtkCList widget to display the players in * * Allocate a new #GoPlayerList object and connect it to @data. * This function modifies the column attributes of @clist. * * Returns: a newly allocated #GoPlayerList object */ public GtkObject * new (Go:Data *data, Gtk:CList *clist) { GtkObject *w; gtk_clist_set_column_auto_resize (clist, 0, TRUE); gtk_clist_set_column_auto_resize (clist, 2, TRUE); gtk_clist_set_column_auto_resize (clist, 3, TRUE); gtk_clist_set_column_auto_resize (clist, 4, TRUE); gtk_clist_set_column_auto_resize (clist, 5, TRUE); gtk_clist_set_column_justification (clist, 3, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 4, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 5, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 6, GTK_JUSTIFY_RIGHT); w = gtk_object_new (GO_TYPE_PLAYER_LIST, "clist", clist, NULL); go_data_add_client (data, GO_CLIENT(w)); return w; } override (Go:Client) void print_player (Go:Client *obj, Go:Player *p, int i, int n) { GoPlayerList *self = GO_PLAYER_LIST (obj); GtkCList *cl = self->clist; char buffer [32]; if (i==0) gtk_clist_freeze (cl); while (cl->rows > n) gtk_clist_remove (cl, cl->rows-1); if (i<0) return; while (i >= cl->rows) { gchar *line [7] = { "", "", "", "", "", "", "" }; gtk_clist_append (cl, line); } gtk_clist_set_text (cl, i, 0, p->name); gtk_clist_set_text (cl, i, 1, p->token); gtk_clist_set_text (cl, i, 2, p->rank); g_snprintf (buffer, 32, "%d", go_data_player_game_count (GO_CLIENT(self)->data, p)); gtk_clist_set_text (cl, i, 3, buffer); g_snprintf (buffer, 32, "%d", go_data_player_win_count (GO_CLIENT(self)->data, p)); gtk_clist_set_text (cl, i, 4, buffer); if (go_data_player_component (GO_CLIENT(self)->data, p) == 0 && p->strength > -100) { snprint_strength (buffer, 32, p->strength); gtk_clist_set_text (cl, i, 5, buffer); g_snprintf (buffer, 32, "%6.2f", p->strength); gtk_clist_set_text (cl, i, 6, buffer); } else { gtk_clist_set_text (cl, i, 5, "--"); gtk_clist_set_text (cl, i, 6, "--"); } if (i == n-1) gtk_clist_thaw (cl); } } golist-0.3/lib/go-game-list.gob0000644000175000017500000000544107344203052012065 /* go-game-list.gob - a GoData client to list games in a GtkCList * * Copyright (C) 2001 Jochen Voss. * * $Id: go-game-list.gob,v 1.3 2001/09/01 16:00:42 voss Exp $ */ %h{ #include #include %} %{ #ifdef HAVE_CONFIG_H # include #endif #include #include "go-game.h" #include "go.h" %} class Go:Game:List from Go:Client { public GtkCList *clist; argument (CONSTRUCT_ONLY) POINTER (type GtkCList *) clist objectlink; /** * new: * @data: a #GoData object * @clist: a #GtkCList widget to display the games in * * Allocate a new #GoGameList object and connect it to @data. * This function modifies the column attributes of @clist. * * Returns: a newly allocated #GoGameList object */ public GtkObject * new (Go:Data *data, Gtk:CList *clist) { GtkObject *w; gtk_clist_set_column_justification (clist, 3, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 4, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 5, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (clist, 6, GTK_JUSTIFY_CENTER); w = gtk_object_new (GO_TYPE_GAME_LIST, "clist", clist, NULL); go_data_add_client (data, GO_CLIENT(w)); return w; } override (Go:Client) void print_game (Go:Client *obj, Go:Game *g, int i, int n) { GoGameList *self = GO_GAME_LIST (obj); GtkCList *cl = self->clist; char buffer [64]; if (i==0) gtk_clist_freeze (cl); while (cl->rows > n) gtk_clist_remove (cl, cl->rows-1); if (i<0) return; while (i >= cl->rows) { gchar *line [8] = { "", "", "", "", "", "", "", "" }; gtk_clist_append (cl, line); } if (g->date) { struct tm *loctime = localtime (&g->date); strftime (buffer, 64, "%x", loctime); gtk_clist_set_text (cl, i, 0, buffer); } else { gtk_clist_set_text (cl, i, 0, ""); } gtk_clist_set_text (cl, i, 1, g->black->token); gtk_clist_set_text (cl, i, 2, g->white->token); gtk_clist_set_text (cl, i, 3, board_to_str (g->board)); g_snprintf (buffer, 64, "%d", g->handicap); gtk_clist_set_text (cl, i, 4, buffer); if (g->with_jigo) { g_snprintf (buffer, 64, "%d", g->komi); } else { g_snprintf (buffer, 64, "%.1f", g->komi+0.5); } gtk_clist_set_text (cl, i, 5, buffer); gtk_clist_set_text (cl, i, 6, result_to_str (g->res)); if (g->probability >= 0) { g_snprintf (buffer, 64, "%4.2f", g->probability); gtk_clist_set_text (cl, i, 7, buffer); } else { gtk_clist_set_text (cl, i, 7, "--"); } if (i == n-1) gtk_clist_thaw (cl); } override (Go:Client) void select_game (Go:Client *obj, Go:Game *g, int i) { GoGameList *self = GO_GAME_LIST (obj); gtk_clist_moveto (self->clist, i, 0, 1, 0); } } golist-0.3/lib/go-history.gob0000644000175000017500000000630007344203145011702 /* go-history.gob - track the development of a player's strength in time * * Copyright (C) 2001 Jochen Voss. * * $Id: go-history.gob,v 1.2 2001/09/01 16:01:41 voss Exp $ */ %h{ #include %} %{ #ifdef HAVE_CONFIG_H # include #endif #define SIZE_LIMIT 20 %} class Go:History from Gtk:Object { protected double s0; protected double s1; protected double *current; protected int n = 0; override (Gtk:Object) void destroy (Gtk:Object *obj) { GoHistory *self = GO_HISTORY (obj); if (self->n > 0) remove_parameter (self, &self->s0); if (self->n >= SIZE_LIMIT) remove_parameter (self, &self->s1); } /** * new: * @strength_ptr: a pointer to the player's strength value * * Allocate a new #GoHistory object to track the value at * @strength_ptr. The history length is set to %0. You * must call set_length() to increase it. * * Returns: a new #GoHistory object */ public GtkObject * new (double *strength_ptr) { GoHistory *self = GET_NEW; self->current = strength_ptr; self->s0 = *strength_ptr; self->s1 = *strength_ptr; return (GtkObject *)self; } signal private NONE(POINTER) void add_parameter (self, double *ptr); signal private NONE(POINTER) void remove_parameter (self, double *ptr); /** * set_length: * @self: a #GoHistory object * @n: the new history length * * Set the number of games in the record. */ public void set_length (self, int n) { g_assert (self->n==0 && n>0); add_parameter (self, &self->s0); if (n >= SIZE_LIMIT) add_parameter (self, &self->s1); self->n = n; } /** * increase_length: * @self: a #GoHistory object * * Increase the number of games in the record by one. */ public void increase_length (self) { if (self->n == 0) add_parameter (self, &self->s0); if (self->n == SIZE_LIMIT-1) add_parameter (self, &self->s1); self->n += 1; } /** * get_strength: * @self: a #GoHistory object * @i: the game index * * Get the strength value recorded for game number @i. * * Returns: the player's strength */ public double get_strength (self, int i) { int x; g_assert (0 <= i && i < self->n); if (self->ns0; x = self->n/2; if (i>x) return self->s0; return self->s1 + i*(self->s0-self->s1)/x; } /** * probability: * @self: a #GoHistory object * * Estimate the likelihood of the currently stored data. * * Returns: the probability */ public double probability (self) { return 1; } /** * compensator: * @self: a #GoHistory object * * Return a typical mean value for the return value of probability(). * The result does not depend on the current parameter settings, * but it may depend on the number of games stored. * * Returns: the mean probability */ public double compensator (self) { return 1; } /** * write_back: * @self: a #GoHistory object * * Write back the current player strength from the #GoHistory object @self * to the original location. */ public void write_back (self) { *self->current = self->s0; } } golist-0.3/lib/go-strengths.gob0000644000175000017500000004663207344203261012235 /* go-strengths.gob - a GoData client to estimate the players' strengths * * Copyright (C) 2001 Jochen Voss. * * $Id: go-strengths.gob,v 1.2 2001/09/01 16:02:57 voss Exp $ */ %h{ #include %} %{ #ifdef HAVE_CONFIG_H # include #endif #define _GNU_SOURCE 1 #include #include #include #include "go-player.h" #include "go-history.h" enum param_type { p_NORM, p_EXPNORM, p_CLAMP }; struct param { double *val; enum param_type type; const char *name; union { struct { double mu, ss; } norm; struct { double emu, ess; } expnorm; struct { double a, b; } clamp; } d; }; #define P_JIGO_19 0.02 #define P_JIGO_13 0.04 #define P_JIGO_9 0.09 static double jo9, jo13, jo19; static double Phi (double x) /* The distribution function of the standard normal distribution. */ { return (1+erf (x/M_SQRT2))/2; } static double jigo_offset (double p_jigo) /* Return the value x with Phi(+x)-Phi(-x) = P_JIGO. * P_JIGO is the jigo probability for even game. */ { double l, r, q; q = 0.5*(1+p_jigo); g_assert (0.5 <= q && q < Phi(1)); l = 0; r = 1; while (l+1e-6 < r) { double m; g_assert (Phi(l) <= q && q < Phi(r)); m = 0.5*(l+r); if (Phi(m) <= q) { l = m; } else { r = m; } } return l; } static double sqr (double x) { return x*x; } struct mod_fn_data { int n, k; double delta; }; struct llh_fn_data { GoStrengths *s; double value; }; %} class Go:Strengths from Go:Client { public double s19; public double s13; public double s9; public double h19; /* h grade difference = 1 stone handicap */ public double h13; public double h9; public double k19; /* k komi = 1 stone handicap */ public double k13; public double k9; public double e19; /* komi appropriate for even game */ public double e13; public double e9; protected gboolean optimize_constants = FALSE; protected GSList *params; protected GHashTable *histories; protected GoGame *test_game = NULL; class_init (class) { jo9 = jigo_offset (P_JIGO_9); jo13 = jigo_offset (P_JIGO_13); jo19 = jigo_offset (P_JIGO_19); } init (self) { self->params = NULL; /* TODO: add better values here */ self->s19 = 0.5; self->h19 = 1; self->k19 = 10; self->e19 = 5; self->s13 = 2; self->h13 = 2.6; self->k13 = 11.6; self->e13 = 3.75; self->s9 = 7.4; self->h9 = 5; self->k9 = 7.9; self->e9 = 2; self->histories = g_hash_table_new (NULL, NULL); } private void destroy_hist_cb (gpointer key, gpointer value, gpointer data) { gtk_object_unref (GTK_OBJECT (value)); } override (Gtk:Object) void destroy (Gtk:Object *obj) { GoStrengths *self = GO_STRENGTHS (obj); if (self->test_game) gtk_object_destroy (GTK_OBJECT (self->test_game)); g_hash_table_foreach (self->histories, destroy_hist_cb, NULL); g_hash_table_destroy (self->histories); while (self->params) { GSList *head; head = self->params; self->params = head->next; g_free (head->data); g_slist_free_1 (head); } PARENT_HANDLER (obj); } private void add_const_params (self) { // add_expnorm_param (self, "s19", &self->s19, 0, 1, FALSE); // add_expnorm_param (self, "s13", &self->s13, 0.69, 1, FALSE); add_norm_param (self, "h13", &self->h13, 2.6, 1, FALSE); add_norm_param (self, "k13", &self->k13, 11.6, 1, FALSE); add_norm_param (self, "e13", &self->e13, 3.75, 1, FALSE); add_expnorm_param (self, "s9", &self->s9, 2, 1, FALSE); add_norm_param (self, "k9", &self->k9, 7.9, 1, FALSE); add_norm_param (self, "e9", &self->e9, 2, 1, FALSE); self->optimize_constants = TRUE; } /** * new: * @data: a #GoData object * @optimize_constants: try to estimate some internal constants, too. * This needs a lot of game data to give reasonable results. * * Allocate a new #GoStrength object and connect it to @data. * * Returns: the new object. **/ public GtkObject * new (Go:Data *data, gboolean optimize_constants) { GoStrengths *w; w = GET_NEW; go_data_add_client (data, GO_CLIENT(w)); if (optimize_constants) add_const_params (w); return GTK_OBJECT (w); } /************************************************************ * Abstract model parameters */ private void remove_param (self, double *val) { GSList *node = self->params; while (node) { struct param *p = node->data; if (p->val == val) break; node = node->next; } g_assert (node); self->params = g_slist_remove_link (self->params, node); g_free (node->data); g_slist_free_1 (node); } private void add_norm_param (self, const char *name, double *val, double mu, double ss, gboolean rnd) { struct param *p = g_new (struct param, 1); g_assert (ss > 0); p->val = val; p->type = p_NORM; p->name = name; p->d.norm.mu = mu; p->d.norm.ss = ss; self->params = g_slist_append (self->params, p); if (rnd) randomize (p); } private void add_expnorm_param (self, const char *name, double *val, double emu, double ess, gboolean rnd) { struct param *p = g_new (struct param, 1); g_assert (ess > 0); p->val = val; p->type = p_EXPNORM; p->name = name; p->d.expnorm.emu = emu; p->d.expnorm.ess = ess; self->params = g_slist_append (self->params, p); if (rnd) randomize (p); } private void add_clamp_param (self, const char *name, double *val, double a, double b, gboolean rnd) { struct param *p = g_new (struct param, 1); g_assert (b > a); p->val = val; p->type = p_CLAMP; p->name = name; p->d.clamp.a = a; p->d.clamp.b = b; self->params = g_slist_append (self->params, p); if (rnd) randomize (p); } public void parameters_print (self) { GSList *l; printf ("%d parameters total\n", g_slist_length (self->params)); for (l=self->params; l; l=l->next) { if (((struct param *)l->data)->name) { printf ("param %s = %g\n", ((struct param *)l->data)->name, *((struct param *)l->data)->val); } } } private int parameters_count (self) { return g_slist_length (self->params); } private double * parameters_dump (self) { GSList *l; double *mem; int i, n; n = g_slist_length (self->params); mem = g_new (double, n); for (l=self->params, i=0; l; l=l->next,++i) { mem[i] = *((struct param *)l->data)->val; } return mem; } private void parameters_restore (self, double *mem) { GSList *l; int i; for (l=self->params, i=0; l; l=l->next,++i) { *((struct param *)l->data)->val = mem[i]; } g_free (mem); } private void randomize (struct param *p) { switch (p->type) { case p_NORM: *p->val = jvrand_normal (p->d.norm.mu, p->d.norm.ss); break; case p_EXPNORM: *p->val = exp (jvrand_normal (p->d.expnorm.emu, p->d.expnorm.ess)); break; case p_CLAMP: *p->val = jvrand_uniform (p->d.clamp.a, p->d.clamp.b); break; default: g_assert_not_reached (); } } private void rand_cb (gpointer data, gpointer user_data) { randomize (data); } private void randomize_all (self) { g_slist_foreach (self->params, rand_cb, NULL); } private void modify (struct param *p, double d) { double x; switch (p->type) { case p_NORM: *p->val += jvrand_normal (0, d*p->d.norm.ss); break; case p_EXPNORM: *p->val *= exp (jvrand_normal (0, d*p->d.expnorm.ess)); break; case p_CLAMP: x = *p->val + jvrand_normal (0, d*(p->d.clamp.b-p->d.clamp.a)); *p->val = CLAMP (x, p->d.clamp.a, p->d.clamp.b); break; default: g_assert_not_reached (); } } private void mod_cb (gpointer data, gpointer user_data) { struct mod_fn_data *mdata = user_data; double x; x = mdata->k / (double)mdata->n; mdata->n -= 1; if (jvrand_uniform (0,1) < x) return; if (mdata->delta <= 0) { randomize (data); } else { modify (data, mdata->delta); } mdata->k -= 1; } private void randomize_some (self) { struct mod_fn_data data; data.n = parameters_count (self); data.k = 1 + jvrand_poisson (1); data.delta = -1; g_slist_foreach (self->params, mod_cb, &data); } private void modify_some (self, double delta) { struct mod_fn_data data; data.n = parameters_count (self); data.k = 1 + jvrand_poisson (1); data.delta = delta; g_slist_foreach (self->params, mod_cb, &data); } /************************************************************ * actual parameters to describe the players' strengths */ private void add_param_cb (GoHistory *h, double *param, gpointer data) { GoStrengths *self = GO_STRENGTHS (data); add_clamp_param (self, NULL, param, -45, 9, FALSE); } private void remove_param_cb (GoHistory *h, double *param, gpointer data) { GoStrengths *self = GO_STRENGTHS (data); remove_param (self, param); } override (Go:Client) void register_player (Go:Client *obj, Go:Player *player) { GoStrengths *self = GO_STRENGTHS (obj); if (! player->rank) { GtkObject *h = go_history_new (&player->strength); gtk_signal_connect (h, GO_HISTORY_SIGNAL_ADD_PARAMETER (add_param_cb), self); gtk_signal_connect (h, GO_HISTORY_SIGNAL_REMOVE_PARAMETER (remove_param_cb), self); g_hash_table_insert (self->histories, player, h); } PARENT_HANDLER (obj, player); } override (Go:Client) void unregister_player (Go:Client *obj, Go:Player *player) { GoStrengths *self = GO_STRENGTHS (obj); GoHistory *h = find_player_history (self, player); if (h) { gtk_object_destroy (GTK_OBJECT (h)); g_hash_table_remove (self->histories, player); } PARENT_HANDLER (obj, player); } private GoHistory * find_player_history (self, Go:Player *player) { return g_hash_table_lookup (self->histories, player); } override (Go:Client) void register_game (Go:Client *obj, Go:Game *game) { GoStrengths *self = GO_STRENGTHS (obj); GoGame *g = GO_GAME (game); GoHistory *h; h = find_player_history (self, g->black); if (h) go_history_increase_length (h); h = find_player_history (self, g->white); if (h) go_history_increase_length (h); PARENT_HANDLER (obj, game); } private double find_player_strength (self, Go:Player *player, Go:Game *game) { GoHistory *h; int i; h = find_player_history (self, player); if (GO_GAME(game)->fake || ! h) return ((GoPlayer *)player)->strength; i = go_data_player_game_index (((GoClient *)self)->data, player, game); return go_history_get_strength (h, i); } private void write_hist_cb (gpointer key, gpointer value, gpointer data) { go_history_write_back (GO_HISTORY (value)); } private void write_back_strengths (self) { g_hash_table_foreach (self->histories, write_hist_cb, NULL); } /************************************************************ * Probabilistic model implementation */ /** * mu19: * @strength_b: strength value of black player * @strength_w: strength value of white player * @handicap: number of handicap stones * @komi: amount of komi * * Calculate the corrected strength difference for games on a 19x19 board. * * Returns: the corrected strength difference measured in player grades. * Positive values indicate, that the game is in favour of black. */ private double mu19 (self, double strength_b, double strength_w, int handicap, int komi) { double h = self->h19; double k = self->k19; double e = self->e19; double x; x = strength_b - strength_w; x += h*(handicap>0 ? handicap-1 : 0); x -= h * (komi-e)/k; return x; } /** * mu13: * @strength_b: strength value of black player * @strength_w: strength value of white player * @handicap: number of handicap stones * @komi: amount of komi * * Calculate the corrected strength difference for games on a 13x13 board. * * Returns: the corrected strength difference measured in player grades. * Positive values indicate, that the game is in favour of black. */ private double mu13 (self, double strength_b, double strength_w, int handicap, int komi) { double h = self->h13; double k = self->k13; double e = self->e13; double x; x = strength_b - strength_w; x += h*(handicap>0 ? handicap-1 : 0); x -= h * (komi-e)/k; return x; } /** * mu9: * @strength_b: strength value of black player * @strength_w: strength value of white player * @handicap: number of handicap stones * @komi: amount of komi * * Calculate the corrected strength difference for games on a 9x9 board. * * Returns: the corrected strength difference measured in player grades. * Positive values indicate, that the game is in favour of black. */ private double mu9 (self, double strength_b, double strength_w, int handicap, int komi) { double h = self->h9; double k = self->k9; double e = self->e9; double x; x = strength_b - strength_w; x += h*(handicap>0 ? handicap-1 : 0); x -= h * (komi-e)/k; return x; } /** * probability: * @self: a #GoStrengths object * @g: a #GoGame to evaluate * * Use the player data from the #GoStrengths object @self, * to assign a probability to the outcome of game @g. * This modifies the g->probability field. * * Returns: the probability that the given outcome of @g occurs */ public double probability (self, Go:Game *g) { double strength_b, strength_w; int handicap, komi; double mu, sigma, jo, p; strength_b = find_player_strength (self, g->black, g); strength_w = find_player_strength (self, g->white, g); handicap = g->handicap; komi = g->komi; /* avoid compiler warnings */ mu = sigma = jo = p = 0; switch (g->board) { case b19: mu = mu19 (self, strength_b, strength_w, handicap, komi); sigma = self->s19; jo = jo19; break; case b13: mu = mu13 (self, strength_b, strength_w, handicap, komi); sigma = self->s13; jo = jo13; break; case b9: mu = mu9 (self, strength_b, strength_w, handicap, komi); sigma = self->s9; jo = jo9; break; default: g_assert_not_reached (); } switch (g->res) { case res_BLACK: p = 1 - Phi ((jo-mu)/sigma); break; case res_WHITE: if (g->with_jigo) { p = Phi ((-jo-mu)/sigma); } else { p = Phi ((jo-mu)/sigma); } break; case res_JIGO: if (g->with_jigo) { p = Phi ((jo-mu)/sigma) - Phi ((-jo-mu)/sigma); } else { g_assert_not_reached (); } break; default: g_assert_not_reached (); } g->probability = p; return p; } private double compensator (Go:Game *g) { double q = 0; if (g->with_jigo) { switch (g->board) { case b19: q = 2*sqr(0.5*(1-P_JIGO_19)) + sqr(P_JIGO_19); break; case b13: q = 2*sqr(0.5*(1-P_JIGO_13)) + sqr(P_JIGO_13); break; case b9: q = 2*sqr(0.5*(1-P_JIGO_9)) + sqr(P_JIGO_9); break; } } else { switch (g->board) { case b19: q = sqr(0.5*(1-P_JIGO_19)) + sqr(0.5*(1+P_JIGO_19)); break; case b13: q = sqr(0.5*(1-P_JIGO_13)) + sqr(0.5*(1+P_JIGO_13)); break; case b9: q = sqr(0.5*(1-P_JIGO_9)) + sqr(0.5*(1+P_JIGO_9)); break; } } return q; } private double prob_diff (self, Go:Player *black, Go:Player *white, GoBoardSize board, int handicap, int kk) /* kk = 2*komi */ { double p_black, p_white; GoGame *g; if (! self->test_game) { GoData *data = (GoData *)GO_CLIENT(self)->data; g = (GoGame *)go_game_new_fake (data); self->test_game = g; } else { g = self->test_game; } g->black = black; g->white = white; g->board = board; g->handicap = handicap; if (kk%2 == 0) { g->komi = kk/2; g->with_jigo = TRUE; } else { g->komi = (kk-1)/2; g->with_jigo = FALSE; } g->res = res_BLACK; p_black = probability (self, g); g->res = res_WHITE; p_white = probability (self, g); return (p_black - p_white); } public int find_handicap (self, Go:Player *black, Go:Player *white, GoBoardSize board) { int hc; for (hc = 2; hc < 14; ++hc) { if (prob_diff (self, black, white, board, hc, 0) >= 0) break; } return (hc > 2) ? hc-1 : 0; } public double find_komi (self, Go:Player *black, Go:Player *white, GoBoardSize board, int hc) { double a, b, c; int kk; kk = 0; while (prob_diff (self, black, white, board, hc, kk) >= 0.999) ++kk; while (prob_diff (self, black, white, board, hc, kk) <= 0.001) --kk; a = fabs (prob_diff (self, black, white, board, hc, kk-1)); b = fabs (prob_diff (self, black, white, board, hc, kk)); c = fabs (prob_diff (self, black, white, board, hc, kk+1)); while (ab && b>c) { kk += 1; a = b; b = c; c = fabs (prob_diff (self, black, white, board, hc, kk+1)); } return 0.5*kk; } private void llh_fn (Go:Client *c, Go:Game *g, int i, int n, void *client_data) { struct llh_fn_data *data = client_data; if (go_data_players_equiv (GO_CLIENT(data->s)->data, g->black, g->white)) data->value += log (probability (data->s, g) / compensator (g)); } private double component_probability (self) /* Calculate the exponential of the probability (plus some constant) * for all games of component K. */ { struct llh_fn_data data; data.s = self; data.value = 0; go_client_foreach_game (GO_CLIENT(self), llh_fn, &data); return data.value; } public void optimize (self) { double x; int i; x = component_probability (self); for (i=0; i<100; ++i) { double *mem; double y; mem = parameters_dump (self); if (i<2 || isinf(x)) { randomize_all (self); } else if (i<10) { randomize_some (self); } else if (i<20) { modify_some (self, 1); } else if (i<40) { modify_some (self, 0.1); } else if (i<70) { modify_some (self, 0.01); } else { modify_some (self, 0.001); } y = component_probability (self); if (y > x) { g_free (mem); } else { parameters_restore (self, mem); } } component_probability (self); /* fix the probability values */ write_back_strengths (self); go_data_notify_players_changed (GO_CLIENT(self)->data); go_data_notify_games_changed (GO_CLIENT(self)->data); if (self->optimize_constants) { printf ("\ec"); parameters_print (self); printf ("res = %g\n", x); } } public const char * check_preconditions (self) { int i, k, n; k = 0; n = go_client_player_count (GO_CLIENT (self)); for (i=0; irank) ++k; } if (k == 0) { return ("Cannot estimate strenghts.\n" "At least one rank must be assigned."); } else if (k == n) { return ("Nothing to do.\n" "All ranks are explicitly assigned."); } return NULL; } } golist-0.3/src/0000777000175000017500000000000007344217151007215 5golist-0.3/src/Makefile.in0000644000175000017500000003152507344217151011204 # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ GNOME_CONFIG = @GNOME_CONFIG@ GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ GNOME_LIBDIR = @GNOME_LIBDIR@ GNOME_LIBS = @GNOME_LIBS@ GNORBA_CFLAGS = @GNORBA_CFLAGS@ GNORBA_LIBS = @GNORBA_LIBS@ GTKDOC = @GTKDOC@ GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ HTML_DIR = @HTML_DIR@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ JVLIBS = @JVLIBS@ JVRAND_CFLAGS = @JVRAND_CFLAGS@ JVRAND_LIBS = @JVRAND_LIBS@ LIBICONV = @LIBICONV@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ ORBIT_CFLAGS = @ORBIT_CFLAGS@ ORBIT_CONFIG = @ORBIT_CONFIG@ ORBIT_IDL = @ORBIT_IDL@ ORBIT_LIBS = @ORBIT_LIBS@ PACKAGE = @PACKAGE@ PIXMAP_DIR = @PIXMAP_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ ZVT_LIBS = @ZVT_LIBS@ SUBDIRS = anim EXTRA_DIST = games.xpm machine.xpm players.xpm INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl $(shell gnome-config --cflags gnome gnomeui print xml) $(JVRAND_CFLAGS) bin_PROGRAMS = golist golist_SOURCES = main.c players.c games.c control.c about.c print.c golist.h golist_LDADD = ../lib/libgo.a $(JVLIBS) $(INTLLIBS) $(JVRAND_LIBS) -lm mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = PROGRAMS = $(bin_PROGRAMS) DEFS = @DEFS@ -I. -I$(srcdir) -I.. CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ golist_OBJECTS = main.o players.o games.o control.o about.o print.o golist_DEPENDENCIES = ../lib/libgo.a golist_LDFLAGS = CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best SOURCES = $(golist_SOURCES) OBJECTS = $(golist_OBJECTS) all: all-redirect .SUFFIXES: .SUFFIXES: .S .c .o .s $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status mostlyclean-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) distclean-binPROGRAMS: maintainer-clean-binPROGRAMS: install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) list='$(bin_PROGRAMS)'; for p in $$list; do \ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done .c.o: $(COMPILE) -c $< .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< mostlyclean-compile: -rm -f *.o core *.core clean-compile: distclean-compile: -rm -f *.tab.c maintainer-clean-compile: golist: $(golist_OBJECTS) $(golist_DEPENDENCIES) @rm -f golist $(LINK) $(golist_LDFLAGS) $(golist_OBJECTS) $(golist_LDADD) $(LIBS) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ test "$$subdir" = "." && dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = src distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done about.o: about.c ../config.h golist.h ../lib/go-player.h \ ../lib/go-data.h ../lib/go-game.h ../lib/go-client.h control.o: control.c ../config.h ../lib/go-data.h ../lib/go-player.h \ ../lib/go-game.h ../lib/go-client.h ../lib/go-strengths.h \ golist.h players.xpm games.xpm machine.xpm anim/frames.h \ anim/frame01.xpm anim/frame02.xpm anim/frame03.xpm \ anim/frame04.xpm anim/frame05.xpm anim/frame06.xpm \ anim/frame07.xpm anim/frame08.xpm anim/frame09.xpm \ anim/frame10.xpm anim/frame11.xpm anim/frame12.xpm \ anim/frame13.xpm anim/frame14.xpm anim/frame15.xpm \ anim/frame16.xpm anim/frame17.xpm anim/frame18.xpm \ anim/frame19.xpm anim/frame20.xpm games.o: games.c ../config.h ../lib/go-game.h ../lib/go-data.h \ ../lib/go-player.h ../lib/go-client.h ../lib/go-game-list.h \ golist.h main.o: main.c ../config.h ../lib/go-player-list.h ../lib/go-client.h \ ../lib/go-data.h ../lib/go-player.h ../lib/go-game.h \ ../lib/go-game-list.h golist.h ../lib/go.h players.o: players.c ../config.h ../lib/go-player.h ../lib/go-data.h \ ../lib/go-game.h ../lib/go-client.h ../lib/go-player-list.h \ ../lib/go-components.h golist.h print.o: print.c ../config.h ../lib/go-player.h ../lib/go-data.h \ ../lib/go-game.h ../lib/go-client.h ../lib/go-strengths.h \ ../lib/go.h golist.h info-am: info: info-recursive dvi-am: dvi: dvi-recursive check-am: all-am check: check-recursive installcheck-am: installcheck: installcheck-recursive install-exec-am: install-binPROGRAMS install-exec: install-exec-recursive install-data-am: install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive uninstall-am: uninstall-binPROGRAMS uninstall: uninstall-recursive all-am: Makefile $(PROGRAMS) all-redirect: all-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \ mostlyclean-am clean: clean-recursive distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ distclean-generic clean-am distclean: distclean-recursive maintainer-clean-am: maintainer-clean-binPROGRAMS \ maintainer-clean-compile maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile install-data-recursive \ uninstall-data-recursive install-exec-recursive \ uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ all-recursive check-recursive installcheck-recursive info-recursive \ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ install-exec install-data-am install-data install-am install \ uninstall-am uninstall all-redirect all-am all installdirs-am \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/src/Makefile.am0000644000175000017500000000065707343277377011214 ## Process this file with automake to produce Makefile.in SUBDIRS = anim EXTRA_DIST = games.xpm machine.xpm players.xpm INCLUDES = -I$(top_srcdir)/lib \ -I$(top_srcdir)/intl \ $(shell gnome-config --cflags gnome gnomeui print xml) \ $(JVRAND_CFLAGS) bin_PROGRAMS = golist golist_SOURCES = main.c players.c games.c control.c about.c \ print.c golist.h golist_LDADD = ../lib/libgo.a $(JVLIBS) $(INTLLIBS) $(JVRAND_LIBS) -lm golist-0.3/src/main.c0000644000175000017500000000262007341535732010226 /* main.c - * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: main.c,v 1.1.1.1 2001/08/24 20:40:58 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include "go-player-list.h" #include "go-game-list.h" #include "go-game.h" #include "golist.h" #include "go.h" int main_loop_count = 0; int optimize_contants = FALSE; GtkObject *data; static struct poptOption options [] = { { "estimate-constants", 'e', POPT_ARG_NONE, &optimize_contants, 0, N_("Estimate some internal constants (needs a lot of data)"), NULL}, { NULL, '\0', 0, NULL, 0, NULL, NULL } }; int main (int argc, char **argv) { poptContext pctx; const char **args; const char *filename = NULL; setlocale (LC_ALL, ""); #ifdef ENABLE_NLS bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR); textdomain (PACKAGE); #endif jvrand_init (); gnome_init_with_popt_table ("golist", VERSION, argc, argv, options, 0, &pctx); /* parse the command line options */ args = poptGetArgs (pctx); if (args) { if (args[0] != NULL && args[1] != NULL) { g_error (_("At most one command line argument is allowed")); } filename = args[0]; } poptFreeContext(pctx); data = go_data_new (); control_manager_open (filename); gtk_main (); gtk_object_destroy (data); return 0; } golist-0.3/src/players.c0000644000175000017500000002723107344207520010760 /* players.c - implement the player-manager * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: players.c,v 1.4 2001/09/01 16:39:44 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include "golist.h" struct player_manager { GtkWidget *window, *sheet_entry, *edit_entry; GtkCList *clist; GtkObject *player_list; int select; /* dialog entries */ GtkWidget *nentry, *tentry, *rentry; /* edit player */ GoPlayer *p; }; /********************************************************************** * the add-players dialog */ static void complain_rank (struct player_manager *pm, const char *rank) { GtkWidget *dialog; gchar *msg; msg = g_strdup_printf ("Invalid rank \"%s\"!\n" "The rank should be of the form\n" "12k (for 12 kyu) or 3d (for 3 dan)\n" "If the rank is unknown leave this field empty.", rank); dialog = gnome_error_dialog_parented (msg, GTK_WINDOW (pm->window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gdk_beep (); g_free (msg); } static void complain_token (struct player_manager *pm, const char *token) { GtkWidget *dialog; gchar *msg; msg = g_strdup_printf ("Invalid token \"%s\"!\n" "The token should be a short string\n" "consisting only of alphanumeric characters.\n" "It must identify the player uniquely\n" "and must not be empty.", token); dialog = gnome_error_dialog_parented (msg, GTK_WINDOW (pm->window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gdk_beep (); g_free (msg); } static void construct_contents (struct player_manager *pm, GtkWidget *dialog) { GtkWidget *table, *label, *entry; /* construct the dialog contents */ table = gtk_table_new (3, 2, FALSE); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_table_set_row_spacings (GTK_TABLE (table), 2); label = gtk_label_new (_("name: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1, GTK_FILL|GTK_EXPAND, 0, 0, 0); pm->nentry = entry; label = gtk_label_new (_("token: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, 0, 0, 0); pm->tentry = entry; label = gtk_label_new (_("rank: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); entry = gtk_entry_new (); gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, 0, 0, 0); pm->rentry = entry; gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), table, TRUE, TRUE, 0); } static void fill_contents (struct player_manager *pm, GoPlayer *p) { gtk_entry_set_text (GTK_ENTRY (pm->tentry), p->token); gtk_widget_set_sensitive (pm->tentry, FALSE); gtk_entry_set_text (GTK_ENTRY (pm->nentry), p->name ? p->name : ""); gtk_entry_set_text (GTK_ENTRY (pm->rentry), p->rank ? p->rank : ""); } static void ap_clicked_cb (GnomeDialog *dialog, gint button, gpointer user_data) { struct player_manager *pm = user_data; gchar *name, *token, *rank; double strength; if (button != 0) { gnome_dialog_close (dialog); return; } name = gtk_entry_get_text (GTK_ENTRY (pm->nentry)); token = gtk_entry_get_text (GTK_ENTRY (pm->tentry)); if (! token || ! *token) { complain_token (pm, token); return; } rank = gtk_entry_get_text (GTK_ENTRY (pm->rentry)); if (! *rank) rank = NULL; if (! rank_to_strength (rank, &strength)) { complain_rank (pm, rank); return; } go_player_new (GO_CLIENT(pm->player_list)->data, name, token, rank, strength); gtk_entry_set_text (GTK_ENTRY (pm->nentry), ""); gtk_entry_set_text (GTK_ENTRY (pm->tentry), ""); gtk_entry_set_text (GTK_ENTRY (pm->rentry), ""); } static void ap_dialog_open (struct player_manager *pm) { GtkWidget *dialog; dialog = gnome_dialog_new (_("GoList - Add new players"), _("Add"), GNOME_STOCK_BUTTON_CLOSE, NULL); gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (pm->window)); gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (dialog), "goListAddPlayer", "GoList"); construct_contents (pm, dialog); gtk_signal_connect (GTK_OBJECT (dialog), "clicked", GTK_SIGNAL_FUNC (ap_clicked_cb), pm); gtk_widget_show_all (dialog); } static void ep_clicked_cb (GnomeDialog *dialog, gint button, gpointer user_data) { struct player_manager *pm = user_data; gchar *name, *rank; if (button != 0) { gnome_dialog_close (dialog); return; } go_data_player_lock (GO_CLIENT (pm->player_list)->data, pm->p); name = gtk_entry_get_text (GTK_ENTRY (pm->nentry)); rank = gtk_entry_get_text (GTK_ENTRY (pm->rentry)); if (! *rank) rank = NULL; if (! rank_to_strength (rank, &pm->p->strength)) { complain_rank (pm, rank); return; } gtk_object_set (GTK_OBJECT (pm->p), GO_PLAYER_ARG_NAME (name), GO_PLAYER_ARG_RANK (rank), NULL); go_data_notify_players_changed (GO_CLIENT (pm->player_list)->data); go_data_player_unlock (GO_CLIENT (pm->player_list)->data, pm->p); gnome_dialog_close (dialog); } static void ep_dialog_open (struct player_manager *pm, GoPlayer *p) { GtkWidget *dialog; dialog = gnome_dialog_new (_("GoList - Edit player"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL); gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (pm->window)); gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (dialog), "goListEditPlayer", "GoList"); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); construct_contents (pm, dialog); fill_contents (pm, p); pm->p = p; gtk_signal_connect (GTK_OBJECT (dialog), "clicked", GTK_SIGNAL_FUNC (ep_clicked_cb), pm); gtk_widget_show_all (dialog); } /********************************************************************** * handle the user interface */ static void print_playerlist_cb (GtkMenuItem *menuitem, gpointer user_data) { struct player_manager *pm = user_data; print_players (pm->player_list); } static void print_playersheet_cb (GtkMenuItem *menuitem, gpointer user_data) { struct player_manager *pm = user_data; print_sheet (pm->player_list, go_client_player (GO_CLIENT (pm->player_list), pm->select)); } static void close_cb (GtkMenuItem *menuitem, gpointer user_data) { struct player_manager *pm = user_data; gtk_widget_destroy (pm->window); } static void add_players_cb (GtkMenuItem *menuitem, gpointer user_data) { struct player_manager *pm = user_data; ap_dialog_open (pm); } static void edit_player_cb (GtkMenuItem *menuitem, gpointer user_data) { struct player_manager *pm = user_data; GoPlayer *player = go_client_player (GO_CLIENT (pm->player_list), pm->select); ep_dialog_open (pm, player); } static void about_cb (GtkMenuItem *menuitem, gpointer user_data) { about_window_open (); } static GnomeUIInfo file_menu_uiinfo[] = { GNOMEUIINFO_ITEM_NONE (N_("Print player list ..."), N_("Print the list of all players"), print_playerlist_cb), GNOMEUIINFO_ITEM_NONE (N_("Print player sheet ..."), N_("Print an info sheet for the selected player"), print_playersheet_cb), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_CLOSE_ITEM (close_cb, NULL), GNOMEUIINFO_MENU_EXIT_ITEM (quit_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo edit_menu_uiinfo[] = { GNOMEUIINFO_ITEM_NONE (N_("Add new players ..."), N_("Add new players to the database"), add_players_cb), GNOMEUIINFO_ITEM_NONE (N_("Edit player ..."), N_("Modify the database entry " "for the current player"), edit_player_cb), GNOMEUIINFO_END }; static GnomeUIInfo help_menu_uiinfo[] = { GNOMEUIINFO_MENU_ABOUT_ITEM (about_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo menubar_uiinfo[] = { GNOMEUIINFO_MENU_FILE_TREE (file_menu_uiinfo), GNOMEUIINFO_MENU_EDIT_TREE (edit_menu_uiinfo), GNOMEUIINFO_MENU_HELP_TREE (help_menu_uiinfo), GNOMEUIINFO_END }; static void select_cb (GtkCList *clist, gint row, gint column, GdkEventButton *event, gpointer user_data) { struct player_manager *pm = user_data; pm->select = row; gtk_widget_set_sensitive (pm->sheet_entry, TRUE); gtk_widget_set_sensitive (pm->edit_entry, TRUE); } static void unselect_cb (GtkCList *clist, gint row, gint column, GdkEventButton *event, gpointer user_data) { struct player_manager *pm = user_data; pm->select = -1; gtk_widget_set_sensitive (pm->sheet_entry, FALSE); gtk_widget_set_sensitive (pm->edit_entry, FALSE); } static void create_window (struct player_manager *pm) { GtkWidget *window, *sw, *playerlist; gchar *titles [] = { N_("name"), N_("token"), N_("rank"), N_("games"), N_("wins"), N_("c.rank"), N_("score") }; window = gnome_app_new ("GoList", _("GoList - player manager")); gtk_window_set_policy (GTK_WINDOW (window), TRUE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (window), "goListPlayerManager", "GoList"); gtk_window_set_default_size (GTK_WINDOW (window), 0, gdk_screen_height()*0.45); gnome_app_create_menus_with_data (GNOME_APP (window), menubar_uiinfo, pm); pm->sheet_entry = file_menu_uiinfo[1].widget; pm->edit_entry = edit_menu_uiinfo[1].widget; gtk_widget_set_sensitive (pm->sheet_entry, FALSE); gtk_widget_set_sensitive (pm->edit_entry, FALSE); playerlist = gtk_clist_new_with_titles (7, titles); pm->select = -1; gtk_signal_connect (GTK_OBJECT (playerlist), "select-row", GTK_SIGNAL_FUNC (select_cb), pm); gtk_signal_connect (GTK_OBJECT (playerlist), "unselect-row", GTK_SIGNAL_FUNC (unselect_cb), pm); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER(sw), playerlist); gnome_app_set_contents (GNOME_APP (window), sw); pm->window = window; pm->clist = GTK_CLIST (playerlist); } static int compare_players (const GoPlayer *a, const GoPlayer *b, void *client_data) { int ca, cb; ca = go_data_player_component (a->data, a); cb = go_data_player_component (a->data, b); if (ca == cb) { if (a->strength < b->strength) return +1; if (a->strength > b->strength) return -1; return strcmp (a->token, b->token); } if (ca == 0) return -1; if (cb == 0) return +1; if (go_components_geq (GO_COMPONENTS(a->data->components), a, b)) return -1; if (go_components_geq (GO_COMPONENTS(a->data->components), b, a)) return +1; return strcmp (a->token, b->token); } static void destroy_cb (GtkObject *obj, gpointer user_data) { struct player_manager *pm = user_data; gtk_object_destroy (pm->player_list); g_free (pm); --main_loop_count; if (main_loop_count <= 0) gtk_main_quit (); } GtkWidget * player_manager_open (GtkObject *data) { struct player_manager *pm; pm = g_new (struct player_manager, 1); create_window (pm); pm->player_list = go_player_list_new (GO_DATA (data), pm->clist); go_client_sort_players (GO_CLIENT (pm->player_list), compare_players, NULL); ++main_loop_count; gtk_signal_connect (GTK_OBJECT (pm->window), "destroy", GTK_SIGNAL_FUNC (destroy_cb), pm); gtk_widget_show_all (pm->window); gtk_clist_columns_autosize (pm->clist); return pm->window; } golist-0.3/src/games.c0000644000175000017500000003422107344207512010373 /* games.c - implement the game-manager * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: games.c,v 1.4 2001/09/01 16:39:38 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "golist.h" struct game_manager { GtkWidget *window, *edit_entry; GtkCList *clist; GtkObject *game_list; int select; /* dialog entries */ GtkWidget *date, *black, *white, *board, *hc, *komi; GtkWidget *bbutton, *jbutton, *wbutton; /* edit game */ GoGame *g; }; /********************************************************************** * the add-games dialog */ static gchar * option_menu_get_text (GtkWidget *option_menu) { gchar *str; gtk_object_get (GTK_OBJECT (option_menu), "label", &str, NULL); return str; } static void construct_contents (struct game_manager *gm, GtkWidget *dialog) { GoData *data = GO_CLIENT(gm->game_list)->data; GtkWidget *table, *label, *hbox, *menu; GtkObject *adj; GSList *winner_group = NULL; /* construct the dialog contents */ table = gtk_table_new (4, 4, FALSE); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_table_set_row_spacings (GTK_TABLE (table), 2); label = gtk_label_new (_("date: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); label = gtk_label_new (_("players: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); label = gtk_label_new (_("result: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); label = gtk_label_new (_("game: ")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, 0, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gm->date = gnome_date_edit_new ((time_t) 0, FALSE, TRUE); gtk_table_attach (GTK_TABLE (table), gm->date, 1, 4, 0, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0); gnome_date_edit_set_flags (GNOME_DATE_EDIT (gm->date), GNOME_DATE_EDIT_WEEK_STARTS_ON_MONDAY); gm->black = gtk_combo_new (); gtk_table_attach (GTK_TABLE (table), gm->black, 1, 2, 1, 2, GTK_EXPAND|GTK_FILL, 0, 0, 0); gtk_combo_set_popdown_strings (GTK_COMBO(gm->black), go_data_player_tokens (data)); gtk_combo_set_value_in_list (GTK_COMBO(gm->black), TRUE, FALSE); label = gtk_label_new (" - "); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, 0, GTK_FILL, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gm->white = gtk_combo_new (); gtk_table_attach (GTK_TABLE (table), gm->white, 3, 4, 1, 2, GTK_EXPAND|GTK_FILL, 0, 0, 0); gtk_combo_set_popdown_strings (GTK_COMBO(gm->white), go_data_player_tokens (data)); gtk_combo_set_value_in_list (GTK_COMBO(gm->white), TRUE, FALSE); gm->bbutton = gtk_radio_button_new_with_label (winner_group, _("black wins")); winner_group = gtk_radio_button_group (GTK_RADIO_BUTTON (gm->bbutton)); gtk_table_attach (GTK_TABLE (table), gm->bbutton, 1, 2, 2, 3, GTK_EXPAND, 0, 0, 0); gm->jbutton = gtk_radio_button_new_with_label (winner_group, _("jigo")); winner_group = gtk_radio_button_group (GTK_RADIO_BUTTON (gm->jbutton)); gtk_table_attach (GTK_TABLE (table), gm->jbutton, 2, 3, 2, 3, 0, 0, 0, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gm->jbutton), TRUE); gm->wbutton = gtk_radio_button_new_with_label (winner_group, _("white wins")); winner_group = gtk_radio_button_group (GTK_RADIO_BUTTON (gm->wbutton)); gtk_table_attach (GTK_TABLE (table), gm->wbutton, 3, 4, 2, 3, 0, 0, 0, 0); hbox = gtk_hbox_new (FALSE, 0); gtk_table_attach (GTK_TABLE (table), hbox, 1, 4, 3, 4, GTK_EXPAND|GTK_SHRINK|GTK_FILL, GTK_FILL, 0, 0); label = gtk_label_new (_("board: ")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gm->board = gtk_option_menu_new (); menu = gtk_menu_new (); gtk_menu_append (GTK_MENU (menu), gtk_menu_item_new_with_label ("19")); gtk_menu_append (GTK_MENU (menu), gtk_menu_item_new_with_label ("13")); gtk_menu_append (GTK_MENU (menu), gtk_menu_item_new_with_label ("9")); gtk_option_menu_set_menu (GTK_OPTION_MENU (gm->board), menu); gtk_box_pack_start (GTK_BOX (hbox), gm->board, TRUE, TRUE, 0); label = gtk_label_new (_(" handicap: ")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); adj = gtk_adjustment_new (0, 0, 21, 1, 10, 10); gm->hc = gtk_spin_button_new (GTK_ADJUSTMENT (adj), 1, 0); gtk_box_pack_start (GTK_BOX (hbox), gm->hc, TRUE, TRUE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (gm->hc), TRUE); label = gtk_label_new (_(" komi: ")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); adj = gtk_adjustment_new (5, -99, 99, 0.5, 5, 5); gm->komi = gtk_spin_button_new (GTK_ADJUSTMENT (adj), 1, 1); gtk_box_pack_start (GTK_BOX (hbox), gm->komi, TRUE, TRUE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (gm->komi), TRUE); gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), table, TRUE, TRUE, 0); } static void fill_contents (struct game_manager *gm, GoGame *g) { gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(gm->black)->entry), GO_PLAYER(g->black)->token); gtk_entry_set_text (GTK_ENTRY (GTK_COMBO(gm->white)->entry), GO_PLAYER(g->white)->token); gnome_date_edit_set_time (GNOME_DATE_EDIT (gm->date), g->date); switch (g->res) { case res_BLACK: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gm->bbutton), TRUE); break; case res_WHITE: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gm->wbutton), TRUE); break; default: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gm->jbutton), TRUE); break; } switch (g->board) { case b19: gtk_option_menu_set_history (GTK_OPTION_MENU (gm->board), 0); break; case b13: gtk_option_menu_set_history (GTK_OPTION_MENU (gm->board), 1); break; case b9: gtk_option_menu_set_history (GTK_OPTION_MENU (gm->board), 2); break; } gtk_spin_button_set_value (GTK_SPIN_BUTTON (gm->hc), g->handicap); gtk_spin_button_set_value (GTK_SPIN_BUTTON (gm->komi), g->with_jigo ? g->komi : g->komi+0.5); } static void ag_clicked_cb (GnomeDialog *dialog, gint button, gpointer user_data) { struct game_manager *gm = user_data; time_t date; gchar *black, *white, *board; int hc; double komi; GoGameResult res; if (button != 0) { gnome_dialog_close (dialog); return; } black = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO(gm->black)->entry)); white = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO(gm->white)->entry)); date = gnome_date_edit_get_date (GNOME_DATE_EDIT (gm->date)); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gm->bbutton))) { res = res_BLACK; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gm->wbutton))) { res = res_WHITE; } else { res = res_JIGO; } board = option_menu_get_text (gm->board); hc = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (gm->hc)); komi = gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON (gm->komi)); go_game_new (GO_CLIENT(gm->game_list)->data, date, black, white, str_to_board (board), hc, komi, res); g_free (board); } static void ag_dialog_open (struct game_manager *gm) { GtkWidget *dialog; dialog = gnome_dialog_new (_("GoList - Add new games"), _("Add"), GNOME_STOCK_BUTTON_CLOSE, NULL); gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (gm->window)); gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (dialog), "goListAddGame", "GoList"); construct_contents (gm, dialog); gtk_signal_connect (GTK_OBJECT (dialog), "clicked", GTK_SIGNAL_FUNC (ag_clicked_cb), gm); gtk_widget_show_all (dialog); } static void eg_clicked_cb (GnomeDialog *dialog, gint button, gpointer user_data) { struct game_manager *gm = user_data; time_t date; gchar *black, *white, *board; int hc; double komi; GoGameResult res; if (button != 0) { gnome_dialog_close (dialog); return; } go_data_game_lock (GO_CLIENT (gm->game_list)->data, gm->g); black = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO(gm->black)->entry)); white = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO(gm->white)->entry)); date = gnome_date_edit_get_date (GNOME_DATE_EDIT (gm->date)); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gm->bbutton))) { res = res_BLACK; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(gm->wbutton))) { res = res_WHITE; } else { res = res_JIGO; } board = option_menu_get_text (gm->board); hc = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (gm->hc)); komi = gtk_spin_button_get_value_as_float (GTK_SPIN_BUTTON (gm->komi)); gtk_object_set (GTK_OBJECT (gm->g), GO_GAME_ARG_BLACK (black), GO_GAME_ARG_WHITE (white), GO_GAME_ARG_BOARD (board), GO_GAME_ARG_HANDICAP (hc), GO_GAME_ARG_KOMI (komi), NULL); gm->g->date = date; gm->g->res = res; gm->g->probability = -1; g_free (board); go_data_game_unlock (GO_CLIENT (gm->game_list)->data, gm->g); gnome_dialog_close (dialog); } static void eg_dialog_open (struct game_manager *gm, GoGame *g) { GtkWidget *dialog; dialog = gnome_dialog_new (_("GoList - Edit game"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL); gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (gm->window)); gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (dialog), "goListEditGame", "GoList"); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); construct_contents (gm, dialog); fill_contents (gm, g); gm->g = g; gtk_signal_connect (GTK_OBJECT (dialog), "clicked", GTK_SIGNAL_FUNC (eg_clicked_cb), gm); gtk_widget_show_all (dialog); } /********************************************************************** * handle the user interface */ static void print_gamelist_cb (GtkMenuItem *menuitem, gpointer user_data) { struct game_manager *gm = user_data; print_games (gm->game_list); } static void close_cb (GtkMenuItem *menuitem, gpointer user_data) { struct game_manager *gm = user_data; gtk_widget_destroy (gm->window); } static void add_games_cb (GtkMenuItem *menuitem, gpointer user_data) { struct game_manager *gm = user_data; ag_dialog_open (gm); } static void edit_game_cb (GtkMenuItem *menuitem, gpointer user_data) { struct game_manager *gm = user_data; GoGame *game = go_client_game (GO_CLIENT (gm->game_list), gm->select); eg_dialog_open (gm, game); } static void about_cb (GtkMenuItem *menuitem, gpointer user_data) { about_window_open (); } static GnomeUIInfo file_menu_uiinfo[] = { GNOMEUIINFO_ITEM_NONE (N_("Print all games ..."), N_("Print the full list of games"), print_gamelist_cb), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_CLOSE_ITEM (close_cb, NULL), GNOMEUIINFO_MENU_EXIT_ITEM (quit_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo edit_menu_uiinfo[] = { GNOMEUIINFO_ITEM_NONE (N_("Add new games ..."), N_("Add new games to the database"), add_games_cb), GNOMEUIINFO_ITEM_NONE (N_("Edit game ..."), N_("Modify the database entry for the current game"), edit_game_cb), GNOMEUIINFO_END }; static GnomeUIInfo help_menu_uiinfo[] = { GNOMEUIINFO_MENU_ABOUT_ITEM (about_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo menubar_uiinfo[] = { GNOMEUIINFO_MENU_FILE_TREE (file_menu_uiinfo), GNOMEUIINFO_MENU_EDIT_TREE (edit_menu_uiinfo), GNOMEUIINFO_MENU_HELP_TREE (help_menu_uiinfo), GNOMEUIINFO_END }; static void select_cb (GtkCList *clist, gint row, gint column, GdkEventButton *event, gpointer user_data) { struct game_manager *gm = user_data; gm->select = row; gtk_widget_set_sensitive (gm->edit_entry, TRUE); } static void unselect_cb (GtkCList *clist, gint row, gint column, GdkEventButton *event, gpointer user_data) { struct game_manager *gm = user_data; gm->select = -1; gtk_widget_set_sensitive (gm->edit_entry, FALSE); } static void create_window (struct game_manager *gm) { GtkWidget *window, *sw, *gamelist; gchar *titles [] = { N_("date"), N_("black"), N_("white"), N_("board"), N_("handicap"), N_("komi"), N_("result"), N_("prob.") }; window = gnome_app_new ("GoList", _("GoList - game manager")); gtk_window_set_policy (GTK_WINDOW (window), TRUE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (window), "goListGameManager", "GoList"); gtk_window_set_default_size (GTK_WINDOW (window), 0, gdk_screen_height()*0.65); gnome_app_create_menus_with_data (GNOME_APP (window), menubar_uiinfo, gm); gm->edit_entry = edit_menu_uiinfo[1].widget; gtk_widget_set_sensitive (gm->edit_entry, FALSE); gamelist = gtk_clist_new_with_titles (8, titles); gm->select = -1; gtk_signal_connect (GTK_OBJECT (gamelist), "select-row", GTK_SIGNAL_FUNC (select_cb), gm); gtk_signal_connect (GTK_OBJECT (gamelist), "unselect-row", GTK_SIGNAL_FUNC (unselect_cb), gm); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER(sw), gamelist); gnome_app_set_contents (GNOME_APP (window), sw); gm->window = window; gm->clist = GTK_CLIST (gamelist); } static void destroy_cb (GtkObject *obj, gpointer user_data) { struct game_manager *gm = user_data; gtk_object_destroy (gm->game_list); g_free (gm); --main_loop_count; if (main_loop_count <= 0) gtk_main_quit (); } GtkWidget * game_manager_open (GtkObject *data) { struct game_manager *gm; gm = g_new (struct game_manager, 1); create_window (gm); gm->game_list = go_game_list_new (GO_DATA (data), gm->clist); ++main_loop_count; gtk_signal_connect (GTK_OBJECT (gm->window), "destroy", GTK_SIGNAL_FUNC (destroy_cb), gm); gtk_widget_show_all (gm->window); gtk_clist_columns_autosize (gm->clist); return gm->window; } golist-0.3/src/control.c0000644000175000017500000002626207344207455010773 /* control.c - the GoList control center * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: control.c,v 1.5 2001/09/01 16:39:09 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include "golist.h" #include "players.xpm" #include "games.xpm" #include "machine.xpm" GtkObject *strengths; static guint idle_handle; static gboolean idle_active = FALSE; struct control_manager { GtkWidget *window, *appbar, *selector; GtkWidget *games, *players; GtkWidget *comp_button; char *filename; gboolean changed; }; static struct control_manager *cm; static void update_statusbar (struct control_manager *cm) { gchar *status; const char *name; if (cm->filename) { name = strrchr (cm->filename, '/'); name = name ? name+1 : cm->filename; } else { name = "no name"; } status = g_strdup_printf (_(" %s %s: %d players, %d games"), cm->changed ? "**" : "--", name, go_data_player_count (GO_DATA (data)), go_data_game_count (GO_DATA (data))); gnome_appbar_set_default (GNOME_APPBAR (cm->appbar), status); g_free (status); } /********************************************************************** * the animation */ #include "anim/frames.h" static char ** image_data [] = { zz1_xpm, zz2_xpm, zz3_xpm, zz4_xpm, zz5_xpm, zz6_xpm, zz7_xpm, zz8_xpm, zz9_xpm, zz10_xpm, zz11_xpm, zz12_xpm, zz13_xpm, zz14_xpm, zz15_xpm, zz16_xpm, zz17_xpm, zz18_xpm, zz19_xpm, zz20_xpm }; static int phase = 0; static void set_anim_image (struct control_manager *cm, int i) { GtkWidget *vbox = GTK_BIN(cm->comp_button)->child; GtkBoxChild *x = GTK_BOX(vbox)->children->next->data; GnomePixmap *pixmap = GNOME_PIXMAP (x->widget); gnome_pixmap_load_xpm_d (pixmap, i<0 ? machine_xpm : image_data[i]); } /********************************************************************** * the estimation process */ static gint estimator (gpointer user_data) { struct control_manager *cm = user_data; set_anim_image (cm, phase); phase = (phase+19)%20; go_strengths_optimize (GO_STRENGTHS(strengths)); return TRUE; } /********************************************************************** * handle the user interface */ static gchar * query_filename (struct control_manager *cm, const gchar *title, gboolean must_exist) { GtkWidget *dialog, *fileentry, *label; int reply; char *name = NULL; dialog = gnome_dialog_new (_("GoList: choose file"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL); gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (cm->window)); gnome_dialog_set_close (GNOME_DIALOG (dialog), TRUE); gnome_dialog_close_hides (GNOME_DIALOG (dialog), TRUE); label = gtk_label_new (title); gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), label, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); fileentry = gnome_file_entry_new ("golist:golist_loadsave_history", _("GoList: Browse Files For Open")); gnome_dialog_editable_enters (GNOME_DIALOG (dialog), GTK_EDITABLE (gnome_file_entry_gtk_entry(GNOME_FILE_ENTRY(fileentry)))); gnome_dialog_set_default (GNOME_DIALOG (dialog), GNOME_OK); gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), fileentry, FALSE, FALSE, 0); gtk_widget_show_all (dialog); reply = gnome_dialog_run (GNOME_DIALOG (dialog)); if (reply == GNOME_OK) { name = gnome_file_entry_get_full_path (GNOME_FILE_ENTRY(fileentry), must_exist); } gtk_widget_destroy (dialog); return name; } static gboolean save_file (struct control_manager *cm, const char *filename) { if (go_data_save (GO_DATA (data), filename)) { if (filename != cm->filename) { g_free (cm->filename); cm->filename = g_strdup (filename); } cm->changed = FALSE; return TRUE; } else { GtkWidget *dialog; gchar *msg; msg = g_strdup_printf ("cannot write \"%s\"", filename); dialog = gnome_error_dialog_parented (msg, GTK_WINDOW (cm->window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gdk_beep (); g_free (msg); return FALSE; } } static gboolean load_file (struct control_manager *cm, const char *filename) { if (go_data_load (GO_DATA (data), filename)) { g_free (cm->filename); cm->filename = g_strdup (filename); cm->changed = FALSE; return TRUE; } else { GtkWidget *dialog; gchar *msg; msg = g_strdup_printf ("cannot read \"%s\"", filename); dialog = gnome_error_dialog_parented (msg, GTK_WINDOW (cm->window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gdk_beep (); g_free (msg); return FALSE; } } static gboolean offer_save (struct control_manager *cm) { GtkWidget *dialog; int res; if (! cm->changed) return TRUE; dialog = gnome_message_box_new (_("The database is modified but not saved.\n" "Save it now?"), GNOME_MESSAGE_BOX_QUESTION, "Save", "Do not save", GNOME_STOCK_BUTTON_CANCEL, NULL); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); res = gnome_dialog_run (GNOME_DIALOG (dialog)); if (res == 2) return FALSE; if (res == 1) { cm->changed = FALSE; return TRUE; } if (! cm->filename) cm->filename = query_filename (cm, _("Save database:"), FALSE); if (! cm->filename) return FALSE; return save_file (cm, cm->filename); } static void new_cb (GtkMenuItem *menuitem, gpointer user_data) { struct control_manager *cm = user_data; if (! offer_save (cm)) return; go_data_clear (GO_DATA (data)); cm->changed = FALSE; update_statusbar (cm); } static void open_cb (GtkMenuItem *menuitem, gpointer user_data) { struct control_manager *cm = user_data; gchar *filename; if (! offer_save (cm)) return; go_data_clear (GO_DATA (data)); filename = query_filename (cm, _("Open database:"), TRUE); if (filename) { load_file (cm, filename); g_free (filename); } update_statusbar (cm); } static void save_as_cb (GtkMenuItem *menuitem, gpointer user_data) { struct control_manager *cm = user_data; gchar *filename; filename = query_filename (cm, _("Save database:"), FALSE); if (filename) { save_file (cm, filename); g_free (filename); } update_statusbar (cm); } static void save_cb (GtkMenuItem *menuitem, gpointer user_data) { struct control_manager *cm = user_data; if (cm->filename) { save_file (cm, cm->filename); } else { save_as_cb (menuitem, user_data); } update_statusbar (cm); } void quit_cb (GtkMenuItem *menuitem, gpointer user_data) { if (! offer_save (cm)) return; gtk_main_quit (); } static void about_cb (GtkMenuItem *menuitem, gpointer user_data) { about_window_open (); } static GnomeUIInfo file_menu_uiinfo[] = { GNOMEUIINFO_MENU_NEW_ITEM (N_("New database"), N_("Create a new empty database"), new_cb, NULL), GNOMEUIINFO_MENU_OPEN_ITEM (open_cb, NULL), GNOMEUIINFO_MENU_SAVE_ITEM (save_cb, NULL), GNOMEUIINFO_MENU_SAVE_AS_ITEM (save_as_cb, NULL), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_MENU_EXIT_ITEM (quit_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo help_menu_uiinfo[] = { GNOMEUIINFO_MENU_ABOUT_ITEM (about_cb, NULL), GNOMEUIINFO_END }; static GnomeUIInfo menubar_uiinfo[] = { GNOMEUIINFO_MENU_FILE_TREE (file_menu_uiinfo), GNOMEUIINFO_MENU_HELP_TREE (help_menu_uiinfo), GNOMEUIINFO_END }; static void unselect_cb (GtkObject *obj, gpointer user_data) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (user_data), FALSE); } static void players_cb (GtkToggleButton *togglebutton, gpointer user_data) { struct control_manager *cm = user_data; if (gtk_toggle_button_get_active (togglebutton)) { cm->players = player_manager_open (data); gtk_signal_connect (GTK_OBJECT (cm->players), "destroy", GTK_SIGNAL_FUNC (unselect_cb), togglebutton); } else { gtk_widget_destroy (cm->players); } } static void games_cb (GtkToggleButton *togglebutton, gpointer user_data) { struct control_manager *cm = user_data; if (gtk_toggle_button_get_active (togglebutton)) { cm->games = game_manager_open (data); gtk_signal_connect (GTK_OBJECT (cm->games), "destroy", GTK_SIGNAL_FUNC (unselect_cb), togglebutton); } else { gtk_widget_destroy (cm->games); } } static void compute_cb (GtkMenuItem *menuitem, gpointer user_data) { struct control_manager *cm = user_data; if (idle_active) { gtk_idle_remove (idle_handle); set_anim_image (cm, -1); idle_active = FALSE; } else { const char *error; error = go_strengths_check_preconditions (GO_STRENGTHS(strengths)); if (error) { GtkWidget *dialog; dialog = gnome_error_dialog (error); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gdk_beep (); } else { idle_handle = gtk_idle_add (estimator, cm); idle_active = TRUE; } } update_statusbar (cm); } static GnomeUIInfo toolbar_uiinfo[] = { GNOMEUIINFO_TOGGLEITEM (N_("games"), N_("open the game window"), games_cb, games_xpm), GNOMEUIINFO_TOGGLEITEM (N_("players"), N_("open the player window"), players_cb, players_xpm), GNOMEUIINFO_TOGGLEITEM (N_("compute strengths"), N_("toggle the estimation process"), compute_cb, machine_xpm), GNOMEUIINFO_END }; static void create_window (struct control_manager *cm) { GtkWidget *window, *appbar; window = gnome_app_new ("GoList", _("GoList - control center")); gtk_window_set_policy (GTK_WINDOW (window), FALSE, TRUE, FALSE); gtk_window_set_wmclass (GTK_WINDOW (window), "goListControlCenter", "GoList"); appbar = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_USER); gnome_app_set_statusbar (GNOME_APP(window), appbar); cm->appbar = appbar; gnome_app_create_menus_with_data (GNOME_APP (window), menubar_uiinfo, cm); gnome_app_install_menu_hints (GNOME_APP (window), menubar_uiinfo); gnome_app_create_toolbar_with_data (GNOME_APP (window), toolbar_uiinfo, cm); cm->comp_button = toolbar_uiinfo[2].widget; cm->window = window; } static gboolean delete_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { struct control_manager *cm = user_data; return (! offer_save (cm)); } static void destroy_cb (GtkObject *obj, gpointer user_data) { gtk_main_quit (); } void data_changed_cb (GoData *data, gpointer user_data) { struct control_manager *cm = user_data; cm->changed = TRUE; update_statusbar (cm); } void control_manager_open (const char *filename) { cm = g_new (struct control_manager, 1); cm->filename = NULL; cm->changed = FALSE; create_window (cm); cm->games = NULL; cm->players = NULL; ++main_loop_count; gtk_signal_connect (GTK_OBJECT (cm->window), "delete_event", GTK_SIGNAL_FUNC (delete_cb), cm); gtk_signal_connect (GTK_OBJECT (cm->window), "destroy", GTK_SIGNAL_FUNC (destroy_cb), cm); gtk_signal_connect (data, GO_DATA_SIGNAL_CHANGED (data_changed_cb), cm); if (filename) load_file (cm, filename); update_statusbar (cm); strengths = go_strengths_new (GO_DATA (data), optimize_contants); gtk_widget_show_all (cm->window); } golist-0.3/src/about.c0000644000175000017500000000130207341535732010410 /* about.c - open the about-window * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: about.c,v 1.1.1.1 2001/08/24 20:40:58 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include "golist.h" const gchar *authors[] = { "Jochen Voss ", NULL }; void about_window_open (void) { GtkWidget *aboutwindow; aboutwindow = gnome_about_new ("GoList", VERSION, _("Copyright 2001 Jochen Voss"), authors, _("A program to keep track of games results for the asian game of Go. " "It contains some logic to estimate the players' strenghts."), NULL); gtk_widget_show (aboutwindow); } golist-0.3/src/print.c0000644000175000017500000003552607344207627010453 /* print.c - print game and player lists. * * Copyright (C) 2001 Jochen Voss. */ static const char rcsid[] = "$Id: print.c,v 1.2 2001/09/01 16:40:55 voss Exp $"; #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "golist.h" #define PAPER "a4" #define TOP_MARGIN 40 #define BOTTOM_MARGIN 60 #define LEFT_MARGIN 50 /********************************************************************** * Print the game list into a GnomePrintContext. */ struct print_state { GnomePrintContext *pc; const GnomePaper *paper; GnomeFont *rm_font, *bf_font; gboolean first; double pos, xoffset; time_t last_date; int page; }; static double print_pos_top (const struct print_state *ps) { return gnome_paper_psheight (ps->paper) - TOP_MARGIN; } static void print_aligned (struct print_state *ps, double xmin, double xmax, int align, GnomeFont *font, const char *str) { char buffer [1024], *ptr, *strb, *strp; iconv_t cd; double w, mag; int res; size_t x, in, out; mag = LEFT_MARGIN + ps->xoffset; strb = strp = g_strdup (str); cd = iconv_open ("utf8", "latin1"); if (cd == (iconv_t)-1) { perror ("iconv_open"); abort (); } in = strlen(strp); out = 1024; ptr = buffer; x = iconv (cd, &strp, &in, &ptr, &out); *ptr = '\0'; res = iconv_close (cd); if (res) { perror ("iconv_close"); abort (); } g_free (strb); w = gnome_font_get_width_string (font, buffer); gnome_print_setfont (ps->pc, font); if (align > 0) { gnome_print_moveto (ps->pc, mag + xmax-w, ps->pos); } else if (align < 0) { gnome_print_moveto (ps->pc, mag + xmin, ps->pos); } else { gnome_print_moveto (ps->pc, mag + xmin+0.5*(xmax-xmin-w), ps->pos); } gnome_print_show (ps->pc, buffer); } /********************************************************************** * Print the game list into a GnomePrintContext. */ static void print_header (struct print_state *ps) { ps->pos -= 15; print_aligned (ps, 70, 140, -1, ps->bf_font, "black"); print_aligned (ps, 150, 220, -1, ps->bf_font, "white"); print_aligned (ps, 230, 290, 0, ps->bf_font, "board"); print_aligned (ps, 300, 350, 1, ps->bf_font, "hcap"); print_aligned (ps, 350, 400, 1, ps->bf_font, "komi"); ps->pos -= 10; } static void print_one_game (GoClient *c, GoGame *g, int i, int n, void *data) { struct print_state *ps = data; char buffer [64]; gboolean show_date; if (g->date && (ps->last_date != g->date)) { if (! ps->first) ps->pos -= 5; show_date = TRUE; ps->last_date = g->date; } else { show_date = FALSE; } ps->first = FALSE; if (ps->pos <= BOTTOM_MARGIN) { char buffer [64]; ps->pos = BOTTOM_MARGIN - 30; snprintf (buffer, 64, "- %d -", ps->page); print_aligned (ps, 0, gnome_paper_pswidth (ps->paper)-2*LEFT_MARGIN, 0, ps->rm_font, buffer); gnome_print_showpage (ps->pc); ++ ps->page; snprintf (buffer, 64, "%d", ps->page); gnome_print_beginpage (ps->pc, buffer); ps->pos = print_pos_top (ps); print_header (ps); } ps->pos -= 15; if (show_date) { struct tm *loctime = localtime (&((GoGame *)g)->date); strftime (buffer, 64, "%x", loctime); print_aligned (ps, 0, 60, -1, ps->rm_font, buffer); } else if (g->date) { print_aligned (ps, 5, 60, -1, ps->rm_font, "~"); } print_aligned (ps, 70, 140, -1, g->res == res_BLACK ? ps->bf_font : ps->rm_font, GO_PLAYER(g->black)->token); print_aligned (ps, 150, 220, -1, g->res == res_WHITE ? ps->bf_font : ps->rm_font, GO_PLAYER(g->white)->token); print_aligned (ps, 230, 290, 0, ps->rm_font, board_to_str (g->board)); g_snprintf (buffer, 64, "%d", g->handicap); print_aligned (ps, 300, 340, 1, ps->rm_font, buffer); if (g->with_jigo) { g_snprintf (buffer, 64, "%d", g->komi); } else { g_snprintf (buffer, 64, "%g", g->komi+0.5); } print_aligned (ps, 350, 390, 1, ps->rm_font, buffer); } static void print_all_games (GoClient *client, GnomePrintContext *pc) { char buffer [64]; struct print_state ps; ps.pc = pc; ps.paper = gnome_paper_with_name (PAPER); ps.rm_font = gnome_font_new_closest ("Times", GNOME_FONT_BOOK, FALSE, 12); g_assert (ps.rm_font); ps.bf_font = gnome_font_new_closest ("Times", GNOME_FONT_BOLD, FALSE, 12); g_assert (ps.bf_font); ps.page = 1; gnome_print_beginpage (ps.pc, "1"); ps.first = TRUE; ps.last_date = 0; ps.pos = print_pos_top (&ps); ps.xoffset = 0; print_header (&ps); go_client_foreach_game (client, print_one_game, &ps); ps.pos = BOTTOM_MARGIN - 30; snprintf (buffer, 64, "- %d -", ps.page); print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, 0, ps.rm_font, buffer); gnome_print_showpage (ps.pc); } void print_games (GtkObject *client) { GnomePrintMaster *gpm; GnomePrintContext *gpc; GnomePrintMasterPreview *pmp; gpm = gnome_print_master_new (); gnome_print_master_set_paper (gpm, gnome_paper_with_name (PAPER)); gpc = gnome_print_master_get_context (gpm); print_all_games (GO_CLIENT (client), GNOME_PRINT_CONTEXT (gpc)); gnome_print_master_close (gpm); pmp = gnome_print_master_preview_new_with_orientation (gpm, _("Print preview"), FALSE); gtk_widget_show (GTK_WIDGET (pmp)); gtk_object_unref (GTK_OBJECT (gpm)); } /********************************************************************** * Print the list of players into a GnomePrintContext. */ static void print_one_player (GoClient *c, GoPlayer *p, int i, int n, void *data) { struct print_state *ps = data; ps->pos -= 15; print_aligned (ps, 0, 140, -1, ps->rm_font, p->name); print_aligned (ps, 150, 200, -1, ps->rm_font, p->token); if (go_data_player_component (c->data, p) == 0 && p->strength > -100) { char buffer [64]; snprintf (buffer, 64, "%.1f", p->strength); print_aligned (ps, 210, 250, +1, ps->rm_font, buffer); snprint_strength (buffer, 64, p->strength); print_aligned (ps, 260, 300, +1, ps->rm_font, buffer); } if (p->rank) { print_aligned (ps, 300, 310, 0, ps->bf_font, "*"); } } static void print_all_players (GoClient *client, GnomePrintContext *pc) { struct print_state ps; ps.pc = pc; ps.paper = gnome_paper_with_name (PAPER); ps.rm_font = gnome_font_new_closest ("Times", GNOME_FONT_BOOK, FALSE, 12); g_assert (ps.rm_font); ps.bf_font = gnome_font_new_closest ("Times", GNOME_FONT_BOLD, FALSE, 12); g_assert (ps.bf_font); ps.page = 1; gnome_print_beginpage (ps.pc, "players"); ps.pos = print_pos_top (&ps); ps.xoffset = 0; ps.pos -= 15; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.bf_font, "Spielerliste für den geheimen Go-Spielabend"); ps.pos -= 15; { time_t curtime; struct tm *loctime; char buffer [256]; curtime = time (NULL); loctime = localtime (&curtime); strftime (buffer, 256, "Stand: %x", loctime); print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.bf_font, buffer); } ps.pos -= 15; go_client_foreach_player (client, print_one_player, &ps); gnome_print_showpage (ps.pc); } void print_players (GtkObject *client) { GnomePrintMaster *gpm; GnomePrintContext *gpc; GnomePrintMasterPreview *pmp; gpm = gnome_print_master_new (); gnome_print_master_set_paper (gpm, gnome_paper_with_name (PAPER)); gpc = gnome_print_master_get_context (gpm); print_all_players (GO_CLIENT (client), GNOME_PRINT_CONTEXT (gpc)); gnome_print_master_close (gpm); pmp = gnome_print_master_preview_new_with_orientation (gpm, _("Print preview"), FALSE); gtk_widget_show (GTK_WIDGET (pmp)); gtk_object_unref (GTK_OBJECT (gpm)); } static GoGame * last_player_game (GoClient *client, GoPlayer *player) { int i; for (i=go_client_game_count (client)-1; i>=0; --i) { GoGame *g = go_client_game (client, i); if (g->black == player || g->white == player) return g; } return NULL; } static void last_pair_games (GoClient *client, GoPlayer *a, GoPlayer *b, GoGame **res1, GoGame **res2) { int i; gboolean second = FALSE; *res1 = *res2 = NULL; for (i=go_client_game_count(client)-1; i>=0; --i) { GoGame *g = go_client_game (client, i); if ((g->black == a && g->white == b) || (g->black == b && g->white == a)) { if (second) { *res2 = g; return; } *res1 = g; second = TRUE; } } } static void print_game_short (struct print_state *ps, GoGame *g) { gchar *tmpl, *td, *str; ps->pos -= 12; print_aligned (ps, 12, 62, -1, g->res == res_BLACK ? ps->bf_font : ps->rm_font, GO_PLAYER(g->black)->token); print_aligned (ps, 70, 120, -1, g->res == res_WHITE ? ps->bf_font : ps->rm_font, GO_PLAYER(g->white)->token); if (g->date) { char buffer [64]; struct tm *loctime = localtime (&((GoGame *)g)->date); strftime (buffer, 64, "%x", loctime); td = g_strdup_printf (" (%s)", buffer); } else { td = NULL; } tmpl = g_strconcat ("%dx%d %dh %gk", td, NULL); g_free (td); str = g_strdup_printf (tmpl, g->board, g->board, g->handicap, g->with_jigo ? g->komi : g->komi+0.5); print_aligned (ps, 130, gnome_paper_pswidth (ps->paper)-2*LEFT_MARGIN, -1, ps->rm_font, str); g_free (str); g_free (tmpl); } static void suggest (struct print_state *ps, GoData *data, GoPlayer *a, GoPlayer *b, GoStrengths *strengths, GoBoardSize board) { int hc; double komi; gchar *stra, *strb, *str; if (a->strength > b->strength) { GoPlayer *c; c = a; a = b; b = c; } hc = go_strengths_find_handicap (strengths, a, b, board); if (board > 9 && hc > 9) return; komi = go_strengths_find_komi (strengths, a, b, board, hc); ps->pos -= 12; print_aligned (ps, 12, 62, -1, ps->rm_font, GO_PLAYER(a)->token); print_aligned (ps, 70, 120, -1, ps->rm_font, GO_PLAYER(b)->token); stra = g_strdup_printf ("%dx%d %dh %gk", board, board, hc, komi); if (hc < 9) { hc = hc ? hc+1 : 2; komi = go_strengths_find_komi (strengths, a, b, board, hc); strb = g_strdup_printf (" or %dh %gk", hc, komi); } else { strb = NULL; } str = g_strconcat (stra, strb, NULL); print_aligned (ps, 130, gnome_paper_pswidth (ps->paper)-2*LEFT_MARGIN, -1, ps->rm_font, str); g_free (str); g_free (stra); g_free (strb); } static void do_print_sheet (GoClient *client, GoPlayer *p, GnomePrintContext *pc) { struct print_state ps; char buffer [256]; int i; ps.pc = pc; ps.paper = gnome_paper_with_name (PAPER); ps.rm_font = gnome_font_new_closest ("Times", GNOME_FONT_BOOK, FALSE, 10); g_assert (ps.rm_font); ps.bf_font = gnome_font_new_closest ("Times", GNOME_FONT_BOLD, FALSE, 10); g_assert (ps.bf_font); ps.page = 1; gnome_print_beginpage (ps.pc, "players"); ps.pos = print_pos_top (&ps); ps.xoffset = 0; ps.pos -= 12; g_snprintf (buffer, 256, _("player sheet for %s"), p->name); print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.bf_font, buffer); ps.pos -= 12; { time_t curtime; struct tm *loctime; curtime = time (NULL); loctime = localtime (&curtime); strftime (buffer, 256, _("date: %x"), loctime); print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.bf_font, buffer); } ps.pos -= 24; g_snprintf (buffer, 256, _("token: %s"), p->token); print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); if (p->rank) { g_snprintf (buffer, 256, _("nominal rank: %s"), p->rank); ps.pos -= 12; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); } else if (go_data_player_component (client->data, p) == 0 && p->strength > -100) { char s [32]; snprint_strength (s, 32, p->strength); g_snprintf (buffer, 256, _("estimated rank: %s"), s); ps.pos -= 12; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); } { int n, k; n = go_data_player_game_count (client->data, p); k = go_data_player_win_count (client->data, p); g_snprintf (buffer, 256, _("number of games: %d"), n); ps.pos -= 12; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); g_snprintf (buffer, 256, _("number of wins: %d (%.1f%%)"), k, k*100.0/n); ps.pos -= 12; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); } { GoGame *g = last_player_game (client, p); if (g && g->date) { struct tm *loctime = localtime (&g->date); strftime (buffer, 256, _("last recorded game: %x"), loctime); ps.pos -= 12; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); } } ps.pos -= 12; for (i=0; idata, p, opponent))) continue; if (go_data_player_component (client->data, opponent) == 0 && opponent->strength > -100) { char s [32]; snprint_strength (s, 32, opponent->strength); g_snprintf (buffer, 256, "%s (%s):", opponent->name, s); } else { g_snprintf (buffer, 256, "%s:", opponent->name); } if (ps.pos <= BOTTOM_MARGIN + 6*12) { ps.pos = print_pos_top (&ps); ps.xoffset = 0.5*gnome_paper_pswidth (ps.paper)-LEFT_MARGIN+10; } ps.pos -= 12; print_aligned (&ps, 0, gnome_paper_pswidth (ps.paper)-2*LEFT_MARGIN, -1, ps.rm_font, buffer); if (g2) print_game_short (&ps, g2); if (g1) print_game_short (&ps, g1); if (go_data_players_equiv (client->data, p, opponent)) { suggest (&ps, client->data, p, opponent, GO_STRENGTHS(strengths), b19); suggest (&ps, client->data, p, opponent, GO_STRENGTHS(strengths), b13); suggest (&ps, client->data, p, opponent, GO_STRENGTHS(strengths), b9); } ps.pos -= 12; } gnome_print_showpage (ps.pc); } void print_sheet (GtkObject *client, GoPlayer *player) { GnomePrintMaster *gpm; GnomePrintContext *gpc; GnomePrintMasterPreview *pmp; gpm = gnome_print_master_new (); gnome_print_master_set_paper (gpm, gnome_paper_with_name (PAPER)); gpc = gnome_print_master_get_context (gpm); do_print_sheet (GO_CLIENT (client), player, GNOME_PRINT_CONTEXT (gpc)); gnome_print_master_close (gpm); pmp = gnome_print_master_preview_new_with_orientation (gpm, _("Print preview"), FALSE); gtk_widget_show (GTK_WIDGET (pmp)); gtk_object_unref (GTK_OBJECT (gpm)); } golist-0.3/src/golist.h0000644000175000017500000000171407344207476010617 /* golist.h - * * Copyright (C) 2001 Jochen Voss. * * $Id: golist.h,v 1.3 2001/09/01 16:39:26 voss Exp $ */ #ifndef FILE_GOLIST_H_SEEN #define FILE_GOLIST_H_SEEN #include #include /* from "main.c" */ extern int main_loop_count, optimize_contants; extern GtkObject *data; /* from "control.c" */ extern GtkObject *strengths; extern void quit_cb (GtkMenuItem *menuitem, gpointer user_data); extern void control_manager_open (const char *filename); /* from "players.c" */ extern GtkWidget *player_manager_open (GtkObject *data); /* from "games.c" */ extern GtkWidget *game_manager_open (GtkObject *data); /* from "about.c" */ extern void about_window_open (void); /* from "print.c" */ extern void print_recent_games (GtkObject *view); extern void print_games (GtkObject *view); extern void print_players (GtkObject *view); extern void print_sheet (GtkObject *view, GoPlayer *player); #endif /* FILE_GOLIST_H_SEEN */ golist-0.3/src/games.xpm0000644000175000017500000002213707343273442010764 /* XPM */ static char * games_xpm[] = { "128 64 54 1", " c None", ". c #FF9966", "+ c #CC9966", "@ c #CCCCCC", "# c #FFCC66", "$ c #666633", "% c #000000", "& c #333333", "* c #CCCC66", "= c #996633", "- c #999999", "; c #666666", "> c #CCCC99", ", c #663333", "' c #CC9999", ") c #FFFFFF", "! c #99CC99", "~ c #333300", "{ c #99CCCC", "] c #999966", "^ c #996666", "/ c #CC9933", "( c #CC99CC", "_ c #9999CC", ": c #003300", "< c #999933", "[ c #330000", "} c #CCFFCC", "| c #FFCCCC", "1 c #FFCC99", "2 c #330033", "3 c #000033", "4 c #FF9933", "5 c #CCFFFF", "6 c #CC6666", "7 c #993333", "8 c #333366", "9 c #996699", "0 c #669999", "a c #669966", "b c #FF9999", "c c #CC6633", "d c #003333", "e c #FFCCFF", "f c #663366", "g c #663300", "h c #336666", "i c #336633", "j c #FFFFCC", "k c #CCCCFF", "l c #CCCC33", "m c #FFCC33", "n c #666699", "o c #666600", " ..+.+..+..+.+..+.+..+..+..#+..+..+..+.+.+..+.+..+..+..+..+..+...+.+..+..+..+..+.+.+..+.. ", " +#.+#+#~+.+#.*..~$+.#+.#+c].+#.+#+==#..*.+#=$#+#+.#+#&.+#.+#.*,<.+.+#+.$$#+.*.+#.=.*.+#+. ", " .+..+..+.*.+.+.+..#+.+#+.+..+.*.+]^^$]..+.]]^=^.+.+1>>>>.+.+.+.+.#+..+..+.+..+.++#+.+..+. ", " +#.*.+#+.+..+#+.*.+.+..+..*.*.+.^---;,:&/]9--;&&%]#@|)@@@!>.+#.#.+..*.+#+.#.+#+#..+#.*.+#.+ ", " .==..*.+$$$$$7$$,=$$$$$$$$,$,$=$;0]n;&3%&;;--;$d%%@@)@@@'{']$,$$,$$$$,$$,$,$$7$,$$,.+.+.$c. ", " .+#+.+.$.....+...$........=...+=&&&&&[%%,&&&&&[%%2>@@@@{>{-+....$........=..+.....+<.*..+*. ", " .+#+....=+.*.+#+.+=.+.+#+.+<.*..+=&%%%%%=.+,:%%%%,++'>-'-_'+.*+.+=+.+#+.*+=+.*.*.+#.$..+#..+. ", " +..#+*.+=.+.+..*.=+#+.+.+..=+.+#.++];&^$*.+b>|@@>#.+.>1}@1>+..+#.=#+4+..+.+=+..+.+.+=#+.++.+. ", " .++...+#$..*.+..+$.+.*.+#+#$.#+.+;---;&2%+>)))@@@@>#k))e@@@@+#+.+$..+#+./#.$.*4+#.+.$.+#.#+.* ", " +~.+#+.=$$,=$$$=$~=$,$=$,$,&$$,$;;--;$&:%;@@})@@@@-@@|5@@!@@-$$7$~$$,=$$,$$,,$$,$$=,$=+.+.=$.. ", " ..+#+..+$...+..+..=...+.....=....,&&&&&%%%$@@@@@@-{->@@@@@@--'..+.+6.#+.....$...#..+..=+.*.+.+. ", " *..+.*..=.+#.+.+.+$#+.+.*.++<.+*.+$3%%%%%=.b>@{>_>'+.>->{'{>-++#+.+=+...+*.+=+.+.+.#+.$.+.*..*. ", " .+#.+.+#$.+.+.#+.+=+.#+..+.=.+..+..]^&&$6+#+.1@@'>+.+...+-+.#..+.#+$.*.+..+.#$.+#+.+#+/+.+.+.+.+ ", " +.+.#+.+=#.l.+#+.=+.+.#+#+.$*.#+#+;--;;&:&.>@)|5@@@>.+*..=.+.*.#+..=.+#+#+.+.$..+.+..+.,+#.+.#+. ", " ..<.+.+.$.+.+..+.+=+.*.+..+.~6+.++;---;;&[%$@))5@@@@->..+#$.+.+.+.*/&/+..+.+#.=+#.*.*.+.=.+.#+.<. ", " +/+.+#.+=$$=$$$=$$g$,=$$$=$$~=$$=$&&;;&&d%%;@@>@@@@@(]$$=,&$$=$$=,=,~7$$$$=,$$~$,=,$7$$$~#++..+++. ", " .+.*./.+=..+...+..=.+....+..=...+.$2:2%%%%&.'@@@@!-->..+..$....+.+..=+..../...6/+...+...+=..+....+ ", " .+...+#.+=+.+.+#+.+$#++.+.+.+=++..+.=$,%&==.+.+>'(-+'.+.+.+=.++#.+.*.+<+.+..*.+.,*.*.#+.+.$.*.*+#+. ", " .*.+#+.+=+.+#.+.#..$..*.#+.#+=.#+.#+]^;;&&,/*.];a;h&&<.#>|}@@}>'#.*@)@@@>>.*.+#.=.+.+.+#.+=+..+.+.+. ", " ..+..+#.$#.+.+.++.]/+..+#+.+.$.+.++;-!-;;&3%=^---];&&%$|})))@@@!>b@)))@@@@>+.+.+$.+#+.+.+.=+#+.#+#+. ", " +$+.+.+.,$$=$=$=$=~=$$$=$=$=$~$=$=$;9--;&&%%&;;-9;;&%%%@@)@@@@@(!@@@)@@@{@--=$=$g$=$=$=$$=$$..+..$=+ ", " +.+#+#.+.$...+..+..$....+..+.+=..+.$&&&&&&:%%,&&h&&d[%%&@@@@@@@_@->@@@@@@'@--..+.+=..+...+..=*.*.+..+. ", " .+..+.*./=.+.*.+.+.=+.+.+.+..=+.+..+,d[d%%%%=++[%[%%%%~+.>@@@>{'!'.+@!@!_!-'.*..+.,+.+#+..*+,.+.+#+.*. ", " #+.*..+.$+#+..+.#+^,/*.#+.#++$=*.+#..+,&%,$..+.+=,&&,++...+'9;]'..+..''@@'*.+.+.+#=*..+#+...+<#...+.+. ", " .+#.+#..=..*.+#];];;&2~+.+];0;8&:=+.];];;&&&/#+]0;;i&[$.*+]a^;&&~].+1}|@@@@>#+.+.+$.+.+.+#+.+7++#+.#+.+ ", " .+.+#.+*.$+..+.^-_--;&&%~+;---^;&&%$^--@@@--%%^^----;8&%~+;---0;&~%=@@)))@@@@{#+#..=/#.*..+#+.$..+.+.*.. ", " .<=.+.#+.~$$$$$;;-0;;&d%%&;---;f&%%%i;e-;;&-;%&;;--;;&&%%&;---;f&3%%@}e}|@@@>_'$$$,$,$,$$$,=$$~.*..*.=<. ", " .=+#.+.+=+...+=&i,;&&[%%:,&&fi&&%%%&&&@-&&&-&%~&f&;&&~%%%&&&8$&d~%%%@@@@@@@_@>-...+.$...4.+...+=#+.+.^+.+ ", " .+#.+.*..$..+.+.&3~3%%%%&6+:&%&%%%%&.=~3$0^;%%&.=:&%&%%%%,.,:2:2%%%%=.@@@@{>-!-+.+.+.$.+.*.+.+.+$..+.#+.+. ", " .+.+#.+.+=+.*..+.$~%%%,$.+.+,~%%%$=..++,~%%%$=.+.6$%%%%=^#+.c$%%%%$+.+.*'>-_''.*.*.+.,#+.+.+#+..$+#+.+..*. ", " .+#+.+#.#$..+.*.+]^;h&$=.+.1>@e@@>b*..+>@@@@>'#+#+^;;&&$=.*.>1@}@@'+.#+..++/+.+..+.#+j)))@@@@>*1@))5@@>@'.]]---;8&[&+1@)))@@@@>+.+#.+=+#.*.+..+.$..+.*.+.+.$.+.#+#+.. ", " .+=..+#+.$.+.*.^;---^;&&%%]k)))@@@@{(>@5))@@@{>_];9---;$&%%$@k))@@@@@->.+.+.$.+..*.*..+$.+../..*.+=+.+.+.<++ ", " .+$#+..+.$=$,$$&;;a;;&&[%%-@@@}@@@'@!(@@@@@@@-@-;h;;;;8&&%%&@@@@@@>{@@-$$$$$~$$$7$,$$7$~$$$=$$$,$$~..*...+$.. ", " +.+..*.+.$....+,&&&&&&%%%&'@@@@@@!@--1@@@>_>_>_!+&&&&&&%%%%=@@@@@{@-'{'.....,...+...+..,..+.......+=+.+#+.+.+ ", " #.+#+.+#.+$.++..+&[3%%%%%~..>@@>@{'{'+.+!(@{'{'-.+6~3~%%%%%$..>!@@>(!--#+.++.$.+#+.*.+#++=.+.++#+.++=*.+.#+.*. ", " +..+.#+.+$c#.#+#+.<$&&&=+.#+.+'-@''+#+.+.+>-''>+.+.#=$&&,$+.+..'+'{'>..+.#+..$+..+#+..+.+$.+.#.+..+.$.+#+..+.+ ", " #+#+.+];;;&~&/+.+b@@@@@@>+.+1>)@@@@@#+.+.+.$+..#+.+b@@@@@@'*.+#@@@@@@>*.+.#+.+=*.../.+#..,#+.+#+#+..$4+.+#+#.+. ", " .+..]^---;;&2%=#@}))@@@'{'.>|))5@@@@@+.+#.+=+#+..+>}))@@@>@!.+@)))@@@@_>.+.+#+$.+#+.*.+.*$..+..+4.*.+=+..+.+.#+ ", " .+=.];----;h&:%%@@)))@@@>@!>@5))j@@@@@!.+.+.$.+.+#b@@)))@{@({>@@)))@{@>@-*.+../,/..+..#/..=++m+..*.+.+=*.+.#.^<. ", " +/$+$f;a^;;&[3%&@@@@@@!@_-(@@@@@@@@!(!(===<=&=====]@@@@@@'{>-_@@@@@@@'{-@-====&%&==========~==========&..*.+.<7+. ", " .+..$&&8&&2:%%%=@@@@@>_@>!-1@@@@@@!@(!'*.+..$+.*.+.@@>@@{>{(!'+@@@!@@!(!-+#+.+.=*.+#+.++#+.$.+#+.+.+..=<..*..+#+. ", " .+.*6:2:[:%%%%=#'>{'{(!-_-.+>@@@@(!(!'.+.#+.$..+.#+>({>-('{--+#'{'@-_>_'-+..*.+$..+.#+..+..$.+.+.#+#+.+=+.+.*..+. ", " +#+...<,%%%%[=+.+.'>-!(->++..#''!-{->++#+.+..$+#+.+..+'@-!'-'.+.#+'!@--!'.+#+...=+*.+.#+#.+.$..*.+..+.+.$.#+.+.*.+. ", " ..+#+.+]^;&,;+..*.+]^;&$=+.*.+1>|@@'>..+.#+.+,...*.+#+..+$..*.+.+#1>@@@>+.#+.*.*+=+.+.+.+.+#^<..+#+#.*.+$.+..#+.+#+ ", " *..+.]^--;;&&:=.+^]9-;;&&3=.*|@))@@@@@*.+.+#.$+#+..+..*..$.+.+..'@e5|@@@@>+..+...$.#+#.+#+.+.,#+..+.+.../=#+.+...+. ", " .+.*.a9---0;&&%%]^0---a;&&%%+@))))@@@@@>+.#+.+,..+#+.*..++$.#+.*.@j)))@@@{'!.+#+.+$.+.+.#+..*.$.+#+.#+#++.,+.*.*.+.+. ", " +.~.^;a---;,&&%%&;;---;,&&%%;@@)})@@@@@{'+#.+#,*.+#.+.+#..$+..+.>@@@)@@'@{@->..+..$+.+.+.+.+.+$.+#.+.+..+.$.+.+.+/$+. ", " .=++&$;;;;&&3%%%&&;;;;8&3%%%]@@@@@@@!(->][%:[%%[~~~~~~~&~~~,$$$='@@@@@{@>-(!^%:[:%[%~%~&~~&~~&[~~~,$$=$$$$g+..*..<6+. ", " .+#.,&&&&&&:%%%,=&&&&&&~%%%&'@@@@@@@{>_-+...+.$.+.+...+.+.$....+.@{@@(!@_>_!+.+...$.+..+..+..+c^+.+..+..../$#+.+..+.+. ", " .+.+.+%%%%%%%%%,+.&%%%%%%%%~.#>@@!(!(>_>.#+#+.+,.+.+.+..+.+,#++.*..>@!>(!-'-'.*.*+.]=.+.+.*.+.*.$..+.+..++.+,.+#+#+#+.+ ", " +#+.*..$&%%%[$+*.+.=&%%%%$^+.+.+'!(!-'+.+.+.*..$*..*.#+.+..$..+.+#+.''_>_!'*.+...+..$#+#+..+..+.,#+.*.*.#+..$.+.+..+#.. ", " .+..+.+...$.....+#++^;i&,=.+.+.1>|@@@>*.+.#+1>@@@>'.+.+#>1@@@>>.+..*.+.=^..+.*.+#+.+$..+.*.+.*.+$./..+.+..*.==#.*.+.++#+ ", " #.*.+#+#++=++*.+.+^0]9;;&&%/*.@)@)}@@@@>.+1@|5@@@@@>*.+|@)}@@@@@+#+..*.+=+#+..+..*..,+..+.#+..+.=+.*..*4+.+#.$.+.*.#..+. ", " +.+.#+..+.$+...+.+;----;;&~3[+|})))@e@@@!'#@5)))@@>@_>.@})))@}@@@@+.*..+#,.+.*.#+..+#$.*..+..*.+#+$.+.*.+#.+.+$../.+.*.+. ", " .+=+.+.*..$.*.+#+;;----;8&:%%]@@)))}@@@@@'@@|))@@@@{'{>|@)))@@@@>{>.+.+..$+..+.+#/.+.$+.*.+*..+.+.,#.+...+#+..$+.+#.+#=.+. ", " .$+.#+..+.$$7$$,$&;;a;;$&2%%%-@@@@@@@@!(!_@@@@@@@-@>_-@@@@@@@@@@_>-$$$$$$=$$$$=$,$$$,=$,=o,=$$$=,$$$$$$$$,$=$$,/#+.+.+]=.+ ", " +...+#.+#+...+.4.]&,8$8&&2:%%%'5@@@@@@-@@!'@@@@!@@!@-@->@@@@@@@>@!(-..4..+.....+.....+..+..+..4+.+..........+..+..+#+..+#+. ", " .*+#+.+..#++#.+.+.,:&2:2:%%%%+.@@@@@@!@--'+*@{'@-@_'!-'.>@@@@{@_>-!.+.+.+.+#+.+.+.*..#+.*.+.+.+#..++.+.+.*+..*..*.+..*...*.+ ", " .+..+#.*+...+.*.+.+~%%%%%%%&/..'>@!@-(@->+..+@{>_>-{-'.+.>!@'!(!(->.+#.+#..+.+#+.+.++#+..*..*..+/#.+#+#+...*.+.+..*.+.*+..+. ", " .#+.+.+..*/#+..+#+..^$~&,$+.+.+..+''>'+..+#+..+''-'+#+#+...'>'>'+.+..+.*.+#.l..+#.l....+4+.*.+#.+.+4.+.#+4*..*.#+.+..+.#+.#+ ", " +.+#.+#4+.6$..*..+#+...&~...*.*.+#+.=$.+*..+.+.*.&$..+..+.++.+&=#+#+.#+..+.&/+.+.+..*+.<,/+..+.+..*.$.$+.+..+.+.+.$.*.+.+#+.+. ", " .+.+..+#+#,~+.+.+#+.+.+g,.++..+.+.#+$=+..+.*..+.+g$.*.+#+.#.+.&c+..+./.+#.+$.+#.*.+...*+=,.*.+#.+#.+=<$.#+#+.+#.#/$=.+#.+..+.* ", " .*.+#+.+.+...*.+..+.*.+#+#..+#.#.+....*.+#+.#+#.+..+#..+.++#.#+#.+#+.#+.+#..+.+.+.+#+.+.++..+.*.+.+....+..+#..+.+.+.#+.+#+.+.. "}; golist-0.3/src/machine.xpm0000644000175000017500000004377007343273446011306 /* XPM */ static char * machine_xpm[] = { "128 64 108 2", " c None", ". c #669966", "+ c #669933", "@ c #666666", "# c #999966", "$ c #666633", "% c #333333", "& c #66CCCC", "* c #999933", "= c #99CCCC", "- c #66CCFF", "; c #99CCFF", "> c #99FFCC", ", c #996666", "' c #66FFCC", ") c #000000", "! c #003333", "~ c #000033", "{ c #333300", "] c #336633", "^ c #66FFFF", "/ c #99FFFF", "( c #669999", "_ c #996633", ": c #000066", "< c #003366", "[ c #003399", "} c #333366", "| c #333399", "1 c #CC9933", "2 c #000099", "3 c #99CC33", "4 c #666699", "5 c #CCCC33", "6 c #336600", "7 c #CC3333", "8 c #0033CC", "9 c #CC3300", "0 c #3333CC", "a c #330033", "b c #336666", "c c #999999", "d c #66CC99", "e c #330066", "f c #0000CC", "g c #003300", "h c #330099", "i c #99CC99", "j c #999900", "k c #336699", "l c #CC9900", "m c #996699", "n c #CC9966", "o c #CC6633", "p c #3366CC", "q c #99CC00", "r c #006633", "s c #99CC66", "t c #99FF99", "u c #66FF99", "v c #3300CC", "w c #669900", "x c #0033FF", "y c #CC6600", "z c #CCCC00", "A c #CCCC66", "B c #993333", "C c #993300", "D c #666600", "E c #663333", "F c #006600", "G c #33CC00", "H c #66CC33", "I c #6699CC", "J c #339966", "K c #3333FF", "L c #339933", "M c #CC3366", "N c #66CC00", "O c #6666CC", "P c #996600", "Q c #33CC33", "R c #339900", "S c #330000", "T c #663366", "U c #6699FF", "V c #339999", "W c #663399", "X c #663300", "Y c #3366FF", "Z c #006699", "` c #993366", " . c #6633CC", ".. c #006666", "+. c #FF3333", "@. c #9999FF", "#. c #66CC66", "$. c #3399CC", "%. c #FF3300", "&. c #CC6666", "*. c #CC0033", "=. c #9999CC", "-. c #0000FF", ";. c #FF3366", ">. c #CC0000", ",. c #990000", "'. c #6666FF", "). c #0066CC", ") ) ) ) h 2 [ f 2 ) ) ) ", ") ) ) ) ) 8 | -.h 2 v 2 8 : f [ 8 h 2 ) ) ) ) ) ) ", ") x x [ ) 1 1 1 3 j # * 3 * * 5 * 5 5 3 * * n z q * l 2 f 2 2 [ K | h [ f 2 2 f h [ 8 [ f 2 f | [ : h [ ) ) x x x ) ", ") x x x ) ) * * 3 A 1 # l 5 3 q 3 1 # q 3 * 1 1 5 5 1 0 | h 8 | | 0 [ 2 f [ v | 2 [ h 2 e 2 [ [ 2 8 [ [ [ [ | 8 [ 8 h f [ 2 [ [ : | [ [ 8 2 2 h v 8 [ [ 2 ~ ! [ < < 2 f f 2 ) ) x x x ) ) ", ") x x 8 ) ) 5 5 5 5 z l z * A 5 n 3 # l * 3 3 5 1 j | [ | [ 8 8 | [ | } [ [ 2 h | [ [ | f v h 2 h 2 2 : h [ 2 [ 8 h | < 2 2 } 8 h f h 8 2 f < < 8 [ 2 8 2 [ 2 ) ) x x x ) ) ", ") ) ) ) ) ~ | } % 2 [ < [ 8 8 h [ 4 l 1 A l 1 * * n 1 3 * s j q j 1 j z W ).b 2 f [ 8 x 2 2 : 8 h [ 8 h v [ : : | 8 | f } 8 2 f 8 | h 0 2 2 [ a ! : h [ [ [ 8 [ e ) ) ) ) ) ) ", " ) ) ) h [ h [ v [ | | 2 2 h | 2 [ 2 [ k k # j q * 7 9 9 9 9 9 >.C C 7 y l * } | 3 8 8 2 0 v h ! ! ) ) ) ) ", " 8 [ < 2 2 h | f 2 [ 2 [ 8 [ 2 _ | | # o _ 7 7 y B 9 o o y 7 %._ 9 ` | s 5 2 v v } 2 8 ~ ~ ", " } | [ [ 0 2 [ 3 # 0 B B 7 l z j 1 3 1 # # * j 7 9 7 B q 3 v x [ [ 2 2 ~ ~ ~ ~ : ~ ~ : ", " % % % 1 l * M 9 * 1 5 # 3 j 1 5 # * 1 * | 7 7 o 1 2 8 [ | [ h ) : < ~ ! ~ ! ! ", " ] { % 5 1 # 9 7 .* * # l l 1 1 * 1 1 0 | * 7 9 9 v [ 8 = ; & - ' t ; d / ; ; [ [ 8 ~ ~ 2 ~ ", " b % { $ _ . + . ( . 5 l l 7 9 | } 3 q 5 3 l A 5 3 | K @ 3 q 9 9 9 + + @ . _ . + 4 + + @ . $ @ + | 8 [ & t ' / ; = = = & / - ; = 8 [ [ $ . + . . , . * @ . . # * . . , @ # + ( + $ + . # # ( + # . + % ! @ @ . . ~ < * ", " { 6 6 . * + + # @ + # 3 * 7 o # | 0 # 1 * 5 3 0 4 k p 3 1 5 q o 7 _ @ @ . . . # , $ # @ . . # - f 0 | d > ' > ' = - ; = ; / = ^ 2 [ f i _ # $ + _ , # . + @ + $ . . $ + @ . . $ . _ # @ . + . # . . ! ~ 4 + + + % : @ ", " ] ] % , + # . j . $ s 5 o 9 1 5 # 0 p * l 1 # 0 | O + 5 3 1 5 l 7 _ , + @ @ @ . $ * * $ + = > / 8 [ 0 ; ' ^ ; i & / = & = = / d [ 2 | > = . + . , @ . # , + @ + @ $ @ + $ @ . $ 4 , @ + . . $ + * $ ~ } $ . . @ < ~ . ", " ! % 6 , . . $ . 4 $ 3 * B o 3 * s * | 0 + j 4 0 k 0 0 @ 1 * 1 s 7 9 # . + , @ + . @ + . ' ; & ' : 2 V & - ' ' & ^ = & = ' > > p | | k & - ; = _ # + @ $ . $ . $ 4 + . + w . J . # . . + + . . # # } < + + # $ @ ! ~ _ ", " g % % + @ . @ . ( . z 1 9 B z 1 * 3 * | p * k | b 0 0 * 1 1 n 5 9 o + # . . . $ + , . & - ' - > & J d u - ; > > ' > ^ - & & = I 8 2 I ; & ^ - d # . . . $ + + . . + * + . @ . $ @ $ + + + . + @ . ~ ~ . $ @ @ . ! ~ + ", " ] % 6 . $ . * ( # $ 3 3 7 9 A z 3 * 1 # | k 0 Z | 0 1 * # 1 1 1 7 9 . . @ @ + . . * ; & ' i & = / - > & ' d / > i ; = ^ & & & / > & > ^ d = ^ > i . @ * + # + @ @ # @ . . $ @ . @ . * , + . . $ . ~ ~ , @ c _ $ ~ ~ $ ", " 6 % % 4 . , $ , $ # 5 * 9 7 3 * 3 5 5 5 * | k | | # n 3 5 * * 3 9 7 $ + $ $ + # $ ^ = - > - & - ' & & u - = = & > & ' = = / ; > ' = - & ; ^ ^ > / s c . . + + @ @ . $ _ 4 . . @ + m @ + + . , # , < : . + , + @ : : m ", " % r { . * * . . . * # * 9 7 * A n 4 0 | 0 | 0 p O | b 4 1 1 5 q o o $ # $ * c . ' ^ - = & ^ & ^ ' - - > > & - ^ ' ^ > - ; t d - ^ = ^ > > ' ^ = & > # + @ + @ # . @ # . $ . . $ _ ( @ @ _ , $ # _ ~ ! . + , $ # ~ ~ . ", " % % % # , $ + @ $ * * q _ o l j q k 0 0 k k 0 0 k '.p | 3 5 A q 9 o 4 + . . @ I > ' ; = > ' & ' > - ; > = & - > ^ ' ; & - ^ ; / ; ^ > i i - = ; & - ; + # @ # . * # , @ m + * . @ $ . # . + . + + ~ < , . . # + ~ ~ @ ", " % % r + c $ # @ ( + 3 # * 9 9 * z # # * 1 k 0 q 5 5 5 l * * 1 3 7 C . + + . c > = - & ; - - & ' ' ' & & > ; ' ; & ^ & = d i - = - = ; = ; ; - > > d = i $ . # @ $ ( @ 4 @ # # @ $ @ + , # @ . . + % : @ * , # @ e ~ @ ", " r { % . # + # . $ @ n 5 # 9 9 3 5 j 3 # 1 O | n 3 5 3 3 q n l 1 7 B $ . $ * $.( ' - > ' - ; & - ' ^ - = ; - d u & = > > = = / ' - ; & ; > & - - & = ^ i @ # * . . . . + @ @ + . @ @ $ @ $ + 4 . @ k ~ ! # @ . . e ~ ( ", " { g } , * , . @ . . l 1 * 9 7 l 1 # n l q p Y n 1 s n 3 * * 1 9 C _ . $ @ # % : & & / t ' ' - - ; / & & > ; - ' - - & / ; ; = = / = & - & - = ' ^ = - & = + $ . , , @ # , * + . # _ # # . , @ * + # ~ g . @ + @ < : . ", " % { % . ( . # . . , s * l y 7 y 9 * 3 q 5 4 p 3 # 1 * 3 3 n C 7 C $ + w $ c } ! t = ^ & ; = = ; = = ' > ^ / - ; & & ' & ^ & / ^ ^ ' & ; ; ' & & & - : k & @ . * . + + . . . . . . . , . . # @ * + + % ) 4 * + $ % ~ $ ", " 6 b { * . @ + @ . + * 1 j * _ 7 9 7 7 7 o C _ 7 1 5 j 1 7 9 7 y , @ @ $ ( & } ! & / - & - & ; = & / ; ; - & d = & > ' U ' ; > & ; & & = & ; - ^ ^ = a < > . , # . + @ . @ @ $ + , * * @ @ . . . . * } : ~ ! a ! : ~ . ", " ..{ 6 * # @ . * # , s 5 * 3 5 A 1 C 9 7 B 9 7 7 +.9 9 9 o C o 5 # # , $ # = ! : ^ ; - - - & = ; / ' ; & & = - / & = > > ' ' = > ' > ; ; & & ; ' & ; ~ < & I , , . . . # . , * . + . . . , ( + . . # . ! { ~ ~ : < ! . ", " 6 { ] . # _ , * @ _ 1 1 * 3 5 1 1 5 * * * p | o 7 y o 9 y 1 1 3 . 4 * @ # > % : = = = ^ - ' / = & ' - = & & / > ; > > / = - i ' & / > / > - d > ; = ~ ! / ; . _ . . # . . @ $ # . # c + + . ~ ~ @ $ * . @ # ! ! * + @ ", " { ] % # + . # . + 4 . + # * * # . . . . + k p $ . . + . @ . . c + + + . ( & } ! > & ; - - > > > / ^ ^ ' ; = > = ; - / > i ; ' t ^ > ' - ; & i = t & ! % & ^ . + * # @ 4 : : # . } : % @ . . ! : @ @ ( @ + + ~ % , . 4 ", " % % } . + _ . # . + . . @ $ ( . w + . + . | | @ . * . + . , * * + @ . . = > ! ~ / & = ; ' u u ' = > / - > = / - > - > ; & > & ' u - > = - ' ; = ; - ! } = ' $ . # * , { ~ < } @ : ! ! # . + < a } @ , , , . e ~ ( . $ ", " g ! { . + , $ . . + $ @ , + @ $ , , + _ + O p , # _ $ $ . @ $ _ . . . * = ^ } ~ ; ' / = ; i - > t = & d > & ^ ' ^ - ' ' ; ; & ^ ^ & = = - > ' - & & ! a k a ! < ! ! ! ! ) : : , h : ~ . $ * ~ % : $ . 4 ( _ ~ } . . * ", " r % ! . . 4 + * . . . . @ + + @ . # , $ . 0 ~ e : ~ ~ : ~ : ) : ~ a a ~ : < e : - = & > > ' ; ^ ' & ^ i = / - > ' ; ' ; - ; ^ > ; ^ & - = ' ' > u d : ~ 2 ~ ! a < : e ~ e ~ % , e ~ a , . @ ~ ~ < } ~ ! : } a % # # # ", " % { ] . . $ + * _ # + + . * 4 @ . . + @ , | ~ : < ! % < ~ } a } e } < ! : ! : : = i t ; ; ' > u / i / = - > > ; & & ; ' ' & - = ' > > > ; ; > ; ; V g : ! U _ $ @ @ + J } ~ : + < < : + @ % ! ! % ! < : } $ < < + _ + ", " % % % + * , . . . # . # # + . c . # + + * } | + . @ # + _ _ @ . . D @ @ - ; % ~ / / ' ; & & & - = / ; / & & - / > ^ > - ' > = > - ' = > ; ' / > ^ / ! e / ' + * # + # + , < a } < | ~ % . ! < . : ~ < . * . ! ~ $ . @ ", " % ] 6 { ] % % g ] ] $ + + @ @ @ $ . * . . + @ + @ @ | 0 m $ @ # $ @ $ * _ + # @ _ = / } ~ = d = ^ ; = - d - & & = d i ; i & / u - > d = ' - = & = - - & & - = < ! & & . + + . + @ _ ! ~ ! } . ! < $ a ~ . ~ : ! . . # % ~ $ $ + ", " 6 % ] % % ] 6 ] % % % + w . @ m , + + @ 4 . $ @ . 4 0 | + + # @ @ . @ @ @ + + # # ( - } ! ^ - > ; = > > / - > ' ' / - & ' ' > & ' - > ' = - / > > ' / ' > & = ~ } & & _ @ + # _ , * a ! < a + % ~ ! ! ] @ } : : . . + ~ ~ @ @ + ", " % % X ] ! ! g { 6 { ] + m @ * . @ . + + . . + + ~ ! ~ ~ ~ S ~ ~ % . + $ . # + + @ @ & p < ; & & - ' > = ; ^ - ; - & ; ; & > ; = & > > ' ; ^ = = ; > = ^ - / / a < ' - . . . . ( # + < : : < . } < a < @ @ # ~ < . ( ( < ~ ( $ $ ", " # * @ . . $ @ . + + . . $ # @ % : < < < : } % ! ~ * . $ . * * # # . & & ; - = & ; = t ^ ; & ; / ^ = / ; - - - ^ ; & & - ' / = / > ' & - = > > : % > . . * + $ 4 . + @ ~ : $ . $ ! : ] . + + ~ } + # + < ! . . + ", " ] b b ] % % % { 6 ] $ . . . @ . @ @ + @ . w . < ~ _ # + + @ + ! ! + @ . _ _ . + # + @.& ; = / ' & ' = & - & = & / ^ / ; > ' / / ' / ; - ; ' = = & & - ^ - & ' ~ < & + _ . _ + @ @ _ . } } + $ $ % b . $ @ * . _ * . @ : ~ . + . ", " 6 6 % % % % { ] % { { $ @ @ . + + $ @ . + _ . ! a , . _ @ , # ~ ! 4 $ . @ @ . # . $ . ^ & & > & ; / - > u / - & = & - & ; - ^ > > / & - / ^ ^ & > - ' ' ' - & ! 4 & + ( $ . $ * . * . + $ + $ . . . @ # ( , # # , @ + } ~ . @ . ", " % % % ! } r { 6 6 g { @ 4 . . . + 4 . @ @ . * ~ a $ # @ @ . @ : ! @ @ _ . @ @ . + @ + = ; = / / ^ / ^ ; - - ' > = ' / ^ = ; ; ' ' = & - ' ; = d = - @.> = ; = ^ & @ . + @ @ , # * , . . $ . @ . . + ( # 4 . + , + , w ! a + , . ", " ! g { + . @ # . . . + # + . + . # @ % ! { # . . + $ g a # # # . # . . # . # . & - / > / ' & u ; = > - ' > & - ; ^ > & ' = > - > d = ; / & = > > = ; ; = # + . + + @ $ + # * + . . # + # . . $ @ @ # @ @ . , ~ ~ @ . _ ", " { % { * # + @ + ( . 4 m + # # @ D * . < : . + @ . ! } ] + . + + # + # # . ( $ u / = = ^ / ; & - = > ^ > & & & ; & > ' ' - - - = & d & = / ' - ' > / & . _ _ + @ * + . . @ $ _ . # + ( . c . # . # @ . # + + } } @ . + ", " ! 6 % ( , . + + # . # # + @ @ + 4 . * < < . # _ . } < * . * * ( @ @ , @ @ 4 # . - & ; & & & & = - / / i = = u & - ; / = & - / ; & - > t > ' = = = = & # . , . # . @ + $ , . . * . @ + . # $ # . @ . $ . . . < ~ . @ . ", " } ! { $ + # . # . . @ . . + @ @ $ @ ( ! : L . $ . < a . @ _ # , @ @ , , . * # @ d - - - t ^ - d / & / = & ^ ' ^ & = - & = & = - - = = - ' / = ' ; = , + + @ . @ . . . + . . @ + $ @ . . # * . @ . + . m # + } : @ + @ ", " % g % % @ # @ # @ $ # + * . $ . . , _ + ! < @ + . . e : . # , _ + w @ # + , # # * # & & ^ - - / & > / ^ & ^ & d & / = ' ' ; ' ' i ' & = / ; > & & ' # + , + _ . , 4 + @ . @ _ . c ( # . . @ . . . . + . * # # % < # # + ", " % F % # . . . @ . 4 # @ # @ . $ * @ . ~ ! . $ + . [ ~ . . # . . $ # . + + @ . * . @ i = u ; ; = & ; = = ' - ' & ' & & ; = / - ' > ' ; ; - = & ; + . . . . _ @ @ # + @ @ # @ , . @ . # . # @ @ + + . # $ + # ! % * , @ ", " % % % _ 4 # + # . @ . * @ . _ . @ + $ < ~ # + @ $ e ~ @ $ * . $ # _ ( $ $ @ # + . , , =.^ = ^ = ; ( & & ^ & > = ' & & & ' > i - ( ( ' ; ^ ' - . w + . + _ $ . $ . @ @ @ @ # + @ . , + + . , . * + $ c . + + < ~ $ @ @ ", " % ] 6 # . + $ _ @ . . , # _ + @ . . # % : $ $ $ . ! ~ @ w . $ . @ . + # # + $ * # . $ + ( = - / % % ( & ; & & ' ; > ; = & / - > % % { ^ = ^ # @ _ _ @ . . . . * # . . $ . # . + @ . # + . $ $ + . _ + . * @ : a . @ , ", " g ] % @ @ $ $ . . . @ $ _ . _ , . @ . ~ ~ , # , $ < ! @ , + @ . @ . @ @ # @ . _ + . # . $ $ & & ! ] b ' ' i - ; ^ > ^ ; - / > ; } 6 6 = d $ . . @ . . $ + * _ $ , + . . . + * $ # . $ ( m # * + @ . $ @ @ . % ~ , . + ", " 6 { } + . . . # , @ * + . . + * $ . @ % ~ . . $ @ % e $ ( # + # # * + + @ + + . . . . , . , $ ( % % ] > > - = ; ; & & - = = & = { ..% @ + # . + . 4 ( _ + + . , . . . @ . + @ + . + . # + + $ m $ . # . . @ % ~ + + @ ", " % % % @ # @ $ @ _ . @ . . _ , + + * . : < ~ : ~ ~ ! < . . _ + . 4 $ + @ . # . # + . + . * . . # r { 6 ^ ^ = ' & > = ' = - ; > > ] { b . . + @ + . . $ 4 . . + $ . @ _ @ $ # + * ( _ + . @ . * . . 4 , . . $ < ! _ # @ ", " % 6 % . + @ * + . * + $ . @ + . . + , . ! < a e : % $ j w @ * . $ + @ + @ , c @ # , , . . ( $ # ! % % . * #.i & & ; ' ( s . @ @ ] % % . . # + , . . . , . $ + w $ * . + # . . + # _ _ + # ( * + # . $ $ $ . % : $ _ c ", " ! { % # . . + . $ c @ + $ ( . 4 , # * , . @ ( a } . + b @ $ + + @ $ # $ . + ( # # . w # . @ ( . % 6 % . 4 , . + , @ _ ( , . . . } ] { @ . * . @ , , . + @ . # 4 $ * # * # + . 4 * @ * . * @ # @ . @ @ @ @ . % : * . @ ", " ) ) ! { % # D , , . + . @ . + . @ _ + * . + @ . . ! { @ # . , $ + , . _ $ $ + + # + , @ . + _ . * * { { { @ . + @ m @ + . @ . $ _ @ % % < * # m , , @ . * . , # @ @ . . . + * . $ $ . _ + + 4 * $ @ . $ + @ # , ~ : * $ # ", " ) ) ) ) ) ) ) % { ] % { % E ] . * + @ . * _ . . $ @ @ . # + $ . a a . $ @ @ + @ @ + # + * + b ] % % ] ] ] % } b . ] 6 b . ( # + _ _ * # @ . $ @ + $ ] F # ( @ . P + @ . . . c @ . . @ + _ # . _ $ # ( @ + @ ( . . # # + , @ . ! ! @ # # ", " ) ) g { % ) ) ~ { E % % { ] { { ] ! % % { b % $ ] ] ] % D ] % 6 < ~ 6 D % ] % { ] % { } % g ! { r { { % { % 6 ] % r ] ! ! ] ] { % ] ] 6 ] ] b % % 6 6 % % ] % ] b ] % ] % % { { % ] % T % E % % { % % < ] % r ] { % % { @ 6 { : : X b @ { 6 g ) ) ) ) ", " ) g Q Q Q L ) ) { { % % g ] ] % ] b ! 6 % % ] ] % { % F { g % { ! ! ! ] % % { { % % % r b { % ] % } ! ] % { % % { { 6 % % % ] 6 % % % { ] { ] { b ] g % % % < < % { % ] } { % ] { ] g { < % g ] % % { % r 6 F ] ] ] { % ] { 6 g a { { % { ] ] b ) ) { ) ) ) ", " ) ) N w N w ) ) . $ b ] ] ] % ! % { ] { { { ] % { g ] % % % % { g % % b % { E ] ] { } + # @ . . @ . + ] } b 6 % % % } % g % ! 6 % % % { % 6 g } % % ] ! { % % F { % { F ] % ! % { % ] { F % { } } % { % % { g % { } ] % % % F % ] % % { ) H H H ) ) ", " ) ) L Q Q { ) ) . . + . + . . . $ . , _ @ . . + . + * ( . # + . @ . , @ * # @ @ . # . . # . m $ . 4 * $ # $ w . . + $ * @ # @ + . _ + + _ + + . . @ $ # @ $ * + + w @ # + c . * @ + + . P $ . # $ . . + + @ @ # $ * . @ @ . D 6 6 g ! ) R G G % ) ) ", " ) ) ) ) ) ) . @ @ m # . @ , @ @ _ , P . + . $ ( @ @ + _ # # @ # + + # + # # + @ ( @ * $ @ . , $ @ * + . @ # * ( # @ + @ @ + + J # m P . . # @ @ @ * + . + . . $ . . , . @ . . @ . , 4 . + + , $ . $ @ . . 4 @ c @ $ . . . _ ) N N N ) ) ", " ) ) ) ) ) ) ) ) ) ) ) ", " ) ) ) ) ) ) ) ", " ", " "}; golist-0.3/src/players.xpm0000644000175000017500000002313707343273451011350 /* XPM */ static char * players_xpm[] = { "128 64 88 1", " c None", ". c #333333", "+ c #339933", "@ c #333399", "# c #339900", "$ c #003399", "% c #330033", "& c #330000", "* c #333300", "= c #663333", "- c #666666", "; c #FFCCCC", "> c #FFFFCC", ", c #330099", "' c #666633", ") c #CC6600", "! c #996600", "~ c #996633", "{ c #000099", "] c #996666", "^ c #663366", "/ c #999999", "( c #999966", "_ c #336633", ": c #333366", "< c #CCCCCC", "[ c #CC9999", "} c #669933", "| c #33CC33", "1 c #669966", "2 c #CC9966", "3 c #CC6633", "4 c #CCFFCC", "5 c #CCCC99", "6 c #CC9900", "7 c #666699", "8 c #009900", "9 c #009933", "0 c #FFCC99", "a c #663300", "b c #999933", "c c #660033", "d c #CC9933", "e c #336600", "f c #FFCCFF", "g c #3333CC", "h c #0033CC", "i c #33CC00", "j c #996699", "k c #FFFFFF", "l c #003366", "m c #999900", "n c #669900", "o c #663399", "p c #660000", "q c #666600", "r c #336699", "s c #993300", "t c #CC99CC", "u c #993333", "v c #66CC66", "w c #3300CC", "x c #330066", "y c #0000CC", "z c #003333", "A c #003300", "B c #66CC33", "C c #6666CC", "D c #000000", "E c #FFFF99", "F c #CCFFFF", "G c #CC6666", "H c #993366", "I c #336666", "J c #000033", "K c #CCCCFF", "L c #99CCCC", "M c #669999", "N c #FF9999", "O c #CCCC66", "P c #9999CC", "Q c #00CC33", "R c #000066", "S c #FFCC66", "T c #99CC99", "U c #99CC66", "V c #339966", "W c #006633", " ", " -- ", " =*&J*&-%&-M ", " 'c*&*&*%..&.=-%7 ", " -A%.*....==..&&.D**.**.&&%.] ", " j'=%*=])!!))3db-=&%.%&.%*%.&.%.' ", " =%z=.d))d3!6))6~m.a=_=...=-.'=&.] ", " -.&%=]b!~))~63~!3)).%=~s~!~~~!~].&.G ", " -*..=3))3)m6!!6)!6)3...~!~!~!!s!!'.&= ", " %%=-bd!b)!)6))~33!))..=~'!!!=~'~sbH..= -. ", " &..d))!36!3!))m)m~db%.=~a~=sq~!'qu~=..( '%&.] ", " '*. %&.~d!)6~)md)~6!)3-.%%'~~q~~'!~s~!'-%&. /-.*&%%.- ", " -.%%A= .%.~!)~)))!!)b)!2~..*=(q!s!!'!a!q~!~'.%- -.&%..-.p* ", " -=.%*.*%] '&%])!))!3)636)2-%*.*.]~!~u!~'!u!!q!~=.= /=*%.=]1+1.*^ ", " '&.*=-^.*. =%*=(6d~)b!!!)6b-.&.7%*..-b~!qu!!u!~!~'p. /-.%*=-B+#+}:*.] ", " -&&.^7@@=.&- =%.=b3))!))))d)3~%*=t>/%&%%_=]~~~q~!!=!-**~ 7'.&*.-1+#en+8}c*.- ", " (%*.7@$@$7=.%- _&.^b))m3))O]~'q^=%.[>;>L-.=.&..^~~!~~~!=%%. -=&.&.^1}#+++#+#+-=&.- ", " I&%:{@@$@@7.*= -&.'d)~!6!bd-%...*&.(;<;;k;<]=*c&*.-~q~s~]..- =*A..=(}+i+#+#+##+B-c&./ ", " (.a-@$@$@$C'%.^ =..~d6363)d-&**&...(;f>;>;>;>;5j=%=%^~!!!3... -.%.-'}+#+#9#++++i+#+-.&= ", " *%.,$@$@@,7%.= &%'))!)3!3-.p=///t;4k;<>4;;;4;4>>j.*.'~=!!%.p .&.(|#+#+##+#+9#++#+#+'.%/ ", " -.=7{@@{$$$.&.- &.u)d~6!!6...<;>;>;><>;;>>>;f>/=&%'!s].*= -*.'+#++#++e+##9#+9#+#+'*.j ", " c%.:${@$r{@-c.D-- &*-~)6~)b)=*.;05;;;k;;<;<;;>K0>;>;>/.&=!!==&- '&.1+#+#+#+8++#++#+#++}'%* ", " ]&ax@:$$@y@g-a%*%- .&=3)~!)b6^.*/>>f><><;>>>;><;4;4>;f[*.=m~=%*- -=&'+#+#++n+i+++#++##+iB.%: ", " .&-g@,$@@@@@7==*p.-/ -&.]))m)~)3.%-k<>;>f>>5;<;>;>;>;><>/*%'~=.%' -*.=1+++##+#++#+#n++++++}..' ", " .J.@$@,$$@@$@@7:%*&=-[ ]%.-)~))))b..=;;>>>4P/<>;4>;4<5K;>;/%.=-.&= =&=(++8+8#+#++++##+#+#8+'%.' ", " =.=7{:,:$$@{$@@7]...&.^- .*=bm6!d))...;;<>>[.&&.-;t=='&->Kk[*.==.. '*%-++#_++#+#+##++#++++++^*% ", " .&=@$$$,@$@,@@@{r7j.&&.&=- -%.u3!363b=*.><>;>/...*.><.%&.*[;><^*%&&- -&%.+#+++#+##+#+++#+#+###|=*. ", " =.&:,@$@:$@$@$@,l@@7-'=.**^ j&%'))!36).%-;;4>;>/.%&/>;-.&%*/f;>[.*%- ^&.'/++#++##+i#+##++n++|e+-..- ", " (.&]@@@$,$,@l,$@,@$,$g7-=.&'M .%=3d)~m).*j>>;;;/-][>;;;>.*c* -&%=(}##++#++++#+#++#+#++#+_a&= ", " ..-$y@@@@${@$$${@{@$${@r=.%.- .*.-3)m~).&];4;;;4>>;ff4>4>>;k;>4;>=..= ]*&.}++#+++e#+++#+##+++9#+#|_..= ", " D&^@$${@$,@@$x@$@$@l,@$@@'a%= ^.&.-b~63.%(>;;>;;><;>-.5;;F>;4;;f]%.*. .%=-+##+#++#++#+##+#9#+#|#+#-&*= ", " *%-@@,$,@@@$@@@@@@$@$@,$@o'=*= =&*%.^]'.*/k;>;0F;4;;*%/>;;4;f;;/%*%*%= =&=-+#9++8++#9+_+#B11++#++++#1%&& ", " -*.o$@$$@@{$g${@{@{@@@@$$$@o^.%' -.*....&'<>4;fE;>;><.&/;<>;>4>;'A%.*.%] -.&'1+#+#+#+i+_+#9#-.=1+#+#++}+.._ ", " c*.r@$@@@@@@g{@@h@$@{@$@@$@$@=*= ]^%&*./><>;;.&(>4;;><><=..==.z= '&..1#+#+#++#+++#}1v..%}++##+###=&. ", " .%.@,@$,$$${@$@@,$@@@$,@${,$@^&.= /.%*]>f;E><'.(<>-^T;><4;kf[.&]L<=.& /..&^1#8+i++#+#+#+|-a=&..v#++#+#++=.& ", " &J^@$:@h@$@@@@@$,@,$@$,$@$@@$o_**- .z]>;4;>t.&.=/t<><5].(>>(%*[<;7.& /.*%'1+##_|+#++##|#}-%*.c_++++++#++'&. ", " &*:@@${@,@{@$@$@$@@$@$@,$$@$@$@=&= *&/>f5-(;/=&%**=.=%&&-;>H.*<;5[(((]/[>]*.*%-;F/.&'--.&.-#n+#+#|9#+#+#++#v-=%A%*}#+++}#++#}.&- ", " %*.x@:@@$w$@@@$,$$,l$@{@$,$w$@@@$o^.p.=-*%%&%.=&a..(<>>k>fk<]-&*c*./k;=..*%.&.]1+#+++##__++#+#81]%*='%.}+##e+#_8+#=.: ", " -%*^$$@$,@@$$$,@h@{@$@$@h,l@$@{@@$o=%A%.]*-'.-/..*%==5f4;>5:&.%....-/[.*=&..c-1+#+##++#+##9#+#1-**./_&.}++8+9#+++#.*. ", " *.^@{$@$$@,@${@@$$@,$,@h@$,@$@$$@$7.=.%.] ( &%.'%.&_;>>j..&.*%.=%**..&.=_}}+##+#+8+#+++#+#+B-p%=1 %.&'++#+#+##+_.%. ", " .%.@h@$@{@$@$g@x:o$w$@$@@$$$@$,$@@@@r7.%-^*^ -&.2(-&./;5=*%']%*^-=..%%=^1++|#+++#+#9+##+++#+-*.*j -%*.1#+#++8+#+-%% ", " &*.{$@@$@$,@@r^*.=o$@@,$@@{@$@@@${$,$@a*..&&-^*.22[.&...%.][2%&% ..*_}+++#+#++#++++#_##+++}.&. -%.-+#+++#|#|'.&- ", " I&=@@$@$,@$$g:.%%%-@l{@$@,@,@,$$@@$@@$]*p.%=%*p-/][].&.&*.2/(.*^ .%=++#+##+#++++##+n+8+#+-.%=- j=&=v#8+#+++#_.&. ", " '%&^$@{$@$@{g-%..&*-@@$$@@$,$@@$@$,,@{C-=.*&..%]5((/]'^'-[[22:&* &.-}}+#++8+|##+++#+#+n#1=*&] -J.-+#+9+++#'%%. ", " .*^@$@@$@@$o.*. ...^@h,@$$$@{@$l@$@$@$gr@:^.&=L22O22/[2[((/[-.&(-&a}#+#_8+|#++##+#+#++#+1&.- =*.(#+#++##_.&. ", " :&.@$$@${@$7=&- ].%.-@{@@@$,$@@$@@@$$@@@$l@^*%][(2/d/(2(22[2(*..=%.v#++##++##_n+#++#+++(... ]&&=V#+#+e+'.%= ", " =&.@@:@$@$hx.*H -*&=-r$h@@$@,$@@@$w@@$@{@$7=&%-[2/2G2[[(2[([-&&=&'++##+n+++++#+#+#+i+}'%&- I*.'||+n+|'.&c ", " *&.@,,$@@,$^%.*] -*.'7@{@{$@$$h@@@{@@,@$@$@C'*z^/G[[(22(2[U2[(*%&1+#++#+#+#++#++e|i+1^%&- .&^n_++#+_..- ", " .%*r@$@,@@@:..*= '%.:@@$@$,@$$@{@$@@$$@h@@$/=*&.%.==:=^.*.^-]*%=++###++#9###++#9+#1'.*. ]*%_}++++#'%../ ", " /.&^@@$$@@{:=*%= .&-@$@$@${@@$@@@$@,$@{@$ho7^.*%&%&.=&.&.&.%.%_++#+##+++++|###++#-*%.j -%.*-+###++_&%*^ ", " =&I@$,$y$gr.&.& .*.,l@{@@,@$@$$@,@@$@,$@$@$o@:]:'..=.^-_=.&=-v#+#++#+#++#+#+|++|-*.= .&.%'}#+9##_..&= ", " .%..:::%::^.*&' ^&=C@$@$@y@$$@@$$,$@$@$g{@@{@$@$@@@++#+#++#+#+e++#|#++9+#+++#}#+-*a ~%.&._+e++|+_c.%= ", " .%..*..*.%=..=( ..*:y@y@${@w@@R@@$,,l@$@$$@$@{@g$$@#++i+#+#9+i+#+_##+##+++##++#1.%= ]*%.*.=_-_'e_=%*. ", " '%&%%*%..&*%.%- &%:@@{@@$$@$@$@@$@@$,@{@,@@@$$@@{@+#}#+8+#+++#+#+####++#++#++#}=&- 'p..**.*=.%*.&*. ", " 'c.*=((]G[0;(%&*/ *==C,@$@@@$,@@x@$@$@@@@$l${@$,$@$@#+}##++#+#+#+_#+}+9#+#+#+#9+-.*] (.%*H-c&.&%=&.*- ", " /..&.-N50055[0(.&- =*%-@$l$@$@{@$@@@${@{$@$,@@{@{@${@++e+##+|#+++#+i+++i+++++#+#+.%. =z%.-00[2j([5j.%= ", " ].&.^([0t0[5N005=%%_ =&*=@$,@@$@$,$@,@$@$@@$@@h$@$@@@,$+#+8++#8++#++#+#+#|#+#}++#+vc%. .D.&-505000E500=%= ", " -.**.[(M[;205;/(;5=.%- -.&.@$@@@$@@$@$$$,@,h@@$:@,{:,$$@@+_#+8+++#+#+#+#+e#+++#+#+++-a%- =%..%.^<;([05S;1&. ", " .%%.*=*&-[=^[2..(<]*D. .%=@g@{@@$@@@@@@$@{@$,@$@{@$R@$$@+#+++#|##+#+#+i|W+#++#++##1%&. =.&.p%]-&=t]^[].c ", " -*%*.%*..'&*..%=*]^*&. '*%${,@@@{$$@$g,$@@,hy@$@@$$,$@@$+#9#e++++|#|Q_#+++++++#++#_.&- =....**%*..&*%%= ", " --^%.%=&=%*&*.%&*.%.2 &.%.=.%..%.%-:::,::::x.:7$@@$$@{$_#+Q+#+1___'e_-..=...=..a.=.&^ .*&.%.&%*.&.*- ", " =*.==*..-='-=.*^ ..a.**.&.*=&.*%.*c**a%*.a.%...%.%..-'_..=%a%=%&=.*..&....*%a.=j (^--===.^- "}; golist-0.3/src/anim/0000777000175000017500000000000007344217151010141 5golist-0.3/src/anim/Makefile.in0000644000175000017500000001306007344217151012122 # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ GNOME_CONFIG = @GNOME_CONFIG@ GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ GNOME_LIBDIR = @GNOME_LIBDIR@ GNOME_LIBS = @GNOME_LIBS@ GNORBA_CFLAGS = @GNORBA_CFLAGS@ GNORBA_LIBS = @GNORBA_LIBS@ GTKDOC = @GTKDOC@ GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ HTML_DIR = @HTML_DIR@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ JVLIBS = @JVLIBS@ JVRAND_CFLAGS = @JVRAND_CFLAGS@ JVRAND_LIBS = @JVRAND_LIBS@ LIBICONV = @LIBICONV@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ ORBIT_CFLAGS = @ORBIT_CFLAGS@ ORBIT_CONFIG = @ORBIT_CONFIG@ ORBIT_IDL = @ORBIT_IDL@ ORBIT_LIBS = @ORBIT_LIBS@ PACKAGE = @PACKAGE@ PIXMAP_DIR = @PIXMAP_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ ZVT_LIBS = @ZVT_LIBS@ EXTRA_DIST = frames.h frame01.xpm frame02.xpm frame03.xpm frame04.xpm frame05.xpm frame06.xpm frame07.xpm frame08.xpm frame09.xpm frame10.xpm frame11.xpm frame12.xpm frame13.xpm frame14.xpm frame15.xpm frame16.xpm frame17.xpm frame18.xpm frame19.xpm frame20.xpm mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../../config.h CONFIG_CLEAN_FILES = DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/anim/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = src/anim distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall: uninstall-am all-am: Makefile all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: tags distdir info-am info dvi-am dvi check check-am \ installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/src/anim/Makefile.am0000644000175000017500000000057507343277211012122 ## Process this file with automake to produce Makefile.in EXTRA_DIST = frames.h \ frame01.xpm \ frame02.xpm \ frame03.xpm \ frame04.xpm \ frame05.xpm \ frame06.xpm \ frame07.xpm \ frame08.xpm \ frame09.xpm \ frame10.xpm \ frame11.xpm \ frame12.xpm \ frame13.xpm \ frame14.xpm \ frame15.xpm \ frame16.xpm \ frame17.xpm \ frame18.xpm \ frame19.xpm \ frame20.xpm golist-0.3/src/anim/frames.h0000644000175000017500000000127607343277230011514 /* frames.h - include all the frames for the animation * * Copyright (C) 2001 Jochen Voss. * * $Id: frames.h,v 1.1 2001/08/29 23:45:28 voss Exp $ */ #ifndef FILE_FRAMES_H_SEEN #define FILE_FRAMES_H_SEEN #include "frame01.xpm" #include "frame02.xpm" #include "frame03.xpm" #include "frame04.xpm" #include "frame05.xpm" #include "frame06.xpm" #include "frame07.xpm" #include "frame08.xpm" #include "frame09.xpm" #include "frame10.xpm" #include "frame11.xpm" #include "frame12.xpm" #include "frame13.xpm" #include "frame14.xpm" #include "frame15.xpm" #include "frame16.xpm" #include "frame17.xpm" #include "frame18.xpm" #include "frame19.xpm" #include "frame20.xpm" #endif /* FILE_FRAMES_H_SEEN */ golist-0.3/src/anim/frame01.xpm0000644000175000017500000004630407343277263012056 /* XPM */ static char * zz1_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; m n n g ", "; ; ; ; ; ( ( D N R n J n g n ' D ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u n ' g n g n g J g J g J g # } ^ } ^ ( ; : q q ; ; ", "; q f.7 % ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ n n g J n g n R n J g ' @ ' n ' n J g n J # ( > > } ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q P 7 0 ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } # g n n R n n g J g J n g J } ^ ^ n R n > > : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; > $ % $ > } ^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ : ^ ^ : ^ ( ^ @ n R n g J ( } ^ ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } '.7 7.} ( ^ ^ : ^ } ^ ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # + ' ' F ( ^ ;. ; ; ) > ; ; ; ; ; ", " : ( &.7 7 ^ ( : : ( ^ } : ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , } ( ^ } ( ; ; > ", " ^ } ..t : ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , u.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x : ( : ! = - = = ! = = ! } ( ; > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % + @ ^ ^ ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . [ * e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : : # u ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . ] } : ( = - = - = - ! = - 6 = 6 = [.^ : p + . . . + + . + @ + . * $.+ [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | o , # : ( # , , , : t q p , , ' , s v | . @ + @ + [ @ . # % . + ] 6 ( } ( 2 ! = ! = = 6 5 - ] = - %.: ^ ^ ! = + @ [ . # + + + . @ * ; . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ u 3 9 j ' , # t : # , s : : : [._ N , ' ' 9 | + + . @ % . + % . # h - - = : ^ : - ! %.- ! - = ] - - ] 6 ! ^ c.: 2 - - h @ . < % . + @ + & $.. . + @ + + . @ . z . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ m , x o x ' ' , # t : @ [ ( D : ( F s u ' , v | . + . . @ . A . . h - ] - 2 l.D ..= 5 - = = ! - - 5 - = ! ! } ^ '.] = - ] h + z . . < . + * e W + . @ . + . + T !.z z % @ . . f > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | j , , , , + r.5 0 } t q p m , , j g | 9 . . # % . % + . ] 6 ! = - = - - - = = ] ! - ] 5 - = - = = ! ] l.] 6 = - = = / & # @ + + @ $ ~ U ~ ; ~ e ~ ; * T b.T 1 ; e $.~ ; ; e $.> e ; $ > * @ ", " $ $ . + . + @ . + @ , j ` x ' , ' u , >.7 P : ;.F A., , S , ' o 9 + + . @ . m W ] / ! = ! = ! 2 ! ! = = - ! = - - ! = ! - - ! = 2 - %.5 - = = ! h + . . . . & $ e ~ e U ; $ e * =.z =.. * M * & > > 1 * M * * f ) f + ", " c { $ @ [ . + + @ . @ , j o s ' , @ [ + &./ r.D D + + [ ' j ' m | v . @ % . % + ..- = = - = - - = - ! = - ] 6 ! = ! = - - / = ! - ! - ! = = 5 ! = = 0 @ + @ % + . % + . + @ . . . z !.z . + + @ + ) > # . # . @ * > _ @ ", " ~ * e . + @ + . + # @ , 3 | x , , t : : t : q q : [.q : % , ' , | | + @ # . + @ = = ! 2 = ] - ! 6 ! = - ! = ! = 2 - = - 5 - = 6 %.! = 2 ] - 6 = ! - ! . + . . . + # # % d & # + . . + % @ @ + . @ ) { % + @ + + * ) & + ", " * $ B . + + @ + . @ m ' j o 9 ' u # # p @ % [.% # # % + ' , , ' | o % . + + & %.! = - ! - - ] - = = = ! - - ! 6 ! ! 2 = = = ! = ! = ! - - ] 5 = - = = ] @ + @ . . # % . + # . [ + & . + [ . . . # & ) * . @ @ + & ) $ + ", " $ 1 { + . . @ < . + m ' ' | o , j , ' ' u + '.# , ' u , ' ' , , v | . @ & @ 0 ] = ! = - ] 6 ! 6 ! 6 ! 2 = ! = = = 5 - ] = - - = = 5 - ! = - - ! - ] 6 - + + <.+ . + . . + . . . # + @ . + @ + @ + % > f . % + # f > % + ", " * ~ * @ + % . + + @ @ , , | -.j , ' ' j ' k 7 i , @ , , , j ' x | | + . + + _ > d - 6 ] = ..* { $ Z ] - 2 ! d o.{ $ _ ! = ] / ! 6 I 7 w w ! 2 = ! - - - / . + # % # @ + < + + + @ & + @ + + . # . . 8 > % . + . _ ) _ @ ", " $ ~ . + . @ . # + @ ' , s | | x , ' , , k 7 i , , ' m m , | l v < . G @ # }.> Z - - = h.$ { { $ { _ - = L { $ { { { $ ] - - 2 w w 7 w 7 w - = - = F F - . . @ . @ . [ + . . + . . . + . % . . < + M > _ . # @ * ) $ + ", " c * @ . # . . . . @ , ' , ].` | o x ,.j b [ 3 , ' , , j | o | < + # & % h p > L 5 = = f { $ > { $ > d ] $ { ~ { $ { $ Z ! ] 7 7 w 7 w w 7 5 - = ! > ) 2 + @ + . . + . . @ . + . @ @ + @ + . + . @ _ ) $ _ * * $ {.* . ", " 0 0 # + % % + . # m j m , ' s ].| | v | o | v o K o | 9 o K |.. @ . + + ] L ) F - ! = $ { ~ { $ { $ L Z $ { > $ { { $ d = 5 w 7 I 7 w 7 w 7 = = 5 8 > 6 ] . . . . @ + . + # . . . + & + % # + . + . { ) > > ) { > % . ", " 7 7 . + @ # [ + . @ , u , ' , ' ' x j j [ +.l | 9 v | l x , R & # + @ . - d > + = - - { $ { $ e { { d F { $ { e $ > { % = 5 7 w w 9.w >.w w - - = > 8 6 - . @ + + % @ + + # . # # + @ . @ & $ % @ < + f % 8 ) * & + @ ", " 4 0 @ + & + . % # @ m @ m @ H @ m @ @ H p t % @ m @ m s A @ @ . + . + + 6 F ) p ] 6 ] _ $ { > $ $ { = d { $ { $ { $ $ _ - ] 7 w 7 w 7 w 7 I ! = 5 { > ] - d & @ @ + + $ {.% . & { f # . + {.> * . + . . @ > {.. + + . ", " $ $ + @ . + @ + @ . . d . + + . . . + . F : % + + + . . + + @ + % # + + = + > }.- = ! = f e $ { { d ! - $ { U e { { e d - 2 I w 7 w 7 w 7 5 = ! 2 > 8 2 = d . + @ @ & > ) _ . % > > @ + . { > f + # % . + ) { # . @ % ", " B $ + . + @ . . + @ + & + # . + # . . + % : p + @ # @ @ @ @ z @ + . + 4 ! ..> F = 5 - - = L d L ] - = 6 h.$ $ { $ $ L ] ! - ] w 7 w 9.w 6 = 5 - = { > ! p % & $ * _ $ > > ) . _ { 8 & # # 8 > ) . . # + @ ) ) . @ . % ", " $ { @ % + . # + + . + % @ . . [ . @ . + % 8 D { > ) { ) ) ) > 8 ) { $ p Z D ) p - - = ! - 5 = = - ] - ] 6 - d L d ] ! = 2 ! = ! 6 2 6 5 - - = - - > ) > > 8 > > ) ) > { > ) @ f > ) & . + ) > { $ $ > > $ { > @ + # . ", " ~ * . . + + + . + @ . @ + % @ . + . + % _ 8 > ) > > > ) { > ) {.8 ) > > > ) { F = - ! = - ] - ! 2 = ! = ! - ] ! = - = = ! 6 - = 5 - = ! ! = ! = ] > ) > F _ * ; $ & f f { ) @ ) { ) $ . & ) { > ) > 8 ) f {.{ & & . @ ", " { $ @ @ . + @ . % # + . + + + + @ @ @ . % D f _ . # . @ # @ . + . & * _ d F > d 2 ] 6 ! - / d d h 6 = - = - = = - ] - = ] - = - = ] 6 = - - - = 2 { ) ] 6 A + ~ * + . [ ) 8 + { {.{ $ + * > _ > ) 8 M @ . * > % + + + ", " * B ~ $ * & . % . + @ + @ . @ & + . % + # . F : p @ . . & # . + @ . # @ # h ! d > L - = ! 6 h _ $ $ $ _ 5 = = 5 - h 6 6 P 6 = - ] - - ! - ! = ! - ! 6 { > - ! h . ; * @ + + { > _ > +.> ) O {.> . $ ) > * + + & > * & . + ", " $ ~ * $ * { 1 * $ ~ $ . . + & + @ . # + # . . . + + p : F . + @ + . + @ . + + & + . - L ) p - ] - / 8 $ { _ { $ + 5 - ] 2 6 w w 7 w 7 = = ! - = 2 - 5 ! = ! 6 > ) - = # . ~ +.G # @ $ > 8 ) * f > $ > 8 @ _ ) > & . + % > _ + . . ", " $ $ $ 1 e * e $ * B $ . # . % + + . & . + + [ + $ ) > ) ) > { > * + % . . @ . @ % @ = }.) }.= - - d * $ $ $ 8 $ _ = ! = = w 7 w 7 w 7 w 5 = ! = = = = - ] = 6 > > 6 - + + ; * + + . * ) > 8 . % 8 ) ) * + . { ) _ @ + % > _ . . @ ", " & . % . . @ @ @ . [ . + % @ + & ) { > { > ) ) > > @ + . . # . + + + ] - ! - = = 2 d { $ c $ * $ _ 6 - ! 6 I 7 w >.w 7 w 6 - %.! ! 2 - - 2 ! - ) > 2 ] @ % ~ $ + @ @ % > > $ + . 8 > { + . @ > > . [ . * > & . + . ", " W O & + . @ + + + + . @ . . + * > % @ m @ . A > { . # . @ + . @ < . 0 = / - ! = - ] { f $ { $ $ _ 2 = 5 6 w 9.w w 7 w 7 i = 5 - = / - ! = = 2 { ) - *.@ . ~ 1 [ . + + * 8 + + . f $ & @ # . % @ . + + % ) * + @ . ", " * ~ * ~ { * ~ $ $ * ~ * & . . @ + . . @ + @ @ & > _ + + . # @ ) > # . . # & + . . + + - - ! = - ! 2 _ $ $ _ { $ / - - - 2 7 w 7 w 7 w w 6 - ] - - ! = = - ! = $ { - @ + . ; * . . # @ @ + @ < + . # . + + @ + + # + + $ > * @ + + ", " 8 1 $ c $ $ c ~ $ c ~ & + . % . [ + @ + < + . * > * @ % . + @ > ) @ + [ . + @ . . + . / - = = 6 ! - 2 L _ $ _ h ] = ! = ! w 7 I 7 w 7 7 = ] 2 - = 6 ] - / ! - = ] ] . @ + $.& + @ % . . + . + + . # + . % + & . @ % @ & > f @ + . ", " 1 e 1 & O & + . [ . @ . . @ . . . + % > f @ + + + . > > # . + . + + # + % @ + - 5 - ] 6 = ! 2 5 6 6 - 5 = - ] = 6 P w 7 w w 5 = ! - ! 5 ! - = - = 5 ! = # % + . e $ . @ + @ % . + [ . @ + + H + . + [ . . @ _ ) * @ + + ", " ~ $ $ @ + # @ . d . + + + + + + . # . ) ) @ . . + % ) { . d . @ & . @ + . + . h = - ] - = ! - ! - = = = ! = - ] - ] 6 5 2 ] - ! = = = = - 2 ! = 6 = - ] . + @ < ~ & . + G @ @ + @ . + + . + @ < + + . + . + * ) * + @ . ", " { * $ . & + [ . # + @ + @ % # @ % . + > { # . H . % 8 & . . + + + # . . # % + . 5 = 5 = = - - = - ! 6 = 6 ] - = - 2 = = 5 - - 6 = ! - / - = - ! ! / - + . < + . ; * @ . # + + . + . . [ . % + . < + . # @ + & > _ < . p ", " ~ 1 . # . . + @ . % @ . & @ + @ + # > ) . + @ . * ) * # . # . @ & # . . @ # + h - ! = / - ! = = ] - ] = 5 - ! ] - - ! - ] ] - = = - - = = - = - 5 h @ + @ # + > & % + % @ . @ # + + + @ + . @ + . + [ + + _ > * < + + ", " c $ $ + + . @ . + . + . # # <.@ % @ . ) 8 # + . % * ) & @ < + @ + & [ < # . @ & . h - - = - 5 = - - - - ! - = = - ] = - = - = ] - ] - ! ] - / - = h . # . % . + $.* @ + . . . % + + . + . % @ < & + @ . @ . & ) _ # . @ ", " * c $ @ . + + . T z !.. + 3 | | < + # > > + @ + @ * ) f . @ & @ . 3 | | < + . # + % ] ! = ] - = = / - = = ! = 2 = - = 5 = 6 ! = - - - 6 ! - = - ] @ % . . # ~ ~ e ~ ; & + @ + + . @ [ + . . + + . . # + . . % > _ [ . + ", " ~ { * [ + @ @ z T b.T Y M | l ].| . z ) > @ . [ @ * ) % . *.+ + < 9 l x l @ + & + . # ] - ] - ] ! ] ! - 5 = = ! - = - - ! = = 5 ] ] ] - = ! 2 h . . . @ + . $.{ M e ~ ; + . @ & < 3 | < # . # . . & + + + H _ > & . + @ ", " * 1 ~ . + @ % z =.b.!.Y $ 9 l | K + @ $ ) _ @ + . * > & @ . < + < K | K | + @ . + . + H 4 - 6 - O $ _ = - - ! = = 2 ] = ! 6 - = F ~ * - ! - 0 . % # + . . + $.e + @ * $.* & * & :.l 9 :.M * M * % * & $ & * $ > _ @ p + ", " e * $ @ . + [ . T z T z @ 3 | 3 < + + f 8 _ @ + @ > ) $ . + + . . 3 | l < . + + @ + . % . . = 6 ~ $ * ] = 2 - ] 6 ! - 6 = ] 6 6 f 1 ~ d - + . @ + @ & . + . ~ ; . . M e $.e ; ~ M | l :.e $.e $.e $.e ; ~ ; e > * + . d ", " e $ c . + . + . + *.. & . . < < @ # & & > $ # . z ) ) * + % . @ # . H < + @ . . + . # . + < . ] { * c 6 ! - 5 ! = ] - ! - ] ! - L { ~ Z @ [ + < + + # & # + { ~ & * ~ > * & * 1 #.].| l % . & * & & . + % d +.) * . # . ", " $ ~ 1 < + # . + <.@ + + + . . . + . + _ ) > > > 8 ) { + @ @ . + % @ + @ % % . # . @ . @ . + + + * $ $ - - = = - 6 = ! = - - - = d ~ { * + . @ . . [ . + + & $.e > ~ > ~ & + . @ + < < # + . . % . % . @ d . & > & . % @ ", " * ~ c . . + @ . + @ + + @ + @ + . # . & { ) $ ) > ) $ + . + @ . + % . @ + @ + + + # . # + @ & + 1 $ e [ *.] h - ! 6 = ! h 4 + + 1 $ * G + @ % # . # . . + & & * $ $.1 & . @ # + + @ . . @ + @ . @ . @ . @ . _ ) & + . + ", " c $ $ % . . # + + + # & + + + + [ + @ + + @ # > $ z H . + . . + < + @ . + . + @ . % G # . + + @ * { $ Z % # . . H . @ @ & # + @ _ ~ ~ _ . + . + + + @ + . # . @ * e # . + @ % . . + # . @ + + . + + + + % . * ) & . @ + ", " $ 1 $ @ . + @ & . + @ . & # . @ . < . @ + + @ 8 ) @ + . @ . @ % + . . & + + [ . # + + . & . @ + * 1 $ & + @ . + % . + + + . + + . { * W @ % . @ & + @ % . # . % & ; . @ . @ + . @ + . @ % + . . . @ . . @ [ * ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % & + # . % # . @ . @ @ + + + . @ . # p $ . . % @ . # + # @ + # @ + % _ & * & & % _ . . . ~ c _ . + @ & @ . @ % . . @ . & ~ $ * + + # . . . . @ + # . # * U + < + . . # + < < < < [ 3 < # @ + # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ * ~ { 1 e * $ * * . & * _ . * & G & % & 7 7 p @ a + & & * 1 $ ~ { * e c 1 $ $ e * $ { * $ ~ $ * $ 1 . & & % * & & + & * _ . & 1 * & & & & & % % . & & & * & $ ~ . % & * & & #.o K v v K v ` | $ $ $ 1 $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; $ * $ $ ~ * $ $ c $ ~ { 1 { * ~ c ~ { * e 1 $ 4 7 _ i 7 / f ~ $ $ ~ c $ { ~ f ~ c $ * e * ~ ~ c ~ * e $ ~ { c 1 ~ * ~ c ~ * 1 ~ * e * $ { 1 $ c 1 { { * $ $ $ * ~ c e $ c $ e * $ :.9 ` | v l v | ` 8.1 ~ * { $ ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.=.!.; ; { & 1 * $ $ c $ $ $ B $ $ 1 * $ $ 1 { * ~ $ $ # 7 + f c $ 1 $ 1 $ * 1 $ * & & & & & O & 1 $ 1 $ 1 * $ f $ ~ 8 ~ 1 $ e { 1 { $ { $ c * $ * ~ 1 $ { 1 $ { e * f $ 1 ~ c * ~ 1 M | v K v o K v l 1 { $ $ 1 1 { $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T X Y ; ; . m + . . # . * . & & & & W _ & _ . & _ O & * & & O & & . # . @ . . d + z . + . @ . + . # + . + * & Z & & . & * _ % & . & . & * & * W * _ & O & & & & & G _ * & & & * _ & & < [ < < < < < [ . + . @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % . . # . . . < + + @ . . . . . @ + + + @ @ + . @ . . + . . + . @ + . . @ @ . . # . + @ + . @ . @ + + . . + . @ . + & + . + . . + @ + . + + @ + . + + + + + # . + + @ & # + . @ + + . . % + @ % . # . @ + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ < d & + [ G + . + + # + @ d + % @ + H @ . . + + + @ % # @ + + . @ + % + H . % % + . # @ % Z . + @ % + # @ + + + + @ . + [ + + . . # . @ + . @ . @ + % + G @ @ . . . @ . # @ + # + + @ % # . @ . . # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame02.xpm0000644000175000017500000004630407343277263012057 /* XPM */ static char * zz2_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; n g n J g n ' n g n ", "; ; ; ; ; R n J g n n R n R J n g } ( ^ ( ; ; ; ; ; ", "; / 7 D ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u n g J ' J g n J g n , g D ^ } ( } ^ } ^ ( ; : q q ; ; ", "; 7 7 f.; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ n J g n n R N g n n ' p ^ } ^ } ( > ) } ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; E.f.[.; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ g n J g u n R n ; > : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > &.Q } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( n R n g n ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > F 7 7 D : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : % + % ; ; ) > ; ; ; ; ; ", " t P P D } ^ ( : : ( ^ } ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ ^ ( ; ; > ", " ^ } ^ ( : ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( ^ : ; ; > > { > ) > ) ) ", " 1 * ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , ;.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " { ~ * , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x } ( : ! = - = = ! = = ! } ( ; > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . + & e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : : # u ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = 6 = [.^ : p + . . . + + . + @ # . $ $ . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | o , # : ( # , , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 - ] = - %.: ^ ^ ! ] *.< # . [ + + + . . W > . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ u 3 9 j ' , # t t # ' s : : : [._ N , ' ' 9 | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - = ] - - ] 6 ! ^ c.: 2 - - h @ . @ % . + @ + & $ G + . @ + + . @ . z . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ m , x o x ' ' , # 5 7 .[ ( D : ( F s u ' , v | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - - 5 - = ! ! } ^ '.] = - ] h + . . . < + . $ e & # . @ . . + . z T b.. % @ . . f > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | j , , , , k 7 7.F F : c.p ' , , H g | 9 . . # % . % + . h 6 ] - = = - ! - = = ] ! - ] 5 - = - = = ! ] l.] 6 = - = = / . [ @ . + @ & ~ e ~ > ~ $ ~ e * T z T 1 e U ~ ~ ; ; $ e U e ~ > > * @ ", " $ $ . + . + @ . + @ , j ` x ' , ' , N m t : ;.t F ' , , , , ' o 9 + + . @ . A W ] 5 ! = ! = ! 2 - ! = = - ! = - - ! = ! - - ! = 2 - %.5 - = ] - h + . . . . % U ~ ~ e ~ { U ~ * =.b.T O * & * & > > W * M * * f ) _ + ", " c { $ @ [ . + + @ . @ , j o s , , s [ + D t : D D % # % ' j ' m 9 o . @ % @ % + d - = = - = - ! - ! - = - ] 6 ! = ! = - - / = ! - ! - ! = = 5 - ! = d @ + @ + . . + % . % . . . . z z T . + % @ + ) > + . # . @ * > _ @ ", " ~ * e . + @ + . + # @ , 3 | x ' , D q : : : q q : [.q : % , ' S | | + @ + . + @ - = ! 2 ! = - = 6 ! ] - ! = ! = 2 - = - 5 - = 6 %.! = / = - 5 = ! - 5 . + . . + + # % # + @ # + . + + % @ @ + @ . ) { % + @ + + & ) M + ", " * $ B . + + @ + . @ m ' j ` | ' u # # [ # k 9.k # + % # ' , , ' 9 o % . + . + h ! = - = ! - ! - = = = ! - ! - 5 - ! 2 ] = = - ] - = - - ! = 5 = = = - h % + @ . . # + + + % . [ . . . + # & . . A & ) * . @ . + _ > _ + ", " $ 1 { + . . @ < . + m ' , o | , j , ' , ' m.7 >., ' , , ' ' , , o 9 . @ & @ 0 ] = ! = - = 5 = 5 - 5 - 2 = ! = = = 6 - = = - - ] = 5 - ! = - - - ! = - 6 + + <.. + . . . # . . + # + @ . + @ % @ + % U 8 @ % # . +.> & + ", " * ~ * @ + % . + + @ @ , ' | -.j ' ' ' s , # f.1., ' j , , j ' x | | + . + . _ > d = 6 ] = .._ { $ L ] = 6 ] d _ { $ F ] ! = / ! 6 I w 7 6 5 = - 5 = - - / . + # % [ @ + & # . + < & + @ + + . # . . ) > % . + + _ ) _ + ", " % + . + @ . @ + + @ ' , x | | x , ' , , % : % , , ' m m , | K o < . @ . # L > L - = - h.$ { $ { $ _ - - L { $ { { * $ ] - - 2 w w I P w w = - = - F _ - # . @ O @ . % + . + + . . . + . + . H % . % > _ . @ @ * ) $ . ", " 7 7 @ . + . . @ . @ , ' , ].9 o | x ,.j j.+.< , ' , , j | o | < + . & % 4 F > L 5 = = _ $ c $ c $ $ ..] $ { $ { f { $ L ! ] 7 w 7 w 7 w w 5 - = ! > 8 = + @ # . . + . @ . . + . @ @ + < + % + . @ _ ) $ _ _ $ $ {.* + ", " i i # + [ % + . @ m ' S ' ' s ].o | v | | 9 v o K o | 9 o K |.+ @ @ + + ] L ) F - ! - $ { $ f { $ { L L * 8 $ c $ { $ + - / w w w w 7 w 7 w = = 5 ) > 6 ] . + . . @ + . + @ . . . + + . + @ + . + . { ) > > ) { > % . ", " $ 1 . + @ + [ + . @ j u , ' ' ' ' x j j [ +.^.| 9 v | l x , R < + + @ + - d > + = - = f { $ { $ c $ L d { $ { $ { * 8 + ] 6 7 w 9.I w w w w ! - = > 8 2 - . @ . + % @ + + # @ # + + @ . @ % $ % @ < + _ % 8 > _ & + @ ", " B * @ + & . + + [ m @ m m @ S @ S @ @ @ % : % @ m @ m @ m @ @ . + . + . 6 F ) F 5 ! = L { * 8 $ 8 $ = }.$ * { f { $ $ _ - 5 I w w w 7 w 7 I - = 6 > > = - d @ @ @ + + $ ) % . & $ $ # . + U > * . + % G # > U + . + . ", " $ $ + @ . # . . @ . . p . % + . . + . . p : % + + + @ + + + @ + % # + d = + > d - = 5 = _ $ { * $ h.! 2 _ 8 $ { $ c $ L = ] w w 7 I P w w 5 = ! 2 8 ) 2 = d . % @ @ & ) 8 f . _ > ) @ + + { > f % @ + . + ) { # . @ % ", " B $ + . + . # + + @ + . # + . # + . . + % : p + @ # . @ @ @ z @ + . + 0 6 L ) F = 5 - ! = h L L ] - = - ] _ * $ { $ L 6 = ! 2 w w w 7 w P = 5 - = { > f.'.% * * * _ $ > > ) @ _ { > + < # 8 { ) . + # + @ ) ) . @ . % ", " $ { # % + . + . + . + % . . @ % . @ . + % 8 D { > ) { ) ) > ) 8 ) { * F F f ) L 6 - = ! - ! 6 = = ! = ] ! - ..L ..= ! ! = - ] ! 6 6 5 = - - = - ] > > 8 > 8 > ) > ) > { > ) @ f > ) & . + ) > { $ $ > > $ { > @ + # + ", " ~ * . . # . + . + @ . @ + % @ . + . + % _ 8 > ) > > > ) > > ) ) > ) U { > ) > F = = - ! = ] - 5 2 = - ] - - ] = = ! = = 5 = 6 = ! 2 - ! ! - ! = = > ) > f % * e $ & f f { ) @ 8 ) { f . & ) { > > > ) ) f f { & & . @ ", " { $ @ @ + + @ + % # + . . + # + @ @ @ . % D f _ @ # z # @ @ z # . % * _ d F > d = ! 6 - 6 6 / 4 / 6 6 = = ! = - - = - = ] - = - = 5 = = - 2 - - = > f ] - A + U * + . [ 8 ) . { {.> $ + * > _ > 8 ) & H . * > * + + + ", " * B ~ $ * & & % . . @ + @ . @ + + & % + # . F : p . . . & + @ + @ . # . # h ! d > d - ] - 5 / p % p % d / - = 5 ] ] 2 6 P 6 = ! = - - ! - ! - ! - ! 6 > > - - *.. ~ * @ + . 8 > _ > % > ) . ) > . $ ) ) * + + % > & & . + ", " $ ~ * $ * { 1 * $ 1 $ . . # . % . + < + . + . . + + p : F . + @ + . + % . . + < . + = L ) F - ] = 2 + % L + + p 4 6 ] - 2 6 w w w w w 6 = ] - = 2 = 5 ] = ! 6 > ) - ! # . ~ +.G # . $ > 8 ) * $ > 8 > 8 @ _ > ) & . . % ) _ . + . ", " $ $ $ 1 e * e $ ~ B * & + . + + @ . + . + + [ + $ ) > ) f > > > * + . . @ + . @ % . - ..) }.- ! - / d % _ p Z p d 2 ! = = w P 7 I 7 w w 5 = ! = - = = - - = 2 > ) 2 - + % e & + + @ * ) ) { + % ) > ) & + + > ) * # % & > _ . . @ ", " & . % . # @ < @ + < . @ % @ . % 8 > { > > ) 8 > > @ + . . # . d # . ] - ! = = = 2 0 _ d % d % % d 6 - ! 2 w w w w w I w 6 - = ] ! 2 - ! 2 ! - ) { 2 ] . # $.* + . @ % > > $ + . 8 U { + . H { > . [ + * > & . + . ", " & O & . . . + + + + . . + & + & > * m @ @ . # { > @ + @ @ . . . < . 0 - = 5 = - - / p + p Z % d d 2 ! - 2 7 w 7 P 7 w 7 5 r ! - = 2 ! = - = r > ) - A . . ~ * < # . + * 8 + + . f $ & . # + & # . + + % > _ . @ . ", " * ~ * ~ { * ~ $ $ * ~ * @ . . @ + + @ @ # . . & > % + + . # @ ) > # . . + < + . . + + - - ! = - ! 2 d % Z p + % / - - ! 2 w w 7 w w w w 6 - ! - ! ! - = = ! 6 { $ - . + . $.* . + @ # @ . @ & + + @ + + + @ + + @ + + _ > * # + . ", " 8 1 $ c $ $ c ~ $ c ~ * + . % @ & + . + @ + @ * > * @ % . + @ > ) . + [ . + . # . . & / - = 2 - ! 2 6 Q d p d 2 / = - = 5 w I w I w 7 P 2 ] 2 = 2 ! / - ] ! - = ] ] @ @ % e & + . % . . + . # + . @ + . % + & . @ % < & > $ @ + . ", " 1 e 1 & * . + @ % . @ + @ @ . . . + _ ) { @ + + + . { > # @ + . + . # + d @ + - ! - ] 6 - ] 2 6 w 6 6 ! = ! = ! 2 w w 7 w I - = ] - ! - - - = 6 = ! ! = + + + . ~ $ @ . # @ + + + + . @ + + H + . + # . . @ _ ) _ @ + + ", " ~ $ $ @ + [ . # + + . + + + + + % @ . ) ) @ . . + % ) { + + . @ % . @ + . + @ h 2 ! = = = ! - ! - = = 2 ! - = - 5 ] 5 6 6 ] - 5 - = = ] = - ! = 6 = 6 ] . [ @ + ~ & . + G . @ . @ . + + @ + @ < + % . + . . * ) * + @ . ", " { * $ . < + & . [ + . # . % # @ + + @ > ) @ . @ . % ) & . + . + # . < . # + + . - = 5 = = - ! = - ! - = 6 ] = = - = = 2 ! - - ! = ! 6 ! - = - ] ! / - + . @ + < e * @ . [ + + + @ % . + . % + . @ + . # @ + & > * < + % ", " ~ 1 + + @ . + @ . % @ @ & @ . @ + # > 8 . + @ . _ > & + @ + # . . # . & . # [ h ! - ! 2 - = 2 = ] - ] = 5 - ! ] - ! - 5 ] = - = = = - = = 6 = - ! h @ % @ . % $ & % # + @ @ + @ + + % @ + . @ & # + % + . F > _ < + + ", " c $ $ + + . @ . + z . + . # <.[ % @ . ) ) # . . . f ) * @ < . . + < % < # . . . + h = - ] - ! - = - - - ! - = - 6 = = - = - = / - ] - ! / - ! - = h @ + . + + + $.* @ . + . & + + + @ + . % @ % . + < . @ # * > _ @ . @ ", " 1 c $ @ + + . @ z T z . + 3 | x < + # > 8 + < + @ * { D @ @ & @ . 3 l x < # . @ + % ] ! = 6 ] - = / - = - ] = = - ] = ! = 6 ! = - - - - ! - = - ] @ % . . @ ~ $ ~ e ~ $ @ . # % . . # + + . + @ . . # + . @ % > _ [ + + ", " $ { * # % @ . z z !.z T $ | 3 | 3 . z > > @ + # @ $ ) _ @ + + + < | l x l . # % . + # ] - ] - ] ! ] ! - 5 = = ! - = - 6 - = = 5 ! h ! 6 = ] 2 h @ . . @ + . $ e $ $ e $ + . G # & | l <.+ @ + . . . + + + G % > % . . @ ", " $ 1 ~ . + @ + . =.b.T Y M | 9 l | + # $ ) _ < + @ * > & . . < + < ,.| l l . @ . + . + G 4 = 6 - O $ _ = - = 6 = = = ] = ! 5 - = F ~ * - ! - d . % # + . & + ~ ~ + @ $ ; & % 1 & :.3 l | & $ & M % * & $ & * $ ) * @ p + ", " 1 $ { @ . + [ . z T z z @ < | 3 < + . f 8 _ . + @ { ) $ @ + + . . l x l < + + + @ . # % . + = 6 ~ $ * ] = ! - ] 6 ! - - = = 2 5 _ e ~ d - + @ + @ . < + . . U e . . & ~ { $.e $ 8.| l 8.~ > ~ e ~ ; ~ e $ e $.> * + + + ", " 1 { * @ + . + . + . . < . + @ < @ + < * > & # . . ) ) * + + @ @ + @ H < + @ . . + . . . + @ . ] { * c 6 ] - 5 ! = / - ! ! - ! - L * e + . [ . & + % + @ + + $ ~ * & $ e * & * & < x l l # . & * & & & + + % % ) * . # . ", " $ ~ 1 < + + . # @ . + + + . . . + . + % ) > > > 8 8 > + . @ . + % . + @ % % . # . @ # @ . + % . * $ $ - - = = - - = ] = - = - = d ~ $ * + @ . # . @ . % + & ~ ; $ ; ~ U & + . @ + < < . % . . + . % . @ d . * > & . % @ ", " 8 ~ c . . # . . + . + # . [ . # . # . & { > { ) > 8 $ + . + @ . + % . . # . + + . % . @ + @ + + B $ * % A ] h - ! 6 6 ] ] 4 d + W { 1 . + @ + # . + @ . + . & * $ ~ * W . @ + & + @ @ . @ + @ . @ . @ . @ . _ ) & + . + ", " * $ $ % . & # + . # + & + + + + [ + . + + # # p f m H . + @ . + < + @ . + @ d . # @ & + . % + @ $ { ~ _ + # . . H . @ < . @ + . % { ~ _ . + . + + # + . + < . @ * ~ . + @ + # + . + + . # + + . + + + + % + & ) & . @ + ", " c 1 $ # G + @ [ . + @ . @ + @ . . < @ @ + + m.7 Q @ + . . @ . [ + . . + & + # . + + + @ . . @ @ _ 1 $ & + @ . % + . + + + . % + W * $ W @ % . < & + @ & + # . + $ ~ + @ . @ . . . # . H % + . . . @ . @ . @ $ ) & . + . ", " ; ; ; ; ; ; $ { 1 e 1 * & % O # . % # . @ . # @ + + + . @ & k 7 p @ . % @ . + . # @ . # @ + % % & * & & % _ O . . ~ o.* . + @ . @ . % @ . + @ z & $ B % % + # . . . # @ + # @ + & U . < + . @ + # . + + @ d @ + # . # # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ * { $ 1 ~ * $ * * W & * * & O & & . % & . ) _ k . & & & _ * ~ $ { c e 1 { $ e ~ c $ $ $ * ~ $ 1 $ * . & & % _ W * + & * * & & 1 1 . & . & * % & O & & & * & 1 $ . % < o ` | ` v #.1 $ c $ B $ $ $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; $ * $ $ ~ 1 { * c $ $ c 1 { * $ B $ e * e * $ ~ { 7 7 + $ _ ~ ~ $ $ * ~ $ $ $ * * $ * e * e 1 $ ~ * e $ ~ e c $ ~ 1 $ * ~ c 1 * $ B $ $ { ~ $ c 1 $ c $ $ * { $ $ c e $ { 9 ` 9 ` | v l 8.$ c $ * * ~ c ~ * { { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; X T =.!.; ; { & W $ { $ c $ $ $ B ~ * ~ * ~ { 1 e c ~ $ 4 7 _ ~ 8 $ * ~ ~ * $ * B $ * * & & & & & O 1 $ * ~ * * $ $ c ~ f e 1 $ ~ e 1 { $ { $ c 1 $ * $ e $ c ~ $ $ B $ $ $ 1 ~ #.9 o K v ` | $ $ ~ $ ~ $ B $ ~ $ ~ 1 * $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; !.=.X Y ; ; + z + @ . . + & . & & & & & % & _ . & % * & & . * . & * . + . @ . @ + + . . + . @ + + . # . . % * . _ & & . & * _ % & O & . & * & * & * & + . & & & * & G L * & & & l l 9 l < [ @ @ + . . # % + . @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; [ . . # @ . . & + + @ . . . . . @ + + + @ . + @ . . @ + . . + @ . + # . @ @ . . @ . + @ + + . # . # + # O # . @ . + % # . + . # + . + . + . . + . + @ + + + # + @ % @ % & + . . + + . + % # . + . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # . < d & + [ G + . + + # . # d + + @ + @ @ . . + + + @ + # . # + . . + % + @ . % % + . @ @ + . + + G % + [ @ + + . + . . + [ . + . @ + . @ + @ . @ + + % + G . @ . G @ @ + @ @ + + # + . # % @ . @ . # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame03.xpm0000644000175000017500000004630407343277263012060 /* XPM */ static char * zz3_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; n g n J g n ' ", "; ; ; ; ; n J g n R n g D ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u n R n ' J n g ' } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ n J g n ' ' ( ( ^ : ^ } ( > > ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q 0 7 .. , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ g n J g ; > : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; 7 7 ..^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( # ' J n ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; f &.D } ^ : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : ^ ( ^ ; ; ) > ; ; ; ; ; ", " : ( ( ^ } ^ ( : : ( ^ } ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ } ( ; ; > ", " } } } ( ( ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , ;.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x } ( : ! = - = = ! = = ! } ( ; > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . [ * e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : : # u ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = 6 - t ( } &.+ . . . + + . + @ + . * $.+ [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j o | , [ : &.a ' , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 = ] = - %.: ^ ( ] = + @ [ . # + + + . @ * ; . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ J 3 9 x ' , # 7 7 a , s : : : [._ N , ' ' 9 | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - - ] - - ] 6 ! ^ ( : 2 - - h @ . < % . + @ + & ; . . + @ + + . @ . z . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ @ , j o j , ' ' 2.7 E.@ [ ( D : ( F s u ' , v | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - - 5 - = ! ! } ( '.] = - ] h + z . . < + . * ~ W # . @ . + . + T !.z z % @ . . f > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | 3 , , , , + t : F D : q p ' , , H g | 9 . . # % . % + . h 6 ] - = = - ! - = = ] ! - ] 5 - = - = = ! ] }.! 6 = = - = / & # @ . # @ * > ~ ; e ~ ; ~ e $ !.z T 1 ; e $.~ ; ; e $.> e ; $ > * @ ", " $ $ . + . + @ . + @ , j ` j ' , ' , , @ t : t ;.F ' , , , , ' o 9 + + . @ . A W ] 5 ! = ! = ! 2 - ! = - = ! = - - ! = ! - = ! = 2 - %.5 = = = ! h + . . . < & { ~ e $.$ e U e * T w.T O * M * & > > 1 * M * * f ) f + ", " c { $ @ [ . + + @ + @ , x | 3 , , @ [ d D t P ..D [ + [ ' j ' m 9 o . @ % @ % + d - = = - = - ! - ! - = = ! 6 ! = ! = - - / = ! - ! = ! = - 5 ! = = d @ + . + + . % + . % . @ . . z T z . + + @ + ) > # . # . @ * > _ @ ", " ~ * e . + @ + . . # m , x | 3 , ' D : : : ..7 7 : [.q : % , ' S | | + @ + . + @ - = ! 2 ! = - - 2 ! ] - ! = ! = 2 - = - 5 - = 6 = ! = 2 ] - 6 = ! - ! . + . . . # # % # d . # + . . + % @ @ # . @ ) { % + @ + + * ) & + ", " * $ B . + + @ + . @ @ ' s o | ' u A 1.[ # # P 0 # + % # ' , , ' 9 o % . + . + h ! = - = ! = ! - = = = ! - ! = 5 - ! 2 ] = = ! = = = ! - ! = 5 = - = - 4 % # . @ . + + . + % . [ + . . + # & . . # * ) * . @ @ + & ) $ + ", " $ 1 { + . . @ < . + m , ' | o , j , ' ' j + : [ , ' , , ' ' , , o 9 . @ & @ 0 ] = ! = - - 5 = 5 - 5 - 2 - ! = = = 6 - - = - ! = ! 6 - ! = - ] - 5 = - - + + <.+ . # . . # . . + @ + @ . + . + @ + % > $ . % + # f > % + ", " d 7 k @ + % . + + @ @ ' , 9 -.j , g ' , ' [ : p u m j , , j ' x | | + . + . _ > d = 6 ] = .._ { $ Z ] = 2 ! d 8 { $ _ ] ] - 2 ! 6 I 7 w w ! 6 = ! - = - / . + + [ % @ + < + . + < . + @ + # . # . @ 8 > % . + . _ ) _ @ ", " 7 7 @ + . @ . # + @ ' , j | | ].j ' , , + t % , , ' ' m , | K o < . @ . # L > L ! = - h { { $ { { _ - - L { $ { { { $ ] = - / w 7 w 7 w w - = = - F F - # . @ . @ . % + . + + . . . + & + . @ & + +.> _ . # @ * ) $ + ", " d % . . # . . . . @ , ' , ].-.| | x ,.j #.+.< , ' S , j | o | < + . & % 4 F { L 6 = ] _ { $.{ $ { U d ] $ e $ { $ { $ _ - ] 7 w 7 w 7 w 7 5 - = 5 > 8 = + @ + . . + . @ . . + . @ @ + . % . + . @ _ ) $ _ * * $ {.* . ", " ~ 1 # + % % + . @ @ , m ' , s ].o | v | o 9 -.v K o | 9 o K |.+ @ @ + + ] F ) L ! - ] $ { { $ { $ { L L $ { > $ { { $ p - / 7 w w 7 w 7 w 7 = = - > > - ] @ . . . @ + . + # . . . + & # + # + . + . { ) > > ) { > % . ", " $ $ . + @ + [ + . # , u , ' ' ' , x j s < +.l | | v | l x , R < + + @ + - d > p = - - { $ { ; $ { { + F { ~ { e $ { { + ] 6 w 7 i w 7 I w 7 ! - 6 > 8 2 - . @ + + % @ + + # @ # + + @ . @ & $ % @ < + f % 8 ) * & + @ ", " B * @ + & @ + + @ @ @ @ m @ S @ m @ @ @ p t % @ m @ m @ m @ @ . + . + + 6 F { p = ! 2 _ { $ { { $ { = L $ { $ > $ e $ _ - / w 7 w 7 w 7 w w ] = 6 > > ] - d . @ @ . + $ ) % . & $ f + . + ) > * . + . . @ > {.. + + . ", " $ $ + @ . + . + @ . . d @ % + . . . . . F } % + # + @ + + + @ + % # . d = d > ..- = ! ] _ e $ { $ L ! 6 $ { { $ { $ > L 2 ] w 7 w 7 w 9.w 6 - ] - { ) 2 = d . % @ @ & > ) _ . _ > > @ + @ { U f + # % . + ) { # . @ % ", " B $ + . + @ # . + @ + . + + . # + . . + % q p + @ # . @ @ @ z @ + . + 4 5 L > F = 6 - ! = L + L ] - = - ] $ $ e { $ L = - ! = w 7 w 7 w P = 5 - 2 { > ! '.% & * _ _ $ > > ) . % { ) @ % # 8 > ) . . # + @ ) ) . @ . % ", " $ { # % + . + + + . + % @ . . [ . @ . + % 8 8 f > ) { ) ) > ) 8 ) { $ _ L D ) F 6 ! = - ! 5 - = - ! = ] - ! ..L d ] ! ! 2 - ] ! 2 6 6 ] - - = - ] > ) > > 8 > > > ) > 8 > > @ f > ) * @ + ) > { $ $ > > $ { > @ + # . ", " ~ * . @ + + . . + @ . @ + % @ + . + + + % ) { ) > > > ) > > ) {.{ ) > > > ) > L = = ! = - = 5 6 2 = ! - - = ] ] = - = = ! 2 - = - / - - ! = ! - = > {.{ D _ * ; $ & f f 8 ) @ 8 { ) * @ * ) { > ) > 8 ) f {.{ & & . @ ", " { $ . @ . # < + + # + . . + # . @ @ . . % } f * . # . # @ @ *.. @ % * % d F > d 2 ! 6 - 6 w i i w w = = = ! 2 - - = ! = ] - = ! - = 5 ] - - - = = > ) ] 6 A + $ * + . [ > 8 + > {.> $ + * > _ > ) 8 M @ . * > % + + + ", " * B ~ $ * & & + . + < . < + @ + + & % + # . p : p @ . @ . # . & # . + @ + h ! d > L - = ! 5 i / 4 Q 4 i P - = ! = ] 2 6 w 6 = ! = - - - - ! = ! - ! 6 { > - - *.. $.* @ + + 8 > _ > _ > ) O {.> . $ ) > * + + & > * & . + ", " $ ~ * $ * { 1 * $ 1 $ . . . + + . . < + + . . + + + p : F . + . + . + # . . + < + . - F ) L ! = = w / / / / Q / i 6 6 ] 2 6 w P 7 w 7 6 = ] ! = 2 - 5 = ] - 6 > ) - ! # . e M . @ . $ > 8 ) & f > $ > 8 @ _ ) > & . + % > _ + . . ", " $ $ $ 1 B $ ~ { * e * & # . % # + . + . + + [ . $ ) > ) ) > > > * + . . # . . @ % @ = }.) ..! - 6 i Q k Q k 4 / / 2 ! - = w 7 w 7 w w w 6 ] - = = = = 6 ! = = U ) = - + % e M + + @ * ) > 8 . _ 8 ) ) * + . { ) _ @ + % > _ . . @ ", " & . _ . + @ @ . . < + @ % @ + & ) { ) { > ) 8 > > @ + . . # . d + + = ! ! - = = 2 I / / 0 / Q k i 6 = ! 2 w 7 w >.w 7 w 6 - h - ! 2 ! = = 5 - ) > 2 ] @ + $.* + . @ % > > $ + . { ) { + . @ > > . [ . * > & . + . ", " & . & @ . . # + + . . . # . + * > & @ m @ . # { > . # . # . . . @ < 0 = 2 ! = = 5 w 0 / i 4 / Q i 6 ! 6 / w 7 w 7 w 9.w I = 5 - ] - - ! - = r { ) - *.@ z $.1 [ @ + + * 8 + # + $ $ & @ # . % @ . + + % ) * + @ . ", " * ~ * ~ { * ~ $ ~ c ~ * . . & @ + # . @ . # . & > _ + + . # @ ) > # . . @ < + . . + + - - ! = - ! I i / Q / 0 / I - - - 2 7 w 7 w 7 w 7 5 - ] - = ! - 2 = ! - $ { 6 . % + e * . + @ # @ & @ & + # @ + + + . + + # + + $ > * @ + + ", " 8 1 $ c $ c $ 1 $ c $ & + @ + . % + @ + @ . @ * > * @ % . + @ > ) @ % + . % @ . . + . / - = 2 - - ] w i i / i i 6 ] = - ! I P 7 I w 7 w = = 2 - 2 ] ] - ] ! - = ] ] @ . [ ; & @ . + . . + . + + . @ + . % # & . @ % @ & > f @ + . ", " 1 ~ ~ & * . . + % @ @ . . @ . + . + % ) $ @ + + + . > { # . + @ + . + # % @ + - ! - ] 6 - ] 2 w w w 6 ! 2 - ] = 6 w w 7 w w 5 = ! ! ! 6 - - = 6 = 5 ! = + + @ + e $ . . # @ + + + # . . + % H + . + [ . . @ _ ) * @ + + ", " ~ $ $ @ + [ @ . d . + + + % . + % . . ) ) @ . . + % ) { @ d . z % . @ + . + @ h ] 6 ] = = ! - ! - = = = - ] - = 5 ] 6 I 5 = ! 6 - = = ] = - ] - = - 2 ] . # . < ~ * < + G . @ . @ . + + @ + @ @ + + . + . # * ) * + @ . ", " c $ $ . & + % . [ + @ + @ + [ @ + + @ > 8 @ . @ . % ) * . . + + # . . . + + + + = - 5 = - = ! = - ! 6 ] 6 = ! = - = - = ! - = ! = ! - 6 - ] - - 5 ] - + . < + @ ; * @ . [ + + + . % . + . % + . < . + # . + * > _ < . p ", " ~ 1 + . @ . + @ . % @ % . @ + @ + # > ) . + . . & ) * # & # . [ . # & @ . [ # h ! ! = 2 - - = 2 h.6 2 = 5 - ! ] - ! = 5 - ] = = = ! - = 2 - ] 6 ! h @ + # . + U * + # + @ . # @ # + + @ + . < + . + % # + _ > * < + + ", " c $ $ + # . . . + z . . @ + <.@ % @ . ) 8 # + . . f 8 * @ @ + @ . % [ @ @ + . . & %.- ! - ] 5 = - - w 7 w - = = 6 = = - = - 6 = - ] - - ] - = ! = h @ + . % . + $.* @ . + & @ % + + . + . % @ # & + < . @ @ * ) _ # . @ ", " 1 c $ + . # . @ z z b.. # 3 | | < + # > > + < + @ * ) f @ @ . @ & 3 l | < # . # + & = 5 = ! - = = 5 6 7 I ! = = = ! = ! - 2 ! = = - ! 6 ! - = - ] . % . . # ~ ~ ~ $.~ $ . . + + . . [ + . . + . . @ @ + . @ % > _ [ . + ", " $ c $ # % + @ z T !.T Y $ | K | x . . 8 > @ + [ @ * > % . + + . < 9 | l | + @ + + + & ] - = - ] ! h ! - ! = - ! 6 = - = ! = ! 6 ! h - ] - = 5 h @ . @ . + . $.q.K o $ $.+ . @ & < 3 | < # . [ . + . + + + G % > & . + @ ", " $ 1 ~ . + @ % z z =.b.G M x K | K + @ $ ) _ @ + @ _ > & . . < + < l x 9 l . @ . + @ + @ # - - 2 Z { _ 2 - = ! = = 2 ] - ! 2 - = F $ * = ! - 4 . % + + @ . + $.9 v v M $.* & 1 & #.| K :.8.* $ & _ * * M * * $ > _ @ p + ", " 1 $ { @ . . % . T !.z z . l | 3 < + + M 8 _ . . @ > ) f @ + + . . l 9 l < + + % . + . + . + = 5 ~ $ * = ] - - = 6 ! - 2 = - / 6 f 1 ~ ..- + . @ @ . < + . @ $ -.9 ` 8.~ > ~ ; ~ 8.l | #.e $.e $.e $.e ; ~ ; ; > * + . d ", " ~ $ c # + . . + + . . < . . @ < @ + & * > M # + z ) > * + + @ @ # . H < + . . @ . + @ . + @ . ] { * { 6 2 ! 5 ! = ] - ! ] - ! - Z { ~ Z H [ + & + + % . + + ~ v.:.#.$ ; * & * * < 9 | l # . & * & & @ + + d % ) * . # . ", " * ~ 1 @ + # + . @ . + + + . . . + @ + % ) > $ f 8 ) { + . < + + + . + @ % < + + . @ . @ @ + + . * $ $ - - = = - 6 ] - = - - - = d $ $ * + . @ + . @ @ + + & ; $ ; e $.{ & + . @ + < < [ . . . % . % . @ p . & > & . % @ ", " { 1 { . . + @ . % @ + + @ % @ + . + . & { ) i 7 % ) $ + . . @ & + % . . + @ + + + % # . + @ % + 1 { * % *.] h ! - 2 - ! h 4 d + W { 1 . + @ [ # & + . # + & * #.l v.* W . @ # . + @ . . # # . @ . . . . @ . _ ) & + . + ", " c $ $ % . . # + + + . @ + + + + [ # . + + @ i 7 % z H + + . . + @ % @ . + @ + @ . @ W + + . + @ * $ ~ _ + # . . & H @ < . # + . % e ~ _ . + . + + # & . + @ . 3 v 8.@ + @ + % . + + + @ . + + . + + + # % . * ) & . @ + ", " $ 1 $ # H + . < . # & + < . @ + . < . @ + + @ _ ) # @ . @ . @ [ + @ . & + + + @ + + + @ % . @ . _ B $ & + @ . + + . + + . . % + O $ * & H % . & @ + . < + # . < ` x.+ @ . @ . . @ . . . % + . @ . @ . . @ # $ ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % _ . # + . # . @ . # @ . + + # . @ # 8 > . . + . @ + . + # . # @ % % _ % * . & & _ + . . ~ o.* . + @ & @ . + < + . @ . & ~ { & + + # . . + @ @ + + @ % K o # < + . @ + # + # . @ d . # + @ + # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ * ~ $ 1 e * $ $ * . & * _ . * & . W % & + i i . & & & & _ 1 $ ~ c { 1 c 1 $ ~ ~ { $ $ ~ $ ~ $ 1 $ * . & & % * & * . & . * . & 1 * & & . & * & % O & & * < l v | l 3 < & & & * ~ { * $ $ * e $ * $ $ 1 $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; $ * $ { ~ * $ * c $ $ B ~ c $ ~ c ~ { * e * ~ & 7 7 & 1 $ o.~ ~ $ $ * $ { ~ f ~ c $ * B $ B $ c ~ * ~ $ ~ e c * ~ * $ B $ e * ~ * e $ * { 1 $ c * $ c $ $ * $ | ` 9 ` 9 o ` | $ $ 1 $ 1 c ~ c * $ * ~ B ~ * { { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.=.!.; ; { & 1 $ $ $ c $ { $ B $ $ 1 * ~ $ e * { 1 % + $ $ e f * $ 1 $ 1 $ * 1 $ * & * & . & * . 1 $ c ~ * * $ $ { ~ f ~ * $ ~ c ~ c $ { $ c $ ~ * ~ ~ { * ~ $ $ o l v -.9 ` 9 ` 8.B { 1 $ $ $ ~ $ ~ $ c $ $ $ ~ 1 * $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T X Y ; ; . z + . . # . & . & . & & & * & _ . & % Z & & O & * & * . # . . @ . d + . . # . @ . + . # . @ % * . _ . & . * * * % & . & & . * & * & * _ . . & & * & < | l 9 ` | v l & & & . + @ z + + . # & + . @ . [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; [ . @ # . . . @ % + @ . . . + . @ + + + @ . + @ @ . . + . . + # . . # . @ . . . # . + @ + + . + . # % . . @ # . @ Z % + . . + . + @ + . + + . + @ + . + + + + % @ [ @ & # + @ . % + . . % + @ + . # + . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # . < d & + % G + . + + # @ . d + + @ + H @ . . + + + @ % @ . @ + + . + % + H . % % + . @ @ # O # + @ % + % @ + + @ + @ + . [ + + . @ + @ @ + . @ . # + & # G . @ . . . @ + @ @ + # + + @ % # . < . @ @ . + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame04.xpm0000644000175000017500000004630407343277263012061 /* XPM */ static char * zz4_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; n g n g ", "; ; ; ; ; R n J n J A u.^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u n R g n g J p : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q 5 7 $ ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ n J N J g n @ ( ( ^ : ^ } ( > > ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q 7 7 % ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ g n g J g n ; ; : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; f % ; > } ^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( R n n R n ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > } ^ } ^ : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : # @ # @ ; ; ) > ; ; ; ; ; ", " ( : ( ^ } ^ ( : : ( ^ } ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ ^ ( ; ; > ", " ^ } } ( ( ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , ;.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x } ( : ! = - = = ! = = ! } ( ; ; > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . # $ ; @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : t A u ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = 6 - t ( } &.+ . . . + + . + . # . $ ; . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | o , # 7.7 k , , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 = ] = - %.: ^ ( ] = + @ % @ # + + + . . * ; . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ u 3 9 H ' , 2.7 7.# , s : : : [._ N , ' ' 9 | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - - ] - - ] 6 ! ^ ( : 2 - - h @ . & % . . @ + M ; . . + @ + + . @ . z . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ m , x v x , m g C '.: @ [ ( D : ( F s u ' , v | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - - 5 - = ! ! } ( L./ = - ] h + m + . < + . $ ; W # . @ . . + . !.!.!.z % @ . . f > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | s , , , , + : f.i '.: c.p ' , , H g | 9 . . # % . % + . h 6 ] - = = - ! - = = ] ! - ] 5 - = - = = ! ] }.! 6 = = - = 4 & + @ . # @ * ; ; ; ; ; ; ; ; e !.X T B ; ; ; ; ; ; ; ; ; ; ; > > * @ ", " $ $ . + . + @ . + @ R x v j s , ' u ' @ 7 7 G.t p ' , , , , ' o 9 + + . @ . A W ] 5 ! = ! = ! 2 - ! = - = ! = - - ! = ! - = - ] 2 - %.5 = = = ! 4 + . . . . % e ; ; ; ; e ; ; 1 b.!.!.O ~ * M * > > 1 $ $ * $ $ ) _ + ", " c { $ @ [ . + + @ + @ , j -.3 , , @ [ + D f.P t D + % [ ' j ' m 9 o . @ % @ % + d - = = - = - ! - ! - = = ! 6 ! = ! = - - / = ! - ! = ! = - 5 ! - = d @ + @ % . . + # . # + @ . + z =.z . # % @ @ ) > # . # . @ * ) _ @ ", " ~ * e . + @ + . . # @ , j | 3 , , t : : t : : q : [.q : + , ' S | | + @ + . + @ - = ! 2 ! = - - 2 ! ] - ! = ! = = - 2 - ! 6 = 6 = ! = 2 ] - 6 = ] - 5 . + . . # + # % + % @ + . . . + # . @ + . . ) { % + @ + . * ) M + ", " + i + . + % @ + . @ @ ' s v | ' u # # % # [ q % @ d % [ ' , , ' 9 o % . + . + h ! = - = ! = ! - = = = ! - ! = 5 - ! = / = = ! = = = ! - ! = 5 = - = - h + + @ . . # + + + + < + + & . + [ . . . A & > * . @ # + & ) * + ", " i 7 i + . . @ < . + m , ' | o , , , ' ' , + t [ , ' , , ' ' , , o 9 . @ & @ 0 ] = ! = - - 5 = 5 - 5 - 2 - ! = = = 6 - - = - - ] - 5 - ! = - - ! - ] - 6 + + <.. + . . . @ + . . # . @ . + . # @ + p > f . & + # f > % + ", " d k % @ + + . + + . @ , , | ` H N ' ' j ' & : p u m j , , j , 3 | | + . + . _ > d = 6 ] = ..{ ; ; _ ] = 2 ! d { ; ; _ ] ] = ] ! 6 >.7 7 w ! 2 - ! = - - ] . # + [ [ @ + & # + % @ & + @ + # . + . @ ) > % + + . _ ) _ @ ", " $ 1 @ % . @ . # # @ ' , x | | x , ' , ' + : % , , ' ' m , l 9 o < . @ . # L > L ! = - h ; ; ; ; ; $ - - Z ; ; ; ; ; { ] - - 2 7 7 7 7 7 7 = = = - F F = + . @ O @ . % + . + + . . . + & + & H + . % > _ . @ @ * > $ + ", " c $ . . # . . . . m j ' , ].v | o x ,.j #.+.< , ' S , j | o | < + . & % 4 F { L 6 = ] { ; ; ; ; ; ; ..] ; ; ; ; ; ; ; _ 5 = 7 7 7 7 7 7 7 w - = 5 > ) 2 + @ # + G + + @ . . + . @ @ + . + + + . < _ > f _ _ & f > * + ", " $ 1 # + % % + . # m , m ' ' s x 9 | o 9 o 9 ` 9 v | | 9 o K |.+ @ @ + + ] L ) F ! - - ; ; ; ; ; ; ; F Z ; ; ; ; ; ; ; % = 5 7 7 7 7 7 7 7 7 = = ! 8 > - ] . . . . @ . . + # z . . + % @ + < + . + . { > > > ) 8 > % . ", " ~ $ + + @ + [ + . @ ' u , ' , ' ' x j j [ +.#.9 o K o l j , , @ + + @ + - p > + - = - ; ; ; ; ; ; ; Z F ; ; ; ; ; ; ; % ] w 7 7 7 7 7 7 7 7 ! - 2 > 8 6 - . @ + + % @ + + @ # [ + # . . @ % $ % @ # % _ % > ) * & + @ ", " B * @ + < . + % @ @ @ m m @ H @ m @ @ H p : % @ m @ m @ m @ @ . + . + . 6 L ) F 2 ! 6 _ ; ; ; ; ; > = d ; ; ; ; ; ; ; $ - / 7 7 7 7 7 7 7 I - = 5 { > / - d . @ @ + + $ ) % . . { f # . + U { $ . + . . @ { ) @ + + . ", " $ $ . . . # . + @ . . p . # + . . . + . p : % + @ + . # . + @ + % # + d = % > d - = ! = f ; ; ; ; d - - $ ; ; ; ; ; ; L - ] w 7 7 7 7 7 7 6 ! = - > 8 = = 0 . % @ @ & > ) _ . +.> { @ + + > { f + < + . + ) > + . @ % ", " B $ + . + . # . + @ + . + + . # # . . + % : p + @ # . @ @ @ . @ + . + 0 6 }.> '.= 6 - - = d Z L ] - ] = ] { ; ; ; ; _ 2 - ] - 7 7 7 7 7 P = 5 - = { U ] '._ & * _ _ $ > ) > . _ 8 > % @ # 8 > ) . + # + @ ) ) @ @ . % ", " $ { # % + . # + + . + % @ . . % . @ . + % 8 } f > ) { ) ) ) 8 > 8 > * _ L f ) p - ! = ! - ! 6 = = ! - ] 5 - d L d ] - ! = - ] - 6 6 5 6 - = - = 5 > ) ) > 8 > > > ) > { > ) @ f > 8 & . + ) > { $ $ > > $ { { . # . # ", " ~ * . @ + + . . + @ . @ + % @ . + . + % % 8 > ) > > > ) > > ) ) 8 {.> > > ) > L = = - ] - = 5 6 2 = - = - - ] ] = ! = = 5 = 6 = ] 6 = ! ! ! - = ] ; ) { f _ * ; $ * f f $ ) @ 8 > ) $ . & ) { > > > ) ) f f > & & . @ ", " { $ . @ . + @ + % # + . . + # + @ . @ . % } f * . # . # @ @ + . @ _ & _ d F > d 2 ! - - 6 7 7 7 7 w 6 ] = ! 2 - - = - = ] - = ! - = - ] - = - - = { ) ] 6 A + ; * + @ % 8 ) . { {.{ $ + * > _ > 8 ) & @ . * > % + + + ", " * B ~ $ * & & + . . @ % @ + @ % + . % + + . p : p . . @ . + . @ # . # . # h ! d > F - = 5 5 7 7 7 7 7 7 w - = ! = h 6 6 P w = ! = - - 5 - - - ! - ! 6 > > - ! *.. ; $ @ + . 8 > _ > +.> ) O U ) . $ ) > * + + & > * & . + ", " $ ~ * $ * { 1 * $ 1 $ . . + . + . . @ + + . @ . + + p : F @ + . + . + + . . + & + . - F ) d ! = = 7 7 7 7 7 7 7 7 w = - 2 6 7 7 7 7 7 6 = ] ! = = 2 ! ] = ! 6 > ) - - # @ ; $ . # @ $ > 8 ) * f > f > 8 @ _ ) > & . + % ) _ . . + ", " $ $ $ 1 B $ e $ * e * & # . % + # . & . + + [ + $ ) > ) ) > { > $ + . . + @ . @ % @ = }.) }.- ! 6 7 7 7 7 7 7 7 7 I ! ! = w 7 7 7 7 7 7 6 - = = ! = = 6 - = - U > 6 - + + ; $ + + . * ) ) { + % > ) > * + + > 8 f @ + & > _ . . @ ", " & . % . + @ @ @ . [ . # % . # * 8 > 8 { > ) {.{ > @ + @ . + @ d + + = ! ! - = = I 7 7 7 7 7 7 7 7 6 = ! 2 7 7 7 7 7 7 7 6 ! = / - 2 ! = ] 6 - ) > 2 h . # ; $ + @ . % > > $ + . 8 ) { + . H > > . [ + * > & . + . ", " & O & . . @ + + + + . . @ & + & > & @ @ @ . # { > @ + . @ . . . @ < 0 = = / - = - 7 7 7 7 7 7 7 7 w ! - w 7 7 7 7 7 7 7 w %.! - = 5 - - ! = r { ) - d @ . ; 1 < # . # * 8 . + + $ $ & @ # . + @ . + + % > _ . @ . ", " * ~ * ~ { * ~ { $ 1 $ & & . . @ + + @ . # @ . * > _ + + . + @ ) > # . @ + < + . . + + - - ! = ! ! w 7 7 7 7 7 7 7 - - = 5 7 7 7 7 7 7 7 5 - ! - = ! = 2 = ! - { $ - . . + ; $ . + @ + @ # @ . + # . + + + @ + % # + + f > * # + . ", " 8 1 $ c $ $ * ~ $ c ~ * + . % @ & + @ + . + @ * > * @ + @ + @ > ) . % # . % @ . . + . / - = = 2 ! 2 7 7 7 7 7 7 I ] - = 6 w 7 7 7 7 7 7 2 ] 2 - 2 ! ] - ] ! - = ] / @ . # ; 1 + @ + . . + & + + @ @ % . % + . . @ % H & > f @ + . ", " 1 e 1 & O & + . [ . @ + . @ . . . + % ) $ @ + + + . > { # . + . + . + # % @ + - ! - = ! - ] w w 7 w 6 ! = - ] = 5 w 7 7 7 7 ! = = ! ! - - - = 6 = 5 ! = + + & + ; $ . . # G % + + # . . + + H + & + [ . . # _ > _ @ + + ", " ~ $ $ @ + @ # . + + . + + # + # + . . ) ) # . . + % ) { @ d . . # . @ + . + @ h = 5 = = - ] - ! = - = / - ] - = 6 ] 6 2 6 = - ! - = = / = - ] - 2 - = ] . # @ @ ; 1 < + . @ @ . @ . + + # + @ @ + + . + . . * ) * . @ + ", " { * $ . < + % . # + . # . % % @ % . # > > @ . @ . % ) & . . . + + + @ . + + + + = - 5 = = - ! = - ! - = 6 = ! = ! = - / ! - ! 6 = ! - ! - = - ! ! / - + . < + @ ; * @ . # + + + . . . + . % + . < + . # @ + & > _ @ & % ", " ~ 1 . + @ . + . @ % @ . @ @ + @ + # { ) . + . . _ > _ % @ + @ @ & @ + < . # [ h ! - ] 2 - - 2 = ] - ] = 5 - - / - - = 5 - ] = = = - - = = 6 = - ! h @ + # . % ; * % . % @ . @ # # + . @ % . @ + @ + % + + _ > $ # + + ", " c $ $ + + . @ . + . . + . # <.@ % @ . ) ) # . . @ $ 8 & @ @ % . + % [ < @ + @ . . h - - ] - ! = - - - ! - ] = ! = = ! - = = - 2 - ] - ! / - ] - = h @ + . % . + ; * @ + . # . % + + . + . + @ < & + @ . @ # * ) _ @ & @ ", " * c $ # . + . @ z !.!.. + l 9 9 < + # > 8 + < + @ * > D . @ @ . @ l 9 | < + . # % + ] ! = 2 ! = = / - = - - = = - = = ! = 6 ! ] = - - - ! - = - ] @ % . . # ~ $.; ; ; * & @ + + & . # % + . + . + . # . . # & { f # + + ", " ~ { * [ + @ . z !.X !.Y ~ 9 9 9 9 . z ) > @ + + @ _ > % . + + & < 9 9 9 9 % @ + . + @ ! = ] - = ! 2 5 - / = - 2 ! = - 6 - = = 6 ! h ! 2 - ] 6 h @ . . @ + . ; ; $ e ; ; + . . < @ | 9 3 + < + . . & + + + G % > % G + @ ", " * 1 ~ . + @ + . !.b.!.G $ o 9 | 9 + @ $ ) _ < . . _ > * @ . @ + < 9 | 9 9 . @ . + . + @ 4 - ! 6 4 7 7 = - = ! = = = ] = ! 6 ! = F $ * = ! - d . % # + . . + ; ; + @ ~ ; * M 1 & #.9 9 o 1 $ $ M * * * $ 1 $ $ > _ @ p + ", " ~ * { @ . % + . T X T z @ l 9 K < % . _ ) % . + @ U ) $ # . % + . l 9 l < % + + @ . & + . + = 6 % 7 / 5 = - - ] 6 ! - - ] = 2 6 f 1 e ..- + @ . # G < + . @ ; ; @ . $ ; ; ; ; ; v.9 9 x.; ; ; ; ; ; ; ; ; ; ; > * + . d ", " ~ { * @ + @ + . + + . < . . & @ @ + < * > & i 7 A ) ) * + + @ @ + < H < + . . . + + @ . + @ . ] { * e 6 ] - 5 ! = / - ! - ! ! - Z $ ~ Z @ < + & + + + & + + ; ~ * * ~ ; $ * * 1 #.9 | 9 # . & * & * @ + + % % ) * . # . ", " $ ~ 1 & + + . # @ . + + + . . . + . + % ) > 7 7 p { { + . @ . + % . + @ % [ . # . @ . @ @ + & + * $ $ - - - = - - = ] = - = - = d $ c & + . @ . . [ @ + # & ; ; ; ; ; ; & + & @ + < 3 % + . & + & % . @ d . * > & . % @ ", " c ~ c . . [ . . + . + % @ + @ + @ + . & { > f d ) ) $ + . + . @ + % . @ + . + + + % @ . + # . + 1 { * % A ] h - ! 6 6 ] ] 4 d + W { ~ . + @ [ # . + . + + . $ 1 $ ; ~ & @ @ . + % @ . . @ # G @ @ . . @ . @ _ ) & + . + ", " * $ $ % . . # + . # + @ + % + + [ # . + + # # f f m H . + @ . + @ % @ . + @ + . @ + W # . % + @ * $ ~ _ % @ . . H . @ < . # + . % e 1 _ . + . + + # @ . + @ + @ $ ; @ + . # + + . + @ . + + + . . + + + % + * ) & . @ + ", " { 1 $ # G + @ & @ + & + . @ . + . < . @ + + A 7 P @ + . . @ . [ + . . & + + # @ + d + . . . @ . % B $ O + # . % + . + + . . + + & $ { W @ % . . & + @ & + # . . * ; + . @ . @ . @ + . . [ + . + . @ . . @ @ $ ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % % + + + @ # . @ . # @ + + + @ . @ E 7 i . . [ . . # . + # @ + @ % % _ & * & & % _ Z . & 1 $ _ . + @ . @ . % @ + . . . . ~ * & + + # . . . + @ . # [ + $ ; @ @ + . . + # + + @ . d @ # + @ # # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ * ~ c ~ 1 $ $ $ * . & & * . * & G & & * . f f W . & & & _ 1 $ ~ c $ B B * $ ~ e * $ $ ~ * ~ { * $ 1 . & & % * & O & & & * & & 1 * & & & & & & [ < 3 -.9 v l $ e % % & & & & 1 $ e * $ c $ B $ $ $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; b.7 .Y ; ; $ * $ $ ~ ~ * $ c * $ e 1 { * { 1 $ { * e * $ ~ { { $ ~ * 8 ~ ~ $ $ * { $ $ $ $ c $ * e * e $ * ~ * ~ * ~ e c $ ~ * ~ { * e * 1 * e $ { $ c ~ c * $ o v K v l v K M ~ $ c { e * $ * ~ * 1 $ c $ * * ~ c ~ * { { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; V 7 7 !.; ; { . 1 $ { $ c $ $ { 1 $ B ~ * ~ $ ~ * { 1 $ $ $ B ~ f $ * ~ ~ * ~ c 1 $ * & & & & & . * 1 ~ c ~ { * $ $ c ~ f ~ 1 $ ~ c ~ { * $ { 1 $ $ * ~ M | ` o 9 ` v | M { 1 1 ~ _ e ~ c ~ { $ $ ~ $ ~ $ B $ ~ $ ~ 1 * $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; T V z Y ; ; + z . @ . + . & . & & & & & O & _ G & _ O & & & * O & & . # . # @ . + + z . + . @ . + # # . @ + & & _ & & . * * _ % & . & * . & * & 1 & _ & l 9 ` | l 3 <._ & & & & O * & & . + @ z + . . # % + . @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; e Y Y ; ; [ + . # @ . . & + + @ @ . + . + . + + + @ . + @ @ + . + . . + @ . + + . @ @ . . # . Z @ + + . + @ + + . . # @ . @ Z + # . + . + + . + . + + . < < % . + + + + + . p @ . # + . @ % + . + % # . + . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # . < d & + [ G + . + + + < @ d + # . + H @ . . + + . # + @ . # + . @ + % + H . % % + . @ @ % . *.+ @ % + + @ + + @ Z < . + < + + . @ + @ @ + @ . @ # + % + G @ @ . . . @ + @ @ + # + + . # % @ @ . @ # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame05.xpm0000644000175000017500000004630407343277263012062 /* XPM */ static char * zz5_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; Q w p ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; 7 7 P ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ # n m u.: ( ;.( ^ : ^ } ( ) > ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; P 7 f.; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ n J g ' ; > : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > } ^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( n g n ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : n R n ; ; ) > ; ; ; ; ; ", " : ( ( ^ } ^ ( : : ( ^ } ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ n R n ; ; > ", " } } } ( ( ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( n n g ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , ;.^ ^ g J ' ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x } ( : ! = - = = ! = = ! % F ; ; > ) ) ", " * e * . @ + . + # . m s S ` o q &. .a ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! - }.^ ^ % + % @ + . @ + < . . # $ e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g | 9 # 5 7 >., ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = 6 = t ( } &.+ . . . + + . + @ + . $ ~ + [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | | , a e.&.# , , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 ] = ] - r : } ^ ] = + @ [ . # + + + . . $ ; . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ u 3 9 <.' , # : [.@ , s : t : q % ' , ' ' 9 | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - - = ! - - - ] u.: t - - = h @ @ & % . . @ + W > . . + @ + + . @ z . z . . + + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ @ , j v j ' ' , # '.P >.# ( D : ;.F s u ' , v | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - - 5 = 2 ! U.f u.'./ = ! = h + @ + . < + . $ ~ W # . @ . . + . T !.z . [ . @ . f > f . + . [ * ) _ @ ", " $ ~ @ . @ @ + + . m ' 3 | x ' , , , # 7 7 &.} : q F ' , , j g | 9 . . # % . % + . h 6 ] - = = - ! - = = ] - ! = 5 - - - ] = - 4 d = 2 = - ] = ] . # @ + # . $ e ~ ; e ~ ; $ e * =.z X 1 e U e $.; ; $ e $.{ ~ > > * @ ", " $ $ . + . + @ . + @ , <.` j , , ' u , A &.t t ;.F A., , S , ' o 9 + + . @ . A W ] 5 ! = ! = ! 2 ! - = ] = - ! = - - ] - - - ! r r / Q.5 = = = 5 h + . . . @ M { ~ U e U e $.e * T b.T * 1 $ $ * > ; & * M * * f ) _ + ", " d / & @ % . + + . # @ , j o 3 ' , @ [ d D : : D D + + [ ' j ' m | v . @ % . % + d - = = - = - - - ! - = - ! 5 ] - ! %.- - / = ! 2 4 2 2 = 2 ! - ] = d @ + . + + . + . . + + @ . . z =.z . # + @ # ) > + . # . @ * > _ @ ", " 7 7 0 . + . # . . # m , ,.| x , ' D : : t : q q : [.q : % , ' , | | + @ # . + @ - = ! 2 - ] - ] 6 ! ] - - = ! = 2 - ] - ] - - = r ] 4 r 4 = / = ! - ! @ + . . . % # + [ + & # + . . + # . @ . . . ) { % + @ + + & ) M + ", " 0 4 * . + % @ + . . @ ' j | | ' u # # p @ [ q % # # % + ' , , ' | o % . + . % %.! = = ! - = ! - = = = ! = ! - 6 ! - 2 6 = = ! 4 = r / = / 2 5 = = = = ] & # @ . @ + % + + + . [ + . . % # & . # m & ) * . @ . + % > _ + ", " * ~ c + @ . @ & @ + m ' ' | o , , , ' ' , + t % , ' u , ' ' , , v | . @ . @ 0 ] ] - ] = ! 2 - ! 6 - ! 2 - - ] = = ! - ! = = - = 4 2 4 2 4 %.2 = 5 = - 6 + + <.+ + @ . . # . . + @ + @ . + @ + . + % > $ . [ + . f > & + ", " $ * $ @ + + . # + . @ j , | ` H N ' ' j ' % : 1., m j , , j ' x | | + . % . _ > d = 6 ] = .._ $ $ L ] = 2 ! d _ { * _ ] 6 ! ] 4 2 I w w I / 2 ] 2 ] - - ] . + . # % @ + < + . % @ & + @ + + . # . @ ) > % . + # _ ) _ # ", " ~ 1 . % . < . + # m ' , x | | x , ' , , % : % , , ' m m , | l v < . . @ # }.> L ! 2 ] d $ $ { $ $ _ - - L { $ 8 $ { _ h - = i w 7 I 7 I w 4 2 %.2 F F - @ + @ . @ . % + . + + . . . + @ % . @ & + % > _ . . @ * ) $ . ", " c $ @ . + . . @ . @ , ' , ].v | o x ,.j < +.< , ' , , j | o | < + @ & + d d > L - = / _ $ { $ c $ $ ] ] $ * { $ { $ { d / r w >.P I 7 w w I = 4 2 { ) = + @ + . . + . @ . . + . @ . + . + & + . @ _ ) f _ % $ $ {.* + ", " $ 1 # + # % + . # @ , m ' ' s x 9 | o 9 o 9 v o K o | 9 o K |.+ @ . + + ] L ) d ! ] h { $ $ { f { $ L L $ { $ _ { $ { d r / w >.w 9.I 7 I 7 h r / $ > 6 ] @ + . . @ + . + # . . @ + % # + # + . + . { > > > ) { > % . ", " ~ $ . + < + # + . @ , u , ' ' ' , x j s < C.l 9 | v | l ]., R & # + @ . - p > _ 2 - / $ $ $ $ { $ { d L { * { { $ { $ + h i w 7 I w >.w 9.I 2 4 2 { 8 2 - . @ . + % @ + + # @ + # + . . @ & $ % @ < + _ % 8 > * & + @ ", " B * @ + & + . % # @ m @ m @ H @ m @ @ @ % : % @ m @ m @ m @ @ . + . + + 6 L ) d ] / / _ { $ $ { $ $ = ..8 $ $ c $ $ $ % r / I 7 w >.w I 7 I h r / $ > ] - d . @ @ + + $ ) % . & $ $ # . + {.> * . + % G # > ) . + + . ", " $ $ + @ . # . + @ . . d . [ + z . . . . p : % + # + . + + + @ + % # + + = % > d ! = / 0 * $ { $ $ d ] 2 _ { $ $ { $ { + 2 4 I I 7 w 9.w I / 2 4 2 { ) 2 = d . % @ @ & > 8 f . _ > { @ + . { > f % @ + . + ) { # . @ % ", " B $ + . + . @ . + @ % . + + . [ # + . + % : p + @ # @ @ @ @ z @ + . + 0 6 }.> L ] / / ] 4 + % + h / ] = ] _ $ $ { * + 4 r / 2 i I 7 I 7 i 2 4 2 r $ > ! '.% & * * _ $ > > ) @ _ > ) & [ # 8 { ) . + # # @ ) ) @ @ . % ", " $ { @ % + . # + + . + & @ . . + . @ . + % 8 } $ > ) { ) ) > ) 8 ) { * F _ D ) F 6 ] 4 Q / Q / h Q / ] / ! - d L h 4 ] 2 h 2 4 2 2 i 2 / %.2 r ] r > > ) > 8 > ) > ) > { > 8 @ f { ) & . . ) ) { $ { > > $ { ) . # . # ", " ~ * . @ + + + . + @ + @ + + < . + . + % % 8 > ) > > > ) > > ) {.> ) > { > ) > L = ] ] / h 4 / / 4 4 ] / = - / = ] 2 %.4 2 4 2 4 r / r / / %./ r h { f > _ _ * ; $ & _ f > ) @ ) 8 ) * + & ) { > > > ) ) 8 f { & & . @ ", " { $ . @ . + @ . + # . + . % # + @ . @ . p } f * . # z # @ @ z + @ % * % d F > p 2 ] / 0 / w 7 w 7 i / ] = ! = = 2 r / r 4 = r ] %./ r ] r 2 / r / { ) ] 6 4 + $ * + . [ 8 ) . { U > $ . $ { f > 8 8 & H @ * > * + + + ", " * B ~ $ * & & % . + @ % @ . @ + + . % + + . p : p . . @ & + . + @ . + @ + h ! d > d = ] ] i w 9.I ).w w I ] %.5 ] h 2 2 / 2 r ] r 2 %./ 2 4 = 4 = 4 2 $ > - ! *.. $.* @ + . 8 > _ > % ) ) * f > . U ) ) * + + % > & & . + ", " $ ~ * $ * { 1 * $ 1 $ . . + . + . + @ + & . @ . + + p : F . + @ + . + [ . . + < . + = L ) F 5 ] 4 w ).w w 7 i 7 ).P / = 2 6 w I 7 7 I / r / / r r = / / r ] 2 > ) = - # . ~ +.. # . $ > 8 ) * $ { f > 8 @ _ > > & . . % ) _ + . . ", " $ $ $ 1 e * e $ * e * & # . % + @ . . + + + [ . $ ) > {.8 > > > * + . . @ + . @ % . - ..) }.= ] / >.w >.P >.w w I / ] / ] w P 7 I w 7 I 2 h 2 %.4 r r 4 2 4 r $ > 6 - + % e & + + @ * ) 8 > + % ) > ) * + # > ) * + % & > _ . . @ ", " & . + . . @ < @ + [ . @ + . # _ 8 > { > > ) 8 > > @ + . . # . d # . ] - ! - / / / 7 i 7 I P >.9.w i 4 / / >.w w >.w I 7 2 4 r 4 / r = / r / 2 ) > 2 h . # ~ $ + . @ % > > $ + . 8 > { + . @ { > @ [ . _ > & . + . ", " & * & + . @ . + + + . . # & . & > * m # @ . # { > . # . @ . . @ % @ d = 2 - = = / I P 7 w ).w I 7 / 0 / / I 7 P 7 w 9.w I r ] 2 h 2 4 2 h r r $ ) - 4 . . ~ * < + . # * 8 . + + $ f & . # . % + . + + % > * + @ . ", " * ~ * ~ { * ~ $ 1 $ 1 * & . + @ . % @ . # . # * > % + + . # @ ) > # . . # & + . . . + - ! - = ] / P >.i w 7 i 7 i / / ] i P >.w I w I 7 / 4 2 4 2 h 2 r r / 2 $ ~ - . . + $.* @ + @ + @ + @ < + @ @ . + + @ + @ + + + _ > * . # + ", " 8 1 $ c $ * { ~ * { ~ & + . % @ + + @ + @ . @ * > * @ & + . # > ) @ + [ . + @ . . + @ ] ! = 2 - ] / w I 9.w >.w i h 4 4 / I P 7 i 7 P w 4 h 4 / r / 4 = 4 ] r = ] ] @ @ % { W + . [ . . + . + + . # + . % + & . . [ <.* U f @ + . ", " 1 e ~ & O & + . [ . @ . . @ . + . + % ) > @ + + + . { > # . + . + . # + % @ + - ! - ] 6 / 0 i I P i / / 4 ..4 0 / I 7 i 7 I Q 4 ] / h / %./ r r 4 6 ] - + + . . ~ * . . # . % + + + . @ + + H + . # [ . . # _ > _ . + + ", " ~ $ $ . . # # . d . + + + + . + % @ . ) 8 # . . + % ) $ . d . @ % . @ + + + @ h 2 ! = - = ] 4 / / 4 d 4 Q 4 ] 4 Q 4 / i / 4 / 0 / 4 4 4 2 r ] 2 / = 6 h @ % # < ~ $ @ + G @ @ . @ . + + . + @ < + + . + . # * ) * . @ . ", " c $ $ # & + & . [ + @ + < + % @ + + @ > > @ . @ . % > * # . . + + # . . # + + + = - ! = ] / ] 0 / / 4 4 / 4 ] 4 ..4 4 4 Q / h / ] ] / 4 = 4 2 %./ ] - + . @ + . ~ * @ . # + + + @ % . # . % + . < + . # . + & > _ < + % ", " ~ 1 . + @ . + @ . + @ % @ @ + @ . 0 { ) . + @ . _ ) * # . # . < . # & . . [ + A ! ! - = - ] 4 h 0 ] 0 h Q / / 0 ] / h Q / 0 h 4 4 4 / %.4 r / = 5 h @ + [ . % $ * % # % @ . + @ + + % @ + . @ + . + [ + + _ > _ < + + ", " c $ $ + # . . . + . + . . # <.@ % @ . ) 8 + . . . M ) * @ < + @ + & [ @ @ + @ . % h = 6 ] - 5 = / / / / ..4 4 d / 4 0 ] 4 4 / 4 / ] / / 4 = / ] = h . # . . + + ~ * @ . . # . % + + . + . % @ < . % @ . @ @ * > % . @ @ ", " 1 c $ . + # . @ z T b.. + 3 l | < + # > ) + < + @ * { D . @ . @ . 3 x l < . + @ + + ] ! = = ! = h 0 / 4 h / 4 4 ] 4 4 Q h / Q h 0 ] 4 Q / ] 2 - h @ % . + @ ~ $ $.e $ * . . # + . @ # + + . + + . . # + . + % > % % + + ", " $ c $ [ + . @ z T !.T Y M | x l x . . 8 U @ + # . f > % . + + % < l | 3 | + # . + + @ ! = ] - ] ] d / Q / d 4 / 4 ] 4 / 0 4 h Q / d 4 ] / = 2 h . + . @ + . ~ { & ~ $.{ # . G < & 3 | < # . @ . . . + + . H _ > _ @ . @ ", " * ~ 1 . + @ + z z =.b.T $ | 3 | l + @ $ ) d @ . @ _ > * @ . @ + < ].l | l . @ . + . + @ 4 - - 6 & $ & 4 / h Q h 4 4 0 ] Q 4 / 4 % 8.M ] ! - 0 . % @ % . . + ~ ~ + . * $._ & * & <.l | :.M * M & _ & * M * & $ ) * . p + ", " ~ * { @ . % % . T b.=.z @ 3 | l @ % . _ p 7 i + @ { ) $ # . + . . #.,.| < + + % @ . . % . . 2 = & i 0 4 0 / / 0 / ..4 / 4 / 0 / +.~ 1 d ! + . # . @ . . + < { e < . & ~ ; ~ $ e M | 3 #.~ { ~ ; $ ~ e $ e ~ ; > & + + + ", " ~ $ c @ + . . + . + . & . + < @ @ # & $ % 7 >.. + U ) * + % . @ # . @ < + . . . + + @ . + @ . ..d 7 7 / ] / ../ / 4 ] Q ] ] ] ] + $ ~ Z @ @ + < + % # & . + $ ~ & * ~ $ * & * & < | | l % . & * & & . % + p % ) * . # . ", " $ ~ 1 @ + # + . @ @ + + + . . . + . *._ ) f f p % 8 ) . + @ . + % . + @ % [ . # . @ . @ . + + + * k d - = = = ] 6 h ] 2 ] 2 5 = d ~ * * + . @ + . # . # + & e $ e > ~ > & + . @ + < < # . . . % . % . @ + . * > & . % @ ", " 8 1 { . . + @ . + . + # . # . + . # . % { > f 7 7 _ f . . + @ . + % . @ + . + + + % @ # + @ % + 1 $ $ % A ] h ! - 6 - ] = h d + W { 1 & + @ . [ . + . + + & * & $ ~ 1 & H . # . + @ . . # + H . @ . @ . @ . _ ) & + . + ", " c $ $ % . . [ + + + @ & + + % + [ + . # + # # i i m H + + @ . + < + @ . + @ + . # . & . + . + @ * { ~ Z % # . . <.. @ < . @ + . % { ~ Z . + . + + # < . + @ . @ * $ @ + + @ % + @ + + @ . # + . + + + + % + & ) & . @ + ", " * 1 $ @ . + @ & @ + & + . @ @ + @ < . @ + + @ 8 ) + @ . . . @ [ + . . % . + # . # d . + < . @ + * * $ & + @ . + + . + + + . % + G $ $ W @ % . [ . . + < + @ + < * { . @ . @ . . . # . . % + + . . @ . @ + @ $ ) & . + . ", " ; ; ; ; ; ; $ { ~ B $ 1 % & + + + @ # . @ . # . . + + . . . # > > @ . % @ . . + # @ . # # & % _ & * & & % _ . . . ~ c _ . + @ & @ . [ . . + @ . & $ B % % + @ . . + @ @ + + @ + M ~ + < + + . # + . + @ @ d . # + @ + # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ * $ 1 { 1 ~ * $ $ * . * & _ & O & W & & . & { 8 W . & & & _ 1 $ ~ c { 1 c 1 { ~ ~ 1 $ { * $ ~ $ * ~ * & . & % O & & % & O * . & 1 1 & 3 | l l 3 & O & & & * & $ ~ . % & & & & * ~ $ c $ * $ B $ $ ~ $ 1 $ f > $ . . # ; ; ; ; ", " ; ; V .V Y ; ; * $ $ $ ~ * $ * c $ $ B ~ * $ 1 c $ $ c ~ c $ ~ { > ~ * $ o.~ ~ $ $ { * $ ~ f $ * { * { * ~ ~ c ~ * ~ * ~ e c $ ~ $ 1 c ~ * ~ * $ e $ $ M v K v | ` | M $ $ $ * { * { $ c e e * $ * e * ~ ~ c $ * * 1 { 1 $ c { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; .7 .T ; ; { & 1 $ { $ c $ $ { 1 { ~ ~ * ~ $ ~ * { 1 $ * $ e ~ f $ * 1 $ ~ * $ B $ * & & & & & O & 1 * { 1 { * $ { * ~ 8 ~ 1 $ e ~ B $ c $ { M 9 o K v K v $ 1 $ * { ~ c $ ~ 1 $ _ ~ B $ 1 { * $ ~ $ ~ $ B $ ~ $ 1 ~ * $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; Q.k Q.Y ; ; . z . @ . # . & . & & & & O & * _ . & % * & . & * O & & . # . . @ @ + + z . + . @ . + . # . @ + & & _ & & . & _ * % % O & & . * & #.K o v l | . & * & & G _ % . & * O * & & . + @ . + + . [ + + . @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y e ; [ + . # . . . & + + @ . @ . + . @ + + + @ . + @ @ . . + . . + . . + + . @ @ . . # . + @ % + . + . # + + . . @ . . + . # . + . # + . + . + # . + @ + . + + + + + @ % @ & # + . @ + + . . % # @ % . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # . < d & + [ G + . + + + < @ d + + . + H @ . . + + + @ + @ # @ + . . + % + H . % % + . @ @ # O @ + . % + [ # + + @ Z # & . [ . + . @ + . @ + . @ . # + & # G . @ . . . @ + @ @ + # + + . + + @ % @ . # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame06.xpm0000644000175000017500000004630407343277263012063 /* XPM */ static char * zz6_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ) ) ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } ; > : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > } ^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : ( ( } ; ; ) > ; ; ; ; ; ", " : ( ( ^ } ^ ( : : ( ^ } ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ # # # ; ; > ", " } } } ( ( ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( n J g ' ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , ;.^ ^ n R n n ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' , l | ~.I ' s , ' , s , , , % q % 9 o x } ( : ! = - = = ! = = ! n g J g ; ; > ) ) ", " * e * . @ + . + # . m j m v | 7 7 a , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! = ' J n g + % @ + . @ + < . . # $ e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g | 9 k 5 [.@ u ' , ' d p D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = - 6 d g ' A + . . . + + . + . # . ~ $ . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . @ # . @ , j o | , # : t k ' , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 ! = ] - %.D f D / = + < + @ [ + + + . + ~ > . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . + + . @ u s 9 x ' , # P 7 m., s : : : [._ N , ' ' 9 | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - = = - = 5 - ] D t D - - 2 h @ . . % . . @ + $ ~ . . + @ + + . @ z z . . . + + + & ) _ @ . @ . * ) M + ", " $ * . % + < + + @ @ , x o j , ' , k 7 f.@ [ : D : ( F s u ' , v | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - ! 5 - = - ] % f F / = - ] h + @ + . < + . $ ~ & # . . @ . Z z =.T /.z [ . @ . f > f . + . [ * ) _ @ ", " % # @ . @ @ + + . @ ' 3 | 3 , ' , , + t q F D : c.p ' , , H g | 9 . . # % . % + . h 6 ] - = = - ! - = = ] - ! - 5 - = - ] = ! A 4 r 2 %.- = = / . % @ . # @ $ e ~ e ~ ~ { ~ $.* z X z 1 $ ~ $ ~ ; ; $ * $ $ * $ > * @ ", " 7 7 i . + . + @ . + @ , j v s , , , , , @ t : ;.t F ' , , , , ' o 9 + + . @ . A W ] 5 ! = ! = ! 2 ! - = ! = - ] = - - ] - 6 - - y a 4 V / = = = 5 h + . . G . $ $ ~ > ~ U e $ e * T z =.O ~ $ ~ $ > > W & & * & f ) f + ", " 4 7 % @ % . + + . # m , x | 3 ' , s [ + D : : D D % # % ' j ' m 9 o . @ % @ % + d - = = - = - - - ! - = = ! 5 - - ! = - - ] = ] r A y 4 r / - ! = = 0 . + @ + . . + + . + . # . . /.z T . + + . # > 8 + . # . @ * > _ @ ", " ~ * e + + . # . . # @ , 3 | x , ' D q : : t q q : [.q : % , ' S | | + @ + . + @ - = ! 2 - ] - ! 2 ! = ! - = ] ] 2 - = 5 - 5 - 2 a r A y 4 r / = ! - - @ + + . + [ # + [ % . @ + . . + % . @ # . . ) { % + @ + + * ) & + ", " $ * B . + + @ + . . m ' j v | ' u # # [ # % q % # # % # ' , , ' 9 o % . + . % %.! = = ! = - ! - = = = ! - ! - 6 ! - = = = = ! r A y 4 r k r / 2 = = ! h % + @ . G # % + + + @ % + . . # + < . . # & > * . @ @ + % > f + ", " $ 1 { + @ . @ & @ + @ ' ' | o , j , ' ' u + t % , ' , , ' ' , , o 9 . @ & @ 0 ] = ! = / ] 6 ] - 5 - ! 2 - ! = = = 5 - ! = = ! r A 4 y A V 4 %./ / = - 6 + . <.+ + . . . @ + . . # . @ + . . + # . p > f . % + @ f > % + ", " $ 1 $ @ . % + # + . @ , , | -.j ' ' ' j ' & : 1., m j , , j ' x | | + . + . _ > d = 6 ] ] ] d _ L d = = 2 ! ] L _ Z L / - = / 4 . .i I .k r r 4 = = - ] . + # + [ @ + & # . + < . + @ + # . @ . . ) > % . + + _ ) * # ", " $ 1 . + . @ . + # @ ' , j | | x , ' , ' + : % , , ' ' m , | K o < . @ . # L > F - / 4 0 _ _ _ _ _ d - = ] _ _ _ F Z F ] - r k I >.I i I .4 V 4 r p F - # . @ O @ . % + . + + . . . + . % . . # . % > _ . @ @ * ) $ . ", " c $ @ . + . . @ . m j ' , ].v | o x ,.j #.+.< , ' S , j | o | < + . & % 4 F { L = ] 4 % & _ L Z F _ ] ! _ Z _ L _ _ F h 4 4 .i .I .i I .k V 4 $ { = + @ # . . + + @ . . + + @ < + . + % . + @ _ > f _ _ * $ {.* + ", " $ 1 # % # % + . # m , m ' ' s ].| | o 9 | 9 ` v K o | 9 o K |.+ @ @ + + ! L ) F 5 ] 4 f M M % _ Z F ..D._ _ F Z _ Z _ d V k I I k I >.i .I a V a f > 6 ] . . . . # . . + @ . . . + [ + # @ + & + . { > > > ) { > % . ", " ~ $ . + @ & # + & @ , u , ' ' ' , ].j s < +.#.9 | v | l x , R < + + @ . - p > + = ] 0 & M * M M _ _ h ..Z L _ _ F Z % # A .k >.I k I .).I A .4 $ { 6 - & @ + . % @ + + # @ # + . . . @ % $ % @ # % _ % ) > _ & + @ ", " B * @ + & + . + # @ @ @ m @ H @ m . @ H p : % @ m @ m @ m @ @ . + . + . 6 L ) p / / 0 % M M % M * % ] ] _ _ Z _ + * & + y 4 .I I 2.I I I .A A .$ > = - d . @ @ . + f ) % . & $ f # . + U > * . % . . @ { {.. + + . ", " $ $ + @ . # . + @ . . d . + + . . . + . p : % + # + @ + + + @ + % # + d = % f d ] 4 0 0 & * M & M d / / L % _ & & & & *.a 4 .i I I k >.k .k V a $ 8 2 = 0 . % @ @ & > 8 8 @ _ > { @ + . { > f + @ + . + ) > # . @ % ", " B $ + . + . # . + @ + . # + . # # . . + % : p + @ # . @ @ @ z @ + . + 0 6 L w 7 ] 4 0 E # [ % [ # 0 h 2 ] L + _ O & *.k V a k .m.i I I k V a r V $ > ] &._ % * _ _ $ > > ) . _ > ) . [ # 8 { ) . + # + @ ) 8 . @ . % ", " $ { # % + . + + + . + & . . . % . @ . + % 8 } $ > ) { ) ) > ) 8 ) { * F F f 9.7 6 Q 0 # 0 E 0 # # E 0 ] 5 - d h 4 A a A V 4 V k r k .4 V 4 a r a $ ) ) > { > > ) > > 8 U 8 @ _ > ) & . + ) > { $ U > > $ > { @ + @ + ", " ~ * . @ . + . . + . # . # + < . + . + % % 8 > ) > { > ) > > 8 {.> ) > > > ) 0 7 = 4 0 ~.# # E E # 0 0 4 ! = / ] r .4 V k V a A y A a A k V 4 V A $ > { D _ * $ $ & f f > ) @ 8 ) { f . & ) { > > { ) ) f f > & & . @ ", " { $ . @ + # < + # + . % . + # + @ @ . . % } f _ . # . # @ @ + . @ % * % L F p 7 / 4 0 # E i i i ).k 0 4 = ! = 2 4 r A y a 4 V 4 r a r k V a k V 4 $ ) ! 6 *.+ $ . + . # ) ) . > {.{ $ . $ 8 f > ) 8 M @ . * > % + + + ", " * B ~ $ * & & + . . < + @ . @ % + . % + # . p : p @ . @ . # . . # . # . # d - d % 7 ] h 0 E i i i k i i i 0 4 ! ] %.4 r k .V k V a r A r A r A r A .$ > = - 4 G $ & @ + . 8 { _ > +.> ) + > > . $ ) > * + + & > * & . + ", " $ ~ * $ * { 1 * $ 1 $ . . + . % @ + @ + + . . . + + p : F . + . + . + % . . + . @ + = F ) L / / 0 k i 2.i i k i k k 0 / 2 2 I I i I .k V k A .y A .a A k r $ ) - = # . $ % G # . $ > 8 ) * _ > { > 8 @ _ ) { & . . % ) _ . . + ", " $ $ $ 1 B $ e $ * e * & # . + + . . & . + + [ + $ ) > ) ) > > > $ + . . . # . @ % . - ..) }.] 0 E k i i i E ).i i 4 0 4 h w i I k I .i y 4 V A .A V k V a r $ U ! - + + 1 & % + @ * ) 8 > . % ) ) ) & + + > > f # + % > _ . . @ ", " & O % . + @ < @ + # . # % @ + & ) > { { > ) 8 > { @ + @ . + . d # . = ! ! - = 4 E i k p.k i k i p.E 0 0 0 I w I I I i . .A y A 4 y 4 V a 4 y f > 2 ] @ & * & + . @ % > > $ + . { {.{ + . @ > { . [ . * > & . + . ", " & . & . . @ + + + . . . . . + * > % @ @ @ @ # > > . + @ @ . . . # & 0 = = 5 = / 0 i k i i ).i k i E C 0 E i i i w I i I k V k A y A y 4 V A y $ { - h @ . W * < + . # * 8 + + + $ $ & . # . & # . + + % > _ . @ . ", " * ~ * ~ { * ~ $ ~ * ~ * @ . . @ % # . @ # @ . & { _ + + . + @ ) > # . . # < + . . . + - - ! = ] 0 i i 2.@.k i k i # 0 # E i i i I i I i k 4 A r k 4 a V a 4 V & $ - @ . + $ & . + @ + @ . @ & + + @ . + + # + + @ + + f > * # + . ", " 8 1 $ c $ c $ 1 { c $ * + & + @ + + @ + . + @ * > * @ # . + @ { ) @ + + . & @ + . + . / - = 2 - / 0 k i i i 2.i E b 0 C 0 k i i i i i i 4 C a A a r A .A k r 4 ] ] . @ % * & + . [ . . + . # + . # + . % . . % @ % H & > f @ + . ", " 1 ~ ~ & * . + . [ . . . < @ . . . + % > > @ + + + . > > # @ % . + . # + % @ + - ! - ] 5 4 1.E k @.E E # # # b # E k i k i k E # # 0 0 y 4 a V A V / 2 = + + . . 1 & . @ + @ + + + + . @ + + H + . + # . . # _ > _ @ + + ", " ~ $ $ @ . [ @ . d @ + + + [ + + % @ + 8 ) @ . . + % ) { + + + @ + . @ + . + . h 2 - = = / 0 E # 0 C # C ~.# 0 # ~.# E E E # b 0 E # a A A .A .4 2 ] ] . [ @ [ 1 & . + G @ @ . @ . + + @ + # < + % . + . . * ) * . @ + ", " c $ $ @ % + . . [ Z @ + . + % @ + . # > ) @ . @ . % 8 M . . . + + # . . # + + + ] - 5 = = 4 0 # E [ 0 C 0 E # # 0 b # # E 1.# E 0 0 0 a r A .A 4 / - + . @ + @ $ & @ . % + + + @ % . + . % . . @ + . # @ + & > _ < . % ", " ~ 1 . + @ . + @ . % @ . @ @ + < + + > 8 # + @ . * ) * # . # . @ & @ + < . # # h ! ! = = ! 4 0 C [ 0 # # E 0 C 0 C 0 b # E # # # # E A A a V 4 2 5 h @ + [ . + * % + # + @ + . @ + + % @ + . @ % @ + % + + _ > * [ + + ", " c $ $ + # . . . + @ + . + @ < . + H @ ) p 7 I . % * ) * # < + @ + % [ @ @ + @ & . h - ! - = 5 h 0 C 0 b 0 [ # 1.C [ # 0 # C 0 C 0 C # E A 4 4 4 = h . # . + . % $ G . + . @ & + + + @ + . % @ % . + < . @ # * ) _ @ . @ ", " 1 c $ + . + # . z !.z . + < 3 x < + # > p 7 >.+ s * > _ @ @ & @ . < < < & . + @ + + ] 6 ] = ! = 0 C 0 C # E # # E # C E [ C 1.C # 0 # E 0 4 2 - h . % . . [ W * $ M $ & + . # % . . # + + . # . . @ # + . @ % > _ [ + + ", " $ c $ [ + < . . z =.b.=.M < < 3 < . z ) > # # % @ _ ) _ . . + + < 3 3 3 < # . + . + . ] - / - ] 0 # 1.# ~.# C # ~.# # 1.# C # ~.# [ E 0 4 ] 2 h @ + @ . + . $ * & 1 $ 1 # . G # & 3 < < . . + . . + + + . G % > & . . # ", " * ~ 1 . + @ + z w.T T /.& 3 :.3 < + @ $ ) _ @ + A & > & @ . . + < < x #.3 . @ + + @ % H h - - / & M < C 0 # ~.# # C # C 1.C 0 C [ :.M 0 ] - 0 . % . # . . # ~ * + . & ~ % % W & < < 3 < & & & & % & * & & & $ ) * # % + ", " ~ * { @ . . [ . T /.!.. . < 3 < [ + . f 8 _ @ 0 7 i ) f . + [ . . < 3 < < % + & . + . + @ . = 6 ~ M :.0 # C 0 C 0 ~.# E # 0 b 0 #.8.W d ! + . . # . @ . . . & ~ @ . & $ 1 * * ~ & #.3 M $ $ * ~ * ~ * $ * * ~ ) * + . d ", " ~ { * # + . + . + O z < . . < . @ + < * > * @ A 7 i > * + + @ . # & @ @ + . + @ + . # . + @ . ] $ + M / 0 0 0 0 # 0 0 0 0 0 0 4 % $ ~ + @ # + < + % + & + + $ * & & * $ & & * . < <.3 < # . & . & & . + & d +.> * . # . ", " $ ~ 1 < + + . # @ @ + + + . . . % z + % ) > > ) _ f 8 + . @ + + + . . & + < . + . @ . @ . # % + 4 7 0 - ! 2 ] / / ] / h / = 5 = + $ $ * + . @ . . # @ + # & * $ * $ * $ . + @ . + < < + % . . + . % @ . d . * ) & . % @ ", " c ~ c . . + . . % . + % @ + @ + @ + . & { ) { ) ) ) $ + . . @ & + p . @ + @ + + + + < + + @ . + 4 7 0 # *.h ] - ! 2 - ! h h d + W :.#.W + @ + [ . + . . + . & & & $ W . < . # . + @ . . @ # . @ @ . + @ H + * ) & + . + ", " * $ $ % @ . # + . # + @ + % + + [ # . + + @ # > U z H . + @ . + @ < . + + @ + @ # & . @ + % + @ % * $ _ % # . . H . @ < @ # + @ l v K l . + . + + # [ . + @ . . * * @ + . # % + . + # . + + # . . + + + % + & ) & . @ + ", " { 1 $ # G + @ % @ + & + . @ . + @ & @ @ + + @ 8 > . # . . . @ % + . @ & + + + @ + + + . . . @ . _ 1 $ . + @ . % + . + Z . . % + K o ` | @ [ . & . + @ & + # . # & $ . @ . @ . . @ + . H % + . + . @ . @ . < * ) & . + . ", " ; ; ; ; ; ; $ c ~ B ~ * & % . + . # + @ @ . # @ . + + + @ . # { > @ . % # . @ + # @ . + @ % % _ & * & & % _ . . . ~ c _ . + @ . @ . # < + . . . 9 v 9 l % + # . . . + @ + # . + & $ + @ + . @ + + @ + . @ d . # + @ + # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ * $ { 1 ~ * $ $ * Y & * _ & * & G & & & & ) 8 & G & & & _ 1 $ $ * { 1 B * $ ~ ~ * $ $ $ $ ~ $ * $ 1 . & & % _ W * + & . * & K -.9 -.9 < & & % & . & & & & & * * & % & * & & * $ $ c $ * $ B $ * $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; T b.7 k ; ; $ * $ $ ~ 1 $ * c $ $ * ~ c $ 1 c 1 { $ B * $ 1 { > ~ * $ o.~ ~ $ ~ c $ { $ $ $ c $ c e * e 1 c ~ * ~ $ ~ { c $ ~ 1 $ c ~ { 1 * $ | v ` 9 v l c 1 { c $ $ $ { * ~ * ~ $ c $ e * $ 1 { 1 * ~ c $ * $ 1 { 1 $ c { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; T V 7 7 ; ; { & 1 $ { $ c $ { $ B $ $ 1 $ ~ $ ~ { { 1 ~ $ $ e ~ f c $ * ~ * ~ * 1 $ * & & & . & * & 1 $ B $ B * $ $ c $ $ ~ * ~ { 1 e { M l v -.9 x.* $ ~ $ c 1 $ $ { $ { $ 1 ~ B _ ~ e * ~ { $ $ ~ $ ~ $ B $ ~ $ ~ 1 $ $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T V . ; ; + z + @ . . . & . & & & & * + * _ G & % Z . & . * & & & . + . # . . + + . . + @ . + + . # + H + & & _ & & . * * % % & . W & & < 3 #.& & * % O & & W O & G Z _ & & & O * & & . + @ z + . + # % + . @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; e Y Y e ; [ . . # @ + . < + + @ . @ . . . @ + + + @ . + < z . . + . . + @ . + + . @ @ . . @ . + @ + + . + @ + + @ Z @ @ . @ Z + + . + . + + . + . + + @ . + + # + + + # + + % @ @ + + @ . % + . . % + @ + . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # . < d & + % G + . + + + < # d + + @ + H @ . . + + + @ % @ @ + + . @ + % + H . % % + . @ @ % . z + @ % + % # + + @ + # & + [ + + . @ + @ @ + . @ . @ + % + G @ H + G . @ + @ @ + # + + @ % # . < . @ # z . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame07.xpm0000644000175000017500000004630407343277263012064 /* XPM */ static char * zz7_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ) ) ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } > ; : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > } ^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : ( ( } ; ; ) > ; ; ; ; ; ", " : ( ( ^ } ^ ( : : ( ^ } ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ ^ ( ; ; > ", " } } } ( ( ^ ^ ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , j # +.d.7 ' , ' , , , ' , s , ' +.| o x , ;.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' ' | 7 7 k , s , ' , s , , , % q % 9 o x } ( : ! = - = = ! = = ! + D ; ; > ) ) ", " * e * . @ + . + # . @ , m v 3 r.D @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! 2 g n g % + % @ + . @ + < . + + ~ e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . ' , ' | 9 # : f.>., ' , ' d p D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = - r n J n A + . . . + + . + @ @ . U e + [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . @ + . @ , j | | , [ 7 7 k , , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 ] = ] - V N g J .] *.< # + < + + + + . ~ $.. # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { & * + + + . # + . @ u 3 | x g , k i [.# , ' ( t : q % ' , ' g v | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - - = ! - 2 - 4 J g n V - = h @ @ . % . . @ + $ > . . + @ + + . @ /.z z . . + + + & ) _ @ . @ . * ) M + ", " p I 7 . + # & + + . m , x | x ' , ' @ L.t # [ : D : t D s u ' , 9 | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - - 5 - = - 4 n R N .] - ] h # . + . < + . e ~ G # . @ . + . z =./.=.. [ . @ . f > f . + . [ * ) _ @ ", " 9.I . & @ @ + + < m ' 3 | x ' , , , # 7.7 / D : c.F ' , j , ' | v . . # % . + + & h 6 ] - = = - ! - = = ] - ! = 5 - = - ] = ! g n g r r = - = h . [ @ . + @ U ; ~ ; e ~ ; ~ ; O =.X /.Y $ ~ $ ~ ; ; % & & * & $ > * @ ", " * % . + . + @ . + @ , j v s , , ' , R k 7 7.( t F N , , S , g o 9 + + . @ . # G ] / - = ! - ! 2 ! ] - = = ! ! = - - ! - 6 = - ' ' g A / = = = 5 h + . . . . $ $.{ $.~ > ~ { ~ O =.b.=.Y e U e ~ > ; & . % . % _ ) F . ", " * { $ @ [ . + + . @ @ , x | 3 ' , s [ % '.&.t D D % + [ ' j ' m | 9 . @ % . % + d - - = ! = = - - - - ] - ! 6 ] - ! %.! = ! = / y ' a y V 4 5 ! = = d @ + @ + . . + + . + . . . . z /.T + + + @ + ) { + @ + . @ * > _ # ", " ~ * e + + . + . + # @ , 3 | x , , t : : : : q q : [.q : % , ' , o | + @ # . . # ] - ] 2 = - ! = 5 ! = - ! = - ] 2 - = - 6 ! - 2 ' g ' g a r 2 = ! - 5 . + . . % + # + [ d < # + . . + % @ < + @ . ) { % + @ + . & ) M + ", " { * B . + @ # . . . m ' j v | ' u # # 1.@ # c.+ # # % + ' , , ' | o % . + + + h - = - ] ! = - - = = = ! = ! - 6 ! - ] 6 %.= - A a ' a g a A 4 r - = - h % # . @ . # % . + + & [ + . . + . @ . . # & > * . @ # + _ > * + ", " $ 1 { + . . @ < @ + m ' ' | o , , , ' ' j + t % , ' u , ' ' , , v | . @ & @ 0 ] = ! = / - / ! 6 ! 6 ! 2 - - ] = = 6 - ! = ! - V ' g a ' g y r 4 / = - 6 + + <.. . + . . # . . . + . @ % + . + # . p > 8 @ % + . +.> % + ", " $ 1 $ @ + % . + + . @ , , | -.j ' ' ' , ' & : p , m j , , j ' x | | + . + . _ > d = 5 0 h ! ] d h.] = ] 2 ! ] ] L ] h ! = = / a a y a y a a y A r 4 = - ] . + + # [ @ + & # + # < . + @ + # . @ . . ) > % . + # _ ) _ . ", " $ 1 . + . @ . # # @ ' , x 9 | x , ' , ' + t % , , ' m m , | l v < . . @ # F > L - 2 0 # + h.d h d ] - - = L ] L }.h ] ] - A y a y 2.y a y a ' y A d _ - # . @ . . . % . . + + . . . + . % . . < + % > _ . @ . * ) $ + ", " c $ @ + + . . . . @ , ' , x v | v x ,.x < +.< , ' , , j | o | < + @ & + d d > L ] 4 0 < j.d d h.h ..] ! d D.d D...D...] a g a n.a y k y a y ' ' a $ 8 2 + @ + . . # + . . . + . @ @ + . + % # . @ _ > f f _ & $ U * + ", " $ 1 @ + [ % + . # @ , m ' ' s x | | o 9 o 9 ` v K o | 9 -.9 |.+ @ . + + ] L ) d ! / # < #.< % d L ] ] h.h ....D...h L 4 a a y k y a n.k n.a g ' y M > - ] . # . . . # . + @ . . . + [ . # . + . + . { { > > ) 8 > % . ", " ~ $ + + @ + [ + . @ ' u , ' , ' ' ].j s < +.#.| 9 o | | ]., g & # + @ . - p > _ = 0 0 #.< #.< #.d d = ! D.h h.d D.d *.' ' a y g. .a y a y g.a ' y $ $ 6 - . @ . + % @ + + # @ # + + . . @ % $ % @ [ % _ +.{ ) * & + @ ", " B * @ + & . + + @ @ @ @ m @ @ @ S . @ H p t % @ m @ m @ m @ @ . + . + + 6 F 8 p / 4 b 3 #.#.< #.< % / ] ..L h d *.@ @ m ' a y a n.a n.k y a g ' a * { ] = d . @ @ . + f ) % . & $ $ # . + U > * . + . . @ > ) . + + . ", " $ $ . @ . # . + @ . . d @ + + G + . + . F : % + # + @ + + + @ . % # + + - + > L / 0 [ 3 < #.< #.#.[ 0 2 ] d *.# @ @ @ ' ' ' a y k y a g.y a ' g ' & ) 2 - d . % @ @ & > 8 f . _ > ) @ + + { > f + @ + . + ) { # . @ % ", " B $ + . + . # . + @ + . + + . # + . @ + % : p + @ # . @ @ m + @ + . + 4 5 L ) F 2 0 b b 3 3 < 3 3 # 0 / = d h # m @ ' ' y ' a n.a 2.y a y ' a ' a W > ! F % & * _ _ $ > > ) . % { > + < # 8 > ) . + # # @ ) ) @ @ . % ", " $ { # % + . # + + . + & @ . . [ . @ . + % 8 } f > ) { ) ) > ) { ) { $ _ d 7 i d / 0 C 3 b ^.3 3 b b # 4 ! - / 4 A g a ' ' g ' ' y a a ' g ' g ' y $ > ) > 8 > ) > ) > { > ) @ _ > ) & . + ) > { $ U > > $ { > . # . # ", " ~ * . @ . + . . + @ + @ + % @ . + . + % % 8 > ) > > > ) > > ) ) 8 ) > > f 7 7 ] ] 0 [ 3 3 b b b 3 < E 0 ] = ] r A y ' g ' a ' g ' N y ' a ' a ' ' * {.{ f _ * $ * & f f { ) @ ) 8 ) * . & ) { > > { ) ) f f { & & . @ ", " { $ . @ + + < + + # . + . + # + @ . @ . % } f * . # . @ # @ z # . % * _ ..d p p r 0 b b b C C C 6.C b 0 4 ! 2 = 4 y a ' g ' ' a g ' ' a g g ' g a $ ) ! 6 A + & . + . [ ) 8 . > U > $ + * > _ > ) 8 M @ . * > _ + + + ", " * B ~ $ * & & + . . < + < . @ % + . % + + . p : p @ . @ . + @ & # . @ # @ h ! d > d ] 4 b b C b E C ~.C C # 4 / ] r A y a a y ' g a g a y ' a ' a ' a * > - - *.. & & @ + + 8 > _ ) % > ) . > ) . $ ) > * + + & > & & . + ", " $ ~ * $ * { 1 * $ 1 $ . . + . + . + @ + . + @ . + + p : F . + . + . + + . . + & + + = L ) F / 0 3 C C 6.C 6.C b d.b 0 / %./ .a n.a y a ' ' ' g ' g a g ' g a $ U - ! # . & % . @ @ $ > 8 > _ $ ) { ) { @ _ ) > & . + % ) f . . + ", " $ $ $ 1 e * e $ * e * & # . % + @ . % . + . [ + $ ) > ) 8 > > > * + . . . # . @ % . - ..) }.] 0 b z.~.C E C b C C b [ 0 4 2 k .a y g.y ' y ' y ' g ' a ' ' y $ > - - + + . & + + . * ) ) { + % { {.) * + + { ) _ @ % & { _ . . @ ", " & . + . + @ @ @ + & @ + % @ + & ) { ) { U D f > > # . @ . + @ + # . ] - ! = / # b C b z.b z.b d.b C 3 b # i / 2 .k y a y ' ' ' a g ' g ' a g +.{ 2 h @ % & . + . @ % > > $ + . 8 > { + . @ > > . # + * > & . + . ", " & * & . . @ . + + + . @ + . + & > * @ @ A 7 7 { > @ + . @ + . @ & @ d - 2 - = 4 b C C b E b C C 6.3 b 3 b E k / 2 i .k a g a g ' a ' a g ' ' W {.- h @ . W . < + . # * 8 . + . f $ & @ # . + < . + + % > _ . @ . ", " * ~ * ~ { * ~ $ $ 1 $ * & . + @ + + . @ . # . & > % + + 4 7 ).) > # . @ + < Z . . # + - ! ! = ] 0 b d.b z.C 6.C C b 3 3 b C E E k k 4 k a ' ' a g ' g ' ' a y W * - @ . + & % . + # . @ % @ < + + @ + + & + + + @ % + _ > * + # . ", " 8 1 $ c $ * { 1 $ c ~ & + . % . @ % @ + @ . . * > * @ & . A # > ) . + [ . + @ . . . . / - = 2 - Q C C b C ~.C 6.b 3 l 3 b C b C b E C E 3 C s ' a ' a g ' ' y 4 h ] . @ + * . @ . # . . + . + + . @ + . % @ . + @ % H * U f @ + . ", " 1 e ~ & O & + . [ . @ + . @ . + . + % > 8 @ + d >.I f > # . + . + + + # % @ + - ! - ] 2 0 b b 6.C b 3 b 3 b 3 l b C C 6.C 6.b 3 3 b s a ' ' g a ' 4 2 - # + & + W + . . # . + + + # . @ + + @ + . % @ . + @ _ > _ . + + ", " ~ $ $ @ . # # . + + . + + # & + + @ + ) ) @ . # 7 7 D { @ d . . < . @ + . + . h 2 ! - = 4 b 3 3 b 3 3 l 3 b 3 3 l 3 b b b 3 b 3 b 3 s ' y ' ' y a r ] h . # @ @ & & < + G @ @ . < . + + . + @ @ % d . + . # * ) * . @ + ", " c $ $ + & + < . [ + @ + . + % @ % . @ { ) @ . @ A d { M . . # + + + @ . + # + + = = 5 = ] 4 b 3 3 ^.3 3 b 3 b b 3 3 3 3 3 3 3 b # b s ' ' ' g ' 4 / - d . . + @ * . @ . # + + + . + . [ z % + . @ . & # . + & > _ < . % ", " ~ 1 . # . . + @ . % @ & @ @ + @ + + > 8 # + . . % > _ + . @ + < . @ + & . # # d ! - - = ] 0 b 3 3 b 3 3 b b 3 b 3 b l b l 3 b 3 b 3 a ' a ' a r / h @ + [ . + & + % + % @ . # @ + + % @ % . < . + + # % + _ > * [ + + ", " c $ $ + + . @ . + . + @ + + H . % @ @ ) p 7 >.& i 7 f & @ < + . . % % @ @ + @ & + h = ! - - / 0 C 3 l b 3 3 3 3 l 3 3 3 3 3 3 3 b 3 3 3 s a a 4 = h . [ . . + + % . @ + . @ . % + + . + . + @ [ . % @ . @ # * ) % . @ @ ", " * c $ # . + + . z T w.. + [ < < @ + # > F 7 >.+ 7 7 d D @ @ + @ . [ @ < . + . @ + + ] 5 = ! = ] # b 3 3 b 3 b 3 b 3 b l b 3 ^.3 3 3 b 3 C 4 %.6 h @ + . + < & & * & & . % @ + + . # @ + + . . + . . # . . + & > % % + + ", " ~ c $ # % @ @ z /.X X z & @ < < < . z ) > # # + # 0 ) _ . . + . # < < @ < + # . + + . ] - 2 ! / [ 3 b l 3 l 3 3 l 3 3 3 3 3 3 b l 3 b b 0 h 5 h . + . @ . . & & . & & * + . G < . < < . + @ + @ . . + + + H _ > _ H + @ ", " $ 1 ~ . + . + z =./.X /.& @ < # < + @ $ 8 _ < . . * > & @ . < + . [ < < < . @ . + @ % H h = - / < :.l 3 3 b 3 b 3 3 l b 3 ^.3 3 l v | b ] - 4 & . < + + . + O & + . & & + [ . . & # < < & % & & + & + & & . M > _ . p + ", " B $ $ @ @ . [ . X !.=.z . < < & + + # f ) _ @ + @ U ) f . + + + . @ < # % . + % . + . + @ + = 6 ~ #.:.b 3 3 ^.3 3 b 3 3 3 3 b 3 l ` v l 5 + . # + @ . . . @ & * @ . + & & & * & & < @ % & & . & & & & & % Z $ > * + @ d ", " e $ c + + + . % + /.. @ . . # . < + @ * > * @ + . 8 > * + # & @ # + G @ + . + @ + @ + . + @ . ..$ & M 0 # 0 b b b b b b [ C 1.C l v l 9 . [ . < + % + < + + & & . & . * . . + . < @ % < + + & . . . . + . % % ) & . + . ", " * ~ 1 < . + + @ @ @ d + + . . . . . + % ) > > > 8 ) { + . @ . + % @ + < % < . + . @ . @ . + + . c $ $ = 5 ] h / / h / 4 / / ] / 9 ` v l + . @ . . # @ + + . & * % _ & * % + . @ + . [ + . . . % . % . @ d . * > * @ % @ ", " $ ~ c . . # . . % . . % . # . # + + . & $ ) { ) > ) $ + . + @ . + % . @ + . + + + + < @ + @ % + . i % + A ] h ! - / - ! h h d + <.v l <.+ @ + [ . + . # + % . . . & & @ H @ + & + @ . . # # . @ @ . # . H + % ) * + . + ", " c $ $ % . . # + . + # . + % + + [ # . + + # # > $ z H . + . . . [ . @ + + @ + @ . [ G + + . + @ i 7 i * % # . . @ G @ < . # + @ % $ 8._ . + . + + # & . . @ . # * & . + . # + + @ + . @ . + + . + + + + % . * ) & @ . + ", " * 1 $ # G + @ % @ + < + @ . @ . . < . @ + . @ 8 ) @ # . @ . @ % + . . . + + + @ + + + @ % . @ . 0 4 % . + . . % + . + + . . + % Y $ $ W @ % . < . + @ % + # . # . & + @ . @ . . . + . @ % + . . . @ . + @ [ * ) * @ + . ", " ; ; ; ; ; ; $ { ~ B $ 1 % % . + + . + @ . . # @ + + + . . @ + > > . . % + @ . # + @ . # @ % % _ % * & & & _ Z . . ~ o.* . # . @ . . # & + . . . & * ~ + % + # . . . + @ . # & + & % . @ + . @ + # + + . @ d @ + # . # @ + + * > % . # % ", " ; ; ; e ; % % e * $ $ * ~ { 1 ~ * $ f * G & _ * . * & . & % & . ) { & G & & & _ 1 $ $ { { B * 1 { ~ ~ c $ $ 1 $ ~ $ 1 $ * . & & % * & & + & . % . * 1 1 & . & & & & % . & & * . & & * & % & * & & * ~ $ * $ c $ B $ * $ $ 1 $ f > $ . . # ; ; ; ; ", " ; ; T X z 7 7 $ $ * $ $ ~ 1 $ * c $ ~ * e * ~ $ B $ ~ c ~ B $ ~ { { $ 1 $ o.~ ~ $ ~ * * $ ~ f ~ * { * e * e $ * ~ * ~ * ~ e c $ ~ * ~ c ~ e c ~ $ ~ { $ { 1 { c * { c $ $ * $ $ { * e $ c $ e * $ 1 { 1 c ~ c $ * $ 1 e * ~ c { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; X T T I i $ { & 1 $ $ $ c $ { $ 1 { * ~ * $ $ ~ * $ 1 $ $ $ ~ e f * $ 1 $ ~ * $ B $ * & & & . & & O 1 $ c ~ { * $ $ * ~ 8 ~ * $ ~ B 1 { * $ { * * ~ * ~ ~ { * ~ $ $ B $ * $ ~ 1 ~ _ e ~ c ~ $ $ $ ~ $ ~ $ c ~ $ $ $ 1 $ $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; T X =.Y ; ; + z . . . # . & . & & & & 1 . * _ . * % O & O & & O & * . + . @ . @ + + z . + . @ . + . # . @ + & . _ & & . & * * % % . & * . * & * & * % O . & & * & & G F * . % * . * & & . + @ m + + . # & + . @ . [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; & + @ # . . . & + + @ . # . + . @ + + + @ @ + . @ + @ + . . + # . + + . @ @ . . # . + @ + + . + @ + + . . . # . @ Z % @ + . + . + @ + . + # . + @ + . + + + + + @ % . @ + + @ . % + . . % # + + . # + . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ & d % . [ . + . + + . [ @ d + % @ + H @ . . + + . # % @ . @ + + G + % % H . % % + . < @ + O + + @ % + [ . + + @ + . . + [ + + . . [ . @ + . . @ # + % # G @ . . @ . @ + @ @ + + + + @ % # . < . @ @ z + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame08.xpm0000644000175000017500000004630407343277263012065 /* XPM */ static char * zz8_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ) > ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } > ; : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > } ^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ ; ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( } ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : ( ( } ; ; ) > ; ; ; ; ; ", " : ( ( ^ } ^ ( : : ( ^ } ( ( ^ D '.9.I |.| K o 9 | -.| 9 | | o 9 :.[ : p , ^ ( ^ ^ ( ; ; > ", " } } } ( ( ^ ^ ^ m k 7 7 | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ^ : ( ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , j a B.v l , , ' , , , ' , s , ' +.| o x , ;.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " $ 1 $ , ' N | 3 ).>.' s , ' , s , , , % q % 9 o x } ( : ! = - = = ! = = ! } ( ; ; > ) ) ", " * e * . @ + . + # . @ , m v l 7 7 A , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % d @ } ( ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . # ; ; @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . m , ' | 9 A &.q @ u ' , ' d p D : @ , , , | l | + # . # & + + . @ + . # . h ^ : ( = - = - = - ! = - 6 = 2 - t ( } &.+ . . . + + . + . # . ; ; + # . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " # 7 0 < . @ . @ # . @ , j | l , # t &.>.' , , : t q p , , ' , s v | . @ + @ + [ @ . @ % . + ] 6 ( } ( 2 ! = ! = = 6 5 ] - ] - r D } ^ / = + @ % @ # + + + + @ ; ; & # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " i 7 4 + + + . + + . @ J 3 9 <.' , # 7 7 a , ' ( : : [._ N , ' g v | + + . @ % . + % + @ h - - = : ^ : - ! %.- ! - - = - = - 2 ] % p D = - - h @ . & % G + @ + ; ; . . + @ + + . . z =./.. . # + + & ) _ @ . @ . * ) M + ", " _ 0 * . + + < + + @ @ , x 9 x ' ' S 2.5 [.@ [ : D : : D s u ' , 9 | . + . . @ . A . . ] - ] - 2 l.F ..= 5 - = = ! - ! 5 - = ! ] @ @ d 4 2 = ] h + @ + . @ . + ; ; G # . @ . + . /.X X =./.% @ . . f > f . + . [ * ) _ @ ", " $ ~ @ & @ . + + . @ , 3 | x R , , , @ : q F D : c.p ' , j S ' | v . . # % . + + & h 6 ] - = = - ! - = = ] - ! = 5 - - - ] = - u ' ' r r - = = / . % @ + # @ ; ; ; ; ; ; ; ; ; Y X /.X Y $ ~ $ ; ; ; % . # % . _ > * @ ", " $ $ . + . + @ . + # , j ` j s , ' , , @ t : ;.t F ' , , , , g o 9 + + . @ . # G ] 5 - = ! = ! 2 ! - = ! = - ] - = - ] 6 - - - u J N ' 4 2 = ] 6 h + . . . . ~ ; ; ; ; $.; e ; +=.K.X Y ; ; ; ; ; ; @ . . . [ _ ) f + ", " c { $ @ # . + + @ . @ , j o 3 , ' s [ + D : : D D % # % ' j ' m 9 | . @ % @ % + d - = = ! = - - - ! - = = ! 5 - ] - = - = ! = ] u R , n A r / - ] = 0 . + @ % + . + # . + + @ . + /.X /.. + + @ # ) ) + @ + @ . & > _ @ ", " ~ * e . % # . . + # @ , 3 | x , , D q : : t q q : [.q : % , ' S o | + @ + . . # = - ] 2 ! = - ! 2 ! = ! - = ! = ] - ] 6 ] 6 - 2 u N u J ' r 4 = ! - ! @ + . . # + # % # % . # + . . + % @ < + z . ) { % + @ + + * ) & + ", " * $ B . + . # . . @ m ' j l 9 ' ' a [ % # # c.+ # + % # ' , , ' 9 o % . + + & h ! = - ] - = ! - = = = ! - ! - 6 - ! = - = = ! F.' J , u g ' .r = = = ] . + @ . G # + + + + @ & + & + . # . . @ # & > _ . @ @ + % > f + ", " 1 1 { + . . @ @ . + @ ' , | o , j , ' ' , % t [ , ' , , ' ' , , o 9 . @ & m 0 ] ] - ] / ! 6 ] 6 ! 6 ! 2 = - ] = = 6 - ] = - - ' , u ' J u ' a 4 2 / = 6 d . < . + + . . < + . + # . @ % + @ + . + % > $ . % + @ f > & + ", " $ * $ @ + % + % + . @ , ' | -.j , g s , ' & : p , ' j , , j ' x | | + . + + _ > h = / 0 4 ! - ! - = ] - 2 ! - - ] - = 5 - ] / N u g u , J ' g a A r - = ] . + + < # @ + . # . + @ . + @ + + . # . . ) > % . + + _ ) _ # ", " ~ 1 @ + . @ . # # @ ' u x | | ]., ' , ' + t % u S ' ' m , | K o < . H . # L > F - / # 3 4 ] 2 - = 5 - = - ] - ! - = ! = = y , u , N ' u u J ' u ' d F - # . @ Z @ . + % . + + . . . + & # & G # + % > _ . @ @ * ) $ . ", " c $ . . # . . . . m j m , ].o | o x ,.j #.+.< , ' S , j | o | < + + & % 4 F { L / h C l ,./ ! = - ! 6 ! 2 = ] = ! - ! = a u , J u R N R u , u , ' & > 2 + @ # . . % . @ . . + . @ @ + . + + + . @ _ ) f _ _ * $ {.* + ", " $ 1 @ % + [ + . . m , ' ' ' s ].| | v | | 9 -.v K o | 9 o K |.. @ @ + + ] F ) d ] 4 b l 9 | b / = - ! - ] - 5 = - r ! y , u N ' u , u ' u J u u N & { - ] . . . . @ + . + @ . . . + # & # . # & + . { > > > ) { > % . ", " ~ $ + + @ + [ + @ @ , , , ' ' ' ' x j j [ +.l | 9 v | l x , g < + + @ . - d > F / 0 3 | 9 9 | 9 0 = = ! = - - = ! = a u N R u , u N J , u ' u R N & { 6 - & @ + + % @ + + # @ # + + . . @ % $ % @ @ % _ % ) > _ & + @ ", " B * @ + & . + % + @ s m m @ H @ m @ @ @ % : % @ m @ m @ m @ @ . + . + # - p > L / 0 b 9 l 9 K | 9 b / = 5 = = r A n , u , u N R u , u J , u u , u & > 2 - + . @ @ . + f ) % . & $ $ # . + > > * . % + G # { U + . + . ", " $ $ . @ . # . # @ . . p . # + G . + . . p : % + + + @ + . + @ + % + + + - + > d ] # l 9 | 9 | 9 l 3 0 / = / a ' J u , u u u , u N , u u u R u u ' & > = - 0 . + @ @ & > ) _ . _ > ) @ + # { U f + @ + . + ) > # . @ % ", " B $ + . + . + . + @ + . + + . # + . . + % : p + @ # . @ @ @ z @ + @ + 4 ! L ) p 4 E 3 9 K | K 9 9 l # 4 ! 2 r A N g u J ' J u , J u ' u u ' u u R & U ] &._ & $ _ _ $ > > ) . % { > + & # 8 { ) . + # + @ ) ) . @ . % ", " $ { # % + @ + + + . + & @ . . [ . @ . + % 8 D { > ) { ) ) ) > 8 ) { $ 0 w D > F / 1.3 | 9 l 9 | K l C 0 5 - / y ' u , u u , u u , u J , u u R u ' & ) ) > 8 > ) > ) > { > ) @ f > ) & @ + ) > { $ U > > $ { 8 @ + @ + ", " ~ * . . . + . . # . + @ + + < . + . + % _ 8 > ) > > > ) > > ) ) { ) > 7 7 1.> L 4 # l K 9 | K | 9 | b 0 ] = / %.y ' J , N J , N u , N J , N u u ' W > { f % * * * & f f { ) @ 8 ) 8 $ . * ) { > > { ) ) f f > & & . @ ", " { $ @ @ + # @ + % # . + . % + + @ @ # . % D f _ . # z # @ @ *.+ @ _ & i 7 d ) d 4 0 l 9 l K | K 9 l 3 # 4 ! = r A g N u , u u R u u , N , u , u ' & ) ! - h + # . + . [ ) 8 . > { > $ # $ { f > ) 8 M H . * > & + + + ", " * B ~ $ * & & + . . @ + < . @ + + . % . # . F : p @ . @ & # . < @ . # . . h ! + > F / # l | 9 l 9 | 9 9 K 3 # / ] r a , ' u R u N , N , n , J u J u ' & > 2 ! *.. @ # @ + . 8 > _ ) % > ) . ) > . $ ) ) * + + % > * & . + ", " $ ~ * $ * { 1 * $ B $ . . + . % @ + @ + # . . + + + p : F . + . + . + + . + + < + + = L ) d / b 3 9 9 | 9 9 | 9 | l b / 4 r ' u J u ' u R u R N , u ' u , u g $ ) - - # . . % . # @ $ > 8 ) * f > { > 8 @ _ > > & . . % ) _ + . + ", " $ $ $ 1 B $ e $ 1 e * & # . + + . . & . + + [ . $ ) > ) 8 > > > * + . . @ . . @ % @ - }.) }.h b l 9 9 | K o K 9 9 9 3 [ 4 / 4 ' ' u , u N u J u J u R N u , N W ) 2 - + [ . @ + + . _ > ) { . % ) f ) * + + { ) * # + % > * . . @ ", " & . _ . + @ < @ + # . + % @ + & ) { f f > ) 8 > > # . . . # . d + . ] - ! - 4 # 9 | ` 9 9 9 | 9 l 9 l 9 b A 4 r a g u , u , , N , u , u R u ' & $ = ] . # . . + @ . % > U f + . 8 > { + . @ > > . [ . * > % . + . ", " & . & . . @ + + + . . @ . & + & > % 7 >.A @ # { > . # + @ + . H + < 0 = = 6 ] 0 l 9 | 9 | 9 v | 9 9 | 9 l 3 E 4 4 4 a g N u R u u g u N u u u & U 6 *.@ . @ . < + @ + * 8 . + . f $ & @ # . % # . + + % > * . @ . ", " * ~ * ~ { * ~ { $ * ~ & . . . @ + % . @ + @ + 1 ) % 7 >.# + @ ) > # . . @ < + . . + + - ! - = / # K | v 9 l 9 9 o 9 9 9 | 9 l b # C # s ' u ' u , u u , J ' u . * ! . + . . + @ + @ + @ % @ . + @ + . + + @ + . # % + _ > * # + . ", " 8 1 $ c $ $ * ~ { c $ & + . % . # + @ + @ . @ * > * # # . + @ > ) . [ + . % @ . . + . / - = 6 = Q 3 K | 9 v l 9 9 -.9 9 l 9 9 | K 3 9 l ,.x |.A., N , u , u N A %.] @ @ % + . + . # . . + . % + @ # % . + + & . @ % H & > f @ + . ", " 1 e 1 & * O . + [ . @ . . @ . + . + % > p i 4 + >.I f > # . + . + + # + % @ + ! ! - ] / # K 9 | 9 9 | 9 9 | v 9 | K 9 9 | 9 9 | 9 | |.u u J u ' R a 2 5 + + . + H + . . # G + # + + . . . + @ . % + # . . # _ > _ @ + + ", " ~ $ $ @ # [ @ . + . + + + # + + . + . 8 Q 7 i # 7 7 f $ + + + m & . @ + . + . h 2 ! - ] 4 l K 9 | v 9 9 l 9 l 9 9 | 9 9 | 9 9 l ,.l ].' , u u u ' r = h . [ @ . @ @ & + @ . @ . @ . + + @ + @ @ % + . + . + * ) * . @ + ", " { * $ . & + % @ [ + . # . % & # % . # > % i A @ A d 8 $ @ . . + + # . . # + + . - = 6 = ] # l 9 K | 9 o K 3 l 9 | v l 9 v | 9 l 3 | ].u u ' J ' a / - + . @ + < . + @ . % + + + @ + . # . % + . @ . % # @ . & > _ < . % ", " ~ 1 . + @ . + . @ % @ + @ @ + @ + # > ) . + . # % ) * # . # . < . @ % @ . # @ d ! ! = 2 ] # l | K 9 | 9 | K l 9 9 9 | K 9 9 | K l ].j u u u ' 4 / h @ + [ . + + + + @ # @ . + @ + + % . + . < + @ + + % + F > * [ + + ", " c $ $ + # . . . + . + . . # H . % @ . ) 8 # + # >.7 f * # < + @ + % % @ . + @ . + h - - ! - / # K | 9 K | 9 | 9 | v | 9 v | K 9 | 9 9 x |.s ' A 2 h . + . + . + [ . @ + O < . % + + . # . % @ [ . % @ . @ @ * > _ @ . @ ", " * c $ + . # + @ z X X + + % @ . @ + # > > + . + ).w f f . @ . . . # + . . % + @ + . ] 5 = - / ] 3 l 9 | 9 K 9 | K 9 K | 9 9 | K 9 | K 9 3 C 4 2 h . [ . + @ & @ . . % @ + @ + [ . . # + . . + . . . @ + . # % > _ [ + + ", " ~ { * < + . @ . K.X X X + . + & + . z ) { @ # + # % ) % . + + @ + . # . # . # & + + . ] ! = - 4 b 9 | 9 v | 9 v | 9 o 9 9 o 9 | 9 | 9 l # / = h @ + . @ . + # + # + @ + + . G + & @ + . + @ + . . + + + + G % > % . . @ ", " * 1 ~ + + @ + /.X w.K.X # . @ . # + @ $ ) _ < + . * > & @ . & + & # . < + + @ . + @ + . 4 = ! / < -.9 l 9 | K | 9 9 9 | K 9 9 v K 9 | [ / - 0 . % . # . . . . . + . . < + # . @ . + [ . . + % @ + + @ % . + * ) * @ p + ", " ~ * { @ . + % . X K.X /.. % @ % + % + M 8 _ @ + @ { ) $ # . # + . + # . + & + + . + @ % . + = 2 8.:.| K | 9 9 v l 9 o 9 | 9 l | | | :.d / + . + @ . < + . # . . @ . # + . @ + . + + . d < + @ . @ . . + # + & > * + + + ", " ~ $ c @ + . + @ + O z < . . + . @ + & * > * # . . ) ) * + + @ . # . . @ + . . @ + . @ . + @ . ..$ & M C [ b b 3 l 3 3 l l b b b < M ~ % . @ + < + + % . < + + @ + & . + . @ + @ @ . + + + . % . @ + @ + . + +.) * . # . ", " $ ~ 1 < + + . + @ @ + + + . . . + @ + % ) > > > 8 > 8 . + & . + % @ + < + [ . + . @ + @ . + + + * $ $ ] / ] 4 0 / 0 0 4 / 4 / ] + $ * * + . @ + . # @ + + . % . + d . % + % . . % @ % + # . @ + & + . @ p . * > & . % @ ", " c ~ c . . + @ . % . + [ . # . # . + . & { > $ ) ) > f . @ + @ . + % . @ + . + % . # . @ + @ & + 1 $ { # *.] h - ! 6 = ! h h d # 1 $ ~ . + @ . [ . + . # + . @ . . @ . H @ @ @ + + @ . . @ + @ . @ . @ . H + _ ) & + . + ", " c $ $ % @ . + + . + # . + % + + [ # . + + # + > $ z H . + . . . [ . @ . + @ d @ + & . # + + + @ _ * * _ % # . . H . < @ . # + . % B ~ _ . # . + + # & . + @ + @ + + @ + . + + + . + # . . + + . . + + + % + & ) & . @ + ", " $ 1 $ + H + @ % @ + & + @ @ . + @ & @ @ + + H 8 ) @ + . . @ @ % + . . % . + # . # + . . & . @ . i 7 0 . + @ . % + . + + . . % + * $ $ & @ % . . & + # & + # & # & . + @ @ @ & . @ + . . [ + . + . @ + @ . < * ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % & + @ + . # . . . # @ . + + . @ . # > > @ . + # . + @ + # . # . % % _ & _ & & % _ . . k 7 4 * . + @ . @ . [ . + . @ z & 1 { & + + # . . . @ @ + # . + # % + @ + . . # + . # . @ d . # + @ + # + + * > _ @ + [ ", " ; ; ; ; e ; % 7 0 $ $ * $ { 1 e * $ $ * G & * _ & O & & & % . & 8 > . W & & & _ 1 $ ~ c $ 1 B * $ ~ e 1 $ { $ * ~ * % $ * . & & % O & & & & . * & & 1 1 & & & & & % % O & & * & & O & & % & & & & * e $ c $ * $ e $ 1 $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; T X T Y 4 7 k $ $ * ~ 1 $ * c $ $ * ~ c $ 1 c ~ c * e 1 $ ~ { { $ ~ * f ~ ~ $ $ $ c $ $ $ ~ c $ * { * 1 ~ c ~ $ 1 $ ~ e c $ ~ $ 1 { * e * ~ * e $ * { * ~ c 1 { c $ $ * $ * ~ c ~ $ c { B $ $ * ~ * ~ $ c * * $ 1 { 1 ~ c { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; =.!.=.T $ % _ & 1 $ $ $ c $ { $ 1 $ $ 1 $ ~ $ e * { 1 $ $ $ B e 8 * $ 1 $ ~ * ~ c $ * & & & & & * & 1 $ * ~ c * $ $ * ~ 8 ~ * ~ $ B $ c $ { $ c $ $ * ~ ~ { * ~ $ $ { $ * { 1 ~ ~ _ e 1 { 1 { 1 $ ~ $ ~ $ B $ $ $ $ 1 $ $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; !.=.X Y ; ; + m + . . @ + & . * W % W & Z & _ & & _ O & & & & . & * . # . + @ . + + z . + . @ . + . # . . % & & _ & & . & * _ % & . W & . * & * W * _ . . & & 1 & & G _ % & & . * O & & + + @ . + + . # % + . @ . [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % . . # . . . < + + @ + @ . . . @ + + + @ . + @ . . . + . . + @ . + + . @ @ . . # . + @ + + @ + @ + + + O @ . . @ Z % + + . + . + @ + . + # . . + + . + + + + . + % @ + < + . @ + + . . % # @ + . # + . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ < d % . % G + . + . + [ @ d + # . + H @ . . + + + @ + @ @ + + . @ + % + H . % % + . @ @ + O z + @ % + # # + + @ + @ . + [ + + . @ + . @ + @ @ . # + % + G @ @ . . . @ + @ @ + # + + . % + @ & @ . @ z + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame09.xpm0000644000175000017500000004630407343277263012066 /* XPM */ static char * zz9_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ ) ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } > > } ( ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > } ^ } ( ^ : ( ^ Q 7 g., V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ ; : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( } ^ } ^ 5 7 P @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : ( ( } ; ) > ; ; ; ; ; ", " : ( ( ^ } ^ ( ( : : ^ } ( ( D Q t : @ |.| K o 9 | -.| 9 | | o 9 :.[ : p , u.: ;. ^ ( ; ; > ", " } } } ( : ^ ^ ^ m # : r.k 6.| j ' , ' S ' ' ' x 9 o 9 #.S ' } : ;. ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , j + e.7 )., , ' , , , ' , ' , ' +.| o x , ;.u.} ^ ^ ; ; & & f > { 8 { > ", " $ 1 $ , , N 3 2.&.@ , ' j ' , s , , , % q % v | | : t t 5 = 5 = 6 ! 2 ! 5 } : ; ; g n ) ) ", " + / + . @ + . + # . @ ' , -.| t 7.k , ' S , ' , , @ : t ' s 9 9 | . . + . + + . + @ @ + @ + d # ^ t t = / / - 5 5 5 = 5 - 5 ! - ..( ^ % + % @ + . @ + < . . # { ~ @ + . + . + @ + . + + @ . + . . # J g ' + @ . { 8 & + ", " i 7 i + . . + @ . . m , m 9 | A 7 7 a , ' , ' p p D : m , , j | l | + # . # & + # . # % + # @ ] D t : 2 - = ! = ! = 5 2 ! 2 ! 2 t } ;.p + . . . + + . + @ + @ e $ . [ . @ . + @ . @ . & + @ . @ . @ g n m @ % . * ) _ % ", " + k % < . @ . @ + . @ , j 9 | ' k 7.t # , , , : t q p , , ' , s v | . @ + @ + # . . A % @ d ] 5 t } ;./ ! 2 6 / - 5 5 - / 2 ! r t D } 6 ] *.< # . [ + + + + @ ; $ . + + . . [ . # . + @ & # % . [ & g J ' . + . & > * # ", " { * e + + + . # + . H n 3 | x ' , # : [.@ , ' ( t : q % ' , ' g v | + + . @ % . % + + # h ! 6 = t : t - 5 = ! - ] = / ! = 5 2 ] % D t = - = h @ @ . % G + @ + ~ $ . . # . + + . @ /.z . . + # + + m n , ' . @ . * ) M + ", " $ * . + # & + + @ @ , j o j ' ' , # : q @ % : D : ;.F s u ' , 9 | . % . + @ @ @ # . h 5 - ! 2 f.F ../ 6 / 2 6 5 6 / 6 ] = 5 / @ # 1.r ] - ] h + @ + . & . + e $.@ + @ . @ + . /.=.w.=.. . + H , ' n g m % . % * ) _ @ ", " $ ~ . & @ @ + + . @ , 3 | x , , , , # : : p } : c.p m , j , ' | v z . # . + + + . / - / = ! ] 5 ! 6 ] 6 ] 6 ] 2 5 2 5 = / ] 2 ' m a r r = - = h . [ @ + # @ $ e ~ ; ~ ~ e ~ $ Y /.=./.Y * @ n g J n ' @ + % @ * ) * @ ", " $ $ . + . + @ . # # , j ` j ' , ' u , @ t : ;.t F N , u S , g o 9 + + . < . . . ..5 ! 2 ! 2 ] 2 5 ] 2 = / 6 / 6 - 2 5 2 / = / a g ' a 4 / = = 5 h + . . G & $ $ ~ { ~ $ U e $ Y /./.=.* ~ W R n g J m . # . [ _ ) f . ", " c { $ @ [ . + + . . @ , x | 3 , , @ [ d D : t : D % + [ m j ' m | v . . + @ % + d 6 = = ! 2 ! / / ! 5 / 6 ! 6 5 2 5 = 5 2 5 2 / ' ' y y V r 5 ! = = d @ + . + . . % + . % . @ . . z /.T + + % m ' n n ' . + . @ * > _ # ", " ~ * e + + . + . + # @ , ,.| 3 , ' D : : t : : q : [.q : % , N H | 9 + @ % + . # ! = ! 2 5 / ! / 5 ] 2 ] 6 / 6 ] 6 2 2 - / ] 2 / g ' ' ' ' r 4 = ! - ! . # . . % + # # & d . # + . . + + @ @ # . . ' R n + @ + + & ) & + ", " * $ B . + # @ . . @ m ' j o | ' u # # p @ # c.# @ d % # ' , , ' | o % . . + . 4 - ] = ] ! 2 / / 2 ] 2 5 - 5 2 6 5 - / 2 / = / A N g N y ' y 4 r = = - h + + @ . H + % + + + < + + & . + % . . @ @ g n , . @ @ + _ > f + ", " $ 1 { + . . @ < . + m ' ' | o , , , ' ' ' % t % , ' , ' , ' , , v 9 + . @ @ d ] 2 ! / / ] 5 ] 5 / 5 5 2 = 5 = 2 2 6 ! 2 2 = 5 y ' a ' ' g a .4 2 / - 2 d . <.+ + + . . # . . . # . @ + @ . + # + + & $ @ % + . +.> * + ", " * ~ * @ + % + + + & @ , , | ` H N ' ' j , % : 1., ' j S ' , , 3 | | + . % + % > L = 5 0 4 5 / ] 5 2 / / 6 5 2 5 = 5 2 5 / / 4 a ' g a g ' ' g A 4 r - - / . + . # [ @ + & + + [ . & + @ % + . @ . @ ) { % . + # _ ) _ # ", " $ ~ . + . @ . # # @ ' , x | | x , ' , , + : % , , , ' S ' | | o < @ G . # }.> d = / 0 b 4 / ] / ] 2 5 2 - 5 6 / - 2 ! 2 = y ' ' ' ' a g ' g ' g a _ F - @ + @ . . . [ . . + + . . . + @ + & @ . + f > _ . @ . * ) $ . ", " c * @ . # . . . . m j ' , ].v | o x ,.j j.+.< , ' S ' x | o 9 < + . # % h p { F 6 h # b b 4 / / 5 ! / ! 2 = / = 5 2 5 / 4 ' a n ' g ' ' N a ' ' y $ 8 = + @ + . . + + @ . . + . @ @ + . + % + . @ % ) 8 _ % * $ {.* + ", " $ 1 @ % + % + . # m , m ' ' s x 9 | o 9 o 9 -.9 v 9 | | v l |.+ @ . . + ] L ) F / / b b l b # / 4 5 6 ] / 6 5 2 / ] 2 a g ' a ' a N y ' g ' g ' a M > 6 ] . @ . . @ + . + @ z . . + % # + @ + . + . $ > > > ) { > % . ", " ~ $ + + @ & # + . @ , u , ' ' ' , x j j [ +.l o | ` | | j , , . # + @ + - p > Z / 0 # 3 l ,.l 3 0 ] / ! = 2 ] = 5 2 A ' ' ' g ' ' ' ' ' ' N ' g ' & 8 6 - . @ + . % @ + + # @ [ + + . . @ % $ % @ < Z f % 8 > * & + @ ", " B * @ + . + . % # @ @ m m @ H @ m @ @ @ % t % m m @ m s A @ @ . % . + . - d ) F / 0 b b l 3 b 3 b C / ! 5 = 2 4 y a ' ' n a N ' g ' n ' g ' ' ' g M { ] - d . @ @ . + f ) % . . $ $ # . + U { $ . + + G # > ) @ + + . ", " $ $ + @ . # . + @ . . p . # + . . + . . F : % + # + . + . + @ + % # + 0 = _ > d / # b 3 3 3 l 3 3 b 0 / 5 / 4 y ' g ' a ' ' g ' N ' ' ' ' g ' ' a * > 2 = d . % @ @ & > ) _ . f > { @ + . > { f + @ % @ + ) { + . @ % ", " B $ + . + . # . + @ + . + + . # + . @ + + : C.+ @ + @ @ @ @ . m + . + d 6 ..> p ] C b 3 K 3 3 ^.3 C 0 / = / r a a g ' n ' ' ' ' g ' ' n ' N ' g ' & > ! '.% & * _ _ $ > > ) . % 8 > % < 0 8 > ) . + # + @ ) ) @ @ . % ", " $ { @ % + @ + + + . + & @ . . [ . @ . + % 8 } $ > ) > ) ) ) > 8 ) $ # / Z D ) F / 0 3 b l b 3 3 l b C 0 5 6 / r a ' ' ' ' n ' N ' n ' ' ' g ' ' a * U ) > 8 > ) > ) > { > {.@ f > 8 & . . ) > { $ { > > $ { ) . # . # ", " ~ * @ . . + . . + @ + @ + % . . + . + % % 8 > ) { > { ) { > ) ) 8 f 7 7 f > > L 4 # b 3 ,.^.3 b 3 b C 0 ] ! / 4 y a g ' ' a g ' ' ' g ' N ' g ' ' ~ ) { f % * * _ & f f { ) @ 8 > ) * + & ) { > > > 8 ) f {.{ & & . @ ", " { $ . # . # < + + # . + . # # + @ . # . % } f _ & # . # @ @ + . @ % I 7 .._ ) p 4 0 3 l 3 3 b l 3 l b 0 4 5 = 2 4 y ' n ' ' ' g ' N ' g ' g N ' y $ ) ] - 4 + @ . + . [ 8 ) . > f > $ + * > _ > ) 8 M H . * > * + + + ", " * B ~ $ * & & + . . < + & @ . + + & % . + . p : p . . @ & + . @ # . # + @ h ! + > L / # b l 3 l ,.3 3 3 3 # 0 / ] r a ' a g ' g N ' g ' y ' ' ' ' g a * U - - + . # . @ + . 8 > _ > % > ) * U ) . $ ) ) * + + % > & & . + ", " $ ~ * $ * { 1 * $ 1 $ . . + . + @ + < + . + @ + + + p : F @ + . + . + + . . + < + + - L ) p / # b 3 l 3 3 l K l ,.3 # Q r / V ' ' ' N ' g ' ' ' g N g ' ' ' y $ ) = - # . @ % . # . $ > 8 ) * f { f > 8 @ _ > > & . . % ) _ + . . ", " $ $ $ 1 e * e $ $ B $ . # . % + . z % . + . [ . $ ) > ) ) > { > * + & . # . . @ % @ - }.) }.] [ 3 3 ,.l 3 3 3 3 l 3 b 0 4 / 4 a g a g ' N ' n ' ' g N g ' ' a 8.) 6 - . p . @ + @ + * ) { ) . % ) > ) * + # { ) * # + & > _ . . @ ", " & O % . + @ @ @ + < . # + . # _ ) > { { U p f > > @ + . . # . + % . = ! ! 6 h E 3 l 3 l ,.l l 3 l 3 3 3 # 4 / 2 A y ' ' g ' ' g ' ' ' a g ' y $ { 2 ] . @ . . + . @ % > > $ + . 8 > { + . @ > > . [ + * > & . + . ", " & . & . & @ . + + + . . # & . & > % 7 I k 7 7 > { . # . @ + . . @ < 0 = = 6 ] 4 b 3 b 3 l 3 K 3 K l 3 ^.3 # 0 / 4 r 4 a g ' ' ' g ' g ' a g ' & U - h @ . @ . [ + . # * 8 + + . f $ & . # . % # . . + % ) * + @ . ", " * ~ * ~ { * ~ $ $ * ~ * . . + @ + % @ . @ + @ * { p 7 7 4 7 7 ) > # . . @ < + . . + + - - ! = / 0 b K 3 l 3 3 l 3 3 l 3 3 b 3 0 0 0 A C a a ' a ' a ' ' g a ' . $ - @ + + . + @ . # + @ @ @ & + # @ + + + @ + + # + + $ > * . # + ", " 8 1 $ c $ c $ 1 { c $ & + . % @ . + @ + @ + @ * ) * k # @ 4 # > ) . # % . + @ . . + . / - = = - 0 b 3 ,.l ,.l 3 l ,.3 l b 3 3 3 3 b 3 b 3 s A.a ' g ' ' ' ' a r h ] @ . [ + . + @ % . . + . + + . @ + . % . & . @ % @ * U f @ + . ", " 1 ~ ~ & * . + . [ . @ . . @ . . . + % > p i i + + . { U # . + . + + # + % @ + - ! - / ! # b l 3 l 3 K 3 l 3 3 l 3 3 3 3 l 3 3 3 3 3 C ' a ' y ' y 4 / = + + & . @ . . . # . % + + # . . + # G # + + [ . . # _ > _ . + + ", " ~ $ $ @ . [ @ . + + + + + + + + % . . ) i 7 7 # + % ) { + + + @ & . @ + . + @ h 2 - - = 4 b 3 l 3 3 l ,.l 3 3 3 ^.3 l ,.l 3 l b b 3 s ' ' g ' ' a r 2 ] . # @ . @ . @ + G @ @ . @ . + + @ + . < . + . + . @ * ) * . @ . ", " c $ $ . [ + % . [ + @ + @ % # . # + @ > p i I @ . & ) & . . . + + # . . # + + + ] = 5 = ] 0 b 3 3 l 3 l 3 b b 3 3 3 l 3 3 K 3 3 b b s a ' a g a 4 / - + . < + @ + + @ . # + + + @ % . + . % + . [ . . # . + & > _ < + % ", " ~ 1 + . @ . + @ . % @ . < @ . @ + + > ) . + @ 4 % ) & + @ + @ . . # & . . [ # h ! - - 2 = 0 b ,.l 3 3 3 b 3 ^.3 K 3 l 3 l 3 3 b 3 3 ' ' ' ' a r ] h @ + # . % . + % + % @ . + @ + + [ . # . @ + + + [ + + _ > _ < + + ", " c $ $ + + . @ . + . + . + + @ . % @ @ ) 8 + . 4 7 7 ) * @ < + @ + % % @ # . . . % h = ! = ! / 0 b 3 3 ^.3 3 3 3 3 l 3 K 3 l 3 3 3 3 b s C ' a 4 = h @ + . % . # + @ @ . + @ . % + + . + . % @ < & + @ . @ # * > % . @ @ ", " 1 c $ # . + . @ z /.z . + + < . @ + # > > # . # 7 @.{ D @ @ & @ . # + . . + . @ + % = ! = - = ] # b 3 3 3 b 3 l 3 3 3 l 3 K 3 l 3 3 b 3 C 4 / 2 h @ % . . . < + . . [ . . . # + . @ # + . . + + . . @ + . . % > % % + + ", " $ c $ # % # . . /.X X z . + . . + . z ) { @ + % @ * ) _ . + + . + . + @ + [ # . + + @ ] - / - 4 0 l 3 ^.3 l 3 ,.l l ,.l 3 3 l 3 b l 3 b 0 h = ] . + . @ + @ + . # + . + # . G [ . . + . + @ + @ . % + + + H _ > _ @ . @ ", " $ 1 ~ . + @ + z /.=.w.=.+ @ & # + + @ $ ) _ @ + . * > & @ . < + . [ . @ + . @ . + . % @ *.- - / < :.l 3 3 b 3 3 3 l 3 3 l ,.l 3 l | :.0 / - 0 . [ . # . . + . . + @ . < + # . @ . + [ . . + & @ + + @ % . + & ) * . p + ", " 1 $ { @ . . % . X /.X z . + @ % + % + f ) % . + @ U ) $ + . + + . + @ % + . + % @ + . + @ + = / M #.:.b 3 3 ^.3 3 3 K 3 3 3 b 3 #.:.8.d / + . . # . < + . @ # . . . + # . @ + & + + . d < + + @ . . @ + # + * > & + + + ", " ~ { * # + . + @ + . . < . . + . @ + @ * > $ # . . 8 ) * + % @ @ # . . @ + @ + . . # . . + @ . h $ * M 0 C 0 b b b [ b b b [ C 0 [ M ~ Z @ + # & + + % . % + + . @ % . + + . + @ @ . + + + . . @ @ + . + . + +.) * . # . ", " * ~ 1 < + + . + @ . + + + @ . . . . # _ > > $ > 8 > 8 . + @ . + % . + < % & . + . @ @ . @ + + + c $ $ = ! / h / / 4 ] 4 ] / / ] + ~ $ * + @ . @ . # @ + + @ & + + + . % . # . . % @ % + [ . . % . % @ . 1.. * > & . % @ ", " { ~ c . . + @ . + @ + % . # % # . + . % { ) > ) > ) $ . . + @ . % + . @ + @ + + + + [ . + # & + 1 $ $ # *.] h ! = ! 2 ! h h *.0 1 $ * W + @ + [ . + . . + + @ . . @ . @ @ . @ + + @ . . @ + @ . @ . . . H + _ ) & + . + ", " * $ $ % @ . + + . + + @ + . + + [ # . # + @ # { U z S + + @ . . # & @ + + @ + @ . [ G + . + + @ * { ~ _ + # . . @ G @ [ . # + . % B ~ Z . % . + + # < . + @ + @ + + @ . + # % + . + # . # + + . + + + # % + * ) & . @ + ", " c 1 $ + H + @ < . # & + < + @ . . < . @ + + @ 8 ) @ # . . . . [ + . . . + + + @ + + + @ & . @ . _ 1 * * + @ . % + . . + . . % + * ~ f W @ % . < . + @ % . # & # & . + . @ . @ . . + . G % + . . . @ + . @ < * ) & . + . ", " ; ; ; ; ; ; $ + % 1 e & * % + + + . # . @ . # @ + + + . . @ + > > . . & # @ + . # # . # . % % _ & * & & % _ . . . # _ % . + @ . @ + < + @ + @ . . $ e + % + # . . . + @ + + @ + # % @ @ + . . # # . + # @ d @ + # @ + # + + * > _ @ + [ ", " ; ; ; ; e ; ; $ 7 7 % $ $ c ~ 1 $ $ * * G & * * & O & & & & . & 8 > & . * & & _ * ~ ~ c $ B 1 $ c ~ ~ c $ $ $ $ ~ 0 7 7 1 . & & % * & O & & O * & & 1 1 . & . & * % & . & & & * & O & & % & & & * * ~ $ B $ c $ B $ ~ * ~ * $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; $ i I _ $ ~ ~ * $ c $ $ { 1 { * $ B $ e * 1 { $ ~ { $ ~ ~ * f ~ ~ $ $ { * $ $ $ $ * { * e * B ~ c $ % w k $ e c $ ~ * ~ { $ 1 $ 1 * e $ $ { ~ $ c 1 $ { * $ $ $ * ~ o.~ $ c { e * $ * $ 1 * ~ c $ * * ~ c ~ * { { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.!.=.; ; $ . 1 $ { $ c $ $ $ B ~ $ 1 * ~ { ~ * { 1 $ $ * e ~ 8 * $ 1 ~ $ ~ * B $ * & & & & & O & 1 ~ * ~ { * $ $ c ~ f 1 1 $ e c ~ { * { $ c 1 $ * $ B $ { 1 $ $ e $ $ { 1 1 ~ _ e 1 c ~ { $ $ ~ $ ~ $ e $ ~ $ 1 1 $ $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; =.T X Y ; ; + m . @ . . + & . & & & & & _ & _ G % _ O & & . * . & * . # . + @ @ + + . . + @ . + + . # + @ + & & _ & & & * * % % & . & & . * & * & * & _ . & & * . & G Z % & & & O & & & . + @ z + + . # + + . @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; e Y Y ; ; & + . # @ . . . + + @ . @ . . . @ + + + @ . + @ . . @ + . . + . . + + . @ @ . . @ . + @ + . . + @ + + @ O # @ . . + + + . + . # + . + . + # . . . + + + % + + + + % @ & + + . @ p + . . + % @ + . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ & d % . [ G + . + + + @ # d + # . + H @ . . + + + @ + @ @ # + . . + % + @ . % % + . @ @ % O z + @ % + # . # + . + < . + < + + . @ + . @ + @ @ . @ + + + G @ H + G . @ + @ @ + # + % @ + [ . < . @ # z . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame10.xpm0000644000175000017500000004630507343277263012057 /* XPM */ static char * zz10_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; # g # ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ ( ^ } ( } ^ ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ~ R n n ~ ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } > ) } ( ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ~ g n ' ~ ; ", "; ; > ; ; > } ^ } ( } ( &.7 P p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ^ ;.} ^ ; $ G f ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( } ( p 7 i : t C , , s 3 x | v | 9 v | | x s , ' D : # ( D : ( ( } ) > ; ; ; ; ; ", " : ( ( ^ ^ ^ ( : : ( ^ } ( '.t D 7.7 k |.| K o 9 | -.| 9 | | o 9 :.[ : p , } ;.t ^ ( > ", " } } } : ( ^ ^ ^ m k 7 @.| o x j ' , ' S ' ' ' x 9 o 9 #.S ' t } t ^ : > > { > ) > ) ) ", " % # 1 , ' # C.9 l , , ' , , , ' , s , ' +.| o x , ;.t D ^ ^ > ) f & . f { > ", " 7 7 0 , , N | 6.7 k , s , ' , s , , , % q % 9 o x t t t 5 5 5 5 2 5 5 / 5 5 } t > @ J n J ) ) ", " / >.% . @ + . + # . m s S l d.7 / @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + # + 0 # t t &./ / 2 5 5 5 6 5 6 5 5 5 - &.: ^ % + % @ + . @ + < . . # $ * @ + . + . + @ + . + + @ . + . . # & { g g n m { 8 & + ", " ~ c c + . . + @ . . @ , ' 9 l .t q @ u ' , ' d p D : @ , , , | l | + # . # & 0 + . # + # d # / &.t t 5 - ] ! 2 ! / 5 2 5 2 5 5 '.t D &.+ . . . + + . + @ + . ~ * . [ . @ . + @ . @ . & + @ . @ . @ { M n J ' @ * ) _ % ", " $ ~ $ < . @ . # @ . m , j | | , # t : # , , , : t q p , , ' , s v | . @ + @ . + @ # # % # d / 5 t t t / 5 2 5 ] 2 5 5 / ! / 6 4 D D : 2 ] + @ [ . # + + + . # ~ f . # + . . [ . # . + @ . [ + % + & > & g J g . & > * # ", " $ 1 e + + + . . + . @ u 3 9 <.' , # ( [.# , s : : : [._ N , ' ' 9 | + + . @ % + + + # # ] 5 5 2 '.t &.5 5 2 5 6 5 / 2 5 / / / / p C.t 2 - - h @ @ & % . . @ + & $ . . + @ + + . @ . z . . . # + + & > @ n g n & * ) M + ", " $ * . + [ + [ + . m , x 9 x ' , ' @ : : @ [ : D : ( F s u ' , v | . % . . @ @ # + @ ] 5 = 5 5 ..&...2 5 5 2 / 6 / / / 2 / / / # [ d 4 = = ] h + m + . < + . * ~ . # . . @ . Z z O z /.. % . @ . f > , n R n + * ) * < ", " $ ~ . & @ . + + @ @ ' 3 | x g , , , # : q F D : c.p ' , , H g | 9 . z # % . + + @ ] 5 / 5 ] / 5 / 5 / 2 / 6 5 i 6 I / / / 4 / a A k k r - = = ] & + @ . # @ $ M 1 $ $ W $ * $ O T z O . & & & * > * n g u g . +.> _ m ", " $ $ . + . + @ . + @ , H v s j , ' , , @ t : ;.t F ' , , , , ' o 9 + + . . @ . & ] / 5 - 5 / / / / i / P 2 P 2 w / 6 I / I / / y a a V 4 / = = 5 h + . . . @ * $ W * 1 $ $ * M O O z /.Y * $ $ W > & R n n J + _ ) f . ", " c { $ @ # . + + . # @ , x | 3 ' , s [ + D : : D D % # % ' j ' m 9 o . @ % @ + d 0 - ! 2 / / ] Q i / 5 / I 5 w / w / i / 2 / 4 k a a a a r r / ! = = 0 . + . % . . + % @ + @ . . . z O z . + . @ + ) < n g J ' @ * > _ # ", " ~ * e . % . # . . + m , ,.| x , , t : q : t q q : [.q : + , ' , | | + @ % . . + 6 2 ! / 5 / Q i Q / i / P 2 P 2 I 6 I / i / / 4 y a y a a r / = ! - 5 . # z . % # # + % + . # + . . + % @ < + @ . 8 & R n g n + & ) & + ", " * $ B . + + @ + @ . @ ' j | | ' u A [ [ @ + c.+ # # % [ ' , , ' o | % . + + # h ] ! = 5 / / Q / / / / 5 I 6 w 6 P 6 / w / r i 4 a a a y a y 4 r = = - h % + @ . G # + + + [ . [ + & . # + . . . @ & * n J n R + * ) $ + ", " $ 1 { + . . @ & @ + m ' ' | o , j , ' ' N % t % , ' , , ' ' , , v 9 . . < @ d ] 2 ! / Q / i Q Q i i / P / P / I 2 w 2 i 2 / / a y a a a a a V / 2 ] - 6 + + <.+ + . . @ + . . . # . @ % . # + # + % > ' g n n @ +.> _ + ", " * ~ * @ + % . + + . @ j , | ` H N g s , , % : 1., m j , S j ' x | | + . + . % > d - / Q 0 / @./ Q / i 2 2 w 6 P 2 / / i / / k A a a y ' y ' y A r / = - ] . # . [ [ . + < + + + @ & + @ + + . @ . . ) & R n g ' _ ) % . ", " $ ~ @ + . @ . # # @ ' , j | | x , ' , , + : % , , ' ' m , 9 l o < @ . . # }.> L 6 / 0 E 0 / @./ / / P / 6 / 6 i 6 2 I / 2 k a a a a a a ' y a V 4 L F - . + @ O @ . # + . + + . . . + @ % . . < + f > ' R n J * > $ + ", " c * . . # . . . . m j ' , ].o | o x ,.j #.+.< , ' S , j | o | < + . < + d d > L / 4 0 b E 0 0 Q i Q 5 / i 2 i 2 i / / / a a y a A y ' y ' m y a 4 $ > 2 *.@ # . . + . . @ . + . @ @ + . + % # . @ % > f m ' . f U * + ", " $ 1 # + % [ + . # m , m ' ' s ].| | o 9 | 9 ` v 9 o | 9 -.9 |.+ @ . + + ] L ) L / Q # b b b E 0 i / 5 2 5 / P 2 5 4 i 4 a a a a a a ' y a ' g ' y $ ) 6 ] . + . . < + . % # z . . + % . # . + . + . { > > > ) 8 > % . ", " ~ $ . + @ + [ + . @ s u , ' ' ' ' ].j s < +.#.9 | ` | | x , g < + # . @ - p > F 2 0 E b b b C b 0 Q / 5 2 / 2 / i 2 a y a a a y a y ' ' ' y a A .$ { 6 ! . @ . + + @ + + @ + [ . # . . @ % $ % @ @ % _ % > ) * & + @ ", " B * @ + & . + + < m @ m m @ H @ S . @ @ p : % @ m @ m @ m @ @ . + . + + - p { F / 0 b b b b b b b E / 5 5 2 / 4 k a a a y A a a ' a a g ' ' ' y a $ > = = d . @ @ . + $ {.% . + $ f # . + U { $ + + . . @ { ) . + + . ", " $ $ + @ . # . + @ . . p @ + + . . + . . p : % + # + . # . + @ + % + + # = L > d / 0 C b b b C b b 0 0 / 5 / 4 y a a a a a a ' y ' y ' a g ' y m y $ 8 2 - d . % @ @ & ) 8 $ . _ > > @ + + > { f & # + . + ) > # . @ % ", " B $ + . . . # . + @ + . + + . [ + @ . + % : p + @ # . @ @ m . @ + @ + h / ..> F / # [ b 3 b b C b E 0 / 5 / / k A y a a a a a ' a ' ' a ' ' a A y $ > ] '.% M * _ _ $ > ) ) @ _ ) { % @ # ) { ) . + # # @ ) ) @ @ . % ", " $ { # % + . # + + . + & @ . . # . . . + % 8 } $ > ) { ) ) ) > 8 p i % F L f ) F / 0 s b b b b b b E 0 0 5 6 / .k a a a g a ' y ' y ' g ' y ' y A $ ) ) > 8 > ) > ) > { > > @ _ > ) & . + ) > { $ U > > $ { { . # . # ", " ~ * . @ + + . + @ . + @ + + & . + @ + % % ) { ) > > > ) > > ) ) 7 7 p > > ) U L 4 # b 3 3 b b C b b E 0 / 5 / 4 4 a F.a a ' a ' ' ' ' a ' ' a y A ~ f > _ % * * * & f f { ) @ ) { ) * . & ) > { > { ) ) 8 f > & & . @ ", " { $ . @ . + < . + # + . . [ # + @ . @ . % } f _ . # . # @ @ *.. 4 i + _ p _ > p 4 0 b 3 b b b b b b b 0 / / = / r a a g ' y ' y ' y ' g y ' y a V $ ) ] - h + # . + . [ ) 8 . { {.> $ + * { f > ) 8 M @ @ * > _ + + + ", " * B ~ $ * & & + . + < . < # . + + . % + + . p : p @ . . . # . & # @ @ @ # h - d > L / # [ 3 3 b 3 b 3 3 b # 0 5 ] r 4 V a a a g ' ' y ' a ' g ' m a 4 $ > 6 - + . @ . @ + . 8 > f > _ > ) & > ) . $ ) > * + + & > & & . + ", " $ ~ * $ * { 1 * $ * $ . . + . + . . # . % . @ . + + p : F . + @ + . + + . O + & . + - F ) p / # b b 3 3 b 3 b 3 b b # / / 2 4 a V ' g a g ' ' g y ' a y ' y r $ ) = - # @ + [ . # . $ > 8 ) & f { 8 > 8 @ _ ) > & . + % ) _ . . + ", " $ $ $ 1 e * e $ ~ B $ . @ + [ + . . % . + + [ + $ ) > ) ) > > > * + . . @ # . @ % @ = }.) }.] 0 [ 3 b b b 3 3 3 3 3 b 0 4 ] 4 .A y A ' a y ' ' ' g ' y a a A $ ) ! - . % . . + + @ * ) ) { + % > {.) * + . { ) _ . + & > _ . . @ ", " & . _ . + @ @ . + @ . @ + . # * 8 > { { > ) 8 > > # . @ . + @ d + + = ! - = / # C b b 3 3 b 3 b 3 b 3 # 0 / = / r A y a g a g ' y ' a V a V k $ $ 2 ] . # @ . + . @ % { > $ + . 8 > { + . @ > > @ [ + * > & . + . ", " & . & . & @ + # + + . @ + & + & > % @ @ @ . # { > @ + . # . . . @ & 0 - 2 - ] 4 0 C b b b l 3 l 3 3 b b # 0 4 ] / 2 4 A a F.a a F.a a y A V a * > - h @ . @ . [ @ + + $ 8 . + . f $ & @ # . % . . + + % > _ . @ . ", " * ~ * ~ { * ~ { $ * ~ * . . . . [ + . @ . # . W ) * + + . # @ ) > + @ . . [ + . . @ + - ! - 2 ] 0 b b 3 3 3 b 3 b 3 b [ C 0 E 4 4 0 4 4 4 a A a V a V A y 4 .* $ - @ . + . + . . # @ @ + @ & + # . + + + @ + # . + + f > * + # . ", " 8 1 $ c $ * $ 1 { c $ & + @ % . + + @ + @ + @ * > * @ + . + @ > ) . + [ . & @ . . % . ] - = 2 - / # b 3 ^.3 3 l 3 3 3 C b # # [ # # b # C # a 4 a 4 a 4 a A 4 r h ] . @ % + @ + @ + . . + . + + @ @ + . % + . % . [ H * U f @ + . ", " 1 e ~ & * . + . % @ @ . & @ . . . + % ) f i k + + . > U # . + . + + + # + @ + ! ! - ] 5 0 b b 3 3 b 3 l b b [ # b C [ b 3 b b b # # E V 4 y V r a 2 / - # + . . @ . . . # . % # + + . . + + H + . # @ . + @ _ > _ . + + ", " ~ $ $ . @ % @ + + . + + + + + + % . . 8 p 7 7 . + % ) { # + + . @ . @ + . + @ h 2 ! = = ] 0 C ^.3 3 3 3 3 b [ C [ b b 3 3 3 3 b # C A a V 4 a V 4 2 = ] . [ @ . @ + & + H . @ . @ . + + @ + @ [ . p . + . # * ) * . @ + ", " c $ $ @ % + < . [ + @ + @ % # . + @ # > f i k H . % 8 $ . . @ + + % @ . + + + + - = 5 = = 0 # b b 3 b 3 b C # C [ 3 3 3 b 3 3 b # 1.a 4 a V 4 a 4 ] - + . @ + < . + @ . + + # + @ % . + . % + . @ . . # . + & > _ < . % ", " ~ 1 . # . . + @ . % @ & @ @ + < + # > ) . + # 4 & ) * # . # + @ . @ % @ . # @ d - ! = 2 - 0 # b < b 3 [ b 0 C b 3 b l 3 ^.3 b b # C 4 A y V 4 2 5 h @ + [ . + + + + # [ . + @ . # + % @ % . @ % + + [ + + _ > * [ + + ", " c $ $ + + . @ . + . + . + @ @ . % @ . ) 8 + . 7 7 p 8 * # < . . + % % @ # . . & + h - ! = ! / 4 0 b # b 0 # b [ b 3 3 3 3 3 3 b # # 0 C 4 4 4 4 = h . # . + . # % @ . . . . @ % + + . + . + H [ . . < . @ # * ) % . @ @ ", " * c $ @ . + + & z z z + + % . . @ + # > ) + @ i 7 % > +.. @ < . @ + + . . + + @ + % = ! = - ! = 0 C 0 b # C # b 3 b 3 l b 3 3 b b [ E # E 4 = 6 h . % . + & @ . . @ % @ % . + + . @ # + + . + . + . # . . + & > % % + + ", " ~ c $ # + @ @ . z /.T z . + @ . + . z > { @ + % @ _ ) _ @ + + . + @ + . # & # . + . # ] - ] - h 0 # 0 # ~.# b b 3 3 3 b 3 3 b b # # 1.0 4 ] 2 h @ + @ G + @ % + @ + . + # . G [ . . + . + < + @ . . + + + H _ > _ H + @ ", " $ 1 ~ + + @ + . /./.=.z + & . # . + # $ ) _ @ . . * > & . . < + . % @ . # + @ . + . + H 4 = - 5 & #.#.# E # [ # b 3 3 b 3 b [ C j.:.<.Q ] - d . % . # . . + . . + @ . < + # . @ + + < . . + & # + . # % . . % > _ . p + ", " B $ $ @ . + % . z z /.. @ + @ % + [ . f 8 % . + @ U 8 $ # . + + . + @ % . . + % @ + . % . + 2 = $ 8.#.# # C E [ b b [ 3 b C [ C M 8.8.d 5 + @ . # . < + . @ # . . + + # . @ + & + + + d < + . @ + . @ + # + * > & + . d ", " B $ c . + @ + . + . . @ . . + . @ + < * > M # . z ) ) * + + @ @ # . . @ + @ + . . . # . + @ . ] $ * * / 0 0 0 0 0 C 0 # 0 0 4 Q # $ ~ Z @ % + < + + % . + + + . @ . . + . . + @ @ . + + + + & @ @ . . + + + +.) * . # . ", " $ ~ 1 < + . + . @ . + + + . . . + . + % ) > > > ) 8 > + . & + + % @ + & % & . # + @ . @ . + % . * $ $ = - = h / / h / / ] / ] = + $ * * + @ . . . # @ + # & . % + p . + . [ . . + @ % + @ . . + & + @ . 1.. * > & . % @ ", " $ ~ c . . + @ . # . + [ . # . # . + . & { ) { ) > 8 $ + @ . @ . % + . @ + @ + + . + @ @ + @ + + 1 $ $ % A ] ] ! - / - ] = 4 + d W e * G + @ # [ . + . . + + @ . . @ . @ @ . # & + @ . . # + @ . @ . . . @ . _ ) & + . + ", " c $ $ % @ & + + + + + . + % + + [ # . + + @ # > U z H + + . . + @ % @ + + @ + . # % G + + & + @ $ { ~ Z % # . . @ G < @ & # + . % e ~ _ . + . + + # < . + @ . # . + @ . + @ + + . + @ . @ + + . + + + # % . * ) & . @ + ", " * 1 $ . @ + @ & @ + < . @ + @ . . < . @ + + @ 8 ) @ . . . @ . [ + . . . + + # @ % + + @ + . @ . _ 1 $ & + @ . % + . + + . . % + O ~ f W @ % . & . + # & + # . < + . + @ . @ . @ . + . . % + . . . @ . . @ [ * ) & . + . ", " ; ; ; ; ; ; $ { 1 % + & * % . # + . # . @ . @ @ + + + @ . @ + { > . . # . @ + . # @ . # . % % Z & * & & & _ + z # 1 o.* z + @ . @ + . [ . + @ . & * e % + + # . . . . @ + # + + # % . @ + . . + # + + @ @ d @ + # . # # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; c % 7 7 * * ~ B $ $ $ * & & * _ . * & . & & & & 8 ) G & & & & * * $ $ { { 1 B $ $ ~ ~ c $ $ $ $ i 9.+ $ * & & & % * & * . & & O & & 1 1 . & & & & % % . & & * & & . & % % & & & & * ~ $ c $ c $ e $ * $ $ 1 $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; * * i i & ~ * $ c $ * e 1 c $ ~ c ~ { * e * $ ~ { U ~ * $ o.$ ~ $ ~ * * $ $ $ $ c $ * e * B ~ * I 7 + ~ ~ e c * ~ * ~ c $ B * ~ * e $ $ { 1 $ c 1 { c $ $ * ~ $ e c ~ $ c { e * $ 1 { 1 $ ~ c * * $ 1 e 1 $ c { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; X T =.!.; ; $ & 1 $ $ $ c $ $ $ B $ $ 1 * ~ $ e * { 1 $ * { ~ e f $ ~ * ~ $ ~ * B $ * & * & & & . * 1 * & $ * * $ $ { ~ f ~ 1 $ ~ c ~ c $ { $ c 1 $ * ~ ~ { * ~ $ { * $ * { 1 ~ ~ _ ~ B $ 1 { * $ ~ $ ~ $ c $ $ $ ~ 1 $ $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; !.=.X Y ; ; + z + . . + . & . & . & & & O & _ G & _ * & . & * . * . . + . + @ . + *.. . # . . % + @ # + G + * & Z & & . * * _ % & . & . & * & * & * _ . . * & & & & W Z % & & . * * & & . + @ @ + + . # & + . @ . [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; e G Y ; ; [ . . # @ . . @ % + . @ . + . + @ + + + @ . + @ @ + . + . . + @ . + # . @ @ . . @ . + @ + + @ + @ # + . . # @ . @ Z + % . + . + + . # . + + @ + . + . + + + + . + % . @ + + @ . + + . . % # . + . # + . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ @ d & + % G + . + % + < @ d + # . + H @ . . + . + @ % @ @ + + . . + % + H . % % + . @ @ % O + + @ % + % @ + + @ + @ . + < + + . . # . @ + @ . @ + + % + G @ @ . @ . < + @ @ + + # + . [ + @ & @ . @ z + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame11.xpm0000644000175000017500000004630507343277263012060 /* XPM */ static char * zz11_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; # g # ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ ( ^ } ( } ^ ^ ( : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ~ R n n ~ ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } } : ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ~ g n ' ~ ; ", "; ; > ; ; > } ^ } ( '.P 7 D ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } ^ } ( ( ^ ^ : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ^ ;.} ^ ; $ G f ; ; ", " ; ; ; > ^ } } ^ : ^ ( } ^ ( D 7 P t } ..7 k , , s 3 x | v | 9 v | | x s , ' D : # t D t ( ( } ) > ; ; ; ; ; ", " : ( t D } ^ ( : : ( ^ F D : ^ e.7 7.@ |.| K o 9 | -.| 9 | | o 9 :.[ : p , } t t ^ ( > ", " '.9.w t ( ^ ^ ^ A k '.t C K x j ' , ' S ' ' ' x 9 o 9 #.S ' t t t ^ : > > { > ) > ) ) ", " i 7 & , j # G.7 7 , , ' , , , ' , s , ' +.| o x , t k.t } ^ > 8 ) > { 8 { > ", " * & $ , , ' 3 7 7.@ , s , ' , s , , , % q % 9 o x t &.&.e.P 5 5 P / 5 5 / 5 5 7. t D : > @ n n J % > ", " $ B * . @ + . + # + @ , m v | : : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + # 0 0 0 k.r.&./ / / 5 5 5 5 P P P 5 5 5 ..t ^ % + % @ + . @ + < . . + & & @ + . + . + @ + . + + @ . + . . # & $ g J g n ' 8 & + ", " 1 $ { + . . . @ . . ' , m 9 9 # : : # , ' , ' d p D : @ , , , | l | + # . # & 0 + + # # + 0 # / &.&.k.5 5 5 5 5 5 / 5 6 P / 5 5 '.t D &.+ . . . + + . + @ # . & _ . [ . @ . + @ . @ . & + @ . @ . @ { & n g J n , ) _ % ", " 1 ~ $ < . # . # . . @ , j | | , [ : t # , , , : t q p , , ' , s v | . @ . + . # @ # # p # 0 5 P r.t r./ 5 2 5 / 5 / P / 5 / / / &.D t 2 ] + @ [ . # + + + . . & % . # + . . [ . # . + @ . [ + % + & > & u g n R n > * # ", " { * B + . + . # + . @ u 3 | x ' , # : t # , s : t : q % ' , ' ' 9 | + + . @ % + + + 4 0 / ! 5 / &.k.&.5 P / w 5 i 5 i / i / i / p &.k.2 - - h @ @ & % . + @ + & & . . + @ + + . @ . . . + . # + # & > _ n J g n , ) M + ", " $ * . + # & + + @ @ , j o j ' ' , # : : @ % : D : ;.F s u ' , o 9 . % . . @ . # # # 4 5 5 5 5 ....Q / P 5 I P 2 i i i i 4 i i # 1.d 4 2 ] = h # . . . @ + . & * @ + . @ . + . + . z . . % . . . f > & n g J n g ) * @ ", " $ ~ . & . @ + + . m ' 3 9 x ' , , , # : q p } : c.p m , , j g | 9 . z # % . + + . Q 5 5 / / / e.i i i i i w i i I i i / k k i k # k / r - ] = ] . [ @ . + @ & & & & * & & & * . . . . . . & . & > > # R N g J ' > _ @ ", " $ $ + # . + @ . + s , <.K x , , ' u , @ t : ;.t F N , u S , ' o 9 + + . @ . # @ ] 5 / 5 5 / Q @.Q i / P I P I w i I i i k 4 k k a a a 4 2 = = 6 h + . . . . & % G & . & * & % . + . . . & & & & { > m n R n n g ) _ . ", " c { $ . < + + + . # @ , j o 3 ' , @ [ + D : t } D % + [ m j ' ' | v . @ % @ + + ..6 ] 5 / / Q @.E i @.i i w P I P I i i i k E k k k a .4 r 5 ] ! = d @ + @ + + . + & . + # . . . + 5.. . + + @ + ) > ' n g J g u ) _ # ", " ~ * e + . + @ . . + @ , A.| x , , t : q t : q q : [.q : + , ' S | | + @ % . + # / 6 5 / P i 0 @.@.i i i P i w w I w I i i i 4 k k k a a a 4 2 = ! - 5 . + . . & # + # % + . # + . . + [ . @ # . @ ) { . n n R n g ) M + ", " * $ B . + % @ + . @ @ ' j -.| ' u # # % @ # c.# # + % [ ' , , ' | o + . + . + h ! 2 ! / Q @.E 0 @.i i i w w >.P I P i I / k i a k a k a y a 4 r = = - h % + @ . . # + + + + @ % + . . + # & . + m * ) & n R N n J > * + ", " $ 1 { + . . @ < . + m ' , | | , j , ' ' , % t % , ' , , ' ' , , v v . . < @ 0 ] = 5 5 / @.Q ~.E @.@.i i i P w I w I i i k i 4 k k k a a y a V / / = - 2 d . < . + . . . [ . . . # . < + . . + # + % > $ n n R g n > % + ", " * ~ * @ + + . + + . @ , ' | ` H N ' ' s , % : 1., ' j , , j ' x | | + . + . _ U d = 5 0 @.@.E Q @.i @.i w i 7 i I P I i i k k a k a k a a g a r r ] - - ] . + # % [ @ + . # + + < . + @ + # . @ . @ 8 > g J n n R ) _ . ", " $ ~ @ % . @ . # # @ ' , x | | x , ' , , + : % , , ' m m , 9 -.| < . . . # L ) L 5 / 0 0 @.E E E @.i i i P I P I i i i i 4 k k k a a a a g ' A r 2 F F 6 + . @ . . . # & . + + . . . + . % . @ & + +.> & ' R n ' ) $ + ", " c * . . # . . . . @ , ' , ].9 o | x ,.j j.+.< , ' S , j :.| 9 < + @ < % h p { L / / E ~.E E 1.E @.@.i 5 i I i i i I k k k k k k a a a ' ' y a V 4 $ ) = A @ + . . + + . . . + . @ @ + @ + % + . @ _ 8 ) % & & $ U * + ", " $ 1 # % # % + . @ @ ' S ' ' s x 9 | o 9 | 9 v v K o 9 9 o K |.+ @ . + + ] F ) F / 0 0 b ~.E ~.E 0 @./ P / i I i i k / k a a k k k a y a ' g a V 4 $ > - ] . @ . . % @ . + # . . . + % + + @ + . + @ { > { > ) 8 > % . ", " ~ $ . + @ % # + . @ , u , ' ' ' j x j j [ +.#.9 | v | l x , , . # + @ . - d > d ] Q C b ~.E E ~.E Q i 5 / P / k / k k a E k a a a a a N ' ' ' y 4 $ 8 2 ! . @ + . # . # + # @ # + + @ . @ % $ % @ . % _ +.8 > * & + @ ", " B * . + . . + + # @ @ @ m @ S @ m @ @ H p : % @ m @ m @ m @ @ . + . + + 6 F > d / 0 b b b b E E ~.~./ / 5 / i k k k a k k k a a a ' ' g ' g a V 4 $ > = - d @ . @ + + $ ) % . & $ $ # . + > > $ . + . . @ > ) . + + . ", " $ $ + @ . # . . @ . . d & # + . . + . + % : % + # + . # + + @ + % + + # - + > p ] 0 b b E b b E E E Q / 5 / k 4 a k a k k a a a a g a N ' ' ' y 4 $ ) 2 = d . % @ @ & > 8 8 @ _ > > @ + # { $ f + # + . + ) { # . @ % ", " B $ % . + . # + + @ + . + + . + # . . + % q p + @ # . @ @ . @ . # . + 4 ! L ) d 4 E C b b b b ~.E @.@.i / P / k k k a k a a a a g.' ' g N g a V r $ { f.}.% M * _ _ $ > > ) . _ 8 ) . & # 8 > ) . . # # @ ) ) @ @ . % ", " $ { # % + . # . + . + % @ . @ % . @ . + % 8 8 f > ) { ) ) > / 7 D { $ _ d f ) F / # b 3 b b ~.E E E 0 Q 5 5 i / k k a a a a a ' g ' ' ' ' ' ' y 4 $ > ) > 8 > ) > ) > { U ) @ f > > % @ + ) > { $ > > > $ { ) . @ + # ", " ~ * . @ % . + . + @ . @ + % @ . + . + % % 8 > ) > > 8 > ) > 7 7 0 ) > > > ) > F 4 # b 3 3 b E E ~.b E @./ 5 / / 4 k a a a ' a ' ' N g ' g ' y A h $ ) { f _ * & * * f f { ) @ 8 { ) * @ * ) { > > 8 ) ) f f { & & . @ ", " { $ . @ + + @ % + # + . . + # + @ . @ . % } f * . @ . # @ @ # 4 . % * _ .._ > d 4 1.3 3 b b b E b b b 0 / 5 / / 4 a a a ' y N g ' ' ' N g ' a y r { ) ] 6 h + # . + @ % 8 ) . ) U > { + $ { f > 8 ) & H . * > _ + + + ", " * B ~ $ * & & + . . @ % . # . % + . % + + . p : p @ . @ . . + @ + @ + @ # h ! d > p / # b l l 3 b b 3 b b b 0 / / 2 4 r a a g ' ' ' g a g ' ' g a 4 4 $ > - - *.& @ # . # . 8 > _ > % ) ) . {.> . $ ) ) * + + & > & & . + ", " A + & % $ * * * + . & * . . + . % @ . @ + . + @ . + + p : F . + . # . + + . . + & . + = L ) L / # b 3 ,.3 b ,.3 3 b b 0 / / / 2 4 y a g ' g N ' g ' g ' ' y A 2 U ) = 5 + @ . % . # . $ > 8 ) * $ > 8 > 8 @ _ > > & + . % ) _ . . + ", " # A A A A # A A # A A * & # . # + . . % . + + [ + $ ) > ) ) > > ) $ + & @ . # . @ % @ - }.> ..] 0 b b b b b l 3 l 3 3 [ 0 = ] / r 4 r a a g ' g ' N g ' y a r r $ > - - + + . @ + + @ * ) ) { + % 8 > ) & + + > ) * # % & > _ . . @ ", " A A 0 # . % . + @ < . + < @ . [ . @ _ ) > 8 { U F f > { @ + . . # . d + . ] - ! - ] 4 ~.C b 6.3 3 l ,.l ,.b 0 4 ] = ! r r A y a y ' g a g a V A / 2 ) $ 2 h @ + @ & + . @ % > > $ + . { ) { + . @ > { . [ . _ > & . + . ", " * . & . . . # + + + + . . + . & > * @ @ k 7 i > > . # + @ . . . # < 0 - = 5 = ] E E E b 6.l 3 3 l 3 3 0 4 / / = / = / 4 A V a a y A a r 4 r r $ ) - d @ . @ . < + . # * { + + . f $ & . # . + < . + + % > _ . @ . ", " * ~ * ~ { * ~ $ $ * ~ * @ . . @ + . @ @ # @ . & { % + + k 7 k 8 > # . . @ [ + . . . + - - ] 2 ] Q E b b l 3 l 3 l 3 b # 0 Q 4 / ] 4 h 4 4 4 r 4 V 4 r 4 r / 4 * { - @ . + . + @ + # . # [ @ & + # @ . + + @ + + # + + * > * + # . ", " 8 1 $ c $ { * ~ { c $ * + . + @ % + . + & + . * > * @ + + # # > ) . # + . & @ . . + < ] - = 6 = Q 0 b 3 l ,.l ,.l 3 b C Q h 0 # 0 E # E # 4 4 4 r / r ] r ] 2 r ] ] . @ % . + . @ + . . + . + + . # + . % + . & @ + < * U f @ + . ", " 1 ~ 1 & * . . + [ . @ . @ @ . . @ + % ) f I ).4 I A > > # . % @ + + + # + @ + - ! - ] 6 4 # b 3 l 3 l 3 l 3 # 0 4 0 0 C 3 b b # 0 4 / / h 2 r 4 r ] ! = # + . + @ . . . # G + + + # . . . % @ . & + # . . @ _ > _ . + + ", " ~ $ $ @ + [ @ . + . + + + # + + % . . ) f 7 7 i 7 i ) $ + + + . . . @ + . + . h 2 ! - = ] 0 b 3 3 ,.l 3 3 b 0 0 0 # b 3 l 3 3 b 0 4 4 r 2 4 = / 2 2 = ] . [ @ . @ . < + . @ @ . @ . + + # . # @ + % . + . # * ) * . @ + ", " { * $ @ & + % . [ + . + . % + @ + + @ > 8 E A a i d 8 $ . . . + # % . . # + + . - = 5 = = / 0 # b 3 3 3 b # 0 4 # b 3 3 l 3 l b # Q 4 / %./ r 2 ] / - + . @ + @ . + @ . + + + + @ & . # . % + . < . + # & + & > _ < . % ", " e 1 . + @ . + # @ % @ & @ @ + @ + # > ) . + . @ _ > & + @ # + @ . # & # . [ @ h ! ! - = ! 4 0 b [ b b C 0 0 0 b 3 l 3 K 3 3 b # h 4 / %.4 r ] 2 ! h @ + # & + + + + < # < . . # + + + @ + . @ + . + # + + _ > * [ + + ", " * $ $ + # . . . + . + @ + @ @ . % @ . ) 8 + . . & _ ) * # < . . . % % @ . + @ . % h = 6 = - ! 4 4 0 # 0 0 4 0 # b 3 l 3 l 3 l b # 0 / / 4 = / ] = ] @ + . % . # % . @ + O # . % + + . + . % @ [ & + < . @ # * ) % . @ @ ", " c c $ . . # . @ . . . + + + & . @ + # > ) # @ + @ * > _ @ @ + @ . # + . . + + @ + + ] ! = ] - = 4 0 / 4 0 4 0 b 3 ,.l 3 K 3 3 C 0 h Q / / ] 2 = ] H % . + . @ + @ . & # . @ + + @ . [ + . . + . . . # . . + & > % % + + ", " ~ $ * [ + + @ . + z . z . + @ . + . z > { @ + [ @ * ) _ @ . + & + @ + @ + < . + . + # ] - 2 - ] ] d / ../ 4 0 # 3 3 l 3 3 3 b 0 0 0 h / ] = 6 h . + . H + @ % . # + @ + + . G [ . @ + . + @ + @ . + + + . H _ > _ H + @ ", " * 1 ~ . + @ + . + . z . + & @ % @ + # $ ) _ @ + @ * > & . . @ + . % @ . # . # . + . % H d - - 6 & $ & 4 / 4 0 # b 3 3 3 3 b b 4 % 8.M ] ] ! 4 & @ % # . . + . . + . . < + # . . . d < . . + % @ + . # % . . % > _ . p + ", " e * $ @ . & + . z . z . @ + . + % + . f ) _ . + @ > ) f @ + % + . + # & + & + + @ . + + @ . ] 6 ~ M M h 4 / 0 0 0 b b b [ 0 0 4 +.~ 1 d 6 + . + # . @ + . @ # . . . # + . @ + < + + . d < + . @ + . @ + # + * > & + . d ", " ~ { c # + # . . + + . < . . # . @ % @ * > M # . *.> ) * + + . @ # . . @ + @ . . + @ . . + @ . ..c * $ / ] / / Q 4 0 4 0 4 / ] / + $ ~ Z @ % @ & . % + & + + + @ @ % . + . @ + . @ . + + + . & @ @ . . + + + +.) * . # . ", " $ ~ 1 & . + + & @ . + + + . . . + . + % ) > > > ) 8 > + . @ . + % . + < + % . + . @ # . @ + + . * $ { - - = %.! 2 ] ] ] ] / - ] d ~ $ * + . @ + . # @ + + @ & + + + . + + % . @ + . % + # . . + & + @ . 1.. * > & . % @ ", " c ~ * . . + @ . + @ + % @ + @ + @ + . & { > { ) > 8 $ + . + @ . + % . @ + @ + + + % @ . + @ + + 1 $ ~ # + ] ] - ! 6 6 = ] 4 h + 1 { * . + @ + [ . + . . + + . . + < . @ G @ # . % @ . . @ + @ . @ . . . @ . _ ) & + . + ", " c $ $ [ . . # + . + + @ + % + + [ # . + + # # > U z H . + @ . . # & @ . + @ + @ . # W + + & + @ * { $ _ + # . G . G < # & @ + @ % 1 ~ _ . # . + + # < . + @ . # . + @ + @ + + + @ + # . # + + . + + + # % + & ) & . @ + ", " { 1 $ @ @ + . [ . # & . . # . . . @ . @ + + H 8 ) @ + @ . . @ [ + . . & + % + @ + + + @ . . @ + & B $ & + @ . % + . . + + . % + * $ { W @ % . @ & + # & + # . [ . + . @ . @ . . . + . G % + + . . @ . . @ & * ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ . + % . # + . # . @ . # @ + % + @ . @ # 8 > @ . % # . + + # # . # . + % _ % * & & % _ O . . ~ c * . + @ @ @ + . [ . . . z & 1 $ & + + . . . . . @ + # . + # % + < + . @ + # + + @ @ + @ # + @ + # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ _ ).w & B $ $ _ * & & & * & O & & . & * & ) { & G & & & * 1 $ ~ c $ B $ 1 $ ~ ~ c $ $ 0 7 # $ * $ * . * & % _ W * + & & * & & 1 * & & & & & % % . & & * & & . & . % & * & & * ~ $ c $ c $ e $ * $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; * $ $ * 7 i % $ c $ ~ B 1 { * $ B $ B $ B $ $ 1 { > ~ * $ c $ ~ $ $ c $ $ $ $ $ c { * e $ B i 7 / $ 1 ~ ~ $ c ~ ~ * ~ c ~ c * 1 $ B $ { $ c $ c 1 { c $ $ $ $ * e c ~ $ c $ e * $ 1 { 1 $ ~ c * * $ 1 { 1 $ c $ ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; X T X T ; ; { + . * { $ c $ $ { 1 e $ 1 $ $ { ~ * { 1 $ $ $ e ~ f $ * ~ ~ * 1 * e * * & & & . & 1 % A & { * { * $ $ c $ $ $ 1 $ ~ c ~ c $ $ { * 1 $ * ~ ~ { * 1 $ { $ $ $ { ~ 1 e _ ~ B $ 1 { * $ ~ $ ~ $ B $ ~ $ ~ 1 { $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; T =.X Y ; ; @ . . @ . # . & . & & & & G & & _ G & _ O & . & * O & * . # . + @ . + + . . + @ . + # . # . @ . * & _ & & . * * * % & . & O & . * & & * _ & . & & W & & G Z % . & & O * & & + + @ . + # . # % + . @ + [ . & * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; e G Y ; ; + . . # . + . < + + @ . . + . + @ + + + @ . + @ @ + @ + . . . @ + . # . @ @ . . @ . + @ % + . # . # + . . @ # . @ Z + [ . + . . + . + . + + . . + + . + + % + . + % @ % @ + . @ d + . . % + @ + . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # # < + % . % . + . + + # . @ d + # . + H @ . . + . + @ % # . @ + + . + % + @ . % % + . @ @ + Z . + @ % + % @ + + @ Z @ . + [ + + . @ # . @ + @ . . # + + + G @ @ . . . @ % @ @ + + + + @ % # . < . @ # z . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame12.xpm0000644000175000017500000004630507343277263012061 /* XPM */ static char * zz12_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ~ ~ ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ~ m n m ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ : ^ ( : } ^ : ( } : ^ ) _ n J g n n ' $ ~ g n n ~ ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } : ( ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) & n g J g J g & $.m n A ~ ; ", "; ; > ; ; > } ^ D 7.Q : ( } Q 0 , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ : ( ^ ^ : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( } ) 8 ' n n R n ' f ; $ f 8 ; ; ", " ; ; ; > ^ '.&.} ( ^ : ^ t 7 7 '.^ &.7 7 t @ j , ' 3 x | v | 9 v | | x s , ' D : # t t t ( ( } ) > ; ; ; ; ; ", " : 7 7 G.} ^ ( : } 7.Q D } [.7 i : '.a |.| ` o 9 | -.| 9 | | o 9 :.[ : p , D t t ^ ( > ", " P 7 '.^ ( } ( ^ @ # 7 7 C o x j ' , ' S ' ' ' x 9 o 9 #.S ' t t &. e. ^ : > > { > ) > ) 8 ", " ~ * ~ , j ).7 ,.l , , ' , , , ' , ' , ' +.| o x , k.k.k.e.e.e.e.P e.e.e.e.P [.D ^ { > f ' g n $ > ", " { 1 $ , R ' | o C.@ , s , ' , s , , , % q % v | | &.r.&.P e.P P P P 5 P P P 7.5 k.: } ) , n J g & 8 ", " * e * . @ + . + # + @ j m v | : : @ , s S , ' , , @ : t ' s 9 9 | . . + . + + . + @ # + # 0 Q 0 &.G.S.i 5 / 5 P 7.5 P P P 7.5 5 ..t t % + % @ + . @ . [ . . # . + @ + . + . + @ + . + + @ . + . . # & > g g n m $ ) & + ", " ~ * { + . . . @ . . m , g 9 9 # : : # u ' , ' p p D : m , , j | l | + # . # & 0 + @ # # 0 0 0 P 7.&.r./ 5 5 Q 5 / P i P P P / 5 &.t D &.+ . . . + + . + @ + . @ + . [ . @ . + @ . @ . & + @ . @ . @ { ) J n , . * ) _ % ", " 1 ~ $ < . @ + @ . . @ , j o | , # : : # , , , : t q p , , ' , s v | . @ . # . + # # 0 d # Q Q P S.&.k.P 5 P 5 i 5 5 i P / i e./ &.&.t / / *.< # . [ + + + . & . p . # + . . [ . # . + @ & # % . % . > > g n ' . & > * # ", " { * B + + + . # + . @ u s | x ' , # t : # , ' ( : : [._ N , ' g v | + + . @ % . + 0 4 E Q 5 5 5 &.0 a P i P P P i i i @.i / i @.1.&.&.= - ! h @ . @ % . + @ + @ + . . + @ + + . @ . + . + . # + # & ) & n g m . * ) M + ", " $ * . + # & + + @ @ , x | x ' ' , # t : @ [ : D : ( F s u ' , | 9 . + . + @ @ + # # / 5 P P Q 7.E ' P i P i P i i i i k E k i E 0 Q 4 2 - = h + . . . # . + . . . # . @ . . + % @ @ . . % + . . f > & J n @ % * ) _ @ ", " $ ~ . & @ @ + + . @ ' 3 | j ' , , , + : q F D : c.p ' , j , ' | o . . # . + + + # ] 5 7.i 5 Q @.@.@.i P i 7 ).).i ).2.k k E k d.k C i r ] - = / . [ @ . # @ # & @ & . @ + . . + @ + [ . @ . @ @ > ) % @ # + . & ) * @ ", " $ $ . + . + @ . # @ R x ` x , , ' u , @ t : ;.t F ' , , S , g o 9 + + & . @ + @ Q 5 / 5 P Q @.@.p.@.).).P >.w ).>.i ).2.k 2.E k k a k k 2 ] = 5 h + . . G . [ + @ . @ & + # % + % + . . + [ + m ) { . . @ . % _ ) f . ", " c { $ @ [ . + + . + @ , j | 3 ' , @ [ + D : t } D [ + [ ' j ' ' | 9 . @ + @ % + ..6 / 5 Q @.E E E @.p.).i 9.>.7 >.i ).i k d.a k p.k a a 4 r / - ] = d @ + @ p . . + + . + # . . @ + + @ . + + @ + ) > # . + @ @ * > _ # ", " ~ * e . + + . + . # @ , 3 | x , , t : q t : q q : [.q : % , ' H | | + @ [ . + # 2 5 5 i P @.~.s.E d.i ).).7 ).7 7 >.).).i d.k E k d.a g.a r / = ! - ! . + . . + + # # % + & # + . . + % @ < + @ . ) { % + @ + + & ) & + ", " * $ B . + @ # . . @ @ ' j ` | ' u # # % @ # c.+ # + % # ' , , ' | v % . + . # h 5 2 5 Q e.E ~.~.@.p.p.i 9.w 7 >.P >.i >.k k 2.E ).k k g.a a .r = = - ] & # . @ . % + . + + @ & + & . + # . . . # & ) * . @ . + _ > f + ", " $ 1 { + . . @ < . + m ' , | | , j , ' ' , % t [ , ' , , ' ' , , v | . . . @ d ] r ! / Q @.E ~.s.E p.i ).).).7 >.7 >.).).i 2.k C i E 2.a n.a a 4 ! 2 = 6 + + <.. + . # . @ + . + # . @ % . @ + @ + % > 8 @ % # . +.> & + ", " * ~ * @ + % . + + @ @ , ' | -.j ' ' ' s , % : p u m j , , j ' x | | + . % @ A u g 5 5 @.E P.s.E E p.@.).P 7 ).w ).i ).i 2.E k d.k k C g.' N g r 2 ] - - ] . + # # % @ + & # . + @ & + @ + + . # . . ) > % . + + _ ) _ + ", " $ ~ . + . @ . + + @ ' u x | | ]., ' , , + : % , , ' m m , 9 l o < @ . . # d & A / / @.E @.s.~.~.d.@.).i i 7 ).>.).k ).k 2.k E 2.E a a g N ' A r - F F 2 + . @ . @ . % + . + + . . . + . % . . @ + % > _ . @ @ * ) $ . ", " c * @ + # . . @ . m j m , ].| o | ].,.j j.+.< , ' , , j :.o 9 < + . @ % h L > d 5 / ~.~.E ~.6.~.E @.p.P i ).i i ).i 2.E k d.i 2.k g.a N , n g r / { ) = + @ + . . + . @ . . + . @ @ + @ + & + @ . % ) 8 _ _ & $ U * + ", " $ 1 @ % # % + . . m ' , ' ' s x | | o 9 | 9 v o K o | 9 o K |.+ @ & + + 5 L ) F / 0 E s.~.@.~.s.~.@.i P i i ).i ).k k g.E k k E 2.a N ' u ' ' A 2 ) > 6 ] . . . . < + . + # . . . + % + + @ + & + . $ > > > ) 8 > % . ", " ~ $ + + @ % # + < @ , , , ' ' ' j x j j [ +.l 9 | v | l x , R & # + @ . - p > L / Q b b ~.d.E ~.~.E @.P i i k 2.k d.k k d.i d.a a g.' N u R ' y 2 > 8 6 - . @ + + + @ + + # @ # + # . . @ % $ % @ < Z f % 8 > * & + @ ", " B * . + & . + + # @ @ @ ' @ S @ m @ @ H p : % @ m @ ' @ m m @ . + . + + - d > L / E b 6.~.s.@.d.~.~.Q 5 5 i i k k 2.E k ).E k z.a N ' u u u ' A 2 { > ] - d @ @ @ . + $ ) % . & $ $ # . + > > * . + . . @ > ) + + + . ", " $ $ . @ . # . . @ . . d . % # . . + . + % : % + # + . + + + @ + % + + # = L > p / 0 3 6.~.b ~.p.@.@.@.Q P / @.k E E 2.k k 2.C a N N ' u R N g a r U 8 2 = d . % @ @ & > 8 8 @ _ > { @ + # { U f + @ % @ + ) { # . @ % ", " B $ + . + . # + + @ + . + + . + # . . + % q p + @ + @ @ @ # z @ + @ + h 5 d > F / C b 6.b 6.b P.).@.i @.5 P i i k @.k d.E a g.' N ' u u u u ' V 2 { > ] '.% * $ _ _ $ > > ) . _ ) > + & # 8 { ) . + # + @ > ) @ @ . % ", " $ { # % + . # . + . + % @ . @ % . @ . + % 8 8 f > ) { ) P 7 p ) 8 > * p _ F ) % / [ 3 K 3 ^.s.E p.P.@.@.P 5 @.i k 2.C a g.a N ' N u R u , J ' y / > ) ) > 8 > ) > ) > 8 U { @ f { ) & @ + ) > { $ { > > f { > . # . # ", " ~ * . @ + . + . + @ . @ + % @ . + . + % % 8 > ) > > ) > i 7 p ) { ) > > > ) > F 4 C l K K b d.@.d.b 1.@./ 5 7./ E k a g.a N ' N , N , N , N ' V h ~ ) > _ % * & * * f f ) ) @ ) { ) f @ * ) { > > > ) ) f {.{ & & . @ ", " { $ . @ + % @ + % # + . . + # + @ . @ . % } f * . @ . # @ A . + @ _ & _ d F > d 4 [ 3 9 l K ~.d.b 6.b E Q 5 / / i a a N ' N N u , J u R u R a V 2 > ) ! - A d . # + . # > 8 + > {.{ { . $ { f > 8 8 & H . * > _ + + + ", " * B ~ $ * & . + . . @ % @ # . % + . % + + . p : p @ . @ . # . @ + @ + @ + h ! d > p / # l | 9 | 6.6.l K b C E 5 / / / 4 a ' N ' J , N ' u g u N g 4 2 { > - - + . @ . H + + 8 > _ > % > ) % $ ) . U ) ) * + + & > & & . + ", " + # + [ + + + + + # * . . + . + . . @ + . + @ . + + p : F . + . + . % + @ O + < . + = d , g Q # ,.K l K 3 K K l K b C / 2 ] 2 2 4 y ' J , u J , u u R ' g / 2 > {.= - # . # % . # @ $ > 8 ) * $ { 8 > 8 @ _ ) > & . + % ) _ . . + ", " k k i .k .k .k k k . & # . % + @ . % . + + [ + $ ) > ) ) > > ) * + . . . # . @ % . - ] u y ] 0 b b I.6.3 9 | 9 | K [ 0 2 ! / 2 r 4 y ' g N R u g u n ' A 2 = > ) 6 - + % . @ % . . * > 8 > + % ) > ) * + @ { ) * # + & > _ . . @ ", " & O % . + @ @ @ + < . @ % . @ _ ) { ) { > ) { > > @ + @ . # . d # . ] - ! - ] / E d.s.6.K 9 9 9 | K 3 0 ] = - ! = r 4 y ' g N g , ' g a r / 6 ) > 2 h . # . . + @ # % > > $ + . 8 > $ + . . > > . [ . _ > & . + . ", " & . & @ . . + + + + + . @ + . & > % 7 I @ # # { > @ + . @ . . . @ & 0 - = 6 = / 0 E E 6.l 9 l 9 9 l 3 E ] ! 2 = ! = ] 4 4 F.a y a y 4 2 = = r { ) - h @ . @ . < + . # * 8 . + + $ f & . # @ & # . + + % > _ . @ . ", " * ~ * ~ { * ~ { $ * { * < . . @ + . @ . # . @ * { 1.7 7 . + @ ) > + @ . + [ + . . + + - ! ! = ] Q E s.l K v | 9 o 9 3 0 / = - 5 = / h 2 / 4 r 4 r ] 2 ] = ! - { $ - @ . + . + . + @ + @ # @ & + . # . + + + + + @ % + _ > * + # . ", " 8 1 $ c $ $ * ~ e * ~ * + . % @ % + @ + < + @ _ > * k # . + @ > ) . % # . & . @ . . . / - = 2 - 5 0 b K | 9 9 9 | 9 3 0 / = ] 4 0 E 0 0 4 / = 2 = / = - ] 5 = = ] ] . @ % + @ + @ % . . + . # + . # % . # . & . @ % H * U $ @ + . ", " 1 e 1 & O & + @ % . @ . . @ . . . + _ > 8 @ + 0 i A > > # @ + . + + # + % @ + - ! - ] 5 4 0 3 9 -.9 9 K | l 0 / ] 4 0 # l 3 b # d ! ! 6 ! = - = - ! 5 = + # . + H + . . # . % + + + . @ . + @ + & + # . . # _ ) _ . + + ", " ~ $ $ # . # . @ d . + + + + + + % @ . ) ) @ . I 7 i ) { + + + m & . @ + . + . h 2 - = - = Q [ 3 | v | 9 K 3 4 ] Q # b 9 9 | K b 4 / = = = 6 ! = 6 = - ] . % @ . @ . @ + G @ @ . @ . + + # . . # . d . + . @ * ) * + @ . ", " { * $ . < + % . # + @ + @ % @ + + . # > ) @ . C I d 8 M . . . + # + @ . # + + + ] - 5 = = ] / b 3 l 9 l 3 # 0 4 0 b | 9 | 9 9 3 # ] - ! - = - ] ! / - + . @ + @ . + @ . + + + + @ . . + . % + & @ . & # . + & > * < + % ", " ~ 1 + + @ . + @ . % @ + & @ @ @ + # > 8 . + . @ * ) & + @ + # & . @ + < . # # *.! ! = 2 - ] 4 # b 3 b # / / 4 [ 9 l 9 9 9 l 3 0 / ] - = = 6 = - ! h @ + [ . % + + % @ [ @ . . # + + [ . # . & # + + # % + _ > _ < + + ", " c $ $ + + . @ . % . # . . # @ . % @ . ) ) + . . % * ) * @ < + . . % % @ + @ . & + h - ! = ! 6 ] 4 / 0 0 ] ] 4 0 3 9 9 o 9 | K 3 0 = = ! ] - ! - = h @ + . # . + [ z @ + O # & + % + . + . % @ @ & + < . @ # * > % . @ @ ", " 1 c $ @ . + + @ . + @ + + + & . @ + # { ) # @ + @ * 8 f @ @ + @ . # + . . + + @ + % = ! = ! = - = / - / = ! 0 C l | K 9 | 9 l b 4 ! - 6 ! - 2 - h @ % . + & @ + . . & # . @ + + @ . # + @ . + + . . # + . . % > % % + + ", " $ { * [ + @ . @ p . @ . @ + . @ + . . > { @ + [ @ $ ) _ @ . + & + . + @ + < @ + . + @ ] - / - ] ! h.- ! - = 4 # K 9 | v K | 3 0 / h ! - = = 5 h . + @ G + @ + . # + @ + + . . < + @ + . + . @ . . . + + + H _ > _ @ . @ ", " * 1 ~ . + @ + @ + . . # + . & # . + # $ ) _ @ + @ * > & . . @ + + [ . @ + . # . + . + @ h = - 6 O $ _ 2 ! = / 0 3 l l 3 l b 0 4 F ~ * ! ! - 4 & + & # . . + . @ + . . < + # . . . + + . & + % @ + + @ + . + & ) * . p + ", " ~ * { @ . % % . . . . . @ + @ % + + . f ) * . + @ > ) f @ + % . . + # & + & + + @ + < + . + = / $ $ * = = ! ] / 0 C b 3 C 0 4 6 f 1 ~ h ! + . @ # . @ + . < + . . . # + . @ . [ + & # d @ + @ . # . . + [ + * > & + + + ", " ~ { * @ + . + . [ + + < . . + . @ % @ * > M # . z ) > * + + @ @ # . . @ + @ . . + . . . + @ . ] { * { 6 = 6 ! / ] 4 ] Q / ] ] - L { ~ Z @ # + & + % % . + + . @ # & . + + @ + . @ . + % + + & . @ . @ + . + +.) * . # . ", " $ ~ 1 @ + # . + @ @ + + + . . . + . + % ) > > > 8 ) 8 + . @ . + % . + < + % . # . @ # @ . + + . * $ $ - ! = = - 6 ] ] = - - 6 = + $ { * + . @ . . # @ + # . % . + d . & + . . @ + . + + @ . @ % . % . @ d . * > & . % @ ", " 8 1 { . . + @ . % . + % @ + < + @ + . & { ) { ) ) > $ + . + @ . + % . . # . + + . % . @ + @ % + 1 { $ + *.] h ! = 6 6 ] h h + d 1 ~ * G + @ # [ . + . . + # . . . @ . @ @ . # . + < . . # + . @ @ . + @ G # _ ) & + . + ", " * $ $ % . . # + . # + @ + + + + [ # . + + @ # > $ z H . + . . + < # @ . + @ d . # . & @ + . + @ * { ~ _ + # . . & G @ [ . # + @ % { ~ _ . + . + + # < + . & + # . + @ . + @ % + . + # . . # + . + + . + % + * ) & . @ + ", " c 1 $ @ . + @ & @ + & . < + @ . + @ . @ + + H 8 ) @ + @ . @ @ % + . . + & + # . # + + . % . @ . % 1 $ & + @ . + + . . + . . % + Y $ $ W @ % . & . + @ % # @ . @ % . + @ . @ . . @ + . . % + . . . @ . + @ @ $ ) & . + . ", " ; ; ; ; ; ; $ { ~ B $ 1 % & + + + . # . @ . @ @ . % + # . @ # > > . . % . . . # + @ . # . + % % * & * & % _ . . . ~ o.* . + @ < @ + & # . + @ . & * ~ _ + # + @ . . . @ + # % + # % + < + + @ + + @ + @ @ d + # # . # # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ $ * ~ _ 7 4 $ $ _ * G % * _ & O & G & & * . ) 8 W . & & & * * $ ~ { * ~ c ~ { $ 1 * $ 4 0 * ~ { 1 $ * & O & % * & . & & O * . & 1 1 & & & & & _ % . & & O & & . & . % & * & & * { ~ c $ * $ B $ $ $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; * $ $ $ ~ + 7 7 * $ ~ { 1 { 1 $ c ~ { * e * $ ~ { $ ~ $ * f $ ~ $ ~ * { $ ~ f ~ * { $ e % 7 7 % * $ 1 $ ~ ~ c $ 1 $ * { $ 1 $ 1 $ e $ * { 1 $ c 1 $ c $ $ $ $ $ e c ~ $ c ~ e * $ 1 $ 1 { ~ c $ 1 * ~ c ~ 1 { { ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; X T =.!.; ; { + W 0 % { c $ $ $ c ~ * ~ * ~ { ~ * { 1 $ $ $ B ~ { * $ 1 $ ~ * * e * * & & & . % k 4 W ~ c ~ * c $ $ $ ~ { ~ 1 $ e c ~ c $ { $ c * $ * ~ e $ c ~ * { * $ $ { 1 1 $ _ e 1 { 1 $ * $ $ $ ~ $ B $ $ $ $ 1 * $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; !.=.X Y ; ; . . . . @ + . & . & & & & & Z & _ G & _ * . & & * . & * . # . + @ . + + z . + G # . + + # + H + & & Z & & + & * _ % & . & & . * & * W * _ . . & & W & & G Z % & & & O & & & . + @ . + . + # & + . @ . [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; + + . # @ . . & + + @ . @ . . + @ + + + @ . + . @ + . + . . + @ . + + . @ @ . . # . . # . + . + . + + . . . . @ . + % . + . + . + @ + . + + . . + + . + % + + + . % @ & + + @ . + + . . % + @ + . # + . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ & d . + [ G + . + + + < @ d + # . + H @ . . + + + @ + @ @ + + . @ + % + H . % % + . # < + . + + @ % + # # + + . + # . . [ + + . @ + @ @ + @ . . # + . + G @ @ + G . # . # @ + # + + @ + [ . @ . @ @ . + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame13.xpm0000644000175000017500000004630507343277263012062 /* XPM */ static char * zz13_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ : ^ ( : } ^ } # g n ' g ' g ' ' F ^ } ) ; q q q ; ; ", "; q q q ; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } : ( ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ : D n J g J n n J n g ' } ^ ) ; q q q ; ; ", "; ; > ; ; % 5 D &.( ^ : &.&.} p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } ^ } ( ( ^ ^ : ^ ^ ^ ( } ( ^ ( : : ( ^ ^ D ' n g n R n g J n ' ;.} ) ; > 8 } ; ; ", " ; ; ; > 7 7 ..^ : ^ t w 9.t } t 7 7 D : t @ , , s 3 x | v | 9 v | | x s , ' D : # t D t ( ( } J n , n g J g n > ; ; ; ; ; ", " 7.@.t ^ ^ ( D 7 w t ^ D i P t D '.9.I |.| K o 9 | -.| 9 | | o 9 :.[ : p , } t t ^ ( g J n ", " } } } ( } ( D t m k 7 7 | o x j ' , ' S ' ' ' x 9 o 9 #.S ' t t t ^ : > > > $ ' @ ) ) ", " ~ * ~ , j a B.v l , , ' , , , ' , s , ' +.| o x , t k.t } ^ > 8 f > { 8 { > ", " { 1 $ , ' N | | +.@ , s , ' , s , , , % q % 9 o x t &.&.e.P 5 5 P / 5 5 / 5 5 7. t D : > ) ) ", " * e * . @ + . + # . @ , S K o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + # 0 0 0 k.r.&./ / / 5 5 5 5 P P P 5 5 5 ..t ^ % + % @ + . @ . [ . . # . + @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . m ' ' | 9 # : : # , ' , ' d p D : @ , , , | l | + # . # & 0 + + # # + 0 # / 0 # G.5 5 / 5 5 5 / 5 6 P / 5 5 '.t D &.+ . . . + + . + @ + . @ + . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | | , [ : t # , , , : t q p , , ' , s v | . @ . + . # @ # # p # 0 5 k N J R k 5 6 5 / 5 5 i 5 / 5 / / k.t t / ] *.< # . [ + + + . & . p . # + . . [ . # . + @ . [ + % + & > > & . + . & > * # ", " { * B + + + . . + . H N 3 9 <.' , # t : # , s : t : q % ' , ' ' 9 | + + . @ % + + + 4 0 / ! 5 ' n u n ' 5 i 6 P / i / i / i / / p &.t 2 - - h @ @ . % . + @ + @ + . . + @ + + . @ . + . + . # + # & ) _ @ . @ . * ) M + ", " $ * . + + [ + + @ @ , j v j ' ' , # t : @ % : D : ;.F s u ' , o 9 . % . . @ . # # # / 5 5 5 y , n u y P 5 I / w i i i / k i / 0 1.../ / - ] h + @ . . # . + . . . # . @ . . + + < @ . . % @ . . $ > f . + . [ * ) _ @ ", " $ ~ @ & @ . + + . m , 3 | x , , , , + t q F D : c.F ' , , j g | 9 . z # % . + + . Q / 5 / 5 / N g N i i i P I i i I i i k 4 i E 4 4 k = = - = ] . [ @ . # @ # & @ & . @ + . & + @ + [ . . + @ @ > ) % . # % . * ) * @ ", " $ $ . + . + @ @ + # , <.K x ' , ' , , @ t t ( t p ' , u S , ' o 9 + + . @ . # @ ] 5 5 / 5 / Q @.@./ i w i w i w I i k i k k k i k 4 y / / = = 5 h + . . G . [ + @ . @ & + # + + + + . . & # + @ 8 { @ . + . [ _ ) f . ", " c { $ @ [ . + + . . @ , j o 3 ' , s [ + D : : D D % + [ m j ' ' | v . @ % @ + + ..2 ! / 5 Q @.0 @.i @.i i w P I i w i i i k 4 E i k k k r 2 / ! = = d @ + @ p . . + + . + # . . @ % + @ + + + @ + ) > + @ + @ . & > _ # ", " ~ * e . + . + . # # @ , ,.| x , , t : q t : q q : [.q : + , ' S | | + @ % . + # / 6 5 i 5 i 0 @.E @.i P i i w >.I I I i k i k k / k 4 k a r / = ! - ! . + . . + % # # % + & # + . . + % @ @ + @ . ) { % + @ + + * ) & + ", " * $ B . + # @ . . . m ' j | | ' u # # % @ # c.+ # # % [ ' , , ' | o + . + . + h - / ! / / @.E @.0 i i i w >.w i 7 i i i k k k k i k k k k r 4 2 = = - h + # . @ G + % + + + < & + & . . # & . . # & ) * . @ @ + & ) $ + ", " $ 1 { + . . @ & @ + m ' ' o | , j , ' ' , % t % , ' , , ' ' , , v v . . < @ 0 4 2 ! / 5 @.Q E E @.@.i i i P >.i I >.I i i k k E i k k k a a r / - / - 6 + . H + + . @ . @ + . + . # @ + + @ + @ + % > $ . % + # f > % + ", " * ~ * @ + % + + + @ @ , , | ` H N ' ' s , % : 1., m j , , j ' x | | + . + . m J a - 5 Q 0 @.E @.@.i i i i w I I i i i k k k k 4 k k 4 a y a y 4 = = - ! ] . % # # % @ + & # . # @ & + @ + + . # . . ) > % . + . _ ) _ @ ", " $ ~ . + . @ . # + @ ' , x | | x , ' , , + : % , , ' m m , 9 -.| < . G + # 4 u g / / i Q @.E 0 E @.@.i i P I ).I i I i k k k E k k a a a a y A 2 ] L F 6 + . @ . @ . + + . + + . . . + . % . . < + % > _ . # @ * ) $ + ", " c * @ . # . . . . @ , ' , ].9 o | x ,.j j.+.< , ' , , j :.| 9 < + # & % h d N g / / 0 E @.E ~.E @.i i P i i I i k i k k k k i k k k a a g A V r ! > ) = *.@ + . . + . @ . . + . @ @ + @ + & + . @ _ ) $ _ * * $ U * + ", " $ 1 @ + % % + . # m , m ' ' s x 9 | o 9 | 9 v v K o | 9 o K |.. @ . # + ] L u g ! / Q E 0 @.1.E E @.5 / i i i i i k k k E k i k k a a a ' g a r / { > 6 ] . . . . [ + . # + . . . + % + + @ + . + . { ) > > ) 8 > % . ", " ~ $ + + @ # < + . @ s u , ' ' ' j x j j [ +.l | | v | l x , , . # + . . - p g a / / 0 ~.~.@.E E 1.E / P 5 I i k k k k k 4 k k k a a a g ' a y r 2 > 8 6 ! . @ + . + . + + @ @ # + . @ . @ % $ % @ < + f % 8 > * & + @ ", " B * @ + & + + % @ @ m @ m @ S @ m @ @ H p : % @ m @ m @ A m @ & + . + + - p > L / 0 ~.C E @.E @.~.E Q 5 / / / i k E k k i E k k a a a ' ' ' a A 2 > > 2 - d . @ @ < + f ) % . % $ $ # + . {.> * . + . . @ > {.. + + . ", " $ $ . @ . # . + @ . . d & + + . . + . + % : % + # + @ . + + @ + [ + + # = Z ) p / 4 E b E E ~.E @.@.Q / 5 / i 4 k k k i k k a a a g N g ' g y 4 2 { ) = = 0 . % @ @ & > 8 f . _ > ) @ . + { U f % # . . + ) { # . @ % ", " B $ + . . . # . + @ + . + # . # # . . + % q p + @ + @ @ @ . m . # . + 4 5 d > L ] 0 [ E b C ~.E i @.i i 5 5 i / i / k k k k a a a a ' ' ' ' a r 2 { > ] '.% * * _ _ $ > > ) @ _ { > + < # 8 { ) . + # + @ ) ) . @ . % ", " $ { + % + . # + + . + & @ . . % . @ . + % 8 f 8 > ) 4 7 f ) ) { ) { $ F L D ) p / 0 C b b ~.E E @.E Q Q P 5 P / k k E 4 a a a a ' N g ' g a g 4 2 > {.) > 8 > ) > ) > { > > @ f > ) & + . ) > { $ $ > > f > { @ + @ + ", " ~ * . @ + + . . # . # . + + < . + . + % _ 8 > ) > > ).>.1.> ) ) 8 ) > > > ) > L 4 0 [ 3 b b E @.E ~.E Q / 5 Q / / k k a a a a ' g ' ' ' ' g A r h ; ) { f _ * $ * & f f 8 ) @ 8 { ) * # * ) { > ) > ) ) f f > & & . @ ", " { $ . @ . + @ + % + . # . % # + @ @ @ . % D f * . # A 4 @ @ *.@ . & & _ d _ > d 4 0 b 3 b b ~.E E b C 0 / 5 2 / / 4 a a a a g ' ' N y ' g a y r 2 { ) ! 6 A + & & + . [ 8 ) + > ) > $ . $ { f > 8 8 & H . * > % + + + ", " * B ~ $ * & . % . . @ + < . . + + . % + # . F : p @ . . & # . < + @ + @ + h ! d W d / # b 3 3 3 b C b b b E 0 5 ] / 2 4 r a g a ' y ' g a ' g a A 4 5 { > - - *.. & & @ + + { > _ > % ) ) O {.> . U ) ) * + + & > * & . + ", " + $ * $ * e 1 * $ $ $ . . # . % @ + @ + . . . + + + p : F . + @ + . + + . . + < + + = 4 J 4 / 0 # b 3 3 b b 3 3 b b # / / / = / r a y ' g ' ' g ' g a g V 2 2 > ) - ] # . & % . @ . $ > 8 ) * $ > f > 8 @ _ > > & + . % ) _ . + . ", " I I ). .i I I i I .I O & + . + + . . & + + + [ . $ ) > ) ) > { > * + . . @ + . @ % . - ..J 4 = 0 E ~.b b 6.l 3 l 3 3 b 0 4 ! / / %.2 A y a y ' y ' g a a 4 = 2 > ) 6 - + + * & + + @ * ) > 8 . % ) { ) * + + > 8 $ # + & > _ . . @ ", " I I 2.I m.I i k A + + @ @ < @ + # . @ % @ + & 8 > 8 { > ) ) > > # . . . # . + # + ] = N r ] / 0 E E E 3 3 ,.l 3 3 b 0 4 4 ] 5 4 r 4 4 y a g a a g V r 4 6 = ) > 2 ] . @ & & + . @ % > > $ + . 8 > { + . @ > > . [ . _ > & . + . ", " & & & + . . . + + + . . + & + & > d 2.A k >.k { > . # . @ + . . @ @ d - 2 - = 2 Q i E 6.b l 3 ,.l 3 3 0 4 / 4 ] / ] / 4 A V 4 A V k 4 = ] = 2 { > - h @ . G * [ . + # * 8 + + . f $ & @ # . + @ . + + % > _ . @ . ", " * ~ * ~ { * ~ { $ * ~ * @ . + @ . [ . @ @ # . * > i 7 k I 7 i U > # . . # < + . . + + - - ! = ] / @.E b l 3 l 3 l 3 b # 0 4 / 4 4 0 4 4 / 4 r / 2 ] 2 2 = ! - $ { - @ . + & & z + @ + @ @ @ & + # . + + + @ + + # + + $ > * # + . ", " 8 1 $ c $ * $ 1 $ c ~ & + . % @ + + @ + . . @ * > % ).# # 4 A > ) . [ + . % @ . . . & ] - = = 6 ! 0 # b ,.l 3 ,.l 3 3 0 0 h 0 0 # E [ 0 0 4 4 = 2 = ] - ] ! - = ] / . @ + * & . @ % . . + . + + @ @ + . % + . & @ % @ & > f @ + . ", " 1 e ~ & * O + . [ . . . . @ . + . + % > { @ + + + . > > # . + . + . # + p @ + - 5 - ] 5 / 0 b 3 3 l 3 l 3 b C 0 4 0 # # 3 3 b # 0 ! ! ! - - 2 - 2 ! 5 = + + & + & & . . # . + + + # . . + % H + & + # . . @ _ > _ @ + + ", " ~ $ $ . @ [ @ . d @ + + + + @ + % @ + 8 ) # . . + % ) { # + . m % . @ # . + @ h = ! - = = ] 0 b 3 K 3 3 3 b 0 4 0 # b 3 3 3 b C 0 r = / - = ! = - = - ] . # @ @ G & # + G @ @ . @ . + + @ + @ @ % + . + . + * ) * . @ + ", " c $ $ # & + % . [ + . # @ % + @ + . @ > > @ . @ . % 8 * . + . + + # . . + # + + = = 5 = = / / # b b 3 3 b # 0 4 0 b 3 3 l 3 3 b h ! - ] - ] - - 5 ] - + . < + . & * @ . [ + + + . % . + . + + . @ . % # @ + & > _ @ & % ", " ~ 1 . + @ . + . @ % @ + & @ + < + 0 { ) . + @ . _ > & + < + @ & . # & . . [ # h ! ! - = - ] 4 0 # [ C # / / 0 C b 3 3 ^.3 3 b 0 4 - - = 2 - ] - 5 h @ + < + + & % + + + @ . # @ # + % @ % . < + . + [ + + _ > $ # + + ", " c $ $ + # . . @ + . + . @ + @ . % H . ) ) + . . & % ) * @ @ + @ + & % # @ . . . [ %.= ! - - ! = / / / ] ] ] 4 d b 3 l 3 3 3 b # 4 ] - ! = - ] - = h . # . + . + % G @ . + < . % + + . + . + @ [ . + @ . @ + & ) _ @ & @ ", " * c $ + . # . . + + . + + [ [ < @ + # { ) + @ + @ * ) f @ @ . @ . # . . + + @ . % + ] ! = / - = = / ! 2 ! = / 0 3 b 3 l b 3 b # / ] - 5 ! - 2 - ] @ % . + < & & * & & & . . + + . . # + . . + . . . # . . + & { f # + + ", " ~ c $ [ + . @ . + z + . @ % [ [ % . . ) $ @ + [ . * ) _ . + + % . + + @ . [ + . + + @ ] - = - ] ! h.- ! 6 ] 4 4 b 3 3 b 3 b [ / / ] - = - ] - h @ . . @ + . & & & _ & & + . H % . @ + . + @ + . @ & + + + H _ > % G + @ ", " * ~ 1 + + @ d . Z . z + # [ @ [ [ + @ $ ) _ @ + @ * > & @ . . # . % @ . # . @ . + . + G 0 - - 6 O $ * = - - ] 4 # b 3 b b C 0 / F ~ * ] - - 0 . % . + . . + & . + . & & % # . @ . d & @ . % & . % + . % . . % > _ @ p + ", " ~ * { @ . . % + z Z z . . [ [ [ + + + $ ) _ @ + @ > ) $ + . [ + . + # + % . + + @ + @ + . . = 5 ~ $ * - ] = ! 4 / 0 # 0 # 4 / = f ~ ~ ] ! + . @ + @ @ . + . & . . . . & * & & & & & & _ & & & & & & & & % & $ > * + . d ", " ~ $ c @ + + . . + + . < . + % @ < + @ * > $ # . z ) ) * + + . @ # . G @ + @ + . + . # . + @ . ] { * B 6 ] 6 ! 5 ] 4 / / ] ] ! - L { ~ Z @ < + < + % + & + + & & . % . * & . Z . & . + % + . & . . . . + & + M > * . # . ", " $ ~ 1 < + @ + + < @ d + . . . + . . + % ) > > > 8 > 8 . + @ . + % . + < % & . # . @ . @ . + + + * $ $ - - = = - - ] ! = ! 6 = = d ~ * * + . @ + . # @ + + & & & & _ & & . % . @ + . % + % . . + & % . . d . _ ) & . % @ ", " c ~ c . . + @ . + . + % @ + @ + # + . & $ > { ) ) > f . . + @ . % + . . # . + % + # & # + @ & + 1 $ { [ *.] h ! - 6 = ! %.4 d + W { 1 . + @ . [ . + . # + . * . . & & . @ @ + & + @ . . @ + @ . @ . @ . @ . * ) & + . + ", " c $ $ % . . # + . + # . + + & + [ + . + + # # > $ z H + + @ . + @ % @ . + @ + . @ % G # . + + @ * { ~ Z % # . . <.G @ [ . # + . % e ~ _ . + . + + @ & . + @ + # . * . . + @ + + . + # . # + + . + + + + % + & ) & . @ + ", " $ 1 $ # G + @ & @ + < + . # . . @ @ . @ + + H 8 ) @ . @ . . @ [ + . . % + + + @ + d . + & . @ + * * $ & + @ . + + . . + . . % + O ~ f W @ % . [ . + # & + @ . + < _ . @ . @ . . @ + . G % + . . . @ . . # & * ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % % . + + . # . @ . # @ + % + . @ . # > > @ . % . @ + . # @ . # @ % % _ & * + # % _ . . . ~ c * . + @ % @ + < + . + @ . & * ~ % + + @ . . . @ @ + # & # % & + < + + @ + + @ + @ @ d @ # + @ # # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ * $ ~ c ~ * # _ $ * G & & _ & O & G & % & . ) 8 W . & & & * * $ ~ { c 1 c 1 $ ~ ~ 0 7 4 $ $ ~ $ * $ * & . W % * & . & & & O & & 1 1 . & & & * % % O & & & O & * * & % & * & & * { $ c $ c $ B $ * ~ $ 1 $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; $ $ $ * ~ $ * i 7 i ~ { 1 { * e * e $ c ~ c $ ~ { { ~ $ * 8 $ ~ $ $ * $ { ~ f ~ c $ * 0 7 0 1 c ~ * e ~ * ~ c $ 1 $ 1 { $ B * ~ * e $ { $ c $ c 1 $ c $ $ * $ $ ~ c ~ $ { 1 e * $ 1 * 1 $ ~ c * $ * ~ c ~ * { $ ) ~ ~ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.=.!.; ; { & 1 $ 0 w 0 $ { $ B ~ $ 1 $ ~ { 1 ~ c ~ $ $ $ 1 e $ $ * 1 $ 1 $ * 1 $ * & * & . + . & 1 $ * $ 1 { $ { $ $ { $ 1 $ e * e $ c $ { * 1 $ * ~ ~ { * ~ { $ c $ $ { 1 ~ $ _ e 1 { ~ { * $ ~ $ ~ $ B $ ~ $ 1 1 { $ 1 $ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T X Y ; ; . m . . @ + . & . & & & & . % & _ . & _ O & * & & O & * . + . @ . . d + z . # . @ % + . # . . + & . _ . & . & * _ % & O & & . * & * & * _ . . * & & & & G Z * & & . * & & & . + @ . + + . # % + . @ + [ . & * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % . @ + @ . . < + + @ . . . . . @ + + + @ . + @ . . @ + . . + @ . + @ . @ @ . . @ . + # . + @ + . # + . . . . @ . + + # . + . . + @ + + + . # . . + . + % + # . + % . . # + . @ + + . . % # . + . # + . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # + < + % + % . + . + + # & # d + # . + H @ . . + + + @ % @ # . + + . + % + @ . % % + . @ @ % . + + < % + # # + + @ Z < . + [ + + . @ + @ @ + @ . @ # + + + G @ @ . @ . . + @ @ + # + + . [ + < . @ . @ z + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame14.xpm0000644000175000017500000004630507343277263012063 /* XPM */ static char * zz14_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ : ^ ( : } ^ g J n g n g # ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q [.0 0 , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } : ( ^ ( : ^ : ^ : ^ } ^ F n n g J n R n g f > ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; > ; $ 7 7 '.^ } ( &...( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ : ^ ^ ^ ( } ( ^ ( % R n R n ' J n ' 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; 0 Q } } ^ t P P t ^ ( 7 7 &.^ D P P # , , s 3 x | v | 9 v | | x s , ' D : # ( D : ( ( } n n ' J n g ) > ; ; ; ; ; ", " : ( ( ^ F 7 7 '.: ( Q 7 '.( '.7 7 '.@ |.| K o 9 | -.| 9 | | o 9 :.[ : p , } ;.t ^ ( > ", " } } } ( &.&.^ ^ k k : t | o x j ' , ' S ' ' ' x 9 o 9 #.S ' t } t ^ : > > { > ) > ) ) ", " $ 1 ~ , j [ +.v l , , ' , , , ' , s , ' +.| o x , ;.t D ^ ^ > 8 ) > { 8 { > ", " { 1 $ , , ' | | +.@ j ' j ' , ' , , , % q % 9 o x t t t 5 5 5 5 2 5 5 / 5 5 } t > ) ) ", " * e * . @ + . + # . @ ' , ` | q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + # + 0 # t t &./ / 2 5 5 5 6 5 6 5 5 5 - &.: ^ % + % @ + . @ . [ . . # . + @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . m , m 9 9 # : : # , ' , ' p d D : @ , , , | l | + # . # & 0 + . # + # d # / &.t t 5 - ] ! 2 ! / 5 2 5 2 5 5 '.t D &.+ . . . + + . + @ + . @ + . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . @ + . @ , , o | , # : ;.# , , , : t q p , , ' , s v | . @ + @ . + @ # # % # 0 ] 5 &.# p / 5 2 5 ] 2 5 5 / 5 ] 6 4 t D : / ] *.< # . [ + + + . & . p . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + @ + + . s , 3 | x ' , # : t # , s : t : q % ' , ' ' 9 | + + . @ % + + + + # ] 5 5 2 ' N J 4 5 2 5 6 5 / 2 5 / / / ! C.t t 2 - - h @ . @ % . + @ + @ + . . + @ + + . @ . + . + . # + + & ) _ @ . @ . * ) M + ", " $ * . + + < + + @ @ , j o j ' ' , # : : @ % ( D : ;.F s u ' , v | . % . . @ G # # # h 5 / ! 5 R N J .5 5 2 / 6 / / / 2 / / / p C.'.2 ] - ] h + . . . # . + . . . # . @ . . + % @ @ . . % @ . . $ > f . + . [ * ) _ @ ", " $ ~ . < . @ + + . @ ' 3 9 x , , , , # : q p } : q p m , , j g | 9 . z # % + + + . / ! 5 6 ] / k J ' / 2 i 6 5 i 6 I / / i 4 / / Q 4 2 2 = - = / . [ @ . # @ # & @ & . @ + . . + < + [ . . % @ @ ) ) % . # % . _ > * @ ", " $ $ . + . + @ . + s , H ` j ' , ' u , @ t : t ;.F N , u S , ' o 9 + + . @ . # @ ] / ! / 5 ] / / 5 i / / I 5 I / I / I / 2 4 / / / 4 4 / / = = 5 h + . . G . [ + @ . @ & + [ + + + + . . . # + @ { { @ . . . [ _ ) f + ", " c { $ @ [ . + + . @ @ , j o 3 ' , @ [ + D : t } D % + [ m j ' m | v . @ % @ % + d 6 ! 2 5 / / Q / / 5 i 6 / I i I / I k 4 i k 4 I 4 / r 2 = 5 ] - = d @ + @ p . . + + . + # . . @ + + @ + + % @ + ) > + @ # . @ * > _ @ ", " ~ * e + + . # . + + @ , ,.| x , , t : q t : q q : [.q : % , ' , | | + @ + . . # ! 2 ! 2 5 / Q / @./ i / w / I I I k I k .k k k 4 i 4 k 4 = / = ! - ! . + . . + + # [ + % . # + . & + & @ @ # . @ ) 8 _ + @ + + & ) & + ", " * $ B . + + @ . . @ m ' j | | ' u # # % @ [ q [ # + % # ' , , ' | o % . + + . h 6 ] - / 5 / Q / / / / i I i I k I k .k k 4 k a k .4 4 .4 2 2 = = - h % # . @ G + + + + + < . + . + + # . . . # & > & . @ . + % > f + ", " $ 1 { + . . @ [ . + @ ' ' | o , , , ' ' , + t % , ' , , ' ' , , v 9 . . < @ d ] = 5 ! / Q i 0 @./ i / / i I k I .I k .k y k 4 k k k k r 4 r ] 5 = - 6 + . <.+ + . @ . # . . + # . @ % . . + # . p > 8 @ % + . +.> _ + ", " * ~ * @ + % . + + . @ , , | ` H N ' ' s , % : 1., ' j , , j ' x | | + . + + + W h = 5 / / Q / Q i / i i I i .i k .k k k k a k k A k k 4 .4 2 = ! = - ] . + # [ % @ + & + . [ . & + @ + # . . . . ) > % . # + _ ) * # ", " $ ~ . + . @ . # # @ ' , x | | x , ' , , % : % , , ' m m , | l o < . H . # 4 N a - / / / / E Q Q / / / / I I k I k .k k k A k k k a a a V A r = 6 F p 6 + . @ O @ . [ + . + + . . . + . % . @ @ + % > _ . . @ * ) $ . ", " c * @ . # . . . . m j ' , ].v | o x ,.j [ +.< , ' S , j | o 9 < + + < % h a J r / ] / Q / @.0 k @./ P / / 2 k k k .k A k y k k V a y A k V 4 r ! M v = *.@ # . . + . @ . . + . @ @ + . + % + . @ _ ) $ _ % * $ {.* + ", " $ 1 # % + % + . # m , m ' ' s x 9 | o 9 o 9 o v K v | 9 o K |.. @ . + + ] d u .! / 0 Q 4 Q E 0 E Q 5 / i / i r k k k k a k k k k a y a y 4 r %./ #.v 6 ] . . . . @ + . + # . . @ + % @ + @ + & + . { ) > > ) { > % . ", " ~ $ . + @ [ @ + & @ ' u , ' ' ' , x j j [ +.^.| | v | l x , R & # + @ . - L J y = / / E 0 @.E E E 0 / 5 2 2 / k k A k a 4 k a a a a a a A y 4 2 = -.-.2 - & @ + + % @ + + @ @ + + + @ . @ % $ % @ < + f % 8 > _ & + @ ", " B * @ + . + + + @ @ m @ m @ H @ m @ @ @ % t % @ m @ m @ A @ @ . + . + # - p , ./ / 0 E 0 E E E ~.E / 5 5 / 2 4 .k a a .4 k A a y a g a a r 4 2 $ U = - d . @ @ . + f ) % . & $ f # . + > > * . + . . @ > ) . + + . ", " $ $ + . @ + . + @ . . p . # + . . + . . F : % + # + . @ + + @ + % + + + - + N g ! 4 Q 0 E b # E E 0 Q / 5 5 / 4 k k k k k a a y a ' a ' V A V 4 = > ) 2 = d . % @ @ & > 8 f . % > > @ + # { U f + . [ . + ) { # . @ % ", " B $ % . . . # . + @ + . + + . # + . @ + % : p + @ # . @ @ @ z @ + @ + 4 ! L u n ] 4 0 E 0 b b E E E / / 2 5 5 / 2 4 4 a k a a a y a g ' a y 4 2 2 { > ! '.% & * _ _ $ > > ) . _ 8 > + & # 8 { ) . + # + @ ) ) @ @ . % ", " $ { # % + @ + + + . + % @ . . [ . @ . + % 8 } $ 0 >.f ) ) ) > 8 ) { $ _ d D , n / / 0 C b b E E E E 0 / 5 5 5 / i 4 k 4 a a y a ' ' y ' y A r 4 = > ) > { ) > ) > ) > { > 8 @ f > ) & . + ) > { $ $ > > $ { > . # . # ", " ~ * @ . % + . & + @ . @ + % . . + . + % % 8 > ) >.7 d ) { > ) ) { ) > > > ) ' u = 0 0 # # b E E E b E Q / 6 / ] / k 4 .A a a ' y ' ' a a A r 2 h { {.> _ _ * $ $ & f f U ) @ 8 8 > _ . & ) { > > > 8 ) f {.{ & & . @ ", " { $ . @ . # @ + + # + . . # # + @ . @ . % } f _ # k . @ @ # . + @ % * _ d _ , n / 4 0 b b b b E b b # 0 / / 2 6 / r 4 .a V y a ' g a g V y 4 r = > ) ! 6 *.+ * * + . # ) 8 . > U > $ + $ { f > 8 ) & @ . * > _ + + + ", " * B ~ $ * & & + . . @ % @ . . % + . % + + . p : p . . @ & + . # @ . # . # d - d , J ] 4 0 b # 3 b C C b b 0 4 Q ] = ! 2 4 r A a V a V a y A a 4 r / 6 { > - ! *.. 8.$ @ + + > > _ ) % > ) . > ) . $ ) > * + + & > & & . + ", " 0 7 7 9.7 7 4 0 0 0 + . & + . + @ + @ + . . @ + + + 0 E.F . + . + . + . . + + @ + + - F N g / ] 0 C b b C 3 b 3 b b 0 0 4 / 2 ] / r V 4 y A a V a V .4 r ] 2 > ) 6 = # . * $ . @ . f > 8 > * f > 8 > 8 @ _ ) > & . . % ) _ . . + ", " 7 7 w >.7 7 7 7 7 7 i . # . % + . . & + + + [ . $ p 7 >.8 > U > * + % . @ & . @ % @ - }., N ] ] 0 0 # b b 3 3 3 3 3 C 0 4 / / 2 %./ 4 r k V A V a V A r 4 2 = U 4.- - + [ 1 M + + @ * ) ) 8 . % 8 U ) * + + > 8 f # + & > _ . . @ ", " 4 k d . + @ < @ + [ . @ % . # & 8 f >.Q > ) 8 > > @ + . . # . + + . = ! y r = / / k E E 3 b 3 b 3 b 3 b # 0 4 Q 4 4 4 4 V 4 y 4 r .4 r = 5 - #.v 6 h . + $ 1 + . @ % { > $ + . 8 > { + . H > > . [ . _ > & . + . ", " & . & . . @ . + + + . @ + & + & > * m @ @ . # > { . # . @ + . . @ & 0 - ] 6 = ] / / Q b b 3 3 3 3 3 b # C # # 0 0 4 4 0 4 V 4 4 r 4 2 ] = = = M v - d @ z 8.* < # . + * > + + . f $ & @ # . + @ . + + % > _ . @ . ", " * ~ * ~ { * ~ $ $ * ~ & . . + @ . + . @ . # . & > % + + . # @ ) > # . . # < + . . # + - - ! = ! / / E C b 3 3 b 3 3 b b # E C # C C # E 0 4 / = 2 ] = 2 = 5 ! #.9 - @ . + ~ * . . # # @ + @ < + + @ + + % . + + # % + _ > * + # . ", " 8 1 $ c $ { * ~ { c $ * + @ + . [ + @ + @ . . _ > * @ . . + @ > ) . # + . + @ + . . . / - = 2 = ! / 0 b b b 3 3 3 3 s [ E # C # # C [ C C 0 4 / = 5 ] - ] - - 0 [ / . @ % $ * # . % . . + . + + . @ + . + # & . @ % H * U $ @ + . ", " 1 ~ 1 & * . . + % . @ . . @ . + . + % > ) @ + + + . { > # . % . + . + # % @ + - ! - ] 6 ] 4 # b 3 b 3 b 3 b b # # C [ b 3 3 b # 0 ] ! 6 - - = - ] 6 ] - + + . + W $ . . # H + + + [ . @ + + H + & + # . . # _ ) _ . + + ", " ~ $ $ @ + [ @ @ + . + + + + . + % @ . 8 ) # . . + % ) { # + . . < . @ + . + . h 2 ! = = - ] Q # [ b 3 3 b 3 # C [ C b 3 b 3 b C 4 4 = ] = 6 ] - 2 - 2 ] . [ @ @ 1 $ @ + . . @ . @ . + + & + @ @ % + . + . @ * ) * + @ . ", " { * $ . & + % . [ + @ + @ % # @ + . # > > @ . @ @ _ > & . + @ + + + @ . + # + + = - 5 = ] = / 4 0 b # b # C 0 # C b < s b [ C 0 0 ] - ! - = - ! ! ] - + . @ + & * * @ . [ + + + . + . # z % + . @ + & # . + & > * < + % ", " ~ 1 . + @ . + @ . % @ + & @ + < + # { ) . + . @ _ ) * + . # + @ & @ + & . # [ h ! ! - 2 - ] / 4 0 0 # 0 Q / 0 0 C [ b # b # 0 4 / = - = = 6 = - 5 h @ % # @ % * $ % @ + @ . @ @ + + % @ + . < + . + # % + _ > _ < + + ", " c $ $ + # . . . + @ + . @ + @ . % @ . ) ) # . . . $ ) & @ < + . . % % @ # . @ . . h = - ! - - = ] / ] / ] ] 4 ] # C # C [ C 0 0 ] = ! - ] - ] ! - h . # . . + + & 1 @ + . # . p + + . + . % @ < . % @ . @ # * > % . @ @ ", " * c $ . . + # . 5.5.+ + + [ ^.[ @ + # > 8 + < + @ * 8 f @ @ + @ . # + . . + . [ + + ] ! %.5 = - = / - = - = / 4 0 ~.# E # C 0 4 / - 5 - 5 - = - h @ % . + . 8.& $ $ $ * & @ + % . @ [ + + . + + . . # + . . % > % % + + ", " ~ { * # % @ . . Z /.z . [ [ j.^.[ . . 8 > @ + # @ $ ) _ . . + . + . + @ + @ + . + + @ ! - ] - ] - ] ! - 5 = ] 4 0 # # 1.# 0 0 / ] h - ! = = 6 h . + . @ + . $ * 1 * M * & . G @ + . + . + @ . @ . . + + + H _ > _ @ . @ ", " $ 1 ~ + + @ + *.5.5./.+ [ [ b B.b + @ $ ) _ < + . * > & @ . & # % + @ & # + @ . + . + G 4 = - - * $ _ = - = 5 h 0 E # E 0 0 4 = F ~ * - ! - 0 . < . # . . + ~ & + . & $ & % . @ . + @ . . % & & % & . % . + & ) * . p + ", " 1 $ { @ . + % . 5./.5.. @ B.^.1.[ % + $ 8 _ @ + @ $ ) f . # + . . + # . % . + % @ . # % @ + = 6 ~ * $ = ] = - / / 4 0 4 0 / / 5 _ ~ ~ d - + . + # . & . . @ $ & . . & * $ 1 $ $ $ $ $ * $ * $ * $ * ~ * M * ~ > * + # + ", " 1 $ c @ + . + . + + + @ . + [ < @ + < * > * # . . ) > * + + . @ # . . @ + @ . . + . . . + @ . ] { * c 6 ] 6 ! ! ] ] ! / = ] - ! L c ~ Z @ [ . < + + # & + % 1 & & & W $ * . * . & & & % & & & & & . & & * % $ > & . + . ", " $ ~ 1 < + + . # < . + + . . . + . . + % ) > > > 8 ) 8 + . < . + % . + < % + . # . @ # . @ + % . * $ $ - - = = = 6 = ] = ! - = = d ~ { & + . @ + . # . # + & * $ * $ * $ & + @ . + . + + . . . + . % . @ d . _ > * @ % @ ", " { ~ c . . # . . + . + % @ + . # + + . & $ ) { ) ) > $ + . + @ . % + . . [ . + + . % @ . + @ + + 1 { 1 % A ] ] - ! 6 - ] = 4 d + W { 1 . + @ . # & + . + + & 1 & * $ 1 . <.. # . + @ . . # # G @ @ . . . @ . % ) * + . + ", " c $ $ % . . @ + + # + @ + + & + # # . + + @ # > $ z H . + @ . . # < @ . + @ d . # . & @ + & + @ $ $ $ _ + @ . . H G @ [ . @ + . % $ ~ _ . + . + + # < . + @ + @ . $ & + + @ + + . + + @ . + + . + + + # % . * ) & @ . + ", " * 1 $ @ . + @ & @ + & + @ + @ . . < . @ + + @ { ) @ + @ . . @ % + . . + . + # @ + + + . + . @ . % B $ * + @ + % + . . + + . % + Y $ { W @ % . < . + @ & + # . + & * & @ . @ & . < + . . % + + . . @ . . . # $ ) * @ + . ", " ; ; ; ; ; ; $ { 1 e * * & % + . + @ + @ . . # @ + + + . . @ + ) > @ . + # . # + # # . # . % % _ % k + & % _ Z . . ~ * _ . + @ . @ % @ % . . @ . & * ~ % + + # . . . + @ . # . # & $ . < + + @ + # . # . @ + @ + # @ + # + + * > % . # % ", " ; ; ; ; e ; ; ; * $ $ $ ~ c ~ 1 $ % 0 * G & & _ & O & & & & . & 8 > . W * & & * * ~ ~ { $ 1 c 1 $ + 7 7 $ $ ~ * ~ { * $ 1 . & W % Z W & + & . _ . & 1 1 & & & & & * % . & & * & & * $ * % . * & & * ~ { * $ c $ B $ $ $ $ 1 $ f ) $ . . # ; ; ; ; ", " ; ; T X T Y ; ; $ * $ * ~ $ * $ c 7 7 0 e c $ 1 { 1 { * ~ c $ ~ { { ~ $ * $ $ ~ $ $ c * { ~ f ~ $ % 7 4 $ B $ * ~ * ~ $ ~ { c $ ~ $ * e $ e * ~ $ e * { $ c ~ c * $ c $ $ * $ * $ c ; ~ { * e * $ * 1 * ~ $ c $ * * ~ B ~ * { $ > $ ~ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.=.!.; ; { & 1 $ { $ / w % $ 1 { ~ 1 $ ~ { ~ * { 1 $ $ $ 1 e f c $ 1 $ ~ * { 1 $ * & * & & & . * 1 $ B $ B * $ $ * ~ { 1 * $ e B ~ c $ $ { * * $ * ~ ~ { * ~ $ { e $ $ $ 1 ~ { * ~ B { ~ { * $ ~ $ ~ $ c $ $ $ ~ 1 c $ 1 $ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T X Y ; ; . z @ . @ . % & . & & % & G _ & _ G & % * . * & * . & & . # . @ @ . + *.. . # G @ . + @ # + @ % * . _ & & % W * + % & O & . * & * * W * _ + . * & & & & G Z _ & & . * _ W & + + @ . + @ . # & + . @ . [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % + . # . @ . & + + @ . @ . . + @ + + + @ . + @ @ . . + . . + @ . + + . @ . . . # . Z @ + . @ + @ + + @ O # . . . + + [ . + . @ + @ + . + . @ + . + . + + + # . + % @ # . # . @ + + . + % # @ + . + + @ + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ & d + . % H + . + + + < @ d + + . + H @ . . + + + @ % @ + @ + . @ + % + @ . % % + . @ # % O @ + . % + # @ % + . + . . + [ + + . . # . @ + @ . @ # + % + G @ @ . G . + . # @ + + + + . + % @ @ . @ @ . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame15.xpm0000644000175000017500000004630507343277263012064 /* XPM */ static char * zz15_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q [.P % ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ : ^ ( : } ^ + n n R n n g D ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q f.7 7 ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } : ( ^ ( : ^ : ^ : ^ ' n R n g J n % } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; > $ 0 % > } ^ ..G.} : ( } Q 0 , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ : ^ ^ ^ ( } } ' n g J n R n F ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > } ^ '.7 7.} ( ^ 7 7 &.} ^ &.7 7 t @ j , ' 3 x | v | K 3._.3.b b , ' D : # ( } : ( ( } # , n g N g ' ) > ; ; ; ; ; ", " : ( &.7 7 ( } ( 5 7 t } } [.7 i : : # |.| ` | v | -.l _.3._.3._.3.j.: p , u.: ;. ^ ( > ", " } } &.'.^ ( ^ ^ @ # : D | o x j ' , ' , g ' ' 3 I.3._.0.[ s } : ;. ^ : > > { > ) > ) ) ", " $ 1 ~ , j # t.9 l , , ' , , , , , ' , ' C.3._._.3._. ;.u.} ^ ^ > 8 ) > { 8 { > ", " $ 1 $ , , ' | | +.@ , s , s ' s , , , % q % l i._.a. : t t 5 = 5 = 6 ! 2 ! 5 } : > ) ) ", " * e * . @ + . + # . @ ' S ` o q : @ , ' S , ' , ' @ : t ' j 9 l _.3.. + . + + . + @ @ + @ + d # ^ t t = / / - 5 5 5 = 5 - 5 ! - ..( ^ % + % @ + . @ . [ . . # . + @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . m , ' | 9 # : : # , ' , , p + t : @ , , j x _.3.[ # . # & + # . # % + # @ ] D t : 2 - = ! = ! = 5 2 ! 2 ! 2 t : u.&.+ . . . + + . + @ + . @ + . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . @ # . @ , j | | , # : t # , , N : : t F u ' ' , s K _.[ @ + . # + . @ *.[ . d ] .' ' [ / ! 2 6 / - 5 ! 2 5 = 5 %.t } ( 2 ] *.< # . [ + + + . & . p . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . + + . @ u s 9 <.' , # : t # , @ t : : [._ N , , ' i._.[ + . @ % . % + + # h 5 ! y u J g 2 5 = ! - / - / ! = / 6 ! D : t = - - h @ . @ % . + @ + @ + . . + @ + + . @ . + . + . # + + & ) _ @ . @ . * ) M + ", " $ * . + + < + + @ @ , x 9 x ' ' , # : : @ [ : t : ( F s N ' , i._.[ % . + @ . @ # . h 5 - = a J u N 4 6 / 2 2 ! 2 5 6 ] = / f.D D t 2 ] - ] h + . . . # . + . . . # . @ . . + % @ @ . . % @ . . $ > f . + . [ * ) _ @ ", " $ ~ @ & @ @ + + . @ ' 3 i.s , , , , # : q F D : ( p ' , , , g -._.[ . # . + + + . / - 5 ] - / r ' .] 6 ] 6 ! 2 5 2 / 6 / = / / ..] 2 = = - = / . [ @ . # @ # & @ & . @ + . . + < + [ . . % @ @ ) ) % . # % . _ > * @ ", " $ $ + + . + @ . + @ R 3 _.b s , ' , , @ D : ;.t F ' , j S , g i.(.[ + . < . @ . ../ - / - ] / / ! / = / 6 / 2 / 2 2 / 2 / 2 ] / 2 / r 5 = = = 5 h + . . G . [ + @ . @ & + [ + + + + . . . # + @ { { @ . . . [ _ ) f + ", " c { $ @ & + + + . # @ , 3 (.C , ' s [ d D : : D D % # [ ' j ' ' i._.. # . @ % + ..2 - ] 6 ] / - / 5 6 ] 2 / 2 / r / r 4 r 4 4 / 2 / = / = / ! ! = = d @ + @ p . . + + . + # . . @ + + @ + + % @ + ) > + @ # . @ * > _ @ ", " ~ * e + . + @ . . # m , b 3.b , , D : : : t q q : q q : % , ' S _.3.+ @ % . + @ ! = ! = 5 = 5 / 5 ] / / 6 4 .k .a y a a y a y 4 4 / r / = 2 = ! - ! . + . . + + # [ + % . # + . & + & @ @ # . @ ) 8 _ + @ + + & ) & + ", " * $ B . + + @ + . . @ ' z.3.I.' ' C # p @ [ q + # # % # ' , , ' 3._.% . + + . h 6 ] - / ! / ] / 2 ] 2 / 2 k .a n.a n.a y a a a y k r / 2 / 5 = = - = ] & # . @ . + + . + + < . + . + + # . . . # & > & . @ . + % > f + ", " $ 1 { + < . @ & @ + m , s _.3., , , ' , ' % : [ , ' , , , ' , ' 3._.+ . @ @ d ] = ! 2 - / 5 ] 5 / 5 / 2 k y a y a y a a a y ' a a a a 4 r 2 = / ! 2 - 6 + + <.. + . # . @ + . + # . @ % . . + # . p > 8 @ % + . +.> _ + ", " * ~ * @ + + . # + . @ ' , ^._.0.s ' ' ' , [ : p , ' j m , j , _.3.^.+ . % + # W h - 5 ] ] 5 / / ! 2 / 2 4 .a y a n.a y g.' a g a y a y 4 / 2 = - ] - - ] . + # [ % @ + & + . [ . & + @ + # . . . . ) > % . # + _ ) * # ", " $ ~ . % . & . # + @ ' , j 3._._.s ' , , + t % ' , , ' m , I.3._.< @ G @ + k J A - 2 / = / / / / / / / 2 k .k y a g a a y a a a ' a a A r h 2 = - l p 2 + . @ O @ . [ + . + + . . . + . % . @ @ + % > _ . . @ * ) $ . ", " c * @ . # . . . . @ , ' , x O.3._._.0.b B.+.< , ' S b b ^._.3.[ + . + % h y N V 5 = ] / / / 0 4 / / 5 / 2 4 k y a a a g ' a g a g a g A r 4 = 2 ! 9 q.= *.@ # . . + . @ . . + . @ @ + . + % + . @ _ ) $ _ % * $ {.* + ", " $ 1 # + + [ + . @ @ ' S ' ' s 3 ^.3._._.3._._.3._._._._.3._.A.. @ . @ + ] h N y ! ! ] ] Q / 0 E 0 / / = / 2 4 y a n a a ' a a a a y ' a r 4 = %.! K -.6 ] . . . . @ + . + @ . . @ + % @ + @ + & + . { ) > > ) { > % . ", " ~ $ + + < + # + . @ , u , ' ' ' , ].j s 1.X.3._.0.3.^.l j , ' < + + . # - _ J .= / / / 0 E C b b 0 / 5 = / 2 k a a y a g a n ' ' ' n.' k r / 2 = v o 6 - & @ + + % @ + + # @ + + + @ . @ % $ % @ < + f % 8 > _ & + @ ", " B * @ + & . + % # @ @ @ m @ H @ m . @ H d : + @ m @ m @ m m @ . + . + + 6 F u y 6 ] / 0 0 C b C b b 4 / 6 ] 2 4 y a ' a a a a y a g ' g A r 4 = 2 l v = - d . @ @ . + f ) % . & $ f # . + > > * . + . . @ > ) . + + . ", " $ $ . @ . # . . @ . . d @ + + . . + . + p } % + # + @ + + + @ + [ + . d = d R k = ] / 4 E 3 b 3 C E 0 5 ! 2 / 4 k y a y ' y ' ' N ' g a y 4 2 ] 2 -.9 = 2 d . % @ @ & > 8 f . % > > @ + # { U f + . [ . + ) { # . @ % ", " B $ + . + . # + + @ + . + + . # # . . + % q p # @ # . @ @ . @ . + @ + 4 ! 4 J k = / / 0 # 3 b b b C 4 / ! - 5 2 4 r a g.a ' y ' y ' ' ' a r / 2 = ` o ! '.% & * _ _ $ > > ) . _ 8 > + & # 8 { ) . + # + @ ) ) @ @ . % ", " $ { # % + . # . + . + % @ . . % . @ . + % ) 0 m.# ) > ) ) > ) 8 8 < m a A a J 4 6 ] / 0 b b 3 b C b 0 4 5 6 5 2 / 4 k A g a N ' g N g ' V 4 r = = -.v ) > 8 > ) > ) > { > 8 @ f > ) & . + ) > { $ $ > > $ { > . # . # ", " ~ * . @ . + + . + @ . @ + % @ + . & + + % 8 # m.# { > {.{ > ) ) $ J u J J N J A = ] / 0 C 3 b b 3 b C 0 ] ! ] ] = / r 4 a y ' g ' ' g a A r ] 2 ] 4.9 { f _ * ~ { & f f U ) @ 8 8 > _ . & ) { > > > 8 ) f {.{ & & . @ ", " { $ . @ + + @ + % # + . . + # . @ # . . % } f + . # . + @ @ # . . _ . A 4 a J k 2 ] 4 0 C 3 b z.3 b b 0 4 5 2 = / 2 4 r a V a a g ' y a r r / = = M v ! 6 h + $ ~ + . # ) { + > U > $ + $ { f > 8 ) & @ . * > _ + + + ", " * B ~ $ * & & + . + @ . < + @ % + . % . # + a m.# . . @ & # . . # . # # @ d - ., y ] ] Q 0 C 3 3 3 3 3 b # 4 ] / ] - = 2 / r 4 y A y a y A r / 2 ] 2 M ` = ! *.G > ~ @ + + ) > _ > % > ) . > ) . $ ) > * + + & > & & . + ", " $ ~ 0 7 i 0 4 + $ 1 $ . . . + % @ . @ + + . . + + % m.m.# . + @ + . + + . . + & + . - y N .] ] 4 0 C 3 b ,.3 3 ,.b C 0 4 / ] ] = / r r r 4 4 V r 4 2 h 2 ] 6 4.v - - # @ ~ { . @ . $ > 8 ) * f > 8 > 8 @ _ ) > & . . % ) _ . . + ", " $ * 0 7 7 7 7 + ~ e * & # . + + + z % . + + [ . $ ) $ % f > { > * + & @ + @ . @ % . - h J k - = ] 0 E b 3 3 3 3 3 3 3 C # 4 0 2 ] = h / / r r 4 r r 4 2 ] 2 = #.v - - . p ~ $.+ + @ * ) ) { + % { {.> * + + > 8 f # + & > _ . . @ ", " . . % . . @ < @ . < . @ % @ + & 8 > 8 > > ) ) > > @ + . . # . + # + ] ! 4 = = / / / # C 3 3 K 3 3 3 3 3 b C 0 0 A 4 4 4 r ] 4 r ] r = 2 = 5 ] -.9 6 h . + ~ $ + . @ % { > $ + . 8 > 8 + . H > > . [ . _ > & . + . ", " & O & + . @ + + + + . . + . + & > * @ m @ . # > { @ + . @ + . @ & @ d - 2 ! - = = / 0 b 3 3 3 3 K 3 3 3 3 3 s b C C 0 0 4 A / 2 ] 2 ] ! = = 4 v q.- h @ . ~ ~ & # . + * ) . + . f $ & @ # . + @ . + + % > _ . @ . ", " * ~ * ~ { * ~ $ $ $ 1 * & . . @ + # . @ @ [ . & > % + + . # @ ) > # . @ . [ + . . + + - - ! = ! 5 / Q C 3 3 l 3 3 3 ,.3 b 3 b 3 3 b s b C 0 h ] 2 ! = 2 = ! / M $ 6 . . + ~ { @ + @ # @ + @ < + + @ . + % . + + # % + _ > * + # . ", " 8 1 $ c $ $ c ~ * { ~ & + . % @ % + @ + . . . * > * @ + . + . > ) . + # . . @ . . . . / - = 2 = ! ] 4 E b 3 3 ,.l 3 3 3 3 3 3 3 3 3 3 3 3 E 4 ] 2 = ! = ! - - = ] ] @ @ % { ~ + . % . . + . + + . # + . + # & . @ % H * U $ @ + . ", " 1 e 1 & O & + . [ . . . . @ . + @ + % ) { @ + + # . { > # . % . + + # + p @ + - ! - = 6 / ] 0 C b 3 3 3 3 3 3 3 b 3 3 3 3 3 b s # / ! 6 ! - 2 - ] 6 ! = + % . + ~ ~ . @ + @ + + + [ . @ + + H + & + # . . # _ ) _ . + + ", " ~ $ $ @ . # # . d @ + + + # . + + . . ) ) @ . . + % ) { # + + @ & . @ # . + . h 2 ! - = - ] / 0 # b b 3 3 b 3 3 3 3 3 3 3 3 b [ 4 4 ] = = - ] - 6 = - ] . [ @ . ~ > @ + G . @ . @ . + + & + @ @ % + . + . @ * ) * + @ . ", " { * $ . % + & . # + . # . % % @ % + @ > ) @ . @ . % ) * . . . + + + . . # + + . - = 5 = = - ] / 4 0 C C b C # C b b 3 b C [ 0 0 / ] - 5 - = - ] ! / - + . @ + < $ ~ . @ % + # + . . . # z % + . @ + & # . + & > * < + % ", " ~ 1 + . @ . + . @ % @ + @ @ + @ + # { ) . + @ . * ) & + @ + # @ . # & @ . [ # d ! - ] 2 - ] = / d ] 0 4 Q 4 0 # C 0 # E 4 0 h 2 ] - - = = 6 = - 5 h @ + [ . + e U + # + @ . @ # + + % @ + . < + . + # % + _ > _ < + + ", " c $ $ + # . @ . % . + . . # @ . % @ . ) ) + + . . +.> * # < . . . % % @ + . @ . . h - - ! = 6 = = / - ] ! ] / ] 4 0 4 0 4 4 4 / ] = ] - ! = ! - = h . # . + . + M e @ . + . & + + + . + . % @ < . % @ . @ # * > % . @ @ ", " 1 c $ + . + + . 5.5.*.+ + j.0.^.< + # > { + < + @ * 8 f @ @ % @ . # + . . + . [ + . ] ! = ! ! - = ] 6 = - = = h / 4 h Q 4 Q ] / ] - 6 ! 6 ! = - ] @ % . + < ~ $ ~ { ~ $ & @ + % . @ [ + + . + + . . # + . . % > % % + + ", " $ { * [ + @ @ 5.5.`.5.. [ 0.0.0.^.. z ) U @ + # . $ ) _ @ . + . + . # . # + @ + + + @ ] - = - ] ! ] - ! 2 ! = / / ] 4 / ] 4 4 5 ] ] ] - = = 5 h . . . @ . + ~ e $ $.e $ * . . @ % . + . + @ . @ . . + + + H _ > _ @ . @ ", " * 1 ~ . + . + 5.y.J./.*.[ 0.^.0.0.+ @ $ ) _ < + @ * > & . . < + & # . < + . @ . + . % H 4 = - 6 * $ _ = - = ! = h / 0 4 ] / ] = F ~ * - ! - 4 . % @ + . . + $.* + @ * ~ $ % . @ . + @ . . % & & _ & . % . + & ) * . p + ", " ~ * { @ @ . [ 5./.y.5.. @ 0.3.0.j.+ + * ) _ @ + @ { ) f @ + + + . + # . + % + + @ + . + . + = 2 $ * $ = ] 6 = / 2 ] ] / ] / 2 6 f B ~ d ! + . @ + @ . + . . ~ * & . & $.~ ~ e $ e U e $ U e $ ; ~ $.{ ~ ~ $ ; > & + + + ", " ~ { * + + . + . + 5.. < . . [ [ @ + < * > * @ . *.> ) * + + . @ # . . @ + @ . . + . # . + @ . ] { * c 6 = ! ! ! ] / - ] - ] ! - d { ~ Z @ [ + < + % [ . % & $ 1 & * * { $ & * W * & * * * W * & & * & & $ * $ > * . # . ", " $ ~ 1 < + + . # @ . d + + @ . . + . + % ) > > > ) 8 { + . @ . + % . + < % & . # . @ . @ @ + % . * $ $ - - - = - 6 = ! = - - - = d ~ c * + . . . . # . # + * $.e U e $.e M + & @ + & + % # . & + . % . . d . & ) & . % @ ", " c ~ c . . # . . % . . [ . + @ + @ + . & $ ) { ) > ) $ + . + @ . + % . . # . + % + + < . + @ + + B $ ~ % A ] h - ! 6 2 ! h 4 + + 1 $ * G + @ # [ . + . + + & $ * $ ~ $ W . @ + . + @ . . # + H . @ . . @ @ . _ > & + . + ", " * $ $ % . . # + . # + . + % + + [ + . + + # # > U z H . + @ . . [ @ @ + + @ + . # & . + + & + @ $ { * _ % @ . . G . < @ & # + @ _ ~ ~ _ . + . + + # < . + @ . @ . { & + . # + # . + # . . + + . . + + + % + * ) & . @ + ", " { 1 $ # G + @ < . + < + @ # . . # < . @ + + H 8 ) @ + @ . . @ % + . . . + + # . # + + @ . . @ @ _ 1 $ . + @ . % + . . + + . % + . { $ W @ [ . & . + @ & + # . % & e * @ @ . & . # . . . [ + . # . @ . . # @ $ ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % % O # + . # . . . @ @ . + + . @ . # { > @ . % + @ . + # @ . # . % % + + & * & % _ Z . . ~ c _ . + @ @ @ + . # . . . . & 1 $ _ + + + @ . + . @ + # @ + & U & . + . @ + + @ + . @ d . + # @ + # + + * > _ # . [ ", " ; ; ; ; e ; ; ; * $ $ * ~ { 1 ~ * $ $ + a % & _ . * & G & % & & ) { & G & & & _ 1 $ $ c $ B 1 $ i 7 % * $ $ 1 $ ~ * ~ $ * . & & % * & * + & & Z & & 1 1 . & & & * & % . & & & * & $ ~ $ % & * & & * $ $ c $ * $ e $ $ ~ $ 1 $ f > $ . + # ; ; ; ; ", " ; ; T X T Y ; ; * $ $ * ~ * $ * c $ $ w 7 d ~ c $ B $ { 1 c $ 1 { > $ 1 $ _ ~ ~ $ ~ { $ $ $ $ $ I 7 + e $ B $ * ~ $ B $ ~ e c $ ~ * ~ { ~ c 1 ~ * e $ $ { 1 $ c * $ c $ $ * { * ~ c ; ~ c $ e * $ 1 e 1 * ~ c * * * ~ c ~ * { $ ) ~ ~ { ~ c $ * e ; ; ; ; ; ", " ; ; X T X T ; ; { & 1 $ { $ c $ 4 7 . $ $ ~ * ~ { ~ * { 1 $ $ $ ~ e 8 $ $ * ~ * 1 * B $ * % # & . & & * 1 * $ 1 $ * $ $ c ~ f 1 1 $ ~ c ~ { * { $ c * ~ * ~ e $ c ~ $ $ { $ $ { 1 ~ B _ ~ e * ~ { $ $ ~ $ ~ $ B $ ~ $ ~ 1 c $ 1 $ * $ $ $ e 1 T X ~ ; ; ", " ; ; T =.X Y ; ; + z . @ . # . & & * . & & & + & _ W & _ O & O & & O & . . # . % @ . + *.. . # . . . + . # . . + * & _ & & & * * _ % & . & & . * & * & * % O . & & G * & G Z % & & & O * & & + + @ . + + . # % + . @ + [ . * * ~ B { ~ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; [ . . # . . . @ + + @ . . . . . @ + + + @ @ + . @ . . + . . + @ . + + @ . @ . . # . + @ % + @ + @ + + @ O # @ . @ Z + + . + . . + @ + . + # . . + + @ + % + + . + % @ + @ + . @ + + . . % + @ + . + . @ + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # + < d & + % H + . + + # & # d + # . + H @ . . + + + @ % @ . # + . . + % + H . % % + . @ @ + O # + . % + # . # + @ + < . + [ + + . . # . @ + @ . . # + + # G @ @ . . . @ + @ @ + + # + @ % # . < @ . # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame16.xpm0000644000175000017500000004630507343277263012065 /* XPM */ static char * zz16_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; ..P D ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; 7 7 f.; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ : ^ ( : } ^ n g n n ' : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; f.5 [.; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ } ^ ( } } ^ ( ^ ^ } } : ( ^ ( : ^ ' n g J J g J g % ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > &.Q } ( } t 7 i ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ } ( ^ } ( ^ ( } } ^ ( ( ^ ^ : } ^ g J n g J g n n p ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > F 7 7 D : ^ ..7 &.( } &.7 7 } : t @ , , s 3 x i._.(.^.v | | x s , ' D : # ( } : ( ( } ' g n ' n J g ' ) > ; ; ; ; ; ", " t P P D ( ^ e.7 P ( ^ } ..t ^ D : : @ |.l N.(.(.a.(.(.a.(.a._.i.^.B.: p , ^ ( ^ ^ ( > ", " ^ } } ( } t ..D @ # ( t i.(.a.a.~.' C ~.M.a.(.(.(.(.(.a.@ , ^ : ( ^ : > > { > ) > ) ) ", " ~ * ~ , j # +.a.(.C , s , , , , ' , S ' k.3.(.M.s ;.^ ^ ^ ^ > 8 ) > { 8 { > ", " { 1 $ , ' , O.(.W.@ , ' j ' s , , , , % : % _.a.(.a. } ( : ! = - = = ! = = ! } ( > ) ) ", " * e * . @ + . + # . m j F.i.a.Y.} @ ' , S , ' , , # : [.' j ^.(.(.R.. + . + + . + @ . + @ % d . % s @ r = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ . [ . . # . + @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , ' (.(.+ : : @ u ' , ' p + D : m , , j 3 _.(.+ @ + @ % # + . @ + . + @ h N J n a - = - = - ! = - 6 = 6 - t ( } &.+ . . . + + . + @ + . @ + . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . @ # . m , , a.(., [ [.: # , , , q t : p , N , , s i.(.+ @ + @ . % @ . @ % @ + ] r N R u y ! = ! = = 6 5 = ] = - %.: ^ ( ] ] *.< # . [ + + + . & . p . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . + + . @ u 3 (.R.' , # : [.# , s : t : q % ' ' , ' I.a.+ . . . [ + + % + . h - - = # ' ' = 5 %.- ! - - ] - - ] 6 ! ^ ( : 2 - - h @ . @ % . + @ + @ + . . + @ + + . @ . + . + . # + + & ) _ @ . @ . * ) M + ", " $ * . % + < + + @ @ , j (.(.' , ' @ : : @ % ( t : ( F j N ' , i.(.. + . . . @ z @ . ] - ] - = l.D }.= ! - = = ! - - 5 - = ! ! } ( '.] = - ] h + . . . # . + . . . # . @ . . + % @ @ . . % @ . . $ > f . + . [ * ) _ @ ", " $ ~ @ . @ @ + + . @ , 3 a.0., , , , # : q p } : ( p ' , , j g i.(.+ @ # % . % + . h 6 ] - = = - - 6 ] = ] - ! = 5 = = - = = ! ] }.! 6 = = - = / . [ @ . # @ # & @ & . @ + . . + < + [ . . % @ @ ) ) % . # % . _ > * @ ", " $ $ + + . + @ . + # R 3 V.b ' , ' u , @ D ' n t p ' ' , S , g i.(.B.+ @ + @ z < ] 5 - = ! = 5 = ! - = = 2 ] 2 ] 2 ] 2 / 2 = ] = 2 - %.5 = = = 5 h + . . G . [ + @ . @ & + [ + + + + . . . # + @ { { @ . . . [ _ ) f + ", " c { $ @ & + + + . @ @ , b (.b ' , @ W W _ $ , R ~ ~ ~ ~ H j ' ' | (.[ + & @ % + d - = = ! = - - ! - ! = = ] / r 4 V a V 4 r 4 r / ] = - = - ! ! = = d @ + @ p . . + + . + # . . @ + + @ + + % @ + ) > + @ # . @ * > _ @ ", " ~ * e + + . @ . + # @ , b (.b , , f ~ ~ ~ W @ ~ ~ $ ~ $ & , ' H l a.0.@ + . + . ! = ! 2 - = ! = 6 - ] = / r a g ' g ' g N g a y V 4 2 ] / - 6 = ! - ! . + . . + + # [ + % . # + . & + & @ @ # . @ ) 8 _ + @ + + & ) & + ", " * $ B . + % # . . . m ' ~.(.^.' N # # p < R n ' # # % # ' , , s _.(.B.. + + . 4 - = - = ! - - ! = = = / r ' g N u J u u , J u ' g a r 2 ] - 5 = - = - h % # . @ G + + + + + < . + . + + # . . . # & > & . @ . + % > f + ", " $ 1 { . @ . @ & @ + m , C (.i., , , ' ' ' , J ' , ' , , , N ~.M.a.(.% . < @ d ] ] - ] - ] 6 ] 6 ! 6 ] 2 a g , n , J , J u R u J u ' a r h = = ! - / - 6 + . <.+ + . @ . # . . + # . @ % . . + # . p > 8 @ % + . +.> _ + ", " * ~ * @ + + . # + . @ ' , (.a.s , ' ' , j ' J ' , m j ' m j (.a.^.| + . + . % > L = 6 = = ! - ! = = 2 = a g N , u n u , u J , u R u g a r 5 - = ! = - - ] . + # [ % @ + & + . [ . & + @ + # . . . . ) > % . # + _ ) * # ", " $ ~ . + . < . + # @ ' , ~.(._.6.j ' , g , n , ' , , ' S C (.O.| < @ . @ + ..> L ! = - = = 2 ! 2 ] ] 2 r A g g ' R u J ' J N J u J u ' r 4 = - = - p F 6 + . @ O @ . [ + . + + . . . + . % . @ @ + % > _ . . @ * ) $ . ", " c * @ + + . . @ . @ , ' , 0.a.(.(.(.b b A.n , , ' S ' 3 0.(.^.< . + & + d d > L 6 = ! ] 5 4 / 4 / 5 ] / r 4 ' n u R u u , J , u R u n a r ] - = ! | -.= A @ + . . + . @ . . + . @ @ + . + % + . @ _ ) $ _ % * $ {.* + ", " $ 1 @ % # % + . . @ , ' ' ' b b a.(.(.a.6.n 6.(.(.(.a.(.a.(.|.. @ . # + ] L ) F ! - = ! ] 4 [ C # 4 ! = = / r ' , n u R u u n u R u , g 4 2 = = 5 l v - ] . @ . . @ + . + # . . @ + % @ + @ + & + . { ) > > ) { > % . ", " ~ $ + + @ % # + @ # , , , ' ' ' , x s C C J ~.(.a.(.3.0.6., ' . # + . . - p > + = - - / 0 C 3 K 3 C 4 ! = 2 r a g u R N R u , u J u g ' 4 2 ! - = q.v 6 - & @ + + % @ + + @ @ + + + @ . @ % $ % @ < + f % 8 > _ & + @ ", " B * @ + . . + % @ @ @ @ ' @ S @ m @ @ H ' J ' S m @ m @ m @ @ & + . + + 6 L ) d ] 5 = / 0 3 x 9 | b 4 ] ! = 2 A g u u R u J ' J , u J ' y %./ = 6 M v = - d . @ @ . + f ) % . & $ f # . + > > * . + . . @ > ) . + + . ", " $ $ . @ . # . + @ . . d . % + . . . + . m n m + # + @ + . + @ + [ + + # = % > ..- = ! 4 b ,.9 | ].3 0 / - - ] r k g N u R u u J u R u ' y ] = ! 2 4.9 = 2 d . % @ @ & > 8 f . % > > @ + # { U f + . [ . + ) { # . @ % ", " B $ + . + @ + . + @ + . + # . # + @ . + ' J s + @ # . @ @ z @ z # . + 0 - }.> F = 6 ] h b | ].K 9 3 C / = ! 6 = 4 V g ' J ' J , N J u g a r 5 = - 4.v ! &._ & * _ _ $ > > ) . _ 8 > + & # 8 { ) . + # + @ ) ) @ @ . % ", " $ { + % + . # + + . + & @ . . % . @ . + ' n 7 m.R g ' ) ) > ) ) ) { * F % D ) F 6 ! 2 0 C | 9 x 9 3 C 0 5 - / - 4 r a ' g u u R u , J ' V 2 = - 2 4.9 ) > 8 > ) > ) > { > 8 @ f > ) & . + ) > { $ $ > > $ { > . # . # ", " ~ * . @ + + . . # . # . + % @ . + . + % m m.7 7 , J , ) > > 8 ) { ) > { > ) > L = - ! 4 3 ,.| ].9 | 3 4 ] = ] ! = / r V ' g N J ' J u ' a = ! = ] 4.v { f _ * ; > & f f U ) @ 8 8 > _ . & ) { > > > 8 ) f {.{ & & . @ ", " { $ . @ . + @ + % + . # . + # + @ . @ . i 7 >.+ . # . # @ @ . + @ % * _ p F > d = = 5 4 b x 9 K | ].3 # 4 5 = = - = ] r 4 y ' g u ' g a r 2 - = - 4.9 ! 6 *.# ; e + . # ) 8 . > U > $ + $ { f > 8 ) & @ . * > _ + + + ", " + 7 k $ * & & + . . @ % @ . @ % + . % . # . k 7 i @ . . . + . # . @ + @ # h - d > p - T.] / b ,.| ].9 9 K # 0 / / h - - ! 2 = r A V y a V 4 = ! ! = 6 M v - - *.. ; ; @ + + > > _ ) % > ) . > ) . $ ) > * + + & > & & . + ", " $ ~ * 1.7 w 1 * $ 1 $ . . + . + . + @ + . + @ + + + # n ' . + @ + . + [ . . + & . + = F ) L 5 - ] 4 # | 9 | K x 9 3 3 0 4 / = ] - ] = / = 4 4 r r 2 5 = ] - 6 4.v - ! # . ; ; . @ . f > 8 > _ $ > 8 > 8 @ _ ) > & . . % ) _ . . + ", " $ $ ~ * + & e $ $ e * & # . [ + @ . % . + + % . $ ' n J n $ > > $ + . . . # . @ % @ - }.) }.] - - h C 3 9 ].| 9 ].| ].3 s E 0 / h 6 ] = 5 = = ] = = ] 6 - ] = M v 6 - + + $.; + + @ * ) ) { + % { {.> * + + > 8 f # + & > _ . . @ ", " . & Z . + @ @ . + < . @ % @ # & ) @ R g , f 8 > { @ + @ . + . d + . = ! - - = = ] 2 # 3 K | ].9 | K 9 | 3 3 C C # 4 0 4 / ] 2 = ! 2 - = ] 6 6 4.` = h @ + ; ; + . @ % { > $ + . 8 ) { + . H > > . [ . _ > & . + . ", " & . & . . @ . + + + . . + . + * > * @ . @ . # > > . . + @ @ . . # < 0 = = 5 - = - ] 0 3 ].K | 9 ].| ].9 9 | K 3 3 b C # 0 4 / ] = - ! - ! = = #.v 6 h . @ ; ; < + @ + * ) . + + $ $ & @ # . + @ . + + % > _ . @ . ", " * ~ * ~ { * ~ { $ $ ~ * & . + @ + + @ @ . # . & { % + + . + @ ) > # @ . + < + . . . + - - ! 2 ! ! 2 / b x 9 ].l 9 9 9 x 9 ].9 ].| ,.3 ,.3 # / ! 2 ! = 2 = ! 6 M #.- @ . + ; ; m + . # @ + @ < + + @ + + % . + + # % + _ > * + # . ", " 8 1 $ c $ $ * ~ * c $ & + . % @ % + @ + < . @ * > * @ & # . # { ) . % # . % @ . . + & / - T.2 - ! / h 0 b x 9 x K x 9 K | 9 | 9 9 | 9 | ].b 4 ] 2 - ] - ] ! = = ] ] @ . # ; ; + @ % . . + . + + . @ + . + # & . @ % H * U $ @ + . ", " 1 e 1 & * . + . [ . @ . . @ . + . + % ) { @ + + + . > > # @ + . + . # + + @ + - 5 - = - - / 4 C b 9 9 9 | ].9 ].l ].9 x 9 ,.| 3 b 4 ! ! - - = 6 = 5 ! = + + & + ; ; . . # H + + + [ . @ + + H + & + # . . # _ ) _ . + + ", " ~ $ $ @ + < # . + . + + + + . + % . . ) ) # . . + % ) { + + . @ % . @ + . + . h = 5 = = = ! ! h 0 C 3 3 K 3 | ].| K 9 x K 3 3 C 0 / %./ = - ] - - = 6 ] . # @ @ ; ; @ + . . @ . @ . + + % + @ @ % + . + . @ * ) * + @ . ", " { * $ . & + . . [ + @ + @ % # . + # # > > @ . @ . % { M . + . + + # . . [ + + + = - ! = = - 2 ] / 4 0 C C 3 3 3 3 3 3 3 b # 0 4 h ! - 5 - = - ! 5 ] - + . < + @ ; ; @ . [ + + + . + . # z % + . @ + & # . + & > * < + % ", " ~ 1 + + @ . + @ . % @ + < @ + H + # > 8 . + @ . _ ) * # . # . @ & @ + . @ # & 4 ! ! - 2 ! - = = ] ] h 4 Q 4 0 C E # 0 0 4 / ] 2 = - - = 2 - = - 5 h @ + @ + % e ; + @ + @ . # @ + + & @ + . < + . + # % + _ > _ < + + ", " c $ $ + # . @ . + . + . . # . @ % @ . ) ) + . . . +.{ * # < + @ + + % @ # . @ . % h = ! = - 5 = 2 - - ! ! = / ] ] 4 2 ] = - ] 2 = ] - ! ] - ] - = h . # . % . + M ; @ + . @ & + + + . + . % @ < . % @ . @ # * > % . @ @ ", " 1 c $ . . + + . 5.J.5.+ + 0._.0.< + # > 8 + < + @ * ) f @ @ & . . # + . . + + @ + + = ! = = ! - = / 6 = = - = = = - = 5 = 6 ! = - ! - 6 - ! 2 - ] . % . + < ~ ; ; ; ; ; % @ + % . @ [ + + . + + . . # + . . % > % % + + ", " $ { * [ + @ . 5.H.H.y.z [ _.3._.0.. z ) U @ + # . * ) _ . z + # . & + @ + < + . + [ . 5 ] = - ] ! h.! - 5 = = - ! = - - - = = ! = ] ] ! = = - 4 & @ . @ + . ; ; ; ; ; ; * . G # & . + . + @ . @ . . + + + H _ > _ @ . @ ", " * 1 ~ + + @ + H.y.H.H.5.[ _._._._.+ @ $ ) _ < + @ * > & @ & . % + + @ . # + @ . + . + . 4 - - 6 O $ _ = ! - 5 = = = ] = ! 5 - 2 F ~ * - ! - 0 . + + + . . + ; * + @ * ; $ & . @ + + @ . & + M * $ * & % . + & ) * . p + ", " ~ * { @ . + [ 5.H.y.J.. # 3._.a.0.+ . f 8 * @ + @ > ) f @ + # . . + [ . % . + + @ . @ % . . = 5 ~ * $ = = = - ] 6 ! - - = = ! 6 f 1 ~ ..= + . . [ H @ + . . ; ~ . . M ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; & + + + ", " ~ $ c < + . . . *.Z . < . + [ [ @ + < * > * # . . 8 > * + + . @ # . @ . + @ . . + + . . + @ . ] { * c 6 ! - 5 ! = / - 5 - ] - - L { ~ Z @ % # . + % + & + % ; ~ * * ~ ; ~ $ * * 1 $ * $ * W $ * & & 1 & $ $ $ > * . # . ", " $ ~ 1 @ + + + < @ . + + + @ . . + . + % ) > > > 8 ) 8 + . < . + % . + < % % . # . @ @ @ . + + . * $ $ = - = = - 6 ] - ] - - - ] + $ c & + . @ . . # @ + + M ; ; ; ; ; ; $ . . @ % @ + % + . . % . % . . d . * ) & . % @ ", " { 1 { . . + . . + . + [ . + & # . + . & $ ) { ) ) > $ + . + @ . % + . . # . + + + + & # + @ % + B $ $ % 4 ] h ! - 6 = ! h 4 *.d 1 ~ * W + @ + [ . + . + . & $ ~ $ ; ~ & & @ # . + . @ . @ + H . @ . @ @ G # * ) & + . + ", " c $ $ % @ . # + + # . . + # . + [ # + + + @ # > $ z H . + @ . . # & @ . + @ + . @ % G # . + + @ $ c ~ _ + @ . . G @ @ @ & # + @ _ $ 1 _ . # . + + # < . + . . # . ; $ . + @ + + @ + + @ + # + . + + + + % + * ) & . @ + ", " * 1 $ # G + @ < . + < + . # . + . < . @ + + @ { ) @ # . . . @ [ + . . . + % # . # + + . & . @ . % 1 $ & + + . + % . . + + . % + 1 $ { W @ % . < . . # & # # . + & ; * @ . @ & . @ + . G % + . . . @ . . @ @ $ ) & . + . ", " ; ; ; ; ; ; $ { ~ B $ 1 % _ . + # . # . @ . @ @ . + + . . @ + ) > . . + # . + . # # . # @ + % _ & * & & % _ . . . e _ * . # @ & @ + . [ . . @ z & * ~ % + + + . + . . @ + + < + * ; & < + + . + + @ + # @ d . # + @ # # + + * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ * $ ~ * ~ B $ $ $ * W # Q _ . * & . & & & & 8 { & W & & & * * $ ~ { * d * * $ $ e * $ $ * $ ~ $ 1 $ * . * . & _ W * + & . _ & & 1 1 & & & & * % % . & & O & & $ ; $ % . & & & * { 1 { * $ $ 1 $ { $ ~ * $ f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; * $ $ c ~ ~ * $ c * $ c 1 7 7 # c ~ $ c ~ c $ 1 > { ~ * $ _ ~ ~ $ ~ c $ d 7 7 ~ c $ * e * e ~ c ~ * e $ ~ ~ c $ ~ * $ B $ e B 1 $ B $ { $ B $ * 1 $ c $ $ $ $ $ 1 { ; ~ { e e * $ 1 $ 1 { ~ c * $ c 1 $ B $ c $ ) ~ $ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.=.!.; ; { % 1 $ $ $ c $ { $ 4 7 % ~ * ~ $ ~ * $ 1 $ $ $ ~ e 8 $ $ 1 $ ~ * * 7 i * & * & & & . * 1 $ * ~ * c $ $ c ~ $ ~ * $ ~ * ~ c $ $ { * 1 $ * e ~ c $ 1 $ c e $ $ { 1 ~ * _ e ~ c ~ $ * $ ~ $ ~ $ B $ ~ $ 1 ~ c $ 1 ~ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T X Y ; ; . m + . . @ + & & & & & & * . * _ G * % O & O . & O & . . # . # @ . + + z . # . . + + @ + . . % & & _ & & + 1 * _ % * . & O & . * * & * % * . & & & & & G Z _ & & & * . & & + + @ . + + @ # % + . @ + [ . & * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % . . # . . . . + + @ . @ + . + @ + + + @ & + @ @ + . + . . + @ + . # . @ @ . . @ . + . # + @ + . # + . . + @ @ . + + [ . + . + + @ + . + # . . . + + + % + # + . % @ % . + @ . + + . . % + @ + . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ < d % . [ G + . + + + < @ d + % @ + H @ . . + + . # % @ . @ + + . + % + H . % % + @ . @ + . *.+ @ % + [ @ + + . + . . + [ . + . . # . @ + @ . @ @ + + + G @ @ . . . @ + @ @ + + # + . [ + < . @ . # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame17.xpm0000644000175000017500000004630507343277263012066 /* XPM */ static char * zz17_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u g n n R ' 8 ( } ( ^ : } ( } ^ } ^ : ^ } ^ } ( ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S , ' j , , g J g J g n g D ^ ^ ^ : ( ( ^ } ^ ^ ( ^ ^ : ( ;.( ^ : ^ } ( ^ ^ } % n g J n g n : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q $ % , ' , ' j , , ' ' , s , ' s ' j , ' ' g n n J ' n J ' D } : ^ } ^ } ( } } ^ ( ^ ^ } } ) } ( m n g n R n J # } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; 7 7 ..^ ^ t Q 7.: } ^ p , , V j ' , s R ' ' , ' , , ' ' , , n , g n J g n m ^ } ( ^ ^ ( ^ ( } } ^ ( ( ^ ^ s g J N R n g # ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; Q 7 '.^ } t 7 7.} ^ t 7 7 t ^ } : t @ , , s 3 x | v | 9 v l | x j , g n J n g ( } : ( ( } n R ' ) > ; ; ; ; ; ", " ( } ( ^ ..7 7 : : : Q Q D ( ^ D : : # |.| K o 9 | -.| 9 | | ` v j R n g J ^ ( ^ ^ ( > ", " ^ } } ;.&.t ^ u. @ # ( D | o x j ' , ' S , m , x s n n R N , ^ : ( ^ : > > { > ) > ) ) ", " $ 1 1 , , # t.9 l , , ' , , ' , ' ' R n R n n ' , ;.^ ^ ^ ^ > 8 ) > { 8 { > ", " { ~ $ , ' , l | +.@ j ' j ' , s , , u g n R N | x g ' F ! = - = = ! = = ! } ( > ) ) ", " * B * . @ + . + # . m s S ` o q : @ , ' , , ' , , ' J n g j 9 v | . . + . + + . + @ . + @ % + ' J n m 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ . [ . . # . & @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ $ c + . . + @ . . s , F.9 9 A : : # , ' , ' p # g n , , , , x -.x + # . # & # + . @ + . + . a g n + 2 - = - = - ! = - 6 = 6 - t ( } &.+ . . . + + . + . # . & _ . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # . . @ , j o | , [ : t # , , , : # g ' ' , s , s v | . @ + @ + % @ . # % @ + = 2 p % ;.] ! = - ] = 6 5 = ] = - %.: ^ ( ] ] *.< + @ [ + + + . . . % . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * e + + + . @ + . @ J 3 | x ' , # : t # , s t R N t + ' , ' ' 9 | + + . . [ . + % . + h ! - = : ^ : - 5 %.- - - ! = ! - ] 6 ! ^ : : 2 - - h @ . . % . . @ + & % . . + @ + + . @ . + . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % # % + + @ @ , j o j , ' , # : q @ @ # J d ( F s u ' , o 9 . + . . . @ *.@ . h ! - - 2 l.F }.= - ! = ] - - ! 6 - = ! ! ^ ( L./ = - ] h + @ + . [ + . & & G # . @ . + . + . m . . % @ . . f > f . + . [ * ) _ @ ", " $ ~ . . . @ + + . @ ' 3 | 3 ' , , , # : q ' g n : p ' , , j g | v . . # % @ + + & ] 2 - ] = - - ! 6 ] = = ! - ] 6 = - = = = - ..}.! 6 = = - = 4 . % @ . # @ . & & * & & & & * & . . + . & & & . > > % & & * & $ > * @ ", " $ $ . # . + @ . # @ , j v j , ' , , , @ t d ' p F s , , S , g o 9 + + . . . # G ] / - = ! = ] = ! - = ] = = / = ] 2 ] 2 / = - = 2 - %.5 = = = 5 h + . . . . % & & & G & * % & . *.. . . . % & . > { & . % . % _ ) F . ", " c { $ . [ . + + . + @ , j o 3 ' , s [ + D : : D t + # [ ' j ' ' | 9 . @ % @ % + d - - = - = - - 6 - ! = - / / 2 4 r 4 r 4 r 4 / 2 ] - ! = - ! ! = = 0 . + @ + + . + + . + + @ . + . . z . + + @ # ) > + @ + . @ * > _ # ", " ~ * e . + . # . . # @ , ,.| x , ' D q : t : c.: : q q : % , ' H o | + @ + . . # = ! = / - ] - ] - ! = / = r 4 y A y a y a V y A r h 2 = / - 6 = ! - 5 . + . . . + # % [ + . @ + @ + + % @ @ # . . ) { % + @ + . & ) M + ", " * $ B . + + @ + . @ m ' j | o ' u # # % # # c.+ # [ % # ' , , g | o % . + + . h ! = - - ! = - 6 = = = ] r 4 y ' g a g ' g ' y ' y A r ] 6 ] 5 = - = - h % # . @ . # + . + % + & + & . + [ . . . m & ) * . @ # + _ > * + ", " $ 1 { + . . @ < . + @ ' ' | | , , , ' ' j + t [ , ' , , ' ' , , v 9 . . < @ d ] = ! = - ! = ! ! - 5 - / r a y ' g ' g a g ' y ' y a V / %.- = - ! = - 2 d . < . + . + . @ + . . # . @ + . . % # + % > { @ % + . +.> % + ", " * ~ * @ + % . + + . @ , , | ` H u ' ' , ' & : p , m j , , j ' x | | + . + + % > d = 6 ] = 5 ] d ] h = r r A ' ' ' ' ' ' g ' ' g ' g a ./ ] 6 ] - - - - ] . + + [ [ @ + < + + # . & + @ + # . @ . . ) > % . + # _ ) _ . ", " $ ~ @ + . @ . # + @ ' , j o | x j ' , ' + t % u , ' m m , 9 l o < . H . # L > L - = - ] h L h d d ] ] r r A A m g ' a g ' y ' n.' g a .2 = = = 6 F p = # . @ . . . + . . + + . . . + . + . . [ + % > _ . @ . * ) $ + ", " c * . . # . . @ . m j ' , ,.9 o | x ,.x < +.< , ' , , j :.o 9 < + # & % h p { F 6 = = h...d d d d d / ] h A A ' ' ' ' ' g ' ' g ' y ' r / - ! = ! 4.9 = + @ + . . # + @ . . + . @ @ + < + % . @ . % ) f _ _ & $ U * + ", " $ 1 # % + % + . [ m , m , ' s ].| | v | o | ` o K o | 9 o K |.. @ . + + ] L ) L ! ! - d d d # # # d ] h h d A A m ' ' ' a g a n ' n.' y k 2 = = 6 4.` 6 ] . @ . . & + . + @ . . @ + % + @ + + . + . { > > > ) 8 > % . ", " ~ $ . + @ % # + . @ s u S ' ' ' ' x j j [ +.l | 9 v | l x , ' . # + @ . - p > % = - = d 0 [ 3 < b # d ] d h h A ' g ' g ' g ' y ' g a y 4 2 ! - = q.| 6 - . @ + + # @ + % # @ + + + @ . @ % #.< @ < + f % { ) * & + @ ", " B * @ + . . + % @ m @ m m @ H @ m @ @ @ % t % @ m @ m @ m m @ . + . + + 6 F 8 p - 5 = ] # [ 3 3 3 [ / ] h.d h A A ' ' ' y ' n ' n ' n a .2 / = 6 4.v = - d . @ . . # $ l 3 . & #.M # . + > v ` . + . . @ > ) . + + . ", " $ $ + @ . # . + @ . . 1.. + + G . + . . F : % + # + . # . + @ % + [ + + = + > d - = ! / [ 3 3 3 3 # 0 / ] d ] + A m ' ' g ' y ' y ' y a V / - ] - #.v = = d . [ @ @ * -.v j.. _ v l @ + . { ` | % @ % . + ) { # . @ % ", " B $ + . . . # . + @ + . # + . # + . . # + E.p + @ # . @ @ @ z @ + . # h 5 L ) F = 5 = / # 3 3 3 3 C 0 = ] ] ..h h A V ' y ' ' g ' n ' y 4 2 / - = 4.9 f.&.% * $ _ _ M -.9 -.. _ 9 o < < 0 M 9 ` < + # # @ ) ) @ @ . % ", " $ { # % + . # + + . + & . @ . [ . @ . + k 7 Q f > ) { ) ) ) > 8 ) { $ F d f ) F 6 - ] / # b 3 3 3 C # 4 ! - ] ] / r 4 a y ' y ' a g a g r = = - 2 4.9 -.| ` | ` o v 9 v | ` @ +.v K 3 . + q.v | v #.v | #.> { . # . # ", " & * . @ + + . . + . + @ + % . . + . + % k 7 0 8 > > > ) > > ) ) 8 ) > > > ) > L = = ! 4 # b 3 b 3 3 E 4 ] - ] ] = / %.4 V a g y ' g ' a 4 = ! - ] 4.v K o K o K | ` l l q.| 3 M -.v l @ * v l 4.| ` 9 -.#.f > & & . @ ", " 7 w . @ . % @ + [ # . + . + # + @ . @ . p '.f * . # . # @ @ *.. @ & * _ .._ ) d = ! - / # b 3 3 3 b # 0 4 6 = - - = 6 r 4 r a a y a y 4 r 2 - = = 4.9 ! - A + ~ { + G [ $ v #.l v | ` . #.K #.> -.9 -.H . * > _ + + + ", " & P >.% * & . + . . @ % @ . @ % + < % + + . % : p @ . @ . + . < # . # + @ h ! d > d = = ! / C < 3 3 3 3 b # 4 ] / ] = - ! 2 = h r r V A r 2 ] ] - ! 6 M v - - *.& ~ $.@ + + 8 v l v l M v l l v @ $ {.v K + # & > & & . + ", " $ ~ * $ _ * 1 * $ $ $ . . + . + . + @ + + . . @ + + p q F . + . + . + + . . + < + + = F ) F - ] = ] # 3 3 3 3 3 3 C # 0 4 / 2 5 6 2 2 2 ] / / r r = 5 - ] = 6 q.v - ! # . e $ . # . $ -.v K < $ -.9 o l . _ U | v + . _ ) _ . . + ", " $ $ $ 1 B $ e $ 1 e * & # . + % @ z & . + # + + $ ) > ) ) > U > * + . . # . . @ % @ - }.) ..- ! - h [ < 3 < 3 3 3 3 b C # 0 k / / 5 2 5 2 = = ] 2 = ] 6 ! = - | v - - . d ; ~ % @ . * l o v . _ 4.` 9 #.+ + > K o # + & > _ . . @ ", " & . Z . + < @ @ + [ . . % . [ & 8 > { { > ) 8 > > @ + . . # . + + . = ! - - = = 2 h # [ 3 l 3 3 3 3 3 b C C E 0 k 4 4 / / ! %.! - = - = 2 ! 6 o K 2 ] @ . $.{ + . @ % v.K #.+ . 8 o 9 [ . @ > U @ [ . _ > & . + . ", " & & & . . @ . + + + . . # . + * > & @ @ @ . # { > . # . @ + . . # & 0 = = 5 = = ! ] 0 < 3 3 3 3 3 3 3 3 3 3 3 C C C 0 E 4 4 5 ] = 5 - ! = = 2 -.o - h @ . e ~ < + # + * 4.. + . f M l @ + @ + & @ + + % > _ . @ . ", " * ~ * ~ { * ~ $ * $ 1 & + . . @ + # . @ . # . & > _ + + . # @ ) > # . . @ < + . . @ + - ! - = ! - ] d [ 3 < l 3 3 b 3 b 3 C 3 3 b b s C C 0 ] / - ] - = - ! - | l - @ + + $.{ . . # . # . # < + . @ . + + . + # . + + f > * + # . ", " 8 1 $ c $ c $ ~ c { ~ * + & + & . % @ + @ . @ * > * @ + . + @ > ) . [ + . & @ + . + . / - = = 6 - / = 0 [ 3 3 3 3 3 s 3 3 3 ,.3 ,.b 3 3 b C 4 ] = 6 ] = ] ! 6 ] ] ] . @ % ~ ~ + . [ . . + . + + . # + . [ . & + @ % H * U $ @ + . ", " 1 ~ ~ & * . + @ % @ @ + . @ . + . + % ) $ @ + + + . > > # . + + + . + # % @ + ! - ! ] - 2 ] 4 0 C b 3 C 3 b 3 b 3 C 3 3 3 C 3 C # / ! 6 ! - 6 = = - ! = # + . + e U . @ + H + + + # . @ + + H + + + < . + @ _ ) _ . + + ", " ~ $ $ . @ % @ . d . + + + + . + % . . ) ) @ . . + % ) { # + . z [ . @ + . + @ h = 5 - = - ! = ] 4 C [ s b 3 s b 3 3 3 C 3 b C 0 4 2 h = - = - 5 = 6 = ] . % @ @ e ~ . + . @ @ . @ . + + . + @ & @ d . + . # * ) * + @ . ", " c $ $ # & + # . [ + . @ # % [ . + + @ > ) @ . @ . % 8 & . . # + . + . . + + + + = = 5 = = - 5 = ] / 4 0 C # C C b C C C # 0 4 Q ] ! - / - ] - - ! ] - + . @ + < e $ @ . % + + + . % . # . % + . < . . # . . & > * < + % ", " ~ 1 . # . . + . @ % @ . . @ # @ + # { ) . + @ . * ) * [ . + # & @ @ % @ . [ # h ! - ] = - ! 2 = ] = / ] Q h 4 0 0 0 0 / ] / = = = - - = = 6 ] - 5 h @ + % @ + > ~ % @ + @ . @ @ + + [ . # . @ + + + [ + + F > _ < + + ", " c $ $ + + @ . . # . + . + @ @ & + @ . ) ) + + . . f > * @ @ [ . + % % @ @ + @ . % h - 6 ] - - = - ! - ] - ] 2 ] = / = = ] = = ] - ] - ! = - ] - = h @ + . [ . + $ ~ . + . # & d + + . + . % . [ & . @ . @ @ * > % . @ @ ", " * c $ + . + . . 5.5.z + + ^.^.^.< + # > { + < + s * 8 f . @ . @ . # @ & . + . @ + % = ! = / ! = = 2 6 = - - = = - = = 5 - 6 ! = = - - 5 ! - 2 - ] . [ . . # ~ e $.e U ~ & @ + % . . # + . @ + @ + . # + . + % > % % + + ", " ~ c $ [ + # . 5.y.J.y.. [ 0.3.0.^.. . 8 U @ + + @ f > % . + + . < < [ @ < # . + . + & ] - = - ] ! h.! ! 6 ] = - ! - = - = = ! 6 ! h ! - = = ! h @ . . . + . $.{ ~ { $.e * . G @ % @ < . + . + . . & + + + H _ > _ @ . @ ", " * ~ 1 . + @ + /.y.w.5./.j.N.i.N.0.+ @ $ ) _ < . . _ > * @ . < + . < < < < + @ . + @ + @ 4 - - 6 * * _ = - - 5 = = = ] - ! 2 - = F ~ * - ! - 4 & + % # . . + $.~ + . * $.$ % . . . [ < < & & M & _ & & & . & & ) * . p + ", " e * $ @ @ . % 5.5.y.w.+ . 0.^.3.j.# + f 8 _ @ + @ $ ) $ # . + + . # < @ [ . + % . + . % . . = 6 ~ $ $ = ] = - ] 6 ! - 2 ! = 5 6 f 1 ~ d - + @ . # G @ + . . { $ @ . & e $.e $.$.~ ; ~ { ~ { ; ~ ; e { $.{ ; ; > & + + + ", " ~ $ c + + # . . *.Z . < . + [ [ @ + < 1 > * # . + > ) * + + . @ # . @ . + . . @ + . @ . + @ . ] { * B 6 ! 6 ! 5 = ] - ! - ] - - L { ~ _ @ % + < + % + & + & e ~ * M $ e $ * * * & W M M * & * & W * & & * & $ > * . # . ", " $ ~ 1 < . + + @ < . + + . @ . . + . + % ) > > > 8 ) { + . [ . + % . + < % # . + . @ + @ @ + % + * $ $ - - = = - 6 = - ] - - - ] + $ * * + @ . . . # @ + # $ ~ ~ ; { ~ ; & % . @ % . % + < . . % . % . . d . * ) & . % @ ", " c ~ c . . + . . + @ + [ . + . # . + . & $ > { ) ) > f . . . @ . + % . . % @ + + . + @ . + @ . + B $ 1 % *.] h ! ! 2 - ] h 4 *.d W e * G + @ # [ . + . + + & $ 1 $ ; $ & G @ + . + @ . . @ + . @ @ . . < @ . _ > & + . + ", " c $ $ % @ . # + . + + @ + % + + [ # + + + # # > $ z H + + @ . . [ . @ @ + . d @ # % G + + % + @ * { $ _ + # . . @ G @ # & # + . % e ~ _ . + . + + # < . + . + @ & e & . + # + # . + # . # + # . . + + + % + & ) & . @ + ", " $ 1 $ # G + @ % @ + & + @ + @ . . < . @ + + H 8 > @ + @ . . @ # + . . + . + # . [ + + @ . . @ . % 1 $ & + @ . % + . . + . . % + O $ * W @ % . [ . . # & # # . + & $.* @ . @ & . . + . G % + . + . @ . @ + @ $ ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % % . + . # + @ . . @ @ + + + . . @ + ) > . . + # . % + # @ . # . % & Z & * & & % _ + . & 1 c * . + @ . @ % # . + . @ . & $ e % + + . . . + . @ . # @ + * U * @ + . . # # . + @ . d . # + @ + # + + * > _ # . [ ", " ; ; ; ; e ; ; ; * $ $ * ~ { 1 ~ * $ $ * G & * % + . & . & & . & 8 { & W & & & * * $ i d $ B * $ { $ ~ B $ $ ~ $ ~ c $ $ * . & & % O W & % & . * . & 1 1 . & & & * & % . & & * & & $ ~ $ % & & & & * $ { * $ * $ B $ * ~ $ 1 $ f > $ . + # ; $.$.; ", " ; ; T X T Y ; ; $ * $ $ ~ * $ * c $ ~ c ~ * $ 4 7 0 $ e * e $ ~ { U 1 $ * { $ ~ $ # 7 7 $ ~ $ $ * { * { $ B $ c ~ $ 1 $ ~ e c $ ~ $ * e * e * ~ * e $ $ { * $ * * $ c $ $ * $ $ c { ; ~ c { B $ $ 1 * 1 $ ~ c $ * $ 1 { 1 $ c { ) ~ ~ { ~ c $ * e x.l v v.; ", " ; ; !.=.=.!.; ; { & 1 $ $ { * $ { $ B $ 0 7 0 1 $ ~ * { 1 $ $ $ e ~ _ $ 1 $ & 4 0 * B $ * & & & . & * . 1 ~ * ~ c * $ $ * ~ 8 ~ * $ ~ c ~ c $ $ { 1 * ~ c ~ e $ B $ $ { 1 $ $ { 1 ~ ~ _ e 1 { ~ { * $ ~ $ ~ $ B $ ~ $ ~ 1 $ $ 1 $ * { $ $ ~ -.v K x.; ; ", " ; ; X T X Y ; ; . z + . @ + . & . & & + # . _ & _ . & _ O & O & * O & & . + @ + @ . + *.. . + H . . + + # . @ % * . _ & & . & * * % & . & O & * & * & & _ + . & & W _ & G Z % & & . * * & & . + @ . + + . # % + . @ + # . * * ~ 1 $ ~ c v.K o K :.; ; ", " ; ; ~ Y Y ; ; [ . . # . . . < + + @ . @ . . . @ + + + @ @ + @ @ + . + . . + @ + . + . @ @ . . # . + @ + + @ + @ + + + . . @ . @ Z + [ . + . + + . + . + + . + . + . + + + + . + % @ @ + + @ . + + . . % # @ + . # . . + + + . # $.9 o ` 8.; ; ", " ; ; ; ; ; ; # @ < d % + % G + . + % + @ + d + # . + H @ . . + + . # % @ . @ % + H + % + @ . % % + . @ . + . . + @ % + + # + + . + . @ + [ . + . @ + @ @ + @ @ . @ + % # G @ @ . . . @ + @ @ + # + + . % + @ % @ . # . . + + ; v.x.8.; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame18.xpm0000644000175000017500000004630507343277263012067 /* XPM */ static char * zz18_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ ( } ( ^ ( ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u n g n J g n 8 ( } ( ^ : } ( } ^ } ^ : ^ % g n n g ; : q q ; ; ", "; q r.5 % ; N , , m , ' , , ' , ' , ' , S ' , j , , ' % D ' R n J g n n R n n m ^ } ^ ^ ( ^ ^ : ( ( ( ^ : ^ } ( & n R n J g n # : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q 5 7 0 ; , ' , ' j , , ' ' , s , ' s ' j ' ' ' S % : F n n R n , n R n g J ' ( } } ^ ( ^ ^ } } $ ' J g n J g ' } ( ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; % Q & > } ^ '.7.D : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , C : D ' n g n n g J N n g % ( ^ ( } } ^ ( ( ^ ^ ~ n u g n J ' t } : ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > ^ } D P P D ( ^ Q 7 5 ^ } ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # ( } : ( ( } n g @ ) > ; ; ; ; ; ", " : ( '.7 7 '.( : ..7 G.} ( ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , # @ p ^ ( > ", " ^ } &.&.^ ^ ( ^ @ # ( D | o x j ' , ' S ' ' ' x 9 | 9 #.S ' n n ' ^ : > > { > ) > ) ) ", " e * ~ , , # t.9 l , , ' , , , ' , s S ' +.o o x , n R n ^ ^ > 8 ) > { 8 { > ", " $ 1 $ , ' , l | +.@ j ' j ' , s , , , % q % 9 o x g n m ! = - = = ! = = ! } ( > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ . + @ % + @ D % } 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . + & $ @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : : # u ' , ' d p D : m , , S | K :.# + @ + < + + @ @ + . + . h ^ : ( = - = - = - ! = - 6 = 6 - t ( } &.+ . . . + + . + @ # . & * . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j o | , [ t : # , , u : t q p , u ' , A.o 9 . @ + . + [ . @ + % @ + = 6 ( } ( / ! = - ] = 6 5 = ] = - %.: ^ ( ] = + @ [ . # + + + . . & $ . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ J 3 9 <.' , # : t # , ' Q 7.t q % ' , ' ' | | + + . @ % . + % . + h ! - = : ^ : - ! %.- - - ! = ! - ] 6 ! ^ : ( 2 - - h @ . < % . + @ + & $ . . + @ + + . @ . . . + . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ @ , j v j ' ' , # : : # # 7 7 E.: D s u ' , o 9 . + . . @ . A . @ h - ] - 2 l.F ..= 6 ! = ] - - ! 6 - = - ! ^ ( '.] = - ] h + z . . < + . & $ G # . @ . + . + z z z . % @ . . $ > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | x , , , , # : : p Q Q : p ' , , j g | 9 . . # % . % + . ] - / - = = - ! - ] = = ! - ] 6 = - ] = ] - ] }.! 6 = = - = / & + @ . + @ & * $ $ 1 $ 1 $ * * S z . 1 * $ $ & > > $ * $ $ * $ > * @ ", " $ $ . + . + @ . + @ , H ` j ' , ' , ' @ : t ( t F ' ' , S , ' o 9 + + . @ . A W ] / - = ! = ! 2 ! - = ] = ! 2 ] - ] 2 - 2 = ! = 2 - %.5 = = = ! 4 + . . . . % $ W $ 1 M * M $ * z z z . & & & & { > W & & * & f ) f + ", " c { $ @ [ . + + @ . @ , j o 3 , ' s [ + D : : t D [ + [ , j ' ' | v . @ % @ % + d - = = ! = - - - - ! = - 2 ] 2 / 2 r / %./ 2 / = ! = ! = - 5 ! = = d @ + @ + . . + + @ + . . @ . . z G . + + @ + ) > + . # . @ * > _ @ ", " ~ * e . + @ + . + # @ , ,.| x , , D : q : t : q : [.q : % , ' S | | + @ + . . # = - ! 2 ! = - ! 2 ! = - ] 2 4 r A r A r 4 r 4 r r / = 2 ] - 6 = ! - 5 . + . . + # # % + % . # + . + + # . @ # . @ 8 { % + @ + + * ) & + ", " * $ B . + + @ # . . m ' j l | ' N # # [ @ + Z.+ # + % # ' ' , ' | o % . + + & %.! = = - - = ! - = = = / = 4 r 4 V k V a V V k V 4 r / = ! = 5 = - = - h # + @ . G # + + + # & + . & . + [ . . . @ & ) * . @ @ + % > f + ", " $ 1 { + . . @ & @ + @ ' , | o , j , ' ' ' % : [ , ' , , , ' , , v 9 . @ & @ 0 ] = ! = ! - 5 = ! 6 ! - / r r a V k V k V a V 4 V A r 4 2 ] - = ! - ] - = d . H % + . @ . + . @ + # . @ + . . + # + % > f . % + @ f > % + ", " * ~ * @ + % . + + . @ , ' | ` H u ' ' j , % : 1., ' j m , j , 3 | | + . + + _ > d = 6 ] = ] d _ F h ] = r 4 A A @ m A A .A y 4 y a . .2 5 = - 5 = - - / . % + # % @ + < + . + @ & + @ % # . . . @ ) > % . + + _ ) * # ", " $ ~ . + . @ . # # m s , j | | x , ' u , + : % ' , , ' m , l | o < . H . # L > L - = - ] _ _ _ Z _ d ] 2 h . # . @ @ # V a r a .y k k I 2 = = - - F F - # . @ . @ . % + . + + . . . + . + & @ . + % > _ . @ @ * ) $ . ", " c * @ . # . . . . @ , ' , ].` | | x 3 j #.+.< , ' S , j | v | < + + & % 4 F > L 6 = = L F + % % _ % ] ] + + . + m @ @ A A y k y k y .k I 5 - = ! > ) = *.@ + . . + . @ . . + . @ @ + @ % + + . @ _ > f _ #.l $ 8 * + ", " $ 1 # + % % + . @ @ , m , ' @ 9 | | ` 9 o 9 v v K v | 9 o K |.. @ @ + + ] L ) F ! ! - _ _ % % % % % ..D._ + + . # m @ a 4 V g. .y a .k 2 w = = 6 > > 6 ] . . . . < + . + # . . . + % + + @ % . + . { ) > | l > > % . ", " ~ $ . + @ # [ + . # , u , ' , ' ' x j j [ +.#.| | ` | l x , g < + + @ . - d > + = - = % % % < & [ & h .._ Z + + @ z @ A V a .a .y k .i I ! - = ) { 6 ! . @ + + + @ + % # . # + + @ . @ % $ % @ < + _ +.-.v * & + @ ", " B * @ + & . + + @ @ @ @ m @ S @ m @ @ H 4 e.4 @ S @ m @ m @ @ . + . + # - p ) F 5 - 6 L % & [ < < % h ] F _ Z + + @ m @ r a .y 2.y y . .2 ] = 6 > > = - d @ @ @ . + $ f % . & $ $ # . + 4.4.* . % . . @ M ` @ + + . ", " $ $ + . @ + . + @ . . d @ % + . . . + . i 7 i + # + . # . + @ + % + + + = Z > d - = ! ] # < < & < 0 / / L _ % + + @ # A y A y k y k .k .5 = ! 2 { ) 2 = d . % @ @ & > ) f . % > { @ + < 9 -.f + @ + . + 4.9 + . @ % ", " B $ + . + . @ + + @ + . + + . # + . . + 0 P 0 + @ + @ . @ m . @ + @ + 4 5 d ) L ] 6 = ] 0 # [ [ # 0 4 2 ] L _ _ Z + A a r A .y 2.y a .4 2 5 - - { > ] '.% * $ _ _ $ { > ) . _ 8 > % @ [ ` 9 > + & # # @ 4.` @ @ . % ", " i i # % + @ + + + . + % @ . . [ . @ . + % 8 D f > > { ) ) ) > 8 ) { $ F L f ) F 6 ! = / 0 0 C # E 0 4 ] 5 - ] ] 4 = 4 r A .A A .y k r r = = = 5 > ) ) > 8 > ) > ) > ) > { @ f > 8 & . #.9 ` M :.` 9 o K | o . # + @ ", " 7 7 . @ + + . . + @ . @ + % @ . + . + % _ 8 > > ) > ) ) > > 8 ) 8 ) > > > ) > L = - ! / 4 E # # # # 0 / ] - ] ] - / = r 4 r .A r a r 4 / ] - = ] e {.> _ _ * $.{ & _ f > ) @ 8 > ) * @ < | v q.4.9 q.o l v K & & . @ ", " + % . @ . # < + + # + . . + # + @ @ @ . % } f _ . @ . @ @ # . + @ & * _ d F > d 2 = - ] 4 # [ C # E A 4 = 5 = = - = ! r / r r 4 V A .4 = 6 ! = - > ) ! 6 A + $ ~ + . [ 8 ) + > f > $ + #.v l 9 4.` < @ @ < v * + + + ", " $ c ~ $ * & & + . . @ % @ + @ % + . % + # . p : p @ . @ . # . @ . @ + @ # h ! d > L ! = ! ] 0 [ < < < [ 0 h 4 ! ] ] 2 - 5 2 = ] 2 r 2 4 r ] = = ! - 6 { > - ! *.. ~ $ @ + + { > _ > f > ) . l v #.v l v < . + 3 ` & & . + ", " $ ~ * $ * e 1 * $ c $ . . + . % @ . @ + . . . . + + p : F . + . + . + % @ Z + & + . - L ) d ! = / ] % < & #.< < [ C 0 4 r / 6 w 6 w 2 2 ] ] 2 = 2 = 5 ! = ] 6 > ) = - # . ~ $ . @ @ $ > 8 ) & _ > { q.#.@ 9 ` 9 < . . 3 o _ + . . ", " $ $ $ ~ B * e $ 1 ~ * & # . + + + . & + + + [ + $ ) > ) ) > { ) $ + . . @ . @ @ % @ - }.) }.- - = h % < [ < < < [ # 0 0 4 / i i I 5 I 6 5 = ] = 2 = = - ! = = U ) - - + % e $ + + . * ) 8 > + % > ) ) * + < o ` M # + 3 v _ . . @ ", " & O % . + @ < @ . # . @ % @ + & 8 > { { > ) {.> { @ + . . # . + + . ] - ! - = ] = d % & < +.< < [ C 0 C 0 E k i k i i 2 2 ! = ] ! 2 - - 2 ! 6 ) > 2 h . # $.~ + . @ % > > $ + . 8 > $ + . @ $ > . [ . 3 v & . + . ", " & . & . . . + + + + . . + & + * > % @ @ m . # > > . # . # . + . @ < 0 = = 5 - = - ] % % < < < < [ # C 0 C C E E k k E i 4 4 5 - = / - ! - = r { ) - 4 . . ~ $ < + @ + * 8 . + + $ f & . # . + + @ + + < ` * + @ . ", " * ~ * ~ { * ~ { $ * ~ & . . . @ % + @ @ @ # . W ) * + + . + @ ) > # . . @ < + . . + + - - ] = ! ! = p & [ #.& < # # E # E C C E C E E E k ] ] ! = ! - = = ! - $ { - . . + e $ . + # . @ + @ < + . # . + % @ + # . + + K v * . + + ", " 8 1 $ c $ $ * ~ { c ~ & + < + @ . + . + . + @ * > * @ [ . + @ { ) @ + + . % @ . . + & / - - 2 = ! 2 ] d % < [ # C # # C 0 E C E C E C E C # 2 / = 6 ] - ] ! - = ] ] @ @ % ~ $ . . [ . . + . + + . # + . % . . % @ % @ o K f @ + . ", " 1 e 1 & * O + . % . @ + @ @ . . . + % ) { @ + + + . > > # . % . + + # + + @ + - ! - ] 6 = ] 2 Q 0 # E 0 C 0 # C # C E C E C 0 # / ] ! - ! = 6 = = 5 ! 2 + + . + ~ $ . @ + @ + + + # . . . + @ + . + @ . . # o q.* @ + + ", " ~ $ $ @ + [ @ # + + . + + + # + % @ . ) ) @ . . + % ) { # + + @ . . @ + . + . h 2 ! - = - ! = ] / 4 # 0 0 C 0 # E # C k C 0 0 / 4 / = = - = ! - 6 = - ] . [ @ . ~ $ @ + G . @ . @ . + + @ + @ < + p . + . # 9 4.* + @ . ", " { * $ @ & + . . [ + . [ . % . # + . # > 8 @ . @ . % 8 $ . . . + + [ . . # + + . - = 5 = = - 5 = ] / / 4 4 4 0 4 0 C 0 A 0 / 4 ] = ! - / - = - ] ! / - + . @ + @ e $ . @ % + # + . % @ + . % + . @ . . # & + v 4.% & @ p ", " ~ 1 . + @ . + . @ + @ + < H + @ + + > ) . + . . & ) * # . # @ . . # & @ . [ # h ! - ] 2 - - 2 = ] = / ] / / / 4 ] / ] / ] / = 2 ] - - = = 6 = - ! h @ + < + % ~ $ % # # . . @ @ + + % @ + . @ % + + # + + 9 v._ < + + ", " c $ $ + # . . @ + . + . . # < . % @ @ ) 8 # . . % * ) & # < + . + < % @ # . @ . & h - - ] - ! = - - - ] - ] = ] = / = - ] - = ] - = ! - ] - ] - - h @ % . + . + $ ~ . . + @ & d + + . + . % @ < . % @ . @ # v M _ @ . @ ", " * c $ . + + . . 5./.z + + b ^.l < + # > ) + @ + @ * > _ @ @ & @ . < 3 < & + . # + + ] ! = ! - = = / - = - - = = - = = 5 = 6 ! = = - - 5 - ! 2 - h @ + . . [ ~ ~ e $ ~ $ & @ + % . @ # + . . + + . . @ + . . ` M +.% + + ", " ~ { * [ + < @ z 5././.z M ^.^.^.^.. z > > @ + [ @ _ ) _ . + + + < 3 < 3 < @ + & + . # ] = 2 ! ] ! ] ! - / - ] - ! = - - - = = 5 ! h ! - = - ] h @ + . @ + . $ e $ e ~ { & . G @ % < < < + @ . @ . + + + + H v 4.& . + @ ", " $ 1 ~ . + . + 5./.5.w.. M ^.^.^.^.+ # $ ) _ @ . . * > & @ . . + < 3 <.l 3 + @ . + . + @ h - - - O $ _ = - = 5 = = = ] = ! 5 - = F ~ $ - ! - 4 & + < + . . . $ ~ % . * $.* % . & <.< 3 < & _ & M * & * & & * 9 -.* @ p + ", " 1 * { @ @ + % . w./.5.. @ ^.^.^.[ + . f 8 % . + @ U ) $ . # % . . < 3 < < . + + @ . < + @ . = 6 ~ $ * ! = = - = 6 ! - 6 = = 6 5 _ 1 ~ h ! + . . # . @ + . % ~ $ . . & e U e ~ ; $ 8.8.$ $.e $ e U ~ { ~ { $ o l $ + . d ", " ~ { * + + . . + + 5.. @ . . [ < @ + < * > $ # . z ) ) * + + @ @ + @ . < + @ + . + . + . + @ . ] { * B 6 ! 5 ! 5 = ] - ! - ] - - L { ~ Z @ # + < + % % . . % ~ ~ & & $ e $ & * & & 8.#.M & & & * & * & & & % v l & . # . ", " $ ~ 1 < . # + @ < @ d + + . . + . . + % ) > > > ) 8 { + . @ + + % . + @ % & . # . @ @ . @ + % + * $ $ - - = = - 6 ] = ] - - ! = + $ $ * + . @ . . # @ + + & { ~ { ; ~ $ & + . @ + < @ % + . . % . % . . d . 9 -.* @ % @ ", " c ~ c + . + . . + . + % @ + @ + # + . & $ ) { ) > ) $ + . . @ . + % . . # . + + + + < + + @ . + B $ 1 % *.] h ! - 6 - ! h 4 *.d W e * W + @ + [ . # . + + & ~ & $ e ~ & W @ + . + @ . . @ + G @ @ . . @ G + v 9 * + . + ", " * $ $ % @ . # + . + # . + % . + [ # . + + @ # > $ z H + + . . + < + @ . + @ + . # & G # . % + @ $ { $ _ + # . . G H @ @ & # + . % B ~ Z . + . + + + < . + @ + . & $ & + . # % + . + # . @ + # . . + + + % + | -.M . @ + ", " { 1 $ @ . + @ & @ + < + @ + @ . . < . @ + + @ ) ) . @ . @ . @ [ + . . % + % + @ + d . + . . @ . % 1 $ & + @ + + % . . + + . % + * $ $ W @ % . < . . # & + @ . + & e O @ @ . @ . @ + . . % + . + . @ + . @ # v l & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % * + # + . + . @ . # @ + + + . . @ # { > @ . % . @ + . # @ . # @ + % % * & * & % _ + . . ~ c * . + @ & @ + + < . . @ . & 1 $ % + + # . + . . @ + # < + & U & @ + . . + # . + @ . d . # # . # # + < K o j.. # + ", " ; ; ; ; e ; ; ; * $ $ * ~ * ~ B $ $ $ * G * & _ * . # . & & * . ) { & . & & & d i % ~ c { 1 { 1 $ $ ~ 1 $ $ ~ * ~ { * $ * & + W % _ W * + & . * + & 1 1 & & & & * % % . & & . * & $ e * % & & & & * $ $ * $ * $ B $ * ~ $ M o v K v | l l v K v ; ; ; ; ", " ; ; T X T Y ; ; * $ $ { ~ $ * $ * * ~ $ 1 { * ~ c 0 7 0 1 * $ ~ { > ~ 1 $ o.~ k 7 i $ * { ~ f ~ c $ * { * e $ c ~ * ~ 1 ~ e c $ 1 ~ * { ~ c ~ 1 $ e $ { $ B $ c 1 $ c $ $ $ { $ 1 { ~ $ { c e * $ 1 e 1 c ~ c $ * $ 1 { 1 :.K o K v ` | ` | ` | -.; ; ; ; ; ", " ; ; X T X T ; ; { . 1 $ { $ c $ { $ B $ ~ 1 0 7 0 e * { 1 $ $ $ { ~ f $ % 4 % 1 $ * 1 $ * & * & & & O & 1 ~ * $ { * $ $ * ~ f ~ * $ e { 1 { * $ { * * ~ * ~ e $ c 1 $ * { $ $ { 1 ~ ~ _ e ~ c ~ $ $ $ ~ $ ~ $ B $ $ $ | v l v 9 ` | v ` 9 x.1 !.X ~ ; ; ", " ; ; T =.X Y ; ; . z + @ . + . & . & & % & . + % % G & _ O . & . * O & + . # . . @ . + *.. . # G @ . + + # . @ + & & _ & * . & * & % . * & . * . * & & * % O & & & & * & G _ % & & . * O & & + + @ z + . . # % + . @ . [ < l l v ` | v l $.Y =.T Y ; ; ", " ; ; ~ Y Y ; ; [ . . # @ . . < + + @ . @ + . . . + + + @ . + @ @ . . + . . + @ . + + . @ . . . # . + @ + . . + . + + # . . @ . . + + # . + . . + . + . + # . + . + @ + + + + . + % @ % @ + @ . % + . + % # . + . # + . + + . < 3 ; Y X =.~ ; ; ", " ; ; ; ; ; ; # . < d % . % G + . + + + @ @ d + # + + <.@ . . + + + @ % @ + @ % + H + % + @ . % % + . @ # % . z + @ % + # + # + . + & . + [ + + . @ + . @ + @ . @ + + . + G @ @ . . . @ + @ @ + # + + . [ + @ & @ . @ . + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame19.xpm0000644000175000017500000004630507343277263012070 /* XPM */ static char * zz19_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ( ^ ( ^ : ^ } # g J n g n ; ; ; ; ; ", "; / 7 D ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u 8 ( } ( ^ : } ( ^ : % n R n g J n R n ; : q q ; ; ", "; 7 7 f.; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ^ ^ ^ ' n J g n n g ^ ( ^ ^ : ( ( ^ ^ % n g J N R n g n n g % : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; E.f.[.; ; , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ( ( } } ( g g n J g J ' ^ ^ ( N N N ^ } } n R n ' n R n R n J # ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; ; > t p &.( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ % n ' J g n % } } ^ ( ( ^ ^ W n n , n g n # ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; > } P 7 &.( ^ t w 9.'.^ } ^ ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # D ' n + ( ( } H g J ' ) > ; ; ; ; ; ", " } P 7 p } ( D 9.w t ^ } : ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , J g n ^ ( ~ G > ", " D '.} ( : ^ t D @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' n R ' ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , +.% D ^ ^ ; ; > 8 ) > { 8 { > ", " { 1 $ , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x : ( : ! = - = = ! = = ! } ( ; > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % + @ ^ ^ ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . + & e @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : : # u ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . ] } : ( = - = - = - ! = - 6 = 6 - t ( } &.+ . . . + + . + @ # . $ $ . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | o , # : ( # , , , : t q p , , ' , s v | . @ + @ + [ @ . # % . + ] 6 ( } ( 2 ! = ! = = 6 5 = ] = - %.: ^ ( ] ] *.< # . [ + + + . . W > . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ u 3 9 j ' , # t : # , s : : : [._ N , ' ' 9 | + + . @ % . + % . # h - - = : ^ : - ! %.- ! - - ] - - ] 6 ! ^ ( : 2 - - h @ . @ % . + @ + & $ G + . @ + + . @ . z . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ m , x o x ' ' , # t : @ [ ( D : ( F s u ' , v | . + . . @ . A . . h - ] - 2 l.D ..= 5 - = = ! - - 5 - = ! ! } ( '.] = - ] h + . . . < + . $ e & # . @ . . + . z !.z . % @ . . f > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | j , , , , + : E.I P t q p ' , , H g | 9 . . # % . % + . h 6 ! = - = - - - = = ] ! - ] 5 = - - = = ! ] }.! 6 = = - = / . [ @ . + @ & ~ e ~ { ~ $ ~ e $ T z T 1 { ~ $.~ ; ; $ e U e ~ > > * @ ", " $ $ . + . + @ . + @ , j ` x ' , ' u , @ k.7 7 k.F ' , , , , ' o 9 + + . @ . m & ] / ! = ! = ! 2 ! ! = = 2 ! = = - ! = / - = ! = 2 - %.5 = = ] - h + . . . . % $ ~ ~ ~ $.{ $ ~ * T b.T O * & * & > > W * M * * f ) _ + ", " c { $ @ [ . + + @ . @ , j o s ' , @ [ d D : r...D [ + [ ' j ' m 9 o . @ % @ % + d - - = = - = - - ! - = - ! = 5 2 ] r = = / 2 ] - ] - ! = - 5 - ] = d @ + @ % . . % + . + . . . + z /.T . % + @ + ) > + . # . @ * > _ @ ", " ~ * e . + @ + . + # @ , 3 | x , ' D : : : t : q : [.q : % , ' S | | + @ + . + @ - = ! 2 = ! - / - - ] = 5 = / h 2 = / 2 / = 2 2 2 ] = / = - 5 = ! - 6 . . + . + + # % % + [ @ + . . + % @ @ + @ . ) { % + @ + + & ) M + ", " * $ B . + + @ + . @ m ' j v | ' u # 0 [ # + c.+ # + % # ' , , ' 9 o % . + + & %.! = - ! - = ! - = ] = ! = 2 = 2 4 2 r 4 %.r / h 2 r ! = ! = 5 = - = ! ] + # . @ . # + + + + . [ + . @ + # & . . A & ) * . @ . + % > _ + ", " $ 1 { + . . @ < . + m ' ' | o , , , ' ' u % t [ , ' , , ' ' , , o 9 . @ & @ 0 ] = ! = - ! 2 - ! 6 - - / = / 4 r = 4 2 / r %./ r h 2 2 / = - - - ! = = 6 + . <.. + . . . # . . + . + @ . + @ % @ + % > f . [ + . f > & + ", " * ~ * @ + % . + + @ @ , , | -.j , ' ' j ' & : p , s , , , j ' x | | + . + . _ > d = 6 ] = .._ $ $ L ] = 2 ] *.% * & + h r / r ] 2 k I I w ] 2 ! - - - - ] . + + [ [ @ + & # . # < . + @ + + . # . . ) > % . + # _ ) _ # ", " $ ~ . + . @ . # + @ ' , x | | x , ' , ' % t + N S ' m m , | K o < . @ . # }.> L - = - ] { $ { $ $ _ 2 = d * * * & * & 4 %.2 .I >.I ).I w = = ] - F F - # . @ O @ . % + . + + . . . + . + . G [ . % > _ @ . @ * ) $ . ", " c * @ . # . . . . @ , ' , ,.v | | x ,.j < +.< j ' , , j | o | < + . & % 4 F > L 6 = = _ $ * $ c $ $ ] ] $ * M * & * & + / 4 I 2.I .I I 7 6 - = 5 > ) = # . # . . + . @ . . + . @ @ + < + % + . @ _ ) 8 _ % $ $ {.* + ", " $ 1 # + % % + . # @ , m , ' s 9 | | v | ^.2.6.o 9 o | 9 o K |.+ @ @ + + ] L ) F ! ! = f { $ $ $ $ $ L L { * $ * * & * # r 4 I I >.I ).I i w = = ! { > 6 ] . + . . @ + . # + . . . % + . + @ + . + . $ > > > ) { > % . ", " ~ $ . + @ + [ + . @ N , , ' , ' ' x j j ).7 ).9 | ` | l x , R < + + @ . - d > + - = - $ $ $ M $ $ $ d d $ $ * * & * & + r / m.i m.I >.I >.w ! 6 = ) { 6 - . @ . + % @ + % # @ # + + @ . @ % $ % @ < Z _ % 8 > _ & + @ ", " B * @ + & . + + @ @ @ m m @ H @ m @ @ H 0 5 # @ m @ m @ m @ @ . + . + + 6 F > p - ! - L $ $ * M M * ] ] { { $ $ * & * . / r >.I i .I ).I I ] = 6 > > = = d . @ @ . + $ 8 % . & $ f # . + U > * . + & . @ > > + . + . ", " 0 Q + @ . # . + @ . . p . + + z . . + . p : % + # + @ + . + @ + % # + + = d > d - = 5 = % M $ M * d ] 2 _ $ { * $ * & h r 4 .I m.>.I I I 6 - ! 2 > ) 2 - 0 . % @ @ & > ) f . _ > { @ + + { > f % # . . + ) { # . @ % ", " 7 7 + . . . # . + @ + . # + . [ + . . + % : p + @ # . @ @ @ z @ + . + 4 5 L ) F = / - ] r d % + 4 / ] ] ] _ $ $ $ * + 4 ] r / I i .).I i = / - - { > ] '._ & * _ _ $ { > ) @ _ 8 > % < # 8 { ) . + # # @ ) ) @ @ . % ", " 0 0 # % + @ + + + . + % . @ . + . @ . + % 8 } $ > ) { ) ) ) ) { ) { $ F Z D ) F 6 - = ! / / 4 4 ] 4 / = ! - ..L h ] / = r / r 4 2 I 2 / = = - = 6 > ) ) > 8 > > ) ) > > > 8 @ f > 8 & . + ) > { $ $ > ) $ { ) . # . # ", " $ * @ . + + . . + @ . @ + % @ < + . + % % 8 > ) > > > ) { > ) {.8 ) > > > ) { F = = ! ] ] / h Q 4 4 ] / = - = ] = - = 2 ] 2 2 r 4 4 r / 5 = ! = ] > U { D % * ; { & _ f > ) @ 8 ) > _ . & ) { > > ) > ) f f { & & . @ ", " { ~ . @ . [ @ + + # + . . + + + @ . # . % } f _ . # . # @ @ + . @ % * % d F > d = ! 6 ] 2 0 d + d / 4 ] = 5 = - - ] - 2 ] = %.] = 2 2 ] = 6 - = - > ) ] - A + ~ $ + . [ 8 > + > $ > $ + $ { f > 8 8 & @ . * > * + + + ", " 1 c ~ $ * & . + . . < + < + @ % + . % . + . p : p @ . @ & # . . # . + @ + h ! d > d - = - ! d $ M M $ % / ] h 5 ] h 6 2 5 6 = ] 2 2 = ] 2 = ] = ! - 6 { > - ! *.. ~ $ @ + + 8 > _ > _ > ) & 8 > . U ) > * . + % > & & . + ", " $ ~ * $ * e 1 * $ $ $ . & + . + . . @ + # . . # + + p : F . + . + . + # . . + < . + = F ) L ! ] = ] * M $ M ~ M + 4 / = 2 / w w 7 w I 6 = ] / = 2 - 5 ! = ] 6 > ) - - # . ; $ . @ @ $ > 8 ) & f { { > 8 @ _ ) > & + . % ) _ + . + ", " $ $ $ 1 { * e $ 1 e * . # . + + # . & . + # % . $ ) > ) ) > { > * + & . # . . @ % @ - }.) ..- - - + $ * M * M $ % 4 ] / h w ).w i 7 w w 5 - - ] = = = - ! = - U > 6 - + + ~ $ + + . * ) { ) . % ) {.) * + + > ) * # % & > * . . @ ", " & O % . + @ < @ . # + . % . # & 8 > { { > ) ) > > @ + . . # . d + . = ! ! - = ] = d $ $ M $ M $ & / 0 / / i i >.i w i I 6 ] = = ! 2 - - 2 ! 6 ) > 2 h . [ e $ + @ . % > > $ + . { ) { + . H { > . [ . % U & & + . ", " & . & . . @ + + + . . @ + & + * > % @ @ @ . A > { . # . @ . . . # & 0 = = / - = - h $ $ M ~ M M % 4 4 / k i ).i i ).9.i I h 5 - = ] - ! = = r { ) - h @ . $.1 [ @ + # * 8 + + + $ $ & @ + @ % . . + + < K _ . @ . ", " * ~ * ~ { * ~ { $ * ~ * & . . @ % + . @ @ # . & > _ + + @ + @ ) > # . . # < + . . @ + - - ! = ! ! = _ $ & $ & $ # ] / h / 2.i ).k I i )./ / ] ! - ! = 2 - ! - { $ - @ . + e $ . . # . @ % @ @ + + @ + + + @ + # + + + 3 v * + # . ", " 8 1 $ c $ $ * ~ { c ~ & + & + @ + # . + . . @ * > * @ + . + @ > ) @ + + . % @ . . + . / - = 2 - ! 2 ] + M $ & d 4 4 / 4 / i k i ).k ).i h / 2 = 2 - ] - ] ! - = ] ] . @ % $.1 + . # . . + & + + . @ + . % + & . @ % < <.K $ @ + . ", " 1 e 1 & * . + . # . . . . @ . + . + % > { @ + + + . > > # . % @ + . + # % @ + - ! - = 5 - ] - / / h 4 Q h ] 0 4 4 i ).k i i / 4 ] ] ! 5 - ! = 6 = 5 ! = # + . + ~ $ . @ + @ + . + # . @ + + H + . + [ . . # 3 v _ + . + ", " ~ $ $ @ + [ @ . p @ + + # + @ + + @ + ) ) @ . . + % ) { # + . . + . @ + + + . h 2 ! = = - ] - ! ] / ] 4 / 4 ] 4 Q 4 / i 4 4 ] / / = = = = - ] - 2 - = ] . [ @ . $.* & + G . @ + @ . + + + + @ < # + + . . + < v * + @ + ", " { * $ . < + + . [ + . + < + % @ % . # > ) @ . @ @ _ { & . + . + # + . . # + + + = - 5 = = - - = - / = / / 4 ] 4 ] 4 / 4 / ! / - = ! - 5 - = - ! ! ] - + . @ + @ ; * @ . [ + . + . & . # . % + . & . @ + @ + v K f @ & % ", " ~ 1 . + @ . + . @ % @ % . @ + @ + # { ) . + . @ _ ) * # . # . @ & # . < . # [ h ! - ] 2 - / = = ! = ] = 5 - ] / = ] ] 5 = ] = ] = = - = = 6 = - 5 h @ + < + % ~ $ % # + @ + @ # + + & @ + . @ + + + % # + | x._ @ + + ", " c $ $ + + . @ . + . . z @ + <.@ % @ . ) ) # . . & _ > * # < + @ + & [ < . . @ . . h - - ! - ! = 6 - - ! ! = ] - = ] - = = - 5 = - ] - ! ] - ] - = h . # . + . + ~ * @ . + @ & + + + . + . % @ < & + @ . @ @ ` 4._ @ & @ ", " * c $ @ . + . @ /.b.z + + l l l < + # { ) + @ + @ $ 8 f @ @ & @ . 3 | 3 < + . # + & ] - = ] - = = / - = = - = = - 2 = ! - 2 ! = - - 6 - 5 - = - ] @ % . + < $ ~ ; ; e $ . @ + % . @ # + # . + + . @ @ + . + v #.f # + + ", " ~ { * [ + # . z /./.b.Y M l K l l . . > { @ + [ @ * ) _ . . + + < l 3 | 3 % @ + + + @ ..- 2 - ] ! h.- ! 6 ] = 5 - - = 6 = = - 5 ] ] ! = - ] 6 h < . . @ + . e U * ~ U e % . . @ & 3 | < + . @ . . % + + + G 9 4.% . . @ ", " * 1 ~ . + @ + z z X z /.M l l K l + # $ ) _ @ + . * > & @ . @ + <.l | 9 l . @ . + . + H d - - 6 * { % = - - ! = = = ] - ! / - = F ~ * - ! - 0 . + . + . . + ; ~ + . * $.* & 1 & < l | :.M * $ & * * & * & * v 4.* @ p + ", " ~ * { @ . & % + /./.b.. @ ^.l l [ + . f ) _ @ + @ U ) f . + % + . 3 3 l @ % + + @ + . + @ . = 6 ~ * $ = ] = - ] 6 ! - = - = 6 5 _ e ~ d - + . . [ @ @ + . @ e ~ & . M e $.{ $.e v.:.#.M ~ ; $ ; ~ ; $.e $.{ v M $ + + + ", " ~ { * # + + . @ + . . @ . . # < @ + @ * > $ # . . 8 > * + + @ @ # . H < + . . . + @ + . + @ . ] { * c 6 5 - 5 ! = ] - ! ! = ! - d c ~ Z @ % # . + % + & + % { ~ * & $ e $ & * * < | :.| + & * & & * & + % % 9 4.& . # . ", " $ ~ 1 @ . + + . @ . + + + . . . + . # _ > > { > 8 ) 8 . + @ . + % . + @ % < . + . @ . @ . + % + * $ $ = - = = - 6 ] - = - - = = d ~ $ * + @ . @ . # @ + # & ; ~ ; e $.e & + . @ + < < + [ . . % . + . . d . ` #.* @ % @ ", " { 1 { . . + @ . % . + [ . # . # . + . % $ ) > ) > > f . . + @ . + % . . + @ + + + [ . # + @ . + 1 { * % *.] h ! - 2 6 ] ] 4 d + 1 { * G + @ + % . + . . + & * & $ ; * & < @ + . + @ . . @ + H . @ . @ . H . l v * + . + ", " * $ $ % @ . + + + # + . + % . + [ # . + + @ # { U z H . + . . . [ @ @ + + @ + . # . & . + % + @ $ $ $ _ + # . . < G @ < . @ + @ % ~ ~ _ . + @ + + # < . + @ . . * ~ & . + . # + . + # . # + + . + + + + % + 9 -.& . @ + ", " c 1 $ . @ + @ @ . + < . @ + @ + . < . @ + + @ 8 ) @ # . @ . @ % + . . . % + # @ % + + @ . . @ + & B $ & + @ . + + . + + + . % + O { $ W @ % . & . + # & + # @ % & { . @ . @ & . @ + . G % + + . . @ @ . # . l ` & . + . ", " ; ; ; ; ; ; $ { ~ B $ * & _ . + # . + . @ . @ @ + + + . @ . # > > . . % # . # . # # . # . + % _ & . * & % _ O . . ~ c * . + @ & @ . + < . + . . & 1 $ * + + # . . . . @ + # . # $ $.. [ + . . # + . # + @ + @ # + @ % @ [ + < v _ . # % ", " ; ; ; ; e ; ; ; * $ $ * ~ $ 1 ~ $ $ f * W % & _ O & & . # % . & 8 { & G & & k p 1 $ ~ c $ 1 { 1 $ { ~ 1 $ $ $ * ~ $ * $ * & . & % * & * + & . * . & 1 * & & & & & % % . & & & * & * e & % & & & & * $ e * $ { * e $ 8.` 9 v 9 ` 9 ` l . # ; ; ; ; ", " ; ; T X T Y ; ; * $ $ * ~ { * $ c * ~ * B { 1 $ B ~ { 4 7 0 $ ~ { > $ 1 $ d 7 7 $ ~ { * { ~ f ~ * { $ { * e ~ * ~ * ~ * ~ e c $ 1 $ 1 { ~ { 1 $ $ 1 { $ $ B $ c 1 { c $ $ * { * ~ 8 ~ $ c c e * $ 1 $ 1 * ~ c * * * :.` | ` | ` o 9 ` $ ~ c ~ * { ; ; ; ; ; ", " ; ; X T =.!.; ; { . W $ { $ c $ $ $ 1 { $ 1 $ ~ 0 7 4 { * ~ $ $ c ~ _ 7 / 1 $ 1 $ * B $ * & & & . & . * 1 * { 1 { * $ $ { $ $ $ 1 $ ~ B 1 { $ $ { * * $ * ~ ~ $ c ~ $ $ e * $ { 1 ~ ~ _ e 1 { 1 { $ $ ~ $ ~ $ :.K v ` | v K o 9 $ * $ $ ~ e 1 T X ~ ; ; ", " ; ; !.=.X Y ; ; . z . @ . + . * . & & & & . _ & d . & % O & & & * . & & . # . @ . @ + *.. . + G # . + . # . @ + & . _ . & . * * Z % & & & O . * & * W * _ . O & & & * & G _ & & & . * * & & + + @ . + + . [ . j.< l < l < 3 & ~ B $ $ c ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % + . # . @ . < + + @ . @ . . . @ + + + @ . + @ @ . . + . . + # . + + . @ @ . & # . + @ % + . + @ + + . . @ @ . @ Z + # . + . . + @ + . + + @ . . + # + + + + + + % @ + @ + . @ d + . . % # . + . # + & + + + . # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ < d & + % G + . + + + @ # d + # . + H @ . . + + + @ % @ . < + . . + % + H . % % + . @ @ % . . + < % d % @ + + @ Z @ & + [ + + . @ + @ @ + @ . @ . + % + G @ @ . . . @ + @ @ + # + + . [ + < . @ . @ . + . + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/src/anim/frame20.xpm0000644000175000017500000004630507343277263012060 /* XPM */ static char * zz20_xpm[] = { "128 64 185 2", " c None", ". c #669933", "+ c #669966", "@ c #999933", "# c #999966", "$ c #333333", "% c #666666", "& c #666633", "* c #336633", "= c #66FFCC", "- c #66FFFF", "; c #000000", "> c #000033", ", c #CCCC00", "' c #CCCC33", ") c #000066", "! c #66CCFF", "~ c #333300", "{ c #003333", "] c #66CCCC", "^ c #000099", "/ c #99CCCC", "( c #0000CC", "_ c #336666", ": c #0033CC", "< c #996633", "[ c #996666", "} c #003399", "| c #CC3300", "1 c #336600", "2 c #99FFCC", "3 c #CC6633", "4 c #99CC99", "5 c #99CCFF", "6 c #99FFFF", "7 c #FFFFFF", "8 c #003366", "9 c #FF3300", "0 c #999999", "a c #CCCC66", "b c #CC6666", "c c #006633", "d c #669999", "e c #003300", "f c #333366", "g c #CCFF33", "h c #66CC99", "i c #CCCCCC", "j c #CC9900", "k c #CCCC99", "l c #CC3333", "m c #99CC33", "n c #FFFF33", "o c #CC0000", "p c #666699", "q c #0033FF", "r c #99FF99", "s c #CC9933", "t c #3333CC", "u c #FFCC00", "v c #FF0000", "w c #CCFFFF", "x c #CC6600", "y c #CCFF66", "z c #66CC33", "A c #99CC66", "B c #006600", "C c #CC9966", "D c #333399", "E c #CC9999", "F c #336699", "G c #669900", "H c #999900", "I c #CCFFCC", "J c #FFFF00", "K c #FF3333", "L c #339999", "M c #663333", "N c #FFCC33", "O c #339933", "P c #CCCCFF", "Q c #9999CC", "R c #CCFF00", "S c #99CC00", "T c #66CC00", "U c #330033", "V c #99FF66", "W c #666600", "X c #33FF00", "Y c #339900", "Z c #339966", "` c #FF0033", " . c #CCFF99", ".. c #6699CC", "+. c #663366", "@. c #CC99CC", "#. c #993333", "$. c #330000", "%. c #66FF99", "&. c #6666CC", "*. c #66CC66", "=. c #33CC00", "-. c #CC0033", ";. c #3300CC", ">. c #FFFFCC", ",. c #FF6633", "'. c #3366CC", "). c #FFCCCC", "!. c #66FF00", "~. c #CC6699", "{. c #330066", "]. c #FF6600", "^. c #CC3366", "/. c #33CC33", "(. c #FF00CC", "_. c #FF0099", ":. c #993300", "<. c #996600", "[. c #3333FF", "}. c #3399CC", "|. c #FF9900", "1. c #996699", "2. c #FFCC99", "3. c #CC0099", "4. c #660033", "5. c #33CC66", "6. c #FF6666", "7. c #9999FF", "8. c #663300", "9. c #FFCCFF", "0. c #CC3399", "a. c #CC00CC", "b. c #66FF33", "c. c #0000FF", "d. c #FF9999", "e. c #CC99FF", "f. c #6699FF", "g. c #FFCC66", "h. c #33CCCC", "i. c #CC0066", "j. c #993366", "k. c #6633CC", "l. c #3399FF", "m. c #FFFF99", "n. c #FFFF66", "o. c #006666", "p. c #FF99CC", "q. c #990033", "r. c #6666FF", "s. c #FF6699", "t. c #660066", "u. c #330099", "v. c #660000", "w. c #33FF33", "x. c #990000", "y. c #00CC66", "z. c #FF9966", "A. c #FF9933", "B. c #993399", "C. c #663399", "D. c #33CC99", "E. c #3366FF", "F. c #99FF33", "G. c #9966CC", "H. c #00FF66", "I. c #FF3366", "J. c #33FF66", "K. c #00FF00", "L. c #0066CC", "M. c #FF33CC", "N. c #FF3399", "O. c #FF0066", "P. c #CC66CC", "Q. c #66FF66", "R. c #CC33CC", "S. c #9966FF", "T. c #33FFCC", "U. c #33CCFF", "V. c #FF00FF", "W. c #9933CC", "X. c #9900CC", "Y. c #6633FF", "Z. c #3300FF", "`. c #00CC33", " + c #009900", "; ; ; ; ", "; ; ; ; ; ( ( : ^ ( _ n J g n n g J n g n ; ; ; ; ; ", "; : q } ; ; , , , ' j ' ' s , ' , , , ' , j ' , ' , ' u n g n 8 ( } ( ( ( + n g J g J n g J n R # ; : q q ; ; ", "; q q q ; ; N , , m , ' , , ' , ' , ' , S ' , j , ' , % : ^ } ^ } ( ^ ^ ^ : ( ^ ' R n J g n g n ^ ( } ^ ( } ' J N g J g N R n n # : } ^ : ( } : ^ ) } ^ } ( } ^ } ) ; q q q ; ; ", "; q q q $ % , ' , ' j , , ' ' , s , ' s ' j ' ' , m [ : ( ^ ( ^ ( } } ( } ^ : ^ g n g n J g ' n J g ^ } ( n R n g ' ^ ( : ^ : ^ : ^ } ^ ^ } ^ ^ ( ^ } ^ ^ 8 ) ^ ^ ^ } ( } ^ ) ; q q q ; ; ", "; ; > ; 7 7 ..^ } ( ^ : ( } ^ p , , V j ' , s R ' ' , ' , , ' , , , # : D ^ ^ } ^ ( f ' ' g J n g ( ^ ^ R n J g : ^ ^ ^ ( } ( ^ ( : ( : ^ } ( ( ( ( 8 ) 8 ( ^ ( ( ;.} ) ; > 8 } ; ; ", " ; ; ; Q 7 '.^ } ( ..e.t ^ : ^ } ^ ^ } : t @ , , s 3 x | v | 9 v | | x s , ' D : # g n R n : ^ ( H @ ) > ; ; ; ; ; ", " : ( } ^ ^ 7 7 ..: ( ^ } : ( ^ D : : # |.| K o 9 | -.| 9 | | o 9 :.[ : p , u g n } ( ; ; > ", " ^ } } ( ..e.D ^ @ # ( D | o x j ' , ' S ' ' ' x 9 o 9 #.S ' ' g % ^ : ; ; > > { > ) > ) ) ", " $ 1 ~ , , # t.9 l , , ' , , , ' , s , ' +.| o x , ;.^ ^ ^ ^ ; ; > 8 ) > { 8 { > ", " { 1 $ , ' , l | +.@ j ' j ' , ' , , , % q % 9 o x : ( : ! = - = = ! = = ! } ( ; ; > ) ) ", " * e * . @ + . + # . m s S ` o q : @ , ' S , ' , , @ : t ' s 9 v | . . + . + + . + @ @ + . % + @ ^ ^ ^ 2 = 2 - 5 ! 6 = ! ! - ! - '.} ^ % + % @ + . @ + < . . # $ ; @ + . + . + @ + . + + @ . + . . # & > * + @ . { 8 & + ", " ~ * { + . . + @ . . @ , g 9 | A : : # u ' , ' p d D : @ , , , | l | + # . # & + + . @ + . # . ] } : ( = - = - = - ! = - 6 = 6 = [.^ : p + . . . + + . + . # . $ ; . [ . @ . + @ . @ . & + @ . @ . @ { ) _ @ % . * ) _ % ", " 1 ~ $ < . @ . # @ . @ , j | o , # : ( # , , , : t q p , , ' , s v | . @ + @ + [ @ . # % . + ] 6 ( } ( 2 ! = ! = = 6 5 - ] = - %.: ^ ^ ! = + @ % @ # + + + . . * ; . # + . . [ . # . + @ & # % + # & > > & . + . & > * # ", " { * B + + + . . + . @ u 3 9 j ' , # t : # , s : : : [._ N , ' ' 9 | + + . @ % . + % . # h - - = : ^ : - ! %.- ! - = ] - - ] 6 ! ^ c.: 2 - - h @ . & % . . @ + M ; . . + @ + + . @ . z . . . # + + & ) _ @ . @ . * ) M + ", " $ * . % + [ + + @ m , x o x ' ' , # t : @ [ ( D : ( F s u ' , v | . + . . @ . A . . h - ] - 2 l.D ..= 5 - = = ! - - 5 - = ! ! } ^ L./ = - ] h + m + . < + . $ ; W # . @ . . + . !.!.!.z % @ . . f > f . + . [ * ) _ @ ", " $ ~ @ . @ . + + . @ ' 3 | j , , , , + : q F D : q p ' , , H g | 9 . . # % . % + . h 6 ! = - = - - - = = ] ! - ] 5 - = - = = ! ] l.] 6 = - = = / & + @ . # @ * ; ; ; ; ; ; ; ; e !.X T B ; ; ; ; ; ; ; ; ; ; ; > > * @ ", " $ $ . + . + @ . + @ , j ` x ' , ' u , @ Q P t ;.F ' , , , , ' o 9 + + . @ . m & ] / ! = ! = ! 2 ! ! = = - ! = - - ! = ! - - - ] 2 - %.5 = = = ! 4 + . . . . % e ; ; ; ; e ; ; 1 b.!.!.O ~ * M * > > 1 $ $ * $ $ ) _ + ", " c { $ @ [ . + + @ . @ , j o s ' , @ [ d D 7 7 Q D % # % ' j ' m 9 o . @ % @ % + d - - = = - = - - - ! = - ] 6 ! = ! = - - / = ! - ! - ! = - 5 ! = = d @ + @ % . . + # . # + @ . + z =.z . # % @ @ ) > # . # . @ * ) _ @ ", " ~ * e . + @ + . + # @ , 3 | x , ' D : : : ..7.E.: [.q : % , ' S | | + @ + + . # = = ! 2 = ! - ] 6 ! = - ! = ! = = - / - ! 6 = 6 %.! = 2 ] - 6 = ! - 5 . + . . # + # % + % @ + . . . + # . @ + . . ) { % + @ + . * ) M + ", " * $ B . + + @ + . @ m ' j v | ' u # 0 [ # # c.+ # % % # ' , , ' 9 o % . . + & %.! = - ! - = ! - = = = ! - - ! 6 ! - = 2 = = ! = - = ! - ! = 5 = - = - h + + @ . . # + + + + < + + & . + [ . . . A & > * . @ # + & ) * + ", " $ 1 { + . . @ < . + m ' ' | o , , , ' ' j + : [ , ' , , ' ' , , o 9 + @ & @ 0 ] = ! = - ! 6 ] 6 ! 6 ! 2 = ! = = = 5 - ! = = - ! = 5 - ! = - = ! - ] - 6 + + <.. + . . . @ + . . # . @ . + . # @ + p > f . & + # f > % + ", " * ~ * @ + % . + + @ @ , , | -.j , ' ' , ' & t p , ' j , , j ' x | | + . + + _ > d = 6 ] = ..{ ; ; _ = ! 2 - d { ; ; _ ] ! = ] ! 6 >.7 7 w ! 6 = ! = - - ] . # + [ [ @ + & # + % @ & + @ + # . + . @ ) > % + + . _ ) _ @ ", " $ ~ . + . @ . # + @ ' , x 9 | x j ' , ' # 5 k u S ' ' S , l 9 o < . H . # L > L - = - h ; ; ; ; ; $ = - _ ; ; ; ; ; e ] - - 2 7 7 7 7 7 7 = - = - F F = + . @ O @ . % + . + + . . . + & + & H + . % > _ . @ @ * > $ + ", " c * @ . # . . . . @ , ' , 3 v | 9 x ,.j z.7 7 , ' S ' j | o | < + . % % 4 F > L 6 ] = { ; ; ; ; ; ; ..] ; ; ; ; ; ; ; _ 5 = 7 7 7 7 7 7 7 w - = 5 > ) 2 + @ # + G + + @ . . + . @ @ + . + + + . < _ > f _ _ & f > * + ", " $ 1 # + % % + . # @ , m , ' s | | | o | l 2.s.o 9 o | 9 o K |.+ @ @ + + ] L ) L ! - - ; ; ; ; ; ; ; F Z ; ; ; ; ; ; ; % = 5 7 7 7 7 7 7 7 7 = = ! 8 > - ] . . . . @ . . + # z . . + % @ + < + . + . { > > > ) 8 > % . ", " & * . + @ + [ + . @ ' u , ' , ' ' ].j j [ +.l 9 | ` | l x , R < + + @ . - p > % = - = > ; ; ; ; ; ; L F ; ; ; ; ; ; ; % ] w 7 7 7 7 7 7 7 7 ! - 2 > 8 6 - . @ + + % @ + + @ # [ + # . . @ % $ % @ # % _ % > ) * & + @ ", " P 7 @ + & . + + @ @ @ m m @ S @ m @ @ H p : % @ S @ m @ m @ @ . + . + + 6 F 8 F 6 ! 2 _ ; ; ; ; ; ; = d ; ; ; ; ; ; ; $ - / 7 7 7 7 7 7 7 I - = 5 { > / - d . @ @ + + $ ) % . . { f # . + U { $ . + . . @ { ) @ + + . ", " >.P + @ . # . + @ . . p @ % + . . . + . p : % + # + @ + . + @ + % # + + - + > d - = ! = $ ; ; ; ; d - - $ ; ; ; ; ; ; L - ] w 7 7 7 7 7 7 6 ! = - > 8 = = 0 . % @ @ & > ) _ . +.> { @ + + > { f + < + . + ) > + . @ % ", " & * + . . . # . + @ + . + + . # + . . . % q p + @ # . @ @ @ z @ + . + 4 5 L ) F = 5 - - = d Z L ] - ] = ] { ; ; ; ; _ 2 - ] - 7 7 7 7 7 P = 5 - = { U ] '._ & * _ _ $ > ) > . _ 8 > % @ # 8 > ) . + # + @ ) ) @ @ . % ", " $ { # % + @ + + + . + % @ . . [ . @ . + % 8 8 f > ) { ) ) ) > 8 ) { $ _ L f ) p - - = ! - ! 6 = - - ] = 5 - d L d ] - ! = - ] - 6 6 5 6 - = - = 5 > ) ) > 8 > > > ) > { > ) @ f > 8 & . + ) > { $ $ > > $ { { . # . # ", " ~ * @ . + + . . + @ . @ + % @ + . + + + % ) { ) > > > ) { > ) ) { ) U > > ) { F = - ! - = ! = ! / = - ! - ! ] = = ! = = 5 = 6 = ] 6 = ! ! ! - = ] ; ) { f _ * ; $ * f f $ ) @ 8 > ) $ . & ) { > > > ) ) f f > & & . @ ", " { $ . @ . # < + + # + . . + # . @ . @ . p } f * . # . # @ @ + # . % * _ ..f ) d 2 ] - ! = ! L Z h ! = = = - 2 - - = ! = ] - = ! - = - ] - = - - = { ) ] 6 A + ; * + @ % 8 ) . { {.{ $ + * > _ > 8 ) & @ . * > % + + + ", " * B ~ $ * & & + . . @ % @ + @ + + & % + + . p : p @ . @ & + @ . @ . # . # h - + > L - = ! - d ; ; ; ; $ ] - = ! ] h 6 6 w w = ! = - - 5 - - - ! - ! 6 > > - ! *.. ; $ @ + . 8 > _ > +.> ) O U ) . $ ) > * + + & > * & . + ", " $ ~ * $ * { 1 * $ * $ . . + . + . . < + + . @ . + + p : F . + . + . + + . . + < . + - F ) d ! = = ] ; ; ; ; ; ; _ 6 ] - 2 6 7 7 7 7 7 6 = ] ! = = 2 ! ] = ! 6 > ) - - # @ ; $ . # @ $ > 8 ) * f > f > 8 @ _ ) > & . + % ) _ . . + ", " $ $ $ 1 e * e $ ~ B $ . # & + [ . z % . + + [ . $ ) > ) ) U { > * + & . @ + . @ % @ - }.) }.- ! - Z ; ; ; ; ; ; $ = ! - = w 7 7 7 7 7 7 6 - = = ! = = 6 - = - U > 6 - + + ; $ + + . * ) ) { + % > ) > * + + > 8 f @ + & > _ . . @ ", " & O % . + @ @ . + < . @ % . # _ ) > { { > ) ) > > # + @ . + @ + + . ] - ! 6 = = = d ; ; ; ; ; ; $ 6 = ! 2 7 7 7 7 7 7 7 6 ! = / - 2 ! = ] 6 - ) > 2 h . # ; $ + @ . % > > $ + . 8 ) { + . H > > . [ + * > & . + . ", " & . & . . . # + + + + . # . . & > * @ # @ . A > { . + . @ + . @ & @ 0 = = - ! = - L ; ; ; ; ; ; $ = - ! w 7 7 7 7 7 7 7 w %.! - = 5 - - ] = r { ) - d @ . ; 1 < # . # * 8 . + + $ $ & @ # . + @ . + + % > _ . @ . ", " * ~ * ~ { * ~ { $ * ~ * < . . @ + @ . @ + @ + & { % + + . # @ ) > @ @ . + < + . + . + - ! = 2 ! ! - $ ; ; ; ; ; d - - = 6 7 7 7 7 7 7 7 5 - ! - = ! - 2 - ! - { $ - . . + ; $ . + @ + @ # @ . + # . + + + @ + % # + + f > * # + . ", " 8 1 $ c $ $ * ~ $ c ~ * + . % . % + @ + < . . * > * @ . . + @ > ) + + [ . + @ . . % . / - = = 6 ! = = _ { ; { h ] = ! = 5 w 7 7 7 7 7 7 2 ] 2 - 2 ] ] - ] ! - = ] / @ . # ; 1 + @ + . . + & + + @ @ % . % + . . @ % H & > f @ + . ", " 1 e 1 & O & + @ [ . @ . . @ . + . + % ) > @ + + + . > > @ @ + . + . + # + @ + ! - - ] 6 6 ] - 5 - = - - = ! = = 5 w 7 7 7 7 ! = = ! ! - - - = 6 = 5 ! = + + & + ; $ . . # G % + + # . . + + H + & + [ . . # _ > _ @ + + ", " ~ $ $ . @ + # . d . + + + + . + % @ . 8 ) @ + . + % ) 8 . d . . [ . @ + + + . h 2 ! = = - ] - ! - = ] 6 - ] - = 5 ] 6 2 6 = - ! - = = / = - ] - 2 - = ] . # @ @ ; 1 < + . @ @ . @ . + + # + @ @ + + . + . . * ) * . @ + ", " { * $ # & + & . # + @ + @ % # @ + + @ > ) @ . H @ _ { & . . . + + + @ . # + + + ] - ! = = - ! = - ! 6 = - 2 U.= - = - / ! - ! 6 = ! - ! - = - ! ! / - + . < + @ ; * @ . # + + + . . . + . % + . < + . # @ + & > _ @ & % ", " ~ 1 . + @ . + @ . % @ & . @ + < + # { ) . + . . % > _ + @ + @ @ & # . & @ # + 4 ! - ] 2 - - 2 = ] - ] = 5 - - / - - = 5 - ] = = = - - = = 6 = - ! h @ + # . % ; * % . % @ . @ # # + . @ % . @ + @ + % + + _ > $ # + + ", " c $ $ + # . . . + . + . # # <.@ % @ . ) ) # + . + $ ) & @ < + . + & [ < @ + @ & . h - - ! = ! = - - - ! - ] = ! = = ! - = = - 2 - ] - ! / - ] - = h @ + . % . + ; * @ + . # . % + + . + . + @ < & + @ . @ # * ) _ @ & @ ", " * c $ + . # + @ !.!.!.z + l | 9 < + # ) { + < + @ * { D @ @ . @ . l 9 | < + . # + . ] ! = 6 ! = = / - = = - = = - = = ! = 6 ! ] = - - - ! - = - ] @ % . . # ~ $.; ; ; * & @ + + & . # % + . + . + . # . . # & { f # + + ", " ~ { * [ + & @ z T X !.Y ~ 9 9 9 9 . z > > @ + # @ f > _ . + + & 3 9 9 9 9 + @ % + # . / - ] - ] ! ] - ! 6 ] = 6 ! = - 6 - = = 5 - h ! 2 - ] 6 h @ . . @ + . ; ; $ e ; ; + . . < @ | 9 3 + < + . . & + + + G % > % G + @ ", " * 1 ~ . + @ + z b.!.!.Y $ v 9 | 9 + # $ ) _ < . . _ > & @ . . + <.K 9 | 9 . @ . + . % G 4 = - - * $ _ = - - ! = = = ] = ! 5 - = F $ * = ! - d . % # + . . + ; ; + @ ~ ; * M 1 & #.9 9 o 1 $ $ M * * * $ 1 $ $ > _ @ p + ", " ~ * { @ . . % . T X z z @ l 9 9 < % . _ ) _ @ + @ $ ) $ # . [ + . l 9 K < % + + . + @ + . + 2 6 ~ * $ = ] = - 2 - ! - - = = / 6 f ~ e ..- + @ . # G < + . @ ; ; @ . $ ; ; ; ; ; v.9 9 x.; ; ; ; ; ; ; ; ; ; ; > * + . d ", " ~ $ c # + . + @ + . . < . + & @ @ + < * > * # . . ) ) * + + . @ # . <.< + . . @ + . + @ + . . ] { * c 6 - 5 ! 5 = / - ! - ! - - Z * ~ Z @ < + & + + + & + + ; ~ * * ~ ; $ * * 1 #.9 | 9 # . & * & * @ + + % % ) * . # . ", " $ ~ 1 < + + . % @ . + + . . . + . . + % ) > > > 8 > 8 . + < . + % . + . % [ . + . @ @ . @ + % . * $ $ - - = = - - ] = ] - = - ] d $ e & + . @ . . # @ + # & ; ; ; ; ; ; & + & @ + < 3 % + . & + & % . @ d . * > & . % @ ", " c ~ c . . + @ . # . + [ . # . # + # . % e ) { ) ) > f . . + @ . + % . @ + @ + + + + < . + @ + + 1 $ e [ *.] h ! - 6 6 ] ] 4 h + W { * . + @ # # & + . + + . $ 1 $ ; ~ & @ @ . + % @ . . @ # G @ @ . . @ . @ _ ) & + . + ", " c $ $ % @ . + + . + + @ + % . + [ . + + # # @ > $ z H + + @ . + < + @ . + . + @ . [ G + + & + @ $ { * _ % # . . H . @ < . # + . % e ~ _ . + . + + # < . + @ + @ $ ; @ + . # + + . + @ . + + + . . + + + % + * ) & . @ + ", " $ 1 $ # G + @ % @ + & + @ + @ + . < @ . + + @ 8 > + @ . . . . [ + . . [ . + + @ + + + @ + . @ + * ~ $ . + @ . % + . + + . . % + . $ { W @ % . & . + @ & + # . . * ; + . @ . @ . @ + . . [ + . + . @ . . @ @ $ ) & . + . ", " ; ; ; ; ; ; $ c ~ B $ 1 % % . # . + # . @ . @ @ + + . + H . # ) > @ . + @ @ + . # @ . + @ % % % _ & * & & _ . . . 1 { * + + @ . @ . % @ + . . . & 1 $ & + + # . . . + @ . # [ + $ ; @ @ + . . + # + + @ . + 3 l l 9 -.K #.# * > _ @ + [ ", " ; ; ; ; e ; ; ; * $ * $ ~ c ~ B $ $ $ * G & * _ . * & G & % 4 # { 8 W . 0 # & _ * ~ $ * { 1 c 1 { ~ ~ * $ $ $ * ~ $ * $ 1 . & & % _ W O % & . * . & 1 * & & & & & & % . & & O & & $ e % % & & & & * ~ { * $ #.` | ` 9 v K v #.f > $ . . # ; ; ; ; ", " ; ; T X T Y ; ; $ $ $ * ~ $ * $ c * ~ { 1 { * ~ c ~ { * ~ 0 7 7 > { ~ & 7 7 & ~ $ $ { 1 { $ $ $ * { * e * e * { 1 $ B $ ~ { c ~ ~ * $ e $ B $ 1 $ e $ c $ B $ c * { { * $ $ $ * ~ o.~ $ c { e * $ 1 $ 1 c ~ #.v 9 -.v l v | -.{ ) ~ ~ { $ c ~ * e ; ; ; ; ; ", " ; ; !.=.=.!.; ; { & 1 $ $ $ c $ $ $ c ~ * ~ * $ { 1 * 7 k $ $ $ * i i _ * 1 ~ $ * $ 1 $ * & & & & & O & 1 $ 1 $ 1 * $ $ c ~ f 1 1 $ ~ c ~ c $ $ { * * ~ * ~ 1 $ { 1 $ $ { ~ * { ~ 1 ~ _ e ~ c ~ $ $ $ M o ` 9 -.| ` | 8.1 * $ 1 $ * $ $ $ e 1 T X ~ ; ; ", " ; ; X T X Y ; ; . m + . . # . * . & & & & W * & _ . & _ O & * . * . & & . # . . @ . + + z . + . @ . + . # + . % * . _ & & & * * _ % & . & O & & * & * & _ & O & & 1 & & G _ % . & & O * & & . + @ m + @ < < + + @ @ + [ . * * ~ B { $ * ; Y =.X 1 ; ; ", " ; ; ~ Y Y ; ; % . . # . . . < + + @ . # . + . @ + + + @ . + < @ + . + . . + @ . + + . @ @ . . # . + @ + . @ + @ # + . + @ @ . @ Z + [ . . + . + . + . + + @ . # + + + + + + . + % @ @ + + @ . d & . + % # . % . # . . + + + @ # ; Y T X ~ ; ; ", " ; ; ; ; ; ; # @ < d & + [ G + . + + + @ @ d + [ . + H @ . . + + . # % @ + @ + . @ + % + H . % % + . @ # + O . + @ % + + # + + @ Z @ + . [ + + . @ + @ @ + . . . @ + % + G @ @ . . . @ + @ @ + + # + . [ + @ & . @ # . . + + ; e 1 1 ; ; ", " ; ; ; ; ; ; ; ; ", " ", " "}; golist-0.3/po/0000777000175000017500000000000007344217152007045 5golist-0.3/po/ChangeLog0000644000175000017500000000014107344217000010517 2001-09-01 gettextize * Makefile.in.in: Upgrade to gettext-0.10.39. golist-0.3/po/Makefile.in.in0000644000175000017500000001214407333021362011427 # Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. PACKAGE = @PACKAGE@ VERSION = @VERSION@ # These two variables depend on the location of this directory. subdir = po top_builddir = .. SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` CC = @CC@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ $(POFILES) $(GMOFILES) POTFILES = \ CATALOGS = @CATALOGS@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ --add-comments --keyword=_ --keyword=N_ \ --files-from=$(srcdir)/POTFILES.in \ && test ! -f $(PACKAGE).po \ || ( rm -f $(srcdir)/$(PACKAGE).pot \ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(DESTDIR)$$dir; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ fi; \ done # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ done if test "$(PACKAGE)" = "gettext"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(PACKAGE).po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ cp -p $$dir/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(PACKAGE).pot if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ cd $(srcdir); \ catalogs='$(GMOFILES)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ mv -f $$lang.new.po $$lang.po; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$lang.new.po; \ fi; \ done $(MAKE) update-gmo update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/po/POTFILES.in0000644000175000017500000000020407341535732010536 # List of source files containing translatable strings. src/about.c src/control.c src/games.c src/main.c src/players.c src/print.c golist-0.3/po/golist.pot0000644000175000017500000001174507344217152011016 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2001-09-01 19:44+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/about.c:29 msgid "Copyright 2001 Jochen Voss" msgstr "" #: src/about.c:31 msgid "" "A program to keep track of games results for the asian game of Go. It " "contains some logic to estimate the players' strenghts." msgstr "" #: src/control.c:50 #, c-format msgid " %s %s: %d players, %d games" msgstr "" #: src/control.c:125 msgid "GoList: choose file" msgstr "" #: src/control.c:140 msgid "GoList: Browse Files For Open" msgstr "" #: src/control.c:210 msgid "" "The database is modified but not saved.\n" "Save it now?" msgstr "" #: src/control.c:227 src/control.c:267 msgid "Save database:" msgstr "" #: src/control.c:253 msgid "Open database:" msgstr "" #: src/control.c:302 msgid "New database" msgstr "" #: src/control.c:303 msgid "Create a new empty database" msgstr "" #: src/control.c:388 src/players.c:345 msgid "games" msgstr "" #: src/control.c:389 msgid "open the game window" msgstr "" #: src/control.c:392 msgid "players" msgstr "" #: src/control.c:393 msgid "open the player window" msgstr "" #: src/control.c:396 msgid "compute strengths" msgstr "" #: src/control.c:397 msgid "toggle the estimation process" msgstr "" #: src/control.c:408 msgid "GoList - control center" msgstr "" #: src/games.c:61 msgid "date: " msgstr "" #: src/games.c:65 msgid "players: " msgstr "" #: src/games.c:69 msgid "result: " msgstr "" #: src/games.c:73 msgid "game: " msgstr "" #: src/games.c:103 msgid "black wins" msgstr "" #: src/games.c:108 msgid "jigo" msgstr "" #: src/games.c:115 msgid "white wins" msgstr "" #: src/games.c:124 msgid "board: " msgstr "" #: src/games.c:135 msgid " handicap: " msgstr "" #: src/games.c:143 msgid " komi: " msgstr "" #: src/games.c:229 msgid "GoList - Add new games" msgstr "" #: src/games.c:230 src/players.c:161 msgid "Add" msgstr "" #: src/games.c:295 msgid "GoList - Edit game" msgstr "" #: src/games.c:354 msgid "Print all games ..." msgstr "" #: src/games.c:355 msgid "Print the full list of games" msgstr "" #: src/games.c:365 msgid "Add new games ..." msgstr "" #: src/games.c:366 msgid "Add new games to the database" msgstr "" #: src/games.c:368 msgid "Edit game ..." msgstr "" #: src/games.c:369 msgid "Modify the database entry for the current game" msgstr "" #: src/games.c:411 msgid "date" msgstr "" #: src/games.c:412 msgid "black" msgstr "" #: src/games.c:413 msgid "white" msgstr "" #: src/games.c:414 msgid "board" msgstr "" #: src/games.c:415 msgid "handicap" msgstr "" #: src/games.c:416 msgid "komi" msgstr "" #: src/games.c:417 msgid "result" msgstr "" #: src/games.c:418 msgid "prob." msgstr "" #: src/games.c:421 msgid "GoList - game manager" msgstr "" #: src/main.c:32 msgid "Estimate some internal constants (needs a lot of data)" msgstr "" #: src/main.c:58 msgid "At most one command line argument is allowed" msgstr "" #: src/players.c:83 msgid "name: " msgstr "" #: src/players.c:92 msgid "token: " msgstr "" #: src/players.c:101 msgid "rank: " msgstr "" #: src/players.c:160 msgid "GoList - Add new players" msgstr "" #: src/players.c:210 msgid "GoList - Edit player" msgstr "" #: src/players.c:279 msgid "Print player list ..." msgstr "" #: src/players.c:280 msgid "Print the list of all players" msgstr "" #: src/players.c:282 msgid "Print player sheet ..." msgstr "" #: src/players.c:283 msgid "Print an info sheet for the selected player" msgstr "" #: src/players.c:293 msgid "Add new players ..." msgstr "" #: src/players.c:294 msgid "Add new players to the database" msgstr "" #: src/players.c:296 msgid "Edit player ..." msgstr "" #: src/players.c:297 msgid "Modify the database entry for the current player" msgstr "" #: src/players.c:342 msgid "name" msgstr "" #: src/players.c:343 msgid "token" msgstr "" #: src/players.c:344 msgid "rank" msgstr "" #: src/players.c:346 msgid "wins" msgstr "" #: src/players.c:347 msgid "c.rank" msgstr "" #: src/players.c:348 msgid "score" msgstr "" #: src/players.c:351 msgid "GoList - player manager" msgstr "" #: src/print.c:223 src/print.c:309 src/print.c:548 msgid "Print preview" msgstr "" #: src/print.c:438 #, c-format msgid "player sheet for %s" msgstr "" #: src/print.c:449 #, c-format msgid "date: %x" msgstr "" #: src/print.c:455 #, c-format msgid "token: %s" msgstr "" #: src/print.c:459 #, c-format msgid "nominal rank: %s" msgstr "" #: src/print.c:467 #, c-format msgid "estimated rank: %s" msgstr "" #: src/print.c:477 #, c-format msgid "number of games: %d" msgstr "" #: src/print.c:481 #, c-format msgid "number of wins: %d (%.1f%%)" msgstr "" #: src/print.c:490 #, c-format msgid "last recorded game: %x" msgstr "" golist-0.3/po/de.po0000644000175000017500000001507307344217152007717 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GoList 0.3\n" "POT-Creation-Date: 2001-09-01 19:44+0200\n" "PO-Revision-Date: 2001-09-01 18:59+0200\n" "Last-Translator: Jochen Voss \n" "Language-Team: german \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/about.c:29 msgid "Copyright 2001 Jochen Voss" msgstr "" #: src/about.c:31 msgid "" "A program to keep track of games results for the asian game of Go. It " "contains some logic to estimate the players' strenghts." msgstr "" "Ein Programm zum Speichern von Spielergebnissen für das Asiatische\n" "Brettspiel Go. Es kann aus den Daten Schätzungen über die\n" "Spielstärken der einzelnen Spieler ableiten." #: src/control.c:50 #, c-format msgid " %s %s: %d players, %d games" msgstr " %s %s: %d Spieler, %d Spiele" #: src/control.c:125 msgid "GoList: choose file" msgstr "GoList: Dateiauswahl" #: src/control.c:140 msgid "GoList: Browse Files For Open" msgstr "GoList: Wähle Dateinamen" #: src/control.c:210 msgid "" "The database is modified but not saved.\n" "Save it now?" msgstr "" "Die Datenbank ist geändert aber nicht gespeichert.\n" "Jetzt speichern?" #: src/control.c:227 src/control.c:267 msgid "Save database:" msgstr "Datenbank speichern:" #: src/control.c:253 msgid "Open database:" msgstr "Datenbank öffnen:" #: src/control.c:302 msgid "New database" msgstr "Neue Datenbank" #: src/control.c:303 msgid "Create a new empty database" msgstr "Erzeuge eine neue, leere Datenbank" #: src/control.c:388 src/players.c:345 msgid "games" msgstr "Spiele" #: src/control.c:389 msgid "open the game window" msgstr "öffne das Fenster zum Verwalten der Spiele" #: src/control.c:392 msgid "players" msgstr "Spieler" #: src/control.c:393 msgid "open the player window" msgstr "öffne das Fenster zum Verwalten der Spieler" #: src/control.c:396 msgid "compute strengths" msgstr "Spielstärken" #: src/control.c:397 msgid "toggle the estimation process" msgstr "Schätzen der Spielstärken ein-/ausschalten" #: src/control.c:408 msgid "GoList - control center" msgstr "GoList - Steuerung" #: src/games.c:61 msgid "date: " msgstr "Datum: " #: src/games.c:65 msgid "players: " msgstr "Spieler: " #: src/games.c:69 msgid "result: " msgstr "Ergebnis: " #: src/games.c:73 msgid "game: " msgstr "Spiel: " #: src/games.c:103 msgid "black wins" msgstr "schwarz gewinnt" #: src/games.c:108 msgid "jigo" msgstr "" #: src/games.c:115 msgid "white wins" msgstr "weiss gewinnt" #: src/games.c:124 msgid "board: " msgstr "Brett: " #: src/games.c:135 msgid " handicap: " msgstr " Vorgabe: " #: src/games.c:143 msgid " komi: " msgstr " Komi: " #: src/games.c:229 msgid "GoList - Add new games" msgstr "GoList - Spiele hinzufügen" #: src/games.c:230 src/players.c:161 msgid "Add" msgstr "Hinzufügen" #: src/games.c:295 msgid "GoList - Edit game" msgstr "GoList - Spiel ändern" #: src/games.c:354 msgid "Print all games ..." msgstr "Drucke alle Spiele ..." #: src/games.c:355 msgid "Print the full list of games" msgstr "drucke die gesamte Spieleliste" #: src/games.c:365 msgid "Add new games ..." msgstr "Spiele hinzufügen ..." #: src/games.c:366 msgid "Add new games to the database" msgstr "füge neue Spiele zur Datenbank hinzu" #: src/games.c:368 msgid "Edit game ..." msgstr "Spiel ändern ..." #: src/games.c:369 msgid "Modify the database entry for the current game" msgstr "ändere den Eintrag für das aktuelle Spiel" #: src/games.c:411 msgid "date" msgstr "Datum" #: src/games.c:412 msgid "black" msgstr "schwarz" #: src/games.c:413 msgid "white" msgstr "weiss" #: src/games.c:414 msgid "board" msgstr "Brett" #: src/games.c:415 msgid "handicap" msgstr "Vorgabe" #: src/games.c:416 msgid "komi" msgstr "Komi" #: src/games.c:417 msgid "result" msgstr "Ergebnis" #: src/games.c:418 msgid "prob." msgstr "Wskeit" #: src/games.c:421 msgid "GoList - game manager" msgstr "GoList - Spiele" #: src/main.c:32 msgid "Estimate some internal constants (needs a lot of data)" msgstr "Schätze einige intere Konstanten (braucht viele Daten)" #: src/main.c:58 msgid "At most one command line argument is allowed" msgstr "Es ist höchstens ein Kommandozeilenargument erlaubt" #: src/players.c:83 msgid "name: " msgstr "Name: " #: src/players.c:92 msgid "token: " msgstr "Token: " #: src/players.c:101 msgid "rank: " msgstr "Rang: " #: src/players.c:160 msgid "GoList - Add new players" msgstr "GoList - Spieler hinzufügen" #: src/players.c:210 msgid "GoList - Edit player" msgstr "GoList - Spieler ändern" #: src/players.c:279 msgid "Print player list ..." msgstr "Spielerliste drucken ..." #: src/players.c:280 msgid "Print the list of all players" msgstr "drucke die gesamte Spielerliste" #: src/players.c:282 msgid "Print player sheet ..." msgstr "Spielerinfo drucken ..." #: src/players.c:283 msgid "Print an info sheet for the selected player" msgstr "drucke eine Informationsseite für den gewählten Spieler" #: src/players.c:293 msgid "Add new players ..." msgstr "Spieler hinzufügen ..." #: src/players.c:294 msgid "Add new players to the database" msgstr "füge neue Spieler zur Datenbank hinzu" #: src/players.c:296 msgid "Edit player ..." msgstr "Spieler ändern ..." #: src/players.c:297 msgid "Modify the database entry for the current player" msgstr "Ändere den Datenbankeintrag für den aktuellen Spieler" #: src/players.c:342 msgid "name" msgstr "Name" #: src/players.c:343 msgid "token" msgstr "Token" #: src/players.c:344 msgid "rank" msgstr "Rang" #: src/players.c:346 msgid "wins" msgstr "Siege" #: src/players.c:347 msgid "c.rank" msgstr "b.Rang" #: src/players.c:348 msgid "score" msgstr "Stärke" #: src/players.c:351 msgid "GoList - player manager" msgstr "GoList - Spieler" #: src/print.c:223 src/print.c:309 src/print.c:548 msgid "Print preview" msgstr "Druckvorschau" #: src/print.c:438 #, c-format msgid "player sheet for %s" msgstr "Infoseite für Spieler %s" #: src/print.c:449 #, c-format msgid "date: %x" msgstr "Datum: %x" #: src/print.c:455 #, c-format msgid "token: %s" msgstr "Token: %s" #: src/print.c:459 #, c-format msgid "nominal rank: %s" msgstr "nominelle Spielstärke: %s" #: src/print.c:467 #, c-format msgid "estimated rank: %s" msgstr "geschätzte Spielstärke: %s" #: src/print.c:477 #, c-format msgid "number of games: %d" msgstr "Anzahl der Spiele: %d" #: src/print.c:481 #, c-format msgid "number of wins: %d (%.1f%%)" msgstr "Anzahl der Siege: %d (%.1f%%)" #: src/print.c:490 #, c-format msgid "last recorded game: %x" msgstr "Letztes notiertes Spiel: %x" golist-0.3/po/de.gmo0000644000175000017500000001167407344217152010066 Þ•KteÌ` anw~”)G[,{¨ ÄÒ6â0I\q‰Ÿ·Õ.é0 I V e +y ¥ » Ò à ý  4* _ e p v ~ … — œ £ ¬ ¿ Æ Ì Õ Ú ñ ö ý  " > S j ~ †  – › ¢ © ² ¸ Ö Ü ä î ô ÿ * / ; D ªb $.S%j3"Äçø6 B]y§ºÊÛô) 53ixŠ7¡Ùò 7WCl°¸ÈÎÖ Ýêð ø%,49UZa{‘*¯+Ú '18=D MX*_Š ˜¢ ¨¶$G87542=" )EJ0 :K-9<'>!AF+ I /D3,.H;*?B (@&%#61 C handicap: komi: %s %s: %d players, %d gamesA program to keep track of games results for the asian game of Go. It contains some logic to estimate the players' strenghts.AddAdd new games ...Add new games to the databaseAdd new players ...Add new players to the databaseAt most one command line argument is allowedCreate a new empty databaseEdit game ...Edit player ...Estimate some internal constants (needs a lot of data)GoList - Add new gamesGoList - Add new playersGoList - Edit gameGoList - Edit playerGoList - control centerGoList - game managerGoList - player managerGoList: Browse Files For OpenGoList: choose fileModify the database entry for the current gameModify the database entry for the current playerNew databaseOpen database:Print all games ...Print an info sheet for the selected playerPrint player list ...Print player sheet ...Print previewPrint the full list of gamesPrint the list of all playersSave database:The database is modified but not saved. Save it now?blackblack winsboardboard: c.rankcompute strengthsdatedate: date: %xestimated rank: %sgame: gameshandicapkomilast recorded game: %xnamename: nominal rank: %snumber of games: %dnumber of wins: %d (%.1f%%)open the game windowopen the player windowplayer sheet for %splayersplayers: prob.rankrank: resultresult: scoretoggle the estimation processtokentoken: token: %swhitewhite winswinsProject-Id-Version: GoList 0.3 POT-Creation-Date: 2001-09-01 19:44+0200 PO-Revision-Date: 2001-09-01 18:59+0200 Last-Translator: Jochen Voss Language-Team: german MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Vorgabe: Komi: %s %s: %d Spieler, %d SpieleEin Programm zum Speichern von Spielergebnissen für das Asiatische Brettspiel Go. Es kann aus den Daten Schätzungen über die Spielstärken der einzelnen Spieler ableiten.HinzufügenSpiele hinzufügen ...füge neue Spiele zur Datenbank hinzuSpieler hinzufügen ...füge neue Spieler zur Datenbank hinzuEs ist höchstens ein Kommandozeilenargument erlaubtErzeuge eine neue, leere DatenbankSpiel ändern ...Spieler ändern ...Schätze einige intere Konstanten (braucht viele Daten)GoList - Spiele hinzufügenGoList - Spieler hinzufügenGoList - Spiel ändernGoList - Spieler ändernGoList - SteuerungGoList - SpieleGoList - SpielerGoList: Wähle DateinamenGoList: Dateiauswahländere den Eintrag für das aktuelle SpielÄndere den Datenbankeintrag für den aktuellen SpielerNeue DatenbankDatenbank öffnen:Drucke alle Spiele ...drucke eine Informationsseite für den gewählten SpielerSpielerliste drucken ...Spielerinfo drucken ...Druckvorschaudrucke die gesamte Spielelistedrucke die gesamte SpielerlisteDatenbank speichern:Die Datenbank ist geändert aber nicht gespeichert. Jetzt speichern?schwarzschwarz gewinntBrettBrett: b.RangSpielstärkenDatumDatum: Datum: %xgeschätzte Spielstärke: %sSpiel: SpieleVorgabeKomiLetztes notiertes Spiel: %xNameName: nominelle Spielstärke: %sAnzahl der Spiele: %dAnzahl der Siege: %d (%.1f%%)öffne das Fenster zum Verwalten der Spieleöffne das Fenster zum Verwalten der SpielerInfoseite für Spieler %sSpielerSpieler: WskeitRangRang: ErgebnisErgebnis: StärkeSchätzen der Spielstärken ein-/ausschaltenTokenToken: Token: %sweissweiss gewinntSiegegolist-0.3/doc/0000777000175000017500000000000007344217152007174 5golist-0.3/doc/Makefile.in0000644000175000017500000002702207344217152011160 # Makefile.in generated automatically by automake 1.4-p4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # This is a blank Makefile.am for using gtk-doc. # Copy this to your project's API docs directory and modify the variables to # suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples # of using the various options. # The name of the module, e.g. 'glib'. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ GNOMEUI_LIBS = @GNOMEUI_LIBS@ GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ GNOME_CONFIG = @GNOME_CONFIG@ GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ GNOME_LIBDIR = @GNOME_LIBDIR@ GNOME_LIBS = @GNOME_LIBS@ GNORBA_CFLAGS = @GNORBA_CFLAGS@ GNORBA_LIBS = @GNORBA_LIBS@ GTKDOC = @GTKDOC@ GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ HTML_DIR = @HTML_DIR@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ JVLIBS = @JVLIBS@ JVRAND_CFLAGS = @JVRAND_CFLAGS@ JVRAND_LIBS = @JVRAND_LIBS@ LIBICONV = @LIBICONV@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ ORBIT_CFLAGS = @ORBIT_CFLAGS@ ORBIT_CONFIG = @ORBIT_CONFIG@ ORBIT_IDL = @ORBIT_IDL@ ORBIT_LIBS = @ORBIT_LIBS@ PACKAGE = @PACKAGE@ PIXMAP_DIR = @PIXMAP_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ ZVT_LIBS = @ZVT_LIBS@ DOC_MODULE = go # The top-level SGML file. Change it if you want. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. DOC_SOURCE_DIR = $(top_srcdir)/lib # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS = # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS = # Extra options to supply to gtkdoc-fixref. FIXXREF_OPTIONS = # Used for dependencies. HFILE_GLOB = CFILE_GLOB = # Header files to ignore when scanning. IGNORE_HFILES = # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). content_files = # Other files to distribute. extra_files = # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib # contains GtkObjects/GObjects and you want to document signals and properties. GTKDOC_CFLAGS = -I$(top_srcdir)/lib $(shell gnome-config --cflags gtk xml) GTKDOC_LIBS = ../lib/libgo.a $(JVLIBS) $(JVRAND_LIBS) -lm GTKDOC_CC = $(CC) GTKDOC_LD = $(CC) # If you need to override some of the declarations, place them in this file # and uncomment this line. #DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt DOC_OVERRIDES = ########################################################################### # Everything below here is generic and you shouldn't need to change it. ########################################################################### TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) EXTRA_DIST = $(content_files) $(extra_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) $(DOC_MODULE).types $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp SCANOBJ_FILES = $(DOC_MODULE).args $(DOC_MODULE).hierarchy $(DOC_MODULE).signals mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = doc distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall: uninstall-am all-am: Makefile all-local all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean-local clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am \ maintainer-clean-local @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: tags distdir info-am info dvi-am dvi check check-am \ installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-local all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean @ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp #### scan #### @ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) @ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***' @ENABLE_GTK_DOC_TRUE@ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \ @ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scanobj --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ @ENABLE_GTK_DOC_TRUE@ else \ @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) ; \ @ENABLE_GTK_DOC_TRUE@ for i in $(SCANOBJ_FILES) ; do \ @ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \ @ENABLE_GTK_DOC_TRUE@ done \ @ENABLE_GTK_DOC_TRUE@ fi @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) @ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp @ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp @ENABLE_GTK_DOC_TRUE@ @true #### templates #### @ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) @ENABLE_GTK_DOC_TRUE@ @echo '*** Rebuilding template files ***' @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) @ENABLE_GTK_DOC_TRUE@ touch tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@ @true #### sgml #### @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml @ENABLE_GTK_DOC_TRUE@ @echo '*** Building SGML ***' @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) @ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp @ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp @ENABLE_GTK_DOC_TRUE@ @true #### html #### @ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @ENABLE_GTK_DOC_TRUE@ @echo '*** Building HTML ***' @ENABLE_GTK_DOC_TRUE@ test -d $(srcdir)/html || mkdir $(srcdir)/html @ENABLE_GTK_DOC_TRUE@ cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) @ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) @ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences' @ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) @ENABLE_GTK_DOC_TRUE@ touch html-build.stamp ############## clean-local: rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) rm -f go-ranking.aux go-ranking.blg go-ranking.dvi go-ranking.log go-scan.o maintainer-clean-local: clean cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt #install-data-local: # $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) # (installfiles=`echo $(srcdir)/html/*.html`; \ # if test "$$installfiles" = '$(srcdir)/html/*.html'; \ # then echo '-- Nothing to install' ; \ # else \ # for i in $$installfiles; do \ # echo '-- Installing '$$i ; \ # $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ # done; \ # echo '-- Installing $(srcdir)/html/index.sgml' ; \ # $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ # fi) # # Require gtk-doc when making dist # @ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: @ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: @ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" @ENABLE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc dist-hook-local mkdir $(distdir)/tmpl mkdir $(distdir)/sgml mkdir $(distdir)/html -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml -cp $(srcdir)/html/index.sgml $(distdir)/html -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html images=$(HTML_IMAGES) ; \ for i in $$images ; do \ cp $(srcdir)/$$i $(distdir)/html ; \ done .PHONY : dist-hook-local # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: golist-0.3/doc/Makefile.am0000644000175000017500000001260707341535732011156 ## Process this file with automake to produce Makefile.in # This is a blank Makefile.am for using gtk-doc. # Copy this to your project's API docs directory and modify the variables to # suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples # of using the various options. # The name of the module, e.g. 'glib'. DOC_MODULE=go # The top-level SGML file. Change it if you want. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml # The directory containing the source code. Relative to $(srcdir). # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. DOC_SOURCE_DIR=$(top_srcdir)/lib # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS= # Extra options to supply to gtkdoc-mkdb. MKDB_OPTIONS= # Extra options to supply to gtkdoc-fixref. FIXXREF_OPTIONS= # Used for dependencies. HFILE_GLOB= CFILE_GLOB= # Header files to ignore when scanning. IGNORE_HFILES= # Images to copy into HTML directory. HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). content_files = # Other files to distribute. extra_files = # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib # contains GtkObjects/GObjects and you want to document signals and properties. GTKDOC_CFLAGS = -I$(top_srcdir)/lib $(shell gnome-config --cflags gtk xml) GTKDOC_LIBS = ../lib/libgo.a $(JVLIBS) $(JVRAND_LIBS) -lm GTKDOC_CC=$(CC) GTKDOC_LD=$(CC) # If you need to override some of the declarations, place them in this file # and uncomment this line. #DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt DOC_OVERRIDES = ########################################################################### # Everything below here is generic and you shouldn't need to change it. ########################################################################### TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) EXTRA_DIST = \ $(content_files) \ $(extra_files) \ $(HTML_IMAGES) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE).types \ $(DOC_MODULE)-sections.txt \ $(DOC_OVERRIDES) DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).signals if ENABLE_GTK_DOC all-local: html-build.stamp #### scan #### scan-build.stamp: $(HFILE_GLOB) @echo '*** Scanning header files ***' if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scanobj --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ else \ cd $(srcdir) ; \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi cd $(srcdir) && \ gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp @true #### templates #### tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) @echo '*** Rebuilding template files ***' cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true #### sgml #### sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml @echo '*** Building SGML ***' cd $(srcdir) && \ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true #### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo '*** Building HTML ***' test -d $(srcdir)/html || mkdir $(srcdir)/html cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) @echo '-- Fixing Crossreferences' cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) touch html-build.stamp endif ############## clean-local: rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) rm -f go-ranking.aux go-ranking.blg go-ranking.dvi go-ranking.log go-scan.o maintainer-clean-local: clean cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt #install-data-local: # $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) # (installfiles=`echo $(srcdir)/html/*.html`; \ # if test "$$installfiles" = '$(srcdir)/html/*.html'; \ # then echo '-- Nothing to install' ; \ # else \ # for i in $$installfiles; do \ # echo '-- Installing '$$i ; \ # $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ # done; \ # echo '-- Installing $(srcdir)/html/index.sgml' ; \ # $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ # fi) # # Require gtk-doc when making dist # if ENABLE_GTK_DOC dist-check-gtkdoc: else dist-check-gtkdoc: @echo "*** gtk-doc must be installed and enabled in order to make dist" @false endif dist-hook: dist-check-gtkdoc dist-hook-local mkdir $(distdir)/tmpl mkdir $(distdir)/sgml mkdir $(distdir)/html -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml -cp $(srcdir)/html/index.sgml $(distdir)/html -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html images=$(HTML_IMAGES) ; \ for i in $$images ; do \ cp $(srcdir)/$$i $(distdir)/html ; \ done .PHONY : dist-hook-local golist-0.3/doc/go-docs.sgml0000644000175000017500000000223407344211333011323 ]> The Go API Jochen Voß
voss@mathematik.uni-kl.de
2001 Jochen Voß
The Go API Reference &golist-golist; &GoPlayer; &GoGame; &GoData; &GoClient; &GoComponents; &GoPlayerList; &GoGameList; &GoHistory; &GoStrengths;
golist-0.3/doc/go.types0000644000175000017500000000031307344211344010575 #include go_player_get_type go_game_get_type go_data_get_type go_client_get_type go_components_get_type go_player_list_get_type go_game_list_get_type go_history_get_type go_strengths_get_type golist-0.3/doc/go-sections.txt0000644000175000017500000001123507344211355012104
golist go.h str_to_int str_to_double rank_to_strength snprint_strength
go-player GoPlayer go-player.h GoPlayer go_player_new go_player_read go_player_write GO_PLAYER GO_PLAYER_CONST GO_IS_PLAYER GO_TYPE_PLAYER go_player_get_type GO_PLAYER_CLASS GO_PLAYER_GET_CLASS GO_PLAYER_ARG_NAME GO_PLAYER_GET_ARG_NAME GO_PLAYER_ARG_TOKEN GO_PLAYER_GET_ARG_TOKEN GO_PLAYER_ARG_RANK GO_PLAYER_GET_ARG_RANK GO_PLAYER_ARG_STRENGTH GO_PLAYER_GET_ARG_STRENGTH
go-game GoGame go-game.h GoGame go_game_new go_game_new_fake go_game_read go_game_write GoBoardSize board_to_str str_to_board GoGameResult result_to_str str_to_result GO_GAME GO_GAME_CONST GO_IS_GAME GO_TYPE_GAME go_game_get_type GO_GAME_CLASS GO_GAME_GET_CLASS GO_GAME_ARG_BLACK GO_GAME_GET_ARG_BLACK GO_GAME_ARG_WHITE GO_GAME_GET_ARG_WHITE GO_GAME_ARG_BOARD GO_GAME_GET_ARG_BOARD GO_GAME_ARG_HANDICAP GO_GAME_GET_ARG_HANDICAP GO_GAME_ARG_KOMI GO_GAME_GET_ARG_KOMI
go-data GoData go-data.h go_cb GoData go_data_new go_data_load go_data_save go_data_clear go_data_notify_games_changed go_data_notify_players_changed go_data_add_client go_data_remove_client go_data_add_player go_data_remove_player go_data_player_lock go_data_player_unlock go_data_player_count go_data_player_tokens go_data_find_token go_data_player_game_count go_data_player_win_count go_data_player_game_index go_data_player_component go_data_players_equiv go_data_add_game go_data_remove_game go_data_game_lock go_data_game_unlock go_data_game_count GO_DATA GO_DATA_CONST GO_IS_DATA GO_TYPE_DATA go_data_get_type GO_DATA_CLASS GO_DATA_GET_CLASS
go-client GoClient go-client.h GoClient go_client_register_player go_client_unregister_player go_client_player_count go_client_player go_client_foreach_player go_client_sort_players go_client_register_game go_client_unregister_game go_client_game_count go_client_game go_client_foreach_game go_client_redisplay go_client_make_game_visible go_client_print_player go_client_print_game go_client_select_game GoClientGameFunc GoClientPlayerFunc GoComparePlayersFunc GO_CLIENT GO_CLIENT_CONST GO_IS_CLIENT GO_TYPE_CLIENT go_client_get_type GO_CLIENT_CLASS GO_CLIENT_GET_CLASS
go-components GoComponents go-components.h GoComponents go_components_new go_components_geq go_components_equivalent go_components_index go_components_direct_geq go_components_dump GO_COMPONENTS GO_COMPONENTS_CONST GO_IS_COMPONENTS GO_TYPE_COMPONENTS go_components_get_type GO_COMPONENTS_CLASS GO_COMPONENTS_GET_CLASS
go-player-list GoPlayerList go-player-list.h GoPlayerList go_player_list_new GO_PLAYER_LIST GO_PLAYER_LIST_CONST GO_IS_PLAYER_LIST GO_TYPE_PLAYER_LIST go_player_list_get_type GO_PLAYER_LIST_CLASS GO_PLAYER_LIST_GET_CLASS GO_PLAYER_LIST_ARG_CLIST GO_PLAYER_LIST_GET_ARG_CLIST
go-game-list GoGameList go-game-list.h GoGameList go_game_list_new GO_GAME_LIST GO_GAME_LIST_CONST GO_IS_GAME_LIST GO_TYPE_GAME_LIST go_game_list_get_type GO_GAME_LIST_CLASS GO_GAME_LIST_GET_CLASS GO_GAME_LIST_ARG_CLIST GO_GAME_LIST_GET_ARG_CLIST
go-history GoHistory go-history.h GoHistory go_history_new go_history_set_length go_history_increase_length go_history_get_strength go_history_probability go_history_compensator go_history_write_back GO_HISTORY GO_HISTORY_CONST GO_IS_HISTORY GO_TYPE_HISTORY go_history_get_type GO_HISTORY_CLASS GO_HISTORY_GET_CLASS GO_HISTORY_SIGNAL_ADD_PARAMETER GO_HISTORY_SIGNAL_REMOVE_PARAMETER
go-strengths GoStrengths go-strengths.h GoStrengths go_strengths_new go_strengths_probability go_strengths_find_handicap go_strengths_find_komi go_strengths_optimize go_strengths_parameters_print go_strengths_check_preconditions GO_STRENGTHS GO_STRENGTHS_CONST GO_IS_STRENGTHS GO_TYPE_STRENGTHS go_strengths_get_type GO_STRENGTHS_CLASS GO_STRENGTHS_GET_CLASS GO_DATA_SIGNAL_CHANGED
golist-0.3/doc/tmpl/0000755000175000017500000000000007344217152010144 5golist-0.3/doc/tmpl/go-all.sgml0000644000175000017500000000032407344217152012122 go-all golist-0.3/doc/tmpl/go-client.sgml0000644000175000017500000000475407344217152012643 GoClient access the GoData databases Objects derived from this type may be used to access the data of a #GoData object. This is an abstract base class of which no objects may be instantiated. Derived classes, which use the GoClient infrastructure, are #GoPlayerList and #GoGameList. #GoData @data: @self: @player: @self: @player: @self: @Returns: @self: @i: @Returns: @self: @f: @data: @self: @compare_players_fn: @client_data: @self: @game: @self: @game: @self: @Returns: @self: @i: @Returns: @self: @f: @data: @self: @games: @players: @self: @g: @self: @player: @i: @n: @client_data: @self: @game: @i: @n: @client_data: @self: @g: @i: @c: @g: @i: @n: @client_data: @p: @c: @p: @i: @n: @client_data: @a: @b: @client_data: @Returns: golist-0.3/doc/tmpl/go-components.sgml0000644000175000017500000000232707344217152013544 GoComponents calculate the connected components of the game graph The #GoComponents objects are used to keep track of the connected components of the game graph. Two players are connected in this graph, if the difference of their go-playing strengths may be estimated. Objects of this class are automatically generated by #GoData objects. You should not need to use objects of this class directly. #GoData @data: @Returns: @self: @a: @b: @Returns: @self: @a: @b: @Returns: @self: @p: @Returns: @self: @a: @b: @Returns: @self: golist-0.3/doc/tmpl/go-data.sgml0000644000175000017500000000634107344217152012270 GoData the database for the golist classes The GoData class implements a simple database. It holds all the data, both about the players and about the games. An arbitrary number of clients (i.e. Objects derived from #GoClient) may connect to a GoData object. You may add players of games to the database with the help of the go_data_add_player() and go_data_add_game() functions. To query or modify the contents of the database use client objects (i.e. objects of a subclass of #GoClient). #GoClient @obj: @client_data: @p: The GoData structure has no public fields. @Returns: @self: @filename: @Returns: @self: @filename: @Returns: @self: @self: @self: @self: @client: @self: @client: @self: @player: @self: @player: @self: @p: @self: @p: @self: @Returns: @self: @Returns: @self: @token: @Returns: @self: @player: @Returns: @self: @player: @Returns: @self: @player: @game: @Returns: @self: @player: @Returns: @self: @a: @b: @Returns: @self: @game: @self: @game: @self: @g: @self: @g: @self: @Returns: @godata: the object which received the signal. golist-0.3/doc/tmpl/go-game-list.sgml0000644000175000017500000000073707344217152013244 GoGameList a GoData client to print games into a GtkCList @clist: @data: @clist: @Returns: golist-0.3/doc/tmpl/go-game.sgml0000644000175000017500000000407107344217152012266 GoGame game related information The #GoGame type records all information about a single game. @black: the black player @white: the white player @res: the game's outcome @probability: the probability value for the game. This is filled in by #GoStrengths objects. The value %-1 indicates an unknown probability. @data: @date: @black: @white: @board: @handicap: @komi: @res: @Returns: @result: @data: @Returns: @data: @node: @Returns: @self: @node: This type specifies the board size assoziated with a given game. Only the standard board sizes are supported, because the value of handicap stones for other board sizes is not know to the preogram. @b19: The usual 19x19 board @b13: intermediate size @b9: beginners' board @board: @Returns: @str: @Returns: The type to specify a game's outcome. @res_BLACK: black wins @res_WHITE: white wins @res_JIGO: a jigo (draw) occurs @res: @Returns: @str: @Returns: golist-0.3/doc/tmpl/go-history.sgml0000644000175000017500000000242607344217152013060 GoHistory track the development of a player's strength in time Objects of this class are used by #GoStrengths to track the development of a player's strength in time. @strength_ptr: @Returns: @self: @n: @self: @self: @i: @Returns: @self: @Returns: @self: @Returns: @self: @gohistory: the object which received the signal. @arg1: @gohistory: the object which received the signal. @arg1: golist-0.3/doc/tmpl/go-player-list.sgml0000644000175000017500000000075107344217152013623 GoPlayerList a GoData client to print players into a GtkCList @clist: @data: @clist: @Returns: golist-0.3/doc/tmpl/go-player.sgml0000644000175000017500000000162507344217152012653 GoPlayer player related information The #GoPlayer object records all information about a single player. @name: @token: @rank: @strength: @data: @name: @token: @rank: @strength: @Returns: @data: @node: @Returns: @self: @node: golist-0.3/doc/tmpl/go-strengths.sgml0000644000175000017500000000214407344217152013375 GoStrengths A controller to estimate the players' strength values @s19: @s13: @s9: @h19: @h13: @h9: @k19: @k13: @k9: @e19: @e13: @e9: @data: @optimize_constants: @Returns: @self: @g: @Returns: @self: @black: @white: @board: @Returns: @self: @black: @white: @board: @hc: @Returns: @self: @self: @self: @Returns: golist-0.3/doc/tmpl/go-unused.sgml0000644000175000017500000000153307344217152012660 go-all This section describes auxiliary funtions for use with the golist library. Auxiliary functions for the golist library. golist @data: @filename: @Returns: @data: @filename: @Returns: golist-0.3/doc/tmpl/go.sgml0000644000175000017500000000153107344217152011355 golist Auxiliary functions for the golist library. This section describes auxiliary funtions for use with the golist library. @data: @filename: @Returns: @data: @filename: @Returns: @str: @def: @Returns: @str: @def: @Returns: @str: @Returns: @str: @size: @strength: golist-0.3/doc/tmpl/golist.sgml0000644000175000017500000000117207344217152012252 golist auxiliary functions @str: @def: @Returns: @str: @def: @Returns: @rank: @strength_ptr: @Returns: @str: @str: @size: @strength: golist-0.3/doc/sgml/0000755000175000017500000000000007344217152010132 5golist-0.3/doc/sgml/go-client.sgml0000644000175000017500000006777507344217152012645 GoClient 3 GO Library GoClientaccess the GoData databases Synopsis #include <go-client.h> struct GoClient; void go_client_register_player (GoClient *self, GoPlayer *player); void go_client_unregister_player (GoClient *self, GoPlayer *player); int go_client_player_count (GoClient *self); GoPlayer* go_client_player (GoClient *self, int i); void go_client_foreach_player (GoClient *self, GoClientPlayerFunc f, void *data); void go_client_sort_players (GoClient *self, GoComparePlayersFunc compare_players_fn, gpointer client_data); void go_client_register_game (GoClient *self, GoGame *game); void go_client_unregister_game (GoClient *self, GoGame *game); int go_client_game_count (GoClient *self); GoGame* go_client_game (GoClient *self, int i); void go_client_foreach_game (GoClient *self, GoClientGameFunc f, void *data); void go_client_redisplay (GoClient *self, gboolean games, gboolean players); void go_client_make_game_visible (GoClient *self, GoGame *g); void go_client_print_player (GoClient *self, GoPlayer *player, int i, int n); void go_client_print_game (GoClient *self, GoGame *game, int i, int n); void go_client_select_game (GoClient *self, GoGame *g, int i); void (*GoClientGameFunc) (GoClient *c, GoGame *g, int i, int n, gpointer client_data); void (*GoClientPlayerFunc) (GoClient *c, GoPlayer *p, int i, int n, gpointer client_data); int (*GoComparePlayersFunc) (const GoPlayer *a, const GoPlayer *b, void *client_data); Object Hierarchy GtkObject +----GoClient Description Objects derived from this type may be used to access the data of a GoData object. This is an abstract base class of which no objects may be instantiated. Derived classes, which use the GoClient infrastructure, are GoPlayerList and GoGameList. Details <anchor id="GoClient-struct">struct GoClient struct GoClient { GoData * data; }; <anchor id="go-client-register-player">go_client_register_player () void go_client_register_player (GoClient *self, GoPlayer *player); A virtual method to register a player with the Client. This is called exactly once for each player by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call. This function is called by the GoData object the view is connected to. There is no need to call it yourself. self : a GoClient object player : a GoPlayer object <anchor id="go-client-unregister-player">go_client_unregister_player () void go_client_unregister_player (GoClient *self, GoPlayer *player); A virtual method to unregister a player from the Client. This is called once for each removed player by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call. This function is called by the GoData object the view is connected to. There is no need to call it yourself. self : a GoClient object player : a GoPlayer object <anchor id="go-client-player-count">go_client_player_count () int go_client_player_count (GoClient *self); Determine the number of players in self. self : a GoClient object Returns : the number of players. <anchor id="go-client-player">go_client_player () GoPlayer* go_client_player (GoClient *self, int i); Get player data from the database. self : a GoClient object i : the player index Returns : player number i. <anchor id="go-client-foreach-player">go_client_foreach_player () void go_client_foreach_player (GoClient *self, GoClientPlayerFunc f, void *data); Calls function f for each of the client's players in turn, using data as the client_data argument. self : a GoClient object f : the function to iterate over the players data : an additional argument for f <anchor id="go-client-sort-players">go_client_sort_players () void go_client_sort_players (GoClient *self, GoComparePlayersFunc compare_players_fn, gpointer client_data); Sort the list of players displayed by self. The order for the client self is independent of the sort order for any other client. The function redisplay() is called internally to display the new player list. self : a GoClient object compare_players_fn : the comparison function client_data : additional data for compare_players_fn <anchor id="go-client-register-game">go_client_register_game () void go_client_register_game (GoClient *self, GoGame *game); A virtual method to register a game with the Client. This is called exactly once for each game by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call. This function is called by the GoData object the view is connected to. There is no need to call it yourself. self : a GoClient object game : a GoGame object <anchor id="go-client-unregister-game">go_client_unregister_game () void go_client_unregister_game (GoClient *self, GoGame *game); A virtual method to unregister a game from the Client. This is called once for each removed game by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call. This function is called by the GoData object the view is connected to. There is no need to call it yourself. self : a GoClient object game : a GoGame object <anchor id="go-client-game-count">go_client_game_count () int go_client_game_count (GoClient *self); Determine the number of games in self. self : a GoClient object Returns : the number of games. <anchor id="go-client-game">go_client_game () GoGame* go_client_game (GoClient *self, int i); Get game data from the database. self : a GoClient object i : the game index Returns : game number i. <anchor id="go-client-foreach-game">go_client_foreach_game () void go_client_foreach_game (GoClient *self, GoClientGameFunc f, void *data); Calls function f for each of the client's games in turn, using data as the client_data argument. self : a GoClient object f : the function to iterate over the games data : an additional argument for f <anchor id="go-client-redisplay">go_client_redisplay () void go_client_redisplay (GoClient *self, gboolean games, gboolean players); Redisplay all the data of the client. This must be called every time the database is changed. You may do a whole batch of changes at once (e.g. loading several players and games from a file) and call redisplay afterwards. games must be set to TRUE, if there are any changes to the list of games. players must be set, if there are any changes to the list of players. This function works by calling the print_player() and print_game() functions. self : a GoClient object games : TRUE if a game has changed players : TRUE if a player has changed <anchor id="go-client-make-game-visible">go_client_make_game_visible () void go_client_make_game_visible (GoClient *self, GoGame *g); Call select_game() for the game g. self : a GoClient object g : a GoGame object <anchor id="go-client-print-player">go_client_print_player () void go_client_print_player (GoClient *self, GoPlayer *player, int i, int n); Print a player into a GoClient object. This is called foreach player everytime there is a change in the player list. If the playerlist is empty, this function is called as print_player(self, NULL, -1, 0). Subclasses should clear the display in this case. This is a pure virtual class method of the GoClient class. Subclasses should override this in order to be notified of changes in the player list. There should be no need to call this function manually. self : a GoClient object player : a GoPlayer object to print i : the position of the player to print n : the total number of players <anchor id="go-client-print-game">go_client_print_game () void go_client_print_game (GoClient *self, GoGame *game, int i, int n); Print a game into a GoClient object. This is called foreach game everytime there is a change in the game list. If the gamelist is empty, this function is called as print_game(self, NULL, -1, 0). Subclasses should clear the display in this case. This is a pure virtual class method of the GoClient class. Subclasses should override this in order to be notified of changes in the game list. There should be no need to call this function manually. self : a GoClient object game : a GoGame object to print i : the position of the game to print n : the total number of games <anchor id="go-client-select-game">go_client_select_game () void go_client_select_game (GoClient *self, GoGame *g, int i); Select game number i from the GoClient object and try to make it visible on the screen. This is a pure virtual class method of the GoClient class. Subclasses should override this in order to be notified of changes in the game list. There should be no need to call this function manually. self : a GoClient object g : a GoGame object i : the index of g <anchor id="GoClientGameFunc">GoClientGameFunc () void (*GoClientGameFunc) (GoClient *c, GoGame *g, int i, int n, gpointer client_data); c : g : i : n : client_data : <anchor id="GoClientPlayerFunc">GoClientPlayerFunc () void (*GoClientPlayerFunc) (GoClient *c, GoPlayer *p, int i, int n, gpointer client_data); c : p : i : n : client_data : <anchor id="GoComparePlayersFunc">GoComparePlayersFunc () int (*GoComparePlayersFunc) (const GoPlayer *a, const GoPlayer *b, void *client_data); a : b : client_data : Returns : See Also GoData golist-0.3/doc/sgml/go-components.sgml0000644000175000017500000001775407344217152013544 GoComponents 3 GO Library GoComponentscalculate the connected components of the game graph Synopsis #include <go-components.h> struct GoComponents; GtkObject* go_components_new (GoData *data); gboolean go_components_geq (GoComponents *self, const GoPlayer *a, const GoPlayer *b); gboolean go_components_equivalent (GoComponents *self, const GoPlayer *a, const GoPlayer *b); int go_components_index (GoComponents *self, const GoPlayer *p); gboolean go_components_direct_geq (GoComponents *self, GoPlayer *a, GoPlayer *b); void go_components_dump (GoComponents *self); Object Hierarchy GtkObject +----GoClient +----GoComponents Description The GoComponents objects are used to keep track of the connected components of the game graph. Two players are connected in this graph, if the difference of their go-playing strengths may be estimated. Objects of this class are automatically generated by GoData objects. You should not need to use objects of this class directly. Details <anchor id="GoComponents-struct">struct GoComponents struct GoComponents; <anchor id="go-components-new">go_components_new () GtkObject* go_components_new (GoData *data); Allocate a new GoComponents object and connect it to data. data : a GoData object Returns : the new object. <anchor id="go-components-geq">go_components_geq () gboolean go_components_geq (GoComponents *self, const GoPlayer *a, const GoPlayer *b); self : a : b : Returns : <anchor id="go-components-equivalent">go_components_equivalent () gboolean go_components_equivalent (GoComponents *self, const GoPlayer *a, const GoPlayer *b); self : a : b : Returns : <anchor id="go-components-index">go_components_index () int go_components_index (GoComponents *self, const GoPlayer *p); self : p : Returns : <anchor id="go-components-direct-geq">go_components_direct_geq () gboolean go_components_direct_geq (GoComponents *self, GoPlayer *a, GoPlayer *b); self : a : b : Returns : <anchor id="go-components-dump">go_components_dump () void go_components_dump (GoComponents *self); self : See Also GoData golist-0.3/doc/sgml/go-data.sgml0000644000175000017500000007535607344217152012272 GoData 3 GO Library GoDatathe database for the golist classes Synopsis #include <go-data.h> void (*go_cb) (GtkObject *obj, void *client_data); struct GoData; GtkObject* go_data_new (void); gboolean go_data_load (GoData *self, const gchar *filename); gboolean go_data_save (GoData *self, const gchar *filename); void go_data_clear (GoData *self); void go_data_notify_games_changed (GoData *self); void go_data_notify_players_changed (GoData *self); void go_data_add_client (GoData *self, GoClient *client); void go_data_remove_client (GoData *self, GoClient *client); void go_data_add_player (GoData *self, GoPlayer *player); void go_data_remove_player (GoData *self, GoPlayer *player); void go_data_player_lock (GoData *self, GoPlayer *p); void go_data_player_unlock (GoData *self, GoPlayer *p); int go_data_player_count (GoData *self); GList* go_data_player_tokens (GoData *self); GoPlayer* go_data_find_token (GoData *self, const char *token); int go_data_player_game_count (GoData *self, GoPlayer *player); int go_data_player_win_count (GoData *self, GoPlayer *player); int go_data_player_game_index (GoData *self, GoPlayer *player, GoGame *game); int go_data_player_component (GoData *self, const GoPlayer *player); gboolean go_data_players_equiv (GoData *self, const GoPlayer *a, const GoPlayer *b); void go_data_add_game (GoData *self, GoGame *game); void go_data_remove_game (GoData *self, GoGame *game); void go_data_game_lock (GoData *self, GoGame *g); void go_data_game_unlock (GoData *self, GoGame *g); int go_data_game_count (GoData *self); Object Hierarchy GtkObject +----GoData Signal Prototypes "changed" void user_function (GoData *godata, gpointer user_data); Description The GoData class implements a simple database. It holds all the data, both about the players and about the games. An arbitrary number of clients (i.e. Objects derived from GoClient) may connect to a GoData object. You may add players of games to the database with the help of the go_data_add_player() and go_data_add_game() functions. To query or modify the contents of the database use client objects (i.e. objects of a subclass of GoClient). Details <anchor id="go-cb">go_cb () void (*go_cb) (GtkObject *obj, void *client_data); obj : client_data : <anchor id="GoData-struct">struct GoData struct GoData; The GoData structure has no public fields. <anchor id="go-data-new">go_data_new () GtkObject* go_data_new (void); Allocate a new, empty GoData object. Returns : a newly allocated GoData object. <anchor id="go-data-load">go_data_load () gboolean go_data_load (GoData *self, const gchar *filename); Loads the golist XML file denoted by filename into the GoData object self. self : a GoData object filename : the file to load Returns : TRUE, iff the file was loaded successfully, and FALSE if the file cannot be read or is no golist XML file. <anchor id="go-data-save">go_data_save () gboolean go_data_save (GoData *self, const gchar *filename); Dumps the GoData object self into the golist XML file filename. self : a GoData object filename : the file to save Returns : TRUE, iff the file was saved successfully, and FALSE if the file cannot be written. <anchor id="go-data-clear">go_data_clear () void go_data_clear (GoData *self); Remove all entries from the database. The corresponding GoGame and GoPlayer objects are destroyed. self : a GoData object <anchor id="go-data-notify-games-changed">go_data_notify_games_changed () void go_data_notify_games_changed (GoData *self); This must be called in order to propagate changes to the game list. It updates all clients and emits the "changed" signal. self : a GoData object <anchor id="go-data-notify-players-changed">go_data_notify_players_changed () void go_data_notify_players_changed (GoData *self); This must be called in order to propagate changes to the player list. It updates all clients and emits the "changed" signal. self : a GoData object <anchor id="go-data-add-client">go_data_add_client () void go_data_add_client (GoData *self, GoClient *client); Register a new client of this GoData. self : a GoData object client : a GoClient object <anchor id="go-data-remove-client">go_data_remove_client () void go_data_remove_client (GoData *self, GoClient *client); Disconnect the client from the GoData object. self : a GoData object client : a GoClient object <anchor id="go-data-add-player">go_data_add_player () void go_data_add_player (GoData *self, GoPlayer *player); Register a new player of this GoData and update all clients. self : a GoData object player : a GoPlayer object <anchor id="go-data-remove-player">go_data_remove_player () void go_data_remove_player (GoData *self, GoPlayer *player); Disconnect the player from the GoData object and update all clients. self : a GoData object player : a GoPlayer object <anchor id="go-data-player-lock">go_data_player_lock () void go_data_player_lock (GoData *self, GoPlayer *p); This function must be called before p is modified. After you are done with p you must call player_unlock() to propagate the changes. self : a GoData object p : the player to modify <anchor id="go-data-player-unlock">go_data_player_unlock () void go_data_player_unlock (GoData *self, GoPlayer *p); Undo the effects of player_lock() and update the clients. self : a GoData object p : the modified player <anchor id="go-data-player-count">go_data_player_count () int go_data_player_count (GoData *self); Determine the number of players in the database. self : the GoData object Returns : the number of known players. <anchor id="go-data-player-tokens">go_data_player_tokens () GList* go_data_player_tokens (GoData *self); Return the list of all player tokens. The returned list must not be freed of modified. It becomes invalid if the player list of self is modified. self : a GoData object Returns : the list of all player tokens <anchor id="go-data-find-token">go_data_find_token () GoPlayer* go_data_find_token (GoData *self, const char *token); Get the player denoted by token. self : a GoData object token : a player token Returns : a pointer to the player struct or NULL if token is invalid. <anchor id="go-data-player-game-count">go_data_player_game_count () int go_data_player_game_count (GoData *self, GoPlayer *player); Get the number of games recorded for player. self : a GoData object player : a GoPlayer object Returns : the number of games <anchor id="go-data-player-win-count">go_data_player_win_count () int go_data_player_win_count (GoData *self, GoPlayer *player); Get the number of won games recorded for player. self : a GoData object player : a GoPlayer object Returns : the number of won games <anchor id="go-data-player-game-index">go_data_player_game_index () int go_data_player_game_index (GoData *self, GoPlayer *player, GoGame *game); Return the number of games in the data base self, which involve player and are played before game. So, if the function returns n this indicates that game is the n-th game recorded for player. self : a GoData object player : a GoPlayer object game : a GoGame object Returns : the index of game for player <anchor id="go-data-player-component">go_data_player_component () int go_data_player_component (GoData *self, const GoPlayer *player); Calculate the index for the connected component of player within the game graph. The value 0 indicates the component of players of defined rank. self : a GoData object player : the player to calculate the component for Returns : the component index <anchor id="go-data-players-equiv">go_data_players_equiv () gboolean go_data_players_equiv (GoData *self, const GoPlayer *a, const GoPlayer *b); self : a GoData object a : the first player b : the second player Returns : TRUE if a and b are in the same connected component of the game graph <anchor id="go-data-add-game">go_data_add_game () void go_data_add_game (GoData *self, GoGame *game); Register a new game for this GoData object and update all clients. self : a GoData object game : a GoGame object <anchor id="go-data-remove-game">go_data_remove_game () void go_data_remove_game (GoData *self, GoGame *game); Disconnect the game from the GoData object and update all clients. self : a GoData object game : a GoGame object <anchor id="go-data-game-lock">go_data_game_lock () void go_data_game_lock (GoData *self, GoGame *g); This function must be called before g is modified. After you are done with g you must call game_unlock() to propagate the changes. self : a GoData object g : the game to modify <anchor id="go-data-game-unlock">go_data_game_unlock () void go_data_game_unlock (GoData *self, GoGame *g); Undo the effects of game_lock() and update the clients. self : a GoData object g : the modified game <anchor id="go-data-game-count">go_data_game_count () int go_data_game_count (GoData *self); Determine the number of games in the database. self : the GoData object Returns : the number of known games. Signals <anchor id="GoData-changed">The "changed" signal void user_function (GoData *godata, gpointer user_data); godata : the object which received the signal. user_data : user data set when the signal handler was connected. See Also GoClient golist-0.3/doc/sgml/go-game-list.sgml0000644000175000017500000000557607344217152013240 GoGameList 3 GO Library GoGameLista GoData client to print games into a GtkCList Synopsis #include <go-game-list.h> struct GoGameList; GtkObject* go_game_list_new (GoData *data, GtkCList *clist); Object Hierarchy GtkObject +----GoClient +----GoGameList Args "clist" gpointer : Read / Write / Construct Only Description Details <anchor id="GoGameList-struct">struct GoGameList struct GoGameList { GtkCList * clist; }; <anchor id="go-game-list-new">go_game_list_new () GtkObject* go_game_list_new (GoData *data, GtkCList *clist); Allocate a new GoGameList object and connect it to data. This function modifies the column attributes of clist. data : a GoData object clist : a GtkCList widget to display the games in Returns : a newly allocated GoGameList object Args "clist" (gpointer : Read / Write / Construct Only) golist-0.3/doc/sgml/go-game.sgml0000644000175000017500000003477607344217152012273 GoGame 3 GO Library GoGamegame related information Synopsis #include <go-game.h> struct GoGame; GtkObject* go_game_new (GoData *data, time_t date, const char *black, const char *white, GoBoardSize board, int handicap, double komi, GoGameResult res); GtkObject* go_game_new_fake (GoData *data); GtkObject* go_game_read (GoData *data, xmlNodePtr node); void go_game_write (GoGame *self, xmlNodePtr node); enum GoBoardSize; const char* board_to_str (GoBoardSize board); GoBoardSize str_to_board (const char *str); enum GoGameResult; const char* result_to_str (GoGameResult res); GoGameResult str_to_result (const char *str); Object Hierarchy GtkObject +----GoGame Args "black" gpointer : Read / Write "white" gpointer : Read / Write "board" gpointer : Read / Write "handicap" gint : Read / Write "komi" gdouble : Read / Write Description The GoGame type records all information about a single game. Details <anchor id="GoGame-struct">struct GoGame struct GoGame { GoPlayer * black; GoPlayer * white; GoGameResult res; double probability; }; GoPlayer *black the black player GoPlayer *white the white player GoGameResult res the game's outcome double probability the probability value for the game. This is filled in by GoStrengths objects. The value -1 indicates an unknown probability. <anchor id="go-game-new">go_game_new () GtkObject* go_game_new (GoData *data, time_t date, const char *black, const char *white, GoBoardSize board, int handicap, double komi, GoGameResult res); Allocate a new GoGame object, fill it with values, and connect it to data. data : a GoData object date : the date of the game in the form dd.mm.yyyy black : the black player's token white : the white player's token board : the board size handicap : the number of handicap stones (in favour of black) komi : the amount of komi (in favour of white) res : the game's outcome Returns : a newly allocated GoGame object. <anchor id="go-game-new-fake">go_game_new_fake () GtkObject* go_game_new_fake (GoData *data); Allocate a new fake GoGame object and connect it to data. This object may be used for internal purposes and does not correspond to a real game. The data must be filled in manually. data : a GoData object Returns : a newly allocated GoGame object. <anchor id="go-game-read">go_game_read () GtkObject* go_game_read (GoData *data, xmlNodePtr node); This is a constructor for GoGame objects, which reads all data from a XML tree. data : a GoData object node : a XML element of type "game" Returns : a newly allocated GoGame object. <anchor id="go-game-write">go_game_write () void go_game_write (GoGame *self, xmlNodePtr node); Dump all game data into node. self : a GoGame object node : a XML element of type "game" <anchor id="GoBoardSize">enum GoBoardSize typedef enum { b19=19, b13=13, b9=9 } GoBoardSize; This type specifies the board size assoziated with a given game. Only the standard board sizes are supported, because the value of handicap stones for other board sizes is not know to the preogram. b19 The usual 19x19 board b13 intermediate size b9 beginners' board <anchor id="board-to-str">board_to_str () const char* board_to_str (GoBoardSize board); Convert board to a human-understandable textual representation. board : a board size Returns : the board size as a string. <anchor id="str-to-board">str_to_board () GoBoardSize str_to_board (const char *str); str : Returns : <anchor id="GoGameResult">enum GoGameResult typedef enum { res_BLACK, res_WHITE, res_JIGO } GoGameResult; The type to specify a game's outcome. res_BLACK black wins res_WHITE white wins res_JIGO a jigo (draw) occurs <anchor id="result-to-str">result_to_str () const char* result_to_str (GoGameResult res); Convert res to human understandable textual representation. res : a game result Returns : the result as a string. <anchor id="str-to-result">str_to_result () GoGameResult str_to_result (const char *str); str : Returns : Args "black" (gpointer : Read / Write) "white" (gpointer : Read / Write) "board" (gpointer : Read / Write) "handicap" (gint : Read / Write) "komi" (gdouble : Read / Write) golist-0.3/doc/sgml/go-history.sgml0000644000175000017500000002476607344217152013061 GoHistory 3 GO Library GoHistorytrack the development of a player's strength in time Synopsis #include <go-history.h> struct GoHistory; GtkObject* go_history_new (double *strength_ptr); void go_history_set_length (GoHistory *self, int n); void go_history_increase_length (GoHistory *self); double go_history_get_strength (GoHistory *self, int i); double go_history_probability (GoHistory *self); double go_history_compensator (GoHistory *self); void go_history_write_back (GoHistory *self); Object Hierarchy GtkObject +----GoHistory Signal Prototypes "add-parameter" void user_function (GoHistory *gohistory, gpointer arg1, gpointer user_data); "remove-parameter" void user_function (GoHistory *gohistory, gpointer arg1, gpointer user_data); Description Objects of this class are used by GoStrengths to track the development of a player's strength in time. Details <anchor id="GoHistory-struct">struct GoHistory struct GoHistory; <anchor id="go-history-new">go_history_new () GtkObject* go_history_new (double *strength_ptr); Allocate a new GoHistory object to track the value at strength_ptr. The history length is set to 0. You must call set_length() to increase it. strength_ptr : a pointer to the player's strength value Returns : a new GoHistory object <anchor id="go-history-set-length">go_history_set_length () void go_history_set_length (GoHistory *self, int n); Set the number of games in the record. self : a GoHistory object n : the new history length <anchor id="go-history-increase-length">go_history_increase_length () void go_history_increase_length (GoHistory *self); Increase the number of games in the record by one. self : a GoHistory object <anchor id="go-history-get-strength">go_history_get_strength () double go_history_get_strength (GoHistory *self, int i); Get the strength value recorded for game number i. self : a GoHistory object i : the game index Returns : the player's strength <anchor id="go-history-probability">go_history_probability () double go_history_probability (GoHistory *self); Estimate the likelihood of the currently stored data. self : a GoHistory object Returns : the probability <anchor id="go-history-compensator">go_history_compensator () double go_history_compensator (GoHistory *self); Return a typical mean value for the return value of probability(). The result does not depend on the current parameter settings, but it may depend on the number of games stored. self : a GoHistory object Returns : the mean probability <anchor id="go-history-write-back">go_history_write_back () void go_history_write_back (GoHistory *self); Write back the current player strength from the GoHistory object self to the original location. self : a GoHistory object Signals <anchor id="GoHistory-add-parameter">The "add-parameter" signal void user_function (GoHistory *gohistory, gpointer arg1, gpointer user_data); gohistory : the object which received the signal. arg1 : user_data : user data set when the signal handler was connected. <anchor id="GoHistory-remove-parameter">The "remove-parameter" signal void user_function (GoHistory *gohistory, gpointer arg1, gpointer user_data); gohistory : the object which received the signal. arg1 : user_data : user data set when the signal handler was connected. golist-0.3/doc/sgml/go-player-list.sgml0000644000175000017500000000565007344217152013614 GoPlayerList 3 GO Library GoPlayerLista GoData client to print players into a GtkCList Synopsis #include <go-player-list.h> struct GoPlayerList; GtkObject* go_player_list_new (GoData *data, GtkCList *clist); Object Hierarchy GtkObject +----GoClient +----GoPlayerList Args "clist" gpointer : Read / Write / Construct Only Description Details <anchor id="GoPlayerList-struct">struct GoPlayerList struct GoPlayerList { GtkCList * clist; }; <anchor id="go-player-list-new">go_player_list_new () GtkObject* go_player_list_new (GoData *data, GtkCList *clist); Allocate a new GoPlayerList object and connect it to data. This function modifies the column attributes of clist. data : a GoData object clist : a GtkCList widget to display the players in Returns : a newly allocated GoPlayerList object Args "clist" (gpointer : Read / Write / Construct Only) golist-0.3/doc/sgml/go-player.sgml0000644000175000017500000001602007344217152012634 GoPlayer 3 GO Library GoPlayerplayer related information Synopsis #include <go-player.h> struct GoPlayer; GtkObject* go_player_new (GoData *data, const char *name, const char *token, const char *rank, double strength); GtkObject* go_player_read (GoData *data, xmlNodePtr node); void go_player_write (GoPlayer *self, xmlNodePtr node); Object Hierarchy GtkObject +----GoPlayer Args "name" gpointer : Read / Write / Construct "token" gpointer : Read / Write / Construct Only "rank" gpointer : Read / Write / Construct "strength" gdouble : Read / Write / Construct Description The GoPlayer object records all information about a single player. Details <anchor id="GoPlayer-struct">struct GoPlayer struct GoPlayer { gchar * name; gchar * token; gchar * rank; double strength; }; <anchor id="go-player-new">go_player_new () GtkObject* go_player_new (GoData *data, const char *name, const char *token, const char *rank, double strength); Allocate a new GoPlayer object, fill in the values, and connect it to data. If the strength value is unknown it should be set to -100. data : a GoData object name : the player's full name token : the player's abbreviation rank : the player's nominal rank, or NULL strength : the player's numerical strength value Returns : a newly allocated GoPlayer object. <anchor id="go-player-read">go_player_read () GtkObject* go_player_read (GoData *data, xmlNodePtr node); This is a constructor for GoPlayer objects, which reads all data from a XML tree. data : a GoData object node : a XML element of type "player" Returns : a newly allocated GoPlayer object. <anchor id="go-player-write">go_player_write () void go_player_write (GoPlayer *self, xmlNodePtr node); Dump all player data into node. self : a GoPlayer object node : a XML element of type "player" Args "name" (gpointer : Read / Write / Construct) "token" (gpointer : Read / Write / Construct Only) "rank" (gpointer : Read / Write / Construct) "strength" (gdouble : Read / Write / Construct) golist-0.3/doc/sgml/go-strengths.sgml0000644000175000017500000002260207344217152013364 GoStrengths 3 GO Library GoStrengthsA controller to estimate the players' strength values Synopsis #include <go-strengths.h> struct GoStrengths; GtkObject* go_strengths_new (GoData *data, gboolean optimize_constants); double go_strengths_probability (GoStrengths *self, GoGame *g); int go_strengths_find_handicap (GoStrengths *self, GoPlayer *black, GoPlayer *white, GoBoardSize board); double go_strengths_find_komi (GoStrengths *self, GoPlayer *black, GoPlayer *white, GoBoardSize board, int hc); void go_strengths_optimize (GoStrengths *self); void go_strengths_parameters_print (GoStrengths *self); const char* go_strengths_check_preconditions (GoStrengths *self); Object Hierarchy GtkObject +----GoClient +----GoStrengths Description Details <anchor id="GoStrengths-struct">struct GoStrengths struct GoStrengths { double s19; double s13; double s9; double h19; double h13; double h9; double k19; double k13; double k9; double e19; double e13; double e9; }; <anchor id="go-strengths-new">go_strengths_new () GtkObject* go_strengths_new (GoData *data, gboolean optimize_constants); Allocate a new GoStrength object and connect it to data. data : a GoData object optimize_constants : try to estimate some internal constants, too. This needs a lot of game data to give reasonable results. Returns : the new object. <anchor id="go-strengths-probability">go_strengths_probability () double go_strengths_probability (GoStrengths *self, GoGame *g); Use the player data from the GoStrengths object self, to assign a probability to the outcome of game g. This modifies the g->probability field. self : a GoStrengths object g : a GoGame to evaluate Returns : the probability that the given outcome of g occurs <anchor id="go-strengths-find-handicap">go_strengths_find_handicap () int go_strengths_find_handicap (GoStrengths *self, GoPlayer *black, GoPlayer *white, GoBoardSize board); self : black : white : board : Returns : <anchor id="go-strengths-find-komi">go_strengths_find_komi () double go_strengths_find_komi (GoStrengths *self, GoPlayer *black, GoPlayer *white, GoBoardSize board, int hc); self : black : white : board : hc : Returns : <anchor id="go-strengths-optimize">go_strengths_optimize () void go_strengths_optimize (GoStrengths *self); self : <anchor id="go-strengths-parameters-print">go_strengths_parameters_print () void go_strengths_parameters_print (GoStrengths *self); self : <anchor id="go-strengths-check-preconditions">go_strengths_check_preconditions () const char* go_strengths_check_preconditions (GoStrengths *self); self : Returns : golist-0.3/doc/sgml/golist.sgml0000644000175000017500000001226607344217152012246 golist 3 GO Library golistauxiliary functions Synopsis #include <go.h> int str_to_int (const char *str, int def); double str_to_double (const char *str, double def); gboolean rank_to_strength (const char *rank, double *strength_ptr); void snprint_strength (char *str, size_t size, double strength); Description Details <anchor id="str-to-int">str_to_int () int str_to_int (const char *str, int def); str : def : Returns : <anchor id="str-to-double">str_to_double () double str_to_double (const char *str, double def); str : def : Returns : <anchor id="rank-to-strength">rank_to_strength () gboolean rank_to_strength (const char *rank, double *strength_ptr); Convert a rank string of the form "3d" or "5k" into a numerical strength value. rank must be an integer number x, followed by either d (for dan grades) or k (for kyu grades). The computed strength value is x-1 for "x dan" or -x for "x kyu". rank may be NULL or the empty string. In this case the strength value -100 (meaning "unknown strength") is returned. rank : a player's rank strength_ptr : a pointer to the place where the strength value should be filled in. Returns : TRUE if the conversion was succesful and FALSE on error. <anchor id="snprint-strength">snprint_strength () void snprint_strength (char *str, size_t size, double strength); Prints the rank, which is closest to strength into str. This is the inverse operation to rank_to_strength(). str : a buffer to print the rank into size : length of the buffer strength : the strength value to print golist-0.3/doc/sgml/object_index.sgml0000644000175000017500000000143707344217152013400 GoClient GoComponents GoData GoGame GoGameList GoHistory GoPlayer GoPlayerList GoStrengths GtkObject golist-0.3/doc/sgml/tree_index.sgml0000644000175000017500000000105507344217152013065 GtkObject GoPlayer GoGame GoData GoClient GoComponents GoPlayerList GoGameList GoStrengths GoHistory golist-0.3/doc/html/0000755000175000017500000000000007344217152010134 5golist-0.3/doc/html/index.sgml0000644000175000017500000002115707344217152012055 golist-0.3/doc/html/go-golist.html0000644000175000017500000002144507344217152012654 golist

golist

Name

golist -- auxiliary functions

Synopsis


#include <go.h>


int         str_to_int                      (const char *str,
                                             int def);
double      str_to_double                   (const char *str,
                                             double def);
gboolean    rank_to_strength                (const char *rank,
                                             double *strength_ptr);
void        snprint_strength                (char *str,
                                             size_t size,
                                             double strength);

Description

Details

str_to_int ()

int         str_to_int                      (const char *str,
                                             int def);

str : 
def : 
Returns : 


str_to_double ()

double      str_to_double                   (const char *str,
                                             double def);

str : 
def : 
Returns : 


rank_to_strength ()

gboolean    rank_to_strength                (const char *rank,
                                             double *strength_ptr);

Convert a rank string of the form "3d" or "5k" into a numerical strength value. rank must be an integer number x, followed by either d (for dan grades) or k (for kyu grades). The computed strength value is x-1 for "x dan" or -x for "x kyu".

rank may be NULL or the empty string. In this case the strength value -100 (meaning "unknown strength") is returned.

rank : a player's rank
strength_ptr : a pointer to the place where the strength value should be filled in.
Returns : TRUE if the conversion was succesful and FALSE on error.


snprint_strength ()

void        snprint_strength                (char *str,
                                             size_t size,
                                             double strength);

Prints the rank, which is closest to strength into str. This is the inverse operation to rank_to_strength().

str : a buffer to print the rank into
size : length of the buffer
strength : the strength value to print

golist-0.3/doc/html/goclient.html0000644000175000017500000011234707344217152012556 GoClient

GoClient

Name

GoClient -- access the GoData databases

Synopsis


#include <go-client.h>


struct      GoClient;

void        go_client_register_player       (GoClient *self,
                                             GoPlayer *player);
void        go_client_unregister_player     (GoClient *self,
                                             GoPlayer *player);
int         go_client_player_count          (GoClient *self);
GoPlayer*   go_client_player                (GoClient *self,
                                             int i);
void        go_client_foreach_player        (GoClient *self,
                                             GoClientPlayerFunc f,
                                             void *data);
void        go_client_sort_players          (GoClient *self,
                                             GoComparePlayersFunc compare_players_fn,
                                             gpointer client_data);

void        go_client_register_game         (GoClient *self,
                                             GoGame *game);
void        go_client_unregister_game       (GoClient *self,
                                             GoGame *game);
int         go_client_game_count            (GoClient *self);
GoGame*     go_client_game                  (GoClient *self,
                                             int i);
void        go_client_foreach_game          (GoClient *self,
                                             GoClientGameFunc f,
                                             void *data);

void        go_client_redisplay             (GoClient *self,
                                             gboolean games,
                                             gboolean players);
void        go_client_make_game_visible     (GoClient *self,
                                             GoGame *g);
void        go_client_print_player          (GoClient *self,
                                             GoPlayer *player,
                                             int i,
                                             int n);
void        go_client_print_game            (GoClient *self,
                                             GoGame *game,
                                             int i,
                                             int n);
void        go_client_select_game           (GoClient *self,
                                             GoGame *g,
                                             int i);

void        (*GoClientGameFunc)             (GoClient *c,
                                             GoGame *g,
                                             int i,
                                             int n,
                                             gpointer client_data);
void        (*GoClientPlayerFunc)           (GoClient *c,
                                             GoPlayer *p,
                                             int i,
                                             int n,
                                             gpointer client_data);
int         (*GoComparePlayersFunc)         (const GoPlayer *a,
                                             const GoPlayer *b,
                                             void *client_data);

Object Hierarchy


  GtkObject
   +----GoClient

Description

Objects derived from this type may be used to access the data of a GoData object.

This is an abstract base class of which no objects may be instantiated. Derived classes, which use the GoClient infrastructure, are GoPlayerList and GoGameList.

Details

struct GoClient

struct GoClient {
	GoData * data;
};


go_client_register_player ()

void        go_client_register_player       (GoClient *self,
                                             GoPlayer *player);

A virtual method to register a player with the Client. This is called exactly once for each player by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call.

This function is called by the GoData object the view is connected to. There is no need to call it yourself.

self : a GoClient object
player : a GoPlayer object


go_client_unregister_player ()

void        go_client_unregister_player     (GoClient *self,
                                             GoPlayer *player);

A virtual method to unregister a player from the Client. This is called once for each removed player by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call.

This function is called by the GoData object the view is connected to. There is no need to call it yourself.

self : a GoClient object
player : a GoPlayer object


go_client_player_count ()

int         go_client_player_count          (GoClient *self);

Determine the number of players in self.

self : a GoClient object
Returns : the number of players.


go_client_player ()

GoPlayer*   go_client_player                (GoClient *self,
                                             int i);

Get player data from the database.

self : a GoClient object
i : the player index
Returns : player number i.


go_client_foreach_player ()

void        go_client_foreach_player        (GoClient *self,
                                             GoClientPlayerFunc f,
                                             void *data);

Calls function f for each of the client's players in turn, using data as the client_data argument.

self : a GoClient object
f : the function to iterate over the players
data : an additional argument for f


go_client_sort_players ()

void        go_client_sort_players          (GoClient *self,
                                             GoComparePlayersFunc compare_players_fn,
                                             gpointer client_data);

Sort the list of players displayed by self. The order for the client self is independent of the sort order for any other client.

The function redisplay() is called internally to display the new player list.

self : a GoClient object
compare_players_fn : the comparison function
client_data : additional data for compare_players_fn


go_client_register_game ()

void        go_client_register_game         (GoClient *self,
                                             GoGame *game);

A virtual method to register a game with the Client. This is called exactly once for each game by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call.

This function is called by the GoData object the view is connected to. There is no need to call it yourself.

self : a GoClient object
game : a GoGame object


go_client_unregister_game ()

void        go_client_unregister_game       (GoClient *self,
                                             GoGame *game);

A virtual method to unregister a game from the Client. This is called once for each removed game by the underlying GoData object. If your subclass overrides this method, it must "chain up" the call.

This function is called by the GoData object the view is connected to. There is no need to call it yourself.

self : a GoClient object
game : a GoGame object


go_client_game_count ()

int         go_client_game_count            (GoClient *self);

Determine the number of games in self.

self : a GoClient object
Returns : the number of games.


go_client_game ()

GoGame*     go_client_game                  (GoClient *self,
                                             int i);

Get game data from the database.

self : a GoClient object
i : the game index
Returns : game number i.


go_client_foreach_game ()

void        go_client_foreach_game          (GoClient *self,
                                             GoClientGameFunc f,
                                             void *data);

Calls function f for each of the client's games in turn, using data as the client_data argument.

self : a GoClient object
f : the function to iterate over the games
data : an additional argument for f


go_client_redisplay ()

void        go_client_redisplay             (GoClient *self,
                                             gboolean games,
                                             gboolean players);

Redisplay all the data of the client. This must be called every time the database is changed. You may do a whole batch of changes at once (e.g. loading several players and games from a file) and call redisplay afterwards. games must be set to TRUE, if there are any changes to the list of games. players must be set, if there are any changes to the list of players.

This function works by calling the print_player() and print_game() functions.

self : a GoClient object
games : TRUE if a game has changed
players : TRUE if a player has changed


go_client_make_game_visible ()

void        go_client_make_game_visible     (GoClient *self,
                                             GoGame *g);

Call select_game() for the game g.

self : a GoClient object
g : a GoGame object


go_client_print_player ()

void        go_client_print_player          (GoClient *self,
                                             GoPlayer *player,
                                             int i,
                                             int n);

Print a player into a GoClient object. This is called foreach player everytime there is a change in the player list. If the playerlist is empty, this function is called as print_player(self, NULL, -1, 0). Subclasses should clear the display in this case.

This is a pure virtual class method of the GoClient class. Subclasses should override this in order to be notified of changes in the player list. There should be no need to call this function manually.

self : a GoClient object
player : a GoPlayer object to print
i : the position of the player to print
n : the total number of players


go_client_print_game ()

void        go_client_print_game            (GoClient *self,
                                             GoGame *game,
                                             int i,
                                             int n);

Print a game into a GoClient object. This is called foreach game everytime there is a change in the game list. If the gamelist is empty, this function is called as print_game(self, NULL, -1, 0). Subclasses should clear the display in this case.

This is a pure virtual class method of the GoClient class. Subclasses should override this in order to be notified of changes in the game list. There should be no need to call this function manually.

self : a GoClient object
game : a GoGame object to print
i : the position of the game to print
n : the total number of games


go_client_select_game ()

void        go_client_select_game           (GoClient *self,
                                             GoGame *g,
                                             int i);

Select game number i from the GoClient object and try to make it visible on the screen. This is a pure virtual class method of the GoClient class. Subclasses should override this in order to be notified of changes in the game list. There should be no need to call this function manually.

self : a GoClient object
g : a GoGame object
i : the index of g


GoClientGameFunc ()

void        (*GoClientGameFunc)             (GoClient *c,
                                             GoGame *g,
                                             int i,
                                             int n,
                                             gpointer client_data);

c : 
g : 
i : 
n : 
client_data : 


GoClientPlayerFunc ()

void        (*GoClientPlayerFunc)           (GoClient *c,
                                             GoPlayer *p,
                                             int i,
                                             int n,
                                             gpointer client_data);

c : 
p : 
i : 
n : 
client_data : 


GoComparePlayersFunc ()

int         (*GoComparePlayersFunc)         (const GoPlayer *a,
                                             const GoPlayer *b,
                                             void *client_data);

a : 
b : 
client_data : 
Returns : 

See Also

GoData

golist-0.3/doc/html/gocomponents.html0000644000175000017500000003121507344217152013457 GoComponents

GoComponents

Name

GoComponents -- calculate the connected components of the game graph

Synopsis


#include <go-components.h>


struct      GoComponents;
GtkObject*  go_components_new               (GoData *data);
gboolean    go_components_geq               (GoComponents *self,
                                             const GoPlayer *a,
                                             const GoPlayer *b);
gboolean    go_components_equivalent        (GoComponents *self,
                                             const GoPlayer *a,
                                             const GoPlayer *b);
int         go_components_index             (GoComponents *self,
                                             const GoPlayer *p);
gboolean    go_components_direct_geq        (GoComponents *self,
                                             GoPlayer *a,
                                             GoPlayer *b);
void        go_components_dump              (GoComponents *self);

Object Hierarchy


  GtkObject
   +----GoClient
         +----GoComponents

Description

The GoComponents objects are used to keep track of the connected components of the game graph. Two players are connected in this graph, if the difference of their go-playing strengths may be estimated.

Objects of this class are automatically generated by GoData objects. You should not need to use objects of this class directly.

Details

struct GoComponents

struct GoComponents;


go_components_new ()

GtkObject*  go_components_new               (GoData *data);

Allocate a new GoComponents object and connect it to data.

data : a GoData object
Returns : the new object.


go_components_geq ()

gboolean    go_components_geq               (GoComponents *self,
                                             const GoPlayer *a,
                                             const GoPlayer *b);

self : 
a : 
b : 
Returns : 


go_components_equivalent ()

gboolean    go_components_equivalent        (GoComponents *self,
                                             const GoPlayer *a,
                                             const GoPlayer *b);

self : 
a : 
b : 
Returns : 


go_components_index ()

int         go_components_index             (GoComponents *self,
                                             const GoPlayer *p);

self : 
p : 
Returns : 


go_components_direct_geq ()

gboolean    go_components_direct_geq        (GoComponents *self,
                                             GoPlayer *a,
                                             GoPlayer *b);

self : 
a : 
b : 
Returns : 


go_components_dump ()

void        go_components_dump              (GoComponents *self);

self : 

See Also

GoData

golist-0.3/doc/html/godata.html0000644000175000017500000012235207344217152012206 GoData

GoData

Name

GoData -- the database for the golist classes

Synopsis


#include <go-data.h>


void        (*go_cb)                        (GtkObject *obj,
                                             void *client_data);
struct      GoData;
GtkObject*  go_data_new                     (void);
gboolean    go_data_load                    (GoData *self,
                                             const gchar *filename);
gboolean    go_data_save                    (GoData *self,
                                             const gchar *filename);
void        go_data_clear                   (GoData *self);
void        go_data_notify_games_changed    (GoData *self);
void        go_data_notify_players_changed  (GoData *self);

void        go_data_add_client              (GoData *self,
                                             GoClient *client);
void        go_data_remove_client           (GoData *self,
                                             GoClient *client);

void        go_data_add_player              (GoData *self,
                                             GoPlayer *player);
void        go_data_remove_player           (GoData *self,
                                             GoPlayer *player);
void        go_data_player_lock             (GoData *self,
                                             GoPlayer *p);
void        go_data_player_unlock           (GoData *self,
                                             GoPlayer *p);
int         go_data_player_count            (GoData *self);
GList*      go_data_player_tokens           (GoData *self);
GoPlayer*   go_data_find_token              (GoData *self,
                                             const char *token);
int         go_data_player_game_count       (GoData *self,
                                             GoPlayer *player);
int         go_data_player_win_count        (GoData *self,
                                             GoPlayer *player);
int         go_data_player_game_index       (GoData *self,
                                             GoPlayer *player,
                                             GoGame *game);
int         go_data_player_component        (GoData *self,
                                             const GoPlayer *player);
gboolean    go_data_players_equiv           (GoData *self,
                                             const GoPlayer *a,
                                             const GoPlayer *b);

void        go_data_add_game                (GoData *self,
                                             GoGame *game);
void        go_data_remove_game             (GoData *self,
                                             GoGame *game);
void        go_data_game_lock               (GoData *self,
                                             GoGame *g);
void        go_data_game_unlock             (GoData *self,
                                             GoGame *g);
int         go_data_game_count              (GoData *self);

Object Hierarchy


  GtkObject
   +----GoData

Signal Prototypes


"changed"   void        user_function      (GoData *godata,
                                            gpointer user_data);

Description

The GoData class implements a simple database. It holds all the data, both about the players and about the games. An arbitrary number of clients (i.e. Objects derived from GoClient) may connect to a GoData object.

You may add players of games to the database with the help of the go_data_add_player() and go_data_add_game() functions. To query or modify the contents of the database use client objects (i.e. objects of a subclass of GoClient).

Details

go_cb ()

void        (*go_cb)                        (GtkObject *obj,
                                             void *client_data);

obj : 
client_data : 


struct GoData

struct GoData;

The GoData structure has no public fields.


go_data_new ()

GtkObject*  go_data_new                     (void);

Allocate a new, empty GoData object.

Returns : a newly allocated GoData object.


go_data_load ()

gboolean    go_data_load                    (GoData *self,
                                             const gchar *filename);

Loads the golist XML file denoted by filename into the GoData object self.

self : a GoData object
filename : the file to load
Returns : TRUE, iff the file was loaded successfully, and FALSE if the file cannot be read or is no golist XML file.


go_data_save ()

gboolean    go_data_save                    (GoData *self,
                                             const gchar *filename);

Dumps the GoData object self into the golist XML file filename.

self : a GoData object
filename : the file to save
Returns : TRUE, iff the file was saved successfully, and FALSE if the file cannot be written.


go_data_clear ()

void        go_data_clear                   (GoData *self);

Remove all entries from the database. The corresponding GoGame and GoPlayer objects are destroyed.

self : a GoData object


go_data_notify_games_changed ()

void        go_data_notify_games_changed    (GoData *self);

This must be called in order to propagate changes to the game list. It updates all clients and emits the "changed" signal.

self : a GoData object


go_data_notify_players_changed ()

void        go_data_notify_players_changed  (GoData *self);

This must be called in order to propagate changes to the player list. It updates all clients and emits the "changed" signal.

self : a GoData object


go_data_add_client ()

void        go_data_add_client              (GoData *self,
                                             GoClient *client);

Register a new client of this GoData.

self : a GoData object
client : a GoClient object


go_data_remove_client ()

void        go_data_remove_client           (GoData *self,
                                             GoClient *client);

Disconnect the client from the GoData object.

self : a GoData object
client : a GoClient object


go_data_add_player ()

void        go_data_add_player              (GoData *self,
                                             GoPlayer *player);

Register a new player of this GoData and update all clients.

self : a GoData object
player : a GoPlayer object


go_data_remove_player ()

void        go_data_remove_player           (GoData *self,
                                             GoPlayer *player);

Disconnect the player from the GoData object and update all clients.

self : a GoData object
player : a GoPlayer object


go_data_player_lock ()

void        go_data_player_lock             (GoData *self,
                                             GoPlayer *p);

This function must be called before p is modified. After you are done with p you must call player_unlock() to propagate the changes.

self : a GoData object
p : the player to modify


go_data_player_unlock ()

void        go_data_player_unlock           (GoData *self,
                                             GoPlayer *p);

Undo the effects of player_lock() and update the clients.

self : a GoData object
p : the modified player


go_data_player_count ()

int         go_data_player_count            (GoData *self);

Determine the number of players in the database.

self : the GoData object
Returns : the number of known players.


go_data_player_tokens ()

GList*      go_data_player_tokens           (GoData *self);

Return the list of all player tokens. The returned list must not be freed of modified. It becomes invalid if the player list of self is modified.

self : a GoData object
Returns : the list of all player tokens


go_data_find_token ()

GoPlayer*   go_data_find_token              (GoData *self,
                                             const char *token);

Get the player denoted by token.

self : a GoData object
token : a player token
Returns : a pointer to the player struct or NULL if token is invalid.


go_data_player_game_count ()

int         go_data_player_game_count       (GoData *self,
                                             GoPlayer *player);

Get the number of games recorded for player.

self : a GoData object
player : a GoPlayer object
Returns : the number of games


go_data_player_win_count ()

int         go_data_player_win_count        (GoData *self,
                                             GoPlayer *player);

Get the number of won games recorded for player.

self : a GoData object
player : a GoPlayer object
Returns : the number of won games


go_data_player_game_index ()

int         go_data_player_game_index       (GoData *self,
                                             GoPlayer *player,
                                             GoGame *game);

Return the number of games in the data base self, which involve player and are played before game. So, if the function returns n this indicates that game is the n-th game recorded for player.

self : a GoData object
player : a GoPlayer object
game : a GoGame object
Returns : the index of game for player


go_data_player_component ()

int         go_data_player_component        (GoData *self,
                                             const GoPlayer *player);

Calculate the index for the connected component of player within the game graph. The value 0 indicates the component of players of defined rank.

self : a GoData object
player : the player to calculate the component for
Returns : the component index


go_data_players_equiv ()

gboolean    go_data_players_equiv           (GoData *self,
                                             const GoPlayer *a,
                                             const GoPlayer *b);

self : a GoData object
a : the first player
b : the second player
Returns : TRUE if a and b are in the same connected component of the game graph


go_data_add_game ()

void        go_data_add_game                (GoData *self,
                                             GoGame *game);

Register a new game for this GoData object and update all clients.

self : a GoData object
game : a GoGame object


go_data_remove_game ()

void        go_data_remove_game             (GoData *self,
                                             GoGame *game);

Disconnect the game from the GoData object and update all clients.

self : a GoData object
game : a GoGame object


go_data_game_lock ()

void        go_data_game_lock               (GoData *self,
                                             GoGame *g);

This function must be called before g is modified. After you are done with g you must call game_unlock() to propagate the changes.

self : a GoData object
g : the game to modify


go_data_game_unlock ()

void        go_data_game_unlock             (GoData *self,
                                             GoGame *g);

Undo the effects of game_lock() and update the clients.

self : a GoData object
g : the modified game


go_data_game_count ()

int         go_data_game_count              (GoData *self);

Determine the number of games in the database.

self : the GoData object
Returns : the number of known games.

Signals

The "changed" signal

void        user_function                  (GoData *godata,
                                            gpointer user_data);

godata :the object which received the signal.
user_data :user data set when the signal handler was connected.

See Also

GoClient

golist-0.3/doc/html/gogame.html0000644000175000017500000005064207344217152012210 GoGame

GoGame

Name

GoGame -- game related information

Synopsis


#include <go-game.h>


struct      GoGame;
GtkObject*  go_game_new                     (GoData *data,
                                             time_t date,
                                             const char *black,
                                             const char *white,
                                             GoBoardSize board,
                                             int handicap,
                                             double komi,
                                             GoGameResult res);
GtkObject*  go_game_new_fake                (GoData *data);
GtkObject*  go_game_read                    (GoData *data,
                                             xmlNodePtr node);
void        go_game_write                   (GoGame *self,
                                             xmlNodePtr node);

enum        GoBoardSize;
const char* board_to_str                    (GoBoardSize board);
GoBoardSize str_to_board                    (const char *str);
enum        GoGameResult;
const char* result_to_str                   (GoGameResult res);
GoGameResult str_to_result                  (const char *str);

Object Hierarchy


  GtkObject
   +----GoGame

Args


  "black"                gpointer             : Read / Write
  "white"                gpointer             : Read / Write
  "board"                gpointer             : Read / Write
  "handicap"             gint                 : Read / Write
  "komi"                 gdouble              : Read / Write

Description

The GoGame type records all information about a single game.

Details

struct GoGame

struct GoGame {
	GoPlayer * black;
	GoPlayer * white;
	GoGameResult res;
	double probability;
};

GoPlayer *blackthe black player
GoPlayer *whitethe white player
GoGameResult resthe game's outcome
double probabilitythe probability value for the game. This is filled in by GoStrengths objects. The value -1 indicates an unknown probability.


go_game_new ()

GtkObject*  go_game_new                     (GoData *data,
                                             time_t date,
                                             const char *black,
                                             const char *white,
                                             GoBoardSize board,
                                             int handicap,
                                             double komi,
                                             GoGameResult res);

Allocate a new GoGame object, fill it with values, and connect it to data.

data : a GoData object
date : the date of the game in the form dd.mm.yyyy
black : the black player's token
white : the white player's token
board : the board size
handicap : the number of handicap stones (in favour of black)
komi : the amount of komi (in favour of white)
res : the game's outcome
Returns : a newly allocated GoGame object.


go_game_new_fake ()

GtkObject*  go_game_new_fake                (GoData *data);

Allocate a new fake GoGame object and connect it to data. This object may be used for internal purposes and does not correspond to a real game. The data must be filled in manually.

data : a GoData object
Returns : a newly allocated GoGame object.


go_game_read ()

GtkObject*  go_game_read                    (GoData *data,
                                             xmlNodePtr node);

This is a constructor for GoGame objects, which reads all data from a XML tree.

data : a GoData object
node : a XML element of type "game"
Returns : a newly allocated GoGame object.


go_game_write ()

void        go_game_write                   (GoGame *self,
                                             xmlNodePtr node);

Dump all game data into node.

self : a GoGame object
node : a XML element of type "game"


enum GoBoardSize

typedef enum { b19=19, b13=13, b9=9 } GoBoardSize;

This type specifies the board size assoziated with a given game. Only the standard board sizes are supported, because the value of handicap stones for other board sizes is not know to the preogram.

b19The usual 19x19 board
b13intermediate size
b9beginners' board


board_to_str ()

const char* board_to_str                    (GoBoardSize board);

Convert board to a human-understandable textual representation.

board : a board size
Returns : the board size as a string.


str_to_board ()

GoBoardSize str_to_board                    (const char *str);

str : 
Returns : 


enum GoGameResult

typedef enum { res_BLACK, res_WHITE, res_JIGO } GoGameResult;

The type to specify a game's outcome.

res_BLACKblack wins
res_WHITEwhite wins
res_JIGOa jigo (draw) occurs


result_to_str ()

const char* result_to_str                   (GoGameResult res);

Convert res to human understandable textual representation.

res : a game result
Returns : the result as a string.


str_to_result ()

GoGameResult str_to_result                  (const char *str);

str : 
Returns : 

Args

"black" (gpointer : Read / Write)

"white" (gpointer : Read / Write)

"board" (gpointer : Read / Write)

"handicap" (gint : Read / Write)

"komi" (gdouble : Read / Write)

golist-0.3/doc/html/gogamelist.html0000644000175000017500000001355607344217152013107 GoGameList

GoGameList

Name

GoGameList -- a GoData client to print games into a GtkCList

Synopsis


#include <go-game-list.h>


struct      GoGameList;
GtkObject*  go_game_list_new                (GoData *data,
                                             GtkCList *clist);

Object Hierarchy


  GtkObject
   +----GoClient
         +----GoGameList

Args


  "clist"                gpointer             : Read / Write / Construct Only

Description

Details

struct GoGameList

struct GoGameList {
	GtkCList * clist;
};


go_game_list_new ()

GtkObject*  go_game_list_new                (GoData *data,
                                             GtkCList *clist);

Allocate a new GoGameList object and connect it to data. This function modifies the column attributes of clist.

data : a GoData object
clist : a GtkCList widget to display the games in
Returns : a newly allocated GoGameList object

Args

"clist" (gpointer : Read / Write / Construct Only)

golist-0.3/doc/html/gohistory.html0000644000175000017500000003670207344217152013001 GoHistory

GoHistory

Name

GoHistory -- track the development of a player's strength in time

Synopsis


#include <go-history.h>


struct      GoHistory;
GtkObject*  go_history_new                  (double *strength_ptr);
void        go_history_set_length           (GoHistory *self,
                                             int n);
void        go_history_increase_length      (GoHistory *self);
double      go_history_get_strength         (GoHistory *self,
                                             int i);
double      go_history_probability          (GoHistory *self);
double      go_history_compensator          (GoHistory *self);
void        go_history_write_back           (GoHistory *self);

Object Hierarchy


  GtkObject
   +----GoHistory

Signal Prototypes


"add-parameter"
            void        user_function      (GoHistory *gohistory,
                                            gpointer arg1,
                                            gpointer user_data);
"remove-parameter"
            void        user_function      (GoHistory *gohistory,
                                            gpointer arg1,
                                            gpointer user_data);

Description

Objects of this class are used by GoStrengths to track the development of a player's strength in time.

Details

struct GoHistory

struct GoHistory;


go_history_new ()

GtkObject*  go_history_new                  (double *strength_ptr);

Allocate a new GoHistory object to track the value at strength_ptr. The history length is set to 0. You must call set_length() to increase it.

strength_ptr : a pointer to the player's strength value
Returns : a new GoHistory object


go_history_set_length ()

void        go_history_set_length           (GoHistory *self,
                                             int n);

Set the number of games in the record.

self : a GoHistory object
n : the new history length


go_history_increase_length ()

void        go_history_increase_length      (GoHistory *self);

Increase the number of games in the record by one.

self : a GoHistory object


go_history_get_strength ()

double      go_history_get_strength         (GoHistory *self,
                                             int i);

Get the strength value recorded for game number i.

self : a GoHistory object
i : the game index
Returns : the player's strength


go_history_probability ()

double      go_history_probability          (GoHistory *self);

Estimate the likelihood of the currently stored data.

self : a GoHistory object
Returns : the probability


go_history_compensator ()

double      go_history_compensator          (GoHistory *self);

Return a typical mean value for the return value of probability(). The result does not depend on the current parameter settings, but it may depend on the number of games stored.

self : a GoHistory object
Returns : the mean probability


go_history_write_back ()

void        go_history_write_back           (GoHistory *self);

Write back the current player strength from the GoHistory object self to the original location.

self : a GoHistory object

Signals

The "add-parameter" signal

void        user_function                  (GoHistory *gohistory,
                                            gpointer arg1,
                                            gpointer user_data);

gohistory :the object which received the signal.
arg1 : 
user_data :user data set when the signal handler was connected.


The "remove-parameter" signal

void        user_function                  (GoHistory *gohistory,
                                            gpointer arg1,
                                            gpointer user_data);

gohistory :the object which received the signal.
arg1 : 
user_data :user data set when the signal handler was connected.

golist-0.3/doc/html/golist.html0000644000175000017500000000534007344217152012245 The Go API

The Go API

Jochen Voß

  voss@mathematik.uni-kl.de

Table of Contents
I. The Go API Reference
golist -- auxiliary functions
GoPlayer -- player related information
GoGame -- game related information
GoData -- the database for the golist classes
GoClient -- access the GoData databases
GoComponents -- calculate the connected components of the game graph
GoPlayerList -- a GoData client to print players into a GtkCList
GoGameList -- a GoData client to print games into a GtkCList
GoHistory -- track the development of a player's strength in time
GoStrengths -- A controller to estimate the players' strength values
golist-0.3/doc/html/goplayer.html0000644000175000017500000002454307344217152012574 GoPlayer

GoPlayer

Name

GoPlayer -- player related information

Synopsis


#include <go-player.h>


struct      GoPlayer;
GtkObject*  go_player_new                   (GoData *data,
                                             const char *name,
                                             const char *token,
                                             const char *rank,
                                             double strength);
GtkObject*  go_player_read                  (GoData *data,
                                             xmlNodePtr node);
void        go_player_write                 (GoPlayer *self,
                                             xmlNodePtr node);

Object Hierarchy


  GtkObject
   +----GoPlayer

Args


  "name"                 gpointer             : Read / Write / Construct
  "token"                gpointer             : Read / Write / Construct Only
  "rank"                 gpointer             : Read / Write / Construct
  "strength"             gdouble              : Read / Write / Construct

Description

The GoPlayer object records all information about a single player.

Details

struct GoPlayer

struct GoPlayer {
	gchar * name;
	gchar * token;
	gchar * rank;
	double strength;
};


go_player_new ()

GtkObject*  go_player_new                   (GoData *data,
                                             const char *name,
                                             const char *token,
                                             const char *rank,
                                             double strength);

Allocate a new GoPlayer object, fill in the values, and connect it to data. If the strength value is unknown it should be set to -100.

data : a GoData object
name : the player's full name
token : the player's abbreviation
rank : the player's nominal rank, or NULL
strength : the player's numerical strength value
Returns : a newly allocated GoPlayer object.


go_player_read ()

GtkObject*  go_player_read                  (GoData *data,
                                             xmlNodePtr node);

This is a constructor for GoPlayer objects, which reads all data from a XML tree.

data : a GoData object
node : a XML element of type "player"
Returns : a newly allocated GoPlayer object.


go_player_write ()

void        go_player_write                 (GoPlayer *self,
                                             xmlNodePtr node);

Dump all player data into node.

self : a GoPlayer object
node : a XML element of type "player"

Args

"name" (gpointer : Read / Write / Construct)

"token" (gpointer : Read / Write / Construct Only)

"rank" (gpointer : Read / Write / Construct)

"strength" (gdouble : Read / Write / Construct)

golist-0.3/doc/html/goplayerlist.html0000644000175000017500000001364507344217152013471 GoPlayerList

GoPlayerList

Name

GoPlayerList -- a GoData client to print players into a GtkCList

Synopsis


#include <go-player-list.h>


struct      GoPlayerList;
GtkObject*  go_player_list_new              (GoData *data,
                                             GtkCList *clist);

Object Hierarchy


  GtkObject
   +----GoClient
         +----GoPlayerList

Args


  "clist"                gpointer             : Read / Write / Construct Only

Description

Details

struct GoPlayerList

struct GoPlayerList {
	GtkCList * clist;
};


go_player_list_new ()

GtkObject*  go_player_list_new              (GoData *data,
                                             GtkCList *clist);

Allocate a new GoPlayerList object and connect it to data. This function modifies the column attributes of clist.

data : a GoData object
clist : a GtkCList widget to display the players in
Returns : a newly allocated GoPlayerList object

Args

"clist" (gpointer : Read / Write / Construct Only)

golist-0.3/doc/html/gostrengths.html0000644000175000017500000003415607344217152013322 GoStrengths

GoStrengths

Name

GoStrengths -- A controller to estimate the players' strength values

Synopsis


#include <go-strengths.h>


struct      GoStrengths;
GtkObject*  go_strengths_new                (GoData *data,
                                             gboolean optimize_constants);
double      go_strengths_probability        (GoStrengths *self,
                                             GoGame *g);
int         go_strengths_find_handicap      (GoStrengths *self,
                                             GoPlayer *black,
                                             GoPlayer *white,
                                             GoBoardSize board);
double      go_strengths_find_komi          (GoStrengths *self,
                                             GoPlayer *black,
                                             GoPlayer *white,
                                             GoBoardSize board,
                                             int hc);
void        go_strengths_optimize           (GoStrengths *self);
void        go_strengths_parameters_print   (GoStrengths *self);
const char* go_strengths_check_preconditions
                                            (GoStrengths *self);

Object Hierarchy


  GtkObject
   +----GoClient
         +----GoStrengths

Description

Details

struct GoStrengths

struct GoStrengths {
	double s19;
	double s13;
	double s9;
	double h19;
	double h13;
	double h9;
	double k19;
	double k13;
	double k9;
	double e19;
	double e13;
	double e9;
};


go_strengths_new ()

GtkObject*  go_strengths_new                (GoData *data,
                                             gboolean optimize_constants);

Allocate a new GoStrength object and connect it to data.

data : a GoData object
optimize_constants : try to estimate some internal constants, too. This needs a lot of game data to give reasonable results.
Returns : the new object.


go_strengths_probability ()

double      go_strengths_probability        (GoStrengths *self,
                                             GoGame *g);

Use the player data from the GoStrengths object self, to assign a probability to the outcome of game g. This modifies the g->probability field.

self : a GoStrengths object
g : a GoGame to evaluate
Returns : the probability that the given outcome of g occurs


go_strengths_find_handicap ()

int         go_strengths_find_handicap      (GoStrengths *self,
                                             GoPlayer *black,
                                             GoPlayer *white,
                                             GoBoardSize board);

self : 
black : 
white : 
board : 
Returns : 


go_strengths_find_komi ()

double      go_strengths_find_komi          (GoStrengths *self,
                                             GoPlayer *black,
                                             GoPlayer *white,
                                             GoBoardSize board,
                                             int hc);

self : 
black : 
white : 
board : 
hc : 
Returns : 


go_strengths_optimize ()

void        go_strengths_optimize           (GoStrengths *self);

self : 


go_strengths_parameters_print ()

void        go_strengths_parameters_print   (GoStrengths *self);

self : 


go_strengths_check_preconditions ()

const char* go_strengths_check_preconditions
                                            (GoStrengths *self);

self : 
Returns : 

golist-0.3/doc/html/r13.html0000644000175000017500000000663007344217152011354 The Go API Reference

I. The Go API Reference

Table of Contents
golist -- auxiliary functions
GoPlayer -- player related information
GoGame -- game related information
GoData -- the database for the golist classes
GoClient -- access the GoData databases
GoComponents -- calculate the connected components of the game graph
GoPlayerList -- a GoData client to print players into a GtkCList
GoGameList -- a GoData client to print games into a GtkCList
GoHistory -- track the development of a player's strength in time
GoStrengths -- A controller to estimate the players' strength values